/* ============================================================
   COMPONENTS — CPA workbench · client portal · tweaks panel
   ============================================================ */

/* ════════════════ CPA WORKBENCH ════════════════ */
#surface-cpa{flex-direction:row}
.wb-center{flex:1;min-width:0;display:block;overflow-y:auto;background:var(--bg);padding:22px 26px 40px}
.wb-right{width:330px;flex-shrink:0;border-left:1px solid var(--line);background:var(--bg-grain);display:flex;flex-direction:column;min-height:0}
.wb-right-tabs{display:flex;padding:10px 12px 0;gap:4px;flex-shrink:0;border-bottom:1px solid var(--line)}
.wb-right-tabs button{flex:1;border:0;background:transparent;color:var(--text3);font-size:12px;font-weight:560;padding:8px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.wb-right-tabs button:hover{color:var(--text)}
.wb-right-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}
.wb-right-body{flex:1;overflow-y:auto;padding:14px;min-height:0;display:flex;flex-direction:column}

.wb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px;max-width:1100px}
.wb-title{font-size:19px;font-weight:600;margin-bottom:4px}
.wb-sub{font-size:12.5px;color:var(--text2);line-height:1.55;max-width:760px}
.wb-sub b{color:var(--text);font-weight:600}

.legend{display:flex;gap:16px;margin-bottom:10px}
.legend .lg{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text2)}
.legend .sw{width:18px;height:3px;border-radius:2px;display:inline-block}
.legend .extracted-sw{background:var(--line3);border-bottom:2px dotted var(--line3)}
.legend .computed-sw{background:var(--accent)}

.tbl-wrap{border:1px solid var(--line);border-radius:var(--rl);overflow-x:auto;overflow-y:hidden;margin-bottom:12px}
.tbl-tools{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.row-x{color:var(--text3);cursor:pointer;padding:3px 6px;border-radius:5px;font-size:12px}
.row-x:hover{color:var(--red);background:var(--red-bg)}
tr.grp td{background:var(--bg-grain);font-weight:700;color:var(--text3);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:6px 11px}

/* Form 1120 */
.form-doc{border:1px solid var(--line);border-radius:var(--rl);overflow:hidden;max-width:720px;background:var(--surface)}
.form-band{background:var(--bg-grain);padding:9px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);border-bottom:1px solid var(--line);border-top:1px solid var(--line)}
.form-band:first-child{border-top:none}
.fr{display:grid;grid-template-columns:42px 1fr auto 64px;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--line);font-size:13px}
.fr:last-child{border-bottom:none}
.fr .fl{font-family:var(--font-mono);font-size:11px;color:var(--text3)}
.fr .flab{color:var(--text)}
.fr .fval{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;font-weight:600}
.fr .fval.computed{color:var(--accent-text);cursor:pointer;border-bottom:1px dotted var(--accent-line)}
.fr .fsrc{font-size:10px;color:var(--text3);text-align:right;font-family:var(--font-mono)}
.fr.sub{background:var(--surface2)}
.fr.tot{background:var(--accent-bg);font-weight:700}
.fr.tot .flab{font-weight:700}
.form-aside{max-width:720px;margin-top:14px;display:flex;flex-direction:column;gap:12px}

/* review queue */
.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:13px;max-width:1100px}
.qcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--rl);padding:14px 16px;display:flex;flex-direction:column;gap:9px}
.qcard.resolved{opacity:.6}
.qc-top{display:flex;align-items:center;gap:7px}
.qc-title{font-size:14px;font-weight:600}
.qc-detail{font-size:12.5px;color:var(--text2);line-height:1.55}
.qc-foot{display:flex;align-items:center;gap:8px 10px;margin-top:2px;flex-wrap:wrap}
.qc-foot .cite{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qc-foot .aer{flex-wrap:wrap;justify-content:flex-end}
.qcard{min-width:0}
.qcard .qc-title,.qcard .qc-detail{overflow-wrap:anywhere}

/* CCH-style diagnostic tiers (Electronic / Warning / Caution / Informational) */
.diag-tier{margin:18px 0 6px}
.diag-tier-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.diag-tier-h b{font-size:13.5px}
.diag-tier-h .muted{font-size:11.5px}
.diag-tier-desc{flex:1 1 220px;font-size:11.5px;color:var(--text2)}

/* tax-ready-books pre-flight (dashboard) */
.bv-row{display:flex;gap:9px;align-items:flex-start;padding:7px 2px;border-top:1px solid var(--line);font-size:12px}
.bv-row:first-of-type{border-top:0}
.bv-ico{flex-shrink:0;width:16px;text-align:center;font-size:12px;line-height:1.5}
.bv-row.ok .bv-ico{color:var(--green)}
.bv-row.warn .bv-ico{color:var(--warn)}
.bv-row.block .bv-ico{color:var(--red)}
.bv-body{display:flex;flex-direction:column;gap:1px;min-width:0}
.bv-body b{font-weight:600}
.bv-detail{color:var(--text2);line-height:1.5;overflow-wrap:anywhere}

/* prior-year comparison (dashboard) */
.pyc-head,.pyc-row{display:grid;grid-template-columns:1fr auto auto 52px;gap:10px;align-items:center;font-size:12px;padding:5px 2px}
.pyc-head{color:var(--text3);font-size:10px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line)}
.pyc-head span:not(:first-child),.pyc-row .pyc-n,.pyc-row .pyc-d{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}
.pyc-row{border-top:1px solid var(--line)}
.pyc-row.flag{background:var(--warn-bg);border-radius:6px}
.pyc-row.flag .pyc-lab{font-weight:600}
.pyc-d.up{color:var(--green)}
.pyc-d.down{color:var(--red)}
.pyc-row.flag .pyc-d{font-weight:700}

/* IRS form reference (right rail, #103) */
.ref-title{font-size:12.5px;font-weight:600;margin-bottom:6px;line-height:1.4}
.ref-summary{font-size:12px;color:var(--text2);line-height:1.55;margin-bottom:9px}
.ref-points{margin:0 0 11px;padding-left:16px;display:flex;flex-direction:column;gap:5px}
.ref-points li{font-size:12px;color:var(--text2);line-height:1.5}
.ref-link{font-size:12px;color:var(--accent-text);text-decoration:none;font-weight:600}
.ref-link:hover{text-decoration:underline}
.ref-note{font-size:10.5px;color:var(--text3);line-height:1.5;margin-top:9px;padding-top:8px;border-top:1px solid var(--line)}

/* co-pilot chat */
.chat{display:flex;flex-direction:column;flex:1;min-height:0}
.chat-ctx{font-size:10.5px;color:var(--text3);padding:2px 2px 10px;text-transform:uppercase;letter-spacing:.05em}
.chat-ctx b{color:var(--accent-text);font-weight:600}
.chat-msgs{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-right:2px}
.msg{display:flex;gap:9px;font-size:12.5px;line-height:1.55}
.msg-av{width:24px;height:24px;border-radius:6px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);font-size:11px;font-weight:700;display:grid;place-items:center;flex-shrink:0}
.msg-body{background:var(--surface);border:1px solid var(--line);border-radius:11px;border-top-left-radius:3px;padding:9px 12px;color:var(--text)}
.msg-body b{font-weight:600}
.msg.user{flex-direction:row-reverse}
.msg.user .msg-body{background:var(--accent-bg);border-color:var(--accent-line);border-top-left-radius:11px;border-top-right-radius:3px;color:var(--text)}
.chat-chips{display:flex;flex-wrap:wrap;gap:6px;padding:11px 0 9px}
.chip{border:1px solid var(--line2);background:var(--surface);border-radius:100px;padding:4px 11px;font-size:11px;color:var(--text2);cursor:pointer}
.chip:hover{border-color:var(--accent-line);color:var(--accent-text);background:var(--accent-bg)}
.composer{display:flex;align-items:flex-end;gap:7px;border:1px solid var(--line2);border-radius:12px;padding:6px 6px 6px 12px;background:var(--surface)}
.composer:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-bg)}
.composer textarea{flex:1;border:0;background:transparent;resize:none;font-size:12.5px;line-height:1.5;outline:none;padding:5px 0;max-height:120px}
.send{width:30px;height:30px;border-radius:8px;border:0;background:var(--accent);color:var(--accent-ink);font-size:15px;cursor:pointer;flex-shrink:0;display:grid;place-items:center}
.send:hover{filter:brightness(1.07)}
.composer-note{font-size:10px;color:var(--text3);padding:7px 2px 0;line-height:1.5}

/* ════════════════ CLIENT PORTAL ════════════════ */
#surface-client{flex-direction:row}
.cl-rail{width:300px;flex-shrink:0;border-right:1px solid var(--line);background:var(--bg-grain);overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:13px}
.cl-main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}
.cl-thread{flex:1;overflow-y:auto;padding:30px 22px 24px;display:flex;flex-direction:column;gap:18px;align-items:center}
.cl-thread > *{width:100%;max-width:720px}
.cl-composer-wrap{flex-shrink:0;border-top:1px solid var(--line);padding:12px 22px 14px;display:flex;flex-direction:column;align-items:center}
.cl-composer-wrap > *{width:100%;max-width:720px}
.cl-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.cl-chip{border:1px solid var(--line2);background:var(--surface);border-radius:100px;padding:5px 13px;font-size:12px;color:var(--text2);cursor:pointer}
.cl-chip:hover{border-color:var(--accent-line);color:var(--accent-text);background:var(--accent-bg)}
.cl-composer{display:flex;align-items:flex-end;gap:9px;border:1px solid var(--line2);border-radius:15px;padding:8px 8px 8px 10px;background:var(--surface)}
.cl-composer:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-bg)}
.cl-composer textarea{flex:1;border:0;background:transparent;resize:none;font-size:14px;line-height:1.55;outline:none;padding:7px 0;max-height:140px}
.cl-attach{width:34px;height:34px;border-radius:10px;border:1px solid var(--line2);background:transparent;color:var(--text2);font-size:18px;cursor:pointer;flex-shrink:0}
.cl-attach:hover{color:var(--text);border-color:var(--line3)}
.cl-send{width:34px;height:34px;border-radius:10px;border:0;background:var(--accent);color:var(--accent-ink);font-size:17px;cursor:pointer;flex-shrink:0}
.cl-send:hover{filter:brightness(1.07)}
.cl-foot{font-size:11px;color:var(--text3);text-align:center;padding:10px 0 0;line-height:1.5}

/* client rail cards */
.cl-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--rl);padding:14px 15px}
.cl-card-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);margin-bottom:11px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.cl-stage{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cl-pct{font-family:var(--font-mono);font-weight:600;font-size:13px;color:var(--accent-text)}
.cl-bar{height:5px;border-radius:4px;background:var(--surface2);overflow:hidden;margin-bottom:13px;border:1px solid var(--line)}
.cl-bar i{display:block;height:100%;background:var(--accent);border-radius:4px}
.cl-steps{display:flex;flex-direction:column;gap:9px}
.cl-step{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text3)}
.cl-step-dot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--line3);flex-shrink:0}
.cl-step.done{color:var(--text2)}
.cl-step.done .cl-step-dot{background:var(--green);border-color:var(--green)}
.cl-step.active{color:var(--text);font-weight:560}
.cl-step.active .cl-step-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.cl-todo{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start}
.cl-todo:last-of-type{border-bottom:none}
.cl-todo input{margin-top:2px;width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}
.cl-todo-body{display:flex;flex-direction:column;gap:2px}
.cl-todo-text{font-size:12.5px;color:var(--text);line-height:1.4}
.cl-todo-why{font-size:11px;color:var(--text3);line-height:1.4}
.cl-todo.done .cl-todo-text{text-decoration:line-through;color:var(--text3)}
.cl-doc{display:flex;align-items:center;gap:9px;padding:6px 0;font-size:12px}
.cl-doc-ic{color:var(--text3);font-size:14px;flex-shrink:0}
.cl-doc .grow{display:flex;flex-direction:column;line-height:1.3}
.cl-doc-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}
.cl-doc-when{font-size:10.5px;color:var(--text3)}
.cl-doc-ok{color:var(--green);font-size:13px}
/* FB-20: baseline document checklist rows in the client portal */
.cl-check{display:flex;align-items:flex-start;gap:9px;margin-bottom:7px}
.cl-check .grow{display:flex;flex-direction:column;line-height:1.32;min-width:0}
.cl-check-lab{font-size:12.5px;color:var(--text)}
.cl-check-box{flex:none;width:16px;height:16px;margin-top:1px;border-radius:5px;border:1.5px solid var(--line2,#333);display:flex;align-items:center;justify-content:center;font-size:11px;color:#15140e}
.cl-check.done .cl-check-box{background:var(--green,#2f9e6b);border-color:var(--green,#2f9e6b);color:#fff}
.cl-check.done .cl-check-lab{color:var(--text3)}
.cl-check.todo .cl-check-lab{font-weight:560}

/* client chat bubbles */
.cl-msg{display:flex;gap:11px;font-size:14px;line-height:1.6}
.cl-av{width:30px;height:30px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);font-size:12px;font-weight:700;display:grid;place-items:center;flex-shrink:0}
.cl-av.dana{background:var(--green);color:#fff}
.cl-body{max-width:560px}
.cl-msg.ai .cl-body, .cl-msg.dana .cl-body{background:var(--surface);border:1px solid var(--line);border-radius:14px;border-top-left-radius:4px;padding:13px 16px}
.cl-msg.user{flex-direction:row-reverse}
.cl-msg.user .cl-body{background:var(--accent-bg);border:1px solid var(--accent-line);border-radius:14px;border-top-right-radius:4px;padding:13px 16px}
.cl-sender{font-size:11px;font-weight:700;color:var(--green);margin-bottom:5px}
.cl-q{font-weight:560;margin-bottom:11px}
.cl-opts{display:flex;flex-wrap:wrap;gap:8px}
.cl-opt{border:1px solid var(--line2);background:var(--bg);border-radius:10px;padding:8px 14px;font-size:13px;cursor:pointer;color:var(--text)}
.cl-opt:hover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-text)}
.cl-drop{display:flex;align-items:center;gap:14px;border:1.5px dashed var(--line3);border-radius:12px;padding:18px 20px;cursor:pointer;color:var(--text2)}
.cl-drop:hover{border-color:var(--accent);background:var(--accent-bg)}
.cl-drop-ic{font-size:26px;color:var(--text3)}
.cl-docchip{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:560}
.cl-docchip .cl-doc-ok{font-size:11px;font-weight:600;background:var(--green-bg);color:var(--green);border:1px solid var(--green-line);padding:1px 7px;border-radius:5px}

/* estimate card */
.cl-est{border:1px solid var(--accent-line);border-radius:13px;overflow:hidden;background:var(--accent-bg)}
.cl-est-h{padding:12px 16px 0;font-size:12px;font-weight:600;color:var(--text2);display:flex;align-items:center;gap:8px}
.cl-est-big{font-family:var(--font-mono);font-size:34px;font-weight:700;color:var(--accent-text);padding:2px 16px 12px;letter-spacing:-.02em}
.cl-est-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line)}
.cl-est-grid > div{background:var(--surface);padding:10px 16px;display:flex;flex-direction:column;gap:2px}
.cl-est-grid span{font-size:11px;color:var(--text3)}
.cl-est-grid b{font-size:15px;font-weight:600}
.cl-est-note{background:var(--surface);padding:10px 16px;font-size:11px;color:var(--text3);line-height:1.5;border-top:1px solid var(--line)}

/* approve card */
.cl-approve{border:1px solid var(--line2);border-radius:13px;padding:14px 16px;background:var(--surface)}
.cl-approve-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.cl-approve-t{font-size:13.5px;font-weight:600;margin-bottom:3px}
.cl-approve-acts{display:flex;gap:8px}
.cl-approve-acts .btn[disabled]{opacity:.5;cursor:not-allowed}

/* ════════════════ CHAT STYLE: DOCUMENT ════════════════ */
:root[data-chat="doc"] .msg-body,
:root[data-chat="doc"] .msg.user .msg-body{background:transparent;border:0;border-radius:0;padding:0 0 12px;border-bottom:1px solid var(--line)}
:root[data-chat="doc"] .msg.user{flex-direction:row}
:root[data-chat="doc"] .msg.user .msg-av{background:var(--surface2);color:var(--text2)}
:root[data-chat="doc"] .cl-msg.ai .cl-body,
:root[data-chat="doc"] .cl-msg.dana .cl-body,
:root[data-chat="doc"] .cl-msg.user .cl-body{background:transparent;border:0;border-radius:0;padding:0 0 16px;border-bottom:1px solid var(--line);max-width:none}
:root[data-chat="doc"] .cl-msg.user{flex-direction:row}
:root[data-chat="doc"] .cl-msg.user .cl-av{background:var(--surface2);color:var(--text2)}
:root[data-chat="doc"] .cl-body{flex:1}

/* ════════════════ DENSITY ════════════════ */
:root[data-density="compact"]{font-size:12.5px}
:root[data-density="compact"] table.dt td{padding:5px 9px}
:root[data-density="compact"] .wb-center{padding:16px 18px 32px}
:root[data-density="compact"] .card{padding:12px 14px}
:root[data-density="compact"] .cl-thread{gap:13px;padding:20px 18px}
:root[data-density="comfy"] table.dt td{padding:10px 13px}
:root[data-density="comfy"] .wb-center{padding:30px 36px 48px}
:root[data-density="comfy"] .cl-thread{gap:24px;padding:40px 22px}
:root[data-density="comfy"] .cl-msg{font-size:15px}

/* ════════════════ TWEAKS PANEL ════════════════ */
.tw-panel{position:fixed;top:62px;right:14px;width:300px;background:var(--surface);border:1px solid var(--line2);border-radius:var(--rl);box-shadow:var(--shadow);z-index:130;overflow:hidden}
.tw-head{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid var(--line)}
.tw-head b{font-size:13px}
.tw-x{cursor:pointer;color:var(--text3);padding:3px 7px;border-radius:6px;font-size:13px}
.tw-x:hover{background:var(--surface2);color:var(--text)}
.tw-body{padding:14px 15px;display:flex;flex-direction:column;gap:15px}
.tw-row{display:flex;flex-direction:column;gap:8px}
.tw-row > label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}
.tw-row > label .muted{text-transform:none;letter-spacing:0;font-weight:400}
.tw-seg{display:flex;background:var(--surface2);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}
.tw-seg-b{flex:1;border:0;background:transparent;color:var(--text2);font-size:12px;font-weight:540;padding:6px;border-radius:6px;cursor:pointer;font-family:inherit}
.tw-seg-b:hover{color:var(--text)}
.tw-seg-b.on{background:var(--raised);color:var(--text);box-shadow:inset 0 0 0 1px var(--line2)}
.tw-sws{display:flex;gap:8px}
.tw-sw{width:30px;height:30px;border-radius:8px;background:var(--c);border:2px solid transparent;cursor:pointer;position:relative;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.tw-sw.on{border-color:var(--text);box-shadow:0 0 0 2px var(--bg) inset}
.tw-sw:hover{transform:scale(1.06)}

/* ════════════════ DASHBOARD ════════════════ */
.dash-hero{margin-bottom:16px}
.dash-hero .dh-name{font-size:22px;font-weight:700;color:var(--text);letter-spacing:-.01em}
.dash-hero .dh-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.dash-hero .dh-act{margin-top:9px;font-size:12.5px;color:var(--text2);max-width:760px;line-height:1.5}
.dash-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-bottom:16px;max-width:1100px}
.dash-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--rl);padding:14px 16px}
.dash-kpi .dk-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3)}
.dash-kpi .dk-val{font-size:24px;font-weight:700;color:var(--text);margin-top:6px;font-variant-numeric:tabular-nums;line-height:1.1}
.dash-kpi .dk-val.computed{color:var(--accent-text);cursor:pointer;display:inline-block;border-bottom:1px dotted var(--accent-line)}
.dash-kpi .dk-sub{font-size:11px;color:var(--text3);margin-top:4px}
.dash-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;max-width:1100px}
.dash-sched{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 2px;border-bottom:1px solid var(--line);cursor:pointer;font-size:12.5px}
.dash-sched:last-child{border-bottom:0}
.dash-sched .ds-name{color:var(--text2)}
.dash-sched:hover .ds-name{color:var(--text)}
.dash-sched.na{opacity:.78}
.dash-sched .ds-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--text3);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}
.dash-sched.na .ds-meta{font-family:inherit;font-size:11px;font-style:italic;white-space:normal;max-width:64%}
.dash-q{display:flex;align-items:center;gap:9px;padding:7px 2px;border-bottom:1px solid var(--line);cursor:pointer;font-size:12.5px}
.dash-q:last-child{border-bottom:0}
.dash-q .dq-t{color:var(--text2);line-height:1.4}
.dash-q:hover .dq-t{color:var(--text)}
/* rail: collapsible "not applicable" group */
.rail-na-h{cursor:pointer;display:flex;align-items:center;gap:6px;user-select:none}
.rail-na-h:hover{color:var(--text2)}
.rail-na-h .na-tog{font-size:9px}
.rail-item.na{opacity:.55}
.rail-item.na .ri-meta.na-meta{color:var(--text3);font-style:italic}

/* corrections log (dashboard, #100) */
.corr-row{padding:7px 2px;border-top:1px solid var(--line);font-size:12px}
.corr-row:first-of-type{border-top:0}
.corr-head{display:flex;align-items:baseline;gap:8px;justify-content:space-between}
.corr-head b{font-weight:600}
.corr-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text2);white-space:nowrap}
.corr-why{color:var(--text2);line-height:1.5;margin-top:2px;overflow-wrap:anywhere}
.corr-why .cite{margin-left:4px}

/* per-tab review sign-off (#95) */
.rail-item .ri-rev{color:var(--green);font-size:11px;margin-left:auto;flex-shrink:0}
.rail-item .ri-flag{color:var(--warn);font-size:11px;margin-left:auto;flex-shrink:0}
.rail-item .ri-rev + .ri-meta,.rail-item .ri-flag + .ri-meta{margin-left:6px}
.tab-review{display:inline-flex;gap:6px;margin-right:6px}
.tab-review .btn.rev-on{background:var(--green-bg);border-color:var(--green-line);color:var(--green)}
.tab-review .btn.flag-on{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}

/* ════════════════ RESPONSIVE ════════════════ */
@media (max-width:920px){
  .wb-right{width:300px}
  .cl-rail{width:248px}
}
@media (max-width:1000px){ .dash-cols{grid-template-columns:1fr} }
@media (max-width:740px){
  .ctx{display:none}
  .wb-right,.cl-rail{display:none}
}

/* --- Consolidated export dropdown (replaces the row of ~11 export buttons) --- */
.export-wrap{position:relative;display:inline-block}
.export-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:40;min-width:252px;
  background:var(--surface,#151515);border:1px solid var(--line2,#333);border-radius:8px;
  box-shadow:var(--shadow,0 8px 30px rgba(0,0,0,.5));padding:6px;max-height:72vh;overflow:auto}
.export-menu[hidden]{display:none}
.export-menu .exm-h{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3,#888);padding:8px 8px 4px;margin-top:2px}
.export-menu .exm-h:first-child{margin-top:0}
.export-menu button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--text,#eee);font:inherit;font-size:12.5px;padding:7px 8px;border-radius:6px;cursor:pointer}
.export-menu button:hover{background:var(--accent-bg,rgba(200,160,80,.14));color:var(--accent-text,#f0d9a8)}

/* --- Return "full package": every applicable form stacked and visible on-screen --- */
.pkg-index{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 4px;background:var(--bg,#0e0e0e);border-bottom:1px solid var(--line,#2a2a2a);margin-bottom:14px}
.pkg-index-l{font-size:11px;color:var(--text3,#888);margin-right:2px}
.pkg-index .pkg-jump{background:var(--surface2,#1c1c1c);border:1px solid var(--line2,#333);color:var(--text2,#ccc);font:inherit;font-size:11.5px;padding:4px 9px;border-radius:20px;cursor:pointer}
.pkg-index .pkg-jump:hover{border-color:var(--accent,#c8a050);color:var(--accent-text,#f0d9a8)}
.form-package{display:flex;flex-direction:column;gap:22px;padding-bottom:60px}
.form-page{border:1px solid var(--line2,#333);border-radius:10px;background:var(--surface,#141414);overflow:hidden}
.form-page-h{display:flex;align-items:center;gap:10px;padding:10px 14px;font-weight:600;font-size:13px;color:var(--text,#eee);background:var(--surface2,#1b1b1b);border-bottom:1px solid var(--line2,#333)}
.form-page-h .fp-no{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--accent-bg,rgba(200,160,80,.16));color:var(--accent-text,#f0d9a8);font-size:11px}
.form-page-h .fp-sheet{margin-left:auto;font-weight:400;font-size:11px;color:var(--text3,#888)}
.form-page-body{padding:14px 16px;overflow-x:auto}
.pkg-empty{padding:40px 20px;text-align:center;color:var(--text3,#888)}

/* --- Embedded IRS-form PDF viewer (EF-1) --- */
.pdf-toggle{display:inline-flex;margin-right:8px}
.pdf-toggle .btn{border-radius:0}
.pdf-toggle .btn:first-child{border-radius:7px 0 0 7px}
.pdf-toggle .btn:last-child{border-radius:0 7px 7px 0;border-left:0}
.pdf-toggle .btn.on{background:var(--accent-bg,rgba(200,160,80,.16));border-color:var(--accent,#c8a050);color:var(--accent-text,#f0d9a8)}
/* No fixed height — the viewer flows and grows to fit every page, so the workpaper's own scrollbar
   (.wb-center) walks through the whole form. A pinned calc(100vh-…) height nested its own scrollbar
   inside the page scroll (two fighting scrollbars → couldn't see the whole form). */
.cpa-pdf-mount{margin-top:10px}

/* Audit trail — clickable figure ("audit cell") + the source-document block in the trace modal.
   Every traced number is an .anum: dotted underline, click → Trace popup (source doc + computation).
   An .anum-unsourced (no document on file) is flagged so the ABSENCE of a source is itself auditable. */
.anum{cursor:pointer;border-bottom:1px dotted var(--accent,#c8a050);text-underline-offset:2px}
.anum:hover,.anum:focus{background:var(--accent-bg,rgba(200,160,80,.16));outline:none;border-radius:3px}
.anum-unsourced{border-bottom-color:var(--red-line,#c0504d);color:var(--red-line,#c0504d)}
.tsrc{margin:8px 0;padding:8px 10px;background:var(--surface2,#1b1b1b);border:1px solid var(--line2,#333);border-radius:7px}
.tsrc-none{background:transparent;border-color:var(--red-line,#c0504d);color:var(--red-line,#c66)}
.tsrc-h{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--text3,#888);margin-bottom:3px}
.tsrc-doc{font-weight:600;font-size:12.5px}
/* Gap 2: original-document overlay (opened from "View in document ↗") */
.docov-h{display:flex;align-items:baseline;gap:10px;justify-content:space-between;margin-bottom:8px}
/* EX-1: extraction inspector */
.ins-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:720px){.ins-grid{grid-template-columns:1fr}}
.ins-h{font-weight:700;font-size:12.5px;margin-bottom:6px}
.btn.xs{padding:2px 8px;font-size:11px;line-height:1.5}
.docov-body{max-height:72vh;overflow:auto;border:1px solid var(--line2,#333);border-radius:8px}
.tsrc-note{color:var(--text3,#888);margin:3px 0;font-size:11.5px}
.tsrc-snip{font-style:italic;color:var(--text2,#bbb);margin:3px 0;font-size:12px}
.tsrc-view{margin-top:5px;background:var(--accent-bg,rgba(200,160,80,.16));border:0;color:var(--accent-text,#f0d9a8);border-radius:5px;padding:4px 9px;cursor:pointer;font:inherit;font-size:11.5px}
.tsrc-view:hover{background:var(--accent,#c8a050);color:#1a1400}
/* transient highlight when "View in document ↗" jumps to the source doc in the inbox */
.doc-hl{outline:2px solid var(--accent,#c8a050);outline-offset:2px;border-radius:6px;transition:outline-color .4s;animation:docHl 2.6s ease-out}
@keyframes docHl{0%{background:var(--accent-bg,rgba(200,160,80,.28))}100%{background:transparent}}
/* The inline PDF viewer FLOWS in the workpaper's own scroll container (.wb-center) and grows to fit
   every page, so a single scrollbar walks through the whole form. (It previously had height:100% inside
   a fixed calc(100vh-…) mount with its own overflow:auto — two nested scrollbars, so you could never see
   the whole form: the "weird view" bug.) The toolbar stays put via position:sticky against .wb-center. */
.pdfv{display:flex;flex-direction:column;background:var(--bg,#0e0e0e);border:1px solid var(--line2,#333);border-radius:12px}
.pdfv-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;background:linear-gradient(var(--surface2,#1b1b1b),var(--surface,#151515));border-bottom:1px solid var(--line2,#333);border-radius:12px 12px 0 0;position:sticky;top:0;z-index:3}
.pdfv-left{display:flex;align-items:baseline;gap:10px;min-width:0}
.pdfv-title{font-weight:600;font-size:13px;color:var(--text,#eee);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdfv-meta{font-size:11px;color:var(--text3,#888);white-space:nowrap}
.pdfv-right{display:flex;align-items:center;gap:6px;flex:none}
.pdfv-btn{background:var(--surface,#151515);border:1px solid var(--line2,#333);color:var(--text2,#ccc);border-radius:7px;min-width:30px;height:28px;padding:0 10px;cursor:pointer;font:inherit;font-size:12.5px;display:inline-flex;align-items:center;justify-content:center}
.pdfv-btn:hover{border-color:var(--accent,#c8a050);color:var(--accent-text,#f0d9a8);background:var(--accent-bg,rgba(200,160,80,.14))}
.pdfv-zoom{font-size:11px;color:var(--text3,#888);min-width:38px;text-align:center;font-variant-numeric:tabular-nums}
.pdfv-pages{padding:20px;display:flex;flex-direction:column;align-items:center;gap:18px;min-height:200px;border-radius:0 0 12px 12px;background:repeating-linear-gradient(45deg,rgba(255,255,255,.012) 0 12px,transparent 12px 24px),var(--bg,#0e0e0e)}
.pdfv-page{box-shadow:0 6px 26px rgba(0,0,0,.55);border-radius:3px;overflow:hidden;line-height:0;background:#fff}
.pdfv-canvas{display:block;max-width:100%;height:auto}
.pdfv-msg{color:var(--text3,#888);font-size:12.5px;padding:36px 20px;text-align:center;margin:auto}

/* ---- Document request list (client portal catalog + CPA request panel) ---- */
.cl-doc-cat{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin:11px 0 5px;padding-top:7px;border-top:1px solid var(--line)}
.cl-doc-cat:first-of-type{border-top:0;padding-top:0;margin-top:2px}
.cl-nec{display:inline-block;font-size:9.5px;font-weight:600;padding:0 5px;border-radius:4px;vertical-align:middle;background:var(--surface2);color:var(--text3);border:1px solid var(--line2)}
.cl-nec.req{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.cl-nec.rec{background:var(--accent-bg);color:var(--accent-text);border-color:var(--accent-line)}
.cl-nec.cond{background:transparent;color:var(--text3)}
.cl-req-flag{display:inline-block;font-size:9.5px;font-weight:700;color:var(--accent-text);margin-left:3px}
.cl-notes{display:flex;flex-direction:column;gap:2px;margin-top:3px}
.cl-note{font-size:11px;color:var(--text2);font-style:italic}
.cl-note i{font-style:normal;color:var(--text3)}
.cl-note-add{flex:none;background:transparent;border:0;color:var(--text3);font-size:11px;cursor:pointer;padding:0 2px;white-space:nowrap}
.cl-note-add:hover{color:var(--accent-text)}
.cl-opt-toggle{font-size:11.5px;color:var(--accent-text);cursor:pointer;margin:8px 0 4px;user-select:none}
.cl-opt-toggle:hover{text-decoration:underline}
.cl-other-add{display:flex;gap:6px;margin-top:9px}
.cl-other-add input{flex:1;background:var(--surface2);color:var(--text);border:1px solid var(--line2);border-radius:7px;padding:6px 9px;font:inherit;font-size:12px}

/* CPA request panel */
.req-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.req-tools select,.req-tools input{background:var(--surface2);color:var(--text);border:1px solid var(--line2);border-radius:7px;padding:6px 9px;font:inherit;font-size:12px}
.req-tools select{min-width:220px;flex:1}
.req-tools input{flex:1;min-width:160px}
.req-list{display:flex;flex-direction:column;gap:5px}
.req-row{display:flex;align-items:center;gap:9px;font-size:12.5px;padding:5px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}
.req-stat{flex:none;font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:5px;background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-line);white-space:nowrap}
.req-stat.ok{background:var(--green-bg);color:var(--green);border-color:var(--green-line)}

/* ---- Activity log (multi-user audit trail) + per-tab activity component ---- */
.badge.act-neutral{background:var(--surface2);color:var(--text2);border-color:var(--line2)}
.act-kind{text-transform:none;letter-spacing:.2px}
.act-summary{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.act-summary .act-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.act-chip-n{font-size:11px;color:var(--text3);margin-right:8px}
.act-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.act-filters label{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text2)}
.act-filters select,.act-filters input[type=text]{background:var(--surface2);color:var(--text);border:1px solid var(--line2);border-radius:7px;padding:5px 8px;font:inherit;font-size:12px}
.act-filters input[type=text]{min-width:180px}
.act-filters .act-count{margin-left:auto;font-size:11.5px}
.act-table td.act-when{white-space:nowrap;color:var(--text2);font-size:11.5px}
.act-table td.act-who{white-space:nowrap}
.act-av{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent-bg);color:var(--accent-text);border:1px solid var(--accent-line);font-size:9.5px;font-weight:700;margin-right:6px;vertical-align:middle}
.act-delta{font-family:var(--font-mono);font-size:11px;color:var(--warn);white-space:nowrap}
.act-status{font-size:11px;color:var(--text2);font-style:italic}
.act-table td.act-why{color:var(--text2)}
.act-empty{color:var(--text3)}

.tab-activity{margin-top:18px;border-top:1px dashed var(--line2);padding-top:14px}
.tab-activity .ta-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.ta-title{font-weight:600;font-size:13px;color:var(--text)}
.ta-link{color:var(--accent-text);font-size:11.5px;cursor:pointer;margin-left:auto}
.ta-link:hover{text-decoration:underline}
.ta-note{display:flex;gap:8px;margin-bottom:10px}
.ta-note-in{flex:1;background:var(--surface2);color:var(--text);border:1px solid var(--line2);border-radius:7px;padding:6px 9px;font:inherit;font-size:12px}
.ta-feed{display:flex;flex-direction:column;gap:6px}
.ta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;padding:5px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}
.ta-what{font-weight:560;color:var(--text)}
.ta-row .act-why{font-style:italic;color:var(--text2)}
.ta-meta{margin-left:auto;color:var(--text3);font-size:11px;white-space:nowrap}

/* ── Per-figure confidence pill + ⓘ explain button, and the confidence panel in the trace modal ── */
.conf{font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:8px;margin-left:5px;vertical-align:middle;letter-spacing:.02em}
.conf-high{background:rgba(46,160,67,.16);color:var(--green,#2ea043)}
.conf-medium{background:rgba(199,145,0,.18);color:var(--warn,#c79100)}
.conf-low{background:rgba(226,85,122,.16);color:var(--red,#e2557a)}
.info-btn{display:inline-block;margin-left:3px;font-size:12.5px;color:var(--text2);cursor:pointer;opacity:.6;vertical-align:middle;line-height:1}
.info-btn:hover{opacity:1;color:var(--accent)}
.conf-panel{margin:6px 0 10px;padding:8px 11px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.conf-panel.conf-high{border-color:rgba(46,160,67,.4)}
.conf-panel.conf-medium{border-color:rgba(199,145,0,.4)}
.conf-panel.conf-low{border-color:rgba(226,85,122,.4)}
.conf-line{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:3px}
.conf-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:8px}
.conf-badge.conf-high{background:rgba(46,160,67,.16);color:var(--green,#2ea043)}
.conf-badge.conf-medium{background:rgba(199,145,0,.18);color:var(--warn,#c79100)}
.conf-badge.conf-low{background:rgba(226,85,122,.16);color:var(--red,#e2557a)}
.conf-verif{font-size:11.5px;color:var(--text2)}
.conf-basis{font-size:11.5px;color:var(--text2);line-height:1.45}
/* Itemized P&L: cross-foot badges (does our footed sum tie to the client's stated subtotal?) + sub-group bands */
.xf{font-size:10px;font-weight:600;padding:1px 7px;border-radius:5px;margin-left:7px;white-space:nowrap;border:1px solid;vertical-align:middle}
.xf.ok{background:var(--green-bg);color:var(--green);border-color:var(--green-line)}
.xf.bad{background:var(--red-bg,rgba(226,85,122,.14));color:var(--red,#e2557a);border-color:var(--red-line,#c0504d)}
.form-band.sub{text-transform:none;letter-spacing:.01em;font-weight:600;font-size:10.5px;color:var(--text2);padding:7px 16px 4px 22px;border-top:none;background:transparent}
.gate.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}
/* ⓘ plain-language explainer (distinct from the number-click trace) */
.explain{font-size:12.5px;line-height:1.6;color:var(--text)}
.explain p{margin:0 0 11px}
.explain p:last-child{margin-bottom:0}
.explain b{color:var(--text);font-weight:600}
.explain .conf-badge{display:inline-block;margin:2px 0}
.ex-snip{font-family:var(--font-mono);font-size:11.5px;color:var(--text2)}
/* ✎ pencil + EditPopover (per-value manual edit, recorded for review) */
.pencil{display:inline-block;margin-left:4px;font-size:11.5px;color:var(--text3);cursor:pointer;opacity:.55;vertical-align:middle;line-height:1}
.pencil:hover{opacity:1;color:var(--accent-text)}
#edit-pop{position:fixed;display:none;z-index:9998;width:340px;background:var(--surface);border:1px solid var(--line2);border-radius:12px;box-shadow:0 10px 34px rgba(0,0,0,.45);font-size:12.5px}
#edit-pop .ep-h{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid var(--line);font-size:13px}
#edit-pop .ep-x{cursor:pointer;color:var(--text3);padding:2px 6px}
#edit-pop .ep-x:hover{color:var(--text)}
#edit-pop .ep-b{padding:11px 13px 13px}
#edit-pop .ep-row{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-variant-numeric:tabular-nums}
#edit-pop .ep-lab{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin:10px 0 4px}
#edit-pop .ep-diff{min-height:16px;margin-top:7px;font-family:var(--font-mono);font-size:11.5px}
#edit-pop .ep-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:11px}
#edit-pop .ep-note{margin:0 0 8px;line-height:1.5;color:var(--text2)}
#edit-pop .ep-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;color:var(--text2)}
/* diff pills — the reviewer's per-figure "$base → $current" (pending amber / accepted green / rejected struck) */
.diff-pill{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:100px;font-size:10.5px;font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;cursor:pointer;border:1px solid;vertical-align:middle;white-space:nowrap}
.diff-pill.pending{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.diff-pill.accepted{background:var(--green-bg);color:var(--green);border-color:var(--green-line)}
.diff-pill.rejected{background:var(--surface2);color:var(--text3);border-color:var(--line2)}
.diff-pill:hover{filter:brightness(1.15)}
/* per-figure change history rows (the pill's click-through) */
.eh-row{padding:8px 2px;border-top:1px solid var(--line)}
.eh-row:first-child{border-top:none}
.eh-row.superseded{opacity:.55}
.eh-line{display:flex;align-items:center;justify-content:space-between;gap:8px;font-variant-numeric:tabular-nums}
.eh-meta{font-size:11px;color:var(--text3);margin-top:2px}
.eh-why{font-size:11.5px;color:var(--text2);margin-top:2px;line-height:1.45}
/* the Changes review queue */
.chg-row{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;padding:11px 16px;border-bottom:1px solid var(--line)}
.chg-row:last-child{border-bottom:none}
.chg-main{min-width:0;flex:1}
.chg-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.chg-meta{font-size:11px;color:var(--text3);margin-top:2px}
.chg-why{font-size:11.5px;color:var(--text2);margin-top:3px;line-height:1.45;overflow-wrap:anywhere}
.chg-acts{display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex-shrink:0}

/* ── #413 global error surface ─────────────────────────────────────────────
   Non-blocking toasts for uncaught errors / unhandled rejections. Bottom-right,
   above the workbench but never over the top bar; pointer-events stay off the
   stack so a toast can never swallow a click meant for the page underneath. */
#err-toasts{position:fixed;right:16px;bottom:16px;z-index:9999;display:flex;flex-direction:column;
  gap:8px;max-width:min(420px,calc(100vw - 32px));pointer-events:none}
.err-toast{display:flex;align-items:flex-start;gap:10px;pointer-events:auto;
  background:var(--surface2);color:var(--text);border:1px solid var(--line2);
  border-left:3px solid #e2557a;border-radius:9px;padding:10px 12px;
  box-shadow:0 6px 20px rgba(0,0,0,.22);font-size:12.5px;line-height:1.45;
  animation:et-in .18s ease-out}
.err-toast .et-msg{flex:1;min-width:0;overflow-wrap:anywhere}
.err-toast .et-x{flex-shrink:0;border:0;background:transparent;color:var(--text3);cursor:pointer;
  font-size:12px;line-height:1;padding:2px 3px;border-radius:5px}
.err-toast .et-x:hover{color:var(--text);background:var(--raised)}
@keyframes et-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.err-toast{animation:none}}
