/* S3 的「交辦」看板（2026-10-24，ADR-0017；元件在 s3-board.js）。
   五欄一個畫面看得到（1440×900），卡片多時欄內捲動、整頁不捲；窄螢幕五欄改橫向捲動。
   拖的時候：能放的欄框線變亮、不能放的欄變淡並寫原因（不只靠顏色）；右側面板開著時看板仍看得到。
   2026-10-24 第二輪：Notion、Trello 的手感——卡片滑過浮起、拖起來微微傾斜、落點空出一格；面板是可以拉寬度的 side peek */

/* 外層 .board-view-shell（app.js 的 BoardView）要撐滿 main，欄才拉得到畫面底部（2026-10-24 人工走查：欄停在卡片下面，空白處放不下卡） */
.board-view-shell { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.kanban-page { --kb-panel-w: 560px; display: flex; flex-direction: column; flex: 1 1 auto; height: 100%; min-height: 0; }
.kanban-page > .head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s4); flex-wrap: wrap; }
.kb-status-line { font-weight: 500; color: var(--text) !important; white-space: nowrap; }  /* 面板打開、頁首變窄時不拆字；放不下就讓右邊的篩選整組換行 */
.kb-head-act { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.kb-views .q-btn { font-size: 13px; padding: 2px 10px; }
.kb-shell { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: var(--s3); padding: 0 var(--s6) var(--s5); }  /* 面板打開時右側內距立刻生效（不做過場），選中的卡才捲得到看得見的位置 */

/* ── 五欄 ── */
.kb-board { flex: 1; min-height: 0; display: grid; grid-template-columns: repeat(5, minmax(184px, 1fr)); gap: var(--s3); overflow-x: auto; padding-bottom: 4px; }
.kb-col { display: flex; flex-direction: column; min-height: 0; background: var(--surface-2); border: 1.5px solid transparent; border-radius: var(--r-lg); transition: border-color var(--t-fast), opacity var(--t-fast), background var(--t-fast); }
.kb-col-head { padding: 8px 8px 6px 12px; }
.kb-col-head h2 { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.4; display: flex; align-items: center; gap: 6px; color: var(--text); }
.kb-col-tools { margin-left: auto; display: inline-flex; align-items: center; gap: 0; color: var(--text-2); }
.kb-add-btn, .kb-col-menu { color: var(--text-2); }
.kb-count { min-width: 20px; padding: 0 6px; border-radius: var(--r-pill); background: var(--surface-3); color: var(--text-2); font-size: 12px; font-weight: 500; text-align: center; }
.kb-col-who { margin: 2px 0 0; font-size: 12px; color: var(--text-3); }
.kb-col-body { flex: 1; min-height: 80px; overflow-y: auto; padding: 4px 8px 10px; display: flex; flex-direction: column; gap: 8px; }
.kb-empty { margin: 8px 4px; font-size: 12.5px; color: var(--text-3); line-height: 1.6; }
/* 新增私人卡（欄頭的「＋」） */
.kb-add { display: flex; flex-direction: column; gap: 6px; padding: 6px; border-radius: var(--r-md); background: var(--surface); box-shadow: var(--shadow-sm); }
.kb-add-btns { display: flex; gap: 6px; }
/* 拖的時候 */
.kb-col.kb-can { border-color: var(--accent-border); border-style: dashed; }
.kb-col.kb-can.kb-over { background: var(--accent-soft); border-style: solid; border-color: var(--accent); }
.kb-col.kb-cannot { opacity: .55; }
.kb-col-reason { margin: 0 12px 4px; padding: 4px 8px; border-radius: var(--r-sm); background: var(--surface); font-size: 12px; color: var(--text-2); }
.kb-col-reason::before { content: 'block'; font-family: 'Material Icons'; font-size: 13px; vertical-align: -2px; margin-right: 4px; }
.kb-slot { height: 52px; flex: none; border: 2px dashed var(--accent-border); border-radius: var(--r-md); background: color-mix(in srgb, var(--accent-soft) 60%, transparent); }
body.kb-resizing, body.kb-resizing * { cursor: col-resize !important; user-select: none !important; }

/* ── 卡片 ── */
.kb-card { position: relative; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 9px 11px 10px; box-shadow: var(--shadow-sm); cursor: pointer; outline: none;
  transition: border-color var(--t-fast), box-shadow var(--t-fast), opacity var(--t-fast), transform var(--t-fast); }
.kb-card:hover { border-color: var(--border-strong); box-shadow: var(--shadow-md); }
.kb-card.can-drag { cursor: grab; }
.kb-card.can-drag:hover { transform: translateY(-1px); }  /* 滑過浮起一點，看得出抓得起來 */
.kb-card.can-drag:active { cursor: grabbing; }
.kb-card:focus-visible { box-shadow: 0 0 0 2px var(--accent); }
.kb-card.selected { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.kb-card.busy { opacity: .72; pointer-events: none; }
.kb-card.kb-dragging { opacity: .35; transform: none; }
.kb-card.memo { background: color-mix(in srgb, var(--surface) 92%, var(--warning-soft)); }
.kb-ghost { position: fixed; top: -1000px; left: -1000px; transform: rotate(2.5deg); box-shadow: var(--shadow-pop); opacity: .95; pointer-events: none; }
.kb-card.flash { animation: kb-flash 1.5s ease-out; }
@keyframes kb-flash { 0%, 30% { box-shadow: 0 0 0 3px var(--accent); } 100% { box-shadow: var(--shadow-sm); } }
@media (prefers-reduced-motion: reduce) { .kb-card, .kb-card.can-drag:hover { transition: none; transform: none; } }
/* 卡片頭：標籤、單號、版次、有更新放不下時換行，選單鈕固定在右上（2026-10-24 人工走查：「第 2 版」被擠成兩行） */
.kb-card-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; min-height: 22px; padding-right: 26px; }
.kb-tag { padding: 0 6px; border-radius: var(--r-sm); background: var(--surface-3); color: var(--text-2); font-size: 11.5px; white-space: nowrap; }
.kb-tag.tag-戰情室 { background: var(--accent-soft); color: var(--accent); }
.kb-tag.tag-私人 { background: var(--warning-soft); color: var(--warning); }
.kb-no { font-size: 11.5px; color: var(--text-3); }
.kb-round { padding: 0 6px; border-radius: var(--r-pill); background: var(--warning-soft); color: var(--warning); font-size: 11.5px; white-space: nowrap; }
/* --accent-ink 是主色底上的字色（淺色主題是白色），卡片上的字用 --accent（2026-10-24 人工走查：「有更新」「AI」在白卡上看不見） */
.kb-new { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--accent); font-weight: 500; white-space: nowrap; }
.kb-new-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.kb-menu-btn { position: absolute; top: 6px; right: 6px; color: var(--text-2); }
.kb-title { margin: 4px 0 4px; font-size: 14px; font-weight: 600; line-height: 1.45; color: var(--text);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kb-summary { margin: 0 0 6px; font-size: 12.5px; line-height: 1.55; color: var(--text-2);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* 上下用透明框線撐空間、不用 padding：overflow 只裁到 padding 外緣，用 padding 時第 4 行的字頭會露在下緣（2026-10-24 走查） */
.kb-summary.ai { padding: 0 6px; border-block: 4px solid transparent; border-radius: var(--r-sm); background: var(--accent-soft); color: var(--text); -webkit-line-clamp: 3; }
.kb-ai { display: inline-flex; align-items: center; gap: 2px; margin-right: 4px; font-size: 11px; font-weight: 600; color: var(--accent); vertical-align: 1px; white-space: nowrap; }
.kb-busy { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; font-size: 12px; color: var(--accent); }
.kb-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0 0 6px; font-size: 12px; color: var(--text-2); }
.kb-badge { display: inline-flex; align-items: center; gap: 3px; padding: 0 6px; border-radius: var(--r-pill); white-space: nowrap; }
.kb-badge.lv-pass { background: var(--success-soft); color: var(--success); }
.kb-badge.lv-fail { background: var(--danger-soft); color: var(--danger); }
.kb-progress { display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; }
.kb-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 12px; color: var(--text-2); }
.kb-who, .kb-date { display: inline-flex; align-items: center; gap: 3px; }
.kb-who { flex-wrap: wrap; }
.kb-who-name, .kb-who small { white-space: nowrap; }  /* 卡片窄時「給 山本 浩二」「・承辦 森 美咲」整段換行，不拆人名 */
.kb-who small { color: var(--text-3); }
.kb-date.overdue { color: var(--danger); font-weight: 500; }
.kb-move-menu .kb-menu-head, .kb-menu-head { font-size: 12px; padding-top: 6px; padding-bottom: 2px; }

/* ── 已封存 ── */
/* 已封存：右側面板（跟卡片面板同一套），精簡的卡片一張一張排（2026-10-24 第二輪 Ryan：原本長在看板下面、樣子差太多） */
.kb-archived-btn.on { background: var(--accent-soft); }
.kb-archive-note { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--text-3); }
.kb-archive-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.kb-back { margin-right: 2px; color: var(--text-2); }

/* ── 右側面板（Notion 的 side peek；左邊緣拖拉調寬度）──
   寬螢幕時看板往左縮、可以橫向捲；1280px 以下面板蓋在看板上 */
.kb-panel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 60; max-width: 100vw; display: flex; flex-direction: column;
  background: var(--bg); border-left: 1px solid var(--border); box-shadow: var(--shadow-pop); }
/* 頁首也讓出面板的寬度：不然「已封存 N 張」與篩選列被面板蓋住、按不到（test-designer 10-24 第二輪） */
@media (min-width: 1280px) { .kanban-page.with-panel .kb-shell, .kanban-page.with-panel > .head { padding-right: calc(var(--kb-panel-w) + var(--s4)); } }
.kb-resize { position: absolute; top: 0; bottom: 0; left: -5px; width: 10px; cursor: col-resize; z-index: 2; display: flex; align-items: center; justify-content: center; outline: none; }
.kb-resize-grip { width: 4px; height: 44px; border-radius: 2px; background: var(--border-strong); opacity: 0; transition: opacity var(--t-fast); }
.kb-resize:hover .kb-resize-grip, .kb-resize:focus-visible .kb-resize-grip, body.kb-resizing .kb-resize-grip { opacity: 1; }
.kb-panel-head { display: flex; align-items: center; gap: var(--s2); padding: 10px 12px 6px 20px; }
.kb-crumbs { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-3); }
.kb-readonly { display: inline-flex; align-items: center; gap: 3px; color: var(--text-2); }
.kb-panel-body { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 20px 20px; display: flex; flex-direction: column; gap: 14px; }
.kb-panel-title { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.4; color: var(--text); }
.kb-title-input .q-field__native { font-size: 20px; font-weight: 600; line-height: 1.4; color: var(--text); }
/* 屬性列：左邊名稱、右邊值（Notion 的 properties） */
.kb-props { display: grid; grid-template-columns: 76px 1fr; gap: 2px 12px; margin: 0; font-size: 13.5px; }
.kb-props > div { display: contents; }
.kb-props dt { padding: 5px 0; color: var(--text-3); }
.kb-props dd { margin: 0; padding: 2px 0; min-height: 28px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: var(--text); min-width: 0; }
.kb-status { padding: 0 2px; min-height: 26px; }
.kb-prop-note { font-size: 12.5px; color: var(--text-3); }
.kb-assign { min-width: 220px; }
.kb-assign-due { margin-top: 10px; max-width: 240px; }
.kb-assign .q-field__control, .kb-due .q-field__control { min-height: 28px; height: 28px; }
.kb-due { max-width: 170px; }
.kb-chip { display: inline-block; padding: 1px 8px; border-radius: var(--r-pill); font-size: 12px; font-weight: 500; background: var(--surface-3); color: var(--text-2); white-space: nowrap; }
.kb-chip.col-doing { background: var(--accent-soft); color: var(--accent); }
.kb-chip.col-archived { background: var(--surface-3); color: var(--text-3); }
.kb-chip.col-review { background: var(--warning-soft); color: var(--warning); }
.kb-chip.col-tracking { background: var(--success-soft); color: var(--success); }
.kb-link { border: 0; background: none; padding: 0; color: var(--accent); font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; text-align: left; }
.kb-return { padding: 8px 12px; border-radius: var(--r-md); background: var(--danger-soft); color: var(--text); font-size: 13.5px; }
.kb-return-head { display: flex; align-items: center; gap: 6px; color: var(--danger); }
.kb-return-head time { margin-left: auto; color: var(--text-3); font-size: 12px; }
.kb-return p { margin: 4px 0 0; }
/* 各區塊：小標＋內容，不再是一張張卡片（資訊密度降下來） */
.kb-sec { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; border-top: 1px solid var(--border); }
.kb-sec > h3 { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--text-2); }
.kb-sec > h3 small { font-weight: 400; color: var(--text-3); }
.kb-sec p { margin: 0; font-size: 14px; line-height: 1.65; }
.kb-none { color: var(--text-3); font-size: 13px !important; }
.kb-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.kb-items li { display: flex; align-items: flex-start; gap: 6px; font-size: 14px; line-height: 1.55; }
.kb-items li .q-checkbox { margin-top: 1px; }
.kb-item-text { flex: 1; min-width: 0; padding-top: 2px; }
.kb-items li.done .kb-item-text { color: var(--text-3); text-decoration: line-through; }
.kb-item-kind { margin-left: 6px; padding: 0 5px; border-radius: var(--r-sm); background: var(--success-soft); color: var(--success); font-size: 11px; text-decoration: none; display: inline-block; }
.kb-item-child { display: inline-flex; align-items: center; gap: 2px; font-size: 12.5px; padding-top: 3px; white-space: nowrap; }
.kb-item-delegate { padding-top: 0; font-size: 12.5px; opacity: .6; transition: opacity var(--t-fast); }
.kb-items li:hover .kb-item-delegate, .kb-item-delegate:focus-visible { opacity: 1; }
@media (pointer: coarse) { .kb-item-delegate { opacity: 1; } }
.kb-attach-list { display: flex; flex-wrap: wrap; gap: 6px; }
.kb-attach-chip { font-size: 13px; }
.kb-child-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.kb-child-list li { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.kb-child-list li .kb-link { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-child-who { color: var(--text-2); font-size: 13px; white-space: nowrap; }
.kb-child-add { align-self: flex-start; }
.kb-child-form { display: flex; flex-direction: column; gap: 6px; padding: 8px; border-radius: var(--r-md); background: var(--surface-2); }
.kb-child-btns { display: flex; justify-content: flex-end; gap: 6px; }
.kb-body-text .q-field__native { font-size: 14px; line-height: 1.65; min-height: 96px; }
.kb-body-text.long .q-field__native { min-height: 180px; }
.kb-precheck-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.kb-report { padding: 10px 12px; border-radius: var(--r-md); background: var(--surface-2); font-size: 14px; }
.kb-report .report-text { max-height: 7.5em; overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.kb-report.open .report-text { max-height: none; -webkit-mask-image: none; mask-image: none; }
.kb-report-head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; }
.kb-report-by { margin-left: auto; color: var(--text-3); font-size: 12px; }
.kb-report-more { margin-top: 4px; font-size: 13px; }
/* 活動串 */
.kb-acts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.kb-act { font-size: 13px; color: var(--text-2); }
.kb-act-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.kb-act-row strong { color: var(--text); font-weight: 600; }
.kb-act-row time { color: var(--text-3); font-size: 12px; }
.kb-act-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--border-strong); flex: none; }
.kb-act-comment { margin: 2px 0 0 12px !important; color: var(--text-2); font-size: 13px !important; }
.kb-comment-bubble { padding: 8px 10px; border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--border); }
.kb-comment-bubble p { margin: 4px 0 0; color: var(--text); font-size: 14px; }
.kb-h-report { margin: 4px 0 0 12px; padding: 8px 10px; border-radius: var(--r-sm); background: var(--surface-2); font-size: 13px; color: var(--text); }
.kb-ai-msg { margin: 4px 0 0 12px; padding: 6px 10px; border-radius: var(--r-md); background: var(--accent-soft); border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent); color: var(--text); font-size: 13.5px; }
.kb-body .kb-ai-msg { margin-left: 0; }
.kb-ai-line { width: 100%; display: flex; align-items: center; gap: 6px; border: 0; background: none; padding: 0; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.kb-ai-sum { flex: 1; min-width: 0; }
.kb-ai-note { margin: 4px 0 0 !important; font-size: 13px !important; color: var(--text-2); }
.kb-ai-msg .precheck-result { margin-top: 8px; }
.kb-ai-msg.stale { opacity: .75; }
.kb-review { margin-left: 0; padding: 10px 12px; }
.kb-review-points { margin: 8px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.kb-review .dr-ask { margin: 10px 0 0; display: flex; gap: 6px; font-size: 14px; }
.kb-review .dr-options { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px; }
.kb-qa { margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.kb-qa .da-q { display: flex; align-items: center; gap: 4px; margin: 0; font-size: 13.5px; color: var(--text-2); }
.kb-qa .kb-ai-msg { margin-left: 0; }
.kb-qa .da-text { margin: 4px 0 0; font-size: 14px; }
.kb-only-you { margin-left: auto; color: var(--text-3); font-size: 11.5px; }
/* 底部輸入框：留言或問 AI */
.kb-composer { padding: 8px 16px 12px; border-top: 1px solid var(--border); background: var(--surface); display: flex; flex-direction: column; gap: 6px; }
.kb-composer-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.kb-composer-row { display: flex; align-items: flex-end; gap: 8px; }
.kb-composer-input { flex: 1; min-width: 0; }
.kb-composer-input .q-field__native { max-height: 140px; }
.kb-mode .q-btn { font-size: 12.5px; padding: 2px 8px; }
.kb-ask-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.kb-ask-label { font-size: 12.5px; color: var(--text-3); }
/* 對話框 */
.kb-reject-ideas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-bottom: 12px; }
.kb-ideas-label { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; color: var(--text-2); }
.kb-conditional { margin-top: 8px; padding: 8px 10px; border-radius: var(--r-sm); background: var(--surface-2); }
.kb-confirm-note { color: var(--text-2); font-size: 13px; }
.dw-load-prev { margin-left: auto; font-size: 13px; font-weight: 500; }
.dw-returned-tag { margin-left: 6px; }
/* 預檢提醒框的「判定規則」不要被擠成兩行 */
.precheck-gate .pr-rule { white-space: nowrap; flex: none; }
.pre-line { white-space: pre-line; }
.dw-saved { display: flex; align-items: center; gap: 4px; margin: 4px 0 0; font-size: 12px; color: var(--text-3); line-height: 1.5; }
.gate-note { margin: 10px 0 6px; font-size: 13px; color: var(--text-2); }

/* 側欄：經營戰情室的紅點（2026-10-24 取代驚嘆號）、交辦的數字 */
.rail .nav-alert-dot { width: 9px; height: 9px; margin-left: auto; border-radius: 50%; background: var(--danger); flex: none; }
.rail .nav-alert-dot.dot { position: absolute; top: 8px; right: 10px; margin: 0; }

/* 提示可以帶一個按鈕（復原、拉回） */
.adam-toast { display: flex; align-items: center; gap: 12px; }
.adam-toast-act { pointer-events: auto; border: 0; background: transparent; color: var(--accent-soft); font: inherit; font-weight: 600; cursor: pointer; padding: 2px 4px; text-decoration: underline; }

@media (max-width: 1000px) {
  .kb-shell { padding: 0 var(--s4) var(--s4); }
  .kb-board { grid-template-columns: repeat(5, 260px); }
  .kb-panel { width: 100vw !important; }
}

/* 戰情室的交辦進度表：對象、狀態、在誰手上不換行，主旨與下一步吃剩下的寬度（2026-10-24 人工走查：狀態 chip、人名被擠成兩行） */
.wr-directives .wr-table th, .wr-directives .wr-table td:nth-child(1), .wr-directives .wr-table td:nth-child(3), .wr-directives .wr-table td:nth-child(4) { white-space: nowrap; }
.wr-directives .wr-table td:nth-child(5) { min-width: 11em; }
.wr-directives .kb-chip { white-space: nowrap; font-size: 15px; padding: 2px 10px; }  /* 戰情室頁的字至少 15px（ADR-0015 第 3 點；test-designer 10-24 抓到 12px） */
.wr-sub { display: block; margin-top: 2px; padding: 0; border: 0; background: none; font: inherit; font-size: 15px; color: var(--text-2); text-align: left; cursor: pointer; }
.wr-sub:hover, .wr-sub:focus-visible { color: var(--accent); text-decoration: underline; }

/* ── 2026-11-02 照實體 128fba5b：搜尋與快速篩選、團隊負載、停滯、催一下、AI 建議待辦、歷次退回理由 ── */
.kb-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 0 var(--s6) var(--s3); }
.kb-search { width: 280px; max-width: 100%; }
.kb-quick { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.kb-quick-btn { font-size: 13px; }
.kb-person-chip { display: inline-flex; align-items: center; gap: 2px; padding: 0 2px 0 10px; border-radius: var(--r-pill); background: var(--accent-soft); color: var(--accent); font-size: 13px; }
.kb-nomatch { margin: 0 var(--s6) var(--s2); padding: 8px 12px; border-radius: var(--r-md); background: var(--surface-2); font-size: 14px; color: var(--text-2); }
.kb-load-btn.on, .kb-archived-btn.on { background: var(--accent-soft); }
.kb-load-table { margin-top: var(--s2); }
.kb-load-row { cursor: pointer; }
.kb-load-row:hover td, .kb-load-row:focus-visible td { background: var(--surface-2); }
.kb-load-row td.bad { color: var(--danger); font-weight: 600; }
.kb-stale { display: inline-flex; align-items: center; gap: 3px; color: var(--warning); font-weight: 500; }
.kb-check h3 { display: flex; align-items: center; gap: 6px; }
.kb-suggest { margin-left: auto; font-size: 13px; }
.kb-suggestions { margin: 4px 0 8px; }
.kb-sug-head { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; font-size: 13px; color: var(--text-2); }
.kb-sug-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.kb-sug-list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 2px 0; font-size: 14px; color: var(--text); }
.kb-returns { margin: 8px 0; padding: 8px 12px; border-left: 3px solid var(--danger); border-radius: var(--r-md); background: var(--danger-soft); }
.kb-returns h4 { display: flex; align-items: center; gap: 4px; margin: 0 0 4px; font-size: 14px; font-weight: 650; color: var(--text); }
.kb-returns p { margin: 2px 0 0; font-size: 14px; line-height: 1.6; color: var(--text); }
.kb-nudge-row { display: flex; justify-content: flex-start; margin-bottom: 6px; }
.kb-child-title { color: var(--text); }
@media (max-width: 1000px) {
  .kb-filters { padding: 0 var(--s4) var(--s3); }
  .kb-search { width: 100%; }
}
