/* workspace.html loads NO styles.css, so this block is the entire palette for
   that page — the chrome, the rail, the chat pane and every shared component
   mounted inside them. #437 flipped styles.css to paper and left this file
   behind, which is why the page kept rendering a paper document inside dark
   chrome. The values below are the same ones styles.css declares; a test fails
   if the two fork. */
:root{
  --bg:#f4f5f2; --panel:#fbfbf9; --panel-2:#ffffff; --panel-3:#ffffff; --line:#e7e7e1; --line-2:#d9dad2;
  --ink-0:#1a1c1a; --ink-1:#33352f; --ink-2:#5f615a; --ink-3:#6f7168; --ink-4:#6f7168;
  /* The four accents are paper-legible values of the same hues, all >= 4.5:1 on
     white: the dark-theme originals (#ff6a3d, #7dd3fc, #34d399, #fbbf24) were
     tuned to glow on #0f1218 and wash out completely on a light ground. */
  --rust:#a8462c; --cyan:#2a6b65; --green:#1f7a52; --amber:#9a6a12;
  /* Document tokens, for the same reason: shared components resolve through
     them here and nowhere else on this page. view-toggle.css reads
     var(--doc-accent, var(--pine)) — with neither defined, the ACTIVE tab of
     the Capabilities Functions/Tech-stack switch renders white on white. */
  --doc-bg:#fbfbf9; --doc-card:#ffffff; --doc-wash:#f4f5f2;
  --doc-line:#e7e7e1; --doc-line-2:#d9dad2;
  --doc-ink-0:#1a1c1a; --doc-ink-1:#33352f; --doc-ink-2:#5f615a;
  --doc-ink-3:#6f7168; --doc-ink-4:#6f7168;
  --doc-accent:#1d4e4a; --doc-accent-2:#2a6b65; --doc-amber:#9a6a12;
  --doc-green:#1f7a52; --doc-warn:#a8462c; --doc-subtle:#f6f7f9;
  --doc-border:#e7e7e1; --doc-accent-soft:#e8f0ee; --doc-amber-soft:#f6edd7;
  --doc-serif:'Fraunces', Georgia, serif;
  --doc-sans:-apple-system, BlinkMacSystemFont, 'Inter', system-ui, sans-serif;
  /* The chrome names that SHARED sheets use. alpha.css, page-loading.css and
     deliverables.css load on this page and reference the --bg and --border
     families, which only styles.css declared — and this page loads no
     styles.css of its own. Their
     var() fallbacks were therefore the live values here, and they still held
     the deleted dark theme: the alpha feedback modal rendered #13161c with
     paper ink on it, its title at 1.06:1 and its textarea at 1.02:1.
     Aliases, not copies, so these cannot fork from the values above. */
  --bg-0:var(--bg); --bg-1:var(--panel); --bg-2:var(--panel-2); --bg-3:var(--panel-3);
  --border-1:#efefea; --border-2:var(--line); --border-3:var(--line-2);
  --accent:var(--rust); --accent-cyan:var(--cyan); --accent-green:var(--green); --accent-amber:var(--amber);
  /* Same reason as the block above: styles.css declares these and this page
     does not load it. The hover was still #3d4659, so a scrollbar on paper
     turned near-black under the pointer. */
  --scrollbar-thumb:var(--line-2); --scrollbar-thumb-hover:#c3c4ba; --scrollbar-thumb-active:#adaea4;
  --rail-w:52px; --rail-w-expanded:212px; --chat-w:320px; --top-h:48px;
}
*{box-sizing:border-box}
/* scrollbars, on paper (styles.css is not loaded on workspace pages) */
*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background-color:var(--line-2);border-radius:3px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}
*::-webkit-scrollbar-corner{background:transparent}
html,body{margin:0;height:100%;overflow:hidden}
body{background:var(--bg);color:var(--ink-1);font-family:-apple-system,BlinkMacSystemFont,'Inter',system-ui,sans-serif;font-size:14px}
a{color:inherit}
.back{position:fixed;top:12px;right:16px;font-size:11px;color:var(--ink-4);text-decoration:none;z-index:50}
.back:hover{color:var(--cyan)}

.app{display:grid;grid-template-rows:var(--top-h) 1fr;height:100vh}

/* ── top bar ── */
.topbar{
  display:flex;align-items:center;gap:12px;padding:0 14px;
  border-bottom:1px solid var(--line);background:var(--panel);
}
.topbar > .brand{flex:none}
.brand{font-weight:700;letter-spacing:.04em;color:var(--ink-0);font-size:13px;white-space:nowrap}
.brand span{color:var(--ink-4);font-weight:500}
a.brand-home{text-decoration:none;color:inherit;display:inline-flex;align-items:baseline;cursor:pointer}
a.brand-home:hover{opacity:.88}
.top-div{width:1px;height:22px;background:var(--line-2);flex:none}
.co-select{
  display:flex;align-items:center;gap:8px;background:var(--panel-2);
  border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;min-width:180px;cursor:pointer;
}
.co-select .nm{font-weight:600;color:var(--ink-0);font-size:13px;text-transform:capitalize}
.co-select .chev{color:var(--ink-4);font-size:10px;margin-left:auto}
.add-co{
  background:transparent;border:1px dashed var(--line-2);border-radius:8px;
  padding:6px 11px;font-size:12px;color:var(--ink-3);cursor:pointer;white-space:nowrap;font-family:inherit;
}
.add-co:hover{border-color:var(--cyan);color:var(--cyan)}
.top-spacer{flex:1}
.top-actions{display:flex;gap:4px}
.top-btn{
  background:transparent;border:1px solid transparent;border-radius:8px;
  padding:6px 12px;font-size:12.5px;color:var(--ink-2);cursor:pointer;
}
.top-btn:hover{background:var(--panel-2);color:var(--ink-0)}
.top-btn.on{background:var(--panel-2);border-color:var(--line-2);color:var(--ink-0)}
.top-btn .ic{margin-right:5px;opacity:.7}

/* ── body layout ── */
.body{display:flex;min-height:0;flex:1}
.body.resizing{cursor:col-resize;user-select:none}

/* ── left rail (collapsible) ── */
.rail{
  width:var(--rail-w);flex:none;
  border-right:1px solid var(--line);background:var(--panel);
  display:flex;flex-direction:column;padding:8px 0 10px;gap:2px;
  transition:width .2s ease;
  overflow:hidden;
}
.rail.expanded{width:var(--rail-w-expanded)}
.rail-head{
  display:flex;flex-direction:column;align-items:center;
  width:100%;padding:0 6px 8px;border-bottom:1px solid var(--line);margin-bottom:6px;gap:6px;
}
.rail.expanded .rail-head{
  flex-direction:row;align-items:center;justify-content:space-between;
  padding:0 8px 8px;gap:8px;
}
.rail-pct{
  width:100%;text-align:center;font-size:10px;font-weight:700;color:var(--green);
  padding:4px 0;line-height:1.2;cursor:pointer;background:transparent;border:none;font-family:inherit;
}
.rail-pct:hover{color:var(--cyan)}
.rail-pct:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:4px}
.rail.expanded .rail-pct{
  flex:1;min-width:0;text-align:left;padding:4px 0 4px 6px;width:auto;
}
.rail-pct small{display:block;font-size:8px;color:var(--ink-4);font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.rail-toggle{
  flex:none;width:28px;height:22px;border-radius:6px;border:1px solid var(--line-2);
  background:var(--panel-2);color:var(--ink-3);font-size:13px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;
  transition:transform .2s,color .15s,background .15s;
}
.rail.expanded .rail-toggle{width:24px;height:24px;font-size:14px}
.rail-toggle:hover{color:var(--ink-0);background:var(--panel-3)}
.rail.expanded .rail-toggle{transform:rotate(180deg)}
.rail-items{
  display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;flex:1;min-height:0;
  overflow-y:auto;overflow-x:hidden;padding:0 6px;
}
.rail.expanded .rail-items{align-items:stretch}
.nav-row-wrap{
  position:relative;width:38px;height:38px;flex:none;
  display:flex;align-items:center;
}
.rail.expanded .nav-row-wrap{width:100%;height:auto;min-height:38px;gap:4px;padding-right:2px}
.nav-row-wrap.on .nav-row{background:var(--panel-2);border-color:var(--line-2);color:var(--ink-0)}
.nav-row-wrap.on::before{
  content:'';position:absolute;left:0;top:8px;bottom:8px;width:2px;
  background:var(--rust);border-radius:0 2px 2px 0;z-index:1;
}
.nav-row{
  flex:1;min-width:0;height:38px;border-radius:10px;border:1px solid transparent;
  display:flex;align-items:center;gap:10px;cursor:pointer;
  color:var(--ink-3);font-size:15px;
  background:transparent;padding:0 0 0 6px;font-family:inherit;text-align:left;
}
.rail.expanded .nav-row{padding:0 4px 0 6px}
.nav-row:hover{background:var(--panel-2);color:var(--ink-1)}
.nav-row-link{text-decoration:none;display:flex;align-items:center;gap:10px;width:100%}
.nav-row-ic{
  flex:none;width:24px;text-align:center;font-size:15px;line-height:1;
}
.nav-row-label{
  flex:1;min-width:0;font-size:12.5px;font-weight:500;color:inherit;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  opacity:0;width:0;pointer-events:none;transition:opacity .15s;
}
.rail.expanded .nav-row-label{opacity:1;width:auto;pointer-events:auto}
.rail-group-label{
  font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);
  padding:10px 8px 4px;width:100%;flex-shrink:0
}
.rail:not(.expanded) .rail-group-label{display:none}
.rail-foot{
  margin-top:auto;padding:8px 6px 0;border-top:1px solid var(--line);width:100%;
  display:flex;flex-direction:column;align-items:center;gap:2px;
}
.rail.expanded .rail-foot{align-items:stretch}

/* view vs edit chrome */
.topbar-edit{display:none;align-items:center;gap:12px;flex:1;min-width:0}
.edit-co-name{font-weight:600;color:var(--ink-0);font-size:13px;text-transform:capitalize}
.edit-doc-name{font-size:12px;color:var(--ink-3)}
.topbar-view{display:flex;align-items:center;gap:12px;flex:1;min-width:0}

.app.mode-edit .topbar-view{display:none}
.app.mode-edit .topbar-edit{display:flex}
.app.mode-edit .center{flex:1}
.app.mode-edit .center-scroll{background:var(--bg)}
.app.mode-edit .center .doc{max-width:920px;padding:28px 36px 72px}
.app.mode-edit .edit-hint{
  display:block;background:var(--panel);border-bottom:1px solid var(--line);
  color:var(--ink-3);padding:8px 20px;margin:0;
}

/* ── center: view = light doc · edit = elevated dark ── */
.center{
  flex:1;min-width:280px;
  display:flex;flex-direction:column;min-height:0;
  background:#fbfbf9;
}
.center-toolbar{
  display:flex;align-items:center;justify-content:flex-end;gap:8px;
  padding:8px 16px;border-bottom:1px solid var(--doc-line);background:var(--doc-card);flex:none;
}
.center-toolbar .doc-label{
  display:flex;align-items:center;gap:7px;
  margin-right:auto;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--doc-ink-3);font-weight:600;
}
.doc-label-ic{font-size:14px;line-height:1;color:var(--doc-accent);letter-spacing:0;text-transform:none;font-weight:400}
.toolbar-actions{display:flex;align-items:center;gap:8px}
.edit-btn{
  background:var(--doc-wash);border:1px solid var(--doc-line-2);border-radius:8px;
  padding:5px 12px;font-size:12px;font-weight:600;color:var(--doc-ink-2);cursor:pointer;
}
.edit-btn:hover{border-color:var(--doc-accent);color:var(--doc-accent)}
.edit-btn.on{background:var(--doc-accent);border-color:var(--doc-accent);color:#fff}
.gen-btn,
.refresh-btn{
  background:var(--doc-wash);border:1px solid var(--doc-line-2);border-radius:8px;
  padding:5px 12px;font-size:12px;font-weight:600;color:var(--doc-ink-2);cursor:pointer;
}
.gen-btn:hover,
.refresh-btn:hover{border-color:var(--doc-accent);color:var(--doc-accent)}
.refresh-btn:disabled{opacity:.45;cursor:not-allowed}
.center-scroll{flex:1;overflow-y:auto}

.doc{
  max-width:740px;margin:0 auto;padding:40px 32px 80px;
  color:var(--doc-ink-1);font-family:var(--doc-sans);font-size:15px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.doc .eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--doc-accent);font-weight:700}
.doc .hrow{display:flex;align-items:flex-end;gap:18px;padding:8px 0 20px;border-bottom:1px solid var(--doc-line-2)}
.doc h1{font-family:var(--doc-serif);font-size:44px;color:var(--doc-ink-0);margin:6px 0 0;font-weight:600;letter-spacing:-.02em}
.doc .grade{margin-left:auto;text-align:right}
.doc .grade b{font-family:var(--doc-serif);font-size:30px;color:var(--doc-accent);display:block;line-height:1;font-weight:600}
.doc .grade small{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--doc-ink-3)}
.doc .meta{color:var(--doc-ink-3);font-size:13.5px;margin:14px 0 28px}

.doc .brief{background:var(--doc-accent-soft);border:1px solid #cfe0dc;border-radius:12px;padding:16px 18px;margin-bottom:30px}
.doc .brief .t{font-weight:700;color:var(--doc-accent);font-size:14.5px}
.doc .brief .s{color:var(--doc-ink-2);font-size:13px;margin-top:2px}
.doc .brief .r{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:13px}
.doc .addr{background:var(--doc-card);border:1px solid var(--doc-line-2);border-radius:8px;padding:6px 11px}
.doc .addr code{color:var(--doc-accent-2);font-family:ui-monospace,Menlo,monospace;font-size:12.5px}
.doc .way{background:var(--doc-card);border:1px solid var(--doc-line-2);border-radius:8px;padding:6px 12px;font-size:12.5px;color:var(--doc-ink-1);cursor:pointer}
.doc .way:hover{border-color:var(--doc-accent)}

.doc .claim{font-family:var(--doc-serif);font-size:27px;line-height:1.28;color:var(--doc-ink-0);font-weight:600;letter-spacing:-.01em;margin:0 0 8px}
.doc .claim em{font-style:italic;color:var(--doc-accent)}
.doc .sub{color:var(--doc-ink-3);font-size:14.5px;margin:0 0 28px}

.doc .cl{padding:16px 0;border-top:1px solid var(--doc-line);display:grid;grid-template-columns:140px 1fr;gap:22px;align-items:start}
.doc .cl:last-of-type{border-bottom:1px solid var(--doc-line)}
.doc .cn{font-weight:600;color:var(--doc-ink-0);font-size:14.5px}
.doc .chip{display:inline-block;margin-top:6px;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:3px 9px;border-radius:20px;border:1px solid}
.doc .firm{color:var(--doc-green);border-color:#bfe0cd;background:#eef7f1}
.doc .mixed{color:var(--doc-amber);border-color:#ecdcb4;background:#faf3e2}
.doc .thin{color:var(--doc-warn);border-color:#eccabd;background:#f9ece6}
.doc .cl p{margin:0;color:var(--doc-ink-2);font-size:14.5px;line-height:1.55}
.doc .cl-mix{align-items:start}
.doc .ws-mix-note{margin-top:10px;color:var(--doc-ink-2);font-size:14px;line-height:1.5}
.doc .ws-mix-pie{
  --accent-green:var(--doc-green);--accent-cyan:var(--doc-accent-2);--accent:var(--doc-accent);
  --surface-2:var(--doc-wash);--line:var(--doc-line);--ink-2:var(--doc-ink-2);--ink-3:var(--doc-ink-2);--ink-4:var(--doc-ink-3);
}
.doc .lm-root{
  --surface-0:var(--doc-card);--surface-1:var(--doc-wash);--surface-2:var(--doc-wash);
  --text-primary:var(--doc-ink-0);--text-secondary:var(--doc-ink-2);--text-muted:var(--doc-ink-3);
  --border:var(--doc-line);--border-strong:var(--doc-line-2);
  --font-voice:var(--doc-serif);--accent-cyan:var(--doc-accent-2);--radius:8px;
}
.doc .ctx-pie-wrap{padding:10px 12px;background:var(--doc-wash);border-radius:8px;border:1px solid var(--doc-line)}
.doc .ctx-pie-wrap.compact{padding:6px 8px}
.doc .ctx-pie-title{font-size:11px;font-weight:600;color:var(--doc-ink-2);margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}
.doc .ctx-pie-body{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.doc .ctx-pie-svg{width:140px;height:140px;flex-shrink:0}
.doc .ctx-pie-wrap.compact .ctx-pie-svg{width:100px;height:100px}
.doc .ctx-pie-legend{flex:1 1 160px;min-width:140px}
.doc .ctx-pie-leg-row{display:flex;align-items:center;gap:6px;font-size:11px;padding:2px 0;color:var(--doc-ink-2)}
.doc .ctx-pie-swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.doc .ctx-pie-leg-label{flex:1 1 auto}
.doc .ctx-pie-leg-pct{color:var(--doc-ink-3);font-variant-numeric:tabular-nums}
.doc .ctx-pie-empty{font-size:11px;color:var(--doc-ink-3);padding:8px 0}
.doc .fact-deals-wrap{margin:0;overflow-x:auto}
.doc .fact-deals-table{width:100%;border-collapse:collapse;font-size:13px}
.doc .fact-deals-table th{text-align:left;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--doc-ink-3);padding:0 12px 8px 0;border-bottom:1px solid var(--doc-line);font-weight:600}
.doc .fact-deals-table td{padding:8px 12px 8px 0;border-bottom:1px solid var(--doc-line);color:var(--doc-ink-1);vertical-align:top;line-height:1.45}
.doc .fact-deals-table tr:last-child td{border-bottom:none}
.doc .fact-deals-date{white-space:nowrap;color:var(--doc-ink-2);font-variant-numeric:tabular-nums}
.doc .cl-deals{align-items:start}
.doc .jobs-hiring-summary{margin:0}
.doc .jobs-hiring-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px 20px}
.doc .jobs-hiring-metric{display:flex;flex-direction:column;gap:4px}
.doc .jobs-hiring-num{font-family:var(--doc-serif);font-size:28px;font-weight:600;color:var(--doc-accent);line-height:1}
.doc .jobs-hiring-val{font-size:14px;font-weight:600;color:var(--doc-ink-0);line-height:1.35}
.doc .jobs-hiring-lbl{font-size:12px;color:var(--doc-ink-3);line-height:1.4}
.doc .jobs-hiring-foot{margin-top:12px;font-size:12px;color:var(--doc-ink-3)}
.doc .jobs-hiring-source{color:var(--doc-accent-2);text-decoration:none}
.doc .jobs-hiring-source:hover{text-decoration:underline}
.doc .jobs-hiring-empty{margin:0;color:var(--doc-ink-3);font-size:14px}

.doc .sec{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--doc-ink-3);font-weight:700;margin:30px 0 10px}
.doc .hyp{display:flex;gap:12px;padding:11px 0;border-top:1px solid var(--doc-line)}
.doc .hyp:last-child{border-bottom:1px solid var(--doc-line)}
.doc .cf{flex:none;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--doc-accent);background:var(--doc-accent-soft);padding:3px 9px;border-radius:20px;height:fit-content}
.doc .hyp p{margin:0;font-size:14.5px;color:var(--doc-ink-1);line-height:1.5}
.doc .hyp span{color:var(--doc-ink-3)}

.doc .oq{margin-top:28px;background:var(--doc-card);border:1px solid var(--doc-line-2);border-radius:12px;padding:18px 20px;box-shadow:0 1px 2px rgba(26,28,26,.04)}
.doc .oq .k{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--doc-accent);font-weight:700;margin-bottom:8px}
.doc .oq .q{font-family:var(--doc-serif);font-size:20px;font-weight:600;color:var(--doc-ink-0);margin:0 0 4px}
.doc .oq .w{color:var(--doc-ink-3);font-size:13.5px;margin:0 0 14px}
.doc .oq .a{display:flex;gap:10px}
.doc .oq input{flex:1;background:var(--doc-bg);border:1px solid var(--doc-line-2);border-radius:8px;padding:10px 13px;color:var(--doc-ink-0);font-size:14px}
.doc .oq button{background:var(--doc-accent);color:#fff;border:none;border-radius:8px;padding:10px 18px;font-weight:600;font-size:13.5px;cursor:pointer}

.doc .dl{padding:12px 0;border-top:1px solid var(--doc-line);display:flex;gap:14px;align-items:baseline}
.doc .dl:last-child{border-bottom:1px solid var(--doc-line)}
.doc .dl .when{flex:none;font-size:13px;font-weight:700;color:var(--doc-accent);min-width:88px}
.doc .dl p{margin:0;font-size:14.5px;color:var(--doc-ink-1);line-height:1.5}

.doc .ws-radar-host{margin:0 0 28px}

/* ── tech stack (read-only, light) — mirrors context.js renderTechStack ── */
.doc .ws-tech-summary{margin:0 0 12px;font-size:13px;color:var(--doc-ink-3)}
.doc .ws-tech-read{margin:0 0 14px;font-size:14.5px;line-height:1.55;color:var(--doc-ink-1)}
.doc .ws-tech-signals{margin:0 0 14px;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.doc .ws-tech-signals li{font-size:13.5px;color:var(--doc-ink-1);line-height:1.5}
.doc .ws-tech-rationale{color:var(--doc-ink-3)}
.doc .ws-tech-rel{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:20px;border:1px solid var(--doc-line-2);color:var(--doc-ink-2)}
.doc .ws-tech-rel-ahead{color:var(--doc-green);border-color:#bfe0cd;background:#eef7f1}
.doc .ws-tech-rel-at{color:var(--doc-accent);border-color:#cfe0db;background:var(--doc-accent-soft)}
.doc .ws-tech-rel-behind{color:var(--doc-warn);border-color:#eccabd;background:#f9ece6}
.doc .ws-tech-posture{margin:0 0 16px;font-size:13.5px;color:var(--doc-ink-1)}
.doc .ws-tech-layers{display:flex;flex-direction:column;gap:14px}
.doc .ws-tech-layer{border-top:1px solid var(--doc-line);padding-top:12px}
.doc .ws-tech-layer:first-child{border-top:none;padding-top:0}
.doc .ws-tech-layer-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.doc .ws-tech-layer-name{font-size:13.5px;font-weight:700;color:var(--doc-ink-0)}
.doc .ws-tech-basis{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 8px;border-radius:20px;border:1px solid var(--doc-line-2);color:var(--doc-ink-3)}
.doc .ws-tech-basis-verified{color:var(--doc-green);border-color:#bfe0cd;background:#eef7f1}
.doc .ws-tech-basis-detected{color:var(--doc-accent);border-color:#cfe0db;background:var(--doc-accent-soft)}
.doc .ws-tech-basis-inferred{color:var(--doc-amber);border-color:#e6d5b0;background:#f7f0e2}
.doc .ws-tech-chips{display:flex;flex-wrap:wrap;gap:6px}
.doc .ws-tech-chip{font-size:12.5px;color:var(--doc-ink-1);background:var(--doc-card);border:1px solid var(--doc-line-2);border-radius:6px;padding:3px 9px}

/* Capabilities: Functions | Tech Stack panels. The toggle's appearance lives in
   the shared view-toggle.css; this is placement and panel spacing only.
   The [hidden] guard is explicit because a display rule on .cap-view would
   otherwise silently defeat the `hidden` attribute. */
.doc .view-toggle{margin-bottom:22px}
.doc .cap-view[hidden]{display:none}

/* ── per-page hero visualizations ── */
.doc .ws-hero-host{margin:0 0 26px}
.doc .ws-hero{
  margin:0;padding:18px 20px;background:var(--doc-card);
  border:1px solid var(--doc-line-2);border-radius:12px;box-shadow:0 1px 2px rgba(26,28,26,.04);
}
.doc .ws-hero-cap{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--doc-ink-3);font-weight:700;margin:0 0 12px;
}
.doc .ws-hero-svg{max-width:560px}
.doc .ws-hero-svg svg{display:block;width:100%;height:auto}
.doc .ws-hero-note{
  display:flex;align-items:center;gap:7px;
  margin:12px 0 0;font-size:11.5px;color:var(--doc-ink-3);line-height:1.4;
}
.doc .ws-hero-stats{display:flex;margin:12px 0 0;border:1px solid var(--doc-line);border-radius:10px;overflow:hidden;max-width:560px}
.doc .ws-hero-stat{flex:1;padding:11px 14px;border-right:1px solid var(--doc-line)}
.doc .ws-hero-stat:last-child{border-right:none}
.doc .ws-hero-stat b{display:block;font-family:var(--doc-serif);font-size:21px;color:var(--doc-ink-0);line-height:1;font-weight:600}
.doc .ws-hero-stat span{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--doc-ink-3)}
.doc .ws-hero-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px;max-width:560px}
.doc .ws-hero-legend .wh-li{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--doc-ink-2)}
.doc .ws-hero-legend .wh-li i{width:11px;height:11px;border-radius:3px;flex-shrink:0}
.doc .ws-hero .wh-flag{width:9px;height:9px;border-radius:50%;background:var(--doc-amber);flex-shrink:0;display:inline-block}
.doc .ws-hero .wh-flag.warn{background:var(--doc-warn)}
.doc .ws-hero text{font-family:var(--doc-sans)}
.doc .ws-hero .wh-val{fill:var(--doc-ink-0);font-weight:700;font-size:12px;font-family:var(--doc-serif)}
.doc .ws-hero .wh-sm{fill:var(--doc-ink-3);font-size:9.5px}
.doc .ws-hero .wh-state{font-size:13px;font-weight:700;font-family:var(--doc-serif)}
.doc .ws-hero .wh-bub{font-size:9.5px;font-weight:700;fill:var(--doc-ink-1)}
.doc .ws-hero .wh-row{fill:var(--doc-ink-2);font-size:11px}
.doc .ws-hero .wh-warn{fill:var(--doc-warn);font-size:11px;font-weight:700}
.doc .ws-radar-figure{margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:14px}
.doc .ws-radar-img{
  display:block;width:min(100%,420px);height:auto;
  border:1px solid var(--doc-line-2);border-radius:12px;background:var(--doc-card);
  box-shadow:0 1px 2px rgba(26,28,26,.04);
}
.doc .ws-radar-figure figcaption{width:100%;max-width:520px}
.doc .ws-radar-legend{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.doc .ws-radar-leg{
  display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:20px;
  border:1px solid var(--doc-line-2);background:var(--doc-card);font-size:12px;color:var(--doc-ink-2);
}
.doc button.ws-radar-leg{
  cursor:pointer;font:inherit;line-height:1.2;transition:border-color .12s,opacity .12s,background .12s;
}
.doc button.ws-radar-leg:not(.on){opacity:.45}
.doc button.ws-radar-leg:hover{border-color:var(--doc-line);background:#f5f5f2}
.doc .ws-radar-leg i{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.doc .ws-radar-leg.primary{border-color:#bfe0cd;background:#eef7f1;color:var(--doc-green);font-weight:600}
.doc .ws-radar-leg-remove{
  margin-left:2px;padding:0 4px;border-radius:50%;font-size:14px;line-height:1;color:var(--doc-ink-3);
}
.doc .ws-radar-leg-remove:hover{color:var(--doc-warn)}
.doc .ws-radar-gaps{margin:10px 0 0;font-size:13px;color:var(--doc-warn);text-align:center;line-height:1.45}
.doc .ws-radar-hint{
  margin:12px 0 0;font-size:12.5px;color:var(--doc-ink-3);text-align:center;line-height:1.45;
}
.doc .ws-radar-request{
  margin-top:14px;padding-top:14px;border-top:1px solid var(--doc-line);
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.doc .ws-radar-request-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--doc-ink-3);font-weight:700}
.doc .ws-radar-request-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;width:100%;max-width:420px}
.doc .ws-radar-request-input{
  flex:1;min-width:180px;padding:8px 10px;border:1px solid var(--doc-line-2);border-radius:8px;
  background:var(--doc-card);font-size:13px;color:var(--doc-ink-1);
}
.doc .ws-radar-request-btn{
  padding:8px 14px;border:none;border-radius:8px;background:var(--doc-accent);color:#fff;
  font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;
}
.doc .ws-radar-request-btn:hover{filter:brightness(.95)}
.doc .ws-radar-request-btn:disabled{opacity:.45;cursor:not-allowed}
.doc .ws-radar-pending-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:10px}
.doc .ws-radar-pending{
  display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;
  border:1px dashed var(--doc-line-2);background:var(--doc-card);
  font-size:12px;color:var(--doc-ink-3);
}

/* ── Show Our Work — per-page provenance dock (Task 6) ──
   Ported from the honest-mockup layout; classes prefixed `sow-` so nothing
   collides with existing workspace classes, and colors reuse the --doc-*
   tokens defined on .center instead of the mockup's local :root vars. */
.doc .sow{margin-top:20px;border:1px solid var(--doc-line-2);border-radius:10px;background:var(--doc-card);overflow:hidden}
.doc .sow-strip{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 15px;
  background:linear-gradient(180deg,var(--doc-accent-soft),#eef3f1);border:none;cursor:pointer;
  font-family:var(--doc-sans);color:var(--doc-ink-1);
}
.doc .sow-strip:hover{background:linear-gradient(180deg,#e2ede9,#e6efeb)}
.doc .sow-strip:focus-visible{outline:2px solid var(--doc-accent);outline-offset:-2px}
.doc .sow-glyph{
  font-family:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;color:var(--doc-accent);font-size:13px;font-weight:700;
  width:22px;height:22px;border-radius:6px;display:grid;place-items:center;
  background:var(--doc-card);border:1px solid var(--doc-accent-soft);flex:none;
}
.doc .sow-lbl{font-weight:600;color:var(--doc-ink-0);font-size:13px}
.doc .sow-sum{font-family:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;font-size:11.5px;color:var(--doc-ink-2);display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.doc .sow-dot{color:var(--doc-ink-4)}
.doc .sow-caret{margin-left:auto;color:var(--doc-accent);font-size:11px;transition:transform .18s;flex:none}
.doc .sow.sow-open .sow-caret{transform:rotate(180deg)}
.doc .sow-body{display:none;border-top:1px solid var(--doc-line)}
.doc .sow.sow-open .sow-body{display:block}

.doc .sow-grid{display:grid;grid-template-columns:1.5fr 1fr}
.doc .sow-col{padding:18px}
.doc .sow-col + .sow-col{border-left:1px solid var(--doc-line)}
.doc .sow-h{font-family:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--doc-ink-4);margin:0 0 12px}
.doc .sow-h.sow-h-mt{margin-top:22px}
.doc .sow-mech{color:var(--doc-ink-1);font-size:13px;line-height:1.5;margin:0 0 14px}

/* method chip — how a page is made */
.doc .sow-method{
  font-family:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;
  border:1px solid var(--doc-line-2);background:var(--doc-wash);color:var(--doc-ink-2);white-space:nowrap;
  display:inline-flex;align-items:center;gap:6px;
}
.doc .sow-method::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--doc-ink-4);flex:none}
.doc .sow-method-engine{color:var(--doc-accent);background:var(--doc-accent-soft);border-color:#cfe0db}
.doc .sow-method-engine::before{background:var(--doc-accent)}
.doc .sow-method-research::before{background:#5b8ad1}
.doc .sow-method-rubric::before{background:var(--doc-amber)}
.doc .sow-method-agents{color:#6b3fa0;background:#f1ecf8;border-color:#ddd0ee}
.doc .sow-method-agents::before{background:#7d54b3}
.doc .sow-method-composed::before{background:var(--doc-ink-3)}

/* rating — firm / directional / thin / composed / no data */
.doc .sow-rating{font-weight:600}
.doc .sow-rating-firm{color:var(--doc-green)}
.doc .sow-rating-directional{color:var(--doc-amber)}
.doc .sow-rating-thin{color:var(--doc-warn)}
.doc .sow-rating-composed{color:var(--doc-accent)}
.doc .sow-rating-nodata{color:var(--doc-ink-3)}

.doc .sow-contrib{display:flex;gap:11px;padding:9px 0;border-bottom:1px dotted var(--doc-line-2)}
.doc .sow-contrib:last-child{border-bottom:none}
.doc .sow-av{width:26px;height:26px;border-radius:7px;flex:none;display:grid;place-items:center;font-family:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;font-weight:700;font-size:10px}
.doc .sow-av-engine{background:var(--doc-accent-soft);color:var(--doc-accent)}
.doc .sow-av-phase{background:#e9f0f8;color:#3f6bb0}
.doc .sow-av-agent{background:#f1ecf8;color:#6b3fa0}
.doc .sow-an{color:var(--doc-ink-0);font-weight:600;font-size:13px}
.doc .sow-ar{color:var(--doc-ink-3);font-size:12px;margin-top:1px}

.doc .sow-pipe{list-style:none;margin:0;padding:0;counter-reset:sowstep}
.doc .sow-pipe li{position:relative;padding:0 0 14px 30px;counter-increment:sowstep}
.doc .sow-pipe li::before{content:counter(sowstep);position:absolute;left:0;top:-1px;width:20px;height:20px;border-radius:50%;background:var(--doc-card);border:1.5px solid var(--doc-accent);color:var(--doc-accent);font-family:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;font-size:11px;font-weight:600;display:grid;place-items:center}
.doc .sow-pipe li::after{content:"";position:absolute;left:9.5px;top:20px;bottom:2px;width:1.5px;background:var(--doc-line-2)}
.doc .sow-pipe li:last-child{padding-bottom:0}
.doc .sow-pipe li:last-child::after{display:none}
.doc .sow-sn{color:var(--doc-ink-0);font-weight:600;font-size:13px}
.doc .sow-sd{color:var(--doc-ink-2);font-size:12.5px;margin-top:1px}

.doc .sow-meta{display:flex;flex-direction:column;gap:11px}
.doc .sow-mr{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.doc .sow-mk{color:var(--doc-ink-3);font-size:12.5px}
.doc .sow-mv{font-family:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;font-size:12px;color:var(--doc-ink-0);text-align:right;font-variant-numeric:tabular-nums}
.doc .sow-mv .sow-sub{display:block;color:var(--doc-ink-3);font-size:11px;font-weight:400}

.doc .sow-confbar{display:flex;height:12px;border-radius:6px;overflow:hidden;border:1px solid var(--doc-line);margin:4px 0 10px}
.doc .sow-confbar span{display:block}
.doc .sow-s-firm{background:#93d1b1}
.doc .sow-s-mixed{background:#eccf89}
.doc .sow-s-thin{background:#e2a48f}
.doc .sow-conf-key{display:flex;gap:14px;flex-wrap:wrap;font-family:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;font-size:11px;color:var(--doc-ink-2)}
.doc .sow-conf-key i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:5px;vertical-align:middle}
.doc .sow-kf i{background:#93d1b1}
.doc .sow-km i{background:#eccf89}
.doc .sow-kt i{background:#e2a48f}

.doc .sow-signals{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.doc .sow-sig{border:1px solid var(--doc-line);border-radius:9px;padding:11px 13px;background:var(--doc-wash)}
.doc .sow-sig-t{display:flex;align-items:center;gap:8px}
.doc .sow-sig-t b{color:var(--doc-ink-0);font-size:12.5px;font-weight:600}
.doc .sow-sig-tag{font-family:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--doc-accent);background:var(--doc-accent-soft);padding:2px 6px;border-radius:4px}
.doc .sow-sig p{margin:6px 0 0;color:var(--doc-ink-2);font-size:12.5px;line-height:1.5}
.doc .sow-sig p b{color:var(--doc-ink-1)}
.doc .sow-note{margin:14px 0 0;font-size:12.5px;color:var(--doc-ink-2);border-left:2px solid var(--doc-accent);padding:2px 0 2px 12px}

@media (max-width:720px){
  .doc .sow-grid{grid-template-columns:1fr}
  .doc .sow-col + .sow-col{border-left:none;border-top:1px solid var(--doc-line)}
}
@media (prefers-reduced-motion:reduce){
  .doc .sow-caret{transition:none}
}

/* edit mode — elevated dark (skin-dark) */
.app.mode-edit .center,
.app.mode-edit .center{background:var(--bg)}
.app.mode-edit .center .center-toolbar,
.app.mode-edit .center .center-toolbar{
  background:var(--panel);border-bottom-color:var(--line);
}
.app.mode-edit .center .doc-label,
.app.mode-edit .center .doc-label{color:var(--ink-3)}
.app.mode-edit .center .edit-btn,
.app.mode-edit .center .edit-btn{
  background:var(--panel-2);border-color:var(--line-2);color:var(--ink-1);
}
.app.mode-edit .center .edit-btn.on,
.app.mode-edit .center .edit-btn.on{background:rgba(255,106,61,.18);border-color:var(--rust);color:var(--rust)}
.app.mode-edit .center .gen-btn,
.app.mode-edit .center .refresh-btn{
  background:var(--panel-2);border-color:var(--line-2);color:var(--ink-2);
}
.app.mode-edit .center .gen-btn:hover,
.app.mode-edit .center .refresh-btn:hover{border-color:var(--rust);color:var(--rust)}
.app.mode-edit .center .doc,
.app.mode-edit .center .doc{
  max-width:920px;color:var(--ink-1);font-family:-apple-system,BlinkMacSystemFont,'Inter',system-ui,sans-serif;
}
.app.mode-edit .center .doc .eyebrow,
.app.mode-edit .center .doc .eyebrow{color:var(--ink-4)}
.app.mode-edit .center .doc .hrow{border-bottom-color:var(--line);padding-bottom:16px;margin-bottom:8px}
.app.mode-edit .center .doc h1{font-family:inherit;font-size:30px;color:var(--ink-0);letter-spacing:-.015em}
.app.mode-edit .center .doc .grade b{font-family:inherit;font-size:24px;color:var(--green)}
.app.mode-edit .center .doc .grade small{color:var(--ink-3);letter-spacing:.06em}
.app.mode-edit .center .doc .meta{color:var(--ink-3);font-size:12.5px;margin:10px 0 22px}
.app.mode-edit .center .doc .brief{
  background:linear-gradient(90deg,rgba(255,106,61,.10),rgba(125,211,252,.04));
  border-color:rgba(255,106,61,.3);border-radius:11px;padding:13px 15px;margin-bottom:26px;
}
.app.mode-edit .center .doc .brief .t{color:var(--ink-0);font-size:13.5px}
.app.mode-edit .center .doc .brief .t .d{color:var(--rust)}
.app.mode-edit .center .doc .brief .s{color:var(--ink-2);font-size:12px}
.app.mode-edit .center .doc .addr{background:var(--bg);border-color:var(--line-2)}
.app.mode-edit .center .doc .addr code{color:var(--cyan)}
.app.mode-edit .center .doc .way{background:var(--panel-2);border-color:var(--line-2);color:var(--ink-1)}
.app.mode-edit .center .doc .way:hover{border-color:var(--rust)}
.app.mode-edit .center .doc .claim{font-family:inherit;font-size:21px;color:var(--ink-0)}
.app.mode-edit .center .doc .claim em{color:var(--amber);font-style:normal}
.app.mode-edit .center .doc .sub{color:var(--ink-3);font-size:13px;margin:0 0 22px}
.app.mode-edit .center .doc .cl{border-top-color:var(--line);grid-template-columns:120px 1fr;gap:16px;padding:13px 0}
.app.mode-edit .center .doc .cl:last-of-type{border-bottom-color:var(--line)}
.app.mode-edit .center .doc .cn{font-size:13px;color:var(--ink-0)}
.app.mode-edit .center .doc .chip{border-radius:5px;padding:2px 7px}
.app.mode-edit .center .doc .firm{background:rgba(52,211,153,.14);color:#6ee7b7;border:none}
.app.mode-edit .center .doc .mixed{background:rgba(251,191,36,.14);color:#fcd34d;border:none}
.app.mode-edit .center .doc .thin{background:rgba(255,106,61,.16);color:#ffb199;border:none}
.app.mode-edit .center .doc .cl p{color:var(--ink-2);font-size:13px}
.app.mode-edit .center .doc .sec{color:var(--ink-3);font-size:12px;margin:28px 0 12px}
.app.mode-edit .center .doc .hyp{border-top-color:var(--line)}
.app.mode-edit .center .doc .hyp:last-child{border-bottom-color:var(--line)}
.app.mode-edit .center .doc .cf{color:var(--cyan);background:rgba(125,211,252,.16);border-radius:6px}
.app.mode-edit .center .doc .hyp p{color:var(--ink-1);font-size:13px}
.app.mode-edit .center .doc .hyp span{color:var(--ink-3)}
.app.mode-edit .center .doc .oq{
  background:rgba(125,211,252,.06);border-color:rgba(125,211,252,.26);
  border-radius:11px;padding:14px 15px;box-shadow:none;
}
.app.mode-edit .center .doc .oq .k{color:var(--cyan)}
.app.mode-edit .center .doc .oq .q{font-family:inherit;font-size:15px}
.app.mode-edit .center .doc .oq .w{color:var(--ink-3);font-size:13px}
.app.mode-edit .center .doc .oq input{background:var(--bg);border-color:var(--line-2);color:var(--ink-0)}
.app.mode-edit .center .doc .oq button{background:var(--cyan);color:#05222e}
.app.mode-edit .center .doc .dl{border-top-color:var(--line)}
.app.mode-edit .center .doc .dl:last-child{border-bottom-color:var(--line)}
.app.mode-edit .center .doc .dl .when{color:var(--cyan)}
.app.mode-edit .center .doc .dl p{color:var(--ink-1);font-size:13px}

/* layout blocks — drag/reorder in edit mode */
.layout-block{position:relative}
.app.mode-edit .center .layout-block{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:14px 14px 14px 32px;margin:0 0 10px;
  transition:border-color .15s,background .15s;
}
.app.mode-edit .center .layout-block:hover{border-color:var(--line-2);background:var(--panel-2)}
.app.mode-edit .center .layout-block.drag-over{border-color:var(--rust);background:rgba(255,106,61,.08)}
.block-grip{
  display:none;position:absolute;left:6px;top:50%;transform:translateY(-50%);
  width:14px;color:var(--ink-4);font-size:12px;line-height:1;cursor:grab;letter-spacing:-2px;
}
.app.mode-edit .center .block-grip{display:block}
.app.mode-edit .center .layout-block:active .block-grip{cursor:grabbing}
.app.mode-edit .center [contenteditable="true"]:focus{
  outline:1px solid rgba(125,211,252,.45);outline-offset:2px;border-radius:4px;
}
.edit-hint{
  display:none;font-size:11px;color:var(--ink-4);padding:0 24px 10px;
}

/* ── Goals tab edit mode stays LIGHT (Task 7) ──────────────────────────────
   The Goals & OKRs tab mounts its editor natively on the light document
   surface (no dark context.html iframe), unlike every other profile tab,
   whose edit mode IS that dark iframe. The ~80 `.app.mode-edit .center …`
   rules above exist for those other tabs and must stay untouched. Instead,
   workspace.js toggles a `light-edit` class on #app, true only when
   `state.editMode && state.tab === 'objectives'` (see applyEditState()).
   `.app.mode-edit.light-edit …` outranks the plain `.app.mode-edit .center …`
   rules on specificity alone, so source order doesn't matter — this block
   is placed right after them purely for readability. Every value below is
   copied from the base light rules on `.center`/`.doc` near the top of this
   file (~lines 166-231); nothing new is invented here, and no hex literals
   are introduced — only the `--doc-*` tokens `.center` already declares. */
.app.mode-edit.light-edit .center-scroll{background:var(--doc-bg)}
.app.mode-edit.light-edit .center{background:var(--doc-bg)}
.app.mode-edit.light-edit .center .center-toolbar{
  background:var(--doc-card);border-bottom-color:var(--doc-line);
}
.app.mode-edit.light-edit .center .edit-hint{
  background:var(--doc-wash);border-bottom-color:var(--doc-line);color:var(--doc-ink-3);
}
.app.mode-edit.light-edit .center .doc-label{color:var(--doc-ink-3)}
.app.mode-edit.light-edit .center .edit-btn{
  background:var(--doc-wash);border-color:var(--doc-line-2);color:var(--doc-ink-2);
}
.app.mode-edit.light-edit .center .edit-btn:hover{border-color:var(--doc-accent);color:var(--doc-accent)}
.app.mode-edit.light-edit .center .edit-btn.on{background:var(--doc-accent);border-color:var(--doc-accent);color:#fff}
.app.mode-edit.light-edit .center .gen-btn,
.app.mode-edit.light-edit .center .refresh-btn{
  background:var(--doc-wash);border-color:var(--doc-line-2);color:var(--doc-ink-2);
}
.app.mode-edit.light-edit .center .gen-btn:hover,
.app.mode-edit.light-edit .center .refresh-btn:hover{border-color:var(--doc-accent);color:var(--doc-accent)}
.app.mode-edit.light-edit .center .doc{
  color:var(--doc-ink-1);font-family:var(--doc-sans);
}
.app.mode-edit.light-edit .center .doc .eyebrow{color:var(--doc-accent)}
.app.mode-edit.light-edit .center .doc .hrow{
  border-bottom-color:var(--doc-line-2);padding-bottom:20px;margin-bottom:0;
}
.app.mode-edit.light-edit .center .doc h1{
  font-family:var(--doc-serif);font-size:44px;color:var(--doc-ink-0);letter-spacing:-.02em;
}
.app.mode-edit.light-edit .center .doc .meta{color:var(--doc-ink-3);font-size:13.5px;margin:14px 0 28px}
.app.mode-edit.light-edit .center .doc .sub{color:var(--doc-ink-3);font-size:14.5px;margin:0 0 28px}
.app.mode-edit.light-edit .center .doc .way{
  background:var(--doc-card);border-color:var(--doc-line-2);color:var(--doc-ink-1);
}
.app.mode-edit.light-edit .center .doc .way:hover{border-color:var(--doc-accent)}
.app.mode-edit.light-edit .center .layout-block{
  background:var(--doc-card);border:1px solid var(--doc-line-2);
}
.app.mode-edit.light-edit .center .layout-block:hover{border-color:var(--doc-accent);background:var(--doc-wash)}

/* ── resize handle ── */
.resize-handle{
  width:5px;flex:none;cursor:col-resize;background:var(--line);
  transition:background .15s;position:relative;z-index:5;
}
.resize-handle:hover,.resize-handle.dragging{background:var(--rust)}
.resize-handle::after{
  content:'';position:absolute;top:0;bottom:0;left:-4px;right:-4px;
}

/* ── chat panel ── */
.chat{
  width:var(--chat-w,320px);flex:none;min-width:220px;max-width:560px;
  border-left:1px solid var(--line);background:var(--panel);
  display:flex;flex-direction:column;min-height:0;
}
.chat-head{
  padding:12px 14px;border-bottom:1px solid var(--line);
  font-size:12px;font-weight:600;color:var(--ink-2);letter-spacing:.04em;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.chat-hist-btn{
  background:transparent;border:1px solid var(--line-2);border-radius:14px;
  padding:3px 10px;font-size:10.5px;font-weight:600;letter-spacing:.02em;
  color:var(--ink-3);cursor:pointer;
}
.chat-hist-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.chat-hist-btn.on{border-color:var(--cyan);color:var(--cyan);background:rgba(125,211,252,.08)}

.chat-toggle{
  flex:none;width:24px;height:24px;border-radius:6px;border:1px solid var(--line-2);
  background:var(--panel-2);color:var(--ink-3);font-size:14px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;
  transition:transform .2s,color .15s,background .15s;
}
.chat-toggle:hover{color:var(--ink-0);background:var(--panel-3)}
.chat.collapsed .chat-toggle{transform:rotate(180deg)}

.chat.collapsed{
  width:44px!important;min-width:44px!important;max-width:44px!important;
  cursor:pointer;
}
.chat.collapsed .chat-head{
  justify-content:center;padding:12px 0;
}
.chat.collapsed .chat-head-title,
.chat.collapsed .chat-hist-btn,
.chat.collapsed .chat-history,
.chat.collapsed .chat-msgs,
.chat.collapsed .chat-quick,
.chat.collapsed .chat-input-wrap,
.chat.collapsed .chat-quota{display:none!important}

.resize-handle.hidden{display:none}

/* history panel (replaces the message list when open) */
.chat-history{flex:1;overflow-y:auto;padding:8px 0;min-height:0}
.chat-history .ch-head{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:6px 14px 10px;font-size:11px;color:var(--ink-3);
}
.ch-close{background:transparent;border:none;color:var(--cyan);font-size:11px;cursor:pointer;padding:0}
.ch-close:hover{text-decoration:underline}
.ch-group{margin-bottom:6px}
.ch-day{
  position:sticky;top:0;background:var(--panel);padding:6px 14px;
  font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4);
}
.ch-item{
  display:flex;align-items:center;gap:8px;width:100%;text-align:left;
  background:transparent;border:none;border-top:1px solid var(--line);
  padding:9px 14px;cursor:pointer;color:var(--ink-1);
}
.ch-item:hover{background:var(--panel-2)}
.ch-mode{
  flex:none;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  padding:2px 6px;border-radius:10px;border:1px solid var(--line-2);color:var(--ink-3);
}
.ch-mode.web{color:var(--cyan);border-color:rgba(125,211,252,.4)}
.ch-mode.profile{color:var(--amber);border-color:rgba(251,191,36,.35)}
.ch-topic{flex:1;font-size:12px;color:var(--ink-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-time{flex:none;font-size:10px;color:var(--ink-4)}
.ch-empty{padding:40px 22px;text-align:center;color:var(--ink-4)}
.ch-empty h3{margin:0 0 6px;font-size:14px;color:var(--ink-2)}
.ch-empty p{margin:0;font-size:12px;line-height:1.5}

/* answer actions: edit · share · save */
.answer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
.aa-q{font-size:10.5px;color:var(--ink-4);margin-right:2px}
.aa-btn{
  background:var(--panel-2);border:1px solid var(--line-2);border-radius:14px;
  padding:3px 10px;font-size:10.5px;color:var(--ink-2);cursor:pointer;
}
.aa-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.aa-btn:disabled{opacity:.6;cursor:default;border-color:var(--green);color:var(--green)}
.aa-btn.aa-primary{border-color:rgba(255,106,61,.4);color:var(--rust)}
.aa-btn.aa-primary:hover{background:rgba(255,106,61,.1)}
.research-body.editing{
  outline:1px dashed rgba(125,211,252,.5);border-radius:6px;padding:6px;background:rgba(125,211,252,.04);
}
.chat-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}
.msg{font-size:13px;line-height:1.5;max-width:100%}
.msg.user{align-self:flex-end;background:var(--panel-3);border:1px solid var(--line-2);border-radius:12px 12px 4px 12px;padding:10px 12px;color:var(--ink-0)}
.msg.ai{color:var(--ink-1)}
.msg.ai .who{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:4px}
.msg.ai.research .who{color:var(--cyan)}
.research-status{font-size:10.5px;color:var(--ink-4);margin-bottom:6px;font-style:italic}
.research-body{white-space:pre-wrap;word-break:break-word}
.research-body .cursor{display:inline-block;width:2px;height:1em;background:var(--cyan);
  animation:blink 1s steps(2) infinite;vertical-align:text-bottom;margin-left:1px}
@keyframes blink{50%{opacity:0}}
.chat-quick{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 10px}
.quick{
  background:var(--panel-2);border:1px solid var(--line-2);border-radius:16px;
  padding:5px 11px;font-size:11.5px;color:var(--ink-2);cursor:pointer;
}
.quick:hover{border-color:var(--cyan);color:var(--cyan)}
.quick.on{border-color:var(--rust);color:var(--rust);background:rgba(255,106,61,.08)}
.chat-input-wrap{padding:10px 14px 14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.chat-input-wrap.busy{opacity:.55;pointer-events:none}
.chat-simple[hidden]{display:none}
.chat-composer-foot{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.chat-foot-left{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.chat-send-btn{
  width:32px;height:32px;border-radius:50%;border:none;background:var(--rust);
  color:#fff;font-size:15px;font-weight:700;cursor:pointer;flex:none;
  display:flex;align-items:center;justify-content:center;
}
.chat-send-btn:hover{filter:brightness(1.08)}
.chat-send-btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
.chat-opts{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.chat-opt{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-3);cursor:pointer;user-select:none}
.chat-opt input{accent-color:var(--cyan);cursor:pointer;margin:0}
.chat-opt:hover{color:var(--ink-2)}

/* Claude-CLI-style scenario composer */
.cli-composer{
  border:1px solid rgba(255,106,61,.32);border-radius:10px;background:var(--panel-2);
  font-family:ui-monospace,Menlo,'SF Mono',monospace;overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,106,61,.05),0 8px 26px rgba(0,0,0,.35);
}
.cli-composer[hidden]{display:none}
.cli-bar{
  display:flex;align-items:center;gap:6px;padding:6px 10px;
  border-bottom:1px solid var(--line);background:var(--panel-3);
}
.cli-scenario-close{
  margin-left:auto;background:transparent;border:none;color:var(--ink-3);
  font-size:18px;line-height:1;cursor:pointer;padding:0 4px;
}
.cli-scenario-close:hover{color:var(--ink-0)}
.cli-dot{width:8px;height:8px;border-radius:50%;background:var(--line-2)}
.cli-dot:nth-child(1){background:#ff5f57}
.cli-dot:nth-child(2){background:#febc2e}
.cli-dot:nth-child(3){background:#28c840}
.cli-title{margin-left:6px;font-size:10px;color:var(--ink-4);letter-spacing:.05em}
.cli-section{padding:7px 10px 5px}
.cli-section + .cli-section{border-top:1px dashed var(--line)}
.cli-label{font-size:10px;color:var(--rust);letter-spacing:.03em;margin-bottom:2px}
.cli-line{display:flex;align-items:flex-start;gap:6px}
.cli-caret{color:var(--rust);font-size:12.5px;line-height:1.5;flex:none}
.cli-field{
  flex:1;background:transparent;border:none;color:var(--ink-0);
  font-family:inherit;font-size:12px;line-height:1.5;resize:none;outline:none;
  min-height:20px;max-height:110px;padding:0;
}
.cli-field::placeholder{color:var(--ink-4)}
.cli-foot{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:7px 10px;border-top:1px solid var(--line);background:var(--panel-3);
}
.cli-run{
  background:var(--rust);border:none;border-radius:7px;color:#fff;
  font-family:inherit;font-size:11px;font-weight:700;padding:6px 12px;cursor:pointer;white-space:nowrap;
}
.cli-run:hover{filter:brightness(1.08)}
.cli-run:disabled{opacity:.45;cursor:not-allowed;filter:none}
.cli-foot-left{display:flex;align-items:center;gap:8px;min-width:0}
.cli-chip{
  display:inline-flex;align-items:center;gap:4px;background:transparent;
  border:1px solid var(--line-2);border-radius:14px;padding:3px 9px;
  font-family:inherit;font-size:10px;color:var(--ink-3);cursor:pointer;white-space:nowrap;
}
.cli-chip:hover{border-color:var(--rust);color:var(--rust)}
.cli-chip.on{border-color:rgba(255,106,61,.45);color:var(--rust)}
.cli-chip-n{
  display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;
  padding:0 3px;border-radius:7px;background:var(--rust);color:#fff;font-size:9px;font-weight:700;
}

/* rail nav count badge */
.nav-count{
  position:absolute;top:4px;left:26px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;
  background:var(--rust);color:#fff;font-size:8.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center;line-height:1;pointer-events:none;
}
.rail.expanded .nav-count{position:static;margin-left:auto}

/* structured user question bubble */
.msg.user.uq{display:flex;flex-direction:column;gap:7px;font-family:ui-monospace,Menlo,monospace}
.uq-sec{display:flex;flex-direction:column;gap:1px}
.uq-k{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--rust)}
.uq-v{font-size:12px;color:var(--ink-0);white-space:pre-wrap;word-break:break-word}
.uq-ask{font-size:13px;color:var(--ink-0);white-space:pre-wrap;word-break:break-word;line-height:1.45}
.uq-heur{font-size:9.5px;color:var(--rust);opacity:.85;border-top:1px dashed var(--line-2);padding-top:5px}

/* ── heuristics manager overlay ── */
.heuristics-overlay{position:fixed;inset:0;z-index:90;display:flex;justify-content:flex-end}
.heuristics-overlay[hidden]{display:none}
.heuristics-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.heuristics-panel{
  position:relative;width:min(440px,92vw);height:100%;background:var(--panel);
  border-left:1px solid var(--line-2);display:flex;flex-direction:column;
  box-shadow:-18px 0 50px rgba(0,0,0,.5);
}
.hx-head{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--line)}
.hx-kicker{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--green)}
.hx-head h2{margin:3px 0 0;font-size:18px;color:var(--ink-0)}
.hx-sub{margin:6px 0 0;font-size:11.5px;line-height:1.5;color:var(--ink-3)}
.form-usage{margin:9px 2px 2px;padding:7px 10px;font-size:11px;line-height:1.45;color:var(--ink-2);background:var(--panel-3);border-left:2px solid var(--cyan);border-radius:0 6px 6px 0;min-height:1px}
.form-usage:empty{display:none}
.hx-close{margin-left:auto;background:transparent;border:none;color:var(--ink-3);font-size:22px;line-height:1;cursor:pointer}
.hx-close:hover{color:var(--ink-0)}
.hx-add{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.hx-input,.hx-textarea{
  background:var(--panel-2);border:1px solid var(--line-2);border-radius:8px;
  color:var(--ink-0);font-family:inherit;font-size:12.5px;padding:8px 10px;outline:none;width:100%;
}
.hx-textarea{resize:vertical;line-height:1.5;min-height:56px}
.hx-input:focus,.hx-textarea:focus{border-color:var(--cyan)}
.hx-input::placeholder,.hx-textarea::placeholder{color:var(--ink-4)}
.hx-add-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.hx-hint{font-size:10px;color:var(--ink-4)}
.hx-cancel{
  background:transparent;border:1px solid var(--line-2);border-radius:8px;color:var(--ink-3);
  font-family:inherit;font-size:11.5px;padding:7px 12px;cursor:pointer;
}
.hx-cancel:hover{border-color:var(--ink-3);color:var(--ink-1)}
.hx-add-btn{
  background:var(--green);border:none;border-radius:8px;color:#06281c;
  font-family:inherit;font-size:11.5px;font-weight:700;padding:7px 14px;cursor:pointer;white-space:nowrap;
}
.hx-add-btn:hover{filter:brightness(1.08)}

/* company scope picker */
.hx-scope{display:flex;flex-direction:column;gap:5px}
.hx-scope-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4)}
.hx-scope-pick{
  border:1px solid var(--line-2);border-radius:8px;background:var(--panel-2);
  padding:6px 8px;max-height:148px;overflow-y:auto;
}
.hx-co{display:flex;align-items:center;gap:7px;padding:4px 2px;font-size:12px;color:var(--ink-1);cursor:pointer}
.hx-co input{accent-color:var(--green);cursor:pointer;margin:0;flex:none}
.hx-co-all{border-bottom:1px solid var(--line);padding-bottom:7px;margin-bottom:3px;font-weight:600;color:var(--ink-0)}
.hx-co-list{display:flex;flex-direction:column}
.hx-co input:disabled{cursor:default}
.hx-co input:disabled + span{color:var(--ink-4)}
.hx-co-empty{font-size:11px;color:var(--ink-4);padding:4px 2px}
.hx-list{flex:1;overflow-y:auto;padding:8px 18px 18px;display:flex;flex-direction:column;gap:8px}
.hx-empty{padding:28px 6px;text-align:center;font-size:12px;line-height:1.5;color:var(--ink-4)}
.hx-item{
  display:flex;align-items:flex-start;gap:10px;padding:11px 12px;
  background:var(--panel-2);border:1px solid var(--line);border-radius:10px;
}
.hx-item.on{border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.05)}
.hx-toggle{flex:none;position:relative;width:30px;height:18px;cursor:pointer;margin-top:1px}
.hx-toggle input{position:absolute;opacity:0;width:0;height:0}
.hx-sw{
  display:block;width:30px;height:18px;border-radius:10px;background:var(--line-2);
  transition:background .15s;position:relative;
}
.hx-sw::after{
  content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;
  background:var(--ink-2);transition:transform .15s,background .15s;
}
.hx-toggle input:checked + .hx-sw{background:var(--green)}
.hx-toggle input:checked + .hx-sw::after{transform:translateX(12px);background:#06281c}
.hx-item.editing{border-color:var(--cyan);box-shadow:0 0 0 1px rgba(125,211,252,.25)}
.hx-body{flex:1;min-width:0}
.hx-name{font-size:12px;font-weight:600;color:var(--ink-0);margin-bottom:2px}
.hx-desc{font-size:11.5px;line-height:1.5;color:var(--ink-2);white-space:pre-wrap;word-break:break-word}
.hx-scope-tag{margin-top:5px;font-size:9.5px;color:var(--cyan);letter-spacing:.02em}
.hx-item-actions{flex:none;display:flex;flex-direction:column;gap:2px}
.hx-edit,.hx-del{background:transparent;border:none;color:var(--ink-4);font-size:12px;cursor:pointer;padding:2px 4px;line-height:1}
.hx-edit:hover{color:var(--cyan)}
.hx-del:hover{color:var(--warn,#f87171)}

/* ── files & insights drawer ── */
.fx-scroll{flex:1;overflow-y:auto;min-height:0}
.fx-block{padding:14px 18px;border-bottom:1px solid var(--line)}
.fx-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.fx-block-title{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--ink-1);text-transform:uppercase}
.fx-upload{cursor:pointer}
.fx-note{margin:0 0 10px;font-size:10.5px;line-height:1.5;color:var(--ink-4)}
.fx-block .hx-add{padding:0;border:none;margin-bottom:10px}
.fx-block .hx-list{padding:0}
.fx-meta{color:var(--ink-3);font-size:10.5px}
/* scope tag becomes an inline edit toggle inside file/insight rows */
.fx-scope-toggle{
  display:inline-block;margin-top:6px;padding:0;background:transparent;border:none;
  font-family:inherit;font-size:9.5px;color:var(--cyan);letter-spacing:.02em;cursor:pointer;
}
.fx-scope-toggle:hover{text-decoration:underline}
.fx-scope-edit{margin-top:7px}
.fx-scope-edit:not([hidden]){
  border:1px solid var(--line-2);border-radius:8px;background:var(--panel);padding:6px 8px;max-height:148px;overflow-y:auto;
}

.chat-input{
  display:flex;align-items:flex-end;gap:8px;
  background:var(--panel-2);border:1px solid var(--line-2);border-radius:12px;padding:10px 12px;
}
.chat-input textarea{
  flex:1;background:transparent;border:none;color:var(--ink-0);
  font-size:13px;line-height:1.45;resize:none;outline:none;font-family:inherit;min-height:20px;max-height:120px;
}
.chat-input textarea::placeholder{color:var(--ink-4)}
.send{
  width:28px;height:28px;border-radius:50%;border:none;background:var(--rust);
  color:#fff;font-size:14px;cursor:pointer;flex:none;display:flex;align-items:center;justify-content:center;
}
.send:hover{filter:brightness(1.08)}

.toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);
  background:#06281c;border:1px solid var(--green);color:#d6ffe9;padding:13px 18px;
  border-radius:11px;font-size:13px;box-shadow:0 14px 40px rgba(0,0,0,.5);
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:80;max-width:520px;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* live app extras */
.topbar .ws-status{margin-left:8px;font-size:10px;color:var(--ink-4)}
.topbar .ws-status.busy{color:var(--cyan)}
.topbar .ws-status.err{color:var(--rust)}
.co-picker{background:var(--panel-2);border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;min-width:180px;color:var(--ink-0);font-size:13px;font-family:inherit}
.co-picker:focus{outline:none;border-color:var(--cyan)}
.topbar .ws-nav{display:flex;gap:2px;margin-left:8px;align-items:center}
.topbar .ws-nav a,.topbar .ws-nav-link{font-size:10px;color:var(--ink-4);text-decoration:none;padding:4px 8px;border-radius:5px}
.topbar .ws-nav a:hover,.topbar .ws-nav-link:hover{color:var(--ink-1);background:var(--panel-2)}
.topbar .ws-signout{background:transparent;border:none;color:var(--ink-4);font-size:10px;cursor:pointer;text-decoration:underline;margin-left:6px}
.doc-empty{padding:48px 0;text-align:center;color:var(--doc-ink-3)}
.doc-empty h2{font-family:var(--doc-serif);color:var(--doc-ink-0);font-size:28px;margin:0 0 8px}
.doc-empty p{max-width:42ch;margin:0 auto 16px;font-size:14px;line-height:1.5}
.doc-empty .ctx-btn{display:inline-block;padding:8px 14px;border-radius:8px;background:var(--doc-accent);color:#fff;text-decoration:none;font-size:13px;font-weight:600;border:none;cursor:pointer}
.doc .ws-card{background:var(--doc-card);border:1px solid var(--doc-line-2);border-radius:10px;padding:12px 14px;margin:8px 0}
.doc .ws-card .ws-pri{font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--doc-amber)}
.doc .ws-card h4{margin:4px 0 6px;font-size:14px;color:var(--doc-ink-0)}
.doc .ws-card p{margin:0;font-size:13px;color:var(--doc-ink-2);line-height:1.45}

/* Briefing dashboard — quick-scan layout */
.ws-brief-dash{padding:4px 0 20px}
.ws-dash-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 18px;padding-bottom:10px;border-bottom:1px solid var(--doc-line-2);margin-bottom:10px}
.ws-dash-title{flex:1;min-width:180px}
.ws-dash-eyebrow{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--doc-accent);font-weight:700;margin-bottom:2px}
.ws-dash-ic{font-size:15px;line-height:1;color:var(--doc-accent);letter-spacing:0;text-transform:none;font-weight:400}
.ws-brief-dash h1{font-family:var(--doc-serif);font-size:28px;color:var(--doc-ink-0);margin:0;font-weight:600;letter-spacing:-.02em;line-height:1.15}
.ws-dash-stats{display:flex;gap:10px;flex:none}
.ws-dash-stat{text-align:right;padding:4px 0}
.ws-dash-stat b{font-family:var(--doc-serif);font-size:24px;color:var(--doc-accent);display:block;line-height:1}
.ws-dash-stat small{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--doc-ink-3)}
.ws-dash-meta{width:100%;margin:0;font-size:12.5px;color:var(--doc-ink-3);line-height:1.4}
.ws-dash-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.ws-dash-chip{font-size:11px;padding:5px 10px;border-radius:20px;border:1px solid var(--doc-line-2);background:var(--doc-wash);color:var(--doc-ink-2)}
.ws-dash-chip strong{color:var(--doc-ink-0);font-weight:600;margin-right:4px}
.ws-dash-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;margin-bottom:12px;background:var(--doc-accent-soft);border:1px solid #cfe0dc;border-radius:8px;font-size:12px;color:var(--doc-ink-2)}
.ws-dash-strip-dot{color:var(--doc-accent);font-size:10px}
.ws-dash-strip-label{font-weight:600;color:var(--doc-accent)}
.ws-dash-strip code{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--doc-accent-2);background:var(--doc-card);padding:2px 8px;border-radius:6px;border:1px solid var(--doc-line-2)}
.ws-dash-strip .way{font-size:11.5px;padding:4px 10px}
.ws-dash-grid{display:grid;grid-template-columns:1fr 280px;gap:14px;align-items:start}
@media (max-width:900px){.ws-dash-grid{grid-template-columns:1fr}}
.ws-dash-col-main{display:flex;flex-direction:column;gap:10px;min-width:0}
.ws-dash-stack{display:flex;flex-direction:column;gap:10px}
.ws-dash-panel{padding:12px 14px;background:var(--doc-card);border:1px solid var(--doc-line-2);border-radius:10px}
.ws-dash-panel.ws-dash-sec{padding:10px 14px}
.ws-dash-h{margin:0 0 8px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--doc-ink-3);font-weight:700}
.ws-dash-hrow{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.ws-dash-hrow .ws-dash-h{margin:0}
.ws-dash-btn{background:var(--doc-wash);border:1px solid var(--doc-line-2);border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600;color:var(--doc-ink-2);cursor:pointer;font-family:inherit}
.ws-dash-btn:hover{border-color:var(--doc-accent);color:var(--doc-accent)}
.ws-dash-btn:disabled{opacity:.5;cursor:default}
.ws-dash-lede{margin:0 0 6px;font-family:var(--doc-serif);font-size:20px;line-height:1.3;color:var(--doc-ink-0);font-weight:600}
.ws-dash-sub{margin:0;font-size:13.5px;color:var(--doc-ink-2);line-height:1.5}
.ws-dash-sub p{margin:0 0 10px}
.ws-dash-sub p:last-child{margin-bottom:0}
.ws-dash-empty{margin:0;font-size:13px;color:var(--doc-ink-3);font-style:italic}
.ws-dash-empty-block p{margin:0 0 12px;font-size:14px;color:var(--doc-ink-2);line-height:1.5}
/* Cluster strip. The labels stay one horizontal row; the read opens full width
   underneath (.ws-dash-cluster-read), because the panel is only ~646px next to
   the news rail and the reads run ~542 chars — inside a 1/5 column that is a
   700px ribbon 2-3 words wide. Column count comes from --n (set by the renderer
   from the real cluster count, 5 in every stored run) so the strip stays a
   single row without hardcoding the shape. */
.ws-dash-cluster-grid{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:6px;align-items:stretch}
.ws-dash-cluster{display:flex;flex-direction:column;justify-content:space-between;gap:6px;padding:10px;text-align:left;background:var(--doc-wash);border:1px solid var(--doc-line);border-radius:8px;cursor:pointer;font:inherit;transition:border-color .15s}
.ws-dash-cluster:hover{border-color:var(--doc-accent)}
.ws-dash-cluster:hover .cn,.ws-dash-cluster:hover .cn::before{color:var(--doc-accent)}
.ws-dash-cluster:focus-visible{outline:2px solid var(--doc-accent);outline-offset:2px}
.ws-dash-cluster.on{border-color:var(--doc-accent)}
/* Marker rides the label, not its own flex line — it belongs to the word. */
.ws-dash-cluster .cn{font-weight:600;font-size:12.5px;color:var(--doc-ink-0);line-height:1.3}
.ws-dash-cluster .cn::before{content:'▸';display:inline-block;margin-right:5px;font-size:10px;color:var(--doc-ink-3);transition:transform .15s,color .15s}
.ws-dash-cluster.on .cn::before{transform:rotate(90deg);color:var(--doc-accent)}
.ws-dash-cluster-read{margin-top:8px;padding:10px 12px;background:var(--doc-wash);border:1px solid var(--doc-accent);border-radius:8px}
.ws-dash-cluster-read[hidden]{display:none}
.ws-dash-cluster-read p{margin:0;font-size:13px;color:var(--doc-ink-1);line-height:1.55}
@media (max-width:860px){.ws-dash-cluster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.ws-dash-cluster-grid{grid-template-columns:1fr}}
.ws-dash-hyp{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--doc-line);align-items:flex-start}
.ws-dash-hyp:first-of-type{border-top:none;padding-top:0}
.ws-dash-hyp .cf{flex:none;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--doc-accent);background:var(--doc-accent-soft);padding:2px 8px;border-radius:20px;height:fit-content}
.ws-dash-hyp p{margin:0;font-size:13px;color:var(--doc-ink-1);line-height:1.45}
.ws-dash-hyp .ws-dash-rank{flex:none;font-size:12px;font-weight:700;color:var(--doc-accent);min-width:26px}
.ws-dash-hyp-body{flex:1;min-width:0}
/* The "Why" drawer: the ask stands alone, the consequence opens under it. */
.ws-dash-why{margin-top:4px}
.ws-dash-why > summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--doc-ink-3)}
.ws-dash-why > summary::-webkit-details-marker{display:none}
.ws-dash-why > summary::before{content:'▸';font-size:9px;transition:transform .15s}
.ws-dash-why[open] > summary::before{transform:rotate(90deg)}
.ws-dash-why > summary:hover{color:var(--doc-accent)}
.ws-dash-why > summary:focus-visible{outline:2px solid var(--doc-accent);outline-offset:2px;border-radius:4px}
.ws-dash-why-body{padding:6px 0 2px;border-left:2px solid var(--doc-line);padding-left:10px;margin-top:6px}
.ws-dash-why-body p{margin:0 0 6px;font-size:12.5px;color:var(--doc-ink-2);line-height:1.45}
.ws-dash-why-body p:last-child{margin-bottom:0}
.ws-dash-hyp-check span{font-weight:600;color:var(--doc-ink-3);text-transform:uppercase;font-size:10px;letter-spacing:.05em}
.ws-dash-traj{display:flex;gap:10px;padding:6px 0;border-top:1px solid var(--doc-line)}
.ws-dash-traj:first-of-type{border-top:none}
.ws-dash-traj .when{flex:none;font-size:12px;font-weight:700;color:var(--doc-accent);min-width:72px}
.ws-dash-traj p{margin:0;font-size:13px;color:var(--doc-ink-1);line-height:1.45}
.ws-dash-news{position:sticky;top:8px;max-height:calc(100vh - 120px);overflow-y:auto}
.ws-news-summary{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-bottom:8px;padding:8px 10px;background:var(--doc-wash);border:1px solid var(--doc-line);border-radius:8px;font-size:11px;color:var(--doc-ink-2)}
.ws-news-stat b{color:var(--doc-ink-0);font-weight:700}
.ws-news-kinds{width:100%;font-size:10px;color:var(--doc-ink-3);letter-spacing:.02em}
.ws-dash-news-upd{margin:0 0 8px;font-size:10.5px;color:var(--doc-ink-3)}
.ws-dash-news-list{display:flex;flex-direction:column;gap:0}
.ws-dash-news-item{padding:10px 0;border-top:1px solid var(--doc-line)}
.ws-dash-news-item:first-child{border-top:none;padding-top:0}
.ws-dash-news-meta{display:flex;flex-wrap:wrap;gap:5px 8px;align-items:center;margin-bottom:4px}
.ws-news-kind{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:4px;background:var(--doc-accent-soft);color:var(--doc-accent)}
.ws-news-origin{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--doc-ink-3)}
.ws-dash-news-item .entity{font-size:10px;font-weight:600;color:var(--doc-accent-2)}
.ws-dash-news-item .source{font-size:10px;color:var(--doc-ink-3)}
.ws-dash-news-item .headline{margin:0;font-size:12.5px;color:var(--doc-ink-0);line-height:1.4}
.ws-dash-news-link{display:inline-block;margin-top:4px;font-size:10px;color:var(--doc-green);text-decoration:none;word-break:break-all}
.ws-dash-news-link:hover{text-decoration:underline}
.ws-news-news .ws-news-kind{background:#e8f0ee;color:var(--doc-accent)}
.ws-news-trend .ws-news-kind{background:#faf3e2;color:var(--doc-amber)}
.ws-news-competitor .ws-news-kind{background:#eef0f8;color:#4a5a8a}
.ws-news-disruptor .ws-news-kind{background:#f9ece6;color:var(--doc-warn)}
.ws-news-risk .ws-news-kind{background:#fce8e8;color:#a8462c}

.app.mode-edit .center .ws-brief-dash .ws-dash-panel{background:var(--panel-2);border-color:var(--line)}
.app.mode-edit .center .ws-brief-dash h1{color:var(--ink-0)}
.app.mode-edit .center .ws-dash-strip{background:var(--panel-3);border-color:var(--line-2)}

/* Daily briefing — deliverables-style three-column console */
.doc:has(.ws-dlv-brief){max-width:none;padding:16px 14px 40px}
.ws-dlv-brief{
  --bg-0:var(--doc-wash);--bg-1:var(--doc-bg);--bg-2:var(--doc-card);--bg-3:var(--doc-wash);
  --border-1:var(--doc-line);--border-2:var(--doc-line-2);--border-3:var(--doc-line-2);
  --ink-0:var(--doc-ink-0);--ink-1:var(--doc-ink-1);--ink-2:var(--doc-ink-2);--ink-3:var(--doc-ink-3);--ink-4:var(--doc-ink-4);
  --accent:var(--doc-accent);--accent-cyan:var(--doc-accent-2);--accent-green:var(--doc-green);
  margin:0;
}
.ws-dlv-brief.dlv-page{min-height:520px;overflow:hidden;border:1px solid var(--doc-line-2);border-radius:12px;box-shadow:0 1px 2px rgba(26,28,26,.04)}
.ws-dlv-brief .ws-dlv-shell{display:flex;flex-direction:column;flex:1;min-height:520px;overflow:hidden}
.ws-dlv-brief .ws-dlv-main-stack{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;background:var(--doc-bg)}
.ws-dlv-brief .ws-dlv-main-stack .ws-dlv-head{
  flex:none;margin:0;padding:18px 22px 14px;border-bottom:1px solid var(--doc-line-2);
}
.ws-dlv-brief .ws-dlv-main-split{
  flex:1;min-height:0;display:grid;grid-template-columns:220px minmax(0,1fr);
  overflow:hidden;
}
.ws-dlv-brief .ws-dlv-sec-rail{
  padding:14px 12px;overflow-y:auto;border-right:1px solid var(--doc-line-2);
  background:var(--doc-wash);min-height:0;
}
.ws-dlv-brief .ws-dlv-sec-content{
  display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;
  padding:18px 22px 28px;overflow-y:auto;
}
.ws-dlv-brief .dlv-kicker{color:var(--doc-accent);font-weight:700;letter-spacing:.14em}
.ws-dlv-brief .dlv-fn-btn.on{border-color:rgba(29,78,74,.35);background:var(--doc-accent-soft);color:var(--doc-ink-0)}
.ws-dlv-brief .dlv-phase{color:var(--doc-accent);border-bottom-color:var(--doc-line-2)}
.ws-dlv-brief .ws-dlv-count{font-size:10px;font-weight:700;color:var(--doc-accent);margin-left:4px}
.ws-dlv-brief .ws-dlv-head{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--doc-line-2)}
.ws-dlv-brief .ws-dlv-main-stack .ws-dlv-head{margin-bottom:0;border-bottom:none}
.ws-dlv-brief .ws-dlv-title{font-family:var(--doc-serif);font-size:26px;color:var(--doc-ink-0);margin:4px 0 0;font-weight:600;letter-spacing:-.02em;line-height:1.15}
.ws-dlv-brief .ws-dlv-lede{margin:8px 0 0;font-size:13px;color:var(--doc-ink-3);line-height:1.45;max-width:58ch}
.ws-dlv-brief .ws-dlv-sec-pane{display:none;flex-direction:column;gap:10px;width:100%}
.ws-dlv-brief .ws-dlv-sec-pane.is-active{display:flex}
.ws-dlv-brief .ws-dlv-news-pane-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}
.ws-dlv-brief .ws-dlv-news-quarter-label{margin:0;font-size:12px;font-weight:600;color:var(--doc-accent)}
.ws-dlv-brief .ws-dlv-news-list-host{white-space:normal}
.ws-dlv-brief .ws-dlv-item{margin-bottom:0}
.ws-dlv-brief .ws-dlv-item-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:6px}
.ws-dlv-brief .ws-dlv-item-head strong{font-size:14px;line-height:1.35;color:var(--doc-ink-0)}
.ws-dlv-brief .ws-dlv-item p{margin:0;font-size:13px;color:var(--doc-ink-2);line-height:1.5}
.ws-dlv-brief .ws-dlv-table-wrap{overflow-x:auto;margin:8px 0 6px}
.ws-dlv-brief .ws-dlv-table{width:100%;border-collapse:collapse;font-size:13px}
.ws-dlv-brief .ws-dlv-table th{text-align:left;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--doc-ink-3);padding:0 12px 6px 0;border-bottom:1px solid var(--doc-line);font-weight:600;white-space:nowrap}
.ws-dlv-brief .ws-dlv-table td{padding:6px 12px 6px 0;border-bottom:1px solid var(--doc-line);color:var(--doc-ink-1);line-height:1.45;vertical-align:top}
.ws-dlv-brief .ws-dlv-table tr:last-child td{border-bottom:none}
.ws-dlv-brief .ws-dlv-table td:not(:first-child){white-space:nowrap;font-variant-numeric:tabular-nums}
.ws-dlv-brief .ws-dlv-caveat{margin:4px 0 0;font-size:12px;color:var(--doc-ink-3);line-height:1.45}
.ws-dlv-brief .ws-dlv-due{display:block;margin-top:6px;font-size:11px;font-weight:600;color:var(--doc-accent)}
.ws-dlv-brief .ws-dlv-pri{flex:none;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 7px;border-radius:4px;background:var(--doc-wash);color:var(--doc-amber);margin-top:2px}
.ws-dlv-brief .ws-dlv-pri-high{background:#f9ece6;color:var(--doc-warn)}
.ws-dlv-brief .ws-dlv-pri-critical{background:#fce8e8;color:#a8462c}
.ws-dlv-brief .ws-dlv-pri-low{color:var(--doc-ink-3)}
.ws-dlv-brief .ws-dlv-news-head{justify-content:space-between}
.ws-dlv-brief .ws-dlv-refresh{
  flex:none;padding:3px 9px;font-size:10px;font-weight:600;border-radius:5px;
  border:1px solid var(--doc-line-2);background:var(--doc-wash);color:var(--doc-ink-2);cursor:pointer;font-family:inherit;
}
.ws-dlv-brief .ws-dlv-refresh:hover{border-color:var(--doc-accent);color:var(--doc-accent)}
.ws-dlv-brief .dlv-panel-body{white-space:normal;max-height:none}
.ws-dlv-brief #ws-news-list .ws-dash-news-item{padding:10px 0;border-top:1px solid var(--doc-line)}
.ws-dlv-brief #ws-news-list .ws-dash-news-item:first-child{border-top:none;padding-top:0}
.ws-dlv-brief .ws-news-summary{margin-bottom:8px;padding:8px 10px;background:var(--doc-wash);border:1px solid var(--doc-line);border-radius:8px;font-size:11px;color:var(--doc-ink-2)}
.ws-dlv-brief .ws-news-quarter{
  font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:2px 7px;border-radius:4px;background:var(--doc-accent-soft);color:var(--doc-accent);
}
@media (max-width:960px){
  .ws-dlv-brief .ws-dlv-main-split{grid-template-columns:1fr}
  .ws-dlv-brief .ws-dlv-sec-rail{border-right:none;border-bottom:1px solid var(--doc-line-2);max-height:200px}
}
.app.mode-edit .center .ws-dlv-brief .ws-dlv-main-stack{background:var(--bg)}
.app.mode-edit .center .ws-dlv-brief .ws-dlv-title{color:var(--ink-0)}
.app.mode-edit .center .ws-dlv-brief .dlv-meta-card{background:var(--panel-2);border-color:var(--line)}

.app.mode-edit .center .doc .ws-card{background:var(--panel-2);border-color:var(--line)}
.app.mode-edit .center .doc-empty{color:var(--ink-3)}
.app.mode-edit .center .doc-empty h2{color:var(--ink-0)}

/* Scenarios — compact four-section planner */
.ws-scn-doc .ws-scn-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between;margin:20px 0 8px}
.ws-scn-picker{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:200px}
.ws-scn-pick{
  background:var(--doc-wash);border:1px solid var(--doc-line-2);border-radius:8px;
  padding:6px 10px;font-size:12px;font-weight:600;color:var(--doc-ink-1);cursor:pointer;
}
.ws-scn-pick.on{border-color:var(--doc-accent);color:var(--doc-accent);background:var(--doc-accent-soft)}
.ws-scn-pick-lik{font-size:9px;text-transform:uppercase;margin-right:6px;opacity:.85}
.ws-scn-actions{display:flex;flex-wrap:wrap;gap:6px}
.ws-scn-doc .ctx-btn{
  padding:6px 12px;border-radius:8px;border:1px solid var(--doc-line-2);
  background:var(--doc-wash);font-size:12px;font-weight:600;color:var(--doc-ink-2);cursor:pointer;
}
.ws-scn-doc .ws-scn-accent{background:var(--doc-accent);border-color:var(--doc-accent);color:#fff}
.ws-scn-doc .ws-scn-danger{color:#b45309;border-color:#eccabd}
.ws-scn-status{display:block;font-size:12px;color:var(--doc-ink-3);min-height:18px;margin-bottom:8px}
.ws-scn-input,.ws-scn-textarea{
  width:100%;box-sizing:border-box;background:var(--doc-card);border:1px solid var(--doc-line-2);
  border-radius:8px;padding:10px 12px;font-size:14px;color:var(--doc-ink-0);font-family:var(--doc-sans);margin-bottom:8px;
}
.ws-scn-textarea{resize:vertical;line-height:1.5}
.ws-scn-progress{font-size:13px;color:var(--doc-accent);margin:8px 0}
.ws-scn-prediction{margin-top:8px;padding-top:8px}
.ws-scn-pred-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.ws-scn-lik{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:3px 9px;border-radius:20px}
.ws-scn-conf{display:inline-flex;align-items:center}
.ws-scn-lik-low{background:#f9ece6;color:#b45309}
.ws-scn-lik-moderate{background:#faf3e2;color:#92400e}
.ws-scn-lik-high{background:#eef7f1;color:#047857}
.ws-scn-when{font-size:12px;color:var(--doc-ink-3)}
.ws-scn-pred-title{font-family:var(--doc-serif);font-size:22px;color:var(--doc-ink-0);margin:0 0 8px;font-weight:600}
.ws-scn-pred-body{font-size:14.5px;color:var(--doc-ink-2);line-height:1.55;margin:0 0 16px}
.ws-scn-list{margin:0 0 16px;padding:0;list-style:none}
.ws-scn-list li{padding:8px 0;border-top:1px solid var(--doc-line);font-size:14px;color:var(--doc-ink-1);line-height:1.45}
.ws-scn-cond span{font-size:10px;text-transform:uppercase;font-weight:700;margin-right:8px;color:var(--doc-accent)}
.app.mode-edit .ws-scn-doc .ws-scn-input,
.app.mode-edit .ws-scn-doc .ws-scn-textarea{background:var(--panel-2);border-color:var(--line);color:var(--ink-0)}
.app.mode-edit .ws-scn-doc .ws-scn-pick{background:var(--panel-2);border-color:var(--line);color:var(--ink-1)}
.app.mode-edit .ws-scn-doc .ws-scn-pred-title{font-family:inherit;color:var(--ink-0)}
.app.mode-edit .ws-scn-doc .ws-scn-pred-body{color:var(--ink-2)}

.profile-editor-wrap{
  display:none;flex:1;min-height:0;width:100%;
}
.profile-editor-wrap:not([hidden]){display:flex;flex-direction:column}
.profile-editor-frame{
  flex:1;width:100%;border:0;background:var(--bg);min-height:calc(100vh - 108px);
}
.app.mode-edit .center-scroll:has(.profile-editor-wrap:not([hidden])){
  display:flex;flex-direction:column;
}
.app.mode-edit .center-scroll:has(.profile-editor-wrap:not([hidden])) #content-host{display:none}
.app.mode-edit .center-scroll:has(.profile-editor-wrap:not([hidden])) .edit-hint{display:none}
.center.mode-embed .center-scroll{
  display:flex;flex-direction:column;
}
.center.mode-embed .center-scroll #content-host{display:none}
.center.mode-embed .center-scroll .edit-hint{display:none}
.center.mode-embed .profile-editor-frame{
  min-height:calc(100vh - 88px);
}

/* Context health slide-out */
body.ws-health-open{overflow:hidden}
.ws-health-drawer{position:fixed;inset:0;z-index:300;pointer-events:none}
.ws-health-drawer:not([hidden]){pointer-events:auto}
.ws-health-drawer[hidden]{display:none!important}
.ws-health-backdrop{
  position:absolute;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:opacity .22s ease;
}
.ws-health-drawer:not([hidden]) .ws-health-backdrop{opacity:1}
.ws-health-panel{
  position:absolute;top:0;left:0;width:min(400px,100vw);height:100%;
  background:var(--panel);border-right:1px solid var(--line-2);
  display:flex;flex-direction:column;transform:translateX(-100%);transition:transform .24s ease;
  box-shadow:8px 0 32px rgba(0,0,0,.25);
}
.ws-health-drawer:not([hidden]) .ws-health-panel{transform:translateX(0)}
.ws-health-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  padding:18px 18px 14px;border-bottom:1px solid var(--line-2);flex:none;
}
.ws-health-kicker{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);font-weight:700}
.ws-health-head h2{margin:4px 0 0;font-size:18px;font-weight:600;color:var(--ink-0)}
.ws-health-close{background:transparent;border:none;color:var(--ink-3);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}
.ws-health-close:hover{color:var(--ink-0)}
.ws-health-body{flex:1;overflow-y:auto;padding:16px 18px 20px;display:flex;flex-direction:column;gap:14px}
.ws-health-foot{padding:14px 18px;border-top:1px solid var(--line-2);flex:none}
.ws-health-action{
  width:100%;padding:10px 14px;border-radius:8px;border:none;cursor:pointer;
  background:var(--rust);color:#fff;font-size:13px;font-weight:600;
}
.ws-health-action:hover{filter:brightness(1.06)}
.ws-health-action:disabled{opacity:.45;cursor:not-allowed}
.ws-health-summary.ctx-health{display:flex;flex-direction:column;gap:12px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.ws-health-summary .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-4);margin-bottom:4px}
.ws-health-summary .big{font-size:15px;font-weight:600;color:var(--ink-0);line-height:1.35;text-transform:capitalize}
.ws-health-posture-note{margin:2px 0 8px;font-size:11px;color:var(--ink-4);line-height:1.4}
.ws-health-posture-select{width:100%;padding:7px 9px;font-size:13px;background:var(--panel-2);color:var(--ink-0);border:1px solid var(--line-2);border-radius:8px;text-transform:capitalize}
.ws-health-posture-select:focus{outline:none;border-color:var(--cyan)}
.ws-health-posture-status{display:inline-block;margin-top:6px;font-size:11px;color:var(--ink-3);min-height:1em}
.ws-health-summary .ctx-meter{height:6px;background:var(--panel-3);border-radius:4px;overflow:hidden;margin:6px 0}
.ws-health-summary .ctx-meter>span{display:block;height:100%;background:var(--green);border-radius:4px}
.ws-health-summary .ctx-check-item{
  display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-2);
  padding:8px 0;border-bottom:1px solid var(--line);
}
.ws-health-summary .ctx-check-item b{color:var(--ink-0);font-size:14px}
.ws-health-sec{border:1px solid var(--line-2);border-radius:10px;overflow:hidden;background:var(--panel-2)}
.ws-health-sec.warn{border-color:rgba(251,191,36,.35)}
.ws-health-sec-head{
  width:100%;display:flex;align-items:center;gap:8px;padding:10px 12px;
  background:transparent;border:none;color:var(--ink-1);cursor:pointer;font:inherit;text-align:left;
}
.ws-health-sec-head:hover{background:var(--panel-3)}
.ws-health-sec-title{flex:1;font-size:12px;font-weight:600;color:var(--ink-0)}
.ws-health-sec-count{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-2);min-width:1.5em;text-align:right}
.ws-health-sec.warn .ws-health-sec-count{color:var(--amber)}
.ws-health-sec-chev{color:var(--ink-4);font-size:11px}
.ws-health-sec-body{padding:0 12px 12px;max-height:38vh;overflow-y:auto}
.ws-health-list{margin:0;padding:0;list-style:none}
.ws-health-list li{padding:8px 0;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-1);line-height:1.45}
.ws-health-list li:first-child{border-top:none}
.ws-health-list strong{display:block;color:var(--ink-0);font-weight:600;margin-bottom:2px}
.ws-health-list span{display:block;color:var(--ink-3);font-size:12px}
.ws-health-empty{margin:0;font-size:12px;color:var(--ink-3);line-height:1.45}
.ws-health-hint{margin:0;font-size:11px;color:var(--ink-4);line-height:1.45}

/* ── Profile Drivers: the ask (alpha) ───────────────────────────────── */
.ws-drv-ask{display:flex;flex-direction:column;gap:10px}
.ws-drv-ask .lbl,
.ws-drv-reads-sec .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-4);margin-bottom:4px}
.ws-drv-headline{margin:0;font-size:14px;line-height:1.45;color:var(--ink-1)}
.ws-drv-headline b{color:var(--ink-0);font-weight:700}
.ws-drv-rows{display:flex;flex-direction:column}
.ws-drv-row{
  display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:baseline;
  padding:11px 0;border-bottom:1px solid var(--line);
}
.ws-drv-row:last-child{border-bottom:none}
.ws-drv-label{color:var(--ink-0);font-size:13px;font-weight:600}
.ws-drv-state{
  font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4);
  border:1px solid var(--line-2);border-radius:3px;padding:1px 4px;font-weight:600;white-space:nowrap;
}
.ws-drv-delta{
  font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;
  color:var(--rust);background:rgba(255,106,61,.14);border:1px solid rgba(255,106,61,.3);
  border-radius:5px;padding:2px 6px;
}
.ws-drv-why{grid-column:1/-1;margin:3px 0 0;color:var(--ink-3);font-size:11.5px;line-height:1.45}
.ws-drv-action{
  grid-column:1/-1;justify-self:start;margin-top:6px;text-decoration:none;
  font-size:12px;font-weight:600;color:var(--rust);
  border:1px solid rgba(255,106,61,.3);border-radius:6px;padding:4px 9px;
}
.ws-drv-action:hover{background:rgba(255,106,61,.14)}
.ws-drv-action:focus-visible{outline:2px solid var(--rust);outline-offset:2px}
.ws-drv-empty{margin:0;color:var(--ink-2);font-size:13px;line-height:1.5}
.ws-drv-reads-sec{display:flex;flex-direction:column;gap:5px;padding-top:14px;border-top:1px solid var(--line)}
.ws-drv-reads{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}
.ws-drv-read{
  font-size:12px;color:var(--ink-3);background:var(--panel-3);
  border:1px solid var(--line-2);border-radius:6px;padding:4px 8px;
  text-decoration:none;
}
.ws-drv-read:hover{border-color:var(--cyan);color:var(--cyan)}
.ws-drv-read:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

/* ═══════════════════════════════════════════════════════════
   Mobile-only injected elements — hidden on desktop
═══════════════════════════════════════════════════════════ */
.mob-menu-btn    { display: none; }
.mob-avatar-btn  { display: none; }
.mob-feedback-btn { display: none; }
.mob-topbar-right { display: none; }
.mob-account-wrap { display: none; }
.mob-account-menu { display: none; }
.mob-nav-overlay { display: none; }
.mob-nav-drawer  { display: none; }
.mob-ask-bar     { display: none; }
.mob-chat-sheet  { display: none; }

/* ═══════════════════════════════════════════════════════════
   Mobile — iPhone (≤ 430 px)  — workspace (Prism) page
═══════════════════════════════════════════════════════════ */
@media (max-width: 430px) {

  /* ── topbar: hamburger | YEL00 Prism | avatar ── */
  .topbar {
    flex-wrap: wrap;
    padding: 0;
    min-height: 52px;
    gap: 0;
    align-items: center;
  }
  /* topbar-edit is never shown on mobile */
  .topbar-edit { display: none !important; }
  .app.mode-edit .topbar-edit { display: none !important; }

  /* topbar-view: hide everything inside it except the co-picker,
     then let it wrap as the full-width second row */
  .topbar-view {
    display: flex;
    align-items: center;
    order: 10;
    width: 100%;
    padding: 0;
    gap: 0;
  }
  .topbar-view > *:not(.co-picker) { display: none !important; }
  .topbar-view > .co-picker {
    width: 100%;
    min-width: 0;
    border-radius: 0;
    border-top: 1px solid var(--line);
    border-left: none;
    border-right: none;
    padding: 12px 16px;
    font-size: 15px;
  }

  .topbar > .brand,
  .topbar > a.brand-home {
    flex: 1;
    text-align: center;
    height: 52px;
    line-height: 52px;
    pointer-events: none;
  }
  .topbar > a.brand-home { display: inline-flex; justify-content: center; }
  /* hide "· prism" subtitle on mobile */
  .topbar .brand span { display: none; }

  /* ── hamburger and topbar right cluster (injected by nav.js) ── */
  .mob-menu-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 52px;
    flex: none;
    background: transparent;
    border: none;
    color: var(--ink-2);
    font-size: 18px;
    cursor: pointer;
    padding: 0 12px;
    -webkit-tap-highlight-color: transparent;
  }
  .mob-menu-btn:active { color: var(--ink-0); }

  .mob-topbar-right {
    display: flex;
    align-items: center;
    flex: none;
    margin-left: auto;
    height: 52px;
    padding-right: 4px;
  }

  .mob-feedback-btn,
  .mob-avatar-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    flex: none;
    background: transparent;
    border: none;
    color: var(--ink-2);
    cursor: pointer;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
    border-radius: 10px;
  }
  .mob-feedback-btn { display: none; }
  html.alpha-mode .mob-feedback-btn { display: flex; }
  .mob-feedback-btn:active,
  .mob-avatar-btn:active { color: var(--ink-0); background: var(--panel-2); }

  .mob-account-wrap {
    display: block;
    position: relative;
  }

  .mob-account-menu {
    display: block;
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 168px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: 0 10px 32px rgba(0, 0, 0, 0.45);
    z-index: 210;
    overflow: hidden;
  }
  .mob-account-menu[hidden] { display: none !important; }

  .mob-account-item {
    display: block;
    width: 100%;
    padding: 13px 16px;
    font-size: 14px;
    color: var(--ink-1);
    text-decoration: none;
    background: transparent;
    border: none;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    box-sizing: border-box;
  }
  .mob-account-item:active { background: var(--panel-2); color: var(--ink-0); }
  .mob-account-signout {
    color: var(--ink-3);
    border-top: 1px solid var(--line);
  }

  /* ── hide rail, resize handle, and side chat ── */
  .rail          { display: none !important; }
  .resize-handle { display: none !important; }
  .chat          { display: none !important; }

  /* center fills full width */
  .body { flex-direction: column; }
  .center { min-width: 0; }

  /* bottom padding so content clears the pinned bar */
  .center-scroll { padding-bottom: 80px; }

  /* ── pinned "Ask Prism" bar ── */
  .mob-ask-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    padding: 10px 14px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    background: var(--panel);
    border-top: 1px solid var(--line);
    z-index: 100;
  }
  .mob-ask-input {
    flex: 1;
    background: var(--panel-2);
    border: 1px solid var(--line-2);
    border-radius: 22px;
    color: var(--ink-0);
    font-family: inherit;
    font-size: 15px;
    padding: 11px 16px;
    outline: none;
    min-height: 44px;
    -webkit-appearance: none;
  }
  .mob-ask-input::placeholder { color: var(--ink-4); }
  .mob-ask-send {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: none;
    background: var(--rust);
    color: #2a0c03;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent;
  }
  .mob-ask-send:disabled { opacity: 0.45; cursor: not-allowed; }

  /* ── chat bottom sheet (slides up on submit) ── */
  .mob-chat-sheet {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    height: 70vh;
    background: var(--panel);
    border-top: 1px solid var(--line-2);
    border-radius: 16px 16px 0 0;
    z-index: 110;
    display: flex;
    flex-direction: column;
    transform: translateY(100%);
    transition: transform 0.28s cubic-bezier(0.32, 0.72, 0, 1);
    box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.5);
  }
  .mob-chat-sheet:not([hidden]) { transform: translateY(0); display: flex; }
  .mob-chat-sheet[hidden] { transform: translateY(100%); display: none; }

  .mob-cs-head {
    display: flex;
    align-items: center;
    padding: 14px 16px 10px;
    border-bottom: 1px solid var(--line);
    flex: none;
  }
  .mob-cs-title {
    flex: 1;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink-2);
    letter-spacing: 0.04em;
  }
  .mob-cs-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: transparent;
    border: none;
    color: var(--ink-3);
    font-size: 22px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .mob-cs-close:active { color: var(--ink-0); }

  .mob-cs-msgs {
    flex: 1;
    overflow-y: auto;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .mob-cs-input-row {
    display: flex;
    gap: 8px;
    padding: 10px 14px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--line);
    flex: none;
  }
  .mob-cs-textarea {
    flex: 1;
    background: var(--panel-2);
    border: 1px solid var(--line-2);
    border-radius: 12px;
    color: var(--ink-0);
    font-family: inherit;
    font-size: 14px;
    padding: 10px 12px;
    resize: none;
    outline: none;
    min-height: 40px;
    max-height: 80px;
    line-height: 1.4;
    -webkit-appearance: none;
  }
  .mob-cs-textarea::placeholder { color: var(--ink-4); }
  .mob-cs-send {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: none;
    background: var(--rust);
    color: #2a0c03;
    font-size: 17px;
    cursor: pointer;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: flex-end;
    -webkit-tap-highlight-color: transparent;
  }
  .mob-cs-send:disabled { opacity: 0.45; cursor: not-allowed; }

  /* ── nav drawer overlay (workspace uses --panel/--line tokens) ── */
  .mob-nav-overlay {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(0, 0, 0, 0.55);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease;
  }
  .mob-nav-overlay.open { opacity: 1; pointer-events: auto; }

  .mob-nav-drawer {
    display: flex;
    position: fixed;
    inset: 0 auto 0 0;
    width: min(280px, 85vw);
    background: var(--panel);
    border-right: 1px solid var(--line);
    z-index: 201;
    flex-direction: column;
    overflow-y: auto;
    transform: translateX(-100%);
    transition: transform 0.22s ease;
  }
  .mob-nav-drawer.open { transform: translateX(0); }

  .mob-nav-head {
    display: flex;
    align-items: center;
    height: 52px;
    padding: 0 8px 0 16px;
    border-bottom: 1px solid var(--line);
    flex: none;
  }
  .mob-nav-title { flex: 1; font-size: 13px; font-weight: 700; color: var(--ink-2); letter-spacing: 0.06em; }
  .mob-nav-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: transparent;
    border: none;
    color: var(--ink-3);
    font-size: 22px;
    cursor: pointer;
    border-radius: 8px;
    -webkit-tap-highlight-color: transparent;
  }
  .mob-nav-close:active { color: var(--ink-0); }

  .mob-nav-items { display: flex; flex-direction: column; padding: 8px 0; flex: 1; }
  .mob-nav-group-label {
    font-size: 9px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--ink-4); padding: 14px 16px 4px;
  }
  .mob-nav-link {
    display: flex; align-items: center;
    padding: 13px 16px; font-size: 14px; color: var(--ink-2);
    text-decoration: none; border-left: 3px solid transparent;
    -webkit-tap-highlight-color: transparent;
  }
  .mob-nav-link.on { color: var(--ink-0); background: var(--panel-2); border-left-color: var(--rust); }
  .mob-nav-link:active { background: var(--panel-2); color: var(--ink-0); }
}
