/* 正式網頁在雛型樣式（ws.css）之上多的東西：連結當選單、輸入框、留言、差異、版本歷史、Markdown 內文 */
a.nav, a.li { text-decoration: none; color: inherit; }
a.nav { color: var(--ink-2); }
.nav.space { color: var(--ink); font-weight: 500; white-space: nowrap; }
/* 名字長（例如「產品規劃部」加「部門」標籤）時截成一行加 …，不折成兩行；整個名字在 title */
.nav.space .sp-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
/* ＋／上傳／資料庫鈕沒滑過時不只隱形、也不占位（不然名字被它們擠到只剩兩三個字） */
.nav.space .btn { display: none; flex: none; }
.nav.space:hover .btn, .nav.space:focus-within .btn { display: inline-flex; align-items: center; justify-content: center; }
.btn.ghost { border-color: transparent; background: none; }
.toast.bad { background: var(--bad); color: #fff; }
.callout.bad { background: var(--del); color: var(--del-ink); }
/* 行內的警告字（垃圾桶快到期、逾期之類）：只換顏色，不換背景 */
.bad-text { color: var(--bad); }
.callout { flex-wrap: wrap; align-items: center; }
.li.on { background: var(--brand-soft); }
button.li { font: inherit; color: inherit; }
.li .body { flex: 1; min-width: 0; }

.toolbar input[type=search], .toolbar input[type=text], .toolbar input[type=date], .toolbar select, .big-in, .row-in input, .row-in select, .wf-rule select, .props select, .props input, .st-in {
  font: inherit; color: var(--ink); background: var(--panel); border: 1px solid var(--line); border-radius: 7px; padding: 5px 9px; min-height: 32px;
}
.toolbar input[type=search] { width: min(260px, 100%); }
.big-in { width: 100%; font-size: 16px; padding: 9px 12px; margin: 6px 0 14px; }
.props select, .props input { max-width: 100%; min-height: 28px; padding: 2px 6px; }
.props dd { flex-wrap: wrap; }
.row-in { display: flex; gap: 6px; margin-top: 6px; }
.row-in input { flex: 1; min-width: 0; }
.title-in { width: 100%; font: inherit; font-size: 22px; font-weight: 700; color: var(--ink); background: none; border: 0; border-bottom: 1px solid var(--line); padding: 6px 0; margin-bottom: 8px; }
.page-ed { width: 100%; font-family: var(--mono); font-size: 13.5px; line-height: 1.6; }
.page-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.st-in { width: 120px; }

.cmt { display: flex; gap: 10px; align-items: flex-start; margin: 10px 0; }
.cmt > div { flex: 1; min-width: 0; }

.md { overflow-wrap: anywhere; }
.md > :first-child { margin-top: 0; }
.md pre { background: var(--soft); border-radius: 8px; padding: 10px 12px; overflow-x: auto; font-family: var(--mono); font-size: 12.5px; }
.md code { font-family: var(--mono); font-size: 0.92em; background: var(--soft); border-radius: 4px; padding: 0 4px; }
.md pre code { background: none; padding: 0; }
.md table { display: block; overflow-x: auto; max-width: 100%; }
.md blockquote { margin: 8px 0; padding: 2px 12px; border-left: 3px solid var(--line); color: var(--ink-2); }
.md a { color: var(--brand-ink); }
.page-md { font-size: 15.5px; line-height: 1.75; }

pre.diff { white-space: pre-wrap; font-family: var(--mono); font-size: 12.5px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; max-height: 360px; overflow: auto; margin: 8px 0; }
pre.diff ins { background: var(--ins); color: var(--ins-ink); text-decoration: none; display: block; }
pre.diff del { background: var(--del); color: var(--del-ink); display: block; }
pre.diff span { display: block; color: var(--ink-3); }

.hist { display: grid; grid-template-columns: 220px 1fr; gap: 14px; min-height: 320px; }
.hist > div:last-child { min-width: 0; max-height: 60vh; overflow: auto; }
@media (max-width: 820px) { .hist { grid-template-columns: 1fr; } }
.nav.sub3 { padding-left: 62px; }
.page-md h2 { font-size: 22px; margin: 26px 0 8px; } .page-md h3 { font-size: 18px; margin: 22px 0 6px; } .page-md h4 { font-size: 16px; margin: 18px 0 6px; }

/* 區塊編輯器（ProseMirror＋Yjs） */
.ProseMirror { position: relative; white-space: pre-wrap; word-wrap: break-word; font-variant-ligatures: none; outline: none; min-height: 240px; padding: 4px 0 80px; }
.ProseMirror pre { white-space: pre-wrap; background: var(--soft); border-radius: 8px; padding: 10px 12px; font-family: var(--mono); font-size: 13px; }
.ProseMirror code { font-family: var(--mono); font-size: 0.92em; background: var(--soft); border-radius: 4px; padding: 0 4px; }
.ProseMirror pre code { background: none; padding: 0; }
.ProseMirror blockquote { margin: 8px 0; padding: 2px 12px; border-left: 3px solid var(--line); color: var(--ink-2); }
.ProseMirror hr { border: 0; border-top: 1px solid var(--line); margin: 18px 0; }
.ProseMirror img { max-width: 100%; }
.ProseMirror a { color: var(--brand-ink); }
.ProseMirror > p:only-child:empty::before { content: "…"; color: var(--ink-3); }
.ProseMirror-gapcursor { display: none; pointer-events: none; position: absolute; }
.ProseMirror-gapcursor:after { content: ""; display: block; position: absolute; top: -2px; width: 20px; border-top: 1px solid var(--ink); animation: pm-blink 1.1s steps(2, start) infinite; }
.ProseMirror-focused .ProseMirror-gapcursor { display: block; }
@keyframes pm-blink { to { visibility: hidden; } }
.ProseMirror-yjs-cursor { position: relative; margin-left: -1px; margin-right: -1px; border-left: 1px solid; border-right: 1px solid; word-break: normal; pointer-events: none; }
.ProseMirror-yjs-cursor > div { position: absolute; top: -1.15em; left: -1px; font-size: 11px; font-weight: 500; line-height: normal; white-space: nowrap; color: #fff; padding: 0 4px; border-radius: 3px 3px 3px 0; user-select: none; }
.slash.menu { position: absolute; z-index: 45; width: 220px; }
.slash.menu button.on { background: var(--brand-soft); }
.ed-status { color: var(--review); }
.ed-status:not(:empty)::before { content: "・"; color: var(--ink-3); }   /* 跟前面的字數隔開 */
.ed-status[data-state="offline"] { color: var(--bad); }
.ed-hint { font-size: 12.5px; }
/* 新區塊：待辦、切換、提示框、表格、@提到、圖片 */
.ProseMirror ul.tasks { list-style: none; padding-left: 4px; }
.ProseMirror li.task { display: flex; gap: 8px; align-items: flex-start; }
.ProseMirror li.task > input { margin-top: 0.45em; accent-color: var(--brand); flex: none; }
.ProseMirror li.task > div { flex: 1; min-width: 0; }
.ProseMirror li.task[data-checked="true"] > div { color: var(--ink-3); text-decoration: line-through; }
.toggle-b { margin: 8px 0; }
.toggle-h { display: flex; align-items: center; gap: 6px; }
.toggle-btn { border: 0; background: none; color: var(--ink-2); width: 22px; cursor: pointer; }
.toggle-title { flex: 1; font: inherit; font-weight: 600; border: 0; background: none; color: var(--ink); padding: 2px 0; }
.toggle-c { padding-left: 28px; }
.toggle-b.closed > .toggle-c { display: none; }
.callout-b { display: flex; gap: 10px; background: var(--soft); border-radius: 8px; padding: 10px 14px; margin: 10px 0; }
.callout-b[data-kind="warning"], .callout-b[data-kind="caution"] { background: var(--del); }
.callout-b[data-kind="tip"] { background: var(--ins); }
.callout-b[data-kind="important"] { background: var(--ai-soft); }
.callout-i { border: 0; background: none; font-size: 16px; line-height: 1.6; cursor: pointer; padding: 0; flex: none; }
.callout-c { flex: 1; min-width: 0; }
.callout-c > :first-child { margin-top: 0; } .callout-c > :last-child { margin-bottom: 0; }
.ProseMirror table { border-collapse: collapse; table-layout: fixed; width: 100%; min-width: 0; max-width: 100%; margin: 10px 0; overflow: hidden; }
.ProseMirror td, .ProseMirror th { border: 1px solid var(--line); padding: 4px 8px; vertical-align: top; position: relative; white-space: normal; overflow-wrap: anywhere; min-width: 0; }
.ProseMirror th { background: var(--soft); font-weight: 600; text-align: left; }
.ProseMirror td p, .ProseMirror th p { margin: 0; }
.ProseMirror .selectedCell::after { content: ""; position: absolute; inset: 0; background: var(--brand-soft); opacity: 0.5; pointer-events: none; }
.mention { background: var(--brand-soft); color: var(--brand-ink); border-radius: 4px; padding: 0 4px; cursor: pointer; white-space: nowrap; }
.mention[data-kind="date"] { background: var(--soft); color: var(--ink-2); cursor: default; }
.ProseMirror img { max-width: 100%; border-radius: 6px; }
.ProseMirror img.ProseMirror-selectednode { outline: 2px solid var(--brand); }
.slash.menu button { display: flex; justify-content: space-between; gap: 8px; width: 100%; }
.slash.menu button small { color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 140px; }

/* 留言掛在字上、留言串、AI 建議逐段 */
.cmt-anchor { background: color-mix(in srgb, var(--review) 22%, transparent); border-bottom: 2px solid var(--review); }
.cmt-btn { position: absolute; z-index: 44; }
.thread { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; margin: 10px 0; }
.thread.resolved { opacity: 0.6; }
.thread.focus { border-color: var(--review); box-shadow: 0 0 0 2px color-mix(in srgb, var(--review) 30%, transparent); }
.cmt-quote { display: block; width: 100%; text-align: left; font: inherit; font-size: 13px; color: var(--ink-2); background: var(--soft); border: 0; border-left: 3px solid var(--review); border-radius: 4px; padding: 4px 10px; margin: 4px 0 6px; cursor: pointer; white-space: pre-wrap; }
.hunk { display: flex; gap: 10px; align-items: flex-start; margin: 6px 0; }
.hunk > input { margin-top: 12px; accent-color: var(--brand); flex: none; }
.hunk > div { flex: 1; min-width: 0; }
.hunk pre.diff { margin: 4px 0; }
.embed-v { border: 1px solid var(--line); border-radius: 10px; padding: 6px 10px; margin: 10px 0; background: var(--panel); white-space: normal; }
.embed-v.ProseMirror-selectednode { outline: 2px solid var(--brand); }
.embed-h { display: flex; gap: 10px; align-items: center; padding: 4px 4px 6px; }
.embed-h a { margin-left: auto; }
.embed-v .li { padding: 6px 4px; align-items: center; }
/* 支援存取（§18.3）：支援人員一直看得到的提示 */
.callout.support-bar { border: 1px solid var(--review); position: sticky; top: 0; z-index: 2; margin-top: 0; }
table.tsum td.sup-what { text-align: left; white-space: normal; word-break: break-all; }
/* 工作表格：桌機最少 720px（在框裡橫捲）；手機只留編號、標題、狀態，標題換行 */
table.wt { min-width: 720px; }
@media (max-width: 820px) {
  table.wt { min-width: 0; }
  table.wt .wt-opt { display: none; }
  table.wt td.title { white-space: normal; min-width: 0; }
  table.wt .wt-sub { display: block; }   /* 手機藏掉的到期與負責，改放在標題下面一行 */
  .toolbar input[type=search] { width: 100%; }   /* 搜尋框自己一行，「只看我的」與「匯出 CSV」才排得進第二行 */
  /* 收件匣：時間跟「稍後」上下疊成右邊一欄，那句話多出一截寬度、列高不變 */
  .inbox-list .li-side { flex-direction: column; align-items: flex-end; gap: 2px; }
}
.li-side { display: flex; align-items: center; gap: 12px; flex: none; }
.wt-sub { display: none; color: var(--ink-3); font-size: 12px; margin-top: 2px; }
.wt-sub.late { color: var(--bad); }
.dot.bad { background: var(--del); color: var(--del-ink); }
.people-row { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 6px 0 14px; }
/* 欄位上下的間距一致：單獨一個欄位、兩欄並排的一列，彼此都隔 12px */
.field, .row2 { margin: 12px 0; }
.row2 > .field, .row2 > .set-row { margin: 0; }
/* 關聯：種類的字（擋住了、被擋住…）不從中間斷開；一行放不下時整筆換到下一行 */
.rel { max-width: 100%; }
.rel > .muted { white-space: nowrap; flex: none; }
.rel > button[data-work] { min-width: 0; text-align: left; }
.row-in { flex-wrap: wrap; }
.row-in select { flex: none; max-width: 100%; }
.row-in input { min-width: 140px; }
/* 時間軸：名稱欄的標題截成「…」；條上的字橫捲時黏在看得到的左邊 */
.tl-name .key { flex: none; }
.tl-tt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tl-t { position: sticky; left: 0; }
/* 清單裡工作的狀態：小圓點（顏色是狀態組），名字在 title */
.gdot { width: 10px; height: 10px; border-radius: 50%; flex: none; margin-top: 6px; }
.fm-url { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 46ch; }
/* 按鈕列接在勾選框、欄位、選項後面時留點距離 */
.chips + .verdict, .row2 + .verdict, .field + .verdict, .set-row + .verdict { margin-top: 12px; }
/* 手機：分頁按鈕排成一列、左右滑（不疊成好幾排佔掉半個畫面） */
@media (max-width: 820px) {
  .stabs { position: relative; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
  .stabs::-webkit-scrollbar { display: none; }
  .stabs button { flex: none; }
}
/* 概覽的數字：逾期有的話標紅 */
.stats .late b { color: var(--bad); }
/* 側欄團隊空間的收合鈕 */
.nav.space .fold { border: 0; background: none; color: inherit; font: inherit; padding: 0; cursor: pointer; width: 18px; text-align: center; }
.nav.space .fold:focus-visible { outline: 2px solid var(--brand); border-radius: 4px; }
.li-day { font-size: 12px; color: var(--ink-3); padding: 10px 14px 4px; background: var(--side); border-bottom: 1px solid var(--line); }
h2 .count { font-size: 13px; font-weight: 500; color: var(--ink-3); background: var(--soft); border-radius: 10px; padding: 1px 8px; vertical-align: middle; margin-left: 4px; }
.toast { cursor: pointer; }
/* 文章頁：標題像文件標題；工具列的選單；選字工具列；大綱；編輯小技巧收起來 */
.page-doc .title-in { font-size: 32px; line-height: 1.25; border-bottom: 0; padding: 4px 0; margin: 0; }
.page-doc .title-in:focus { outline: none; }
.page-doc .page-head h1 { font-size: 32px; }
.page-doc .meta { margin: 2px 0 10px; }
.page-tools { gap: 6px; margin-bottom: 14px; }
.pop { position: relative; display: inline-block; }
.pop-menu { position: absolute; top: calc(100% + 4px); left: 0; z-index: 25; min-width: 160px; }
.pop-menu .danger { color: var(--bad); }
.ProseMirror { min-height: 160px; padding-bottom: 24px; }
.ed-hint { font-size: 12.5px; margin: 4px 0 18px; color: var(--ink-3); }
.ed-hint summary { cursor: pointer; width: fit-content; }
.ed-hint p { margin: 6px 0 0; }
.ed-status[data-state="online"] { color: var(--ink-3); }
.sel-bar { position: fixed; z-index: 44; display: flex; align-items: center; gap: 2px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow); padding: 3px; }
.sel-bar button { border: 0; background: none; color: var(--ink); font: inherit; font-size: 13px; min-width: 30px; height: 28px; padding: 0 7px; border-radius: 6px; cursor: pointer; }
.sel-bar button:hover { background: var(--hover); }
.sel-bar button.on { background: var(--brand-soft); color: var(--brand-ink); }
.sel-bar .sel-sep { width: 1px; height: 18px; background: var(--line); margin: 0 3px; }
.sel-bar .sel-link { width: 220px; border: 1px solid var(--line); border-radius: 6px; padding: 4px 8px; font: inherit; font-size: 13px; background: var(--bg); color: var(--ink); }
.page-toc { position: fixed; top: 110px; right: 24px; width: 190px; max-height: calc(100vh - 160px); overflow-y: auto; font-size: 12.5px; }
.page-toc .toc-h { color: var(--ink-3); margin-bottom: 6px; }
.page-toc button { display: block; width: 100%; text-align: left; border: 0; background: none; color: var(--ink-2); font: inherit; padding: 3px 6px; border-radius: 5px; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.page-toc button:hover { background: var(--hover); color: var(--ink); }
.page-toc .toc-h2 { padding-left: 16px; } .page-toc .toc-h3 { padding-left: 26px; }
@media (max-width: 1480px) { .page-toc { display: none; } }
/* 編輯器：空行的提示、大綱目前那段、「/」選單固定位置 */
.ProseMirror p.ph::before { content: attr(data-ph); position: absolute; color: var(--ink-3); pointer-events: none; }
.page-toc button.on { color: var(--brand-ink); background: var(--brand-soft); }
.slash.menu { position: fixed; max-height: min(320px, 50vh); overflow-y: auto; }

/* ── 手機版（10 輪）── */
/* 1. iPhone 點進字級小於 16px 的欄位會放大整頁：手機與觸控螢幕上欄位一律 16px */
@media (max-width: 820px), (pointer: coarse) {
  /* :is 取最高的那個（0,2,1），蓋過 .field select 這類設了 font: inherit 的 */
  body :is(input:not([type=checkbox]):not([type=radio]):not(.title-in), select, textarea) { font-size: 16px; }
  .page-md .ProseMirror { font-size: 16px; }
  .page-doc .title-in { font-size: 26px; }
}
/* 2. 手指點得到：觸控螢幕上按鈕至少 36px（小按鈕）／40px，分頁鈕 34px */
@media (pointer: coarse) {
  .btn { min-height: 40px; }
  .btn.sm { min-height: 36px; padding: 0 12px; font-size: 13px; }
  .stabs button, .tabs .tab { min-height: 34px; }
  .props dd select, .props dd input { min-height: 36px; }
  /* 側欄的團隊空間：手機沒有「滑過去才出現」，＋／上傳／資料庫鈕一直看得到；名字不被擠成兩行 */
  .nav.space { white-space: nowrap; }
  .nav.space .fold { width: 28px; min-height: 32px; }
  .nav.space .btn, .nav.space .btn.sm { display: inline-flex; opacity: 0.75; min-height: 32px; min-width: 32px; padding: 0; }
}
/* 3. 頁首搜尋鈕：電腦寫 ⌘K，手機只放大鏡 */
#kBtn .k-ic { display: none; }
@media (max-width: 820px), (pointer: coarse) {
  #kBtn .k-key { display: none; }
  #kBtn .k-ic { display: inline; }
  #kBtn { min-width: 40px; }
}
@media (max-width: 820px) {
  /* 4. 左右滑的分頁列：右邊淡出，看得出後面還有 */
  .stabs { mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); padding-right: 24px; }
  .tabs { mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent); -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent); }
  /* 5. 看板：一欄約一個螢幕寬、露出下一欄的邊，左右滑一次停一欄 */
  .board { grid-auto-columns: 82%; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
  .board > .col { scroll-snap-align: start; }
  /* 6. 對話框從下面升起、佔滿寬度，送出鈕在拇指碰得到的地方，避開 Home 條 */
  .modal-wrap { place-items: end stretch; padding: 0; }
  .modal, .modal.wide-m { width: 100%; max-height: 92vh; border-radius: 16px 16px 0 0; border-bottom: 0; }
  .modal-f { position: sticky; bottom: 0; background: var(--panel); padding-bottom: max(12px, env(safe-area-inset-bottom, 0px)); }
}
/* 7. 搜尋鈕在手機上寫「搜尋」（放大鏡字元太小看不出來） */
/* 8. 觸控螢幕上，指令選單底下的鍵盤快捷鍵說明用不到 */
@media (pointer: coarse) { .palette .cmd-keys { display: none; } }
/* 9. 行事曆：電腦上至少 640px；手機上七天擠進一個螢幕寬，不用左右捲 */
.cal-wide { min-width: 640px; }
@media (max-width: 820px) {
  .cal-wide { min-width: 0; }
  .cal div { min-height: 56px; padding: 2px; font-size: 11px; }
  .cal .ev { font-size: 10px; padding: 0 2px; }
  /* 10. 對話框裡的欄位：欄位自己的上下 12px 已經隔開，不再疊上 .modal-b 的 gap */
  .modal-b { gap: 0; }
  .modal-b > :first-child { margin-top: 0; }
}
/* 11. 手機上驗收人不用捲到最下面找按鈕：面板底部固定一列「通過／退回」（電腦上照舊在交付裡） */
.panel-act { display: none; }
@media (max-width: 820px) {
  .panel-act { display: flex; align-items: center; gap: 8px; padding: 10px 16px max(10px, env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line); background: var(--panel); }
  .panel-act span { flex: 1; min-width: 0; font-size: 13px; color: var(--ink-2); }
  /* 12. 面板的欄位：下拉選單不超出、長的（負責人＋電腦）佔滿一行，看得到整個名字 */
  .props dd select, .props dd input { max-width: 100%; }
  .props dd #fAssignee { width: 100%; }
}
/* 13. 時間軸的名稱欄在手機上只有 110px：放標題（比編號有意義），編號收起來 */
@media (max-width: 700px) { .tl-name .key { display: none; } }
/* 14. 面板欄位裡的標籤（AI 同事＋電腦、等誰接單）名字很長時（兩個同名的人會帶 email）不超出面板：換行，不切掉 */
.props dd > .ai-chip, .props dd > .wait { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
/* 側欄的頁面樹：一列是「收合鈕＋連結＋在這頁底下新增」，連結占滿中間；未命名的頁淡一點 */
.nav.pg { gap: 2px; padding-top: 0; padding-bottom: 0; }
.nav.pg .pfold { flex: none; width: 16px; border: 0; background: none; color: var(--ink-3); font: inherit; font-size: 11px; padding: 0; cursor: pointer; text-align: center; align-self: stretch; }
.nav.pg button.pfold:hover { color: var(--ink); }
.nav.pg .pfold:focus-visible, .nav.pg .pg-a:focus-visible { outline: 2px solid var(--brand); border-radius: 4px; }
.nav.pg .pg-a { flex: 1; min-width: 0; display: flex; align-items: center; gap: 7px; min-height: 30px; color: inherit; text-decoration: none; }
.nav.pg .pg-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav.pg .pg-t.untitled { color: var(--ink-3); font-style: italic; }
.nav.pg .pg-add { flex: none; opacity: 0; min-height: 24px; padding: 0 6px; }
.nav.pg:hover .pg-add, .nav.pg .pg-add:focus-visible, .nav.pg.on .pg-add { opacity: 1; }
.nav.pg .pg-more { font-weight: 700; letter-spacing: -1px; }
.nav.side-empty { color: var(--ink-3); font-size: 13px; }
@media (pointer: coarse) {
  .nav.pg .pfold { width: 26px; font-size: 13px; }
  .nav.pg .pg-a { min-height: 36px; }
  .nav.pg .pg-add { opacity: 0.6; min-height: 32px; min-width: 32px; padding: 0; }
}
/* 左上角的公司名稱是回主頁的連結 */
a.ws { color: inherit; text-decoration: none; }
a.ws:hover { background: var(--hover); }
a.ws:focus-visible { outline: 2px solid var(--brand); }
/* 資料庫表格：每列最後的「丟進垃圾桶」，滑過那列才明顯；按一次變成紅字「確定刪除？」 */
.db-table .db-act { width: 1%; white-space: nowrap; text-align: right; }
.db-table .db-del { opacity: 0.35; }
.db-table tr:hover .db-del, .db-table .db-del:focus-visible, .db-table .db-del.armed { opacity: 1; }
.db-table .db-del.armed { color: var(--bad); border-color: var(--bad); }
@media (pointer: coarse) { .db-table .db-del { opacity: 0.7; } }
