/* Portal look, approved 22 September 2026 ("Final mix" mock-ups).
   Geist type, near-white ground, white rounded cards, dark sidebar, one teal
   main button, red / amber / green labels. Every page, account and operator
   screen reads its colours from the tokens below. Page files add layout only. */

@font-face{font-family:Geist;font-style:normal;font-weight:100 900;src:url(/static/geist.woff2) format('woff2');font-display:swap}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:100 900;src:url(/static/geist-mono.woff2) format('woff2');font-display:swap}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;src:url(/static/inter.woff2) format('woff2');font-display:swap}

:root{
  color-scheme:light;
  --font:Geist,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --bg:#FAFAF8;--paper:var(--bg);--card:#fff;--ink:#18181B;--muted:#5F6068;
  --line:#E7E7E1;--border:var(--line);--hairline:#F1F1EC;--control-line:#D8D8D2;
  --primary:#0F766E;--primary-hover:#0B5A54;
  --button:#EEF7F5;--button-hover:#E0EFEB;--focus:#0F766E;--accent:var(--focus);
  --green:#0F766E;--green-bg:#EEF7F5;--good-text:#0B5A54;--good-dot:#14B8A6;
  --clay:#B91C1C;--warm:#FEF2F2;--warm-edge:#F3C9C6;--bad-dot:#DC2626;
  --amb:#9A4A09;--amb-text:#B45309;--amb-bg:#FFF7ED;--amb-edge:#F2D4B0;--watch-dot:#D97706;
  --ok:var(--green);--ok-bg:var(--green-bg);--flag:var(--clay);--flag-bg:var(--warm);--warn-bg:var(--amb-bg);
  --quiet:#52525B;--quiet-bg:#F1F1EC;--computed:#555574;--computed-bg:#F3F2F7;
  --cite:#FEF3C7;--cite-edge:#F4D27A;
  /* Area colours, one per analysis (option D, 5 Oct 2026): stripe, soft background, text. */
  --area-indigo:#4338CA;--area-indigo-bg:#EEF2FF;--area-indigo-stripe:linear-gradient(90deg,#4F46E5,#8B5CF6);
  --area-amber:#B45309;--area-amber-bg:#FFF7ED;--area-amber-stripe:linear-gradient(90deg,#D97706,#F59E0B);
  --area-violet:#6D28D9;--area-violet-bg:#F5F3FF;--area-violet-stripe:linear-gradient(90deg,#7C3AED,#C084FC);
  --area-teal:#0F766E;--area-teal-bg:#F0FDFA;--area-teal-stripe:linear-gradient(90deg,#0F766E,#14B8A6);
  --area-sky:#0369A1;--area-sky-bg:#F0F9FF;--area-sky-stripe:linear-gradient(90deg,#0284C7,#38BDF8);
  --area-rose:#BE123C;--area-rose-bg:#FFF1F2;--area-rose-stripe:linear-gradient(90deg,#E11D48,#FB7185);
  /* Status underlines on summary tiles: red / amber / green, as the labels. */
  --bad-stripe:linear-gradient(90deg,#DC2626,#F87171);--watch-stripe:linear-gradient(90deg,#D97706,#F59E0B);--good-stripe:linear-gradient(90deg,#0F766E,#14B8A6);
  --sidebar:#15171C;--sidebar-text:#A7ADB8;--sidebar-bright:#F3F4F6;--nav-active:#262A33;--nav-border:#262A33;--nav-badge:#2E333D;
  --radius:22px;--radius-md:18px;--radius-sm:12px;
  --shadow-lift:0 12px 28px rgba(24,24,27,.08);
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{font-size:15px}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
a{color:var(--primary);text-underline-offset:3px}
a:hover{color:var(--primary-hover)}
button,input,select,textarea,summary{font:inherit}
h1,h2,h3{font-family:inherit;font-weight:500;margin:0;color:var(--ink)}
h1{font-size:32px;letter-spacing:-1px;line-height:1.15}
h2{font-size:21px;letter-spacing:-.4px;line-height:1.3;margin:26px 0 12px}
h3{font-size:16px;letter-spacing:-.2px;line-height:1.4}
p{margin:0 0 14px}
strong,b{font-weight:600}
code,.mono{font-family:var(--mono);font-size:.9em}
code,pre{overflow-wrap:anywhere}
pre{white-space:pre-wrap}
fieldset{min-width:0}
summary{cursor:pointer}
label,legend{font-size:14px}
small,.hint,.note,.field-note{font-size:13px;color:var(--muted)}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}
kbd{font-family:var(--mono);font-size:11px;color:var(--muted);background:transparent;border:0;padding:0}
[hidden]{display:none!important}

/* ---------- Controls ---------- */
button,.btn,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 18px;border:1px solid var(--primary);border-radius:999px;background:var(--primary);color:#fff;font-size:14px;font-weight:500;line-height:1.3;letter-spacing:normal;text-decoration:none;cursor:pointer;box-shadow:none}
button:hover,.btn:hover,.button:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff;filter:none}
button.secondary,.btn.secondary,.button.secondary{background:var(--card);border-color:var(--control-line);color:var(--ink)}
button.secondary:hover,.btn.secondary:hover,.button.secondary:hover{background:var(--card);border-color:#B8B8B0;color:var(--ink)}
button.danger,.btn.danger{background:var(--warm);border-color:var(--warm-edge);color:var(--clay)}
button.link,.btn.link{background:transparent;border-color:transparent;color:var(--primary);padding:0 8px}
/* A button drawn as a card (setup numbers, choices) keeps dark text on white. */
button.card,button.card:hover{background:var(--card);color:var(--ink);border-color:var(--line);white-space:normal}
/* Data health borrows the old light sidebar text for its teal day cells. */
.health-timeline-cell.health-cell-accepted{color:#fff}
button.link:hover,.btn.link:hover{background:transparent;color:var(--primary-hover)}
.btn.sm,button.sm{min-height:34px;padding:0 14px;font-size:13px}
button:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}
button:disabled:hover{background:var(--primary)}
button.secondary:disabled:hover{background:var(--card);border-color:var(--control-line)}

input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea{font:inherit;font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--control-line);border-radius:12px;padding:9px 13px;min-height:40px;max-width:100%}
select:not([multiple]):not([size]){border-radius:999px;padding-right:30px}
textarea{resize:vertical;line-height:1.5}
input[type=checkbox],input[type=radio]{accent-color:var(--primary)}
input[type=file]{font-size:13px;max-width:100%}
input::file-selector-button{font:inherit;font-size:13px;background:var(--card);color:var(--ink);border:1px solid var(--control-line);border-radius:999px;padding:7px 14px;margin-right:10px;cursor:pointer}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:3px}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):focus,select:focus,textarea:focus{border-color:var(--primary)}

/* ---------- Shell: sidebar, top bar, main ---------- */
body{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
/* Above the fixed Continue bar (z-index 30) so the open "How this works" card is never covered. */
.portal-sidebar{background:var(--sidebar);color:var(--sidebar-text);padding:26px 14px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:31}
.brand{display:flex;align-items:center;gap:10px;padding:0 10px;color:#fff;text-decoration:none;font-size:15px;font-weight:600;letter-spacing:-.2px}
.brand:hover{color:#fff}
.glyph{width:26px;height:26px;border-radius:8px;background:#2DD4BF;color:#062B28;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;padding:0}
.ui-icon{flex:none;width:17px;height:17px}
.sidebar-org{padding:0 12px;font-size:12.5px;color:#9CA3AF;display:grid;gap:2px}
.sidebar-org b,.sidebar-org .tenant-name{color:#E5E7EB;font-weight:600;font-size:14px}
.portal-sidebar .tenant-switch{display:grid;gap:6px;margin:0;padding:0 12px;font-size:12.5px;color:#9CA3AF}
.tenant-name{color:#E5E7EB;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.tenant-switch select{width:100%;min-height:34px;font-size:13px;min-width:0;padding:5px 28px 5px 12px;background:var(--nav-active);color:var(--sidebar-bright);border-color:#3F444F}
.portal-sidebar .chip.synthetic{justify-self:start;white-space:normal;font-size:10.5px;padding:2px 8px;letter-spacing:.02em;background:var(--nav-badge);color:#D1D5DB;border:0;border-radius:999px}
.portal-sidebar nav{display:flex;flex-direction:column;gap:3px}
.portal-sidebar nav>a,.portal-more>summary{display:flex;align-items:center;gap:12px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--sidebar-text);font-size:14px;line-height:1.4;text-decoration:none}
.portal-sidebar nav>a.active,.portal-sidebar nav>a[aria-current],.portal-more>summary.active{background:var(--nav-active);color:#fff}
.portal-sidebar nav>a:hover,.portal-more>summary:hover{background:var(--nav-active);color:#fff}
.nav-badge{margin-left:auto;font-size:11.5px;font-weight:600;padding:1px 8px;border-radius:99px;background:#4A1D1F;color:#FECACA;line-height:1.5}
.nav-badge.warn{background:#44321A;color:#FDE68A}
.nav-badge.plain{background:var(--nav-badge);color:#D1D5DB}
.portal-more{position:relative;margin-top:-18px}
.portal-more>summary{list-style:none;font-size:13px;color:#8B909B}
.portal-more>summary::-webkit-details-marker{display:none}
.portal-more>summary::after{content:'+';margin-left:auto;font-size:15px}
.portal-more[open]>summary::after{content:'−'}
.portal-more-panel{display:grid;gap:2px;padding:4px 0 0 0}
.portal-more-panel>a{color:var(--sidebar-text);font-size:13px;padding:8px 12px;text-decoration:none;border-radius:10px}
.portal-more-panel>a:hover,.portal-more-panel>a[aria-current]{background:var(--nav-active);color:#fff}
.portal-account{display:grid;gap:9px;border-top:1px solid #2A2E36;margin-top:8px;padding:12px 12px 0}
.portal-account .hint{color:var(--sidebar-text);overflow-wrap:anywhere}
.portal-account .btn.secondary{background:transparent;color:var(--sidebar-bright);border-color:#3F444F}
.sidebar-account{margin-top:auto;padding:0 12px;font-size:12.5px;color:#8B909B;overflow-wrap:anywhere}
.portal-sidebar :focus-visible{outline-color:#2DD4BF}
.sidebar-context{font-size:12.5px;color:#9CA3AF;padding:0 12px}
.sidebar-context:first-of-type{color:#E5E7EB;font-weight:600;font-size:14px}

.portal-workspace{min-width:0}
.portal-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:30px 64px 0;background:transparent;border:0;font-size:14px;color:var(--muted)}
.workspace-location b{color:var(--ink);font-weight:500}
.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.topbar-actions:empty{display:none}
.topbar-actions form{margin:0}
.topbar-actions button,.topbar-actions .btn{min-height:36px;padding:0 14px;font-size:13px}
.searchbtn kbd{margin-left:2px}
.portal-main{padding:28px 64px 64px;max-width:1440px;margin:0;min-width:0}
.portal-main:focus{outline:none}
.skip-link{position:fixed;left:244px;top:-100px;background:var(--card);border:1px solid var(--primary);padding:8px 12px;border-radius:999px;z-index:2000}
.skip-link:focus{top:8px}

/* ---------- Shared pieces ---------- */
.card,.source-card,.insight-card,.access-panel,.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 24px;margin-bottom:16px}
.card h3{margin:0 0 6px;font-size:16px;font-weight:500}
.card>h2:first-child,.card>h3:first-child{margin-top:0}
.operator-setup-steps{margin-top:22px}
.card,.source-card{overflow-wrap:anywhere}
.phead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:26px;position:relative}
.phead .count{font-variant-numeric:tabular-nums;color:var(--muted)}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:28px}
.page-head .lede{display:flex;flex-direction:column;gap:8px;max-width:980px}
.page-head h1{font-size:40px;letter-spacing:-1.3px;line-height:1.12}
.page-head p{margin:0;font-size:17px;color:var(--muted)}
.page-head .actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.phead details.ibox{position:static}
.phead details.ibox .ipop{left:auto;right:0;top:calc(100% + 8px);width:340px;min-width:0;max-width:100%}
.page-purpose{font-size:13px;color:var(--muted);margin:6px 0 18px;max-width:760px}
.step-count{font-size:14px;color:var(--muted)}

.eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--muted);margin:0}
.eyebrow.bad,.bad{color:var(--clay)}
.eyebrow.watch,.watch{color:var(--amb-text)}
.eyebrow.good,.good{color:var(--green)}
.chip,.state-pill,.pill{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:2px 11px;border:0;border-radius:999px;font-size:12.5px;font-weight:500;line-height:1.4;white-space:nowrap;background:var(--quiet-bg);color:var(--quiet)}
.chip.ok,.pill.good,.state-healthy,.state-healthy_with_evidence,.state-no_loss_detected{background:var(--ok-bg);color:var(--good-text)}
.chip.review,.pill.bad,.state-issue_detected,.state-loss_detected,.state-verified_issue,.state-questionable_data{background:var(--warm);color:var(--clay)}
.pill.watch,.state-insufficient_data,.state-missing_data,.state-missing_calibration,.state-calibration_missing{background:var(--amb-bg);color:var(--amb)}
.chip.quiet,.pill.quiet{background:var(--quiet-bg);color:var(--quiet)}
.chip.accent{background:var(--button);color:var(--good-text)}
.state-pill.state-healthy,.state-pill.state-healthy_with_evidence,.state-pill.state-no_loss_detected{background:var(--ok-bg);color:var(--good-text)}
.state-pill.state-issue_detected,.state-pill.state-questionable_data{background:var(--warm);color:var(--clay)}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none;background:#D4D4CE}
.dot.bad{background:var(--bad-dot)}.dot.watch{background:var(--watch-dot)}.dot.good{background:var(--good-dot)}
.kv{display:flex;flex-direction:column;gap:2px;min-width:0}
.kv>span{font-size:13px;color:var(--muted)}
.kv>b,.kv>strong{font-size:34px;font-weight:500;letter-spacing:-1.1px;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--ink)}
.kv>b.small,.kv>strong.small{font-size:16px;letter-spacing:0;font-weight:500}
.seg{display:inline-flex;gap:0;border:1px solid #DDDDD6;border-radius:999px;padding:3px;background:var(--card);position:relative;isolation:isolate}
.seg>a,.seg>button{min-height:0;padding:6px 14px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap}
.seg>a:hover,.seg>button:hover{background:transparent;color:var(--ink)}
.seg>[aria-current],.seg>[aria-pressed=true],.seg>[aria-selected=true],.seg>.on{background:var(--ink);color:#fff}
.seg>[aria-current]:hover,.seg>[aria-pressed=true]:hover,.seg>.on:hover{background:var(--ink);color:#fff}
.fn{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:999px;background:var(--ink);color:#fff;font:600 10.5px var(--font);padding:0 5px;vertical-align:1px}
.cite{background:var(--cite);box-shadow:inset 0 0 0 1px var(--cite-edge)}
.msg{background:var(--ok-bg);border:0;color:var(--good-text);padding:12px 16px;border-radius:14px;font-size:14px;margin-bottom:18px}
.message,.snapshot-notice{background:var(--amb-bg);border:1px solid var(--amb-edge);color:var(--amb);border-radius:14px;padding:12px 16px;font-size:14px;margin-bottom:18px}
.message a,.snapshot-notice a{color:inherit}
.empty{padding:26px;border:1px dashed var(--control-line);border-radius:var(--radius-md);background:var(--card);color:var(--muted);font-size:14px}
.empty h2{margin-top:0}

/* Portal tables. Reports (ours and the client's) keep their own look from report_editor.css. */
table:not(:where(.report-document *,.calculated-report *,.report-source *)){width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums;background:var(--card)}
th:not(:where(.report-document *,.calculated-report *,.report-source *)){font-size:11.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--muted);text-align:left;padding:11px 14px;border-bottom:1px solid #EEEEE8;background:transparent;white-space:nowrap}
tbody th:not(:where(.report-document *,.calculated-report *,.report-source *)){font-size:14px;font-weight:500;letter-spacing:normal;text-transform:none;color:var(--ink);white-space:normal;vertical-align:top}
.health-sample-grid th{text-transform:none;letter-spacing:normal}
td:not(:where(.report-document *,.calculated-report *,.report-source *)){padding:12px 14px;border-bottom:1px solid var(--hairline);vertical-align:middle}
tr:last-child td:not(:where(.report-document *,.calculated-report *,.report-source *)){border-bottom:0}
.report-document a,.calculated-report a,.report-source a{color:inherit}
td.r,th.r{text-align:right}
tr:target>td{background:var(--cite)}
.table-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:6px 10px 10px;overflow:auto}
.filters select,.filters input[type=date]{border-radius:999px}
.source-icon{width:28px;height:28px;border-radius:8px;font-size:12px}
.source-fact{background:var(--bg);border-radius:12px}
.report-frame{border-radius:var(--radius-md)}
dialog{color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md)}
dialog::backdrop{background:rgba(21,23,28,.35)}
.section-line{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:28px 0 12px}
.section-line h2{font-size:17px;margin:0}
.group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}
.group-head a{font-size:14px}

/* Older tints that became too faint on the new white cards. */
td.cell-info{background:#FDEFC3}
.cmdk-item.sel{background:#DCEEEA}
.report-differences.quiet{border-color:var(--line)}

/* ---------- Today ---------- */
.decision-page,.findings-archive{max-width:1312px}
.decision-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:26px;flex-wrap:wrap}
.decision-head{flex-direction:column;align-items:flex-start;gap:8px}
.decision-head h1{font-size:15px;font-weight:500;letter-spacing:0;color:var(--muted)}
.decision-head:not(:has(.today-lead)){margin:0}
.decision-head:not(:has(.today-lead)) h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.today-lead{margin:0;font-size:38px;font-weight:500;letter-spacing:-1.2px;line-height:1.16;max-width:1000px;color:var(--ink)}
.snapshot-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--muted);margin-bottom:12px}
.snapshot-context strong{color:var(--ink);font-weight:500}
.today-grid{display:grid;grid-template-columns:minmax(0,1fr) 356px;gap:28px;align-items:start}
.today-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.today-side{display:flex;flex-direction:column;gap:16px}
.side-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 24px;display:flex;flex-direction:column;gap:10px}
.side-card.warn{background:var(--amb-bg);border-color:var(--amb-edge)}
.side-card .row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px}
.side-card .row span:first-child{display:flex;align-items:center;gap:9px}
.side-card .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.side-card .title{font-size:17px;font-weight:500;letter-spacing:-.2px}
.fine-line{display:flex;align-items:baseline;gap:14px;padding:16px 22px;border:1px dashed var(--control-line);border-radius:var(--radius-md);font-size:15px}
.worth-line,.held-line{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:14px;color:var(--muted)}

/* Finding cards (Today and Findings) */
.finding-card{--finding-accent:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 30px;min-width:0;display:flex;flex-direction:column;gap:16px}
.finding-card.finding-issue,.finding-card.finding-severe{--finding-accent:var(--clay)}
.finding-card.finding-positive{--finding-accent:var(--green)}
.finding-card.finding-neutral,.finding-card.finding-limitation{--finding-accent:var(--amb-text)}
.finding-card.priority{padding:28px 32px}
.finding-label{font-size:12.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--finding-accent);margin:0}
.finding-card .finding-label{color:var(--finding-accent)}
.finding-lead{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:22px}
.finding-card h2,.finding-card h3{margin:0;color:var(--ink);font-weight:500;letter-spacing:-.6px;line-height:1.25;font-size:22px}
.finding-card.priority h2{font-size:28px;letter-spacing:-.8px}
.finding-impact{font-size:24px;font-weight:500;letter-spacing:-.6px;line-height:1.2;font-variant-numeric:tabular-nums;text-align:right;color:var(--finding-accent);overflow-wrap:anywhere}
.finding-card.priority .finding-impact{font-size:32px}
.finding-explanation{color:var(--ink);font-size:15.5px;line-height:1.55;margin:0;max-width:820px;white-space:pre-line}
.finding-card .finding-explanation{margin:0}
.finding-comparison{display:flex;gap:40px;flex-wrap:wrap;margin:0;padding:0;border:0}
.finding-comparison div{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--muted)}
.finding-comparison strong{display:block;font-size:24px;font-weight:500;letter-spacing:-.6px;line-height:1.2;color:var(--ink);margin-top:2px}
.finding-card.priority .finding-comparison strong{font-size:34px;letter-spacing:-1.1px;color:var(--finding-accent)}
.finding-uncertainty{font-size:13.5px;color:var(--muted);margin:0;white-space:pre-line}
.finding-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0}
.finding-actions small{margin-left:auto;font-size:13px;color:var(--muted)}
.finding-why{margin:-4px 0 0;font-size:13.5px;color:var(--muted)}
.finding-more{font-size:13px;max-width:100%}
.finding-more>summary{list-style:none;display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid var(--control-line);border-radius:999px;background:var(--card);color:var(--ink);font-size:14px;font-weight:500}
.finding-more>summary::-webkit-details-marker{display:none}
.finding-more[open]{flex-basis:100%;max-width:100%}
.finding-more[open]>summary{margin-bottom:10px}
.finding-more p{color:var(--muted);margin:6px 0;white-space:pre-line}
.finding-more li{margin:6px 0;overflow-wrap:anywhere}
.finding-id{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.finding-evidence{font-size:13px;color:var(--muted)}
.finding-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:9px 0}
.finding-action{margin-top:12px}
.supporting-findings{display:grid;grid-template-columns:1fr;gap:14px;margin-top:0}
.finding-next{display:grid;gap:4px;padding:14px 18px;border-radius:14px;background:var(--bg);font-size:14px}

.limitations-panel{margin-top:16px;border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:13px}
.limitations-panel>summary{color:var(--ink)}
.limitations-body{padding-top:9px}
.limitation-row{display:flex;justify-content:space-between;align-items:start;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.limitation-row b{color:var(--ink)}
.ops-panel{margin-top:24px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md)}
.ops-panel>summary{padding:16px 22px;font-size:14px}
.ops-body{padding:0 22px 22px}
.ops-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ops-metric{background:var(--bg);padding:14px;border-radius:12px}
.ops-metric .value{font-size:24px;font-variant-numeric:tabular-nums}
.ops-metric .label{color:var(--muted);font-size:13px}
.freshness-row{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;margin-top:14px}
.freshness-row b{margin-right:5px}

/* Finding detail slots (Findings page): working, cells, who is off, earlier days.
   The finding's display_kind decides which comes first. */
.finding-card>*{order:5}
.finding-card>.finding-label{order:0}.finding-card>h2,.finding-card>h3{order:1}.finding-card>.finding-why{order:1}
.finding-card>.finding-comparison{order:3}.finding-card>.finding-working{order:4}.finding-card>.finding-items{order:4}
.finding-card>.finding-cells{order:6}.finding-card>.finding-history{order:7}.finding-card>.finding-explanation{order:8}
.finding-card>.finding-uncertainty{order:9}.finding-card>.finding-next{order:10}.finding-card>.finding-actions{order:11}
.kind-should_match>.finding-working,.kind-who_is_off>.finding-items,.kind-trend>.finding-history{order:2}
.finding-card.kind-cannot_judge{background:var(--bg)}
button.fn{min-height:0;height:18px;padding:0 5px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:600 10.5px var(--font);vertical-align:1px;cursor:pointer}
button.fn:hover{background:var(--primary);color:#fff}
.finding-working,.finding-cells,.finding-history{display:flex;flex-direction:column;gap:8px}
.finding-working ol{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;max-width:560px}
.finding-working li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 14px;border-top:1px solid var(--hairline);font-size:14.5px}
.finding-working li:first-child{border-top:0}
.finding-working li.total{background:var(--bg);font-weight:600}
.finding-working .op{color:var(--muted);text-align:center}
.finding-working .num{text-align:right}
.unit{font-size:.85em;color:var(--muted)}
.finding-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-width:560px}
.finding-items li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 14px;border-radius:12px;background:var(--bg)}
.finding-items small{display:block;color:var(--muted);font-size:12.5px}
.finding-items b{color:var(--amb-text);font-weight:500}
.cells-row{display:flex;flex-direction:column;gap:4px}
.cells-row>a{font-size:12.5px}
table.tbl-cells{width:auto;font-size:13.5px}
table.tbl-cells th{padding:6px 12px}
table.tbl-cells td{padding:8px 12px;white-space:nowrap}
.finding-history ol{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap}
.finding-history li{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:74px;padding:8px 10px;border-radius:12px;background:var(--bg);font-size:13px}
.finding-history li b{font-weight:500}
.finding-history li small{color:var(--muted);font-size:12px}
.finding-history li.bad{background:var(--warm)}.finding-history li.bad b{color:var(--clay)}
.finding-history li.good b{color:var(--good-text)}
.finding-history li.watch{background:var(--amb-bg)}
.finding-history li:last-child{box-shadow:inset 0 0 0 1.5px var(--ink)}

/* ---------- Findings ---------- */
.findings-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.findings-toolbar form{display:flex;align-items:center;gap:10px;margin:0;font-size:14px;color:var(--muted)}
.findings-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}
.finding-list{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:10px;display:flex;flex-direction:column;gap:2px;position:sticky;top:20px}
.finding-list .group{display:flex;justify-content:space-between;align-items:center;padding:12px 12px 6px}
.finding-list a{display:block;padding:11px 12px;border-radius:12px;color:var(--ink);text-decoration:none;font-size:14.5px;line-height:1.45;overflow-wrap:anywhere}
.finding-list a:hover{background:var(--bg);color:var(--ink)}
.finding-list a span{min-width:0}
.finding-list a small{display:block;margin-top:2px;font-size:13px;color:var(--muted)}
.finding-list .foot{padding:12px;font-size:13px;color:var(--muted);margin:0}
.findings-cards{display:flex;flex-direction:column;gap:16px;min-width:0}
.findings-day{border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:14px;background:var(--card)}
.findings-day>summary{display:flex;align-items:center;gap:14px;padding:18px 22px;font-size:14px;list-style:none}
.findings-day>summary::-webkit-details-marker{display:none}
.findings-day>summary::after{content:'+';margin-left:auto;font-size:17px;color:var(--muted)}
.findings-day[open]>summary::after{content:'−'}
.findings-day[open]>summary{border-bottom:1px solid var(--line)}
.archive-date{font-weight:500;font-size:15px}
.archive-body{padding:18px;display:grid;gap:14px}
.archive-empty{font-size:14px;color:var(--muted)}
.archive-limitations{border-top:1px solid var(--line);padding-top:14px;font-size:13px}
.archive-limitations>summary{font-size:14px}
.archive-limitations-body{display:grid;gap:14px;margin-top:12px}
.archive-limitations .finding-card{--finding-accent:var(--amb-text)}
.lockbar{border-radius:14px;padding:12px 16px;font-size:14px}

/* ---------- Area colours (Today and Findings) ----------
   Each finding's analysis has a tone; the card wears it as a top stripe and a
   tag. Severity stays on the small red / amber / green label beside the tag. */
.area-indigo{--area:var(--area-indigo);--area-bg:var(--area-indigo-bg);--area-stripe:var(--area-indigo-stripe)}
.area-amber{--area:var(--area-amber);--area-bg:var(--area-amber-bg);--area-stripe:var(--area-amber-stripe)}
.area-violet{--area:var(--area-violet);--area-bg:var(--area-violet-bg);--area-stripe:var(--area-violet-stripe)}
.area-teal{--area:var(--area-teal);--area-bg:var(--area-teal-bg);--area-stripe:var(--area-teal-stripe)}
.area-sky{--area:var(--area-sky);--area-bg:var(--area-sky-bg);--area-stripe:var(--area-sky-stripe)}
.area-rose{--area:var(--area-rose);--area-bg:var(--area-rose-bg);--area-stripe:var(--area-rose-stripe)}
.finding-card.has-area{--finding-accent:var(--area);background-image:var(--area-stripe);background-repeat:no-repeat;background-size:100% 5px;background-position:top}
.finding-card.has-area .finding-label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;text-transform:none;letter-spacing:normal;font-weight:500;color:var(--muted)}
.area-tag{font-size:11.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--area)}
.area-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;background:var(--area-bg);color:var(--area);font-size:13px;font-weight:600}
.finding-list a:has(.area-icon){display:flex;align-items:flex-start;gap:12px}
.area-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 0 auto;padding:0;list-style:none;font-size:12.5px;color:var(--muted)}
.area-legend li{display:flex;align-items:center;gap:6px}
.area-legend li::before{content:'';width:10px;height:10px;border-radius:3px;background:var(--area-stripe)}
.status-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:-8px 0 24px}
.status-tile{display:flex;flex-direction:column;gap:2px;padding:14px 16px 16px;background:var(--card) no-repeat bottom/100% 4px;border:1px solid var(--line);border-radius:16px}
.status-tile>span{font-size:13px;color:var(--quiet)}
.status-tile>b{font-size:30px;font-weight:500;letter-spacing:-.8px;line-height:1.2}
.status-tile>small{font-size:12.5px}
.status-tile.tile-issue{background-image:var(--bad-stripe)}.status-tile.tile-issue>b{color:var(--clay)}
.status-tile.tile-worth{background-image:var(--watch-stripe)}.status-tile.tile-worth>b{color:var(--amb-text)}
.status-tile.tile-fine{background-image:var(--good-stripe)}.status-tile.tile-fine>b{color:var(--green)}

/* ---------- Proof (one source row) ---------- */
.evidence-page{max-width:1180px;background:transparent;border:0}
.evidence-page h2:first-child{margin-top:0}
.evidence-page dl{display:grid;grid-template-columns:minmax(130px,220px) minmax(0,1fr);gap:8px 20px}
.evidence-page dt{color:var(--muted)}
.evidence-page dd{margin:0;overflow-wrap:anywhere}
.evidence-page table{max-width:100%}
.evidence-page td{overflow-wrap:anywhere}
.proof-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:20px;align-items:start}

/* ---------- Data sources ---------- */
.source-page{max-width:1312px}
.source-page .phead>a{font-size:14px}
.source-list{display:flex;flex-direction:column;gap:12px;margin-bottom:22px}
.source-row{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 26px;display:grid;grid-template-columns:minmax(200px,1.3fr) 150px minmax(120px,170px) 230px auto;gap:18px;align-items:center}
.source-row .name{display:flex;flex-direction:column;gap:2px;min-width:0}
.source-row .name b{font-size:17px;font-weight:500}
.source-row .name span{font-size:13px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.source-row .kv>span+span{font-size:15px;color:var(--ink)}
.source-row .status{justify-self:end}
.source-row .source-more{grid-column:1/-1;border-top:1px solid var(--hairline);padding-top:12px}
.arrivals{display:flex;gap:4px;margin-top:5px}
.arrivals i{width:12px;height:12px;border-radius:50%;display:inline-block;border:1.5px dashed var(--watch-dot)}
.arrivals i.on{border:0;background:var(--good-dot)}
.source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.source-page .source-card{padding:22px 24px}
.source-page .source-card-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.source-page .source-card h2{font-size:17px;font-weight:500;margin:0}
.source-update{font-size:13px;color:var(--muted);margin:10px 0 16px}
.source-details{margin-top:14px;border-top:1px solid var(--hairline);padding-top:12px;font-size:14px}
.source-details summary{cursor:pointer;font-weight:500}
.source-details dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:9px 16px}
.source-details dt{color:var(--muted)}
.source-details dd{margin:0;overflow-wrap:anywhere}
.source-details code{overflow-wrap:anywhere;white-space:normal}
.source-lower{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:6px}
.recent-file{display:flex;gap:12px;align-items:center;font-size:14.5px}
.recent-file span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.recent-file small{display:block;font-size:13px}
.held-card{background:var(--ok-bg);border:1px solid #DDE9E3;border-radius:var(--radius-md);padding:22px 26px;display:flex;flex-direction:column;gap:8px}
.held-card.watch{background:var(--amb-bg);border-color:var(--amb-edge)}
.source-progress{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:18px 24px;margin:0 0 18px}
.source-progress-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}
.source-progress-head h2{font-size:17px;font-weight:500;margin:0}
.source-progress-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.source-progress-counts a{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border-left:2px solid var(--line);padding:2px 12px;color:var(--ink);text-decoration:none}
.source-progress-counts a:hover{border-color:var(--primary);background:var(--bg)}
.source-progress-counts span{font-size:14px;font-weight:500}
.source-progress-counts strong{font-size:26px;font-weight:500;line-height:1.3}
.source-progress-counts small{font-size:12px;color:var(--muted)}
.source-progress>.hint{font-size:13px;margin:13px 0 0}
.source-progress-alert{font-size:13px}
.source-progress-batches{margin-top:12px;font-size:13px}
.source-page .ops-panel{margin-top:18px}

/* ---------- Reports ---------- */
.report-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:22px}
.report-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:24px 26px;display:flex;flex-direction:column;gap:8px}
.report-card .title{font-size:19px;font-weight:500;letter-spacing:-.3px}
.report-card .facts{display:flex;gap:22px;margin:6px 0 4px}
.report-card .facts .kv>span+span{font-size:16px;color:var(--ink)}
.report-card .actions,.card-actions{display:flex;gap:8px;flex-wrap:wrap}
.report-card.pending{border-style:dashed;border-color:var(--control-line);background:var(--bg)}
.report-card .pending-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.report-card .pending-file{font-size:14px;overflow-wrap:anywhere}
.add-report{max-width:760px}.add-report form{display:flex;flex-direction:column;gap:20px}
.add-report label{display:flex;flex-direction:column;gap:6px}.add-report label.check{flex-direction:row;align-items:center}
.add-report .drop-zone{border:1.5px dashed var(--control-line);background:var(--bg);align-items:center;text-align:center}
.add-report .actions{display:flex;gap:8px;flex-wrap:wrap}
.add-report-steps{display:flex;flex-wrap:wrap;gap:12px 28px;margin:18px 0 0;padding:0;list-style:none;counter-reset:step;color:var(--muted);font-size:14px}
.add-report-steps li{counter-increment:step;display:flex;align-items:center;gap:10px}
.add-report-steps li::before{content:counter(step);display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:999px;background:var(--ink);color:var(--card);font-size:10.5px;font-weight:600}
.editions td:first-child{font-weight:500;white-space:nowrap}
.editions .month td{padding:18px 14px 8px;border-bottom:1px solid #EEEEE8}
.editions a.pill{text-decoration:none}
.report-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.report-side{display:flex;flex-direction:column;gap:16px}
.wa-note{background:#F3F7F5;border-radius:14px;padding:16px 18px;font-size:14px;line-height:1.55;white-space:pre-line}
.report-preview-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}

/* ---------- Account and setup pages ---------- */
.access-main,.onboard-card{width:100%;max-width:900px;margin:40px auto 64px;padding:32px 36px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.access-main:not(.wide),.onboard-card.account-card{max-width:520px}
.onboard-card:not(.account-card){max-width:1312px;margin:0;padding:28px 64px 72px;background:transparent;border:0;border-radius:0}
.onboard-card h1{font-size:36px;letter-spacing:-1.1px;line-height:1.15;margin-bottom:10px}
.onboard-card h1+p{font-size:15px}
.access-form,.onboard-card .access-form{display:grid;gap:18px;margin-top:22px}
.access-form label{font-size:14px;display:grid;gap:7px}
.access-form input,.access-form select{width:100%}
.access-form input[type=checkbox],.access-form input[type=radio]{width:auto}
.access-form small{font-size:13px;font-weight:400}
.access-main p,.onboard-card p{color:var(--muted);font-size:14px}
.access-main h1{margin-bottom:14px}
.onboard-top{margin-bottom:18px}
.onboard-card legend,.file-question>span{font-size:14px}
.onboard-card textarea{font-size:14px;line-height:1.55}
.answer-chips label span,.answer-chips button{border-radius:999px;padding:8px 16px;min-height:38px;font-size:13px;background:var(--card);border:1px solid var(--control-line);color:var(--ink);font-weight:500}
.answer-chips button:hover{background:var(--bg);color:var(--ink);border-color:#B8B8B0}
.answer-chips input:checked+span,.answer-chips button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.answer-chips input:focus-visible+span{outline:2px solid var(--primary);outline-offset:3px}
.help-card{font-size:13px;border-radius:var(--radius-sm);line-height:1.55}
.drop-zone,.reading-intro,.approved-proposal,.report-gaps,.start-limit{border-radius:var(--radius-md);padding:22px}
.drop-zone h2{font-size:17px}
.document-heading h2,.open-questions h2,.approved-proposal h2{font-size:21px}
.report-source,.report-rebuild{border-radius:var(--radius-md);padding:22px}
.onboard-card:has(.report-comparison){max-width:1480px}
.editor-actions{top:0}
.access-main .check{display:flex;align-items:center;gap:8px}
.company-choice,.company-choice:hover{font-size:15px;color:var(--ink);border-radius:var(--radius-md);min-height:0;white-space:normal}
.company-choice:hover{background:var(--bg);border-color:#B8B8B0}
.account-nav{display:grid;gap:5px}
.note{margin-top:16px}
.access-panel .access-form{max-width:480px}
.person{border-top:1px solid var(--line);padding:20px 0}
.person-controls{display:flex;align-items:end;gap:14px;flex-wrap:wrap}
.person-controls>label{display:grid;gap:7px}
.report-table-scroll,.audit-scroll{overflow:auto}
.error-detail{font-size:14px;white-space:pre-wrap}
.error-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.split .grid-pane{min-width:0}
.grid-pane table{width:max-content;min-width:100%}
.grid-pane th,.grid-pane td{white-space:nowrap;overflow-wrap:normal}
.grid-pane .cellmsg{white-space:normal}
.review-issues{background:var(--card)}

/* Onboarding: one action bar pinned along the whole bottom, right of the sidebar */
.onboard-card .continue-row,.onboard-card .review-actions{position:fixed;left:var(--sidebar-w,232px);right:0;bottom:0;z-index:30;display:flex;align-items:center;gap:16px;margin:0;padding:14px 64px;background:rgba(255,255,255,.97);backdrop-filter:blur(6px);border-top:1px solid var(--line)}
.onboard-card:not(.account-card):has(.continue-row,.review-actions){padding-bottom:120px}

/* Onboarding: sidebar steps, progress and page head */
.setup-org{padding:0 12px;display:grid;gap:2px;font-size:12.5px;color:#9CA3AF}
.setup-org b{color:#E5E7EB;font-size:14px;font-weight:600}
.setup-progress{height:4px;border-radius:99px;background:var(--nav-badge);margin:0 12px 10px;overflow:hidden}
.setup-progress>i{display:block;height:100%;width:var(--done,0%);background:#2DD4BF;border-radius:inherit}
.step-rail{margin:0}
.step-rail ol{list-style:none;display:flex;flex-direction:column;gap:4px;padding:0;margin:0}
.step-rail a{display:flex;flex-direction:row;align-items:center;gap:12px;border:0;border-top:0;border-radius:10px;padding:10px 12px;color:#8B909B;font-size:14px;line-height:1.35;text-decoration:none}
.step-rail a:hover{background:var(--nav-active);color:var(--sidebar-bright)}
.step-rail a span{width:24px;height:24px;border-radius:50%;border:1px solid #3F444F;background:transparent;color:#8B909B;display:grid;place-items:center;flex:none;font-size:12px;font-weight:600}
.step-rail li.done a{color:var(--sidebar-bright)}
.step-rail li.done a span{background:#14B8A6;border-color:#14B8A6;color:#062B28}
.step-rail a[aria-current]{background:var(--nav-active);color:var(--sidebar-bright);font-weight:500}
.step-rail a[aria-current] span{background:#fff;border-color:#fff;color:var(--sidebar)}
.portal-sidebar .onboard-help{margin-top:auto}
.portal-sidebar .help-control{min-height:0;padding:0 12px;border:0;background:transparent;color:#E5E7EB;font-size:12.5px;font-weight:500;justify-content:flex-start}
.portal-sidebar .help-control:hover,.portal-sidebar .help-control[aria-expanded=true]{background:transparent;color:#fff}
.portal-sidebar .help-control span{border-color:#3F444F}
.portal-sidebar .help-card{position:fixed;left:244px;right:auto;top:auto;bottom:24px;max-height:calc(100vh - 210px);overflow:auto;color:var(--ink)}
.onboard-card .help-control{padding:5px 8px;border:1px solid var(--line);background:var(--card);min-height:30px;color:var(--muted)}
.setup-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:26px}
.setup-head>div:first-child{display:flex;flex-direction:column;gap:6px;max-width:900px}
.setup-head h1{margin:0}
.setup-head p{margin:0;font-size:16px}
.setup-head .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}

/* Step 2: files and sheets */
.file-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:8px 8px 10px;margin-bottom:16px}
.file-card-head{display:flex;align-items:center;gap:14px;padding:16px 18px}
.file-card-head .name{display:flex;flex-direction:column;flex:1;min-width:0}
.file-card-head .name b{font-size:17px;font-weight:500;overflow-wrap:anywhere}
.file-card-head .name span{font-size:13px;color:var(--muted)}
.file-type{width:44px;height:44px;border-radius:12px;background:#E9F3F1;color:var(--good-text);display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}
.file-type.pdf{background:var(--warm);color:var(--clay)}
.file-type.doc{background:#EEF0F7;color:#3F4A7A}
.sheet-row{border-top:1px solid var(--hairline);margin:0 10px}
.sheet-row>summary{display:grid;grid-template-columns:minmax(0,1fr) 120px 110px;gap:14px;align-items:center;padding:14px 8px;list-style:none;font-size:15px}
.sheet-row>summary::-webkit-details-marker{display:none}
.sheet-row>summary .r{justify-self:end}
.sheet-row>summary .num{text-align:right;color:var(--muted);font-size:14px}
.sheet-row[open]>summary{font-weight:500}
.sheet-row .table-card{margin:0 0 14px;border-radius:14px}
.sheet-row table{font-size:13.5px}
.sheet-more{padding:12px 18px 6px;font-size:13px;color:var(--muted)}
.file-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.file-pair .file-card{margin:0}

/* Step 3: understanding, wants, answers, one question at a time */
.understanding-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}
.understanding-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.understanding-main .panel,.understanding-side .panel{margin:0}
.understanding-grid h2{font-size:17px;margin:0 0 14px}
.understood .understanding-section{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 0;border-top:1px solid var(--hairline)}
.understood .understanding-section:first-child{border-top:0;padding-top:0}
.understood .summary-copy{margin:0;color:var(--ink);font-size:15px;line-height:1.7;white-space:pre-line;max-width:72ch}
.understood [data-edit-section]{min-height:0;padding:0;font-size:13px}
.understood .summary-edit{align-self:stretch}
.priority-choice,.access-form label.priority-choice{display:flex;align-items:flex-start;gap:12px;padding:9px 0;font-size:14.5px;border-top:1px solid var(--hairline)}
.access-form .setup-item-nav label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px}
.priority-choice:first-of-type{border-top:0}
.priority-choice input{margin-top:4px}
.answer-list{display:flex;flex-direction:column;max-height:520px;overflow:auto}
.answer-item{display:flex;flex-direction:column;gap:3px;padding:11px 0;border-top:1px solid var(--hairline);font-size:14.5px}
.answer-item:first-child{border-top:0}
.answer-item .muted{font-size:13px}
.understanding-side{position:sticky;top:20px}
.understanding-side .setup-list-detail{grid-template-columns:1fr;gap:18px}
.understanding-side .setup-item-detail{order:-1}
.open-question{display:flex;flex-direction:column;gap:10px}
.open-question>label{font-size:16px;font-weight:400;line-height:1.5;color:var(--ink)}
.question-meta{font-size:13px}
.why-we-ask{background:var(--bg);border-radius:14px;padding:12px 16px}
.why-we-ask p{margin:4px 0 0;font-size:14px;color:var(--ink)}
.understanding-sources{margin-top:18px}
.answered-count{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.answered-count b{font-size:34px;font-weight:500;letter-spacing:-1px;line-height:1}
.answered-count span{font-size:15px}
.setup-progress.answered-bar{margin:0 0 14px;background:var(--quiet-bg);height:6px}
.setup-progress.answered-bar>i{background:var(--good-dot)}
.question-groups{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column}
.question-groups li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--hairline);font-size:14px}

/* Step 4: does our report match yours */
.match-summary{display:flex;align-items:center;gap:32px;flex-wrap:wrap;padding:22px 28px;margin-bottom:18px}
.match-count{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.match-count b{font-size:44px;font-weight:500;letter-spacing:-1.4px;line-height:1}
.match-count span{font-size:17px}
.match-bar-wrap{flex:1;min-width:280px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.match-bar{display:flex;gap:2px;height:8px;border-radius:99px;background:var(--quiet-bg);overflow:hidden}
.match-bar i{display:block;height:100%;width:var(--w,0%)}
.match-bar i.ok{background:var(--good-dot)}
.match-bar i.bad{background:var(--bad-dot)}
#calculation-review .setup-tabs{border:0;padding:0;margin:0 0 18px;gap:8px}
#calculation-review .setup-tabs [role=tab]{min-height:36px;padding:0 16px;font-size:13.5px;background:var(--card);color:var(--ink);border:1px solid var(--control-line)}
#calculation-review .setup-tabs [role=tab][aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.report-views{position:relative}
.view-radio{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.report-view-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 16px}
#calculation-review .report-view-bar .seg label{display:inline-block;margin:0;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;position:relative;z-index:1}
#report-view-diff:checked~.report-view-bar label[for=report-view-diff],#report-view-whole:checked~.report-view-bar label[for=report-view-whole],#report-view-side:checked~.report-view-bar label[for=report-view-side]{background:var(--ink);color:#fff}
#report-view-diff:focus-visible~.report-view-bar label[for=report-view-diff],#report-view-whole:focus-visible~.report-view-bar label[for=report-view-whole],#report-view-side:focus-visible~.report-view-bar label[for=report-view-side]{outline:2px solid var(--primary);outline-offset:2px}
.cell-key{display:flex;flex-direction:row;gap:16px;font-size:13px}
.cell-key>span{display:inline-flex;align-items:center;gap:6px}
#calculation-review .report-comparison{margin:0 0 18px}
#report-view-diff:checked~.report-comparison,#report-view-whole:checked~.report-comparison{grid-template-columns:minmax(0,1fr)}
#report-view-diff:checked~.report-comparison .report-source,#report-view-whole:checked~.report-comparison .report-source{display:none}
#report-view-diff:checked~.report-comparison [data-preview-section]:not(.has-difference),#report-view-diff:checked~.report-rebuild .calculated-report>section:not(.has-difference){display:none}
#report-view-diff:not(:checked)~.quiet-sections{display:none}
#calculation-review .report-rebuild .report-document table{min-width:0}
#report-view-diff:checked~.report-comparison .report-rebuild,#report-view-whole:checked~.report-comparison .report-rebuild{max-height:none;overflow:visible}
.yours{display:block;font-size:11.5px;font-weight:500;color:var(--clay);white-space:nowrap}
td.report-check .yours{color:var(--amb)}
.quiet-sections{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 18px;font-size:14px}
#report-numbers.panel{padding:0}
#calculation-review #report-numbers{margin-top:18px}
#calculation-review #report-numbers>summary{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;padding:18px 22px;font-size:16px;font-weight:500;list-style:none}
#report-numbers>summary::-webkit-details-marker{display:none}
#report-numbers[open]>summary{border-bottom:1px solid var(--hairline)}
#report-numbers>summary .muted{font-size:13px;font-weight:400}
#report-numbers>*:not(summary){margin-left:22px;margin-right:22px}
#calculation-review .differ-table td{vertical-align:top}
#calculation-review .differ-table td:last-child{min-width:260px;font-size:13.5px;color:var(--muted)}
#calculation-review .differ-table td:last-child button{min-height:30px;padding:0 12px;font-size:12.5px;margin-top:6px;background:var(--card);color:var(--ink);border-color:var(--control-line)}
#calculation-review .report-continue{gap:18px;justify-content:flex-start}
#calculation-review .report-continue>form,#calculation-review .report-continue>.button{margin-left:auto}
.diff-count{display:inline-flex;align-items:center;gap:8px;font-size:14px}
#calculation-panel{border-radius:22px 0 0 22px;padding:22px 26px;box-shadow:-18px 0 50px rgba(24,24,27,.12)}
#calculation-panel header{background:var(--card)}
#calculation-panel .calculation-actions{gap:10px;margin:16px 0}
#calculation-review .formula-entry{border-color:var(--hairline)}

/* Step 5: what is left before go-live */
.onboard-card .setup-overview.panel{display:block;padding:22px 26px 8px}
.setup-overview .start-section>p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.setup-overview .group-head h2{font-size:17px;margin:0}
.setup-overview .start-section{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 20px;align-items:start;padding:16px 0;border-bottom:1px solid var(--hairline)}
.setup-overview .start-section:last-child{border-bottom:0}
.setup-overview .start-section h2{grid-column:1;font-size:16px;font-weight:500;margin:0;display:flex;align-items:center}
.setup-overview .start-section>p,.setup-overview .start-section>ul,.setup-overview .start-section>details{grid-column:1;margin:0;font-size:14px;color:var(--muted)}
.setup-overview .start-section>ul{padding-left:34px}
.setup-overview .start-section>p{padding-left:34px}
.setup-overview .start-section>a{grid-column:2;grid-row:1;justify-self:end;display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border:1px solid var(--control-line);border-radius:999px;background:var(--card);color:var(--ink);font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap}
.setup-overview .start-section>a:hover{border-color:#B8B8B0}
.start-mark{width:24px;height:24px;margin-right:10px;font-size:12px}
.start-mark-done{background:var(--good-dot);color:#062B28}
.start-mark-open{background:var(--amb-bg);color:var(--amb)}
.start-mark-blocked{background:var(--warm);color:var(--clay)}
details.start-section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 22px;margin:16px 0}
#pack-build-status{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:20px 24px;margin:16px 0}
#pack-build-status h2{margin-top:0;font-size:17px}

/* ---------- Operator pages ---------- */
body.operator-shell{grid-template-columns:232px minmax(0,1fr);font-size:14px}
.operator-shell .operator-caption,.operator-shell .sidebar-account{color:#8B919C}
.operator-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:16px}
.operator-summary>div{padding:16px 20px;display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--hairline)}
.operator-summary>div:first-child{border-left:0}
.operator-summary b{font-size:26px;font-weight:500;letter-spacing:-.6px}

/* Small shared bits used by several pages */
.card-title{font-size:17px;font-weight:500;letter-spacing:-.2px;margin:0}
h2.card-title{margin:0 0 12px}
.card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.prepare-form{display:flex;gap:8px;align-items:center;margin:0}
.editions-head{padding:14px 12px 6px;align-items:center}
.editions-head h2{font-size:17px;margin:0}
.editions tr.month td{padding:18px 14px 8px;border-bottom:1px solid #EEEEE8}
.report-preview{padding:22px 24px}
.report-preview .report-document{max-width:none}
.source-row .source-more>summary{font-size:13.5px;color:var(--primary);font-weight:500}
.source-row .source-more form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:12px 0}
.source-row .source-more label{display:grid;gap:6px;font-size:13px}
.source-google{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.trace-photo img{max-width:420px;width:100%;border:1px solid var(--line);border-radius:14px}
.proof-card .report-table-scroll{overflow:auto}
.proof-card td,.proof-card th,.proof-grid td,.proof-grid th{white-space:nowrap}
.phead .eyebrow+h1{font-size:28px;letter-spacing:-.7px;margin-top:4px}
.earlier-days{font-size:17px;margin:34px 0 14px}
.setup-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.operator-heading{margin-bottom:18px}
.operator-heading h1{font-size:28px}
.operator-heading p{font-size:14px}
.operator-client-list td small{display:block;font-size:12.5px;color:var(--muted)}
.operator-client-list td a:not(.btn){color:var(--ink);font-weight:500;text-decoration:none}
.operator-summary .bad{color:var(--clay)}
.operator-shell .glyph{background:#2DD4BF;color:#062B28;width:26px;height:26px;border-radius:8px;padding:0}
.operator-client-list a.btn{color:#fff}
.operator-client-list a.btn.secondary{color:var(--ink)}
.files-questions-title{font-size:17px;margin:30px 0 12px}

/* ---------- Narrow screens: basic usability; desktop is the target ---------- */
@media(max-width:1100px){
  .today-grid,.findings-layout,.report-layout,.proof-grid,.source-lower,.file-pair{grid-template-columns:1fr}
  .finding-list{position:static}
  .source-row{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .onboard-card .continue-row,.onboard-card .review-actions{left:0;padding:12px 16px}
  .portal-sidebar .help-card{position:static;width:auto;max-width:none;max-height:none;margin-top:10px}
  body,body.operator-shell{grid-template-columns:minmax(0,1fr)}
  .operator-shell .portal-main{padding:20px 16px 48px}
  .operator-summary{grid-template-columns:1fr}
  .operator-summary>div{border-left:0;border-top:1px solid var(--hairline)}
  .operator-summary>div:first-child{border-top:0}
  .table-card,.operator-client-list{overflow-x:auto}
  .portal-sidebar{position:static;height:auto;padding:16px}
  .portal-topbar{padding:16px 16px 0}
  .portal-main,.onboard-card:not(.account-card){padding:20px 16px 48px}
  .finding-lead{grid-template-columns:1fr}
  .finding-impact{text-align:left}
  .decision-head h1,.page-head h1{font-size:30px}
  .source-row{grid-template-columns:1fr}
}

/* ---------- Filters (Findings) ---------- */
[data-show=issue] [data-group]:not([data-group=issue]),[data-show=worth] [data-group]:not([data-group=worth]),[data-show=fine] [data-group]:not([data-group=fine]){display:none}
.seg.has-slider::before{content:'';position:absolute;top:3px;bottom:3px;left:var(--x,3px);width:var(--w,0);border-radius:999px;background:var(--ink);z-index:-1}
.seg.has-slider>[aria-pressed=true],.seg.has-slider>[aria-pressed=true]:hover{background:transparent;color:#fff}

/* ---------- Motion ----------
   Quiet and short (150-300 ms). CSS first; motion.js only where a click starts it.
   Reuses rise, pulse and palin from portal.css. Nothing moves on its own except
   the red needs-you dot. All of it is off under prefers-reduced-motion. */
@keyframes grow{from{transform:scaleX(0)}}
@keyframes slide-in{from{opacity:0;transform:translateX(28px)}}
@keyframes fill-in{from{background:transparent;border-color:#3F444F;color:transparent}}
@keyframes cite-flash{50%{background:var(--cite);box-shadow:inset 0 0 0 2px var(--cite-edge)}}
button,.btn,.button,.seg>*,.portal-sidebar nav>a,.step-rail a{transition:background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .15s var(--ease)}
button:active:not(:disabled),.btn:active,.button:active{transform:scale(.97)}
.finding-card,.report-card,.side-card,.source-row,.file-card,.match-summary,.understanding-main>.panel,.understanding-side>.panel,.setup-overview,.operator-summary{animation:rise .3s var(--ease) both}
.today-side>:nth-child(2),.report-cards>:nth-child(2),.source-list>:nth-child(2),.findings-cards>:nth-child(2){animation-delay:.04s}
.today-side>:nth-child(3),.report-cards>:nth-child(3),.source-list>:nth-child(3),.findings-cards>:nth-child(3){animation-delay:.08s}
.finding-card,.report-card,.side-card,.source-row{transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.finding-card:hover,.report-card:hover,.side-card:hover,.source-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.seg.has-slider::before{transition:left .25s var(--ease),width .25s var(--ease)}
.finding-card:target{animation:palin .25s var(--ease)}
#calculation-panel:not([hidden]){animation:slide-in .25s var(--ease)}
td.pulse-once{animation:pulse .3s ease-out 1}
.cite-flash{animation:cite-flash .3s ease-out 1}
.setup-progress>i,.match-bar i{transform-origin:left;animation:grow .3s var(--ease) both}
.step-rail li.done a span{animation:fill-in .3s var(--ease) both}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--bad-dot);display:inline-block;margin-right:8px;vertical-align:1px;animation:pulse 2s infinite}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
