/* =========================================================================
   Auto RCA — v1.0 workbench
   Shell matches NexTier Project AI (top bar · two-line sidebar · page header · density).
   Tokens stay Auto RCA / NexTier. Color semantics (structure is information):
     green  = NexTier / human decisions / approved-SOP content
     cyan   = engine-generated content (always framed, never unmarked)
     amber  = screening drafts + staged-but-unapplied curation
     red    = excluded evidence, holds, typed refusals
     slate  = provenance metadata (the audit voice)
   ========================================================================= */
:root {
  --field:#EEF0F3; --panel:#FFFFFF; --panel2:#F7F8FA; --border:#E1E4E8; --divider:#EDEFF2;
  --ink:#202124; --muted:#5F6571; --faint:#9499A1;
  --green:#007B37; --green-dk:#00451F; --emerald:#55A500; --lime:#88C34B; --slate:#738C93; --gray:#A6B1B5;
  --soft-green:#E6F2EA; --soft-green-b:#C9E3D2;
  --cyan:#00D4FF; --cyan-ink:#0A7E97; --soft-cyan:#E1F6FB; --cyan-b:#B9E6EF;
  --amber:#B96A08; --soft-amber:#FBF0DD; --amber-b:#EBD9B0;
  --red:#C2413B; --soft-red:#FBE6E5; --red-b:#E8B6B3;
  --disp:'Cairo', Arial, sans-serif;
  --mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --top:52px; --side:236px;
}
* { box-sizing:border-box; }
html,body { height:100%; }
body { margin:0; font:13px/1.5 Arial,'Helvetica Neue',Helvetica,sans-serif; background:var(--field); color:var(--ink);
       -webkit-font-smoothing:antialiased; overflow:hidden; }
button { font:inherit; cursor:pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible,
[tabindex]:focus-visible { outline:2px solid var(--cyan-ink); outline-offset:1px; }
::selection { background:#CBE8D6; }
a { color:var(--green-dk); }
.hidden { display:none !important; }

/* ---------- top bar ---------- */
#top { height:var(--top); background:var(--green); color:#fff; display:flex; align-items:center;
       gap:4px; padding:0 8px 0 6px; position:relative; z-index:900; flex-shrink:0; }
.ic { background:transparent; border:0; color:#fff; width:38px; height:38px; border-radius:6px;
      display:grid; place-items:center; }
.ic:hover { background:rgba(255,255,255,.15); }
.mark { display:flex; align-items:center; gap:9px; margin-left:2px; }
.mark .tile { width:28px; height:28px; background:#fff; border-radius:5px; display:grid; place-items:center;
              box-shadow:0 1px 2px rgba(0,0,0,.18); font:700 11px var(--disp); color:var(--green); letter-spacing:.3px; }
.mark .name { font-size:17px; font-weight:500; letter-spacing:.2px; }
.vdiv { width:1px; height:22px; background:rgba(255,255,255,.28); margin:0 10px; }
.tenant { background:rgba(255,255,255,.10); border:0; color:#fff; height:32px; border-radius:6px;
          display:flex; align-items:center; gap:7px; padding:0 10px; font-size:13px; font-weight:500; }
.tenant:hover { background:rgba(255,255,255,.16); }
.spacer { flex:1; }
.apistat { display:flex; align-items:center; gap:7px; font-size:11.5px; color:rgba(255,255,255,.85); margin-right:8px; }
.apidot { width:8px; height:8px; border-radius:50%; background:var(--gray); }
.apidot.ok { background:#7BE28A; } .apidot.err { background:#FF9A94; }
.userchip { display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.10); border:0; border-radius:7px;
            padding:4px 8px 4px 4px; color:#fff; margin-left:4px; }
.userchip:hover { background:rgba(255,255,255,.16); }
.avatar { width:30px; height:30px; border-radius:99px; background:#fff; color:var(--green); display:grid;
          place-items:center; font-weight:700; font-size:11.5px; flex-shrink:0; }
.userchip .t { text-align:left; line-height:1.15; }
.userchip .n { display:block; font-size:12px; font-weight:600; }
.userchip .r { display:block; font-size:9.5px; opacity:.8; text-transform:capitalize; }
#userMenu { position:absolute; top:100%; right:8px; margin-top:6px; width:268px; background:#fff; color:var(--ink);
            border:1px solid rgba(0,0,0,.12); border-radius:8px; box-shadow:0 8px 28px rgba(0,0,0,.28); overflow:hidden; z-index:940; }
#userMenu .mh { padding:9px 13px; font-size:9.5px; font-weight:700; letter-spacing:.7px; text-transform:uppercase;
                color:#7C8A80; background:#F3F5F3; border-bottom:1px solid rgba(0,0,0,.07); }
#userMenu .mrow { padding:10px 13px; border-bottom:1px solid rgba(0,0,0,.05); font-size:12px; }
#userMenu .mrow small { display:block; color:var(--muted); font-size:10.5px; }
#userMenu .mact { width:100%; text-align:left; border:0; background:none; padding:9px 13px; font-size:12.5px; color:var(--ink); }
#userMenu .mact:hover { background:var(--panel2); }
#userMenu select, #userMenu input { width:100%; border:1px solid var(--border); border-radius:5px; padding:5px 7px; font:12px Arial; margin-top:4px; }

/* ---------- body: sidebar + main ---------- */
#body { display:flex; height:calc(100vh - var(--top)); }
#side { width:var(--side); flex-shrink:0; background:var(--panel); border-right:1px solid var(--border);
        display:flex; flex-direction:column; transition:width .22s ease; overflow:hidden; }
#side.closed { width:0; border-right:0; }
#side > div { width:var(--side); display:flex; flex-direction:column; height:100%; }
.sidelbl { padding:16px 16px 12px; font-size:10px; font-weight:700; letter-spacing:1px; color:#8A9099; text-transform:uppercase; }
nav.navlist { padding:0 10px; display:flex; flex-direction:column; gap:2px; }
.navitem { text-align:left; border:0; border-radius:6px; padding:9px 11px; background:transparent; display:flex;
           align-items:center; gap:11px; border-left:3px solid transparent; color:#3A3F47; width:100%; }
.navitem:hover { background:#F1F3F6; }
.navitem.on { background:var(--soft-green); border-left-color:var(--green); }
.navitem svg { width:17px; height:17px; flex-shrink:0; color:#8A9099; }
.navitem.on svg { color:var(--green); }
.navitem .l { display:block; font-size:12.5px; font-weight:600; }
.navitem.on .l { color:var(--green-dk); }
.navitem .d { display:block; font-size:10px; color:#8A9099; }
.navitem.reserved { opacity:.55; cursor:default; }
.navitem .tag { margin-left:auto; font-size:9.5px; letter-spacing:.4px; border:1px solid var(--border); border-radius:3px;
                padding:0 5px; color:var(--faint); }
.sidefoot { margin-top:auto; padding:14px 16px 16px; border-top:1px solid var(--border); }
.sidefoot .p { font-size:10px; color:#8A9099; margin-bottom:6px; }
.sidefoot .b { display:block; }
.sidefoot .b img { display:block; width:150px; height:auto; }
.sidefoot .b img.lg-dark { display:none; }
html[data-theme="dark"] .sidefoot .b img.lg-light { display:none; }
html[data-theme="dark"] .sidefoot .b img.lg-dark { display:block; }

/* ---------- major components (v1.10): colour = component on the timeline ---------- */
:root { --c-engine:#E4572E; --c-transmission:#7B61FF; --c-power_end:#1F9E89; --c-fluid_end:#2E86DE; --c-subsystem:#8A9099; }
html[data-theme="dark"] { --c-engine:#FF7A57; --c-transmission:#A38BFF; --c-power_end:#3DBFA6; --c-fluid_end:#5AA5F0; --c-subsystem:#9AA3AE; }
.chip.comp { display:inline-flex; align-items:center; gap:6px; }
.chip.comp i { width:9px; height:9px; border-radius:2px; display:inline-block; background:var(--c); }
.chip.comp[aria-pressed="false"] { opacity:.5; }
.chip.comp[aria-pressed="false"] i { background:transparent; box-shadow:inset 0 0 0 2px var(--c); }
.tlcomp { font-size:10px; fill:var(--muted); }

/* ---------- header activity: a scanner that sweeps while the app works, plus one word ---------- */
.activity { display:inline-flex; align-items:center; gap:9px; margin-right:14px; font-size:11.5px; color:#fff; }
.activity[hidden] { display:none; }
.activity .scan { position:relative; width:64px; height:6px; border-radius:99px; background:rgba(0,0,0,.28); overflow:hidden; }
.activity .scan i { position:absolute; top:0; left:0; width:18px; height:100%; border-radius:99px; background:var(--cyan);
  box-shadow:0 0 8px 2px rgba(0,212,255,.55); animation:scan .85s ease-in-out infinite alternate; }
.activity .w { letter-spacing:.3px; min-width:62px; }
@keyframes scan { from { transform:translateX(0); } to { transform:translateX(46px); } }
@media (prefers-reduced-motion: reduce) { .activity .scan i { animation:scanpulse 1.2s ease-in-out infinite alternate; left:23px; }
  @keyframes scanpulse { from { opacity:.35; } to { opacity:1; } } }
.sideadmin { padding:8px 10px 0; border-top:1px solid var(--divider); margin-top:8px; }

#main { flex:1; min-width:0; display:flex; flex-direction:column; min-height:0; }

/* ---------- page header (Project AI sub-header pattern) ---------- */
.pagehead { background:var(--panel2); border-bottom:1px solid var(--border); padding:0 18px; display:flex;
            align-items:center; justify-content:space-between; min-height:52px; flex-shrink:0; gap:18px; }
.pagehead .t { font:700 18px/1.1 var(--disp); letter-spacing:.2px; }
.pagehead .s { font-size:10.5px; color:var(--faint); }
.pagehead .s b { color:var(--muted); font-weight:normal; }
.pagehead .acts { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
#view { flex:1; min-height:0; overflow-y:auto; }
.page { padding:16px 18px 60px; max-width:1240px; }
.page.wide { max-width:none; }

/* ---------- buttons, chips, badges ---------- */
.btn { border-radius:6px; border:1px solid var(--border); background:var(--panel); padding:6px 13px; font-size:12.5px; color:var(--ink); }
.btn:hover { background:var(--panel2); }
a.btn, a.prow, a.navitem, a.wo, a.tab { text-decoration:none; }
a.btn { display:inline-block; line-height:1.5; }
.btn.primary { background:var(--green); border-color:var(--green-dk); color:#fff; font-weight:bold; }
.btn.primary:hover { background:#006A2F; }
.btn.amberline { border-color:var(--amber-b); color:var(--amber); }
.btn.danger { border-color:var(--red-b); color:var(--red); }
.btn.sm { padding:3px 9px; font-size:11.5px; }
.btn:disabled { opacity:.45; cursor:not-allowed; }
.chip { border:1px solid var(--border); background:var(--panel); border-radius:99px; padding:3px 10px; font-size:11.5px; color:var(--muted); }
.chip[aria-pressed="true"] { background:var(--soft-green); border-color:var(--soft-green-b); color:var(--green-dk); font-weight:bold; }
.chip.amb[aria-pressed="true"] { background:var(--soft-amber); border-color:var(--amber-b); color:var(--amber); }
.badge { font-size:10px; letter-spacing:.4px; border-radius:3px; padding:1px 5px; border:1px solid; white-space:nowrap; }
.b-warranty { color:var(--amber); border-color:var(--amber-b); background:var(--soft-amber); }
.b-lowhrs { color:var(--cyan-ink); border-color:var(--cyan-b); background:var(--soft-cyan); }
.b-hold { color:var(--red); border-color:var(--red-b); background:var(--soft-red); }
.b-repeat { color:var(--slate); border-color:var(--border); background:var(--panel2); }
.st { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; white-space:nowrap; }
.st i { width:8px; height:8px; border-radius:50%; flex-shrink:0; background:var(--gray); }
.st.none i { background:var(--gray); } .st.screening i { background:var(--amber); }
.st.open i { background:var(--slate); } .st.in_analysis i { background:var(--cyan-ink); }
.st.in_review i { background:var(--emerald); } .st.final i { background:var(--green); }
.owner { font-size:11px; color:var(--green-dk); background:var(--soft-green); border:1px solid var(--soft-green-b); border-radius:99px; padding:1px 8px; white-space:nowrap; }
.mono { font-family:var(--mono); font-size:11.5px; color:var(--slate); }
.lc { font-size:10.5px; letter-spacing:.4px; text-transform:uppercase; border-radius:3px; padding:1px 7px; white-space:nowrap; }
.lc.open { background:var(--panel2); color:var(--slate); border:1px solid var(--border); }
.lc.in_analysis { background:var(--soft-cyan); color:var(--cyan-ink); }
.lc.in_review { background:var(--soft-green); color:var(--emerald); border:1px solid var(--soft-green-b); }
.lc.final { background:var(--soft-green); color:var(--green-dk); }
.lc.screening { background:var(--soft-amber); color:var(--amber); }

/* ---------- toolbar + grid ---------- */
.toolbar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.toolbar select, .toolbar input[type=date], .toolbar input[type=search] { border:1px solid var(--border); border-radius:6px; padding:5px 8px; font:12px Arial; background:var(--panel); color:var(--ink); }
.toolbar .sep { width:1px; height:22px; background:var(--border); margin:0 4px; }
.toolbar .note { font-size:11.5px; color:var(--muted); margin-left:auto; }
.grid { width:100%; border-collapse:collapse; background:var(--panel); border:1px solid var(--border); border-radius:6px; overflow:hidden; font-size:12.5px; }
.grid th { text-align:left; background:var(--panel2); font:700 11px var(--disp); text-transform:uppercase; letter-spacing:.6px;
           color:var(--slate); padding:8px 10px; border-bottom:1px solid var(--border); white-space:nowrap; user-select:none; }
.grid th.sortable { cursor:pointer; }
.grid th.sortable:hover { color:var(--green-dk); }
.grid th .arrow { font-size:9px; margin-left:3px; color:var(--green); }
.grid td { padding:7px 10px; border-bottom:1px solid var(--divider); vertical-align:middle; }
.grid tr:hover td { background:var(--panel2); }
.grid tr.sel td { background:var(--soft-green); }
.grid td.acts { white-space:nowrap; text-align:right; }
.grid td.acts .btn { margin-left:4px; }
.grid .wo { font:600 12px var(--mono); white-space:nowrap; }
.grid td.mono { white-space:nowrap; }
.grid input[type=checkbox] { accent-color:var(--green); }
.grid .empty { padding:22px; color:var(--muted); text-align:center; }
.batchbar { display:flex; align-items:center; gap:12px; background:var(--soft-green); border:1px solid var(--soft-green-b);
            border-radius:6px; padding:8px 12px; margin-bottom:10px; font-size:12.5px; color:var(--green-dk); }

/* ---------- home ---------- */
.homegrid { display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:14px; }
.card { background:var(--panel); border:1px solid var(--border); border-radius:8px; }
.card .ch { padding:10px 14px; border-bottom:1px solid var(--divider); display:flex; align-items:center; gap:10px; }
.card .ch .t { font:700 13px var(--disp); color:var(--green-dk); }
.card .ch .n { font:11px var(--mono); color:var(--faint); }
.card .ch .btn { margin-left:auto; }
.card .cb { padding:6px 0; }
.card .empty { padding:14px; font-size:12.5px; color:var(--muted); }
.prow { display:flex; align-items:center; gap:10px; padding:8px 14px; border-bottom:1px solid var(--divider); text-align:left;
        width:100%; background:none; border-left:0; border-right:0; border-top:0; }
.prow:last-child { border-bottom:0; }
.prow:hover { background:var(--panel2); }
.prow .pid { font:600 12px var(--mono); color:var(--green-dk); min-width:110px; }
.prow .pt { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.prow .pm { font-size:11px; color:var(--muted); white-space:nowrap; }
.hello { background:var(--panel); border:1px solid var(--border); border-left:4px solid var(--green); border-radius:8px; padding:14px 18px; margin-bottom:14px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.hello .h { font:700 17px var(--disp); }
.hello .s { font-size:12px; color:var(--muted); }
.hello .acts { margin-left:auto; display:flex; gap:8px; }

/* ---------- project detail (the workbench, re-housed) ---------- */
.invhead { background:var(--panel); border-bottom:1px solid var(--border); padding:12px 18px 0; flex-shrink:0; }
.invtop { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.invwo { font:700 21px var(--disp); letter-spacing:.2px; }
.invwo small { font:600 13px var(--mono); color:var(--slate); margin-left:8px; }
.invmeta { font-size:12px; color:var(--muted); font-family:var(--mono); }
.invactions { margin-left:auto; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.steps { display:flex; gap:0; margin:12px 0 0; }
.step { flex:1; max-width:170px; padding:5px 8px 9px 0; font-size:11px; color:var(--faint); text-transform:uppercase; letter-spacing:.7px; border-bottom:3px solid var(--divider); }
.step.done { color:var(--green-dk); border-bottom-color:var(--soft-green-b); }
.step.now { color:var(--green-dk); font-weight:bold; border-bottom-color:var(--green); }
.banner { padding:8px 18px; font-size:12.5px; border-bottom:1px solid; display:none; }
.banner.show { display:block; }
.banner.hold { background:var(--soft-red); color:var(--red); border-color:var(--red-b); }
.banner.ro { background:var(--panel2); color:var(--muted); border-color:var(--border); }
.banner.screen { background:var(--soft-amber); color:var(--amber); border-color:var(--amber-b); }
.banner.final { background:var(--soft-green); color:var(--green-dk); border-color:var(--soft-green-b); }
.banner.review { background:var(--soft-green); color:var(--emerald); border-color:var(--soft-green-b); }

#pipe { background:var(--green-dk); padding:8px 18px; display:flex; gap:6px; align-items:center; overflow-x:auto; flex-shrink:0; }
.pnode { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.pcell { border:1px solid rgba(255,255,255,.25); color:rgba(255,255,255,.55); border-radius:4px; padding:2.5px 8px;
         font:11px var(--mono); white-space:nowrap; background:rgba(255,255,255,.04); }
.pcell.active { color:#fff; border-color:var(--cyan); background:rgba(0,212,255,.16); animation:pulse 1.1s ease-in-out infinite; }
.pcell.done { color:#CFEEDB; border-color:rgba(123,226,138,.55); background:rgba(123,226,138,.10); }
.pcell.refused { color:#FFC2BE; border-color:#FF9A94; background:rgba(255,154,148,.15); }
.pcell.skip { opacity:.28; }
.parrow { color:rgba(255,255,255,.3); font-size:10px; }
@keyframes pulse { 50% { box-shadow:0 0 0 4px rgba(0,212,255,.18); } }
@media (prefers-reduced-motion: reduce) { .pcell.active { animation:none; } }
#pipeNote { margin-left:auto; color:rgba(255,255,255,.7); font:11px var(--mono); flex-shrink:0; }

.tabs { display:flex; gap:2px; background:var(--panel); border-bottom:1px solid var(--border); padding:0 18px; flex-shrink:0; }
.tab { border:0; background:none; padding:9px 14px 8px; font-size:13px; color:var(--muted); border-bottom:3px solid transparent; }
.tab[aria-selected="true"] { color:var(--green-dk); font-weight:bold; border-bottom-color:var(--green); }
.tab .cnt { font:11px var(--mono); color:var(--faint); margin-left:4px; }
#inv { display:flex; flex-direction:column; height:100%; min-height:0; }
#panes { flex:1; min-height:0; overflow-y:auto; }
.pane { display:none; padding:16px 18px 80px; max-width:1060px; }
.pane.show { display:block; }

/* evidence workspace */
.evtools { display:flex; align-items:center; gap:14px; margin-bottom:12px; flex-wrap:wrap; }
.evstat { font-size:12px; color:var(--muted); }
.evstat b { color:var(--ink); }
.fprint { font:11.5px var(--mono); color:var(--slate); background:var(--panel); border:1px solid var(--border); border-radius:4px; padding:2px 8px; }
.srcgroup { margin-bottom:18px; }
.srchead { font:700 11.5px var(--disp); text-transform:uppercase; letter-spacing:.9px; color:var(--slate); margin:0 0 7px 2px; display:flex; gap:8px; align-items:center; }
.srchead .n { font:11px var(--mono); color:var(--faint); font-weight:normal; }
.ecard { background:var(--panel); border:1px solid var(--border); border-left:3px solid var(--slate); border-radius:6px; padding:10px 12px; margin-bottom:8px; }
.ecard.excluded { border-left-color:var(--red); background:#FBF6F6; }
.ecard.excluded .efind { text-decoration:line-through; color:var(--muted); }
.ecard.edited { border-left-color:var(--amber); }
.ecard.owner { border-left-color:var(--green); }
.ecard.staged { outline:2px dashed var(--amber-b); outline-offset:-1px; }
.etop { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.eid { font:11px var(--mono); color:var(--slate); background:var(--panel2); border:1px solid var(--divider); border-radius:3px; padding:0 5px; }
.ekind { font-size:10.5px; letter-spacing:.4px; text-transform:uppercase; color:var(--muted); }
.etag { font-size:10px; border-radius:3px; padding:1px 6px; letter-spacing:.4px; }
.t-excl { background:var(--soft-red); color:var(--red); }
.t-edit { background:var(--soft-amber); color:var(--amber); }
.t-own { background:var(--soft-green); color:var(--green-dk); }
.t-file { background:var(--soft-green); color:var(--green-dk); border:1px solid var(--soft-green-b); }
.t-staged { background:var(--soft-amber); color:var(--amber); border:1px dashed var(--amber-b); }
.t-pending { background:var(--soft-amber); color:var(--amber); }
.eacts { margin-left:auto; display:flex; gap:4px; }
.ebtn { border:1px solid var(--border); background:var(--panel); border-radius:4px; font-size:11px; padding:2px 8px; color:var(--muted); }
.ebtn:hover { background:var(--panel2); color:var(--ink); }
.efind { margin:6px 0 3px; font-size:13px; }
.ewhy { font-size:12px; color:var(--muted); font-style:italic; }
.eprov { margin-top:6px; font:10.5px var(--mono); color:var(--slate); }
.eprov a { color:var(--green-dk); }
.enote { margin-top:6px; font-size:11.5px; color:var(--red); background:var(--soft-red); border-radius:4px; padding:4px 8px; }
.enote.amber { color:var(--amber); background:var(--soft-amber); }
.einline { margin-top:8px; display:none; gap:6px; }
.einline.show { display:flex; }
.einline input, .einline textarea { flex:1; border:1px solid var(--border); border-radius:5px; padding:6px 8px; font:12.5px Arial; }
.einline textarea { min-height:52px; resize:vertical; }
.composer { background:var(--panel); border:1px dashed var(--soft-green-b); border-radius:6px; padding:12px; margin-bottom:8px; }
.composer .row { display:flex; gap:8px; margin-bottom:8px; flex-wrap:wrap; }
.composer select, .composer input, .composer textarea { border:1px solid var(--border); border-radius:5px; padding:6px 8px; font:12.5px Arial; }
.composer textarea { width:100%; min-height:56px; resize:vertical; }
.composer .row input[type=text] { flex:1; }
.ctitle { font:700 12px var(--disp); color:var(--green-dk); text-transform:uppercase; letter-spacing:.7px; margin-bottom:8px; }
.filedrop { border:1px dashed var(--border); border-radius:5px; padding:8px 10px; font-size:12px; color:var(--muted); display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.filedrop input[type=file] { font-size:12px; }
.filedrop .fname { font-family:var(--mono); font-size:11.5px; color:var(--green-dk); }
.thumb { max-width:220px; max-height:140px; border:1px solid var(--border); border-radius:4px; display:block; margin-top:6px; }
#stageBar { position:sticky; bottom:0; margin:14px -18px -80px; padding:10px 18px; background:var(--soft-amber); border-top:1px solid var(--amber-b);
            display:none; align-items:center; gap:12px; }
#stageBar.show { display:flex; }
#stageBar .msg { font-size:12.5px; color:var(--amber); }

/* analysis */
.engineframe { background:var(--panel); border:1px solid var(--border); border-top:3px solid var(--cyan-ink); border-radius:6px; }
.engbar { display:flex; align-items:center; gap:10px; padding:7px 14px; border-bottom:1px solid var(--divider); background:var(--soft-cyan); border-radius:3px 3px 0 0; }
.engbar .lbl { font:700 10.5px var(--disp); letter-spacing:.9px; color:var(--cyan-ink); }
.engbar .meta { font:11px var(--mono); color:var(--cyan-ink); opacity:.85; }
.report { padding:8px 22px 20px; }
/* ---------- v1.12 validated RCA + scorecard ---------- */
.modal.wide { width:min(760px, 94vw); }
.modal .grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.valcard { border:1px solid var(--border); border-left:4px solid var(--green); border-radius:6px; background:var(--panel); padding:10px 14px; margin:8px 0 14px; }
.valcard .vh { display:flex; align-items:center; gap:8px; margin-bottom:6px; } .valcard .vh .t { font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.5px; color:var(--green-dk); }
.valcard .rc { font-size:14px; font-weight:600; margin:0 0 8px; line-height:1.45; }
.valcard p.sm { margin:4px 0; font-size:12.5px; }
.valempty { padding:12px 2px; }
.scorehead { display:flex; align-items:center; gap:10px; margin:0 0 8px; }
.stable td.c, .stable th.c { text-align:center; } .stable .sel td { background:var(--soft-green); }
.sbar { display:inline-block; height:8px; border-radius:99px; background:var(--divider); vertical-align:middle; overflow:hidden; margin-right:6px; }
.sbar i { display:block; height:100%; background:var(--cyan-ink); }
.sval { font:600 12px var(--mono); vertical-align:middle; }
.jrow td { padding-top:0 !important; border-top:0 !important; } .jr { font-size:12px; color:var(--muted); background:var(--panel2); border-radius:6px; padding:6px 10px; margin:0 0 6px; } .jr b { color:var(--ink); }
.bad { color:var(--red); }
.cmp td.n, .cmp th.n { text-align:center; } .cmp td.n { font:600 12px var(--mono); } .cmp tr.agg td { background:var(--panel2); border-top:2px solid var(--border); } .cmp .hold { color:var(--amber); font-size:10px; letter-spacing:.4px; margin-left:6px; }

/* ---------- v1.11 structured report ---------- */
.report .rhead { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; border-bottom:1px solid var(--divider); padding:6px 0 10px; }
.report .rtitle { font-weight:700; font-size:16px; }
.report .rsub { font-weight:400; font-size:11.5px; color:var(--muted); margin-left:6px; }
.report .rfacts { font:12px var(--mono); color:var(--muted); }
.report .headline { font-size:17px; line-height:1.4; font-weight:600; margin:14px 0 8px; }
.report .rcomps { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.report .rcomps .lbl { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.4px; margin-right:2px; }
.report .rcomps .lbl + .compchip { margin-right:10px; }
.compchip { display:inline-flex; align-items:center; gap:6px; padding:2px 9px; border-radius:99px; font-size:12px; font-weight:600; color:var(--ink); background:color-mix(in srgb, var(--c) 14%, transparent); border:1px solid color-mix(in srgb, var(--c) 45%, transparent); }
.compchip i { width:8px; height:8px; border-radius:2px; background:var(--c); }
.compchip.sm { font-weight:500; font-size:11.5px; } .compchip.sm b { font-weight:700; }
.report .rsec { margin:16px 0 0; }
.report .rsec h3 { font-size:12px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); margin:0 0 8px; }
.cause { border:1px solid var(--border); border-left-width:4px; border-radius:6px; padding:10px 12px; background:var(--panel); margin-bottom:8px; }
.cause.lead { background:var(--panel2); }
.cause.cat-physical { border-left-color:var(--c-engine); } .cause.cat-human { border-left-color:var(--amber); } .cause.cat-system { border-left-color:var(--c-fluid_end); }
.cause .ch { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:6px; }
.cause .cat { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); }
.cause .st { display:block; white-space:normal; margin:0 0 6px; font-size:14px; line-height:1.45; } .cause.lead .st { font-size:15px; font-weight:600; }
.cause ul.ev { margin:0 0 6px; padding-left:18px; font-size:12.5px; color:var(--muted); } .cause ul.ev li { margin:2px 0; }
.cause .checks { display:flex; flex-direction:column; gap:4px; border-top:1px dashed var(--divider); padding-top:6px; }
.chk { display:flex; gap:8px; align-items:flex-start; font-size:12.5px; cursor:pointer; } .chk input { margin-top:3px; } .chk.done { color:var(--muted); text-decoration:line-through; }
.conf { font-size:11px; color:var(--cyan-ink); letter-spacing:1px; } .conf em { font-style:normal; letter-spacing:0; color:var(--muted); margin-left:4px; }
.causes3 { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; }
@media (max-width:1100px) { .causes3 { grid-template-columns:1fr; } }
.causes3 .colh { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); padding:0 0 6px 4px; border-bottom:2px solid var(--border); margin-bottom:8px; }
.causes3 .colh.cat-physical { border-color:var(--c-engine); } .causes3 .colh.cat-human { border-color:var(--amber); } .causes3 .colh.cat-system { border-color:var(--c-fluid_end); }
.cascade { margin:0; padding-left:22px; font-size:13px; line-height:1.55; } .cascade li { margin:3px 0; }
.rollup { display:flex; align-items:center; gap:6px; flex-wrap:wrap; } .rollup .sep { width:1px; height:18px; background:var(--border); margin:0 4px; }
.cyl { font:12px var(--mono); padding:2px 8px; border:1px solid var(--border); border-radius:4px; background:var(--panel); } .cyl b { font-weight:700; }
.report ul.plain { margin:0; padding-left:20px; font-size:13px; line-height:1.5; } .report ul.plain.q li { color:var(--ink); } .report ul.plain.q { margin-top:6px; list-style:"? "; }
.report .muted { color:var(--muted); } .report .sm { font-size:12px; }
.report .narr { font-size:13.5px; line-height:1.55; }
.linkbtn { background:none; border:0; padding:0; color:var(--cyan-ink); font:600 12.5px Arial; cursor:pointer; }
.mdfull { border-top:1px solid var(--divider); margin-top:8px; padding-top:8px; }
.report h1 { font:700 19px var(--disp); border-bottom:2px solid var(--divider); padding-bottom:6px; }
.report h2 { font:700 15px var(--disp); color:var(--green-dk); margin-top:20px; }
.report h3 { font:700 13.5px var(--disp); }
.report table { border-collapse:collapse; font-size:12.5px; margin:8px 0; }
.report th, .report td { border:1px solid var(--border); padding:4px 9px; text-align:left; }
.report th { background:var(--panel2); }
.report blockquote { margin:10px 0; padding:8px 12px; background:var(--soft-amber); border-left:3px solid var(--amber); color:var(--amber); border-radius:0 4px 4px 0; }
.report code { font:12px var(--mono); background:var(--panel2); padding:0 4px; border-radius:3px; }

/* passes / related / trace */
.ptable { width:100%; border-collapse:collapse; background:var(--panel); border:1px solid var(--border); border-radius:6px; overflow:hidden; font-size:12.5px; }
.ptable th { text-align:left; background:var(--panel2); font:700 11px var(--disp); text-transform:uppercase; letter-spacing:.6px; color:var(--slate); padding:8px 12px; border-bottom:1px solid var(--border); }
.ptable td { padding:8px 12px; border-bottom:1px solid var(--divider); vertical-align:middle; }
.ptable tr.sel td { background:var(--soft-green); }
.phchip { font-size:10.5px; letter-spacing:.4px; text-transform:uppercase; border-radius:3px; padding:1px 7px; }
.ph-initial { background:var(--soft-cyan); color:var(--cyan-ink); }
.ph-final { background:var(--soft-green); color:var(--green-dk); }
.ph-screening { background:var(--soft-amber); color:var(--amber); }
.tracestage { background:var(--panel); border:1px solid var(--border); border-radius:6px; margin-bottom:8px; }
.tracestage summary { padding:8px 12px; font:600 12px var(--mono); color:var(--green-dk); cursor:pointer; }
.tev { border-top:1px solid var(--divider); padding:7px 12px; font:11.5px var(--mono); }
.tev .k { color:var(--cyan-ink); }
.tev pre { margin:4px 0 0; white-space:pre-wrap; word-break:break-word; color:var(--muted); max-height:180px; overflow:auto; background:var(--panel2); padding:6px 8px; border-radius:4px; }

/* ---------- admin ---------- */
.subtabs { display:flex; gap:2px; border-bottom:1px solid var(--border); margin:-16px -18px 16px; padding:0 18px; background:var(--panel); }
.subtabs .tab { font-size:12.5px; }
.scard { max-width:860px; margin:0 0 12px; background:var(--panel); border:1px solid var(--border); border-radius:8px; }
.scard .sc-top { display:flex; align-items:center; gap:10px; padding:12px 16px; }
.sc-num { width:24px; height:24px; border-radius:50%; background:var(--panel2); border:1px solid var(--border); font:700 12px var(--disp); color:var(--slate); display:grid; place-items:center; flex-shrink:0; }
.scard.done .sc-num { background:var(--soft-green); border-color:var(--soft-green-b); color:var(--green-dk); }
.scard.fail .sc-num { background:var(--soft-red); border-color:var(--red-b); color:var(--red); }
.sc-title { font:700 13.5px var(--disp); }
.sc-state { margin-left:auto; font-size:11.5px; color:var(--muted); }
.scard.done .sc-state { color:var(--green-dk); font-weight:bold; }
.scard.fail .sc-state { color:var(--red); font-weight:bold; }
.sc-bar { height:5px; background:var(--divider); margin:0 16px; border-radius:3px; overflow:hidden; }
.sc-fill { height:100%; width:0%; background:var(--green); border-radius:3px; transition:width .35s ease; }
.scard.fail .sc-fill { background:var(--red); }
@media (prefers-reduced-motion: reduce) { .sc-fill { transition:none; } }
.sc-body { padding:10px 16px 14px 50px; font-size:12.5px; }
.sc-line { display:flex; gap:8px; padding:3px 0; align-items:baseline; }
.sc-ok { color:var(--green-dk); font-weight:bold; } .sc-bad { color:var(--red); font-weight:bold; }
.sc-detail { color:var(--muted); font-family:var(--mono); font-size:11px; }
.sc-label { min-width:210px; }
.kv { width:100%; max-width:860px; border-collapse:collapse; background:var(--panel); border:1px solid var(--border); border-radius:6px; overflow:hidden; font-size:12.5px; }
.kv td { padding:7px 12px; border-bottom:1px solid var(--divider); vertical-align:top; }
.kv td:first-child { color:var(--muted); width:240px; }
.kv td.v { font-family:var(--mono); font-size:11.5px; }
.lead { max-width:760px; font-size:12.5px; color:var(--muted); margin:0 0 14px; }
.warn { background:var(--soft-amber); border:1px solid var(--amber-b); color:var(--amber); border-radius:6px; padding:8px 12px; font-size:12.5px; margin-bottom:12px; max-width:860px; }
.locked { padding:40px; text-align:center; color:var(--muted); }
.locked .big { font:700 20px var(--disp); color:var(--slate); margin-bottom:6px; }

/* ---------- overlays ---------- */
#login, #connect { position:fixed; inset:0; display:none; place-items:center; z-index:960; }
#login { background:var(--green-dk); } #connect { background:var(--field); z-index:950; }
#login.show, #connect.show { display:grid; }
.lbox { background:var(--panel); border-radius:10px; padding:30px 34px; width:380px; box-shadow:0 20px 60px rgba(0,0,0,.35); }
.lbox img { height:26px; margin-bottom:14px; }
.lbox h2 { font:700 19px var(--disp); color:var(--green-dk); margin:0 0 2px; }
.lbox .sub { font-size:12px; color:var(--muted); margin-bottom:16px; }
.lbox label { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:var(--slate); margin:10px 0 4px; }
.lbox input, .lbox select { width:100%; border:1px solid var(--border); border-radius:6px; padding:9px 10px; font:13.5px Arial; }
.lbox .btn.primary { width:100%; margin-top:16px; padding:9px; font-size:13.5px; }
#loginErr { color:var(--red); font-size:12px; margin-top:10px; display:none; }
#loginErr.show { display:block; }
.cbox { background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:26px 30px; max-width:460px; }
.cbox h2 { font:700 17px var(--disp); color:var(--green-dk); margin:0 0 8px; }
.cbox code { display:block; font:12px var(--mono); background:var(--green-dk); color:#CFEEDB; padding:10px 12px; border-radius:6px; margin:10px 0; white-space:pre-wrap; }
.cbox .row { display:flex; gap:8px; margin-top:12px; }
.cbox input { flex:1; border:1px solid var(--border); border-radius:5px; padding:7px 9px; font:12.5px var(--mono); }
#toast { position:fixed; bottom:18px; left:50%; transform:translateX(-50%); background:var(--green-dk); color:#fff; padding:8px 16px; border-radius:6px;
         font-size:12.5px; box-shadow:0 6px 20px rgba(0,0,0,.3); display:none; z-index:970; }
#toast.show { display:block; }
#toast.err { background:var(--red); }
dialog.modal { border:1px solid var(--border); border-radius:8px; padding:0; width:440px; box-shadow:0 20px 60px rgba(0,0,0,.35); }
dialog.modal::backdrop { background:rgba(20,32,26,.5); }
dialog.modal .mh { padding:12px 16px; font:700 14px var(--disp); color:var(--green-dk); border-bottom:1px solid var(--divider); }
dialog.modal .mb { padding:14px 16px; font-size:12.5px; }
dialog.modal .mb label { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:var(--slate); margin:8px 0 4px; }
dialog.modal .mb input, dialog.modal .mb select, dialog.modal .mb textarea { width:100%; border:1px solid var(--border); border-radius:5px; padding:6px 8px; font:12.5px Arial; }
dialog.modal .mf { padding:10px 16px; border-top:1px solid var(--divider); display:flex; gap:8px; justify-content:flex-end; }

@media (max-width: 900px) {
  :root { --side:200px; }
  .invwo { font-size:17px; }
  .userchip .t { display:none; }
}

/* ---------- v1.1 project workbench: timeline hero + analysis + context panel ---------- */
.wb { display:flex; flex:1; min-height:0; position:relative; overflow:hidden; }
.wbmain { flex:1; min-width:0; overflow-y:auto; display:flex; flex-direction:column; }
/* v1.9: the evidence panel is a drawer that slides over the workbench; the graph keeps its full width */
.wbside { position:absolute; top:0; right:0; bottom:0; width:460px; max-width:92vw; border-left:1px solid var(--border);
  background:var(--panel2); overflow-y:auto; padding:0 16px 80px; box-shadow:-12px 0 28px rgba(0,0,0,.14);
  transform:translateX(102%); transition:transform .24s ease; z-index:30; display:block !important; }
.wbside.open { transform:translateX(0); }
@media (prefers-reduced-motion: reduce) { .wbside { transition:none; } }
.wbside .sidehead { position:sticky; top:0; background:var(--panel2); z-index:2; padding-top:12px; }
.evsearch { display:flex; gap:6px; align-items:center; margin:8px 0 10px; }
.evsearch input { flex:1; border:1px solid var(--border); border-radius:6px; padding:7px 10px; font:13px Arial; background:var(--panel); color:var(--ink); }
.evsearch .n { font-size:11.5px; color:var(--muted); white-space:nowrap; }
.evgroup { border:1px solid var(--border); border-radius:6px; background:var(--panel); margin-bottom:8px; overflow:hidden; }
.evgroup > .gh { display:flex; align-items:center; gap:8px; width:100%; padding:8px 10px; background:none; border:0; text-align:left; color:var(--ink); font:600 12.5px Arial; }
.evgroup > .gh .chev { width:14px; color:var(--muted); transition:transform .15s; font-size:11px; }
.evgroup.open > .gh .chev { transform:rotate(90deg); }
.evgroup > .gh .cnt { margin-left:auto; font-size:11px; color:var(--muted); }
.evgroup > .gh .cnt b.x { color:var(--red); }
.evgroup > .gb { display:none; padding:2px 8px 8px; background:var(--panel2); border-top:1px solid var(--divider); }
.evgroup.open > .gb { display:block; }
.evgroup .ecard { margin:6px 0; }
.ecard.flash { animation:evflash 1.6s ease-out; }
@keyframes evflash { 0% { box-shadow:0 0 0 3px var(--cyan); } 100% { box-shadow:0 0 0 0 transparent; } }
.enum { font:600 11px var(--mono); color:var(--cyan-ink); background:var(--soft-cyan); border:1px solid var(--cyan-b); border-radius:3px; padding:0 6px; }
.report a.evref { font:600 11px var(--mono); color:var(--cyan-ink); background:var(--soft-cyan); border:1px solid var(--cyan-b); border-radius:3px; padding:0 5px; text-decoration:none; }
.report a.evref:hover { background:var(--cyan-b); }
.btn .badge:empty { display:none; }
.btn .badge { display:inline-block; min-width:18px; padding:0 5px; margin-left:6px; border-radius:99px; background:var(--soft-cyan); color:var(--cyan-ink); font-size:11px; font-weight:600; text-align:center; }
.sidehead { display:flex; align-items:center; gap:8px; padding:12px 0 8px; position:sticky; top:0; background:var(--panel2); z-index:2; border-bottom:1px solid var(--border); margin-bottom:8px; }
.sidehead .t { font:700 13px var(--disp); color:var(--green-dk); text-transform:uppercase; letter-spacing:.7px; }
.sidehead .cnt { font:11px var(--mono); color:var(--faint); }
.sidelead { font-size:11.5px; color:var(--muted); margin:0 0 10px; }
.wbside .evtools { margin-bottom:8px; }
.wbside .ecard { padding:8px 10px; }
.wbside #stageBar { margin:14px -16px -80px; padding:10px 16px; flex-wrap:wrap; }
#btnSide[aria-pressed="true"] { background:var(--soft-green); border-color:var(--soft-green-b); color:var(--green-dk); }
#btnSide.attn { border-color:var(--amber-b); box-shadow:0 0 0 2px var(--soft-amber); }

.tlsec { padding:12px 18px 6px; border-bottom:1px solid var(--border); background:var(--panel); }
.tlbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.tltitle { font:700 15px var(--disp); color:var(--green-dk); }
.tlmeta { font-size:11.5px; color:var(--muted); }
.tlmeta b { color:var(--ink); }
.tlfilters { display:flex; gap:5px; flex-wrap:wrap; align-items:center; }
.tlfilters select.chip { padding:2px 8px; }
.tlhelp { font-size:10.5px; color:var(--faint); margin:4px 0 6px; }
.tl { position:relative; }
.tlsvg { width:100%; overflow-x:auto; }
.tlg { display:block; font-family:Arial; }
.tlg .tllabel { font:600 11.5px Arial; fill:var(--ink); }
.tlg .tllabel.empty { fill:var(--faint); font-weight:normal; }
.tlg .tlsub { font:10px var(--mono); fill:var(--faint); }
.tlg .tlgroup { font:700 9.5px var(--disp); fill:var(--slate); letter-spacing:.8px; text-transform:uppercase; }
.tlg .tlaxis { font:10px var(--mono); fill:var(--slate); }
.tlg .tlfail { font:700 10.5px var(--mono); fill:var(--red); }
.tlg .tlai { font:600 10.5px Arial; cursor:pointer; }
.tlg .tlflag { cursor:pointer; }
.tlg .tlpole { opacity:.55; }
.tlg .tlm { cursor:pointer; stroke-width:1.5; }
.tlg .tlm:hover { stroke:var(--ink); stroke-width:2; }
.tlg .tlm.sel { stroke:var(--ink); stroke-width:2.5; filter:drop-shadow(0 0 3px rgba(0,0,0,.35)); }
.tlg .tlm.excl { stroke-dasharray:2 1.5; }
.tlg .tlsurf { cursor:crosshair; }
.tlg .tlzoom { fill:rgba(0,212,255,.12); stroke:var(--cyan-ink); stroke-dasharray:3 2; }
.tltip { position:absolute; z-index:5; max-width:300px; background:var(--green-dk); color:#fff; font-size:11.5px; line-height:1.4; padding:7px 10px; border-radius:6px; box-shadow:0 6px 20px rgba(0,0,0,.3); pointer-events:none; }
.tltip .bad, .bad { color:#FFB4AE; }
.tlmeta .bad, .tldetail .bad { color:var(--red); }
.tltip i { color:#CFEEDB; }
.sev4 { color:var(--red); font-weight:bold; } .sev3 { color:var(--amber); font-weight:bold; } .sev2 { color:var(--cyan-ink); } .sev1 { color:var(--slate); }
.tltip .sev4 { color:#FFB4AE; } .tltip .sev3 { color:#FFD9A3; } .tltip .sev2 { color:#9EE7F7; }
.tldetail { margin:8px 0 6px; background:var(--panel2); border:1px solid var(--border); border-left:3px solid var(--cyan-ink); border-radius:6px; padding:10px 12px; }
.tldhead { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.tldtitle { font:600 12.5px Arial; }
.tldacts { margin-top:8px; display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.ansec { display:flex; flex-direction:column; }
.ansec .tabs { position:sticky; top:0; z-index:2; }
.ansec .pane { padding:14px 18px 60px; }

@media (max-width: 1100px) { .wbside { width:340px; } }

.srcbtns { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:0 0 18px; max-width:860px; }
.admh { font:700 13px var(--disp); color:var(--green-dk); text-transform:uppercase; letter-spacing:.7px; margin:6px 0 6px; }

.usagechip { display:flex; align-items:center; gap:7px; background:rgba(255,255,255,.10); border:0; color:#fff; height:30px; border-radius:6px; padding:0 10px; font:11.5px var(--mono); margin-right:10px; }
.usagechip:hover { background:rgba(255,255,255,.16); }
.usagechip b { font-weight:700; }
.usagechip .warn { color:#FFD9A3; }
.toggle { display:inline-flex; align-items:center; gap:8px; font-size:12.5px; cursor:pointer; }
.toggle input { accent-color:var(--green); width:16px; height:16px; }
.usagetbl td:first-child { width:280px; }

/* ---------- failure banner, hints, label clicks ---------- */
.banner.err { background:var(--soft-red); color:var(--red); border-color:var(--red-b); }
.banner.err .hint { margin-top:4px; font-size:12px; color:var(--ink); }
.banner.err .ebtn { margin-left:8px; }
.tlg .tllabel.clickable { cursor:pointer; }
.tlg .tllabel.clickable:hover { fill:var(--green-dk); text-decoration:underline; }
.tlg .tlbin { cursor:pointer; }
.tlg .tlbin:hover { stroke:var(--ink); stroke-width:1; }
.usagechip .uwarn { color:#FFD9A3; }

/* =========================================================================
   Dark theme — token overrides only; every surface reads the variables.
   ========================================================================= */
html[data-theme="dark"] {
  --field:#0F1412; --panel:#161C19; --panel2:#1C2320; --border:#2A3430; --divider:#232C28;
  --ink:#E6EAE8; --muted:#A3ADA8; --faint:#6F7A75;
  --green:#0F8C46; --green-dk:#8FD4A8; --emerald:#7CC24A; --slate:#8FA1A7; --gray:#5C6865;
  --soft-green:#173224; --soft-green-b:#2B5A3F;
  --cyan:#33DDFF; --cyan-ink:#5FD3EC; --soft-cyan:#0F2B33; --cyan-b:#1E5460;
  --amber:#F0B25C; --soft-amber:#33270F; --amber-b:#5E4A1E;
  --red:#F08A83; --soft-red:#3A1B19; --red-b:#6B3230;
}
html[data-theme="dark"] body { color-scheme:dark; }
html[data-theme="dark"] #top { background:#0B5A2C; }
html[data-theme="dark"] .mark .tile { color:#0B5A2C; }
html[data-theme="dark"] .avatar { color:#0B5A2C; }
html[data-theme="dark"] .ecard.excluded { background:#221A19; }
html[data-theme="dark"] ::selection { background:#2B5A3F; }
html[data-theme="dark"] #pipe { background:#0B1F13; }
html[data-theme="dark"] .pcell.done { color:#BDEBCB; }
html[data-theme="dark"] .tltip { background:#0B1F13; border:1px solid var(--border); }
html[data-theme="dark"] #toast { background:#0B5A2C; }
html[data-theme="dark"] #login { background:#0B1F13; }
html[data-theme="dark"] .lbox, html[data-theme="dark"] .cbox, html[data-theme="dark"] dialog.modal { background:var(--panel); color:var(--ink); }
html[data-theme="dark"] .cbox code { background:#0B1F13; }
html[data-theme="dark"] .sidefoot .b { color:var(--ink); }
html[data-theme="dark"] .navitem { color:var(--ink); }
html[data-theme="dark"] .navitem:hover { background:var(--panel2); }
html[data-theme="dark"] .report th { background:var(--panel2); }
html[data-theme="dark"] .report code { background:var(--panel2); }
html[data-theme="dark"] .btn.primary { color:#fff; }
html[data-theme="dark"] .grid tr:hover td { background:var(--panel2); }
html[data-theme="dark"] input, html[data-theme="dark"] select, html[data-theme="dark"] textarea { background:var(--panel); color:var(--ink); border-color:var(--border); }
html[data-theme="dark"] .toolbar select, html[data-theme="dark"] .toolbar input { background:var(--panel); color:var(--ink); }
html[data-theme="dark"] .tlg rect[fill="var(--panel)"] { fill:var(--panel); }
html[data-theme="dark"] .sc-num { background:var(--panel2); }
html[data-theme="dark"] .userchip .t, html[data-theme="dark"] .apistat { color:#fff; }
.tlg .tlnote { font-size:9px; letter-spacing:.3px; text-transform:uppercase; }
