/* Veritura app prototype, uses tokens from site.css */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:radial-gradient(700px 400px at 80% -10%,rgba(46,114,210,.1),transparent 60%)}
.auth-card{width:100%;max-width:430px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:34px}
.auth-card .blogo{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.auth-card h1{font-size:24px;letter-spacing:-.02em;margin:14px 0 6px}
.auth-card .sub{font-size:14px;color:var(--ink-soft);margin:0 0 22px}
.auth-card label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin:0 0 6px}
.auth-card input{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font:inherit;font-size:15px}
.auth-card input:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(46,114,210,.12)}
.auth-card .err{color:var(--red);font-size:12.5px;margin-top:8px;display:none}
.auth-card .ok{color:var(--green);font-size:12.5px;margin-top:8px;display:none}
.auth-card .btn{width:100%;justify-content:center;margin-top:18px}
.auth-card .hint{font-size:11.5px;color:var(--mute);margin-top:14px;line-height:1.5}
.auth-card .alt{text-align:center;font-size:13px;color:var(--ink-soft);margin-top:18px}
.auth-card .alt a{color:var(--accent);font-weight:600}

/* app shell */
.appshell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}
.aside{background:#fff;color:var(--ink-soft);padding:20px 14px;display:flex;flex-direction:column}
.aside .lg{color:var(--ink);font-weight:700;font-size:16px;display:flex;align-items:center;gap:9px;padding:0 8px;margin-bottom:6px}
.aside .ws{font-size:11px;color:var(--mute);padding:0 8px 16px;border-bottom:1px solid var(--line);margin-bottom:14px}
.aside a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;font-size:13.5px;color:var(--ink-soft);margin-bottom:2px;cursor:pointer;position:relative}
.aside a svg{width:16px;height:16px}.aside a.on{background:#EEF3FB;color:var(--accent);font-weight:600}.aside a:hover{color:var(--ink);background:#F4F6FA}
.aside a .lock{margin-left:auto;width:13px;height:13px;opacity:.55}
.aside .grow{flex:1}
.aside .upcard{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px}
.aside .upcard b{color:var(--ink);font-size:13px;display:block;margin-bottom:4px}
.aside .upcard p{font-size:11.5px;color:var(--mute);margin:0 0 10px}
.aside .upcard .btn{width:100%;justify-content:center;font-size:12.5px;padding:8px}

.amain{background:var(--soft);min-height:100vh}
.atop{background:#fff;border-bottom:1px solid var(--line);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5}
.atop .ttl{font-weight:700;font-size:16px}
.atop .right{display:flex;align-items:center;gap:14px}
.planpill{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 11px;border-radius:20px}
.planpill.free{background:#eef1f6;color:var(--ink-soft)}.planpill.paid{background:#e7f4ec;color:var(--green)}
.quota{font-size:12.5px;color:var(--ink-soft)}.quota b{color:var(--ink)}
.acct{width:34px;height:34px;border-radius:50%;background:var(--panel);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;cursor:pointer}
.acontent{padding:28px;max-width:1340px;margin:0 auto}
/* Elite full-width dashboard work area: check tool + contextual rail, side by side, no dead space. */
.dashmain{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:18px;align-items:start}
.dashmain .checktool{max-width:none;width:auto}
/* RESULT MODE: a finished check is the widest artifact in the product - a dozen field cards, three
   verdict blocks, five forensic sections, an action queue. Rendering it inside the 1.18fr intake
   column (~700px) forced every one of those into a single stacked chute. When a result lands, the
   work area goes full width and the contextual rail drops below it: the report gets the whole shell,
   and its internal grids (below) can finally lay out side by side instead of end to end. */
.dashmain.hasresult{grid-template-columns:minmax(0,1fr)}
.dashmain.hasresult .dashrail{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
/* The forensic/spec/action sections flow into two columns on a wide result. CSS columns (not grid)
   on purpose: these are <details> that change height when opened, and columns reflow around that,
   where a grid row would lock every sibling to the tallest open card. break-inside guards a section
   from being split down the middle of itself. */
@media(min-width:1100px){
  .dashmain.hasresult [data-depthhost]{column-count:2;column-gap:14px}
  .dashmain.hasresult [data-depthhost] .dsec{break-inside:avoid;-webkit-column-break-inside:avoid;display:inline-block;width:100%}
}
.dashrail{display:flex;flex-direction:column;gap:18px;position:sticky;top:88px}
.dashrail .railcard{margin-bottom:0}
.pbillgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:14px}
.pbillgrid .b{padding:2px 0}
.pbillgrid .bl{font-size:10.5px;color:var(--mute);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.pbillgrid .bv{font-size:22px;font-weight:800;color:var(--ink);margin-top:3px;font-variant-numeric:tabular-nums;letter-spacing:-.015em}
.pbillgrid .bv.accent{color:var(--accent)}
.pbillgrid .bv small{font-size:11.5px;font-weight:600;color:var(--mute)}
.partner-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #f0f3f8;font-size:12.5px}
.partner-row:last-child{border-bottom:none}
.partner-row b{display:block;color:var(--ink);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.partner-row span{display:block;color:var(--mute);font-size:11.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.partner-row .amt{font-weight:800;color:var(--green);font-variant-numeric:tabular-nums}
.dashsteps{list-style:none;counter-reset:ds;margin:0;padding:16px 18px}
.dashsteps li{counter-increment:ds;position:relative;padding:0 0 14px 34px;font-size:13px;color:var(--ink-soft);line-height:1.5}
.dashsteps li:last-child{padding-bottom:2px}
.dashsteps li::before{content:counter(ds);position:absolute;left:0;top:-1px;width:23px;height:23px;border-radius:7px;background:#EEF3FB;color:var(--accent);font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center}
.dashsteps li b{color:var(--ink);font-weight:600}
.railcta{margin:2px 18px 18px;padding:14px 16px;border-radius:12px;background:var(--soft);border:1px solid var(--line)}
@media(max-width:1080px){.dashmain{grid-template-columns:1fr}.dashrail{position:static}}

/* ===== KPI metric strip (paid), Stripe/Linear density ===== */
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.kpis.kpis-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px 14px;box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .18s,box-shadow .18s,transform .18s}
.kpi::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#2E72D2,#0E6B62);opacity:0;transition:opacity .2s}
.kpi:hover{border-color:#d3deef;box-shadow:var(--shadow);transform:translateY(-2px)}
.kpi:hover::after{opacity:1}
.kpi .kl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .kv{font-size:27px;font-weight:800;color:var(--ink);line-height:1.04;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.015em}
.kpi .kv.g{color:#0f6b48}.kpi .kv.a{color:var(--amber)}.kpi .kv.r{color:var(--red)}.kpi .kv.b{color:var(--accent)}
.kpi .kspark{display:block;width:100%;height:20px;margin:7px 0 0;overflow:visible}
.kpi .ks{font-size:10.5px;color:var(--ink-soft);margin-top:auto;padding-top:7px;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .kdelta{font-size:10px;font-weight:700;padding:1px 7px;border-radius:20px;display:inline-flex;align-items:center;gap:3px;font-variant-numeric:tabular-nums;flex:none}
.kpi .kdelta.up{background:#e7f4ec;color:#0f6b48}.kpi .kdelta.dn{background:#fdecec;color:var(--red)}.kpi .kdelta.flat{background:#eef1f6;color:var(--mute)}
@media(max-width:1180px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.kpis.kpis-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.tile{background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px}
.tile .tl{font-size:11px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.tile .tv{font-size:26px;font-weight:700;margin-top:4px}
.panel-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:18px}
.panel-card .ph{padding:14px 18px;border-bottom:1px solid var(--line);font-weight:600;font-size:14px;display:flex;justify-content:space-between;align-items:center}

.empty{text-align:center;padding:36px;color:var(--mute)}
.empty .ei{width:48px;height:48px;border-radius:13px;background:var(--panel);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}

/* run check tool inside app */
.checktool{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;max-width:620px}
.dz{border:2px dashed #c6d4e8;border-radius:12px;background:var(--soft);padding:26px;text-align:center;margin-bottom:14px}
.dz h4{margin:8px 0 4px;font-size:15px}.dz p{margin:0;font-size:13px;color:var(--mute)}

/* locked / paywall */
.lockrow{filter:blur(4px);opacity:.5;pointer-events:none}
.paywall{position:fixed;inset:0;background:rgba(7,17,31,.55);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:50;padding:20px}
.paywall.show{display:flex}
.pw-card{background:#fff;border-radius:18px;max-width:440px;width:100%;overflow:hidden;box-shadow:0 30px 70px -20px rgba(0,0,0,.5)}
.pw-card .pwh{background:var(--soft);color:var(--ink);padding:22px 26px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.pw-card .pwh::after{content:"";position:absolute;inset:0;background:radial-gradient(300px 180px at 85% -20%,rgba(46,114,210,.10),transparent 60%)}
.pw-card .pwh>*{position:relative}
.pw-card .pwh .lk{width:42px;height:42px;border-radius:12px;background:#EEF3FB;color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.pw-card .pwh h3{margin:0;font-size:20px}.pw-card .pwh p{margin:6px 0 0;color:var(--mute);font-size:13.5px}
.pw-card .pwb{padding:22px 26px}
.pw-opt{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;cursor:pointer;transition:.18s}
.pw-opt:hover{border-color:var(--accent-2);box-shadow:var(--shadow)}
.pw-opt.feat{border-color:var(--accent);background:#f6fbff}
.pw-opt b{font-size:15px}.pw-opt .pr{float:right;font-weight:700}.pw-opt p{margin:4px 0 0;font-size:12.5px;color:var(--ink-soft)}
.pw-card .close{position:absolute;top:16px;right:18px;color:var(--mute);cursor:pointer;font-size:20px;z-index:2}

/* operator queue */
.qitem{display:grid;grid-template-columns:1.6fr 1fr 1fr auto;gap:14px;align-items:center;padding:14px 18px;border-bottom:1px solid #f0f3f8;font-size:13px}
.qitem:last-child{border-bottom:none}
.qitem .pid{font-family:ui-monospace,monospace;font-size:11px;color:var(--mute)}
.stat-pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:20px}
.stat-pill.draft{background:#eef1f6;color:var(--ink-soft)}.stat-pill.review{background:#eaf1fb;color:var(--accent)}.stat-pill.qa{background:#f8efdd;color:var(--amber)}.stat-pill.done{background:#e7f4ec;color:var(--green)}
.logbar{font-size:11.5px;color:var(--amber);background:#fbf3e2;border:1px solid #f0dcb4;border-radius:8px;padding:8px 12px;margin-bottom:16px;display:flex;gap:8px;align-items:center}

/* ===== elite polish ===== */
.auth-wrap{background:radial-gradient(820px 500px at 80% -10%,rgba(46,114,210,.12),transparent 60%),radial-gradient(520px 400px at 4% 110%,rgba(14,107,98,.06),transparent 60%)}

/* split-screen auth */
.auth-split{display:grid;grid-template-columns:1.04fr .96fr;min-height:100vh}
.auth-left{display:flex;align-items:center;justify-content:center;padding:40px 32px}
.auth-left .auth-card{box-shadow:none;border:none;max-width:400px;padding:0}
.auth-right{background:var(--navy);color:#fff;padding:64px 56px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.auth-right::before{content:"";position:absolute;inset:0;background:radial-gradient(620px 380px at 82% -10%,rgba(46,114,210,.3),transparent 60%),radial-gradient(440px 320px at 8% 112%,rgba(14,107,98,.18),transparent 60%)}
.auth-right::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(600px 460px at 76% 12%,#000,transparent 72%)}
.auth-right .in{position:relative;z-index:1;max-width:430px}
.auth-right .eyb{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#7fa8e6;margin-bottom:16px}
.auth-right h2{font-size:33px;letter-spacing:-.02em;line-height:1.14;font-weight:700;margin:0 0 26px}
.auth-right h2 span{background:linear-gradient(96deg,#5b9bf0,#3fbfaf);-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-right .pt{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;font-size:14.5px;color:#cdd9ea}
.auth-right .pt svg{width:20px;height:20px;color:#54d18f;flex:none;margin-top:1px}

/* dashboard depth + interactions */
.aside{background:#fff;border-right:1px solid var(--line)}
.aside a{transition:color .15s,background .15s}
.aside a.on{position:relative}
.aside a.on::before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.atop{box-shadow:0 1px 0 var(--line)}
.tile{transition:transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s,border-color .2s;box-shadow:var(--shadow-sm)}
.tile:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#d3deef}
.checktool,.panel-card{box-shadow:var(--shadow-sm)}
.acct{transition:background .15s}.acct:hover{background:#e3ecf8}
.dz{transition:border-color .2s,background .2s}.dz:hover{border-color:var(--accent-2);background:#fff}
.welcome{margin-bottom:20px}
.welcome h2{font-size:24px;letter-spacing:-.02em;margin:0 0 4px;font-weight:700}
.welcome p{margin:0;font-size:14px;color:var(--ink-soft)}
.pw-opt{transition:border-color .18s,box-shadow .18s,transform .18s}.pw-opt:hover{transform:translateY(-1px)}

@media(max-width:880px){
  .appshell{grid-template-columns:1fr}.aside{display:none}.tiles{grid-template-columns:1fr 1fr}.qitem{grid-template-columns:1fr 1fr}
  .auth-split{grid-template-columns:1fr}.auth-right{display:none}
  .auth-left .auth-card{max-width:430px;padding:34px;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
}

/* ===== app + operator elite pass ===== */
.amain{position:relative}
.amain::before{content:"";position:absolute;top:0;left:0;right:0;height:440px;background:radial-gradient(660px 360px at 84% -30%,rgba(46,114,210,.07),transparent 60%);pointer-events:none;z-index:0}
.acontent,.atop{position:relative;z-index:1}
.tile,.qitem,.pw-opt{transform-style:preserve-3d;will-change:transform}
.checktool{transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s;transform-style:flat;will-change:auto}
.welcome h2{letter-spacing:-.025em}
.qitem{transition:background .15s,transform .2s cubic-bezier(.2,.7,.2,1)}
.qitem:hover{background:#fafcff}
.aside .upcard{box-shadow:0 12px 28px -16px rgba(0,0,0,.6)}
/* paywall scale-in */
.pw-card{transform:scale(.95) translateY(8px);opacity:0;transition:transform .28s cubic-bezier(.2,.7,.2,1),opacity .28s}
.paywall.show .pw-card{transform:scale(1) translateY(0);opacity:1}

/* ===== motion: staggered entrance ===== */
@keyframes rise{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:none}}
.acontent>*{animation:rise .55s cubic-bezier(.2,.7,.2,1) both}
.acontent>*:nth-child(1){animation-delay:.02s}
.acontent>*:nth-child(2){animation-delay:.08s}
.acontent>*:nth-child(3){animation-delay:.14s}
.acontent>*:nth-child(4){animation-delay:.2s}
.acontent>*:nth-child(5){animation-delay:.26s}
.acontent>*:nth-child(6){animation-delay:.32s}
.acontent>*:nth-child(7){animation-delay:.38s}

/* ===== live cross-vendor signals ticker ===== */
.tickerbar{display:flex;align-items:center;gap:16px;background:#fff;color:var(--ink-soft);border:1px solid var(--line);border-radius:12px;padding:11px 16px;margin-bottom:18px;overflow:hidden;font-size:12.5px;box-shadow:var(--shadow-sm)}
.tk-l{color:var(--accent);font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:8px;flex:none}
.tk-l::before{content:"";width:7px;height:7px;border-radius:50%;background:#54d18f;animation:tkpulse 2s infinite}
@keyframes tkpulse{0%{box-shadow:0 0 0 0 rgba(84,209,143,.55)}70%{box-shadow:0 0 0 8px rgba(84,209,143,0)}100%{box-shadow:0 0 0 0 rgba(84,209,143,0)}}
.tk-win{overflow:hidden;flex:1}
/* serious infrastructure: a still, static capability strip, no marquee scroll */
.tk-track{display:flex;flex-wrap:wrap;gap:7px 10px;white-space:normal;width:auto;animation:none}
.tk-track span{color:var(--ink-soft);background:var(--panel,#f4f7fb);border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:11.5px}
.tk-track span:nth-child(n+7){display:none}
.tk-track b{color:var(--ink);font-weight:600}
@keyframes tkscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tickerbar:hover .tk-track{animation-play-state:paused}

/* ===== supplier table (paid workspace) ===== */
.srow{display:grid;grid-template-columns:1.7fr .7fr 1.1fr .8fr;gap:14px;align-items:center;padding:13px 18px;border-bottom:1px solid #f0f3f8;font-size:13px;transition:background .15s}
.srow:last-child{border-bottom:none}
.srow:not(.shead):hover{background:#fafcff}
.srow .sn{font-weight:600}.srow .sd{font-size:11px;color:var(--mute);font-family:ui-monospace,monospace}
.shead{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:700;background:#fafbfd}
.sc{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:25px;border-radius:7px;font-weight:700;font-size:12.5px}
.sc.hi{background:#e7f4ec;color:var(--green)}.sc.mid{background:#f8efdd;color:var(--amber)}.sc.lo{background:#fdecec;color:var(--red)}
.pp{font-size:11px;font-weight:600;padding:3px 11px;border-radius:20px;display:inline-block}
.pp.ok{background:#e7f4ec;color:var(--green)}.pp.warn{background:#f8efdd;color:var(--amber)}.pp.bad{background:#fdecec;color:var(--red)}.pp.mon{background:#eaf1fb;color:var(--accent)}
.sig{font-size:12px;color:var(--ink-soft)}.sig b{color:var(--ink)}
.alert-row{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid #f0f3f8;font-size:13px}
.alert-row:last-child{border-bottom:none}
.alert-row .ad{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex:none}
.alert-row .ad.r{background:#fdecec;color:var(--red)}.alert-row .ad.a{background:#f8efdd;color:var(--amber)}
.alert-row .at{font-size:11px;color:var(--mute);margin-left:auto;white-space:nowrap}

/* ===== operator: dark ops console ===== */
#opconsole{background:var(--soft);min-height:100vh;color:var(--ink)}
#opconsole .atop{background:#fff;border-bottom:1px solid var(--line);box-shadow:none}
#opconsole .atop .ttl{color:var(--ink)}
#opconsole .tile{background:#fff;border-color:var(--line);color:var(--ink);box-shadow:var(--shadow-sm)}
#opconsole .tile .tl{color:var(--mute)}
#opconsole .tile:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#d3deef}
#opconsole .panel-card{background:#fff;border-color:var(--line);box-shadow:var(--shadow-sm)}
#opconsole .panel-card .ph{border-color:var(--line);color:var(--ink)}
#opconsole .panel-card .ph .sub,#opconsole .panel-card .ph span{color:var(--mute)!important}
#opconsole .qitem{border-color:var(--line)}
#opconsole .qitem b{color:var(--ink)}
#opconsole .qitem:hover{background:var(--soft)}
#opconsole .pid{color:var(--mute)}
#opconsole .btn-ghost{background:#fff;border-color:var(--line);color:var(--ink-soft)}
#opconsole .btn-ghost:hover{background:var(--soft);color:var(--ink)}
#opconsole .logbar{background:#FFF8E6;border-color:#F0E0B0;color:#8A6212}
#opconsole a{color:var(--accent)}
/* operator drill-down */
.opdetail .adgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.opdetail .adstat{background:#fff;padding:14px 18px}
.opdetail .adstat .tl{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:700}
.opdetail .adstat .tv{font-size:18px;font-weight:700;color:var(--ink);margin-top:3px}
.opdetail .adrecent{padding:14px 18px;font-size:12.5px;color:var(--ink-soft);border-top:1px solid var(--line)}
.opdetail .adrecent div{padding:4px 0;color:var(--ink-soft)}
/* live queue: new row + toast */
.qitem.qnew{animation:qslide .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes qslide{from{opacity:0;transform:translateY(-10px);background:#EEF3FB}to{opacity:1;transform:none}}
.optoast{position:fixed;right:22px;bottom:22px;background:var(--navy);border:1px solid var(--navy);color:#fff;border-radius:12px;padding:13px 16px;font-size:13px;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-lg);transform:translateY(16px);opacity:0;transition:.3s cubic-bezier(.2,.7,.2,1);z-index:60}
.optoast.show{transform:none;opacity:1}
.optoast .dot{width:8px;height:8px;border-radius:50%;background:#54d18f;flex:none}

/* ===== real brand mark sizing ===== */
.vbrand{flex:none;display:block}
.aside .lg .vbrand{width:23px;height:27px}
#opconsole .atop .ttl .vbrand{width:21px;height:25px}
.auth-card .blogo .vbrand{width:30px;height:35px}
.pw-card .pwh .vbrand{width:26px;height:30px}

/* ===== Stripe-grade hero posture card (paid) ===== */
.herocard{margin-bottom:18px;perspective:1500px}
.hc-3d{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 26px;color:var(--ink);box-shadow:var(--shadow);transition:transform .18s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.hc-3d::before{content:"";position:absolute;inset:0;background:radial-gradient(560px 320px at 90% -12%,rgba(46,114,210,.3),transparent 62%),radial-gradient(400px 280px at 4% 124%,rgba(14,107,98,.18),transparent 60%);pointer-events:none}
.hc-3d::after{display:none}
.hc-glare{display:none}
.hc-head{position:relative;display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.hc-head .t{font-size:13px;font-weight:600;color:var(--ink-soft)}
.hc-head .live{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:var(--accent);font-weight:600}
.hc-head .live::before{content:"";width:7px;height:7px;border-radius:50%;background:#54d18f;animation:tkpulse 2s infinite}
.hc-main{position:relative;display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center}
.hc-gauge{display:flex;align-items:center;gap:16px;flex:none}
.hc-gauge svg{width:122px;height:122px;flex:none}
.gring-bg{stroke:#E4E9F1;stroke-width:10;fill:none}
.gring{stroke-width:10;fill:none;stroke-linecap:round;transition:stroke-dashoffset 1.4s cubic-bezier(.2,.7,.2,1)}
.gscore{font:700 31px 'IBM Plex Sans',sans-serif;fill:var(--ink)}
.gsub{font:600 8.5px 'IBM Plex Sans',sans-serif;fill:var(--mute);letter-spacing:.1em}
.hc-glab{font-size:13px;color:var(--ink-soft);line-height:1.5;max-width:130px}
.hc-glab b{color:var(--ink);font-weight:600}
.hc-spark{position:relative;min-width:0}
.hc-sl{display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:600;margin-bottom:6px}
.hc-sl .up{color:var(--green);text-transform:none;letter-spacing:0}
.spark{width:100%;height:76px;display:block;overflow:visible}
.spark-line{fill:none;stroke:var(--accent-2);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 8px rgba(46,114,210,.25))}
.spark-area{stroke:none}
.spark-dot{fill:#fff;stroke:var(--accent-2);stroke-width:2.4}
.hc-foot{position:relative;display:flex;gap:30px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.hc-mini .v{font-size:21px;font-weight:700;color:var(--ink);line-height:1}
.hc-mini .l{font-size:11px;color:var(--mute);margin-top:5px}
.hc-mini .v.g{color:var(--green)}.hc-mini .v.a{color:var(--amber)}.hc-mini .v.r{color:var(--red)}
/* elegant empty state: a fresh paid account sees a calm "awaiting data" panel, not a wall of live-looking zeros */
.hc-3d.is-empty .gscore{opacity:.28}
.hc-3d.is-empty .gring{opacity:.2;filter:none}
.hc-3d.is-empty .hc-spark{opacity:.45}
.hc-3d.is-empty .hc-mini .v{color:var(--mute)!important;opacity:.7}

/* ===== segmented control ===== */
.panel-card .ph .seg{display:inline-flex;background:#eef1f6;border-radius:9px;padding:3px;gap:2px}
.seg button{border:none;background:none;font:inherit;font-size:12px;font-weight:600;color:var(--ink-soft);padding:5px 12px;border-radius:7px;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.seg button.on{background:#fff;color:var(--accent);box-shadow:var(--shadow-sm)}
.srow{transition:background .15s,opacity .25s,transform .25s}
.srow.hide{display:none}
.srow .sopen{opacity:0;font-size:11px;color:var(--accent);font-weight:600;cursor:pointer;transition:opacity .15s;justify-self:end}
.srow:hover .sopen{opacity:1}

/* refined craft */
.tile{border-radius:14px}.panel-card{border-radius:16px}
.checktool{border-radius:16px}

@media(max-width:980px){
  .hc-main{grid-template-columns:1fr;gap:22px}
}
@media(max-width:880px){
  .srow{grid-template-columns:1.4fr .6fr;gap:8px}.srow .scol-hide{display:none}
  .opdetail .adgrid{grid-template-columns:1fr 1fr}
  .tickerbar{display:none}
}
@media (prefers-reduced-motion: reduce){
  .acontent>*,.qitem.qnew{animation:none}
  .tk-track{animation:none}
  .gring{transition:none}
}

/* ===== multi-mode check console ===== */
.cc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}
.facchip{font-size:11px;font-weight:600;color:var(--accent);background:#eaf1fb;border:1px solid #d6e4f7;border-radius:20px;padding:5px 11px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;flex:none}
.facchip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.cc-intake .dz{cursor:pointer;margin-bottom:0}
.smartnote{font-size:11.5px;color:var(--accent);background:#f6fbff;border:1px solid #d6e4f7;border-radius:8px;padding:8px 11px;margin-top:8px;display:none}
.cc-or{display:flex;align-items:center;gap:12px;color:var(--mute);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin:16px 0}
.cc-or::before,.cc-or::after{content:"";flex:1;height:1px;background:var(--line)}
.cc-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.ccm{border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 9px;font:inherit;font-size:12px;font-weight:600;color:var(--ink-soft);cursor:pointer;text-align:center;transition:.15s;line-height:1.25}
.ccm:hover{border-color:var(--accent-2);color:var(--ink)}
.ccm.on{border-color:var(--accent);background:#f6fbff;color:var(--accent);box-shadow:var(--shadow-sm)}
.ccm .lk{display:inline-block;margin-left:3px;opacity:.6}
.ccpanel{display:none}.ccpanel.on{display:block;position:relative;z-index:1;animation:rise .4s cubic-bezier(.2,.7,.2,1) both}
.ccdesc{font-size:13px;color:var(--ink-soft);line-height:1.55;margin:0 0 14px}.ccdesc b{color:var(--ink)}
.cclab{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin:0 0 6px}
.ccinput,.fda-form input,.auth-card select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font:inherit;font-size:14px;background:#fff}
.ccinput:focus,.fda-form input:focus,.auth-card select:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(46,114,210,.12)}
.fda-form{display:grid;gap:9px}
.onboard{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ob-head{display:flex;justify-content:space-between;align-items:center;padding:11px 15px;background:#fafbfd;border-bottom:1px solid var(--line);font-size:12.5px;font-weight:600}
.ob-score b{color:var(--accent);font-size:15px}
.ob-item{display:flex;align-items:center;gap:11px;padding:11px 15px;border-bottom:1px solid #f0f3f8;font-size:13.5px;cursor:pointer;transition:background .12s}
.ob-item:last-child{border-bottom:none}.ob-item:hover{background:#fafcff}
.ob-box{width:20px;height:20px;border-radius:6px;border:2px solid #c6d4e8;flex:none;display:flex;align-items:center;justify-content:center;transition:.15s}
.ob-item.have .ob-box{background:var(--green);border-color:var(--green)}
.ob-box svg{width:12px;height:12px;opacity:0;color:#fff}.ob-item.have .ob-box svg{opacity:1}
.ob-name{transition:color .15s}.ob-item.have .ob-name{color:var(--ink-soft)}
.ob-tag{margin-left:auto;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:20px}
.ob-item.have .ob-tag{background:#e7f4ec;color:var(--green)}.ob-item.miss .ob-tag{background:#fdecec;color:var(--red)}
.ccres{margin-top:14px;border-radius:12px;padding:16px;border:1px solid var(--line)}
.ccres.ok{background:#f1faf4;border-color:#cfe8d8}.ccres.warn{background:#fdf6ec;border-color:#f0dcb4}.ccres.bad{background:#fdf0ef;border-color:#f3cfcb}
.ccsig{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px dashed rgba(0,0,0,.08);font-size:13px}
.ccsig:first-of-type{border-top:none}
.ccsig .si{width:22px;height:22px;border-radius:6px;flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.ccsig .si.g{background:#e7f4ec;color:var(--green)}.ccsig .si.a{background:#f8efdd;color:var(--amber)}.ccsig .si.r{background:#fdecec;color:var(--red)}
.passcard{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:20px;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}
.passcard::before{content:"";position:absolute;inset:0;background:radial-gradient(360px 200px at 88% -20%,rgba(46,114,210,.06),transparent 60%);pointer-events:none}
.passcard>*{position:relative}
.passcard .pid{font-family:ui-monospace,monospace;font-size:12px;color:var(--accent)}
.passcard h4{margin:6px 0 4px;font-size:17px}
.passhash{font-family:ui-monospace,monospace;font-size:11px;color:var(--ink-soft);background:var(--soft);border:1px solid var(--line);border-radius:7px;padding:8px 10px;margin-top:12px;word-break:break-all}
@media(max-width:680px){.cc-modes{grid-template-columns:1fr 1fr}}

/* ===== elite intake value-back ===== */
.ix{margin-top:4px}
.ix-sec{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);font-weight:800;margin:16px 0 8px;display:flex;align-items:baseline;gap:7px}
.ix-cov{font-size:11.5px;font-weight:600;color:var(--ink-soft);letter-spacing:0;text-transform:none}
/* Field cards: auto-fit so a wide result lays them 4-5 across instead of a 2-wide ladder. The 210px
   floor keeps a label + value readable; below ~440px of host it collapses to one column on its own. */
.ix-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.ix-f{display:flex;flex-direction:column;gap:4px}
.ix-f label{font-size:11px;color:var(--mute);font-weight:600;display:flex;align-items:center;gap:6px}
.ix-f .ex{font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:#0f6b48;background:#e7f6ee;border:1px solid #bfe6cf;border-radius:20px;padding:1px 6px;font-weight:700}
.ix-f input{padding:8px 10px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:13px;background:#fff;color:var(--ink)}
.ix-f input:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(46,114,210,.12)}
.ix-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:16px}
/* Main + verdict rail inside the result: fields left, Verified/Gaps/Signals pinned right so the
   verdict is visible WHILE reading the fields, not a scroll below them. One column when narrow. */
.ix-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 18px;align-items:start}
@media(min-width:1100px){
  .ix-cols{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr)}
  .ix-railc .ix-blocks{grid-template-columns:1fr;margin-top:34px}
  .ix-railc{position:sticky;top:88px}
}
.ix-bl{border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:#fff}
.ix-bl h5{margin:0 0 7px;font-size:12px;font-weight:800;display:flex;align-items:center;gap:6px}
.ix-bl.ok h5{color:#0f6b48}.ix-bl.warn h5{color:#8a5a12}.ix-bl.sig h5{color:var(--accent)}
.ix-bl ul{margin:0;padding:0;list-style:none}
.ix-bl li{font-size:12px;color:var(--ink-soft);padding:3px 0;line-height:1.45}
.ix-cta{margin-top:16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
@media(max-width:720px){.ix-grid{grid-template-columns:1fr}.ix-blocks{grid-template-columns:1fr}}

/* ===== protection dashboard header ===== */
.prot{margin:0 0 16px}
.prot-tiles{display:grid;grid-template-columns:1fr 1fr 1fr;gap:11px}
.prot-t{border:1px solid var(--line);border-radius:13px;padding:14px 16px;background:#fff}
.prot-t .pt-l{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:700}
.prot-t .pt-v{font-size:30px;font-weight:800;line-height:1.1;margin:4px 0 2px;color:var(--ink)}
.prot-t .pt-s{font-size:11.5px;color:var(--ink-soft)}
.prot-t.ok{border-color:#cfe8d8}.prot-t.ok .pt-v{color:#0f6b48}
.prot-t.risk{border-color:#f0c9c4;background:#fdf4f3}.prot-t.risk .pt-v{color:#c0392b}
.prot-t.proof .pt-v{color:var(--accent)}
.prot-risk{margin-top:11px;border:1px solid #f0dcb4;background:#fdf8ee;border-radius:12px;padding:12px 15px}
.prot-risk .pr-h{font-size:12px;font-weight:800;color:#8a5a12;margin-bottom:7px}
.prot-risk .pr-row{font-size:12.5px;color:var(--ink-soft);padding:3px 0;display:flex;align-items:center;gap:8px}
.prot-risk .pr-row b{color:var(--ink)}
.pr-dot{width:8px;height:8px;border-radius:50%;flex:none}.pr-dot.r{background:#c0392b}.pr-dot.a{background:#d8a23a}
.prot-clear{margin-top:11px;font-size:12.5px;color:var(--ink-soft);background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:12px 15px}
@media(max-width:720px){.prot-tiles{grid-template-columns:1fr}}

/* ===== refined sidebar nav ===== */
.aside{padding:16px 12px}
.wsswitch{display:flex;align-items:center;gap:10px;width:100%;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:9px 10px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s;margin-bottom:14px}
.wsswitch:hover{background:#EEF3FB;border-color:#d3deef}
.wsmark{flex:none;display:flex;align-items:center}.wsmark .vbrand{width:22px;height:26px}
.wsmeta{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.2}
.wsmeta b{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wsmeta i{font-size:10.5px;color:var(--mute);font-style:normal;margin-top:1px}
.wschev{width:15px;height:15px;color:var(--mute);flex:none}
.navlabel{font-size:9.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);padding:0 11px;margin:0 0 6px}
.navlabel + a{margin-top:0}
.aside a{padding:9px 11px;font-size:13.5px;font-weight:500;border-radius:10px;gap:11px;transition:background .15s,color .15s}
.aside a:hover{background:#F4F6FA;color:var(--ink)}
.aside a.on{background:#EEF3FB;color:var(--accent);font-weight:600}
.aside a .lock{opacity:.45}
.aside .navlabel:not(:first-of-type){margin-top:15px}
.acctrow{display:flex;align-items:center;gap:10px;padding:10px 8px 4px;border-top:1px solid var(--line);margin-top:12px}
.acctav2{width:32px;height:32px;border-radius:9px;background:#EEF3FB;color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:none}
.acctinfo{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}
.acctinfo b{font-size:12.5px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acctinfo i{font-size:10.5px;color:var(--mute);font-style:normal}
.acctsign{background:none;border:none;color:var(--mute);cursor:pointer;padding:7px;border-radius:8px;flex:none;display:flex}
.acctsign svg{width:16px;height:16px}
.acctsign:hover{background:var(--soft);color:var(--ink)}

/* ===== view system + dashboard pages ===== */
.acontent>.view{animation:none}
.view{display:none}
.view.on{display:block;animation:rise .42s cubic-bezier(.2,.7,.2,1) both}
.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.pagehead h2{font-size:25px;letter-spacing:-.025em;margin:0 0 4px;font-weight:700;line-height:1.1}
.ph-sub{font-size:14px;color:var(--ink-soft);margin:0;max-width:580px;line-height:1.5}
.locked-view{position:relative;text-align:center;max-width:520px;margin:30px auto;background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid var(--line);border-radius:20px;padding:46px 40px 38px;box-shadow:var(--shadow-sm);overflow:hidden}
.locked-view::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#2E72D2,#0E6B62)}
.locked-view::after{content:"Paid capability";position:absolute;top:19px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--mute)}
.locked-view .lv-ic{width:56px;height:56px;border-radius:15px;background:#e4f6f1;color:#0c9484;display:flex;align-items:center;justify-content:center;margin:16px auto 18px}
.locked-view .lv-ic svg{width:27px;height:27px}
.locked-view h3{font-size:20px;margin:0 0 9px;letter-spacing:-.015em;color:var(--ink)}
.locked-view p{font-size:14px;color:var(--ink-soft);line-height:1.6;margin:0 auto 22px;max-width:400px}
/* reports table */
.rtbl{display:grid;grid-template-columns:1.2fr 1.3fr .8fr 1fr .7fr auto;gap:14px;align-items:center;padding:13px 18px;border-bottom:1px solid #f0f3f8;font-size:13px;transition:background .15s}
.rtbl:last-child{border-bottom:none}.rtbl:not(.rthead):hover{background:#fafcff}
.rthead{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:700;background:#fafbfd}
.rtbl .rid{font-family:ui-monospace,monospace;font-size:12px;color:var(--ink)}
.rtbl .rdl{color:var(--accent);font-weight:600;cursor:pointer;justify-self:end;font-size:12.5px;display:inline-flex;align-items:center;gap:5px}
.rtbl .rdl:hover{text-decoration:underline}
/* receiving gate */
.rg-workbench{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:18px;align-items:start}
.rg-card{margin-bottom:0}
.rg-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:16px 18px 0}
.rg-form label{display:flex;flex-direction:column;gap:5px;min-width:0}
.rg-form label span{font-size:11px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.05em}
.rg-form input,.rg-form select,.rg-form textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:13.5px;background:#fff;color:var(--ink)}
.rg-form textarea{resize:vertical;line-height:1.45}
.rg-form input:focus,.rg-form select:focus,.rg-form textarea:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(46,114,210,.12)}
.rg-wide{grid-column:1/-1}
.rg-checks{display:flex;gap:12px;flex-wrap:wrap;padding:13px 18px;color:var(--ink-soft);font-size:12.5px}
.rg-checks label{display:inline-flex;align-items:center;gap:7px;background:var(--soft);border:1px solid var(--line);border-radius:9px;padding:7px 10px;cursor:pointer}
.rg-checks input{accent-color:var(--accent)}
.rg-source-tools{display:flex;align-items:center;gap:9px;min-width:0;margin-top:20px}
.rg-source-tools .btn{margin:0;width:auto;white-space:nowrap;padding:9px 11px;font-size:12.5px}
#rgSourceMsg{font-size:11.5px;color:var(--mute);line-height:1.35;min-width:0}
#rgSourceMsg.ok{color:var(--green)}#rgSourceMsg.warn{color:var(--amber)}#rgSourceMsg.bad{color:var(--red)}
.rg-card > .btn{margin:0 18px 14px;width:calc(100% - 36px)}
.rg-boundary{margin:0 18px 18px;border:1px solid #e8edf4;background:#fafbfd;border-radius:10px;padding:9px 11px;font-size:11.5px;color:var(--mute);line-height:1.45}
.rg-decision{padding:18px}
.rg-empty{text-align:center;color:var(--ink-soft);padding:42px 22px}
.rg-empty-ic{width:48px;height:48px;border-radius:13px;background:var(--panel);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.rg-empty b{display:block;color:var(--ink);font-size:15px;margin-bottom:5px}
.rg-empty p{max-width:330px;margin:0 auto;font-size:13px;line-height:1.5}
.rg-decision-card{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff}
.rg-decision-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:15px 16px;background:#fafbfd;border-bottom:1px solid var(--line)}
.rg-decision-top h4{font-size:16px;margin:0 0 4px;letter-spacing:-.01em}
.rg-decision-top p{font-size:12.5px;color:var(--ink-soft);margin:0;line-height:1.45}
.rg-score{min-width:58px;height:58px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.rg-score.ok{background:#e7f4ec;color:var(--green)}.rg-score.warn{background:#f8efdd;color:var(--amber)}.rg-score.bad{background:#fdecec;color:var(--red)}
.rg-gates{display:grid;gap:8px;padding:13px 16px;border-bottom:1px solid var(--line)}
.rg-gate{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;font-size:12.5px;color:var(--ink-soft)}
.rg-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--mute)}
.rg-dot.ok{background:var(--green)}.rg-dot.warn{background:var(--amber)}.rg-dot.bad{background:var(--red)}
.rg-gate b{display:block;color:var(--ink);font-size:13px;margin-bottom:1px}
.rg-gate i{font-style:normal;font-size:11px;font-weight:700;border-radius:20px;padding:2px 8px;background:#eef1f6;color:var(--ink-soft);white-space:nowrap}
.rg-gate i.ok{background:#e7f4ec;color:var(--green)}.rg-gate i.warn{background:#f8efdd;color:var(--amber)}.rg-gate i.bad{background:#fdecec;color:var(--red)}
.rg-actions{padding:14px 16px;border-bottom:1px solid var(--line)}
.rg-actions h5,.rg-draft h5{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin:0 0 8px}
.rg-actions ul{margin:0;padding-left:17px;color:var(--ink-soft);font-size:12.5px;line-height:1.5}
.rg-draft{padding:14px 16px}
.rg-draft p{margin:0;font-size:12.5px;line-height:1.55;color:var(--ink-soft);background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 11px}
.rg-row{display:grid;grid-template-columns:1.4fr 1fr .9fr .75fr .45fr;gap:14px;align-items:center;padding:13px 18px;border-bottom:1px solid #f0f3f8;font-size:13px}
.rg-row:last-child{border-bottom:none}.rg-row:not(.rg-head):hover{background:#fafcff}
.rg-head{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:700;background:#fafbfd}
.rg-id{font-family:ui-monospace,monospace;font-size:11px;color:var(--mute);margin-top:2px}
.rg-micro{display:flex;gap:5px;flex-wrap:wrap}
.rg-lockpreview{max-width:330px;margin:0 auto 18px;opacity:.72;text-align:left;filter:blur(.3px)}
.rg-lockpreview div{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:7px;padding:9px 11px;box-shadow:var(--shadow-sm)}
.rg-lockpreview span{width:8px;height:8px;border-radius:50%;background:var(--amber)}
.rg-lockpreview b{font-size:12.5px;color:var(--ink)}
.rg-lockpreview i{font-style:normal;font-size:11.5px;color:var(--mute)}
@media(max-width:980px){.rg-workbench{grid-template-columns:1fr}.rg-form{grid-template-columns:1fr}.rg-row{grid-template-columns:1.4fr 1fr .5fr}.rg-row .rcol-hide{display:none}}
/* settings */
.setgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:900px}
.setcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow-sm)}
.setcard h4{margin:0 0 14px;font-size:15px;font-weight:700}
.setrow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid #f3f6fa;font-size:13.5px}
.setrow:last-of-type{border-bottom:none}.setrow>span{color:var(--ink-soft)}.setrow b{font-weight:600;text-align:right}
.setsel{border:1px solid var(--line);border-radius:8px;padding:6px 10px;font:inherit;font-size:13px;background:#fff;max-width:230px}
.setnote{font-size:12px;color:var(--mute);margin:12px 0 0;line-height:1.45}
.teamrow{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px;background:var(--soft);border-radius:10px}
.teamrow .acctav2{background:var(--panel);color:var(--accent)}
.teamrow .acctinfo b{color:var(--ink)}.teamrow .acctinfo i{color:var(--mute)}
/* passport list + recent activity. The passports view renders full-width blocks (usage tiles,
   then the ledger panel-card); the old 2-up card grid squeezed them into half the content width. */
.passlist{display:block}
.actrow{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid #f0f3f8;font-size:13px}
.actrow:last-child{border-bottom:none}
.actrow .ai{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex:none;font-weight:700;font-size:13px}
.actrow .at{margin-left:auto;font-size:11.5px;color:var(--mute);white-space:nowrap}
.emptybox{text-align:center;padding:38px 24px}
.emptybox .eb-ic{width:46px;height:46px;border-radius:12px;background:var(--panel);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.emptybox .eb-ic svg{width:22px;height:22px}
.emptybox p{font-size:13.5px;color:var(--ink-soft);max-width:360px;margin:0 auto;line-height:1.5}

/* ===== elite polish pass (app + operator) ===== */
.tile .tv,#opconsole .ostat .ov,.hc-mini .v,.gscore,.sc,.rtbl .rid,.pcard .amt,.ob-score b,#opconsole .oqcount{font-variant-numeric:tabular-nums}
.aside a,.ccm,.seg button,.srow,.qitem,.oqitem,.rv-doc,.pw-opt{transition:all .15s cubic-bezier(.2,.7,.2,1)}
.welcome h2,.pagehead h2{letter-spacing:-.028em}
.acontent{padding:30px 30px 42px}
.panel-card,.checktool{border-color:#e7ecf4}
.tile:hover,#opconsole .tile:hover{box-shadow:var(--shadow)}

/* ===== bold elite pass: dashboard + operator ===== */
/* dashboard hero card, stronger glow + gauge shimmer */
.hc-3d{box-shadow:0 32px 84px -34px rgba(7,17,31,.92),0 0 0 1px #182a44}
.hc-3d::before{background:radial-gradient(600px 360px at 90% -12%,rgba(46,114,210,.4),transparent 62%),radial-gradient(420px 300px at 4% 124%,rgba(14,107,98,.22),transparent 60%)}
.gring{filter:drop-shadow(0 0 7px rgba(91,155,240,.55))}
.spark-line{filter:drop-shadow(0 4px 10px rgba(91,155,240,.5))}
/* tiles, gradient top-accent on hover */
.tile{position:relative;overflow:hidden}
.tile::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#2E72D2,#0E6B62);opacity:0;transition:opacity .2s}
.tile:hover::after{opacity:1}
/* check console, gradient active mode tab */
.ccm.on{border-color:transparent;background:linear-gradient(180deg,#f6fbff,#edf4ff);box-shadow:inset 0 0 0 1.5px var(--accent),var(--shadow-sm)}
/* operator, command-center depth */
#opconsole{background:radial-gradient(900px 520px at 86% -12%,rgba(46,114,210,.05),transparent 60%),var(--soft)}
#opconsole::before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(11,18,32,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(11,18,32,.015) 1px,transparent 1px);background-size:42px 42px;pointer-events:none;z-index:0}
.optop,.opstats,.opwork,#opconsole>div{position:relative;z-index:1}
.ostat{background:#fff}
.ostat .ov{color:var(--ink)}
.oqitem.on{background:#EEF3FB}
.opreview{background:#fff;box-shadow:var(--shadow)}
.rv-sup{color:var(--ink)}
@media(max-width:760px){.setgrid{grid-template-columns:1fr}.rtbl .rcol-hide{display:none}.rtbl{grid-template-columns:1.2fr 1.3fr 1fr auto}}

/* ===== operator review workspace ===== */
.opbody{background:var(--soft);margin:0}
#opconsole{min-height:100vh;color:var(--ink);padding:0 0 30px}
.optop{display:flex;align-items:center;justify-content:space-between;padding:14px 26px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.optop .ttl{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;color:var(--ink)}
.optop .ttl .vbrand{width:21px;height:25px}
.optop .right{display:flex;align-items:center;gap:12px}
#opconsole .planpill{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 11px;border-radius:20px}
#opconsole .btn-ghost{background:#fff;border-color:var(--line);color:var(--ink-soft)}
#opconsole .btn-ghost:hover{background:var(--soft);color:var(--ink)}
#opconsole .btn-primary{background:var(--navy);border:none}
.opstats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:22px 26px 6px}
.ostat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px 17px;box-shadow:var(--shadow-sm)}
.ostat .ol{font-size:11px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.ostat .ov{font-size:26px;font-weight:700;color:var(--ink);margin-top:4px}
.opwork{display:grid;grid-template-columns:330px 1fr;gap:16px;padding:16px 26px 0;align-items:start}
.opqueue{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;position:sticky;top:78px;box-shadow:var(--shadow-sm)}
.oqhead{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);font-weight:600;font-size:14px;color:var(--ink)}
.oqcount{font-size:11.5px;color:var(--mute);font-weight:500}
.oqfilter{display:flex;gap:3px;padding:10px 12px;border-bottom:1px solid var(--line)}
.oqfilter button{flex:1;background:none;border:none;font:inherit;font-size:11.5px;font-weight:600;color:var(--mute);padding:6px 8px;border-radius:7px;cursor:pointer;transition:.15s}
.oqfilter button.on{background:#EEF3FB;color:var(--accent)}
.oqgroup{border-bottom:1px solid var(--line)}.oqgroup:last-child{border-bottom:none}
.oqg-h{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);padding:12px 16px 6px}
.oqg-h span{color:var(--mute);margin-left:4px}
.oqitem{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;border-left:2px solid transparent;padding:10px 16px;cursor:pointer;text-align:left;transition:background .12s}
.oqitem:hover{background:var(--soft)}
.oqitem.on{background:#EEF3FB;border-left-color:var(--accent)}
.oq-dot{width:8px;height:8px;border-radius:50%;flex:none}
.oq-dot.r{background:var(--red)}.oq-dot.a{background:var(--amber)}.oq-dot.g{background:var(--green)}
.oq-body{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.3}
.oq-body b{font-size:13px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oq-body i{font-size:11px;color:var(--mute);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#opconsole .stat-pill{font-size:9.5px;font-weight:700;padding:3px 7px;border-radius:20px;flex:none}
#opconsole .stat-pill.review{background:#EEF3FB;color:var(--accent)}#opconsole .stat-pill.qa{background:#FFF4DC;color:#8A6212}#opconsole .stat-pill.done{background:#E3F4EA;color:var(--green)}
.oqempty{padding:24px 16px;color:var(--mute);font-size:12.5px;text-align:center}
.opreview{background:#fff;border:1px solid var(--line);border-radius:14px;min-height:520px}
.oempty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:520px;color:var(--mute);gap:14px;text-align:center;font-size:13px}
.oempty svg{width:42px;height:42px;opacity:.45}
#oReview{padding:22px 24px}
.rv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.rv-sup{font-size:19px;font-weight:700;color:#fff;letter-spacing:-.01em}
.rv-meta{font-size:12.5px;color:var(--mute);margin-top:3px}.rv-meta .mono{font-family:ui-monospace,monospace}
.rv-score{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.rv-score .sc{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;font-weight:700}
.rv-pl{font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.rv-ps{font-size:14px;color:var(--ink);font-weight:600;margin-top:2px}
.rv-sub{margin-left:auto;font-size:11.5px;color:var(--mute)}
.rv-sec{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin:20px 0 11px;display:flex;align-items:center;gap:8px}
.rv-sec span{background:#EEF3FB;color:var(--accent);border-radius:20px;padding:1px 8px;font-size:10.5px}
.rv-sec em{font-style:normal;text-transform:none;letter-spacing:0;color:var(--mute);font-weight:500;font-size:11px}
.rv-docs{display:flex;flex-wrap:wrap;gap:8px}
.rv-doc{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 11px;font-size:12.5px;color:var(--ink-soft);cursor:pointer;transition:.15s}
.rv-doc:hover{background:var(--soft);border-color:#d3deef;color:var(--ink)}
.rv-signals{display:flex;flex-direction:column;gap:10px}
.rv-sig{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px 14px;transition:.15s}
.rv-sig.confirm{border-color:#cfe6df;background:#F1F9F4}
.rv-sig.dismiss{opacity:.5}
.rv-sevi{font-size:10px;font-weight:700;padding:3px 8px;border-radius:20px;flex:none;text-transform:uppercase;letter-spacing:.04em}
.rv-sevi.r{background:#FBE7E3;color:var(--red)}.rv-sevi.a{background:#FFF4DC;color:#8A6212}.rv-sevi.g{background:#E3F4EA;color:var(--green)}
.rv-sigb{flex:1;min-width:0}.rv-sigb b{font-size:13.5px;color:var(--ink)}.rv-sigb p{font-size:12.5px;color:var(--ink-soft);margin:3px 0 0;line-height:1.45}
.rv-sigact{display:flex;gap:6px;flex:none}
.rv-sigact button{font:inherit;font-size:11.5px;font-weight:600;border-radius:7px;padding:6px 11px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink-soft);transition:.15s}
.rv-conf:hover{background:#E3F4EA;border-color:#cfe6df;color:var(--green)}
.rv-dis:hover{background:#FBE7E3;border-color:#f3cfc9;color:var(--red)}
.rv-sig.confirm .rv-conf{background:#E3F4EA;border-color:#cfe6df;color:var(--green)}
.rv-sig.dismiss .rv-dis{background:#FBE7E3;border-color:#f3cfc9;color:var(--red)}
.rv-clean{background:#F1F9F4;border:1px solid #cfe6df;border-radius:11px;padding:13px 14px;font-size:13px;color:var(--green)}
.rv-ev{display:flex;flex-direction:column;gap:6px;font-family:ui-monospace,monospace;font-size:11.5px;color:var(--ink-soft);background:var(--soft);border:1px solid var(--line);border-radius:11px;padding:13px 14px;word-break:break-all}
.rv-note{width:100%;background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px;color:var(--ink);font:inherit;font-size:13px;min-height:70px;resize:vertical;box-sizing:border-box}
.rv-note:focus{outline:none;border-color:var(--accent)}
.rv-actions{display:flex;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.rv-audit{margin-left:auto;font-size:11px;color:var(--mute)}
.rv-deny{margin-top:14px;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px}
.rv-reasons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.rv-reason{font:inherit;font-size:12px;font-weight:600;border:1px solid var(--line);background:#fff;color:var(--ink-soft);border-radius:8px;padding:7px 12px;cursor:pointer;transition:.15s}
.rv-reason:hover{background:var(--soft);color:var(--ink)}
.rv-reason.on{background:#EEF3FB;border-color:var(--accent);color:var(--accent)}
.rv-denyact{display:flex;gap:9px;margin-top:12px}
@media(max-width:900px){.opwork{grid-template-columns:1fr}.opqueue{position:static}.opstats{grid-template-columns:1fr 1fr}}

/* ============================================================
   ELITE PASS, intelligence-grade dashboard (empty states, sidebar, framing)
   ============================================================ */
/* Premium empty states, a real headline + subtext + action, not a bare sentence */
.emptybox{padding:56px 28px 52px;display:flex;flex-direction:column;align-items:center}
.emptybox .eb-ic{width:58px;height:58px;border-radius:16px;background:linear-gradient(155deg,#eef4fc,#eaf3f0);border:1px solid var(--line);color:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);margin:0 0 18px}
.emptybox .eb-ic svg{width:25px;height:25px}
.emptybox .eb-h{font-size:16.5px;font-weight:700;color:var(--ink);letter-spacing:-.015em;margin:0 0 6px}
.emptybox .eb-p{font-size:13.5px;color:var(--ink-soft);max-width:400px;margin:0 auto;line-height:1.6}
.emptybox .eb-cta{margin-top:20px}
/* table empty rows ride the same treatment (no naked centered sentence) */
.empty{padding:48px 24px}
.empty .ei{width:54px;height:54px;border-radius:15px;background:linear-gradient(155deg,#eef4fc,#eaf3f0);border:1px solid var(--line);margin-bottom:14px}

/* Command-center sidebar, calmer + more deliberate */
.aside{padding:18px 14px}
.wsswitch{background:#fff;box-shadow:var(--shadow-sm)}
.wsswitch:hover{border-color:#cdddf2;box-shadow:var(--shadow)}
.aside a{font-size:14px}
.aside a.on{background:#EEF3FB;color:var(--accent);font-weight:600;box-shadow:inset 0 0 0 1px rgba(46,114,210,.16)}
.aside a.on::before{display:none}
.aside a svg{opacity:.82}
.asidestat{display:flex;align-items:center;gap:9px;margin:8px 2px 6px;padding:10px 12px;border-radius:11px;background:var(--soft);border:1px solid var(--line);font-size:11.5px;color:var(--ink-soft)}
.asidestat .dot{width:7px;height:7px;border-radius:50%;background:#1F8A55;flex:none;box-shadow:0 0 0 3px rgba(31,138,85,.16)}
.asidestat b{color:var(--ink);font-weight:600}

/* Page heads read like a product surface, not a form label */
.pagehead h2{font-size:26px;letter-spacing:-.03em}
.ph-sub{max-width:640px}
/* Card headers: tighter, more refined */
.panel-card .ph{font-size:13.5px;font-weight:700;letter-spacing:-.01em}

/* Lots: the system-of-record surface. Summary stat cards + a 5-column ledger. */
.lotsum{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:680px){.lotsum{grid-template-columns:repeat(2,1fr)}}
.lotstat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 16px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.lotstat .ln{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
.lotstat .ll{font-size:11.5px;color:var(--mute);margin-top:5px;font-weight:500}
.lotstat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line)}
.lotstat.ok::before{background:var(--green)}.lotstat.ok .ln{color:var(--green)}
.lotstat.mon::before{background:var(--accent)}
.lotstat.bad::before{background:var(--red)}.lotstat.bad .ln{color:var(--red)}
/* calm empty state: a stat tile reading 0 / $0 mutes instead of stark black */
.lotstat.is-zero .ln,.tile.is-zero .tv,.kpi.is-zero .kv{color:var(--mute);opacity:.5}
.lotstat.is-zero::before{background:var(--line)}
/* elevate inner-page stat tiles to the serious dashboard standard (subtle accent + lift, no vibe tilt) */
.tile{position:relative;overflow:hidden;transition:border-color .18s,box-shadow .18s,transform .18s}
.tile::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#2E72D2,#0E6B62);opacity:0;transition:opacity .2s}
.tile:hover{border-color:#d3deef;box-shadow:var(--shadow);transform:translateY(-2px)}
.tile:hover::after{opacity:1}
.lotstat{transition:border-color .18s,box-shadow .18s,transform .18s}
.lotstat:hover{border-color:#d3deef;box-shadow:var(--shadow);transform:translateY(-2px)}
.epways h4{letter-spacing:-.01em}
/* evidence-passport mode toggle: per-customer (batch) vs supplier-level (free) */
.epmodes{display:flex;gap:7px;margin:12px 0 2px}
.epmode{flex:1;font:inherit;font-size:12.5px;font-weight:600;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink-soft);cursor:pointer;transition:.15s}
.epmode:hover{border-color:#cdd9ec}
.epmode.on{background:#0c1a2c;color:#fff;border-color:#0c1a2c}
.lothead,.lotrow{grid-template-columns:1.3fr 1.1fr 1fr .9fr auto}
.lotrow .lotgate{font-size:11.5px;color:var(--mute);background:var(--soft);border:1px solid var(--line);border-radius:7px;padding:4px 9px;white-space:nowrap}
@media(max-width:760px){.lothead,.lotrow{grid-template-columns:1.3fr 1fr .9fr auto}}
.supfhead,.supfrow{grid-template-columns:1.7fr .5fr .7fr 1.3fr 1fr}
.supfrow .pp{padding:2px 8px;font-size:10.5px}
@media(max-width:760px){.supfhead,.supfrow{grid-template-columns:1.6fr .5fr 1.3fr}}

/* ============================================================
   COMMAND CENTER, dark navy sidebar + top bar, light content canvas
   You step into an intelligence console, not a form.
   ============================================================ */
.appshell{grid-template-columns:248px 1fr}
.aside{background:linear-gradient(184deg,#0B1A2D 0%,#07111F 100%);border-right:1px solid rgba(255,255,255,.07);color:rgba(255,255,255,.66);box-shadow:1px 0 0 rgba(0,0,0,.2)}
/* workspace switcher */
.aside .wsswitch{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);box-shadow:none}
.aside .wsswitch:hover{background:rgba(255,255,255,.085);border-color:rgba(255,255,255,.16);box-shadow:none}
.aside .wsmeta b{color:#fff}
.aside .wsmeta i{color:rgba(255,255,255,.42)}
.aside .wschev{color:rgba(255,255,255,.4)}
/* section labels */
.aside .navlabel{color:rgba(255,255,255,.34);font-size:10px;letter-spacing:.11em}
/* nav items */
.aside a{color:rgba(255,255,255,.64);font-weight:500}
.aside a:hover{background:rgba(255,255,255,.06);color:#fff}
.aside a.on{background:rgba(46,114,210,.17);color:#cfe0f8;font-weight:600;box-shadow:inset 0 0 0 1px rgba(96,153,224,.32)}
.aside a.on::before{display:none}
.aside a svg{opacity:.78}
.aside a.on svg{opacity:1}
.aside a .lock{opacity:.4}
/* live status footer */
.aside .asidestat{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.62)}
.aside .asidestat b{color:#fff}
.aside .asidestat .dot{box-shadow:0 0 0 3px rgba(31,138,85,.22)}
/* upgrade card reads like a premium prompt on dark */
.aside .upcard{background:linear-gradient(158deg,#15407c,#0e2d57);border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 30px -18px rgba(0,0,0,.7)}
.aside .upcard b{color:#fff}
.aside .upcard p{color:rgba(255,255,255,.72)}
/* account row */
.aside .acctrow{border-top:1px solid rgba(255,255,255,.08)}
.aside .acctav2{background:rgba(96,153,224,.22);color:#bcd4f4}
.aside .acctinfo b{color:#fff}
.aside .acctinfo i{color:rgba(255,255,255,.42)}
.aside .acctsign{color:rgba(255,255,255,.45)}
.aside .acctsign:hover{background:rgba(255,255,255,.08);color:#fff}

/* top command bar */
.atop{background:#0A1726;border-bottom:1px solid rgba(255,255,255,.07);box-shadow:0 1px 0 rgba(0,0,0,.25)}
.atop .ttl{color:#fff;letter-spacing:-.01em}
.atop .quota{color:rgba(255,255,255,.6)}
.atop .quota b{color:#fff}
.atop .planpill.free{background:rgba(255,255,255,.1);color:rgba(255,255,255,.78)}
.atop .planpill.paid{background:rgba(31,138,85,.22);color:#7fd6a6}
.atop .acct{background:rgba(96,153,224,.2);color:#bcd4f4}
.atop .right .btn-ghost{color:rgba(255,255,255,.82);border-color:rgba(255,255,255,.16);background:transparent}
.atop .right .btn-ghost:hover{background:rgba(255,255,255,.09);color:#fff;border-color:rgba(255,255,255,.26)}
.mobile-nav{display:none}
/* keep the content canvas light + bright under the dark frame */
.amain::before{height:380px;background:radial-gradient(680px 360px at 86% -32%,rgba(46,114,210,.09),transparent 62%)}

@media(max-width:880px){
  .appshell{grid-template-columns:1fr}
  .aside{display:none}
  .amain{width:100%;min-width:0}
  .atop{padding:12px 18px}
  .mobile-nav{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:10px 18px;background:#0A1726;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08);scrollbar-width:none}
  .mobile-nav::-webkit-scrollbar{display:none}
  .mobile-nav a{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 11px;border-radius:10px;color:rgba(255,255,255,.68);font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer;border:1px solid transparent}
  .mobile-nav a.on{color:#d9e7fa;background:rgba(46,114,210,.18);border-color:rgba(96,153,224,.32)}
  .mobile-nav a .lock{width:12px;height:12px;opacity:.55}
  .acontent{padding:24px 18px 38px;max-width:none}
}
@media(max-width:560px){
  .atop{gap:10px;align-items:center}
  .atop .ttl{font-size:13px;line-height:1.25}
  .atop .right{gap:8px;min-width:0}
  .quota,.atop .right .btn-ghost{display:none}
  .planpill{font-size:9.5px;padding:3px 8px}
  .acct{width:29px;height:29px;font-size:12px}
  .pagehead h2{font-size:24px}
  .ph-sub{font-size:13px}
  .panel-card .ph{padding:13px 14px}
  .rg-form{padding:14px 14px 0}
  .rg-checks{padding:12px 14px;gap:8px}
  .rg-checks label{width:100%;align-items:flex-start}
  .rg-source-tools{flex-direction:column;align-items:stretch;margin-top:0}
  .rg-source-tools .btn{width:100%;justify-content:center}
  .rg-card > .btn{margin:0 14px 14px;width:calc(100% - 28px)}
  .rg-boundary{margin:0 14px 16px}
  .rg-decision{padding:14px}
  .rg-row{grid-template-columns:1.35fr .9fr .45fr;gap:10px;padding:12px 14px}
  .rg-row .rcol-hide{display:none}
}

/* ClearGate mode toggle (supplier documentation | substance eligibility) */
.cgmodes{display:inline-flex;gap:4px;background:var(--wash,#f4f6f8);border:1px solid var(--line);border-radius:11px;padding:4px;margin-bottom:18px}
.cgmode-btn{appearance:none;border:0;background:transparent;color:var(--ink-soft);font:inherit;font-size:13px;font-weight:600;padding:8px 15px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.cgmode-btn:hover{color:var(--ink)}
.cgmode-btn.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.08),0 0 0 1px var(--line)}

/* ===== craft pass: app details (2026-07, cascading only) ===== */
.rtbl{font-variant-numeric:tabular-nums}
.aside a{transition:background .15s,color .15s}
/* empty states: intentional, not blank */
.empty{border:1.5px dashed #d5deec;border-radius:14px;margin:14px 18px 18px;padding:34px 24px;background:linear-gradient(180deg,#fbfdff,var(--soft))}
.empty .ei{box-shadow:var(--shadow-sm)}

/* ===== engineering tone: app (2026-07) - stillness + density ===== */
.kpi,.tile,.panel-card,.checktool,#opconsole .tile{border-radius:10px}
.kpi:hover,.tile:hover,#opconsole .tile:hover{transform:none;box-shadow:var(--shadow-sm);border-color:#b7c7e0}
.tile,.qitem,.pw-opt{transform:none!important}
.aside .upcard{border-radius:10px}
.locked-view{border-radius:12px}
.pw-card{border-radius:14px}
/* sidebar: engineered active state, left rail indicator */
.aside a{position:relative}
.aside a.on::after{content:"";position:absolute;left:-14px;top:7px;bottom:7px;width:2.5px;border-radius:0 2px 2px 0;background:var(--accent)}

/* ============================================================
   Infrastructure pass (2026-07): Inter + Open Props elevation,
   real charts (ApexCharts), refined KPI cards. Browser only;
   PDFs stay on viz.js.
   ============================================================ */
@font-face{
  font-family:"InterVar";
  src:url("assets/fonts/inter-variable.woff2") format("woff2");
  font-weight:100 900;font-display:swap;font-style:normal;
}
:root{
  --ff-ui:"InterVar","IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --num:"InterVar",ui-sans-serif,system-ui;
  --shadow-card:0 1px 2px rgba(16,32,64,.05),0 1px 3px rgba(16,32,64,.04);
  --shadow-lift:0 6px 16px -6px rgba(16,32,64,.18),0 2px 6px rgba(16,32,64,.06);
  --r-card:16px;
}
body,.aside,.atop,.acontent,.kpi,.chartcard,.btn,input,select,textarea{font-family:var(--ff-ui)}
.kv,.pbillgrid .bv,.hc-mini .v,.gscore,.cc-tot b,.acct{font-family:var(--num);font-feature-settings:"tnum" 1,"cv01" 1,"ss01" 1;letter-spacing:-.02em}

/* KPI cards: Stripe/Linear grade, bigger number, sparkline slot, delta chip */
.kpis{gap:14px;margin-bottom:18px}
.kpi{border-radius:var(--r-card);padding:15px 16px 13px;box-shadow:var(--shadow-card);border-color:#e7ecf3}
.kpi:hover{border-color:#d6e0ee;box-shadow:var(--shadow-lift);transform:translateY(-2px)}
.kpi .kl{font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#7a8698}
.kpi .kv{font-size:30px;font-weight:700;line-height:1.05;margin-top:7px;color:#0b1b33}
.kpi .kv.a{color:#b0791c}.kpi .kv.r{color:#c0392b}.kpi .kv.b{color:var(--accent)}
.kpi .ks{font-size:11.5px;color:#8a94a8;margin-top:7px}
.kpi .kspark2{height:34px;margin:8px -4px -2px}
.kpi .kspark2 .apexcharts-canvas{margin-left:-2px}
.kdelta{display:inline-flex;align-items:center;gap:2px;font-weight:700;font-size:11px;padding:1px 6px;border-radius:20px}
.kdelta.up{color:#0d8a5f;background:#e7f6ee}.kdelta.dn{color:#c0392b;background:#fdecea}.kdelta.flat{color:#7a8698;background:#eef1f6}

/* Activity area chart card (the signature Stripe move) */
.chartcard{background:#fff;border:1px solid #e7ecf3;border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:18px 20px 8px;margin:0 0 18px}
.chartcard .cc-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:6px}
.chartcard .cc-t{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:700;color:#0b1b33}
.chartcard .cc-t i,.chartcard .cc-t svg{width:16px;height:16px;color:var(--accent)}
.chartcard .cc-sub{font-size:12px;color:#8a94a8;margin-top:3px}
.chartcard .cc-tot{text-align:right;line-height:1.1}
.chartcard .cc-tot b{font-size:24px;font-weight:700;color:#0b1b33}
.chartcard .cc-tot small{display:block;font-size:11px;color:#8a94a8;margin-top:2px}
.chartcard .cc-chart{min-height:150px}
.apexcharts-tooltip{border:1px solid #e7ecf3!important;box-shadow:var(--shadow-lift)!important;font-family:var(--ff-ui)!important}
.apexcharts-tooltip-title{background:#f7f9fc!important;border-bottom:1px solid #eef1f6!important;font-weight:700!important}

/* ============================================================
   CONCEPT RESKIN (2026-07): frosted-white sidebar + blue→teal
   gradient wordmark + mint accents + rounded soft cards.
   Appended last so it overrides the earlier navy command-center.
   Browser look only; all functionality unchanged.
   ============================================================ */
:root{--cg:linear-gradient(100deg,#2E72D2,#0E6B62);--cgs:linear-gradient(100deg,rgba(46,114,210,.10),rgba(14,107,98,.10));
  --cmint:#e4f6f1;--cmintink:#0c9484;--cline:#e7ecf4;--cink:#0b1b33;--cink2:#41506a;--cmute:#7f8ba0;
  --cgreen:#0d8a5f;--cgreenb:#e7f6ee;--camber:#c98a1c;--camberb:#fdf3e2;--cred:#c0392b;--credb:#fdecea;--cblue:#2E72D2;--cblueb:#eaf1fe;
  --csh:0 1px 2px rgba(16,32,64,.05),0 10px 28px -14px rgba(16,32,64,.12);--csh2:0 2px 6px rgba(16,32,64,.06),0 18px 40px -18px rgba(16,32,64,.22)}

/* ambient canvas behind the whole app */
.appshell{background:radial-gradient(1200px 520px at 12% -12%,rgba(46,114,210,.09),transparent 55%),radial-gradient(1000px 520px at 100% 0%,rgba(14,155,138,.09),transparent 55%),#eaf0fb}
.amain{background:transparent}
.amain::before{display:none}

/* ---- Sidebar: frosted white ---- */
.aside{background:rgba(255,255,255,.72)!important;backdrop-filter:blur(14px);border-right:1px solid var(--cline)!important;color:var(--cink2)!important;box-shadow:none!important}
.aside .wsswitch{background:transparent!important;border:none!important;box-shadow:none!important;padding:6px 8px 2px}
.aside .wsmark{width:30px;height:30px;border-radius:9px;background:var(--cg);position:relative;overflow:hidden;box-shadow:0 6px 14px -4px rgba(46,114,210,.5)}
.aside .wsmark svg,.aside .wsmark img{display:none}
.aside .wsmark::after{content:"V";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:800;font-size:15px}
/* White label: a partner's own mark replaces the "V" tile. The two rules above hide any injected img
   and paint a literal V via ::after, so this override must both reveal the img and remove the
   pseudo-element, or the partner logo silently loses to our monogram. */
.aside .wsmark.wl{background:#fff;box-shadow:0 6px 14px -6px rgba(10,20,40,.25)}
.aside .wsmark.wl::after{content:none}
.aside .wsmark.wl svg{display:none}
.aside .wsmark.wl img{display:block;width:30px;height:30px;object-fit:cover;border-radius:9px}
.aside .wsmeta b{color:var(--cink)!important}
.aside .wsmeta i{color:var(--cmute)!important}
.aside .wschev{color:#b7c1d2!important}
.aside .navlabel{color:var(--cmute)!important;font-weight:700}
.aside a{color:var(--cink2)!important;font-weight:500;border-radius:11px}
.aside a:hover{background:#f2f6fc!important;color:var(--cink)!important}
.aside a.on{background:var(--cgs)!important;color:var(--cblue)!important;font-weight:650;box-shadow:none!important}
.aside a.on::before{display:block!important;content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--cg)}
.aside a svg{opacity:.85}.aside a.on svg{opacity:1}
.aside .asidestat{background:#f2f6fc!important;border:1px solid var(--cline)!important;color:var(--cink2)!important}
.aside .asidestat b{color:var(--cink)!important}
.aside .upcard{background:linear-gradient(158deg,#eef4ff,#e6f6f1)!important;border:1px solid var(--cline)!important;box-shadow:none!important}
.aside .upcard b{color:var(--cink)!important}.aside .upcard p{color:var(--cink2)!important}
.aside .acctrow{border-top:1px solid var(--cline)!important}
.aside .acctav2{background:var(--cg)!important;color:#fff!important}
.aside .acctinfo b{color:var(--cink)!important}.aside .acctinfo i{color:var(--cmute)!important}
.aside .acctsign{color:var(--cmute)!important}.aside .acctsign:hover{background:#f2f6fc!important;color:var(--cblue)!important}

/* ---- Top bar: light frosted ---- */
.atop{background:rgba(246,248,251,.82)!important;backdrop-filter:saturate(1.3) blur(8px);border-bottom:1px solid var(--cline)!important;box-shadow:none!important}
.atop .ttl{color:var(--cink)!important;font-weight:750}
.atop .quota{color:var(--cmute)!important}.atop .quota b{color:var(--cink)!important}
.atop .planpill.free{background:#eef1f6!important;color:var(--cink2)!important}
.atop .planpill.paid{background:var(--cgreenb)!important;color:var(--cgreen)!important}
.atop .acct{background:var(--cg)!important;color:#fff!important}
.atop .right .btn-ghost{color:var(--cink2)!important;border-color:var(--cline)!important;background:#fff!important}
.atop .right .btn-ghost:hover{background:#f2f6fc!important;color:var(--cblue)!important;border-color:var(--cblue)!important}
@media(max-width:880px){.mobile-nav{background:rgba(255,255,255,.9)!important;border-color:var(--cline)!important}
  .mobile-nav a{color:var(--cink2)!important}.mobile-nav a.on{background:var(--cgs)!important;color:var(--cblue)!important}}

/* ---- Cards: rounded + soft ---- */
.panel-card,.railcard,.checktool{border-radius:18px!important;box-shadow:var(--csh)!important;border:1px solid var(--cline)!important}
.tile{border-radius:16px!important;box-shadow:var(--csh)!important;border:1px solid var(--cline)!important}
.kpi{border-radius:16px!important}
.pagehead h2{letter-spacing:-.02em}

/* ---- Buttons: gradient primary ---- */
.btn-primary{background:var(--cg)!important;border:none!important;box-shadow:0 6px 14px -6px rgba(46,114,210,.5)!important}
.btn-primary:hover{filter:brightness(1.05)}
.btn-ghost{border-radius:10px}

/* ---- Inputs ---- */
input:not([type=checkbox]):not([type=radio]),select,textarea,.inp{border-radius:10px}
input:focus,select:focus,textarea:focus{border-color:var(--cblue)!important;box-shadow:0 0 0 3px rgba(46,114,210,.12)!important}

/* ---- Soft status pills everywhere ---- */
.pp{border-radius:20px!important;font-weight:750}
.pp.ok{background:var(--cgreenb)!important;color:var(--cgreen)!important}
.pp.warn{background:var(--camberb)!important;color:var(--camber)!important}
.pp.bad{background:var(--credb)!important;color:var(--cred)!important}
.stat-pill{border-radius:20px!important}
.stat-pill.done{background:var(--cgreenb)!important;color:var(--cgreen)!important}
.stat-pill.qa,.stat-pill.review{background:var(--camberb)!important;color:var(--camber)!important}

/* ---- Checker drop zone glow-up ---- */
.checktool .cc-head{align-items:flex-start}
.dropzone,.cc-drop,[data-drop]{border-radius:14px}

/* KPI mint icon tiles + roomier grid (concept parity) */
.kpis{grid-template-columns:repeat(auto-fit,minmax(156px,1fr))!important;gap:13px!important}
.kpis.kpis-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important}
.kpi{padding:18px 18px 16px!important;display:flex;flex-direction:column}
.kpi .ki{width:38px;height:38px;border-radius:11px;background:var(--cmint);display:grid;place-items:center;margin-bottom:13px}
.kpi .ki svg{width:19px;height:19px;stroke:var(--cmintink)}
.kpi .kv{font-size:29px!important}
/* evidence map: calmer canvas */
#evGraph .vz-node text{font-size:10px}
#evGraph svg{max-width:100%}

/* Concept verification banner + declutter dashboard to match the concept exactly */
.abanner{background:#fff;border:1px solid var(--cline);border-radius:18px;box-shadow:var(--csh);display:flex;align-items:center;gap:18px;padding:18px 22px;margin:0 0 20px}
.abanner .abic{width:52px;height:52px;border-radius:14px;background:var(--cmint);display:grid;place-items:center;flex:none}
.abanner .abic svg{width:26px;height:26px;stroke:var(--cmintink)}
.abanner .abt{font-size:16.5px;font-weight:750;color:var(--cink);letter-spacing:-.01em}
.abanner .abs{font-size:12.5px;color:var(--cmute);margin-top:3px}
.abanner .abst{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.abanner .abchip{background:var(--cgreenb);color:var(--cgreen);font-size:13px;font-weight:750;padding:7px 16px;border-radius:22px}
.abanner .abnote{font-size:10.5px;color:var(--cmute)}
/* the concept has no posture gauge or scrolling ticker on the dashboard */
.herocard{display:none!important}
.tickerbar{display:none!important}

/* Concept parity round 2: KPI cards carry NO sparkline (concept = icon + number + delta only) */
.kpi .kspark2{display:none!important}
/* Make primary actions read as real gradient buttons everywhere (board-ready, audit binder, etc.) */
.btn.btn-primary{display:inline-flex!important;align-items:center;justify-content:center;color:#fff!important;background:var(--cg)!important;border:none!important;border-radius:11px!important;padding:10px 18px!important;font-weight:700!important;box-shadow:0 6px 14px -6px rgba(46,114,210,.5)!important;text-decoration:none}
.btn.btn-primary:hover{filter:brightness(1.05)}
.btn.btn-ghost{border-radius:10px!important;border:1px solid var(--cline)!important;color:var(--cink2)!important;background:#fff!important;font-weight:650}
/* section headings in cards get a touch more presence (board-ready / audit binder / formulary titles) */
.panel-card .ph{font-size:15px;font-weight:750;color:var(--cink);letter-spacing:-.01em}

/* Concept side-by-side: donut + its companion card in a 2-column row */
.pairgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px;align-items:start}
.pairgrid>.chartcard,.pairgrid>.panel-card{margin:0!important;min-width:0}
@media(max-width:1000px){.pairgrid{grid-template-columns:1fr}}
/* Lots: posture donut stays compact on the left, the ledger gets the room it needs */
.pairgrid.donutledger{grid-template-columns:300px minmax(0,1fr)}
@media(max-width:1000px){.pairgrid.donutledger{grid-template-columns:1fr}}

/* Decision log (ClearGate): clean carded table matching the concept, not headerless rows */
.cglogsum{display:flex;align-items:center;gap:16px;padding:2px 2px 12px;font-size:12px;font-weight:700}
.cglogsum .cgc.ok{color:#0e8a5f}.cglogsum .cgc.rev{color:#b07d18}.cglogsum .cgc.hold{color:#c0392b}
.cglogsum .cgchain{margin-left:auto;font-weight:750}
.cglogsum .cgchain.ok{color:#0e8a5f}.cglogsum .cgchain.bad{color:#c0392b}
/* fixed fractional columns so the header row and every data row line up exactly (auto columns sized per-row and drifted) */
.cglogrow{grid-template-columns:1.7fr 1fr 1.2fr 1.1fr 86px}
.cglogrow>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.cglogrow>span:last-child{justify-self:end;overflow:visible}
@media(max-width:760px){.cglogrow{grid-template-columns:1.5fr 1fr 1.1fr 86px}.cglogrow>span:nth-child(4){display:none}}

/* ClearGate / Eligibility policy panels: carry the concept look (brand-accent controls, rounded inputs, clean rows) */
#cgPolicy input[type=checkbox],#elPolicy input[type=checkbox]{width:17px;height:17px;accent-color:#2E72D2;flex:none;cursor:pointer}
#cgPolicy select,#cgPolicy input[type=number],#cgPolicy input[type=text],#elPolicy select,#elPolicy input[type=number],#elPolicy input[type=text]{border:1px solid var(--cline,#e7ecf4)!important;border-radius:10px!important;padding:9px 12px!important;background:#fff}
#cgPolicy select:focus,#cgPolicy input:focus,#elPolicy select:focus,#elPolicy input:focus{outline:none;border-color:#2E72D2!important;box-shadow:0 0 0 3px rgba(46,114,210,.12)}
#cgPolicy label[data-cgtoggle],#cgPolicy > label,#elPolicy > label{padding:11px 2px!important}
#cgPolicy label:hover,#elPolicy label:hover{background:#fafcff}
#cgPolicy label span span:first-child,#elPolicy label span span:first-child{font-size:13px!important}

/* Concept "feature card": a mint icon tile + title + description + action, so a feature card reads as
   designed even before data fills it (fixes the "plain words in an empty box" look). Same treatment for
   the paid and the locked/upsell variants, so a free user's cards look just as finished. */
/* NOTE: no !important on display -- the plan-gating toggles these cards with inline display:none, and an
   !important here would override that and show hidden/locked variants. Plain flex still beats panel-card. */
.featcard{display:flex;gap:15px;align-items:flex-start;padding:18px 20px!important}
.featcard .fc-ic{width:44px;height:44px;border-radius:12px;background:#e4f6f1;display:grid;place-items:center;flex:none;margin-top:1px}
.featcard .fc-ic svg{width:22px;height:22px;stroke:#0c9484;stroke-width:1.7;fill:none}
.featcard.locked .fc-ic{background:#eef1f6}.featcard.locked .fc-ic svg{stroke:#7891ad}
.featcard .fc-main{flex:1;min-width:0}
.featcard .fc-title{font-size:15px;font-weight:750;color:var(--cink,#0b1b33);letter-spacing:-.01em;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.featcard .fc-tag{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;background:#eef3fb;color:#2E72D2}
.featcard .fc-tag.mute{background:#eef1f6;color:#7891ad}
.featcard .fc-desc{font-size:13px;color:var(--ink-soft);margin:6px 0 0;line-height:1.5;max-width:680px}
.featcard .fc-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.featcard .fc-action{margin-top:13px;display:inline-flex}
@media(max-width:640px){.featcard{flex-direction:column}}

/* Dashboard signal row: supply base + recent checks + operational signals. dashboard-3 card shapes,
   Veritura light palette. List-with-avatar+status, table-with-badges+footer, activity-feed-with-icons. */
.dsig{display:grid;grid-template-columns:1fr 1.7fr 1.1fr;gap:16px;margin:0 0 20px}
@media(max-width:1080px){.dsig{grid-template-columns:1fr 1fr}.dsig .dsig-mid{grid-column:1/-1}}
@media(max-width:720px){.dsig{grid-template-columns:1fr}.dsig .dsig-mid{grid-column:auto}}
.dsig-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden}
.dsig-h{padding:16px 18px 12px}
.dsig-h b{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.01em;display:block}
.dsig-h span{font-size:12px;color:var(--mute);display:block;margin-top:2px}
.dsig-body{flex:1}
.dsig-empty{padding:14px 18px;color:var(--mute);font-size:12.5px}
.dsig-row{display:flex;align-items:center;gap:11px;padding:11px 18px;border-top:1px solid #f0f3f8}
.dsig-av{width:34px;height:34px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;letter-spacing:.02em}
.dsig-nm{flex:1;min-width:0}
.dsig-nm b{font-size:13.5px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.dsig-nm i{font-size:11.5px;color:var(--mute);font-style:normal;display:flex;align-items:center;gap:6px;margin-top:1px}
.dsig-dot{width:7px;height:7px;border-radius:50%;flex:none}
.dsig-cnt{font-size:11.5px;font-weight:700;color:var(--ink-soft);flex:none}
.dsig-foot{padding:13px 18px;text-align:center;border-top:1px solid #f0f3f8}
.dsig-foot a{font-size:12.5px;font-weight:600;color:var(--accent);cursor:pointer;text-decoration:none}
.dsig-foot a:hover{text-decoration:underline}
.dsig-tbl{width:100%;border-collapse:collapse;table-layout:fixed}
.dsig-tbl th{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);text-align:left;padding:9px 18px;border-top:1px solid #f0f3f8}
.dsig-tbl td{font-size:12.5px;color:var(--ink-soft);padding:10px 18px;border-top:1px solid #f0f3f8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsig-tbl td:first-child{font-weight:600;color:var(--ink)}
.dsig-pill{font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:20px;white-space:nowrap}
.dsig-pill.ok{background:#e4f6f1;color:#0c9484}.dsig-pill.a{background:#fdf6e8;color:#b07d18}.dsig-pill.r{background:#fdecea;color:#c0392b}
.dsig-fi{width:32px;height:32px;border-radius:9px;background:var(--cmint,#e4f6f1);display:grid;place-items:center;flex:none}
.dsig-fi svg{width:16px;height:16px;stroke:var(--cmintink,#0c9484);fill:none;stroke-width:1.8}
.dsig-fi.r{background:#fdecea}.dsig-fi.r svg{stroke:#c0392b}
.dsig-fi.a{background:#fdf6e8}.dsig-fi.a svg{stroke:#b07d18}
.dsig-ft{flex:1;min-width:0}
.dsig-ft b{font-size:12.5px;color:var(--ink);font-weight:600;line-height:1.35;display:block;white-space:normal}
.dsig-ft i{font-size:11px;color:var(--mute);font-style:normal}

/* ===== Stripe-style dashboard home: metrics band + live graph + recommendations rail ===== */
.dash2{display:grid;grid-template-columns:1fr 336px;gap:18px;align-items:start}
@media(max-width:1080px){.dash2{grid-template-columns:1fr}}
.dash2-main{min-width:0;display:flex;flex-direction:column;gap:18px}
.dash2-rail{display:flex;flex-direction:column;gap:16px;position:sticky;top:12px}
@media(max-width:1080px){.dash2-rail{position:static}}
/* metrics band ("Today") */
.mband{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;box-shadow:0 1px 2px rgba(11,18,32,.04)}
.mband-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:2px}
.mband-metrics{display:flex;gap:34px;flex-wrap:wrap}
.mb-metric .mb-l{font-size:12.5px;color:var(--mute);font-weight:600;display:flex;align-items:center;gap:6px}
.mb-metric .mb-v{font-size:30px;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1.15;margin-top:2px}
.mb-metric .mb-v.zero{color:#9aa5b8}
.mb-delta{font-size:11px;font-weight:700;padding:1px 7px;border-radius:20px;margin-left:2px;vertical-align:3px}
.mb-delta.up{background:#e4f6f1;color:#0c9484}.mb-delta.down{background:#fdecea;color:#c0392b}.mb-delta.flat{background:#eef2f8;color:#7891ad}
.mb-ctl{display:flex;align-items:center;gap:12px}
.mb-live{font-size:11px;font-weight:700;color:#0c9484;display:inline-flex;align-items:center;gap:6px}
.mb-live i{width:7px;height:7px;border-radius:50%;background:#12b886;box-shadow:0 0 0 0 rgba(18,184,134,.5);animation:mbpulse 1.8s infinite}
@keyframes mbpulse{0%{box-shadow:0 0 0 0 rgba(18,184,134,.45)}70%{box-shadow:0 0 0 7px rgba(18,184,134,0)}100%{box-shadow:0 0 0 0 rgba(18,184,134,0)}}
.mb-sel{font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:6px 10px;background:#fff;cursor:pointer}
.mgraph{margin:4px -6px 0;min-height:210px}
.mband-foot{display:flex;gap:26px;flex-wrap:wrap;border-top:1px solid #f0f3f8;margin-top:12px;padding-top:13px}
.mbf{display:flex;flex-direction:column}
.mbf b{font-size:16px;font-weight:800;color:var(--ink)}
.mbf b.a{color:#b07d18}.mbf b.r{color:#c0392b}.mbf b.g{color:#0c9484}
.mbf i{font-size:11.5px;color:var(--mute);font-style:normal;font-weight:600}
/* recommendations rail (Stripe pattern) */
.recscard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 0 4px;box-shadow:0 1px 2px rgba(11,18,32,.04)}
.recs-h{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 11px;gap:8px}
.recs-h b{font-size:14px;font-weight:800;color:var(--ink)}
.recs-h span{font-size:11.5px;color:var(--mute)}
.rec{display:block;padding:12px 18px;border-top:1px solid #f0f3f8;text-decoration:none;cursor:pointer}
.rec:hover{background:#f9fbfe}
.rec-t{font-size:13px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px}
.rec-ic{width:26px;height:26px;border-radius:8px;background:#e4f6f1;display:grid;place-items:center;flex:none}
.rec-ic svg{width:15px;height:15px;stroke:#0c9484;fill:none;stroke-width:1.8}
.rec-ic.a{background:#fdf6e8}.rec-ic.a svg{stroke:#b07d18}
.rec-ic.r{background:#fdecea}.rec-ic.r svg{stroke:#c0392b}
.rec-ic.b{background:#eaf1fd}.rec-ic.b svg{stroke:#2E72D2}
.rec-d{font-size:12px;color:var(--ink-soft);margin:4px 0 0 34px;line-height:1.45}
.rec-go{font-size:12px;font-weight:700;color:var(--accent,#2E72D2);margin:6px 0 0 34px;display:inline-block}
/* inline substance screen (eligibility front door) */
.sscreen{padding:14px 18px 16px;border-top:1px solid #f0f3f8}
.sscreen-lead{font-size:12px;color:var(--ink-soft);margin:5px 0 0 34px;line-height:1.45}
.sscreen-row{display:flex;gap:8px;margin:11px 0 0}
.sscreen input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:13px;background:#fff}
.sscreen-res{margin-top:10px;font-size:12.5px}
/* compounding intelligence briefing */
.intelcard{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(11,18,32,.04);overflow:hidden}
.intel-h{display:flex;align-items:center;justify-content:space-between;padding:15px 20px 12px;gap:10px}
.intel-h b{font-size:14.5px;font-weight:800;color:var(--ink)}
.intel-h .intel-sub{font-size:11.5px;color:var(--mute);font-weight:500}
.intel-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #f0f3f8}
@media(max-width:820px){.intel-grid{grid-template-columns:repeat(2,1fr)}}
.intel-cell{padding:15px 18px;border-right:1px solid #f0f3f8;border-top:1px solid #f0f3f8}
.intel-cell:nth-child(-n+4){border-top:none}
.intel-cell .ic-v{font-size:23px;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1.1}
.intel-cell .ic-v small{font-size:12px;font-weight:700;color:var(--mute)}
.intel-cell .ic-l{font-size:11.5px;color:var(--mute);font-weight:600;margin-top:3px}
.intel-cell .ic-s{font-size:11px;color:var(--ink-soft);margin-top:6px;line-height:1.4}
.intel-foot{padding:11px 20px;border-top:1px solid #f0f3f8;font-size:11px;color:var(--mute)}

/* ===== Receiving log: sortable data table (light) ===== */
.rgtbl-wrap{overflow-x:auto;margin-top:6px}
.rgtbl{width:100%;border-collapse:collapse}
.rgtbl th{text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:#fbfcfe}
.rgtbl th.sortable{cursor:pointer;user-select:none}
.rgtbl th.sortable:hover{color:var(--ink)}
.rgtbl th .sar{font-size:9px;margin-left:3px;color:#c3ccda}
.rgtbl th.sorted{color:var(--ink)}.rgtbl th.sorted .sar{color:var(--accent,#2E72D2)}
.rgtbl td{padding:11px 12px;border-bottom:1px solid #f0f3f8;font-size:13px;color:var(--ink-soft);vertical-align:middle}
.rgtbl tbody tr:hover{background:#f9fbfe}
.rgtbl tbody tr.sel{background:#eff5ff}
.rgtbl .rg-lotid{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:var(--mute);white-space:nowrap}
.rgtbl .rg-sup{font-weight:700;color:var(--ink)}
.rgtbl .rg-prod{color:var(--ink-soft)}
.rgtbl .rg-score{font-weight:800;color:var(--ink)}
.rgtbl .rg-micro .pp{margin-right:4px}
.rgtbl .rg-actions{text-align:right;position:relative}

/* ---- Structural rhythm kit: every panel-card body sits on the same inset ----
   panel-card itself has no body padding (only .ph is padded), so raw <p>/<div>
   children were rendering wall-to-wall. Tables (.rgtbl/.rtbl) and .rg-form stay
   full-bleed on purpose; everything else gets the standard 18px inset. */
.panel-card>p{padding-left:18px;padding-right:18px}
.pbx{padding-left:18px;padding-right:18px}
.pbody{padding:4px 18px 16px}
.pbody:empty,.pbx:empty{padding:0}
@media(max-width:820px){.panel-card>p{padding-left:14px;padding-right:14px}.pbx{padding-left:14px;padding-right:14px}.pbody{padding:4px 14px 14px}}
/* Checkbox row INSIDE a form grid: row layout on the input baseline, normal-case label
   (without this, .rg-check fell into the column-direction field style: box above text). */
.rg-form .rg-check{flex-direction:row;align-items:center;gap:9px;background:var(--soft,#f6f8fb);border:1px solid var(--line);border-radius:9px;padding:10px 12px;cursor:pointer;align-self:end}
.rg-form .rg-check input{width:15px;height:15px;accent-color:var(--accent,#2E72D2);margin:0;flex:none}
.rg-form .rg-check span{font-size:12.5px;font-weight:600;color:var(--ink-soft);text-transform:none;letter-spacing:0}
/* Policy setting rows (ClearGate + eligibility): label + help + checkbox, one bordered row each */
.polrow{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid #f3f5f9;cursor:pointer}
.polrow:last-of-type{border-bottom:none}
.polrow input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent,#2E72D2);margin-top:2px;flex:none}
.polrow b{display:block;font-size:12.5px;color:var(--ink);font-weight:600}
.polrow i{display:block;font-style:normal;font-size:11.5px;color:var(--mute);margin-top:1px}
.polrow.islocked{cursor:default}
.polrow.islocked b,.polrow.islocked i{color:var(--mute)}
/* Compact row-action links inside a table cell */
/* Row actions as quiet pills in a fixed 2x2 grid: four actions read as a compact block instead of
   a tall stack when the ACTIONS column is narrow. Each pill keeps its bounded, hoverable shape. */
.rowacts{display:grid;grid-template-columns:repeat(2,minmax(88px,max-content));gap:5px;align-items:center}
.rowacts a{font-size:11px;color:var(--ink-soft,#41506A);cursor:pointer;white-space:nowrap;font-weight:650;text-decoration:none;border:1px solid var(--line,#e4e9f1);border-radius:7px;padding:3px 9px;background:#fff;transition:border-color .12s,color .12s,background .12s}
.rowacts a:hover{text-decoration:none;color:var(--accent,#2E72D2);border-color:var(--accent-2,#9db9e6);background:#f7faff}
/* Sub-signal line under a table's primary cell (recall / file warnings) */
.rg-sub{font-size:11px;font-weight:600;margin-top:2px}
@media(max-width:760px){.rgtbl .rcol-hide{display:none}}
.rg-actbtn{background:none;border:1px solid transparent;border-radius:7px;padding:2px 9px;cursor:pointer;color:var(--mute);font-size:16px;line-height:1;letter-spacing:1px}
.rg-actbtn:hover{background:#eef2f8;color:var(--ink)}
.rg-actmenu{position:absolute;right:8px;top:34px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 32px -12px rgba(11,18,32,.26);padding:5px;z-index:30;min-width:190px}
.rg-actmenu button{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:7px;font:inherit;font-size:12.5px;color:var(--ink);cursor:pointer}
.rg-actmenu button:hover{background:#f4f7fb}
.rg-checkbox{width:15px;height:15px;cursor:pointer;accent-color:var(--accent,#2E72D2);vertical-align:middle}
.rg-bulkbar{display:none;align-items:center;gap:12px;padding:9px 13px;background:#eff5ff;border:1px solid #cfe0fb;border-radius:10px;margin:12px 0 2px;font-size:12.5px;color:var(--ink);font-weight:600}
.rg-bulkbar.on{display:flex}
.rg-bulkbar .grow{flex:1}

/* ===== Dashboard analytics cockpit: funnel + decision donut + activity heatmap ===== */
.cockpit{display:grid;grid-template-columns:1.25fr 1fr;gap:18px}
@media(max-width:900px){.cockpit{grid-template-columns:1fr}}
/* Hero pair gets room to breathe: with the secondary panels tabbed away, the funnel and the
   decision donut are the always-visible visuals, so pad them up and let the bars/donut grow. */
.cockpit .ck-h{padding:18px 24px 2px}
.cockpit .ckbody{padding:16px 24px 22px}
.cockpit .fnl{gap:14px}
.cockpit .fnl-bar{height:32px}
.cockpit .donutwrap{min-height:300px}
.ckcard{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(11,18,32,.04)}
.ck-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:15px 20px 2px}
.ck-h b{font-size:14px;font-weight:800;color:var(--ink)}
.ck-h span{font-size:11.5px;color:var(--mute)}
.ckbody{padding:12px 20px 18px}
.hmcard .ckbody{overflow-x:auto}
/* diligence funnel */
.fnl{display:flex;flex-direction:column;gap:11px;margin-top:4px}
.fnl-row{display:grid;grid-template-columns:132px 1fr auto;align-items:center;gap:12px}
.fnl-l{font-size:12.5px;color:var(--ink-soft);font-weight:600}
.fnl-bar{height:26px;border-radius:7px;background:#eef2f8;overflow:hidden}
.fnl-fill{height:100%;border-radius:7px;background:linear-gradient(90deg,#2E72D2,#0c9484);min-width:3px;transition:width .7s cubic-bezier(.4,0,.2,1)}
.fnl-v{font-size:14px;font-weight:800;color:var(--ink);min-width:70px;text-align:right;font-variant-numeric:tabular-nums}
.fnl-v i{font-size:11px;font-weight:600;color:var(--mute);font-style:normal;margin-left:6px}
.donutwrap{min-height:210px}
/* activity heatmap (contribution grid) */
.heat-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);gap:3px;width:max-content}
.heat-c{width:13px;height:13px;border-radius:3px;background:#eef2f8}
.heat-c.l1{background:#cfe3fb}.heat-c.l2{background:#93c1f4}.heat-c.l3{background:#4b8fe6}.heat-c.l4{background:#2E72D2}
.heat-leg{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--mute);margin-top:11px}
.heat-leg .heat-c{width:11px;height:11px}

/* ===== Dashboard secondary-panel tabs: Intelligence / Activity / Suppliers / Checks / Signals =====
   One full-width console; one pane visible at a time so the heatmap and the tables get the whole row.
   The panes host the SAME rendered cards as before; the console supplies the card chrome, so the
   nested intelcard/dsig-card shells render flat (no double border). */
.dashtabs{overflow:hidden}
.dashtabs-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid #f0f3f8}
.dashtabs .segctl{flex-wrap:wrap}
.dtb{display:none;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#fdecea;color:#c0392b;font-size:10px;font-weight:800;line-height:16px;place-items:center;margin-left:6px;vertical-align:1px}
.dashtabs-pane{display:none}
.dashtabs-pane.on{display:block;animation:dtfade .16s ease}
@keyframes dtfade{from{opacity:0}to{opacity:1}}
.dashtabs-empty{padding:16px 20px;color:var(--mute);font-size:12.5px}
.dashtabs-pane .intelcard,.dashtabs-pane .dsig-card{border:none;box-shadow:none;border-radius:0;background:transparent}
.dashtabs-pane .dsig{display:block;margin:0}
.dashtabs-pane .ck-h{padding:15px 20px 2px}
/* full-width room: heatmap cells grow now that the grid owns the whole row */
.dashtabs .heat-c{width:15px;height:15px}
.dashtabs .heat-leg .heat-c{width:11px;height:11px}
@media(max-width:900px){.dashtabs .heat-c{width:12px;height:12px}}

/* Team on duty, demoted: a slim one-line row (panel-slim pattern) that expands to the full seat list */
.teamslim{padding:0}
.teamslim-row{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;font:inherit;padding:11px 16px;cursor:pointer;text-align:left;border-radius:16px}
.teamslim-row:hover{background:#f9fbfe}
.teamslim-row b{font-size:13px;font-weight:700;color:var(--ink);flex:none;white-space:nowrap}
.teamslim-avs{display:flex;flex:1;min-width:0;justify-content:flex-end}
.teamslim-avs .dsig-av{width:24px;height:24px;font-size:10.5px;border:2px solid #fff;margin-left:-7px}
.teamslim-avs .dsig-av:first-child{margin-left:0}
.teamslim-count{font-size:11.5px;color:var(--mute);flex:none;white-space:nowrap}
.teamslim-chev{width:14px;height:14px;stroke:var(--mute);fill:none;stroke-width:2;flex:none;transition:transform .15s}
.teamslim.open .teamslim-chev{transform:rotate(180deg)}
.teamslim.open .teamslim-row{border-radius:16px 16px 0 0}
.teamslim-body{border-top:1px solid #f0f3f8;padding:2px 16px 8px}

/* Empty-state hygiene: never float a column-header row above an empty box. */
.panel-card:has(.emptybox) .rthead,
.panel-card:has(.emptybox) .shead,
.panel-card:has(.emptybox) .supfhead{display:none}

/* Global: dial the whole workspace back, it was reading too large */
.amain{zoom:.88}

/* ---- W4-C: Cmd+K command palette ---- */
#cmdk{position:fixed;inset:0;z-index:400;display:none}
#cmdk.on{display:block}
#cmdk .cmdk-back{position:absolute;inset:0;background:rgba(11,18,32,.42);animation:ckfade .16s ease both}
#cmdk .cmdk-panel{position:relative;max-width:580px;margin:11vh auto 0;background:#fff;border:1px solid var(--line,#E4E9F1);border-radius:16px;box-shadow:0 24px 70px rgba(11,18,32,.28);overflow:hidden;animation:ckpop .18s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes ckfade{from{opacity:0}to{opacity:1}}
@keyframes ckpop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
#cmdkInput{width:100%;border:none;outline:none;font:inherit;font-size:15px;padding:16px 18px;border-bottom:1px solid #EEF1F6;color:var(--ink,#0f1b2d)}
#cmdkInput::placeholder{color:#9aa7ba}
#cmdkList{max-height:46vh;overflow:auto;padding:6px}
.cmdk-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;cursor:pointer;font-size:13.5px}
.cmdk-row .ck-ic{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:#f2f5f9;color:#5b708c;font-size:12px;flex:none}
.cmdk-row .ck-t{flex:1;color:var(--ink,#0f1b2d);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdk-row .ck-s{font-size:11px;color:#8a97ab;white-space:nowrap}
.cmdk-row:hover,.cmdk-row.act{background:#eef4f8}
.cmdk-row.act .ck-ic{background:#0E6B62;color:#fff}
.cmdk-none{padding:22px 16px;font-size:13px;color:#8a97ab;text-align:center}
.cmdk-foot{display:flex;gap:16px;padding:9px 16px;border-top:1px solid #EEF1F6;background:#fafcfd;font-size:11px;color:#8a97ab}
.cmdk-foot kbd,#cmdkHint kbd{font:600 10.5px ui-monospace,monospace;background:#eef1f6;border:1px solid #dde4ec;border-bottom-width:2px;border-radius:5px;padding:1px 5px;color:#5b708c}
#cmdkHint{margin-left:12px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line,#E4E9F1);background:#fff;border-radius:20px;padding:5px 12px;font:500 12px/1 inherit;color:#8a97ab;cursor:pointer;vertical-align:middle}
#cmdkHint:hover{border-color:#c9d4e0;color:#5b708c}

/* W4-G: evidence-map nodes are clickable (drill-in to forensic context) */
#evGraph .vz-node{cursor:pointer}

/* W5-1: hub sub-tab bar - feature cards, so each hub advertises everything it contains */
#hubbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:0 0 18px}
.hubtab{border:1px solid var(--line,#E4E9F1);background:#fff;border-radius:13px;padding:12px 15px;font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex;flex-direction:column;gap:3px}
.hubtab b{font-size:13.5px;font-weight:700;color:#0f1b2d;line-height:1.2}
.hubtab span{font-size:11.5px;color:#7891ad;line-height:1.4}
.hubtab.on{background:#0f1b2d;border-color:#0f1b2d;box-shadow:0 6px 18px rgba(11,18,32,.16)}
.hubtab.on b{color:#fff}
.hubtab.on span{color:#9fb0c8}
.hubtab:hover:not(.on){border-color:#c9d4e0;box-shadow:0 3px 10px rgba(11,18,32,.06);transform:translateY(-1px)}
@media (max-width:640px){.hubtab span{display:none}.hubtab{padding:10px 13px}}

/* ===== Console kit (2026-07-05): the anatomy every offer console shares. Labeled fields instead of
   placeholder-only boxes, a visible rail pipeline for what fires, ghost previews of the output in
   empty states, and a segmented control for modes. ===== */
.vform{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.vfield{display:flex;flex-direction:column;gap:5px;min-width:0}
.vfield>span{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--mute)}
.vfield>input,.vfield>select,.vfield>textarea{border:1px solid var(--line);border-radius:9px;padding:9px 12px;font:inherit;font-size:13.5px;background:#fff;color:var(--ink);width:100%;transition:border-color .12s,box-shadow .12s}
.vfield>input:focus,.vfield>select:focus,.vfield>textarea:focus{outline:none;border-color:#174EA6;box-shadow:0 0 0 3px rgba(23,78,166,.12)}
.vfield>input::placeholder,.vfield>textarea::placeholder{color:#a8b3c5}
.segctl{display:inline-flex;background:var(--soft,#f2f5fa);border:1px solid var(--line);border-radius:11px;padding:3px;gap:3px}
.segctl button{font:inherit;font-size:12.5px;font-weight:650;color:var(--ink-soft);background:none;border:none;border-radius:8px;padding:7px 15px;cursor:pointer;transition:background .12s,color .12s}
.segctl button.on{background:#fff;color:var(--navy,#0f1b2d);box-shadow:0 1px 3px rgba(7,17,31,.12)}
.railstrip{display:grid;grid-template-columns:repeat(4,1fr);margin:2px 0 16px}
.railnode{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;padding:10px 8px}
.railnode:not(:last-child)::after{content:"";position:absolute;top:27px;left:calc(50% + 24px);right:calc(-50% + 24px);height:2px;background:var(--line);border-radius:2px}
.railnode .rn-ic{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--soft,#f2f5fa);border:1.5px solid var(--line);color:var(--mute);position:relative;z-index:1;transition:background .15s,border-color .15s,color .15s}
.railnode .rn-ic svg{width:16px;height:16px}
.railnode b{font-size:11.5px;color:var(--ink);letter-spacing:-.01em}
.railnode i{font-style:normal;font-size:10.5px;color:var(--mute)}
.railnode.pass .rn-ic{background:#EDF7F1;border-color:#9fd4b6;color:#0E6B44}
.railnode.pass i{color:#0E6B44;font-weight:700}
.railnode.review .rn-ic{background:#FDF3E7;border-color:#e5c896;color:#9A5B13}
.railnode.review i{color:#9A5B13;font-weight:700}
.railnode.hold .rn-ic{background:#FCEDEE;border-color:#E5A8A1;color:#A03036}
.railnode.hold i{color:#A03036;font-weight:700}
.railnode.skip .rn-ic{opacity:.5}
.railnode.skip i{color:#a8b3c5}
.railnode.firing .rn-ic{border-color:#174EA6;color:#174EA6;animation:railpulse 1.1s ease-in-out infinite}
@keyframes railpulse{0%,100%{box-shadow:0 0 0 0 rgba(23,78,166,.28)}55%{box-shadow:0 0 0 7px rgba(23,78,166,0)}}
.ghost{border:1.5px dashed #d4dcea;border-radius:12px;padding:14px 16px;background:linear-gradient(180deg,#fbfcfe,#f7f9fc);position:relative}
.ghost .gtag{position:absolute;top:10px;right:12px;font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#97a3b6}
.ghost .gline{height:9px;border-radius:5px;background:#e6ebf4;margin:8px 0}
.policychip{font-size:11.5px;font-weight:600;color:var(--ink-soft);background:var(--soft,#f2f5fa);border:1px solid var(--line);border-radius:999px;padding:4px 12px;display:inline-flex;align-items:center;gap:6px}
.policychip .pdot{width:7px;height:7px;border-radius:50%;background:#0E8A5F}
@media(max-width:760px){.railstrip{grid-template-columns:repeat(2,1fr);row-gap:2px}.railnode:not(:last-child)::after{display:none}}
@media(max-width:860px){.och-split{grid-template-columns:1fr !important}}
@media(max-width:760px){.vform{grid-template-columns:1fr}}
.tile.is-zero{opacity:.55}
.tile.is-zero .tv{color:var(--mute) !important}
@media(max-width:760px){.supelgrid{grid-template-columns:1fr 1fr !important}}

/* ============================================================
   WOW SHELL v2 (2026-07-06): dark command sidebar + glass topbar
   + display pageheads + dashboard posture band.
   Appended last; overrides the frosted-white layer above.
   ============================================================ */
.aside{background:linear-gradient(178deg,#0C1828 0%,#0A1320 100%)!important;backdrop-filter:none;border-right:1px solid rgba(255,255,255,.06)!important;color:rgba(226,235,248,.66)!important}
.aside .wsswitch{padding:6px 8px 2px}
.aside .wsswitch:hover{background:rgba(255,255,255,.06)!important}
.aside .wsmeta b{color:#fff!important}
.aside .wsmeta i{color:rgba(226,235,248,.42)!important}
.aside .wschev{color:rgba(226,235,248,.35)!important}
.aside .navlabel{color:rgba(226,235,248,.32)!important}
.aside a{color:rgba(226,235,248,.66)!important;font-weight:500}
.aside a:hover{background:rgba(255,255,255,.055)!important;color:#fff!important}
.aside a.on{background:linear-gradient(100deg,rgba(46,114,210,.24),rgba(14,107,98,.18))!important;color:#e8f1fd!important;box-shadow:inset 0 0 0 1px rgba(96,153,224,.28)!important}
.aside a.on::before{background:linear-gradient(180deg,#5b9bf0,#3fbfaf)}
.aside a svg{opacity:.7}.aside a.on svg{opacity:1}
.aside .asidestat{background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.08)!important;color:rgba(226,235,248,.6)!important}
.aside .asidestat b{color:#fff!important}
.aside .asidestat .dot{box-shadow:0 0 0 3px rgba(84,209,143,.22)}
.aside .upcard{background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.09)!important}
.aside .upcard b{color:#fff!important}.aside .upcard p{color:rgba(226,235,248,.55)!important}
.aside .acctrow{border-top:1px solid rgba(255,255,255,.08)!important}
.aside .acctinfo b{color:#fff!important}.aside .acctinfo i{color:rgba(226,235,248,.42)!important}
.aside .acctsign{color:rgba(226,235,248,.45)!important}.aside .acctsign:hover{background:rgba(255,255,255,.07)!important;color:#fff!important}
@media(max-width:880px){.mobile-nav{background:#0B1626!important;border-color:rgba(255,255,255,.07)!important}
  .mobile-nav a{color:rgba(226,235,248,.62)!important}.mobile-nav a.on{background:rgba(46,114,210,.22)!important;color:#dbe9fb!important;border-color:rgba(96,153,224,.32)!important}}

/* topbar: search chip + live feed pulse */
.topsearch{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--cline);background:#fff;border-radius:11px;padding:8px 12px;font:inherit;font-size:12.5px;color:var(--cmute);cursor:pointer;min-width:260px;transition:border-color .15s,box-shadow .15s,color .15s}
.topsearch:hover{border-color:#cdddf2;box-shadow:var(--csh);color:var(--cink2)}
.topsearch svg{width:14px;height:14px;flex:none}
.topsearch kbd{margin-left:auto;font:600 10.5px ui-monospace,monospace;color:var(--cink2);background:#f2f6fc;border:1px solid var(--cline);border-radius:5px;padding:2px 6px}
.feedpulse{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;color:var(--cgreen);background:var(--cgreenb);border-radius:999px;padding:5px 12px;white-space:nowrap;cursor:default}
.feedpulse .fp-dot{width:7px;height:7px;border-radius:50%;background:var(--cgreen);animation:fppulse 2.2s ease-in-out infinite}
@keyframes fppulse{0%,100%{box-shadow:0 0 0 0 rgba(13,138,95,.35)}50%{box-shadow:0 0 0 5px rgba(13,138,95,0)}}
@media(max-width:1080px){.topsearch{min-width:0}.topsearch span{display:none}.feedpulse{display:none}}

/* display pageheads on every view */
.pagehead{margin-bottom:24px}
.pagehead h2{font-size:30px;font-weight:750;letter-spacing:-.035em;line-height:1.08}
.ph-sub{font-size:14px;max-width:660px}

/* dashboard posture band */
.pband{position:relative;overflow:hidden;background:linear-gradient(160deg,#0C1828,#123252);border-radius:20px;padding:24px 28px;margin-bottom:20px;color:#eaf1fb;border:1px solid rgba(255,255,255,.07);box-shadow:0 24px 54px -26px rgba(7,17,31,.55)}
.pband::before{content:"";position:absolute;inset:0;background:radial-gradient(560px 300px at 85% -20%,rgba(46,114,210,.34),transparent 60%),radial-gradient(420px 280px at 4% 120%,rgba(14,107,98,.22),transparent 60%)}
.pband::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(560px 360px at 80% 0%,#000,transparent 70%)}
.pband>*{position:relative;z-index:1}
.pband .pb-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7fb0ee;margin-bottom:6px}
.pband h3{margin:0 0 6px;font-size:23px;font-weight:750;letter-spacing:-.02em;color:#fff}
.pband .pb-line{font-size:13.5px;color:#b9c9de;max-width:640px;line-height:1.55;margin:0}
.pband .pb-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:16px}
.pband .pb-stat b{display:block;font-size:22px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.1}
.pband .pb-stat span{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#8ba3c2}
.pband .pb-sep{width:1px;height:30px;background:rgba(255,255,255,.12)}
.pband .pb-cta{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pband .policychip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:#cfe0f4}
@media(max-width:760px){.pband{padding:20px}.pband .pb-cta{margin-left:0}}

/* work queue: the dashboard tells you what to do next */
.wqcard{border-left:4px solid var(--accent-2)!important}
.wq-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #f0f3f8}
.wq-row:last-child{border-bottom:none}
.wq-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:none}
.wq-ic svg{width:18px;height:18px}
.wq-ic.r{background:#fdecea;color:#b23f36}
.wq-ic.a{background:#fbf3e4;color:#8a5a12}
.wq-ic.g{background:#e7f4ec;color:#0f6b48}
.wq-ic.b{background:#eaf1fb;color:var(--accent)}
.wq-t{flex:1;min-width:0}
.wq-t b{display:block;font-size:14px;color:var(--ink);letter-spacing:-.01em}
.wq-t span{display:block;font-size:12.5px;color:var(--ink-soft);margin-top:2px}
.wq-go{white-space:nowrap;font-size:12.5px;padding:8px 14px}
.wqclear{display:flex;align-items:center;gap:10px;background:#eef7f1;border:1px solid #cfe8d8;border-radius:14px;padding:12px 18px;margin-bottom:18px;font-size:13px;color:#41506A}
.wqclear svg{width:18px;height:18px;color:#0f6b48;flex:none}
.wqclear b{color:#0f6b48}
@media(max-width:680px){.wq-row{flex-wrap:wrap}.wq-go{margin-left:52px}}

/* pagehead capability chips: every page states what fires on it */
.phchips{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.phchip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:650;color:var(--ink-soft);background:#fff;border:1px solid var(--cline,#e7ecf4);border-radius:999px;padding:4px 11px;white-space:nowrap;box-shadow:0 1px 2px rgba(16,32,64,.04)}
.phchip .dotl{width:6px;height:6px;border-radius:50%;background:#0d8a5f;flex:none;animation:fppulse 2.2s ease-in-out infinite}
@media(max-width:680px){.phchips{gap:5px}.phchip{font-size:10.5px;padding:3px 9px}}

/* Merged hubs: one page, stacked zones instead of sub-tabs. Each section already opens with its own
   pagehead (title, job statement, capability chips), which IS the zone header, so merging only adds a
   divider above the later zones and steps their titles down one size for hierarchy. Sections keep
   their ids and internals untouched; only the grouping changes. */
section.merged-zone:not(.merged-first){border-top:1px solid var(--line);margin-top:30px;padding-top:26px}
section.merged-zone:not(.merged-first) .pagehead h2{font-size:21px}
section.merged-zone{animation:zonein .28s ease both}
@keyframes zonein{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

/* Cascade receipt nodes land one after the next, in the order the pipeline fired. */
.cascnode{animation:cascin .3s ease both}
@keyframes cascin{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* ===== The one table language (elite spec). Every record surface converges here: 10.5px uppercase
   muted headers, calm 44px rows, hairline dividers only (no zebra, no vertical rules), quiet hover,
   right-aligned numerics, monospace identifiers, one pill idiom. rgtbl (real tables) and rtbl
   (grid rows) share the spec; lrow is the canonical flex list row that replaces every ad-hoc
   inline-styled div list as renderers are converted. ===== */
.rgtbl th{font-size:10.5px;letter-spacing:.06em;background:transparent;padding:9px 12px;border-bottom:1px solid var(--line)}
.rgtbl td{padding:12px;font-size:12.5px;border-bottom:1px solid #eef1f6}
.rgtbl tbody tr{transition:background .12s}
.rgtbl tbody tr:last-child td{border-bottom:none}
.rgtbl .rg-score{font-variant-numeric:tabular-nums;text-align:right}
.rtbl{padding:12px 14px;font-size:12.5px;border-bottom:1px solid #eef1f6;gap:12px}
.rthead{background:transparent;font-size:10.5px;letter-spacing:.06em;border-bottom:1px solid var(--line)}
/* rtbl column layouts live in CSS, never inline, so every grid row obeys the same spec */
.rtbl.cols4{grid-template-columns:1.5fr 1fr 1fr auto}
.rtbl.cols4n{grid-template-columns:1.3fr 1fr .8fr .9fr}
.rtbl.colsak{grid-template-columns:auto 1.4fr 1.1fr auto}
.rtbl.colswh{grid-template-columns:1.6fr 1fr auto}
/* the canonical list row: main text + sub line left, actions right */
.lrow{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid #eef1f6;font-size:12.5px;transition:background .12s}
.lrow:last-child{border-bottom:none}
.lrow:hover{background:#fafcff}
.lrow .lmain{flex:1;min-width:0}
.lrow .lt{font-weight:650;font-size:13px;color:var(--ink);line-height:1.35}
.lrow .ls{font-size:11.5px;color:var(--mute);margin-top:1px;line-height:1.45}
.lrow .lact{display:flex;gap:8px;align-items:center;flex:none;flex-wrap:wrap;justify-content:flex-end}
.lmono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11.5px;color:var(--mute)}
.lred{color:var(--red);font-weight:600}
.lstat{font-size:12px;font-weight:600;color:var(--mute)}.lstat.ok{color:var(--green)}
.lrow.sm{padding:6px 0;font-size:12px}
/* the record card: one frame for every entity card (formulary substance, order request, qualification
   file, DSCSA record). Header = main (title, chips, source line) left + key figures and actions right;
   an optional drill-down body opens under a hairline. */
.rcard{border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin-bottom:9px;background:#fff}
.rcard-head{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;justify-content:space-between}
.rcard-main{flex:1;min-width:220px}
.rcard-title{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.rcard-cat{font-size:11px;color:var(--mute);margin-left:8px;font-weight:500}
.rcard-side{text-align:right;min-width:150px}
.rcard-kv{font-size:12px;color:var(--ink-soft)}.rcard-kv b{color:var(--ink)}
.rcard-sub{font-size:11.5px;color:var(--mute);margin-top:2px}
.rcard-acts{margin-top:7px;display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;align-items:center}
.rcard-acts a{font-weight:650;font-size:12px;color:var(--accent);cursor:pointer}
.rcard-acts a.danger{color:var(--red);font-weight:500;font-size:11.5px}
.rcard-drill{border-top:1px solid #eef1f6;margin-top:12px;padding-top:12px}
.rcard .srcline{font-size:11px;color:var(--mute);margin-top:4px}
/* ===== depth section: the folded card on a check result =====
   Every depth section on a check result is one of these. They used to be eight full rcards stacked in
   a single column, so a clean certificate cost the reader the same five screens of scroll as a flagged
   one. Now each states its verdict on its own head and opens itself only when it has something to say.
   The head is load-bearing: a collapsed section must read as "checked, nothing to report", never as
   "unread", which is why the chip lives up here and never inside the body. */
.dsec{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:9px}
.dsec-h{display:flex;align-items:center;gap:9px;padding:12px 15px;cursor:pointer;list-style:none;user-select:none;border-radius:12px}
.dsec-h::-webkit-details-marker{display:none}
.dsec-h:hover{background:#fbfcfe}
.dsec[open]>.dsec-h{border-bottom:1px solid #eef1f6;border-radius:12px 12px 0 0}
.dsec-t{flex:1;min-width:0;font-size:10.5px;font-weight:800;color:var(--mute);text-transform:uppercase;letter-spacing:.07em}
.dsec-e{font-weight:600;letter-spacing:0;text-transform:none;color:var(--mute)}
/* the disclosure caret, drawn rather than shipped as an asset, rotating on open */
.dsec-x{flex:none;width:7px;height:7px;border-right:1.6px solid var(--mute);border-bottom:1.6px solid var(--mute);transform:rotate(45deg);margin:-3px 3px 0 1px;transition:transform .15s ease}
.dsec[open]>.dsec-h>.dsec-x{transform:rotate(-135deg);margin-top:2px}
.dsec-b{padding:13px 15px 14px}
/* An open section is the one with something to say, so it gets the weight: a hairline lift off the
   page while the folded ones sit flat and quiet. */
.dsec[open]{box-shadow:0 1px 2px rgba(16,24,40,.04)}
@media (min-width:1100px){.dsec-h{padding:13px 18px}.dsec-b{padding:15px 18px 16px}}
/* one chip idiom everywhere: base = informational grey; ok/warn/hold recolor it */
.chip{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:650;margin:0 4px 3px 0;background:#eef2f8;color:var(--ink-soft)}
.chip.ok{background:#e7f4ec;color:var(--green)}
.chip.warn{background:#f8efdd;color:var(--amber)}
.chip.hold{background:#fdecec;color:var(--red)}
.pp.sm{font-size:10px;padding:1px 8px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.dcolh{font-size:10.5px;font-weight:800;color:var(--mute);text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px}
.boundnote{font-size:11.5px;color:var(--mute);line-height:1.5;border-top:1px solid #eef1f6;padding-top:8px;margin-top:6px}
/* passport card typography: the hero record reads like a certificate, not a paragraph soup */
.passcard .pid{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;letter-spacing:.02em;color:var(--mute)}
.passcard h4{font-size:15px;letter-spacing:-.01em;margin:6px 0 4px;color:var(--ink)}

/* Sidebar sub-navigation: a hub's pages unfold under its nav item. On desktop this REPLACES the
   top tab bar (hidden below); on mobile the tab bar stays, since there is no sidebar.
   Styled for the DARK command shell, and !important where needed because the shell's generic
   .aside a rules are !important: sub-items must read one register QUIETER than top-level items.
   Active = accent rail + a faint blue wash + white text; never the big gradient box. */
.aside .navsub{overflow:hidden;max-height:0;transition:max-height .2s ease;margin:0 0 3px}
.aside .navsub.open{max-height:220px}
.aside .navsub a{display:block;font-size:12.5px;font-weight:500;padding:6px 10px 6px 20px;margin:0 0 1px 21px;border-left:1px solid rgba(255,255,255,.10);border-radius:0 7px 7px 0;color:rgba(226,235,248,.55)!important}
.aside .navsub a:hover{color:#fff!important;background:rgba(255,255,255,.05)!important}
.aside .navsub a.on{color:#fff!important;font-weight:600;background:rgba(96,153,224,.13)!important;border-left-color:#5b9bf0;box-shadow:none!important}
.aside .navsub a.on::before{display:none}
.aside .navchev{margin-left:8px;display:inline-flex;align-items:center;color:rgba(226,235,248,.35);transition:transform .18s ease}
.aside a.expanded .navchev{transform:rotate(90deg);color:rgba(226,235,248,.75)}
/* One active element per group: while a hub is expanded, its child carries the active state and the
   parent goes quiet (white label + rotated chevron only), never the big gradient box. */
.aside a.expanded.on{background:transparent!important;box-shadow:none!important;color:#fff!important}
.aside a.expanded.on::before{display:none}
@media(min-width:761px){#hubbar{display:none!important}}
@media (prefers-reduced-motion: reduce){.aside .navsub,.aside .navchev{transition:none}}
/* Role-aware "More" group: destinations that are secondary for this facility type collapse here.
   Same design language as the nav groups above (muted small-caps label + chevron disclosure);
   the ORIGINAL nav elements are moved in, so items render identically inside. One click expands. */
.aside .navmore{margin-top:15px}
.aside .navmore-toggle{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;cursor:pointer;font:inherit;padding:0;margin:0 0 6px;text-align:left}
.aside .navmore-toggle .navlabel{margin:0;padding:0 0 0 11px}
.aside .navmore-toggle:hover .navlabel{color:rgba(226,235,248,.6)!important}
.aside .navmore-toggle .navchev{margin-left:0}
.aside .navmore.open .navmore-toggle .navchev{transform:rotate(90deg);color:rgba(226,235,248,.75)}
.aside .navmore-body{overflow:hidden;max-height:0;transition:max-height .2s ease}
.aside .navmore.open .navmore-body{max-height:480px}
@media (prefers-reduced-motion: reduce){.aside .navmore-body{transition:none}}

/* Slide-over drawer: intake forms live behind the page's primary action, so every page shows state
   (stats + records) in one screen and opens work on demand. Content is MOVED in, never cloned. */
.vdrawer-ov{position:fixed;inset:0;background:rgba(11,18,32,.42);z-index:1150;opacity:0;pointer-events:none;transition:opacity .18s ease}
.vdrawer-ov.on{opacity:1;pointer-events:auto}
.vdrawer{position:fixed;top:0;right:0;bottom:0;width:min(680px,96vw);background:var(--bg,#f6f8fb);box-shadow:-22px 0 60px rgba(11,18,32,.22);transform:translateX(103%);transition:transform .22s ease;z-index:1151;overflow:auto;padding:20px 22px 30px}
.vdrawer.on{transform:none}
.vdrawer-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;position:sticky;top:-20px;background:var(--bg,#f6f8fb);padding:6px 0 10px;z-index:2}
.vdrawer-head b{font-size:15.5px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
/* Inside the drawer the receiving workbench stacks single-column; the form reads top to bottom. */
.vdrawer .rg-workbench{display:grid;grid-template-columns:1fr;gap:16px}
.vdrawer .panel-card{margin:0}
@media (prefers-reduced-motion: reduce){.vdrawer,.vdrawer-ov{transition:none}}

/* Motion is information here, never decoration; anyone who asked for less motion gets none. */
@media (prefers-reduced-motion: reduce){
  .cascnode,section.merged-zone{animation:none!important}
}

/* ===== THE STANDARD (2026-07-09): the global rhythm layer. Last in the cascade on purpose.
   What separates a fintech-grade console from a novice one is not decoration, it is discipline:
   a readable measure, one spacing scale, one elevation, tabular numerals, and headers that
   whisper. Every rule here is global so every page inherits it at once. ===== */
/* 1. Readable measure: the content column narrows from 1340 to the console standard, and long
   explanatory lines cap at a readable width instead of running the full screen. */
.acontent{max-width:1180px;padding:30px 32px 56px}
.pagehead{margin-bottom:22px}
.pagehead .ph-sub{max-width:70ch;line-height:1.6}
.acontent p{max-width:76ch}
/* 2. One elevation: a hairline border and one soft shadow. Nothing else floats. */
.panel-card,.checktool,.rcard,.chartcard{box-shadow:0 1px 2px rgba(16,32,64,.05)}
/* 3. One spacing scale on the shared frames. */
.rcard{padding:15px 18px;margin-bottom:12px}
.panel-card{margin-bottom:20px}
.panel-card .ph{padding:15px 20px}
/* 4. Numbers are data: tabular numerals everywhere a figure can appear. */
.acontent{font-variant-numeric:tabular-nums}
/* 5. Headers whisper, data speaks: panel headers settle at one size and weight. */
.panel-card .ph{font-size:13.5px;font-weight:650;color:var(--ink)}

/* ===== The Veritura signature: the receipt strip. Every signed record carries its proof set like
   a ledger line: monospace id, authority, timestamp, on a faintly ruled strip. Proof should look
   like proof; no general-purpose dashboard has a native visual for evidence, and we do. ===== */
.receipt{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px;padding:8px 12px;border:1px dashed #d5deea;border-radius:9px;background:linear-gradient(180deg,#fbfcfe,#f7fafd);font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:var(--mute);letter-spacing:.01em}
.receipt b{color:var(--ink);font-weight:600}
.receipt .rc-dot{width:5px;height:5px;border-radius:50%;background:var(--green);flex:none;box-shadow:0 0 0 3px rgba(14,138,95,.12)}
/* The passport's id line adopts the receipt idiom immediately. */
.passhash{border-style:dashed;border-color:#d5deea;background:linear-gradient(180deg,#fbfcfe,#f7fafd);border-radius:9px;padding:8px 12px;letter-spacing:.01em}

/* Dashboard signal cards: truncation was reading as brokenness ("coa 1 (...", "Cl...", "2...").
   Text cells wrap instead of ellipsizing; pills and dates stay on one line at natural width. */
.dsig-tbl td{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word;line-height:1.45}
.dsig-tbl td:nth-child(3),.dsig-tbl td:nth-child(4){white-space:nowrap;word-break:normal}
.dsig-tbl th:nth-child(4),.dsig-tbl td:nth-child(4){width:92px}
.dsig-card{min-width:0}
.dsig-row{flex-wrap:wrap;row-gap:4px}
.dsig-nm{flex:1 1 130px;min-width:0}
.dsig-nm b{overflow-wrap:anywhere}

/* D4 hero band: one confident figure, everything else steps back. */
.heroband{margin:2px 0 22px}
.heroband .hb-n{font-size:44px;font-weight:750;letter-spacing:-.03em;color:var(--ink);line-height:1}
.heroband .hb-t{font-size:13px;font-weight:650;color:var(--ink-soft);margin-top:5px}
.heroband .hb-s{font-size:12px;color:var(--mute);margin-top:2px}

/* ============================================================
   ELITE ROUND 4 (2026-07-10): the precision layer.
   Border-beam card hover, bento hierarchy on the dashboard grid,
   tracing-beam lot timeline, hero-band dot grid. CSS-first, quiet,
   and fully off under prefers-reduced-motion where it animates.
   ============================================================ */
/* Border beam: a faint accent highlight that follows the cursor along the card border.
   ONE delegated mousemove listener in app.js sets --mx/--my on the hovered card; the
   padding-box/border-box mask keeps the glow on the 1.5px border ring only. */
.kpi,.ckcard,.panel-card,.mband,.recscard,.passcard{position:relative}
.kpi::before,.ckcard::before,.panel-card::before,.mband::before,.recscard::before,.passcard::after{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:3;
  background:radial-gradient(230px 230px at var(--mx,-999px) var(--my,-999px),rgba(46,114,210,.65),rgba(14,107,98,.28) 55%,transparent 78%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  opacity:0;transition:opacity .22s ease;
}
.kpi:hover::before,.ckcard:hover::before,.panel-card:hover::before,.mband:hover::before,.recscard:hover::before,.passcard:hover::after{opacity:.5}

/* Bento ranking: the diligence-funnel hero carries more visual weight; companion cards stay
   compact. Same DOM, same data; only grid weight, gap rhythm, and the hero radius change. */
.cockpit{grid-template-columns:1.25fr 1fr;gap:16px}
/* this later rule must not undo the small-screen collapse declared with the cockpit block above */
@media(max-width:900px){.cockpit{grid-template-columns:1fr}}
.cockpit .ckcard:first-child{border-radius:18px}
.dash2-main{gap:16px}

/* Dot-grid texture behind the dashboard hero band only: ink-colored dots at ~3% strength. */
.heroband{background-image:radial-gradient(rgba(15,27,45,.05) 1px,transparent 1.1px);background-size:17px 17px;border-radius:14px}

/* Tracing beam: when the lot drawer opens, the state-history connector draws itself in
   (scaleY 0 to 1, top origin) and rows fade-slide in with a small stagger, capped at 8. */
@media (prefers-reduced-motion: no-preference){
  .vdrawer.on .tl-line{transform:scaleY(0);transform-origin:top center;animation:tlDraw .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:.08s}
  .vdrawer.on .tl-item{opacity:0;animation:tlIn .38s cubic-bezier(.2,.7,.2,1) both}
  .vdrawer.on .tl-item:nth-child(1){animation-delay:.03s}
  .vdrawer.on .tl-item:nth-child(2){animation-delay:.09s}
  .vdrawer.on .tl-item:nth-child(3){animation-delay:.15s}
  .vdrawer.on .tl-item:nth-child(4){animation-delay:.21s}
  .vdrawer.on .tl-item:nth-child(5){animation-delay:.27s}
  .vdrawer.on .tl-item:nth-child(6){animation-delay:.33s}
  .vdrawer.on .tl-item:nth-child(7){animation-delay:.39s}
  .vdrawer.on .tl-item:nth-child(8){animation-delay:.45s}
  .vdrawer.on .tl-item:nth-child(n+9){animation-delay:.48s}
  @keyframes tlDraw{from{transform:scaleY(0)}to{transform:scaleY(1)}}
  @keyframes tlIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
}

/* ============================================================
   Passport ledger fit: a fixed column plan so the long VTR-PASS id truncates with an
   ellipsis instead of forcing a horizontal scroll at 1280px. Product and lot wrap freely;
   status/env/date/verify get set widths; the expanded record row inherits the same box.
   ============================================================ */
#passLedger .rgtbl{table-layout:fixed;width:100%}
#passLedger .rgtbl th:nth-child(1){width:19%}
#passLedger .rgtbl th:nth-child(2){width:16%}
#passLedger .rgtbl th:nth-child(4){width:112px}
#passLedger .rgtbl th:nth-child(5){width:84px}
#passLedger .rgtbl th:nth-child(6){width:92px}
#passLedger .rgtbl th:nth-child(7){width:72px}
#passLedger .rgtbl td{overflow-wrap:anywhere}
#passLedger .rgtbl td:nth-child(1){overflow:hidden;text-overflow:ellipsis}
#passLedger .rgtbl .rg-prod .rg-lotid{white-space:normal}
#passLedger .passcard{min-width:0}
#passLedger .passcard .pid{overflow-wrap:anywhere}
@media(max-width:900px){#passLedger .rgtbl th:nth-child(5),#passLedger .rgtbl td:nth-child(5){display:none}}

/* ============================================================
   Slim empty panels: a dashboard panel with no data collapses to one quiet line
   (title, its one-line teaching sentence, and the same arrow link) instead of a
   full-height card of empty space. app.js adds .panel-slim only when the dataset
   is empty; panels with data render exactly as before.
   ============================================================ */
.dsig .dsig-card.panel-slim{grid-column:1/-1;flex-direction:row;align-items:center;gap:12px;padding:10px 18px}
.dsig-card.panel-slim .dsig-h{padding:0;flex:none}
.dsig-card.panel-slim .dsig-h b{font-size:13px}
.dsig-card.panel-slim .dsig-h span{display:none}
.dsig-card.panel-slim .dsig-body{flex:1;min-width:0}
.dsig-card.panel-slim .dsig-empty{padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsig-card.panel-slim .dsig-foot{padding:0;border-top:none;flex:none;text-align:right}
.dsig-card.panel-slim .dsig-foot a{white-space:nowrap}
.ckcard.panel-slim{display:flex;align-items:center;gap:12px;padding:10px 20px}
.cockpit .ckcard.panel-slim{grid-column:1/-1}
.ckcard.panel-slim .ck-h{padding:0;flex:none}
.ckcard.panel-slim .ck-h span{display:none}
.ckcard.panel-slim .ckbody{flex:1;min-width:0;padding:0}
.ckcard.panel-slim .ckbody .ck-empty{color:var(--mute);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:720px){.dsig-card.panel-slim .dsig-empty,.ckcard.panel-slim .ckbody .ck-empty{white-space:normal}}

/* ===== Claim Substantiation (Brand tier), Slice 2: the Claims hub ===== */
/* Category chips reuse the shared chip.ok/.warn/.hold treatment; these add the register table,
   the reframe/refusal boxes, the substantiation timeline, and the auto-stamped scope line. */
.claimscope{font-size:11.5px;color:var(--mute);margin:14px 2px 4px;padding-top:10px;border-top:1px solid var(--line)}
.claimscope::before{content:"\1F6C8";margin-right:6px;opacity:.6}
/* Running summary of a check */
.ccsum{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.ccsum .ccstat{border:1px solid var(--line);border-radius:12px;background:#fff;padding:11px 16px;min-width:120px;box-shadow:var(--shadow-sm)}
.ccsum .ccstat .ccn{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1}
.ccsum .ccstat .ccl{font-size:11.5px;color:var(--mute);margin-top:3px}
.ccsum .ccstat.can .ccn{color:var(--green)}.ccsum .ccstat.warn .ccn{color:var(--amber)}.ccsum .ccstat.never .ccn{color:var(--red)}
/* The reframe suggestion (highlighted) and the never refusal boxes */
.reframebox{border:1px solid #d8e9df;background:#f3faf6;border-radius:10px;padding:11px 13px;margin-top:10px}
.reframebox .rfl{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--green);margin-bottom:4px}
.reframebox .rft{font-size:13px;color:var(--ink);line-height:1.5}
.refusebox{border:1px solid #f0d7d7;background:#fdf4f4;border-radius:10px;padding:11px 13px;margin-top:10px}
.refusebox .rfl{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--red);margin-bottom:4px}
.refusebox .rft{font-size:13px;color:var(--ink);line-height:1.5}
.refusebox .rfhard{font-size:12px;font-weight:650;color:var(--red);margin-top:7px}
.refusebox .rfalt{font-size:12px;color:var(--ink-soft);margin-top:7px;padding-top:7px;border-top:1px dashed #f0d7d7}
/* The register table (grid rows, clickable) */
.crtbl{display:grid;grid-template-columns:2.2fr .9fr 1fr .8fr .7fr;gap:14px;align-items:center;padding:13px 16px;border-bottom:1px solid #f0f3f8;font-size:13px;transition:background .15s}
.crtbl:last-child{border-bottom:none}
.crtbl.crhead{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:700;background:#fafbfd;cursor:default}
.crtbl.crrow{cursor:pointer}.crtbl.crrow:hover{background:#f7faff}
.crtbl .crtext{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crtbl .crmeta{font-size:11.5px;color:var(--mute)}
@media(max-width:760px){.crtbl{grid-template-columns:1.6fr .9fr 1fr;gap:10px}.crtbl .crhide{display:none}}
/* Status badges (draft/substantiated/needs_attention/retired) */
.stbadge{display:inline-block;border-radius:999px;padding:2px 9px;font-size:10.5px;font-weight:700;letter-spacing:.02em}
.stbadge.draft{background:#eef2f8;color:var(--ink-soft)}
.stbadge.substantiated{background:#e7f4ec;color:var(--green)}
.stbadge.needs_attention{background:#f8efdd;color:var(--amber)}
.stbadge.retired{background:#f1f0f2;color:#8a8f99}
/* Drawer: substantiation timeline + bindings */
.cltl{list-style:none;margin:6px 0 0;padding:0;position:relative}
.cltl li{position:relative;padding:0 0 12px 20px;font-size:12.5px;color:var(--ink)}
.cltl li::before{content:"";position:absolute;left:3px;top:3px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.cltl li::after{content:"";position:absolute;left:6.5px;top:11px;bottom:0;width:1px;background:#e3e8f0}
.cltl li:last-child::after{display:none}
.cltl .cltd{font-size:11px;color:var(--mute);margin-top:1px}
.clbind{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #f0f3f8;font-size:12.5px}
.clbind:last-child{border-bottom:none}
.clbind .livedot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--green)}
.clbind .livedot.off{background:#c9ccd3}
.clbind .clbl{flex:1;min-width:0;color:var(--ink)}
.clbind .clbty{font-size:11px;color:var(--mute)}

/* ===== Claim Substantiation v2: guided intake + compliance profile ===== */
/* Step 1 intake: grouped, compact question controls. */
.ccintake{display:flex;flex-direction:column;gap:15px}
.ccig{border-top:1px solid #eef1f6;padding-top:13px}
.ccig:first-child{border-top:none;padding-top:0}
.ccig-t{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mute);margin:0 0 9px}
.ccq{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:6px 0}
.ccq-l{flex:1;min-width:200px;font-size:13px;color:var(--ink-soft);line-height:1.45}
.ccq-chips{display:flex;gap:6px;flex-wrap:wrap}
.ccbtn{font:inherit;font-size:12px;font-weight:650;color:var(--ink-soft);background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 13px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}
.ccbtn:hover{border-color:#bcd0ea}
.ccbtn.on{background:var(--navy,#0f1b2d);border-color:var(--navy,#0f1b2d);color:#fff}
.ccbtn.on.no{background:#5a6880;border-color:#5a6880}
.ccq-full{display:block;padding:6px 0}
.ccq-full .ccq-l{min-width:0;margin-bottom:7px;display:block}
.ccq-input{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 11px;font:inherit;font-size:13px;box-sizing:border-box}

/* Summary strip */
.ccprofsum{margin:0 0 16px}
.ccps-strip{display:flex;gap:10px;flex-wrap:wrap}
.ccps-strip .ccpstat{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 15px;min-width:96px;box-shadow:var(--shadow-sm)}
.ccps-strip .ccpstat .n{font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1;color:var(--ink)}
.ccps-strip .ccpstat .l{font-size:11px;color:var(--mute);margin-top:3px;line-height:1.25}
.ccpstat.can .n{color:var(--green)}.ccpstat.warn .n{color:var(--amber)}.ccpstat.never .n{color:var(--red)}
.ccpstat.disc .n{color:#174ea6}.ccpstat.counsel .n{color:#6b4ea6}
.ccps-note{font-size:12px;color:var(--mute);line-height:1.55;margin:11px 2px 0;padding-top:9px;border-top:1px solid var(--line)}

/* Profile sections */
.ccpsec{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm);margin:0 0 16px;overflow:hidden}
.ccpsec .psh{padding:14px 18px;border-bottom:1px solid #eef1f6;background:#fafcff}
.ccpsec .psh h3{font-size:14.5px;margin:0;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.ccpsec .psh .pss{font-size:12px;color:var(--mute);margin-top:3px;display:block}
.ccpsec .psb{padding:14px 18px}
.ccpsec .psempty{font-size:13px;color:var(--mute);padding:4px 0}
.ccboundary{font-size:12.5px;color:#8a5a00;background:#fdf9f1;border:1px solid #f3e2c4;border-radius:9px;padding:9px 12px;margin:0 0 13px;line-height:1.5}

/* Rule-ref pills + who badges */
.rpill{display:inline-block;font-size:10px;font-weight:600;color:#41506a;background:#f2f4f8;border:1px solid #e2e7f0;border-radius:6px;padding:1px 7px;margin:2px 4px 0 0}
.whob{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.02em;border-radius:6px;padding:1px 7px;margin:2px 4px 0 0;background:#eef2f8;color:#41506a;border:1px solid #dfe5ee}
.whob.v{background:#0E6B62;color:#fff;border-color:#0E6B62}
.whob.counsel{background:#efe9f8;color:#6b4ea6;border-color:#ddd0f0}
.whob.eng{background:#eaf0fb;color:#174ea6;border-color:#bcd3f1}

/* Claim card evidence + action */
.ccpc-treat{font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin:7px 0 0;max-width:680px}
.ccpc-ev{font-size:12px;color:var(--mute);line-height:1.5;margin:8px 0 0}
.ccpc-ev b{color:var(--ink-soft);font-weight:600}

/* Disclosure items */
.ccdisc{border-top:1px solid #f0f3f8;padding:12px 0}
.ccdisc:first-child{border-top:none;padding-top:2px}
.ccdisc-el{font-size:13px;font-weight:700;color:var(--ink)}
.ccdisc-tx{font-size:12.5px;color:var(--ink-soft);line-height:1.55;margin:5px 0 0}
.ccdisc-meta{margin-top:6px}

/* Evidence map table */
.ccemap-wrap{overflow-x:auto}
.ccemap{width:100%;border-collapse:collapse;font-size:12.5px;min-width:560px}
.ccemap th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:700;padding:0 12px 8px;border-bottom:1px solid var(--line)}
.ccemap td{padding:11px 12px;border-bottom:1px solid #f0f3f8;vertical-align:top;color:var(--ink-soft);line-height:1.45}
.ccemap tr:last-child td{border-bottom:none}
.ccemap .em-claim{font-weight:600;color:var(--ink)}
.ccemap .em-yes{font-weight:700;color:var(--green)}
.ccemap .em-no{font-weight:600;color:var(--mute)}

/* Counsel routes */
.ccroute{border-top:1px solid #f0f3f8;padding:12px 0}
.ccroute:first-child{border-top:none;padding-top:2px}
.ccroute-it{font-size:13px;font-weight:700;color:var(--ink)}
.ccroute-why{font-size:12.5px;color:var(--ink-soft);line-height:1.55;margin:5px 0 0}

/* ============================================================
   MEDSTRA GRAMMAR PASS (2026-07-14): the Cuvo-reference skin.
   Light, airy console: white cards on a very light canvas, hairline
   borders, small muted mono-ish labels, restrained color. The sidebar
   returns to light/white (grouped sections, clean icons, account card
   at the bottom); every nav item, alias, and role behavior is untouched.
   Appended last on purpose so it wins the cascade over WOW SHELL v2.
   ============================================================ */
:root{--mzk:#0d1526;--mzk2:#46536b;--mzmute:#8a94a8;--mzline:#e8ebf1;--mzsoft:#f6f7fa;--mzgreen:#0d8a5f;--mzgreenb:#e9f6ef;--mzamber:#b07514;--mzamberb:#fdf4e3;--mzred:#c0392b;--mzredb:#fdecea;--mzblue:#2E72D2;--mzblueb:#ecf2fc}

/* ---- Canvas: quiet, very light, no ambient washes ---- */
.appshell{background:#f6f7fa!important}
.amain::before{display:none!important}

/* ---- Sidebar: light/white per the reference ---- */
.aside{background:#fff!important;backdrop-filter:none!important;border-right:1px solid var(--mzline)!important;color:var(--mzk2)!important;box-shadow:none!important}
.aside .wsswitch{background:transparent!important;border:none!important;box-shadow:none!important;padding:6px 8px 4px}
.aside .wsswitch:hover{background:var(--mzsoft)!important}
.aside .wsmeta b{color:var(--mzk)!important}
.aside .wsmeta i{color:var(--mzmute)!important}
.aside .wschev{color:#b9c1d0!important}
.aside .navlabel{color:var(--mzmute)!important;font-weight:700;font-size:9.5px;letter-spacing:.1em}
.aside a{color:var(--mzk2)!important;font-weight:500;border-radius:9px}
.aside a:hover{background:var(--mzsoft)!important;color:var(--mzk)!important}
.aside a.on{background:var(--mzblueb)!important;color:var(--mzblue)!important;font-weight:650;box-shadow:none!important}
.aside a.on::before{display:block!important;background:var(--mzblue)!important}
.aside a.on::after{background:var(--mzblue)!important}
.aside a svg{opacity:.75}.aside a.on svg{opacity:1}
.aside .asidestat{background:var(--mzsoft)!important;border:1px solid var(--mzline)!important;color:var(--mzk2)!important}
.aside .asidestat b{color:var(--mzk)!important}
.aside .asidestat .dot{box-shadow:0 0 0 3px rgba(13,138,95,.14)!important}
.aside .upcard{background:var(--mzsoft)!important;border:1px solid var(--mzline)!important;box-shadow:none!important;border-radius:12px!important}
.aside .upcard b{color:var(--mzk)!important}.aside .upcard p{color:var(--mzk2)!important}
.aside .acctrow{border-top:1px solid var(--mzline)!important;background:var(--mzsoft);border-radius:12px;padding:10px 10px 8px;margin-top:12px}
.aside .acctav2{background:var(--mzblue)!important;color:#fff!important}
.aside .acctinfo b{color:var(--mzk)!important}.aside .acctinfo i{color:var(--mzmute)!important}
.aside .acctsign{color:var(--mzmute)!important}.aside .acctsign:hover{background:#fff!important;color:var(--mzblue)!important}
/* Active pill: dark ink label on the light pill (the blue lives in the rail + icon), so the
   selected item can never wash out. */
.aside a.on{color:var(--mzk)!important}
.aside a.on svg{color:var(--mzblue)}
/* Sub-navigation (hub children) + expanded hub parents + the More group: these carried
   dark-shell near-white text with !important and were invisible on the light sidebar. */
.aside .navsub a{color:var(--mzk2)!important;border-left-color:var(--mzline)!important}
.aside .navsub a:hover{color:var(--mzk)!important;background:var(--mzsoft)!important}
.aside .navsub a.on{color:var(--mzk)!important;font-weight:650;background:var(--mzblueb)!important;border-left-color:var(--mzblue)!important}
.aside .navchev{color:#b9c1d0!important}
.aside a.expanded .navchev{color:var(--mzblue)!important}
.aside a.expanded.on{color:var(--mzk)!important;background:transparent!important}
.aside a.expanded.on svg{color:var(--mzblue)}
.aside .navmore-toggle:hover .navlabel{color:var(--mzk2)!important}
.aside .navmore.open .navmore-toggle .navchev{color:var(--mzblue)!important}
@media(max-width:880px){
  .mobile-nav{background:#fff!important;border-color:var(--mzline)!important}
  .mobile-nav a{color:var(--mzk2)!important}
  .mobile-nav a.on{background:var(--mzblueb)!important;color:var(--mzblue)!important;border-color:transparent!important}
}

/* ---- Top bar: title + status pill, centered search, period + primary action ---- */
.atop{background:rgba(255,255,255,.88)!important;backdrop-filter:blur(8px);border-bottom:1px solid var(--mzline)!important;box-shadow:none!important;gap:14px}
.atop-lead{display:flex;align-items:center;gap:11px;min-width:0}
.atop .topsearch{flex:0 1 440px;margin:0 auto}
.statuspill{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:650;border-radius:999px;padding:5px 12px;white-space:nowrap}
.statuspill .sp-dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:fppulse 2.2s ease-in-out infinite}
.statuspill.ok{background:var(--mzgreenb);color:var(--mzgreen)}
.statuspill.warn{background:var(--mzamberb);color:var(--mzamber)}
.statuspill.bad{background:var(--mzredb);color:var(--mzred)}
.periodctl{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--mzline);background:#fff;border-radius:10px;padding:7px 10px;color:var(--mzk2);cursor:pointer}
.periodctl svg{width:14px;height:14px;flex:none;color:var(--mzmute)}
.periodctl select{appearance:none;-webkit-appearance:none;border:none;background:transparent;font:inherit;font-size:12.5px;font-weight:600;color:var(--mzk2);cursor:pointer;padding-right:2px}
.periodctl select:focus{outline:none;box-shadow:none!important}
.btn.topnew{padding:8px 14px!important;font-size:13px;white-space:nowrap;border-radius:10px!important}
.atop-lead{flex:none}
.atop-lead .ttl{flex:none}
.atop .right{flex:none}
.statuspill{flex:none}
/* the FDA-feeds chip needs a wide desktop; below 1500px the status pill + period + action own the bar */
@media(max-width:1500px){.atop .feedpulse{display:none}}
@media(max-width:1080px){.statuspill .sp-txt{display:none}.statuspill{padding:5px 8px}}
@media(max-width:880px){.periodctl{display:none!important}.btn.topnew{display:none!important}}
@media(max-width:560px){.statuspill{display:none!important}.topsearch kbd{display:none}}

/* ---- KPI header row: equal columns, small mono label, big number, delta chip, sparkline ---- */
.kph{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;background:#fff;border:1px solid var(--mzline);border-radius:16px;box-shadow:0 1px 2px rgba(16,32,64,.04);overflow:hidden;margin-bottom:16px}
.kph-c{position:relative;padding:15px 18px 13px;min-width:0}
.kph-c+.kph-c{border-left:1px solid var(--mzline)}
.kph-c.go{cursor:pointer;transition:background .14s}
.kph-c.go:hover{background:#fbfcfe}
.kph-l{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mzmute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kph-ic{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--mzsoft);flex:none}
.kph-ic svg{width:13px;height:13px;color:var(--mzk2)}
.kph-vrow{display:flex;align-items:baseline;gap:8px;margin-top:9px;flex-wrap:wrap}
.kph-v{font-size:27px;font-weight:750;letter-spacing:-.02em;color:var(--mzk);line-height:1;font-variant-numeric:tabular-nums}
.kph-v.r{color:var(--mzred)}.kph-v.a{color:var(--mzamber)}.kph-v.g{color:var(--mzgreen)}
.kph-delta{font-size:10.5px;font-weight:750;border-radius:999px;padding:2.5px 8px;white-space:nowrap}
.kph-delta.up{background:var(--mzgreenb);color:var(--mzgreen)}
.kph-delta.down{background:var(--mzredb);color:var(--mzred)}
.kph-delta.flat{background:var(--mzsoft);color:var(--mzmute)}
.kph-spark{margin-top:8px;height:20px}
.kph-spark .kspark{width:100%;height:20px;display:block}
.kph-s{font-size:11px;color:var(--mzmute);margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1180px){.kph{grid-template-columns:repeat(3,minmax(0,1fr))}.kph-c:nth-child(3n+1){border-left:none}.kph-c:nth-child(n+4){border-top:1px solid var(--mzline)}}
@media(max-width:680px){.kph{grid-template-columns:repeat(2,minmax(0,1fr))}.kph-c{border-left:none!important;padding:13px 14px 11px}.kph-c:nth-child(2n){border-left:1px solid var(--mzline)!important}.kph-c:nth-child(n+3){border-top:1px solid var(--mzline)}.kph-v{font-size:23px}}

/* ---- Evidence movement bar ---- */
.mvcard{background:#fff;border:1px solid var(--mzline);border-radius:16px;box-shadow:0 1px 2px rgba(16,32,64,.04);padding:16px 20px;margin-bottom:16px}
.mvcard.slim{display:flex;align-items:center;gap:14px;padding:11px 20px}
.mv-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.mv-h b{font-size:13.5px;font-weight:650;color:var(--mzk)}
.mv-h span{font-size:11.5px;color:var(--mzmute)}
.mv-net{margin-left:auto;font-size:11px;font-weight:750;border-radius:999px;padding:3px 10px;background:var(--mzgreenb);color:var(--mzgreen);font-variant-numeric:tabular-nums}
.mv-net.dn{background:var(--mzredb);color:var(--mzred)}
.mv-quiet{font-size:12.5px;color:var(--mzmute);min-width:0}
.mv-bar{display:flex;height:14px;border-radius:8px;overflow:hidden;margin-top:12px;background:var(--mzsoft)}
.mv-bar span{display:block;height:100%;min-width:5px}
.mv-bar span+span{border-left:2px solid #fff}
.mv-leg{display:flex;gap:7px 16px;flex-wrap:wrap;margin-top:11px}
.mv-lg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--mzk2);font-variant-numeric:tabular-nums}
.mv-lg i{width:8px;height:8px;border-radius:3px;flex:none}

/* ---- Lot pipeline chips ---- */
.pipecard{background:#fff;border:1px solid var(--mzline);border-radius:16px;box-shadow:0 1px 2px rgba(16,32,64,.04);padding:16px 20px;margin-bottom:16px}
.pipe-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:12px}
.pipe-h b{font-size:13.5px;font-weight:650;color:var(--mzk)}
.pipe-h span{font-size:11.5px;color:var(--mzmute)}
.pipes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pipechip{display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:1px solid var(--mzline);background:#fff;border-radius:12px;padding:11px 13px;font:inherit;text-align:left;cursor:pointer;min-width:0;transition:border-color .14s,box-shadow .14s}
.pipechip:hover{border-color:#c9d6ea;box-shadow:0 1px 3px rgba(16,32,64,.08)}
.pipechip b{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mzmute)}
.pipechip .pipe-n{font-style:normal;font-size:22px;font-weight:750;color:var(--mzk);line-height:1;font-variant-numeric:tabular-nums}
.pipechip.r .pipe-n{color:var(--mzred)}
.pipechip.g .pipe-n{color:var(--mzgreen)}
.pipechip.b .pipe-n{color:var(--mzblue)}
.pipedots{display:flex;gap:3px}
.pipedots i{width:9px;height:5px;border-radius:3px;background:var(--mzline)}
.pipedots i.on{background:var(--mzblue)}
.pipechip.r .pipedots i.on{background:var(--mzred)}
.pipechip.g .pipedots i.on{background:var(--mzgreen)}
.pipe-stuck{font-size:10.5px;font-weight:650;color:var(--mzamber)}
.pipe-stuck.ok{color:var(--mzmute);font-weight:500}
@media(max-width:900px){.pipes{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---- Actions table (work queue restyle) ---- */
.wqcard{border-left:none!important}
.wq-chips{display:flex;gap:7px;flex-wrap:wrap;padding:12px 20px 2px}
.wq-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--mzline);background:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:12px;font-weight:600;color:var(--mzk2);cursor:pointer;transition:background .14s,border-color .14s}
.wq-chip i{font-style:normal;font-size:10.5px;font-weight:750;background:var(--mzsoft);border-radius:999px;padding:1px 7px;color:var(--mzmute);font-variant-numeric:tabular-nums}
.wq-chip:hover{border-color:#c9d6ea}
.wq-chip.on{background:var(--mzk);border-color:var(--mzk);color:#fff}
.wq-chip.on i{background:rgba(255,255,255,.16);color:#fff}
.wq-tbl{padding:6px 8px 10px}
.wq-tr{display:grid;grid-template-columns:minmax(0,2.1fr) 52px 148px minmax(0,1fr) 92px 30px;gap:12px;align-items:center;padding:11px 12px;border-radius:10px;cursor:pointer;transition:background .12s}
.wq-tr:hover{background:#fbfcfe}
.wq-tr.wq-thead{cursor:default;padding:8px 12px 6px;border-bottom:1px solid var(--mzline);border-radius:0;margin-bottom:2px}
.wq-tr.wq-thead:hover{background:transparent}
.wq-tr.wq-thead span{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--mzmute)}
.wq-subj{min-width:0}
.wq-subj b{display:block;font-size:13px;font-weight:650;color:var(--mzk);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wq-subj i{display:block;font-style:normal;font-size:11.5px;color:var(--mzmute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.wq-subj i.wq-gaps{color:var(--mzamber)}
.wq-age{font-size:12px;color:var(--mzmute);font-variant-numeric:tabular-nums;white-space:nowrap}
.wq-pill{display:inline-block;font-size:10.5px;font-weight:750;letter-spacing:.02em;border-radius:999px;padding:4px 11px;white-space:nowrap}
.wq-pill.r{background:var(--mzredb);color:var(--mzred)}
.wq-pill.a{background:var(--mzamberb);color:var(--mzamber)}
.wq-pill.g{background:var(--mzgreenb);color:var(--mzgreen)}
.wq-st{font-size:12px;color:var(--mzk2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wq-cat{font-size:11px;font-weight:650;color:var(--mzmute);white-space:nowrap}
.wq-open{color:#b9c1d0;font-size:15px;text-align:right}
.wq-tr:hover .wq-open{color:var(--mzblue)}
.wq-more{font-size:11.5px;color:var(--mzmute);padding:9px 12px 2px}
@media(max-width:860px){.wq-tr{grid-template-columns:minmax(0,2fr) 46px 120px 24px}.wq-st,.wq-cat{display:none}}

/* ---- Quick actions: 2x2 tiles + lookup ---- */
#quickActions{padding-bottom:14px}
.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px 16px 0}
.qa-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--mzline);background:#fff;border-radius:12px;padding:11px 12px;font:inherit;text-align:left;cursor:pointer;min-width:0;transition:border-color .14s,box-shadow .14s,transform .14s}
.qa-tile:hover{border-color:#c9d6ea;box-shadow:0 2px 6px rgba(16,32,64,.08);transform:translateY(-1px)}
.qa-ic{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--mzblueb);margin-bottom:5px}
.qa-ic svg{width:15px;height:15px;color:var(--mzblue)}
.qa-tile b{font-size:12.5px;font-weight:650;color:var(--mzk)}
.qa-tile i{font-style:normal;font-size:10.5px;color:var(--mzmute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.qa-look{display:flex;align-items:center;gap:8px;border:1px solid var(--mzline);background:var(--mzsoft);border-radius:10px;padding:8px 11px;margin:11px 16px 2px}
.qa-look svg{width:14px;height:14px;color:var(--mzmute);flex:none}
.qa-look input{flex:1;min-width:0;border:none;background:transparent;font:inherit;font-size:12.5px;color:var(--mzk)}
.qa-look input:focus{outline:none;box-shadow:none!important;border:none!important}

/* ---- Right rail: donut + funnel stacked (cockpit relocated), rail scrolls naturally ---- */
.dash2-rail{position:static;min-width:0}
.dash2-main{min-width:0}
.cockpit.cockpit-rail{grid-template-columns:1fr!important;gap:14px;min-width:0}
.cockpit-rail .ckcard{border-radius:16px;min-width:0}
.cockpit-rail .donutwrap{min-height:240px}
.cockpit-rail .ck-h{padding:14px 18px 0}
.cockpit-rail .ck-h span{white-space:normal}
.cockpit-rail .ckbody{padding:10px 18px 16px;min-width:0}
/* slim-empty cards in the narrow rail stack vertically and wrap their teaching line */
.cockpit-rail .ckcard.panel-slim{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 18px}
.cockpit-rail .ckcard.panel-slim .ckbody .ck-empty{white-space:normal;overflow:visible}

/* ---- Posture band: light, airy restyle of the greeting band ---- */
.pband{background:#fff!important;border:1px solid var(--mzline)!important;color:var(--mzk2)!important;box-shadow:0 1px 2px rgba(16,32,64,.04)!important;border-radius:16px!important;padding:20px 24px!important}
.pband::before,.pband::after{display:none!important}
.pband .pb-eyebrow{color:var(--mzblue)!important}
.pband h3{color:var(--mzk)!important}
.pband .pb-line{color:var(--mzk2)!important}
.pband .pb-stat b{color:var(--mzk)!important}
.pband .pb-stat span{color:var(--mzmute)!important}
.pband .pb-sep{background:var(--mzline)!important}
.pband .policychip{background:var(--mzsoft)!important;border-color:var(--mzline)!important;color:var(--mzk2)!important}

/* ---- General card airing on the dashboard ---- */
.mband,.recscard,.ckcard,.panel-card,.dsig-card{border-color:var(--mzline)!important}
.dash2-main{gap:16px}

/* ===== Veritura Desk chat (the command thread) ===== */
.vdchat{border:1px solid #E3E9F2;border-radius:16px;background:#FBFCFE;margin-top:13px;overflow:hidden}
.vdchat-head{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid #EEF2F8}
.vdchat-head img{width:27px;height:27px;flex:none}
.vdchat-head .t{font-size:13.5px;font-weight:750;color:var(--ink);letter-spacing:-.01em}
.vdchat-head .s{font-size:11.5px;color:#8391A6;display:flex;align-items:center;gap:6px;margin-left:auto}
.vdchat-head .dot{width:7px;height:7px;border-radius:50%;background:#12B981;box-shadow:0 0 6px rgba(18,185,129,.55);flex:none}
.vdthread{max-height:390px;overflow-y:auto;padding:14px 16px 6px;scrollbar-width:thin}
.vdthread::-webkit-scrollbar{width:7px}.vdthread::-webkit-scrollbar-thumb{background:#E0E5EE;border-radius:8px}
.vdrow{display:flex;gap:9px;margin:11px 0;align-items:flex-end}
.vdrow.you{justify-content:flex-end}
.vd-avatar{width:27px;height:27px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #E3E9F2}
.vd-avatar img{width:19px;height:19px}
.vd-avatar.you{background:linear-gradient(135deg,#2E72D2,#174EA6);color:#fff;font-size:9.5px;font-weight:800;border:0;letter-spacing:.02em}
.vdbub{max-width:76%;padding:11px 15px;font-size:13px;line-height:1.6;border-radius:15px;overflow-wrap:anywhere}
.vdrow.you .vdbub{background:linear-gradient(135deg,#2E72D2,#174EA6);color:#fff;border-bottom-right-radius:4px;box-shadow:0 2px 7px rgba(23,78,166,.2)}
.vdrow.desk .vdbub{background:#fff;border:1px solid #E6EBF3;color:var(--ink);border-bottom-left-radius:4px;box-shadow:0 1px 3px rgba(16,32,64,.05)}
.vd-typing{display:inline-flex;gap:4px;padding:4px 0}
.vd-typing i{width:6px;height:6px;border-radius:50%;background:#B6C2D4;animation:vdblink 1.2s infinite}
.vd-typing i:nth-child(2){animation-delay:.2s}.vd-typing i:nth-child(3){animation-delay:.4s}
@keyframes vdblink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.vdchips{display:flex;gap:7px;flex-wrap:wrap;padding:2px 16px 13px}
.vdchips button{font:inherit;font-size:12px;color:#174EA6;background:#F3F7FE;border:1px solid #D6E2F5;border-radius:999px;padding:6px 14px;cursor:pointer;font-weight:600;transition:background .12s}
.vdchips button:hover{background:#E8F0FD}
.vdinput{display:flex;gap:9px;align-items:center;padding:12px 16px;background:#fff;border-top:1px solid #EEF2F8}
.vdinput input{flex:1;min-width:0;font:inherit;font-size:13.5px;color:var(--ink);background:#F6F8FC;border:1.5px solid #DCE4F0;border-radius:12px;padding:12px 15px;outline:none;transition:border-color .15s,background .15s}
.vdinput input::placeholder{color:#9AA7BA}
.vdinput input:focus{border-color:#174EA6;background:#fff}
.vdinput button{font:inherit;font-size:13px;font-weight:750;color:#fff;background:linear-gradient(135deg,#2E72D2,#174EA6);border:0;border-radius:12px;padding:12px 26px;cursor:pointer;white-space:nowrap;box-shadow:0 2px 6px rgba(23,78,166,.22)}
.vdinput button:hover{filter:brightness(1.06)}
.vdempty{padding:30px 20px 24px;text-align:center;color:#8391A6;font-size:12.5px;line-height:1.6}
.vdempty img{width:36px;height:36px;opacity:.9;margin-bottom:9px}
.vdempty b{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}
.vd-plan-badge{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#174EA6;background:#EAF1FE;border-radius:5px;padding:2.5px 9px;margin-bottom:6px}
.vd-run{font:inherit;font-size:12.5px;font-weight:750;color:#fff;background:#0E6B44;border:0;border-radius:10px;padding:9px 22px;cursor:pointer;box-shadow:0 2px 5px rgba(14,107,68,.22)}
.vd-run:hover{filter:brightness(1.07)}
.vd-ghost{font:inherit;font-size:12.5px;font-weight:600;color:#41506A;background:#fff;border:1px solid #E3E9F2;border-radius:10px;padding:9px 15px;cursor:pointer}
.vd-need{width:100%;box-sizing:border-box;font:inherit;font-size:12.5px;color:var(--ink);background:#F8FAFD;border:1px solid #DCE4F0;border-radius:9px;padding:9px 12px;margin-top:7px;outline:none}
.vd-need:focus{border-color:#174EA6;background:#fff}

/* ===== Veritura Desk v5: conversation sidebar + memory panel ===== */
.vdchat-body{display:flex;align-items:stretch}
.vdside{width:205px;flex:none;border-right:1px solid #EEF2F8;background:#FCFDFE;padding:11px 10px;overflow-y:auto;max-height:520px;scrollbar-width:thin}
.vdmain{flex:1;min-width:0;display:flex;flex-direction:column}
.vdnew{display:block;width:100%;font:inherit;font-size:12.5px;font-weight:700;color:#174EA6;background:#F3F7FE;border:1px solid #D6E2F5;border-radius:9px;padding:8px 12px;cursor:pointer;text-align:left}
.vdnew:hover{background:#E8F0FD}
.vdside-label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#97A3B6;margin:13px 2px 5px}
.vdth{display:flex;align-items:center;gap:6px;width:100%;border:0;background:none;border-radius:8px;padding:7px 9px;font:inherit;font-size:12px;color:#41506A;cursor:pointer;text-align:left;margin:1px 0}
.vdth:hover{background:#F1F5FA}
.vdth.on{background:#EAF1FE;color:#174EA6;font-weight:650}
.vdth .tt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vdth .dx{flex:none;color:#B6C2D4;font-size:13px;line-height:1;padding:2px 4px;border-radius:5px}
.vdth .dx:hover{color:#A03036;background:#FDF2F2}
.vdmem{font-size:11.5px;color:#41506A;line-height:1.5}
.vdmem .mrow{padding:5px 2px;border-top:1px solid #F0F3F8}
.vdmem .mrow:first-child{border-top:0}
.vdmem b{color:#0B1220;font-weight:650}
.vdmem .mk{display:inline-block;font-size:10px;font-weight:700;color:#174EA6;background:#EAF1FE;border-radius:5px;padding:1px 7px;margin-right:5px}
@media(max-width:860px){.vdside{display:none}}

/* ===== Desk v5.1: sidebar + memory polish ===== */
.vdchat{box-shadow:0 1px 3px rgba(16,32,64,.04)}
@media(max-width:700px){.vdchat-head .s{display:none}}
.vdside{width:222px;padding:12px 12px}
.vdmem .mstat{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:5px 2px;border-top:1px solid #F0F3F8;font-size:11.5px;color:#6B7891}
.vdmem .mstat:first-of-type{border-top:0}
.vdmem .mstat b{color:#0B1220;font-weight:650;text-align:right;white-space:nowrap}
.vdside-empty{font-size:11.5px;color:#97A3B6;padding:6px 2px;line-height:1.55}

/* ===== Quality desk header: framing, spacing, and a real autonomy control ===== */
.qdesk-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.qdesk-top .ph{margin:0}
.qdesk-top .qdesk-sub{font-size:12px;color:var(--mute);margin-top:2px}
.qdesk-date{font-size:11.5px;color:#97A3B6;font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;padding-top:2px}
.qdesk-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-top:13px;padding:13px 15px;background:#F8FAFD;border:1px solid #EEF2F8;border-radius:13px}
.qdesk-auto{display:flex;flex-direction:column;gap:7px;min-width:0}
.qdesk-auto-label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#97A3B6}
.agseg{display:inline-flex;background:#fff;border:1px solid #DCE4F0;border-radius:10px;padding:3px;gap:3px;align-self:flex-start}
.agseg button{font:inherit;font-size:12.5px;font-weight:650;color:#41506A;background:none;border:0;border-radius:7px;padding:7px 16px;cursor:pointer;transition:background .12s,color .12s,box-shadow .12s}
.agseg button:hover:not(.on){background:#F1F5FA;color:#174EA6}
.agseg button.on{background:linear-gradient(135deg,#2E72D2,#174EA6);color:#fff;box-shadow:0 1px 4px rgba(23,78,166,.28)}
.qdesk-auto-desc{font-size:11.5px;color:#5B6B84;line-height:1.55;max-width:520px}
.qdesk-auto-desc b{color:#0B1220;font-weight:700}
.qdesk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.qdesk-btn{font:inherit;font-size:12px;font-weight:700;color:#174EA6;background:#F3F7FE;border:1px solid #D6E2F5;border-radius:9px;padding:8px 14px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s}
.qdesk-btn:hover{background:#E8F0FD}
.qdesk-prec{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;color:#0B3D2E;background:#EDF7F1;border:1px solid #CFE7DA;border-radius:999px;padding:6px 13px;white-space:nowrap}
.qdesk-headline{font-size:16px;font-weight:600;color:var(--ink);margin:15px 0 3px;line-height:1.5}
@media(max-width:640px){.qdesk-bar{flex-direction:column;align-items:stretch}.qdesk-actions{justify-content:flex-start}}
