/* ════════════════════════════════════════════════════════════════
   LexForge Workspace — shared shell + component CSS.
   The shell here is LOCKED: identical on every page. Page-specific
   blocks below only add content primitives (stats, pills, forms…).
   ════════════════════════════════════════════════════════════════ */
:root{
  --bg:#f3ede0; --bg-2:#ebe4d3; --bg-3:#e3dac6;
  --panel:#fbf7ee; --panel-2:#f0e7d0;
  --ink:#171410; --ink-2:#3a342b; --muted:#6a6256; --muted-strong:#574f43;
  --line:rgba(42,36,29,.16); --line-2:rgba(42,36,29,.26); --rule:#2a241d;
  --ox:#6e1f23; --ox-2:#8a2c30; --gold:#d6a85b; --gold-ink:#8a6a2a;
  --green:#3d6f46; --green-bg:#e7efdf; --amber:#8a6a2a; --amber-bg:#efe2c7;
  --blue:#4f4856; --blue-bg:#e7ded9;
  --serif:'Newsreader','Times New Roman',serif;
  --sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
  --side-w:212px; --rail-bg:#211b14; --accent:#d6a85b; --accent-ink:#e7c887;
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-in-out:cubic-bezier(.77,0,.175,1); --ease-drawer:cubic-bezier(.32,.72,0,1);
}
*{box-sizing:border-box;}
html,body{margin:0;height:100%;}
body{background:var(--bg);}
[hidden]{display:none !important;}
h1,h2,h3,h4,p{margin:0;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;}
button,input,select,textarea{font:inherit;}
a{color:inherit;text-decoration:none;}

/* ── shell ─────────────────────────────────────────────────────── */
.shell{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);height:100%;
  background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14.5px;line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow:hidden;position:relative;}
.shell-wrap{height:100%;container-type:inline-size;position:relative;}
.auth-gate{position:fixed;inset:0;display:none;place-items:center;gap:14px;background:var(--bg);color:var(--ink);font-family:var(--sans);z-index:80;}
.auth-pending .auth-gate{display:grid;}
.auth-pending .shell-wrap{display:none;}
.convert-spinner{width:22px;height:22px;border:2px solid var(--line-2);border-top-color:var(--ox);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* sidebar */
.sidebar{display:flex;flex-direction:column;background:var(--rail-bg);color:var(--bg);
  border-right:1px solid var(--rule);min-width:0;}
.sb-brand{padding:20px 20px 18px;border-bottom:1px solid rgba(243,237,224,.10);}
.sb-brand .logo{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-size:21px;font-weight:500;color:var(--bg);line-height:1;}
.sb-brand .logo .dot{width:6px;height:6px;background:var(--accent);border-radius:50%;flex:none;}
.sb-brand .sub{margin-top:7px;margin-left:15px;font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:rgba(243,237,224,.58);}
.sb-nav{display:flex;flex-direction:column;padding:14px 10px;gap:1px;flex:1;}
.sb-nav .grp{font-family:var(--mono);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(243,237,224,.5);padding:14px 10px 7px;}
.sb-nav a{position:relative;display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:5px;font-size:13.5px;color:rgba(243,237,224,.74);transition:color .14s,background .14s;cursor:pointer;}
.sb-nav a svg{width:16px;height:16px;flex:none;opacity:.72;transition:opacity .14s,color .14s;}
.sb-nav a:hover{color:rgba(243,237,224,.96);background:rgba(243,237,224,.05);}
.sb-nav a:hover svg{opacity:1;}
.sb-nav a.active{color:#fff;background:color-mix(in oklab,var(--accent) 13%,transparent);}
.sb-nav a.active svg{opacity:1;color:var(--accent-ink);}
.sb-nav a.active::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:2px;background:var(--accent);border-radius:0 2px 2px 0;}
.sb-acct{border-top:1px solid rgba(243,237,224,.10);padding:14px 12px 16px;}
.sb-firm{width:100%;display:grid;grid-template-columns:30px 1fr 12px;gap:11px;align-items:center;padding:9px 10px;border-radius:6px;background:transparent;border:1px solid transparent;cursor:pointer;text-align:left;transition:background .14s,border-color .14s,transform .14s var(--ease-out);}
.sb-firm:active{transform:scale(.97);}
.sb-firm:hover{background:rgba(243,237,224,.05);border-color:rgba(243,237,224,.12);}
.sb-firm .mk{width:30px;height:30px;border-radius:5px;background:rgba(243,237,224,.08);border:1px solid rgba(243,237,224,.22);display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:16px;color:var(--bg);}
.sb-firm .meta{min-width:0;}
.sb-firm .nm{display:block;font-size:13px;font-weight:500;color:var(--bg);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-firm .plan{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:rgba(243,237,224,.62);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-firm .chev{color:rgba(243,237,224,.42);font-size:11px;justify-self:end;}
.sb-usage{padding:11px 11px 4px;}
.sb-usage .bar{height:4px;border-radius:3px;background:rgba(243,237,224,.12);overflow:hidden;}
.sb-usage .bar i{display:block;height:100%;background:var(--accent);}
.sb-usage .bar .usage-fill{width:82.6%;}
.sb-usage .lbl{display:flex;justify-content:space-between;margin-top:7px;font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:rgba(243,237,224,.6);text-transform:uppercase;}
.sb-usage .lbl b{color:rgba(243,237,224,.8);font-weight:500;}
.sb-foot{display:flex;gap:14px;padding:10px 11px 0;}
.sb-foot a,.sb-foot button{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(243,237,224,.62);cursor:pointer;background:transparent;border:none;padding:0;}
.sb-foot a:hover,.sb-foot button:hover{color:var(--bg);}

/* main + topbar */
.main{min-width:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden;container-type:inline-size;}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:20px 36px 18px;border-bottom:1px solid var(--line-2);background:color-mix(in oklab,var(--bg) 96%,#fff);}
.topbar .lead{min-width:0;}
.topbar .back{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-strong);margin-bottom:9px;cursor:pointer;}
.topbar .back:hover{color:var(--ox);}
.topbar h1{font-size:27px;white-space:nowrap;}
.topbar .sub{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--muted);margin-top:2px;white-space:nowrap;}
.topbar .crumbs{flex:none;margin-top:7px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px;}
.topbar .crumbs b{color:var(--ink-2);font-weight:500;}
.scroll{overflow-y:auto;padding:26px 36px 40px;}
.scroll::-webkit-scrollbar{width:10px;}
.scroll::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:6px;border:2px solid var(--bg);}

/* ── buttons ───────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:9px;padding:11px 20px;font-size:13.5px;font-weight:500;font-family:var(--sans);border:1px solid var(--ox);background:var(--ox);color:#fdf8ee;cursor:pointer;transition:background .15s,border-color .15s,transform .14s var(--ease-out);}
.btn:active{transform:scale(.97);}
.btn:hover{background:var(--ink);border-color:var(--ink);}
.btn .arr{font-family:var(--mono);font-size:12px;}
.btn.disabled{opacity:.4;pointer-events:none;}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.4;cursor:not-allowed;pointer-events:none;}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-2);}
.btn.ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.btn.sm{padding:7px 14px;font-size:12.5px;}

/* ── badges / pills ────────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--green);color:var(--green);background:var(--green-bg);}
.badge .pd{width:5px;height:5px;border-radius:50%;background:currentColor;}
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-family:var(--mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;border:1px solid currentColor;white-space:nowrap;}
.pill .d{width:5px;height:5px;border-radius:50%;background:currentColor;}
.pill--ok{color:var(--green);background:var(--green-bg);}
.pill--review{color:var(--amber);background:var(--amber-bg);}
.pill--proc{color:var(--blue);background:var(--blue-bg);}
.pill--proc .d{animation:procpulse 1.4s ease-in-out infinite;}
@keyframes procpulse{0%,100%{opacity:1;}50%{opacity:.35;}}
.pill--err{color:var(--ox);background:color-mix(in oklab,var(--ox) 8%,transparent);}
.pill--neutral{color:var(--muted-strong);background:var(--bg-2);}
.pill .pdot{width:5px;height:5px;border-radius:50%;background:currentColor;}
.pill.ok,.pill.success{color:var(--green);background:var(--green-bg);}
.pill.warn,.pill.running{color:var(--amber);background:var(--amber-bg);}
.pill.running .pdot{animation:procpulse 1.4s ease-in-out infinite;}
.pill.error,.pill.danger{color:var(--ox);background:color-mix(in oklab,var(--ox) 8%,transparent);}
.pill.neutral{color:var(--muted-strong);background:var(--bg-2);}

/* ── hero card (shared shape for primary-action pages) ─────────── */
.hero{position:relative;background:var(--panel);border:1px solid var(--line-2);box-shadow:10px 12px 0 rgba(23,20,16,.05);overflow:hidden;}
.hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ox);z-index:1;}
.hero-grid{display:grid;grid-template-columns:1fr minmax(360px,430px);}
.hero-intro{padding:26px 28px;border-right:1px solid var(--line);}
.hero-intro .eb{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ox);}
.hero-intro .eb .pip{width:5px;height:5px;border-radius:50%;background:var(--ox);}
.hero-intro h2{font-size:25px;margin-top:13px;}
.hero-intro p{font-size:14.5px;color:var(--ink-2);margin-top:11px;max-width:46ch;line-height:1.55;}
.hero-intro p b{font-weight:600;color:var(--ink);}
.trust{display:flex;gap:9px;align-items:flex-start;margin-top:20px;padding:13px 15px;background:var(--bg);border:1px solid var(--line);}
.trust svg{width:16px;height:16px;color:var(--green);flex:none;margin-top:1px;}
.trust .t{font-size:12.5px;color:var(--ink-2);line-height:1.5;}
.trust .t b{color:var(--ink);font-weight:600;}
.hero-form{padding:26px 28px;background:linear-gradient(180deg,var(--panel),var(--panel-2));}

/* form fields */
.flbl{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-strong);margin-bottom:8px;}
.fin{width:100%;padding:11px 13px;font-size:14px;color:var(--ink);background:#fff;border:1px solid var(--line-2);}
.fin::placeholder{color:var(--muted);}
.fin:disabled{background:var(--bg);color:var(--muted-strong);cursor:not-allowed;}
select.fin{appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M3 4.5L6 8l3-3.5' fill='none' stroke='%236a6256' stroke-width='1.3'/></svg>") no-repeat right 12px center;padding-right:34px;cursor:pointer;}
.drop{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:center;padding:18px;background:#fff;border:1.5px dashed var(--line-2);cursor:pointer;transition:border-color .14s,background .14s;}
.drop:hover{border-color:var(--ox);background:color-mix(in oklab,var(--ox) 4%,#fff);}
.drop .ic{width:48px;height:48px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line-2);font-family:var(--mono);font-size:10px;font-weight:500;color:var(--ox);letter-spacing:.03em;}
.drop .dl{font-size:13.5px;color:var(--ink);font-weight:500;}
.drop .dh{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--muted-strong);margin-top:4px;}
.hero-cta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:20px;}
.hero-cta .hint{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--muted);}

/* reconstruct landing */
.reconstruct-stage{margin-bottom:0;}
.reconstruct-panel{display:block;}
.reconstruct-stage .hero-form{display:flex;flex-direction:column;}
.convert-drop{align-items:start;}
.convert-drop.is-dragging{border-color:var(--ox);background:color-mix(in oklab,var(--ox) 7%,#fff);}
.convert-drop.has-file{border-color:var(--green);background:var(--green-bg);}
.convert-drop.is-invalid{border-color:var(--ox);background:color-mix(in oklab,var(--ox) 7%,#fff);}
.drop-copy{min-width:0;}
.browse-link{margin-top:10px;padding:0;background:transparent;border:none;color:var(--ox);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;}
.browse-link:hover{color:var(--ink);}
.file-status{margin-top:10px;font-size:12.5px;color:var(--muted-strong);line-height:1.4;overflow-wrap:anywhere;}
.file-input-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}
.inline-message{min-height:18px;margin-top:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.03em;color:var(--muted-strong);}
.inline-message.is-error{color:var(--ox);}
.inline-message.is-success{color:var(--green);}
.style-picker{display:grid;grid-template-columns:1fr auto;gap:10px 14px;align-items:end;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);}
.style-picker[hidden]{display:none;}
.style-picker .field-stack{min-width:0;}
.style-manage-link{align-self:center;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-strong);white-space:nowrap;}
.style-manage-link:hover{color:var(--ox);}
.template-message{grid-column:1/-1;min-height:0;margin-top:0;}
.reconstruct-stage .panel-head h2{font-size:23px;}
.reconstruct-body{padding:24px 28px 28px;}
.pipe .track-fill.is-rebuild{width:50%;}
.proc-bar .bar .proc-bar-fill{width:66%;}
.processing-detail{margin-top:20px;padding:18px 20px;background:var(--bg);border:1px solid var(--line);}
.flag-section{margin-top:20px;border:1px solid var(--line-2);background:var(--panel);}
.result-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);}
.result-foot p{font-size:13.5px;color:var(--ink-2);line-height:1.5;}
.result-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.report-preview{margin-top:20px;}
.reconstruct-error{padding:0;}
.flat-error{width:100%;box-shadow:none;border-top:none;border-right:none;border-bottom:none;margin:0;}
.error-message p{font-size:14px;color:var(--ink-2);margin-top:9px;line-height:1.55;}
.error-body{margin-top:16px;max-width:100%;overflow:auto;padding:12px;background:#fff;border:1px solid var(--line);color:var(--muted-strong);font-family:var(--mono);font-size:11px;white-space:pre-wrap;}

/* ── section heads ─────────────────────────────────────────────── */
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:34px 0 14px;}
.sec-head .lhs{flex:none;display:flex;align-items:baseline;gap:12px;}
.sec-head h3{font-size:20px;white-space:nowrap;}
.sec-head .ct{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-strong);}
.sec-head .exports,.panel-head .exports,.exports{display:flex;gap:14px;flex-wrap:wrap;}
.sec-head .exports a,.panel-head .exports a,.exports a,
.sec-head .exports button,.panel-head .exports button,.exports button{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-strong);cursor:pointer;white-space:nowrap;background:transparent;border:none;padding:0;}
.sec-head .exports a:hover,.panel-head .exports a:hover,.exports a:hover,
.sec-head .exports button:hover,.panel-head .exports button:hover,.exports button:hover{color:var(--ox);}
.sec-head .exports button:disabled,.panel-head .exports button:disabled,.exports button:disabled{opacity:.45;cursor:not-allowed;}

/* find box */
.find{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;background:var(--panel);border:1px solid var(--line-2);min-width:200px;}
.find svg{width:14px;height:14px;color:var(--muted);}
.find input{border:none;background:transparent;outline:none;font-size:13px;color:var(--ink);width:100%;}

/* ── tables ────────────────────────────────────────────────────── */
.tbl-wrap{background:var(--panel);border:1px solid var(--line-2);}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;}
.tbl th{text-align:left;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-strong);font-weight:500;padding:12px 18px;border-bottom:1px solid var(--line-2);background:var(--bg);white-space:nowrap;}
.tbl td{padding:15px 18px;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:middle;}
.tbl tr:last-child td{border-bottom:none;}
.tbl tbody tr{transition:background .12s;}
.tbl tbody tr:hover{background:var(--bg-2);}
.tbl .doc{font-weight:600;color:var(--ink);display:flex;align-items:center;gap:9px;}
.tbl .doc .ft{font-family:var(--mono);font-size:8.5px;color:var(--ox);border:1px solid var(--line-2);padding:2px 5px;background:var(--bg);letter-spacing:.04em;}
.tbl .mono{font-family:var(--mono);font-size:12px;color:var(--muted-strong);}
.tbl .num{font-family:var(--mono);font-size:13px;color:var(--ink-2);}
.nm-cell{display:flex;align-items:center;gap:10px;}
.nm-cell .nm{font-weight:600;color:var(--ink);}
.nm-cell .edit{opacity:0;width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--line-2);background:var(--bg);color:var(--muted-strong);cursor:pointer;transition:opacity .12s,color .12s,border-color .12s;}
.tbl tbody tr:hover .nm-cell .edit{opacity:1;}
.nm-cell .edit:hover{color:var(--ox);border-color:var(--ox);}
.nm-cell .edit svg{width:12px;height:12px;}
.created,.applied{font-family:var(--mono);font-size:12px;color:var(--muted-strong);}
.row-actions{display:flex;gap:7px;justify-content:flex-end;align-items:center;}
.row-open{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;}
.lnk{padding:6px 11px;font-family:var(--sans);font-size:12.5px;color:var(--ink-2);background:transparent;border:1px solid transparent;cursor:pointer;border-radius:4px;transition:background .12s,color .12s,transform .14s var(--ease-out);}
.lnk:active{transform:scale(.97);}
.lnk:hover{background:var(--bg-3);color:var(--ink);}
.lnk.cur{color:var(--muted);cursor:default;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;}
.lnk.cur:hover{background:transparent;color:var(--muted);}
.lnk.del{color:var(--muted-strong);}
.lnk.del:hover{background:color-mix(in oklab,var(--ox) 10%,transparent);color:var(--ox);}

/* ── stat strip ────────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--panel);border:1px solid var(--line-2);}
.stat{padding:18px 20px;border-right:1px solid var(--line);}
.stat:last-child{border-right:none;}
.stat .l{font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-strong);}
.stat .v{font-family:var(--serif);font-size:34px;color:var(--ink);line-height:1;margin-top:11px;}
.stat .v small{font-size:15px;color:var(--muted);}
.stat .v.amber{color:var(--amber);}
.stat .d{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:8px;letter-spacing:.03em;}
.stat .d.up{color:var(--green);}

/* ── filter row ────────────────────────────────────────────────── */
.filter{display:flex;align-items:center;gap:10px;margin:22px 0 14px;}
.filter .find{flex:1;max-width:340px;}
.filter select.fin{width:auto;min-width:140px;padding-top:8px;padding-bottom:8px;background-color:var(--panel);}
.filter .spacer{flex:1;}

/* ── panels (generic) ──────────────────────────────────────────── */
.panel{background:var(--panel);border:1px solid var(--line-2);}
/* Reserve the offset shadow for ONE primary card per screen; everything else sits flat on hairline borders. */
.raised{box-shadow:10px 12px 0 rgba(23,20,16,.05);}
.panel-head{padding:16px 20px;border-bottom:1px solid var(--line);background:var(--bg);display:flex;justify-content:space-between;align-items:center;gap:14px;}
.panel-head h3{font-size:18px;white-space:nowrap;}
.panel-head .sub{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-strong);}
.panel-body{padding:20px;}

.banner{margin-bottom:18px;padding:12px 14px;border:1px solid var(--line-2);background:var(--panel);font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--ink-2);}
.banner.error{border-color:color-mix(in oklab,var(--ox) 40%,var(--line-2));background:color-mix(in oklab,var(--ox) 8%,var(--panel));color:var(--ox);}
.banner.success{border-color:color-mix(in oklab,var(--green) 40%,var(--line-2));background:var(--green-bg);color:var(--green);}
.banner.info{border-color:var(--line-2);}
.api-message{margin-top:18px;padding:10px 12px;background:var(--bg);border:1px dashed var(--line);font-family:var(--mono);font-size:11.5px;color:var(--muted-strong);letter-spacing:.04em;}
.api-message.success{background:var(--green-bg);border-color:color-mix(in oklab,var(--green) 35%,transparent);color:var(--green);}
.api-message.error{background:color-mix(in oklab,var(--ox) 10%,transparent);border-color:color-mix(in oklab,var(--ox) 35%,transparent);color:var(--ox);}
.empty-cell{padding:0 !important;background:var(--panel);text-align:center;color:var(--muted-strong);}
.empty-cell:not(:has(.empty)){padding:28px 18px !important;font-family:var(--mono);font-size:11px;letter-spacing:.03em;}
.table-empty{border:none;border-top:1px solid var(--line);background:var(--panel);}
.empty strong{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--ink);}

/* generic two-col layout */
.cols{display:grid;gap:20px;}
.cols-2{grid-template-columns:1fr 1fr;}
.cols-3a{grid-template-columns:1.3fr 1fr;}
.mt-20{margin-top:20px;}
.mt-22{margin-top:22px;}
.mt-24{margin-top:24px;}

/* empty state */
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:70px 20px;background:var(--panel);border:1px dashed var(--line-2);}
.empty .ic{width:60px;height:60px;display:grid;place-items:center;border:1px solid var(--line-2);background:var(--bg);color:var(--ox);margin-bottom:20px;}
.empty .ic svg{width:26px;height:26px;}
.empty h3{font-size:22px;}
.empty p{font-size:14px;color:var(--muted-strong);margin-top:9px;max-width:42ch;line-height:1.55;}
.empty .btn{margin-top:22px;}

/* ── reconstruct pipeline (processing) ─────────────────────────── */
.pipe{position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin-top:20px;}
.pipe .track,.pipe .track-fill{position:absolute;top:39px;height:2px;z-index:0;}
.pipe .track{left:12.5%;right:12.5%;background:var(--line-2);}
.pipe .track-fill{left:12.5%;background:var(--green);transition:width .4s var(--ease-in-out);}
.pstep{position:relative;z-index:1;padding:18px 18px;text-align:center;}
.pstep .ring{width:54px;height:54px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;margin:0 auto;color:var(--muted);background:var(--bg);}
.pstep .ring svg{width:22px;height:22px;}
.pstep .nm{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-strong);margin-top:13px;}
.pstep .st{font-size:12px;color:var(--muted);margin-top:5px;}
.pstep.done .ring{border-color:var(--green);color:var(--green);background:var(--green-bg);}
.pstep.done .nm{color:var(--ink-2);}
.pstep.active .ring{border-color:var(--ox);color:var(--ox);box-shadow:0 0 0 0 color-mix(in oklab,var(--ox) 45%,transparent);animation:pulse 1.6s ease-out infinite;}
.pstep.active .nm{color:var(--ox);}
.pstep.active .st{color:var(--ox);}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in oklab,var(--ox) 40%,transparent);}70%{box-shadow:0 0 0 14px transparent;}100%{box-shadow:0 0 0 0 transparent;}}
.proc-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);}
.proc-meta .f{display:flex;align-items:center;gap:11px;}
.proc-meta .f .ic{width:40px;height:40px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line-2);font-family:var(--mono);font-size:9px;color:var(--ox);}
.proc-meta .f .nm{font-weight:600;color:var(--ink);font-size:14px;}
.proc-meta .f .sub{font-family:var(--mono);font-size:11px;color:var(--muted-strong);margin-top:2px;}
.proc-bar{flex:1;max-width:280px;}
.proc-bar .bar{height:6px;background:var(--bg-2);border:1px solid var(--line);overflow:hidden;}
.proc-bar .bar i{display:block;height:100%;background:var(--ox);}
.proc-bar .lbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--muted-strong);margin-top:7px;letter-spacing:.04em;}

/* ── result summary ────────────────────────────────────────────── */
.result-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line-2);background:var(--panel);}
.result-grid .cell{padding:18px 20px;border-right:1px solid var(--line);}
.result-grid .cell:last-child{border-right:none;}
.result-grid .l{font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-strong);}
.result-grid .v{font-family:var(--serif);font-size:30px;color:var(--ink);margin-top:9px;line-height:1;}
.result-grid .v.amber{color:var(--amber);}
.result-grid .v.green{color:var(--green);}
.flag-list{margin-top:0;}
.flag{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:13px 20px;border-bottom:1px solid var(--line);}
.flag:last-child{border-bottom:none;}
.flag .word{font-family:var(--serif);font-size:17px;color:var(--ink);}
.flag .ctx{font-size:13px;color:var(--muted-strong);font-style:italic;}
.flag .ctx b{color:var(--ox);font-style:normal;font-weight:600;background:color-mix(in oklab,var(--amber) 20%,transparent);padding:0 3px;}
.flag .page{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;}

/* ── error card ────────────────────────────────────────────────── */
.errcard{position:relative;background:var(--panel);border:1px solid var(--line-2);border-left:3px solid var(--ox);box-shadow:10px 12px 0 rgba(23,20,16,.05);padding:30px 32px;display:flex;gap:20px;align-items:flex-start;}
.errcard .ic{width:52px;height:52px;flex:none;display:grid;place-items:center;border:1px solid var(--ox);color:var(--ox);background:color-mix(in oklab,var(--ox) 6%,var(--panel));}
.errcard .ic svg{width:24px;height:24px;}
.errcard h2{font-size:23px;}
.errcard p{font-size:14px;color:var(--ink-2);margin-top:9px;max-width:54ch;line-height:1.55;}
.errcard .why{margin-top:14px;display:flex;flex-direction:column;gap:7px;}
.errcard .why .r{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted-strong);}
.errcard .why .r .d{width:4px;height:4px;border-radius:50%;background:var(--ox);}
.errcard .acts{margin-top:22px;display:flex;gap:10px;}

/* ── bar strip (reports) ───────────────────────────────────────── */
.barstrip{display:flex;align-items:flex-end;gap:10px;height:150px;padding:20px;}
.barstrip .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;height:100%;justify-content:flex-end;}
.barstrip .col .bar{width:100%;max-width:34px;height:var(--bar,0%);background:var(--ox);}
.barstrip .col .bar.lite{background:color-mix(in oklab,var(--ox) 38%,var(--panel-2));}
.barstrip .col .lab{font-family:var(--mono);font-size:9.5px;color:var(--muted-strong);letter-spacing:.04em;}
.barstrip .col .val{font-family:var(--mono);font-size:9px;color:var(--muted);letter-spacing:.03em;}
.barstrip .empty-line{align-self:center;margin:auto;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted-strong);}

/* quality grid */
.qgrid{display:grid;grid-template-columns:repeat(2,1fr);}
.qgrid .q{padding:16px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.qgrid .q:nth-child(2n){border-right:none;}
.qgrid .q:nth-child(n+3){border-bottom:none;}
.qgrid .q .l{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);}
.qgrid .q .l .sw{width:9px;height:9px;border-radius:2px;}
.qgrid .q .v{font-family:var(--serif);font-size:26px;color:var(--ink);margin-top:9px;}
.qgrid .q .pct{font-family:var(--mono);font-size:10px;color:var(--muted);margin-left:7px;}
.qgrid .q .qd{font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:var(--muted);margin-top:7px;}
.qgrid .q .qd.good{color:var(--green);}

/* donut */
.donut-wrap{display:flex;align-items:center;gap:24px;padding:20px;}
.donut-ring{width:150px;height:150px;transform:rotate(-90deg);flex:none;}
.donut-ring circle{fill:none;stroke-width:18;}
.donut-ring .donut-bg{stroke:var(--bg-2);}
.donut-ring .donut-pass{stroke:var(--green);stroke-dasharray:0 264;stroke-linecap:square;}
.donut-legend{display:flex;flex-direction:column;gap:11px;}
.donut-legend .r{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-2);}
.donut-legend .r .sw{width:11px;height:11px;border-radius:2px;flex:none;}
.donut-legend .r b{font-family:var(--mono);font-size:12px;color:var(--ink);margin-left:auto;padding-left:18px;}

/* ── billing plans ─────────────────────────────────────────────── */
.plan-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line);}
.plan-row:last-child{border-bottom:none;}
.plan-row.current{background:color-mix(in oklab,var(--gold) 10%,var(--panel));}
.plan-row .pi .nm{font-family:var(--serif);font-size:19px;color:var(--ink);display:flex;align-items:center;gap:10px;}
.plan-row .pi .feat{font-size:12.5px;color:var(--muted-strong);margin-top:4px;}
.plan-row .pr{text-align:right;display:flex;align-items:center;gap:18px;}
.plan-row .pr .price{font-family:var(--serif);font-size:22px;color:var(--ink);}
.plan-row .pr .price small{font-size:12px;color:var(--muted);}
.pay{display:flex;align-items:center;gap:14px;padding:18px 20px;}
.pay .card{width:46px;height:32px;border-radius:4px;background:linear-gradient(135deg,#2b231a,#4a3c2a);display:grid;place-items:center;color:var(--gold);font-family:var(--mono);font-size:8px;letter-spacing:.1em;}
.pay .ci .nm{font-size:14px;color:var(--ink);font-weight:500;}
.pay .ci .sub{font-family:var(--mono);font-size:11px;color:var(--muted-strong);margin-top:2px;}
.usage-meter{height:8px;background:var(--bg-2);border:1px solid var(--line);overflow:hidden;}
.usage-meter i{display:block;height:100%;width:0;background:var(--accent);}
.usage-meter-label{display:flex;justify-content:space-between;margin-top:10px;font-family:var(--mono);font-size:11px;color:var(--muted-strong);letter-spacing:.03em;}
.detail-list{display:grid;gap:0;margin:0;padding:0;}
.detail-list div{display:flex;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--line);}
.detail-list div:first-child{padding-top:0;}
.detail-list div:last-child{border-bottom:none;padding-bottom:0;}
.detail-list dt{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-strong);}
.detail-list dd{margin:0;text-align:right;font-weight:600;color:var(--ink);}
.notice-state{display:grid;gap:8px;margin-top:18px;padding:16px;background:var(--bg);border:1px solid var(--line);}
.notice-state strong{color:var(--ox);}
.notice-state p{font-size:13px;line-height:1.45;color:var(--muted-strong);}

/* ── settings form ─────────────────────────────────────────────── */
.form-grid{display:grid;grid-template-columns:200px 1fr;gap:0;}
.form-grid .fr{display:contents;}
.form-grid .fk{padding:18px 20px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--bg);}
.form-grid .fk .k{font-size:14px;color:var(--ink);font-weight:500;}
.form-grid .fk .h{font-size:12px;color:var(--muted-strong);margin-top:4px;line-height:1.5;}
.form-grid .fv{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;}
.form-grid .fr:last-child .fk,.form-grid .fr:last-child .fv{border-bottom:none;}
.form-grid .fv .fin{max-width:360px;}
.form-grid .fv.actions{justify-content:flex-end;gap:10px;}
.field-stack{width:100%;}
.field-stack .flbl{display:block;}
.sec-rows{display:flex;flex-direction:column;}
.sec-rows .sr{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 20px;border-bottom:1px solid var(--line);}
.sec-rows .sr:last-child{border-bottom:none;}
.sec-rows .sr .si .k{font-size:14px;color:var(--ink);font-weight:500;}
.sec-rows .sr .si .h{font-size:12.5px;color:var(--muted-strong);margin-top:3px;}
.api-msg{margin-top:18px;padding:10px 12px;background:var(--bg);border:1px dashed var(--line);font-family:var(--mono);font-size:11.5px;color:var(--muted-strong);letter-spacing:.04em;}
.api-msg.success{background:var(--green-bg);border-color:color-mix(in oklab,var(--green) 35%,transparent);color:var(--green);}
.api-msg.error{background:color-mix(in oklab,var(--ox) 10%,transparent);border-color:color-mix(in oklab,var(--ox) 35%,transparent);color:var(--ox);}
.bar-list{display:grid;gap:16px;padding:20px;}
.bar-list div{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1.2fr) 64px;gap:12px;align-items:center;}
.bar-list span{color:var(--muted-strong);font-size:13px;}
.bar-list i{position:relative;height:12px;background:var(--bg-2);border:1px solid var(--line);}
.bar-list i::before{position:absolute;inset:0 auto 0 0;width:var(--bar,0%);background:var(--ox);content:"";}
.bar-list strong{text-align:right;}
.report-privacy-note{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px;padding:13px 18px;background:var(--ink);border:1px solid var(--rule);color:var(--bg);}
.report-privacy-note strong{color:var(--gold);font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;}
.report-privacy-note span{color:rgba(243,237,224,.78);font-size:13px;}
.report-privacy-note span.error{color:#f1b1a8;}
.report-privacy-note span.success{color:#c8e1bb;}
.report-key{display:grid;gap:0;margin:0;padding:0 20px 20px;list-style:none;}
.report-key li{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--line);}
.report-key i{width:10px;height:10px;border:1px solid var(--rule);}
.report-key span{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-strong);}
.report-key strong{font-family:var(--mono);font-size:12px;color:var(--ink);}
.key-pass{background:var(--green);}
.key-review{background:var(--gold);}
.key-fail{background:var(--ox);}

.recent-mini{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-2);}
.recent-mini .ri{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line);}
.recent-mini .ri:last-child{border-bottom:none;}
.recent-mini .ri .nm{font-weight:500;color:var(--ink);font-size:13.5px;}
.recent-mini .ri .nm svg,.tbl .doc svg{width:15px;height:15px;color:var(--ox);flex:none;}
.recent-mini .ri .mono{font-family:var(--mono);font-size:11px;color:var(--muted-strong);}

/* ── jobs: clickable rows + weighted flagged affordance ────────── */
.tbl tbody tr.clickrow{cursor:pointer;}
.rowchev{color:var(--muted);font-family:var(--mono);font-size:13px;}
.tbl tbody tr.clickrow:hover .rowchev{color:var(--ox);}
.wording-cell{display:flex;align-items:center;gap:11px;}
.flagchip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--amber);background:var(--amber-bg);border:1px solid var(--amber);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,transform .14s var(--ease-out);}
.flagchip:active{transform:scale(.97);}
.flagchip:hover{background:var(--amber);color:#fff;}
.clearchip{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--green);display:inline-flex;align-items:center;gap:5px;}
.clearchip .d{width:5px;height:5px;border-radius:50%;background:currentColor;}

/* ── job detail: vertical timeline ─────────────────────────────── */
.timeline{position:relative;padding:6px 0;}
.timeline::before{content:"";position:absolute;left:31px;top:18px;bottom:18px;width:2px;background:var(--line-2);}
.tl{position:relative;display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;padding:11px 20px;}
.tl .dot{width:30px;height:30px;border-radius:50%;border:2px solid var(--line-2);background:var(--panel);display:grid;place-items:center;color:var(--muted);z-index:1;}
.tl .dot svg{width:15px;height:15px;}
.tl.done .dot{border-color:var(--green);background:var(--green-bg);color:var(--green);}
.tl.failed .dot{border-color:var(--ox);background:color-mix(in oklab,var(--ox) 9%,var(--panel));color:var(--ox);}
.tl.active .dot{border-color:var(--ox);background:var(--ox);color:#fdf8ee;}
.tl.pending{opacity:.5;}
.tl .nm{font-size:14px;font-weight:500;color:var(--ink);}
.tl .sub{font-size:12.5px;color:var(--muted-strong);margin-top:2px;}
.tl .time{font-family:var(--mono);font-size:11px;color:var(--muted-strong);letter-spacing:.03em;}
.verif-snap{padding:20px;}
.verif-snap .bar{height:10px;display:flex;border:1px solid var(--line-2);overflow:hidden;}
.verif-snap .bar i{display:block;height:100%;}
.verif-snap .key{display:flex;flex-direction:column;gap:9px;margin-top:16px;}
.verif-snap .key .r{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-2);}
.verif-snap .key .r .sw{width:10px;height:10px;border-radius:2px;flex:none;}
.verif-snap .key .r b{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--ink);}
.dl-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line);}
.dl-row:last-child{border-bottom:none;}
.dl-row .di{display:flex;align-items:center;gap:12px;}
.dl-row .di .ic{width:38px;height:38px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line-2);font-family:var(--mono);font-size:9px;color:var(--ox);}
.dl-row .di .nm{font-size:13.5px;color:var(--ink);font-weight:500;}
.dl-row .di .sub{font-family:var(--mono);font-size:11px;color:var(--muted-strong);margin-top:2px;}
.hs-file-label{margin-top:18px;}
.hs-upload-form{display:flex;flex-direction:column;}
.hs-upload-drop{position:relative;}
.hs-upload-drop.is-dragging{border-color:var(--ox);background:color-mix(in oklab,var(--ox) 7%,#fff);}
.hs-upload-drop.has-file{border-color:var(--green);background:var(--green-bg);}
.hs-upload-drop .drop-copy{display:flex;flex-direction:column;gap:2px;}
.hs-upload-drop .file-status{display:block;margin-top:9px;}
.hs-status-line{margin-top:0;min-height:18px;flex:1;}
.actions-head{text-align:right;}
.applied{font-family:var(--mono);font-size:12px;color:var(--muted-strong);}
.hs-empty{margin-top:0;}
.job-hero{padding:26px 30px;}
.job-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.job-title-block{min-width:0;}
.job-title-block h2{font-size:25px;margin-top:13px;overflow-wrap:anywhere;}
.job-title-block p{font-family:var(--mono);font-size:12.5px;color:var(--muted-strong);letter-spacing:.03em;margin-top:7px;line-height:1.5;}
.job-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.job-metrics{margin-top:22px;}
.job-meta-line{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--muted-strong);}
.job-meta-line b{color:var(--ink);font-weight:500;}
.job-summary-detail{font-size:13.5px;color:var(--ink-2);margin-top:8px;line-height:1.5;}
.job-note{font-size:14px;color:var(--ink-2);line-height:1.55;max-width:68ch;}
.status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-family:var(--mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;border:1px solid currentColor;white-space:nowrap;color:var(--muted-strong);background:var(--bg-2);}
.status::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;}
.status.success{color:var(--green);background:var(--green-bg);}
.status.running{color:var(--amber);background:var(--amber-bg);}
.status.danger{color:var(--ox);background:color-mix(in oklab,var(--ox) 8%,transparent);}
.status.neutral,.status.info{color:var(--muted-strong);background:var(--bg-2);}
.snap-pass{width:78%;background:var(--green);}
.snap-review{width:17%;background:var(--amber);}
.snap-fail{width:5%;background:var(--ox);}
.sw-pass{background:var(--green);}
.sw-review{background:var(--amber);}
.sw-fail{background:var(--ox);}
.hash-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
.hash-row code{display:inline-flex;align-items:center;max-width:100%;padding:8px 10px;background:var(--bg);border:1px solid var(--line);font-family:var(--mono);font-size:10.5px;color:var(--muted-strong);overflow-wrap:anywhere;}
.hash-row code.hash-copyable{cursor:pointer;color:var(--ink-2);}
.copy-helper{position:absolute;left:-9999px;}

/* ── team ──────────────────────────────────────────────────────── */
.tm-av{width:32px;height:32px;flex:none;border-radius:50%;background:var(--ox);color:#fdf8ee;display:grid;place-items:center;font-family:var(--mono);font-size:11px;letter-spacing:.03em;}
.tm-av.pend{background:var(--bg-2);border:1px dashed var(--line-2);color:var(--muted-strong);}
.tm-av.pend svg{width:14px;height:14px;}
.tm-email{display:block;font-family:var(--mono);font-size:11px;color:var(--muted-strong);margin-top:2px;}
.tm-person{display:flex;align-items:center;gap:12px;}
.tm-person .nm{font-weight:600;color:var(--ink);}
.invite-row{display:flex;gap:10px;align-items:center;}
.invite-row .fin:first-child{flex:1;}
.invite-row select.fin{width:auto;min-width:150px;}
.invite-hint{font-size:12.5px;color:var(--muted-strong);margin-top:14px;line-height:1.5;}
.invite-hint b{color:var(--ink);font-weight:600;}

/* ── onboarding (pre-workspace frame) ──────────────────────────── */
.ob{height:100%;background:var(--bg);display:flex;flex-direction:column;font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;overflow:hidden;}
.ob-top{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;border-bottom:1px solid var(--line-2);}
.ob-top .logo{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-size:21px;font-weight:500;color:var(--ink);}
.ob-top .logo .dot{width:6px;height:6px;border-radius:50%;background:var(--ox);}
.ob-top .step-count{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-strong);}
.ob-stage{flex:1;display:grid;place-items:center;padding:34px 24px;min-height:0;}
.ob-card{width:100%;max-width:600px;background:var(--panel);border:1px solid var(--line-2);box-shadow:12px 14px 0 rgba(23,20,16,.05);}
.ob-stepper{display:flex;align-items:center;padding:18px 28px;border-bottom:1px solid var(--line);background:var(--bg);}
.ob-stepper .st{display:flex;align-items:center;gap:9px;}
.ob-stepper .st .n{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--muted);background:var(--panel);}
.ob-stepper .st .nm{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.ob-stepper .st.done .n{border-color:var(--green);background:var(--green-bg);color:var(--green);}
.ob-stepper .st.done .nm{color:var(--ink-2);}
.ob-stepper .st.active .n{border-color:var(--ox);background:var(--ox);color:#fdf8ee;}
.ob-stepper .st.active .nm{color:var(--ox);}
.ob-stepper .line{flex:1;height:1px;background:var(--line-2);margin:0 12px;}
.ob-body{padding:28px 28px 4px;}
.ob-body .eb{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ox);}
.ob-body h2{font-size:25px;margin-top:11px;}
.ob-body .lede{font-size:14px;color:var(--ink-2);margin-top:9px;line-height:1.55;}
.ob-field{margin-top:20px;}
.ob-chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{padding:7px 13px;font-size:13px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink-2);cursor:pointer;transition:background .12s,color .12s,border-color .12s,transform .14s var(--ease-out);}
.chip:active{transform:scale(.97);}
.chip:hover{border-color:var(--ox);}
.chip.on{background:var(--ox);border-color:var(--ox);color:#fdf8ee;}
.ob-files{display:flex;flex-direction:column;border:1px solid var(--line-2);margin-top:16px;background:#fff;}
.ob-files .row{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:13px 15px;border-bottom:1px solid var(--line);}
.ob-files .row:last-child{border-bottom:none;}
.ob-files .row .ic{width:40px;height:40px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line-2);font-family:var(--mono);font-size:9px;color:var(--ox);}
.ob-files .row .nm{font-size:13.5px;color:var(--ink);font-weight:500;}
.ob-files .row .pbar{height:4px;background:var(--bg-2);border:1px solid var(--line);margin-top:6px;overflow:hidden;width:220px;}
.ob-files .row .pbar i{display:block;height:100%;background:var(--ox);}
.ob-files .row .meta{font-family:var(--mono);font-size:10px;color:var(--muted-strong);letter-spacing:.03em;}
.ob-files .row .stt{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;}
.ob-files .row .stt.done{color:var(--green);}
.ob-files .row .stt.up{color:var(--ox);}
.ob-files .row .stt.queue{color:var(--muted);}
.ob-styles{display:flex;flex-direction:column;gap:10px;margin-top:18px;}
.ob-style{display:flex;align-items:center;gap:13px;padding:15px 16px;border:1px solid var(--line-2);background:#fff;cursor:pointer;transition:border-color .12s,background .12s;}
.ob-style:hover{border-color:var(--ox);}
.ob-style.sel{border-color:var(--ox);background:color-mix(in oklab,var(--ox) 5%,#fff);box-shadow:inset 3px 0 0 var(--ox);}
.ob-style .radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-2);flex:none;display:grid;place-items:center;}
.ob-style.sel .radio{border-color:var(--ox);}
.ob-style.sel .radio::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--ox);}
.ob-style .nm{font-size:14.5px;color:var(--ink);font-weight:500;}
.ob-style .sub{font-size:12px;color:var(--muted-strong);margin-top:2px;}
.ob-style .rec{margin-left:auto;}
.ob-done{text-align:center;padding:14px 0 8px;}
.ob-done .check{width:62px;height:62px;border-radius:50%;background:var(--green-bg);border:1px solid var(--green);color:var(--green);display:grid;place-items:center;margin:0 auto 20px;}
.ob-done .check svg{width:28px;height:28px;}
.ob-done h2{font-size:26px;}
.ob-done p{font-size:14px;color:var(--ink-2);margin-top:10px;max-width:42ch;margin-left:auto;margin-right:auto;line-height:1.55;}
.ob-summary{display:flex;justify-content:center;gap:0;margin-top:22px;border:1px solid var(--line-2);background:var(--bg);}
.ob-summary .c{padding:14px 22px;border-right:1px solid var(--line);}
.ob-summary .c:last-child{border-right:none;}
.ob-summary .c .l{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-strong);}
.ob-summary .c .v{font-family:var(--serif);font-size:18px;color:var(--ink);margin-top:6px;}
.ob-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 28px;border-top:1px solid var(--line);background:var(--bg);margin-top:24px;}
.ob-foot .back{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-strong);cursor:pointer;}
.ob-foot .back:hover{color:var(--ox);}
.ob-foot .spacer{flex:1;}
.ob-foot .skip{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-strong);cursor:pointer;margin-right:16px;}
.ob-foot .skip:hover{color:var(--ox);}
.ob-top-meta{display:flex;align-items:flex-end;gap:12px;flex-direction:column;}
.ob-top .firm{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--muted-strong);}
.ob-top .firm b{color:var(--ink);font-weight:500;}
.ob-card{display:flex;flex-direction:column;max-height:calc(100vh - 128px);overflow:hidden;}
.ob-body{overflow:auto;}
.ob-step{min-height:0;}
.ob-step[hidden]{display:none;}
.ob-banner{padding:11px 28px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-2);background:var(--panel);}
.ob-banner.warn{background:var(--amber-bg);color:var(--amber);}
.ob-banner.error{background:color-mix(in oklab,var(--ox) 9%,var(--panel));color:var(--ox);}
.ob-banner.success{background:var(--green-bg);color:var(--green);}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.ob-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;font-size:13px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink-2);cursor:pointer;user-select:none;transition:border-color .12s,background .12s,color .12s,transform .14s var(--ease-out);}
.ob-pill:active{transform:scale(.97);}
.ob-pill:hover{border-color:var(--ox);}
.ob-pill.selected{background:var(--ox);border-color:var(--ox);color:#fdf8ee;}
.ob-pill input{position:absolute;opacity:0;pointer-events:none;}
.ob-drop{margin-top:18px;}
.drop.is-drag{border-color:var(--ox);background:color-mix(in oklab,var(--ox) 7%,#fff);}
.trust .trust-mark{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--green-bg);border:1px solid var(--green);color:var(--green);font-size:12px;font-weight:600;margin-top:1px;}
.ob-matrix{display:block;overflow:hidden;}
.ob-matrix-head,.ob-matrix-row{display:grid;grid-template-columns:minmax(0,2fr) 70px 56px 104px 108px minmax(0,1.25fr) 78px;align-items:center;}
.ob-matrix-head{background:var(--panel-2);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-strong);}
.ob-matrix-head > div,.ob-matrix-row > div{min-width:0;padding:10px 12px;border-right:1px solid var(--line);font-size:12px;color:var(--ink-2);}
.ob-matrix-head > div:last-child,.ob-matrix-row > div:last-child{border-right:none;}
.ob-matrix-row{border-bottom:1px solid var(--line);}
.ob-matrix-row:last-child{border-bottom:none;}
.ob-cell-name{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ob-cell-mono{font-family:var(--mono);font-size:11px;color:var(--muted-strong);}
.ob-matrix-empty{padding:17px 16px;font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--muted-strong);text-align:center;}
.ob-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor;white-space:nowrap;color:var(--muted-strong);background:var(--bg-2);}
.ob-badge .dot{width:5px;height:5px;border-radius:50%;background:currentColor;}
.ob-badge.ready{color:var(--green);background:var(--green-bg);}
.ob-badge.uploading,.ob-badge.scanning,.ob-badge.processing,.ob-badge.pending{color:var(--amber);background:var(--amber-bg);}
.ob-badge.failed{color:var(--ox);background:color-mix(in oklab,var(--ox) 8%,transparent);}
.ob-badge.uploading .dot,.ob-badge.scanning .dot,.ob-badge.processing .dot{animation:procpulse 1.4s ease-in-out infinite;}
.ob-style input{position:absolute;opacity:0;pointer-events:none;}
.ob-style > span:not(.radio):not(.badge){min-width:0;display:flex;flex-direction:column;}
.ob-style .badge.rec{margin-left:auto;}
.ob-foot .back,.ob-foot .skip{background:transparent;border:0;padding:0;text-align:left;}
.ob-foot .back:disabled{visibility:hidden;}
.ob-foot .btn{flex:none;}
.ob-done-timer{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted-strong);}

@media (max-width:780px){
  .ob{overflow:auto;}
  .ob-top{align-items:flex-start;gap:14px;padding:18px 20px;}
  .ob-top-meta{align-items:flex-start;}
  .ob-stage{display:block;padding:20px 16px 32px;}
  .ob-card{max-height:none;}
  .ob-stepper{padding:14px 18px;}
  .ob-stepper .st .nm{display:none;}
  .ob-stepper .line{margin:0 8px;}
  .ob-body{padding:22px 20px 0;overflow:visible;}
  .ob-foot{align-items:stretch;flex-direction:column;padding:18px 20px;}
  .ob-foot .spacer{display:none;}
  .ob-foot .skip{margin-right:0;}
  .ob-foot .btn{justify-content:center;width:100%;}
  .ob-matrix-head{display:none;}
  .ob-matrix-row{grid-template-columns:1fr;gap:0;padding:10px 0;}
  .ob-matrix-row > div{border-right:none;padding:4px 14px;}
  .ob-style{align-items:flex-start;flex-wrap:wrap;}
  .ob-style .badge.rec{margin-left:31px;}
  .ob-summary{flex-direction:column;}
  .ob-summary .c{border-right:none;border-bottom:1px solid var(--line);}
  .ob-summary .c:last-child{border-bottom:none;}
}

/* ── accessibility: visible focus on every interactive element ─── */
.shell a:focus-visible,.shell button:focus-visible,.shell input:focus-visible,.shell select:focus-visible,
.ob a:focus-visible,.ob button:focus-visible,.ob input:focus-visible,.ob select:focus-visible{outline:2px solid var(--ox);outline-offset:2px;}
.sidebar a:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}

/* ── responsive: content column reflow (container query on .main) ─ */
@container (max-width:820px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-intro{border-right:none;border-bottom:1px solid var(--line);}
  .stats{grid-template-columns:1fr 1fr;}
  .stat:nth-child(2){border-right:none;}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--line);}
  .cols-2,.cols-3a{grid-template-columns:1fr;}
  .filter{flex-wrap:wrap;}
  .filter .find{max-width:none;flex:1 1 100%;}
  .filter .spacer{display:none;}
  .topbar{flex-wrap:wrap;}
  .topbar h1,.topbar .sub{white-space:normal;}
  .topbar .crumbs{display:none;}
  .result-grid{grid-template-columns:1fr;}
  .result-grid .cell{border-right:none;border-bottom:1px solid var(--line);}
  .result-grid .cell:last-child{border-bottom:none;}
  /* table column priority: drop secondary columns on narrow */
  .col-sec{display:none;}
  .qgrid{grid-template-columns:1fr;}
  .qgrid .q{border-right:none;}
  .qgrid .q:nth-child(n+3){border-bottom:1px solid var(--line);}
  .qgrid .q:last-child{border-bottom:none;}
  .donut-wrap{align-items:flex-start;flex-direction:column;}
  .invite-row{align-items:stretch;flex-direction:column;}
  .invite-row select.fin{width:100%;}
  .detail-list div{align-items:flex-start;flex-direction:column;}
  .detail-list dd{text-align:left;}
  .report-privacy-note{align-items:flex-start;flex-direction:column;}
  .style-picker{grid-template-columns:1fr;align-items:stretch;}
  .style-manage-link{justify-self:start;}
  .proc-meta{align-items:stretch;flex-direction:column;}
  .proc-bar{max-width:none;}
  .result-foot{flex-direction:column;}
  .result-actions{justify-content:flex-start;}
  .flag{grid-template-columns:1fr;}
  .flag .page{justify-self:start;}
  .job-hero-head{flex-direction:column;}
  .job-actions{justify-content:flex-start;}
  .job-actions .btn{width:100%;justify-content:center;}
  .dl-row{align-items:flex-start;flex-direction:column;}
  .dl-row .btn{width:100%;justify-content:center;}
  .hash-row{flex-direction:column;}
}

/* ── responsive: sidebar collapses to an icon rail (container on .shell-wrap) ─ */
@container (max-width:1024px){
  .shell{grid-template-columns:62px minmax(0,1fr);}
  .sb-brand{padding:18px 0 16px;display:flex;justify-content:center;}
  .sb-brand .logo{font-size:0;gap:0;}
  .sb-brand .logo .dot{width:9px;height:9px;}
  .sb-brand .sub{display:none;}
  .sb-nav{padding:12px 8px;align-items:stretch;}
  .sb-nav a{justify-content:center;padding:11px 0;}
  .sb-nav a span{display:none;}
  .sb-nav a svg{opacity:.85;}
  .sb-nav a.active::before{left:-8px;}
  .sb-nav .grp{font-size:0;padding:10px 0 6px;text-align:center;}
  .sb-nav .grp::after{content:"·";font-size:14px;color:rgba(243,237,224,.4);}
  .sb-acct{padding:12px 8px;}
  .sb-firm{grid-template-columns:1fr;justify-items:center;padding:7px 0;}
  .sb-firm .nm,.sb-firm .plan,.sb-firm .chev{display:none;}
  .sb-usage,.sb-foot{display:none;}
}

/* ══ overlays: modal · destructive confirm · toast · firm switcher ══ */
.scrim{position:absolute;inset:0;background:rgba(23,20,16,.46);display:grid;place-items:center;z-index:60;padding:24px;opacity:1;transition:opacity .2s var(--ease-out);}
.scrim[hidden]{display:none !important;}
.scrim.is-leaving{opacity:0;pointer-events:none;}
.modal{width:min(460px,100%);background:var(--panel);border:1px solid var(--line-2);box-shadow:16px 18px 0 rgba(23,20,16,.22);transform-origin:center;transition:opacity .22s var(--ease-out),transform .22s var(--ease-out);}
.scrim.is-leaving .modal{opacity:0;transform:scale(.96);}
.modal.wide{width:min(680px,100%);}
.modal-head{display:flex;align-items:flex-start;gap:14px;padding:22px 24px 16px;}
.modal-head .ic{width:42px;height:42px;flex:none;display:grid;place-items:center;border:1px solid var(--ox);color:var(--ox);background:color-mix(in oklab,var(--ox) 7%,var(--panel));}
.modal-head .ic svg{width:20px;height:20px;}
.modal-head h3{font-size:21px;}
.modal-head p{font-size:13.5px;color:var(--ink-2);margin-top:7px;line-height:1.55;}
.modal-head p b{color:var(--ink);font-weight:600;}
.modal-body{padding:0 24px 22px;font-size:14px;color:var(--ink-2);line-height:1.55;}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--line);background:var(--bg);}
.btn.danger{background:var(--ox);border-color:var(--ox);}
.btn.danger:hover{background:#561619;border-color:#561619;}
.sheet{position:absolute;right:0;top:0;bottom:0;width:min(420px,100%);background:var(--panel);border-left:1px solid var(--line-2);box-shadow:-12px 0 0 rgba(23,20,16,.08);z-index:65;display:flex;flex-direction:column;transition:transform .3s var(--ease-drawer);}
.sheet.is-leaving{transform:translateX(100%);}
.sheet-head{padding:22px 24px 16px;border-bottom:1px solid var(--line);}
.sheet-head h3{font-size:21px;}
.sheet-head p{font-size:13.5px;color:var(--ink-2);margin-top:7px;line-height:1.55;}
.sheet-body{padding:20px 24px;overflow:auto;flex:1;}
.sheet-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--line);background:var(--bg);}
.modal-report{padding:0 24px 22px;}
.report-doc{border:1px solid var(--line-2);background:#fff;padding:26px 30px;max-height:330px;overflow:hidden;position:relative;}
.report-doc::after{content:"";position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(transparent,#fff);}
.report-doc .rt{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ox);}
.report-doc h4{font-family:var(--serif);font-size:20px;margin-top:8px;}
.report-doc .meta{font-family:var(--mono);font-size:10px;color:var(--muted-strong);margin-top:5px;letter-spacing:.03em;}
.report-doc .rrow{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink-2);}
.report-doc .rrow b{font-family:var(--mono);font-size:12px;color:var(--ink);}

.toast-stack{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;gap:10px;z-index:70;align-items:center;}
.toast{display:flex;align-items:center;gap:12px;background:var(--ink);color:var(--bg);padding:12px 16px;box-shadow:6px 8px 0 rgba(23,20,16,.18);min-width:300px;transition:opacity .25s var(--ease-out),transform .25s var(--ease-out);}
.toast.is-leaving{opacity:0;transform:translateY(10px);}
.toast .tc{width:22px;height:22px;flex:none;border-radius:50%;display:grid;place-items:center;}
.toast .tc.ok{background:var(--green);color:#fff;}
.toast .tc svg{width:13px;height:13px;}
.toast .msg{font-size:13.5px;flex:1;}
.toast .x{color:rgba(243,237,224,.55);cursor:pointer;font-size:14px;}
.toast button.x{background:transparent;border:none;padding:0;}

.acct-menu{position:absolute;left:12px;bottom:96px;width:196px;background:var(--panel);border:1px solid var(--line-2);box-shadow:8px 10px 0 rgba(23,20,16,.18);z-index:70;transform-origin:left bottom;transition:opacity .16s var(--ease-out),transform .16s var(--ease-out);}
.acct-menu.is-leaving{opacity:0;transform:scale(.96);}
.acct-menu .grp{padding:9px 14px 5px;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-strong);}
.acct-menu a{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:13px;color:var(--ink-2);cursor:pointer;border-top:1px solid var(--line);}
.acct-menu a:first-of-type{border-top:none;}
.acct-menu a:hover{background:var(--bg-2);color:var(--ink);}
.acct-menu a.danger{color:var(--ox);}
.acct-menu .wsrow{display:flex;align-items:center;gap:10px;padding:10px 14px;}
.acct-menu .wsrow .mk{width:24px;height:24px;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:13px;}
.acct-menu .wsrow .nm{font-size:13px;font-weight:500;color:var(--ink);}
.acct-menu .wsrow .ck{margin-left:auto;color:var(--green);}

@starting-style{
  .scrim{opacity:0;}
  .modal{opacity:0;transform:scale(.96);}
  .toast{opacity:0;transform:translateY(10px);}
  .sheet{transform:translateX(100%);}
  .acct-menu{opacity:0;transform:scale(.96);}
}

/* role legend (team) */
.role-legend{display:flex;gap:22px;flex-wrap:wrap;padding:13px 18px;background:var(--bg-2);border:1px solid var(--line);margin-bottom:14px;font-size:12.5px;color:var(--muted-strong);}
.role-legend b{color:var(--ink);font-weight:600;}

/* reports peak bar emphasis */
.barstrip .col.peak .bar{outline:2px solid var(--gold);outline-offset:2px;}
.barstrip .col.peak .lab{color:var(--ox);font-weight:500;}

/* ── reduced motion: neutralize transforms + decorative pulses (spinner keeps moving) ─ */
@media (prefers-reduced-motion: reduce){
  .scrim,.modal,.toast,.sheet,.acct-menu{transform:none!important;}
  .pill--proc .d,.pill.running .pdot,.pstep.active .ring,
  .ob-badge.uploading .dot,.ob-badge.scanning .dot,.ob-badge.processing .dot{animation:none!important;}
}
