/* Fonts match Semper Core (sdp-main packages/brand/fonts.css + Plex Sans 500). */
@font-face{
  font-family:"Archivo";
  src:url("fonts/archivo-latin-wdth-normal.woff2") format("woff2");
  font-weight:100 900;
  font-stretch:62% 125%;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");
  font-weight:600;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"IBM Plex Mono";
  src:url("fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

/* Design tokens. Semper Core is the reference: names and values mirror
   sdp-main apps/web/src/styles.css (:root and .dark) and
   components/foundations.css. design.md documents how to use them. */
:root{
  color-scheme:light;
  /* Brand primitives (packages/brand/tokens.css). Constant across themes. */
  --semper-navy:#151B2D; --semper-navy-light:#1E2642; --semper-red:#E63946;
  --semper-action:#C72F3C; --semper-cyan:#22D3EE; --semper-light:#F2F2F2; --semper-white:#FFFFFF;
  --navy:var(--semper-navy); --navy-raised:var(--semper-navy-light);
  --brand-red:var(--semper-red); --brand-cyan:var(--semper-cyan);

  /* Core semantic tokens. */
  --background:#F2F2F2; --foreground:#151B2D;
  --surface:#FFFFFF; --card:var(--surface); --card-foreground:var(--foreground);
  --popover:var(--surface); --popover-foreground:var(--foreground);
  --primary:#151B2D; --primary-foreground:#FFFFFF; --action:var(--primary); --action-hover:#2A3452;
  --secondary:#F0F1F3; --secondary-foreground:var(--foreground);
  --muted:#6B6B6B; --muted-surface:#F0F1F3; --muted-foreground:var(--muted);
  --accent:#F0F1F3; --accent-foreground:var(--foreground);
  --destructive:#A92334; --border:#E4E6E9; --border-strong:#D3D5D9; --input:var(--surface);
  --link:#2C5D8F; --focus:#2C5D8F; --ring:var(--focus);
  --chart-1:#1E2533; --chart-2:#E63946; --chart-3:#237050; --chart-4:#8B5611; --chart-5:#6B6B6B;
  --sidebar:var(--semper-navy); --sidebar-foreground:#FFFFFF; --sidebar-accent:var(--semper-navy-light);
  --sidebar-ring:var(--semper-cyan);
  --ws-line:rgb(255 255 255 / 7%); --ws-hover:rgb(255 255 255 / 5%); --ws-active:rgb(255 255 255 / 9%);
  --ws-text:#C9D0DD; --ws-count:rgb(240 107 118 / 18%); --ws-count-text:#FFC2C7; --ws-muted:#8D96AA; --ws-icon:#97A0B4; --ws-accent:#F06B76;
  /* Status means health only (foundations.css). */
  --status-good:#237050; --status-good-surface:#EAF5EF;
  --status-warn:#8B5611; --status-warn-surface:#FDF3E1;
  --status-bad:#A92334; --status-bad-surface:#FCECEE;
  --status-critical:#7A1A2B; --status-critical-surface:#F6E4E7;
  --status-progress:#2C5D8F; --status-progress-surface:#EAF1F8;
  --status-neutral:#5F6570; --status-neutral-surface:#F0F1F3;
  --shadow-raised:0 1px 2px rgb(20 27 41 / .06),0 2px 8px rgb(20 27 41 / .04);
  --shadow-overlay:0 8px 24px rgb(20 27 41 / .12),0 2px 6px rgb(20 27 41 / .08);
  --scrim:rgb(20 27 41 / .45);
  --table-head-bg:#F7F8F9; --table-row-border:#ECEEF1; --table-row-hover:#F8F9FB;
  /* Text on a filled status/action colour; flips with the theme. */
  --on-fill:#FFFFFF;
  /* Radius scale (Core --radius 6px). */
  --radius:6px; --radius-sm:3.6px; --radius-md:4.8px; --radius-lg:6px; --radius-xl:8.4px;
  --radius-control:4px; --radius-surface:8px;

  /* Drawing paper. Sheets and the marks drawn on them stay print colours in
     both themes, so callout contrast never depends on the chrome theme. */
  --paper:#FFFFFF; --mark-ink:#151B2D; --mark-ink-soft:#384251; --mark-line:#D3D5D9; --markup:#C72F3C;
  --mark-blocker:#7A1A2B; --mark-major:#A92334; --mark-minor:#8B5611; --mark-review:#2C5D8F;

  /* Review names kept as aliases onto the Core tokens. */
  --canvas:var(--background); --panel:var(--card);
  --ink:var(--foreground); --ink-soft:#384251; --ink-faint:var(--muted);
  --rule:var(--border); --rule-strong:var(--border-strong);
  --struct-axis:var(--link); --struct-ink:var(--link); --struct-axis-soft:var(--status-progress-surface);
  --status-pass:var(--status-good); --status-pass-soft:var(--status-good-surface);
  --status-warning:var(--status-warn); --status-warning-soft:var(--status-warn-surface);
  --status-failure:var(--status-bad); --status-failure-soft:var(--status-bad-surface);
  --status-blocker:var(--status-critical); --status-blocker-soft:var(--status-critical-surface);
  --pos:var(--status-good); --pos-soft:var(--status-good-surface);
  --neg:var(--status-critical); --warn:var(--status-warn); --warn-ink:var(--status-warn);
  --sev-blocker:var(--status-critical); --sev-major:var(--status-bad); --sev-minor:var(--status-warn); --sev-review:var(--status-progress);
  --on-navy:#FFFFFF; --on-navy-soft:var(--ws-text); --on-navy-faint:var(--ws-muted);
  --action-soft:var(--accent); --action-ink:var(--primary); --action-press:var(--action-hover);
  --shadow:var(--shadow-raised);
  --font-sans:"IBM Plex Sans",Arial,sans-serif; --font-heading:var(--font-sans);
  --font-ui:var(--font-sans); --font-body:var(--font-sans);
  --font-display:"Archivo","IBM Plex Sans",Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
/* Dark theme: values mirror Core .dark. The navigation stays navy-family. */
html.dark,html[data-theme="dark"]{
  color-scheme:dark;
  --background:#141B26; --foreground:#F1F3F6;
  --surface:#1E2533; --popover:#202938;
  --primary:#F1F3F6; --primary-foreground:#1E2533; --action-hover:#D5DBE3;
  --secondary:#2B3442; --muted:#AAB3C0; --muted-surface:#2B3442;
  --accent:#2B3442; --destructive:#F06B76; --border:#3B4656; --border-strong:#4A5668; --input:#273140;
  --link:#7FB0E0; --focus:#7FB0E0;
  --chart-1:#8E9BB0; --chart-2:#F06B76; --chart-3:#6DBB98; --chart-4:#D99B53; --chart-5:#AAB3C0;
  --sidebar:#1A2230;
  --status-good:#6DBB98; --status-good-surface:#1D2C26;
  --status-warn:#D99B53; --status-warn-surface:#2A241C;
  --status-bad:#F6A0A8; --status-bad-surface:#3A2730;
  --status-critical:#F06B76; --status-critical-surface:#3A2128;
  --status-progress:#8DBBE8; --status-progress-surface:#1C2A3A;
  --status-neutral:#AAB3C0; --status-neutral-surface:#2B3442;
  --shadow-raised:0 1px 2px rgb(0 0 0 / .3),0 2px 8px rgb(0 0 0 / .2);
  --shadow-overlay:0 8px 24px rgb(0 0 0 / .45),0 2px 6px rgb(0 0 0 / .3);
  --scrim:rgb(0 0 0 / .55);
  --table-head-bg:#1A2230; --table-row-border:#2F3A4A; --table-row-hover:#243043;
  --on-fill:#141B26;
  --ink-soft:#D5DBE3;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{background:var(--canvas)}
body{
  min-height:100vh;
  color:var(--ink);
  font-family:var(--font-ui);
  font-size:14px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  background:var(--canvas);
}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow{
  font-family:var(--font-ui);
  font-size:10px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--ink-faint);
  font-weight:500;
}
.wrap{max-width:1210px;margin:0 auto;padding:0 30px}

/* header */
header.app{
  border-bottom:1px solid var(--rule-strong);
  background:var(--panel);
  position:sticky;
  top:0;
  z-index:30;
  box-shadow:0 1px 0 color-mix(in srgb,var(--card) 74%,transparent) inset;
}
.app-bar{display:flex;align-items:center;justify-content:space-between;min-height:64px}
.brand{display:flex;align-items:baseline;gap:13px}
.brand .mark{
  font-family:var(--font-display);
  font-weight:700;
  font-stretch:125%;
  font-size:20px;
  letter-spacing:-.01em;
  
}
.brand .by{
  font-family:var(--font-ui);
  font-size:10px;
  color:var(--ink-faint);
  letter-spacing:.05em;
  text-transform:uppercase;font-weight:500}
.brand .dot{
  width:8px;
  height:8px;
  border-radius:1px;
  background:var(--struct-axis);
  display:inline-block;
  position:relative;
  top:-3px;
  margin-right:6px;
  box-shadow:10px 0 0 var(--brand-red),20px 0 0 var(--rule-strong);
}
.head-right{display:flex;align-items:center;gap:12px}
.src-pill{
  display:flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-ui);
  font-size:11px;
  color:var(--ink-soft);
  background:color-mix(in srgb,var(--background) 76%,transparent);
  border:1px solid var(--rule-strong);
  padding:7px 11px;
  border-radius:0;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
  text-transform:uppercase;
  letter-spacing:.05em;
  /* Stay one line: a wrapping pill grows taller than the fixed-height topbar
     and overflows above it, clipping over the adjacent controls. */
  white-space:nowrap;
  flex:0 1 auto;
  min-width:0;font-weight:500}
.src-pill #srcText{overflow:hidden;text-overflow:ellipsis}
.src-pill .led{
  flex:none;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--ink-faint);
  box-shadow:0 0 0 1px var(--panel),0 0 0 3px color-mix(in srgb,var(--ink-faint) 20%,transparent);
}
.src-pill.live .led{background:var(--pos);box-shadow:0 0 0 1px var(--panel),0 0 0 4px color-mix(in srgb,var(--status-pass) 16%,transparent)}
.src-pill.demo .led{background:var(--warn)}
.src-pill.empty .led{background:var(--struct-axis)}
.btn{
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:500;
  color:var(--ink);
  background:var(--panel);
  border:1px solid var(--rule-strong);
  border-radius:0;
  padding:8px 13px;
  cursor:pointer;
  text-transform:uppercase;
  letter-spacing:.05em;
  transition:border-color .16s,background .16s,transform .16s,box-shadow .16s;
}
.btn:hover{border-color:var(--ink);transform:translateY(-1px);box-shadow:var(--shadow)}
.btn.primary{background:var(--action-ink);color:var(--on-fill);border-color:var(--action-ink)}
.btn.primary:hover{background:var(--action-press);border-color:var(--action-press)}
.btn.primary:disabled{background:var(--rule);border-color:var(--rule);color:var(--ink-faint);cursor:not-allowed;transform:none;box-shadow:none}
.btn.dark{background:var(--ink);color:var(--on-fill);border-color:var(--ink)}
.btn.dark:hover{background:var(--action-hover);border-color:var(--action-hover)}
.btn:focus-visible{outline:2px solid var(--struct-axis);outline-offset:2px}
/* signed-in identity chip */
.who{display:inline-flex;flex-direction:column;line-height:1.12;padding:5px 11px;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--panel);cursor:pointer;text-align:left}
.who-name{font-family:var(--font-ui);font-weight:600;font-size:12px;color:var(--ink)}
.who-meta{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}

/* tabs */
.tabs{
  display:flex;
  gap:0;
  border-bottom:1px solid var(--rule);
  background:var(--panel);
  position:sticky;
  top:64px;
  z-index:20;
}
.tabs button{
  font-family:var(--font-ui);
  font-weight:500;
  font-size:11px;
  color:var(--ink-faint);
  background:none;
  border:none;
  border-bottom:2px solid transparent;
  padding:14px 2px 12px;
  margin-right:30px;
  cursor:pointer;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--struct-axis)}
.tabs button:focus-visible{outline:2px solid var(--struct-axis);outline-offset:2px}
.tabs .grow{flex:1}
.tabs .hint{align-self:center;font-family:var(--font-ui);font-size:10px;color:var(--ink-faint);letter-spacing:.05em;text-transform:uppercase;font-weight:500}

.view{display:none}
.view.on{display:block}

main{counter-reset:sec}
section{padding:38px 0;counter-increment:sec}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;gap:22px;position:relative}
.sec-head::before{
  content:"0" counter(sec);
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.14em;
  color:var(--struct-axis);
  position:absolute;
  left:-28px;
  top:4px;
  writing-mode:vertical-rl;
}
.sec-head h2{
  font-family:var(--font-display);
  font-stretch:125%;
  font-weight:700;
  font-size:24px;
  line-height:1;
  letter-spacing:-.01em;
  
  margin:8px 0 0;
}
.sec-head p{margin:8px 0 0;color:var(--ink-soft);font-size:14px;max-width:58ch}

/* shared instrument frames */
.panel{
  position:relative;
  background:var(--panel);
  border:1px solid var(--rule-strong);
  border-radius:0;
  box-shadow:var(--shadow);
}


.panel{margin-bottom:24px}
.panel .ph{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--rule-strong);background:color-mix(in srgb,var(--background) 42%,transparent)}
.panel .ph h3{font-family:var(--font-display);font-stretch:125%;font-weight:700;font-size:14px;margin:0}
.panel .ph .sub{font-family:var(--font-ui);font-size:11px;color:var(--ink-faint);letter-spacing:.05em;text-transform:uppercase;font-weight:500}
.panel .pb{padding:10px 18px 18px}
.linkbtn{font-family:var(--font-ui);font-size:11px;color:var(--struct-ink);background:none;border:none;cursor:pointer;padding:0;text-transform:uppercase;letter-spacing:.05em;font-weight:500}
.linkbtn:hover{text-decoration:underline}
.switch{width:36px;height:20px;border-radius:0;background:var(--rule-strong);position:relative;cursor:pointer;flex:none;transition:.15s}
.switch[aria-checked="true"]{background:var(--struct-axis)}
.switch::after{content:"";position:absolute;width:14px;height:14px;border-radius:0;background:var(--card);top:3px;left:3px;transition:.15s;box-shadow:0 1px 0 color-mix(in srgb,var(--navy) 20%,transparent)}
.switch[aria-checked="true"]::after{left:19px}
.switch:focus-visible{outline:2px solid var(--struct-axis);outline-offset:2px}

/* dropzone overlay */
#drop{position:fixed;inset:0;background:color-mix(in srgb,var(--navy) 64%,transparent);z-index:60;display:none;align-items:center;justify-content:center}
#drop.on{display:flex}
#drop .box{background:var(--panel);border:2px dashed var(--struct-axis);border-radius:0;padding:42px 58px;text-align:center;box-shadow:var(--shadow-overlay)}
#drop .box h3{font-family:var(--font-display);font-stretch:125%;font-size:18px;margin:0 0 6px}
#drop .box p{color:var(--ink-soft);font-size:13px;margin:0}

/* shortcuts modal */
#shortcuts{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:28px;background:color-mix(in srgb,var(--navy) 66%,transparent)}
#shortcuts.on{display:flex}
#feedback{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:28px;background:color-mix(in srgb,var(--navy) 66%,transparent)}
#feedback.on{display:flex}
.feedback-card{max-width:460px;width:100%}
.feedback-card textarea{width:100%;margin:10px 0;padding:8px 10px;border:1px solid var(--rule-strong);border-radius:var(--radius-md);font:inherit;font-size:13px;resize:vertical;background:var(--card);color:var(--ink)}
.op-feedback-row{border:1px solid var(--rule);border-radius:var(--radius-md);padding:8px 10px;margin-bottom:8px}
.op-feedback-row .who-line{font-family:var(--font-ui);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:4px;font-weight:500}
.op-feedback-row p{margin:0;font-size:13px}
.shortcuts-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--rule-strong);box-shadow:var(--shadow-overlay);position:relative;padding:24px 26px 26px}
.shortcuts-card h3{font-family:var(--font-display);font-stretch:125%;font-weight:700;font-size:18px;margin:0 0 4px;letter-spacing:-.01em}
.shortcuts-card .x{position:absolute;right:16px;top:14px;font-size:22px;color:var(--ink-faint);background:none;border:none;cursor:pointer;line-height:1}
.shortcuts-card .x:hover{color:var(--ink)}
.shortcuts-grid{display:grid;grid-template-columns:auto 1fr;gap:9px 16px;margin:16px 0 0;align-items:center}
.shortcuts-grid dt{text-align:right}
.shortcuts-grid dd{margin:0;font-size:13px;color:var(--ink-soft)}
.shortcuts-grid kbd{font-family:var(--font-mono);font-size:11px;background:var(--canvas);border:1px solid var(--rule-strong);border-bottom-width:2px;border-radius:var(--radius-md);padding:2px 6px;color:var(--ink)}

footer{border-top:1px solid var(--rule);padding:28px 0 42px;color:var(--ink-faint);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em}
footer a{color:var(--struct-axis)}

/* ============================ REVIEW (primary surface) ============================ */
[hidden]{display:none!important}

/* review empty state */
.review-empty{display:block;padding:44px 0}
.review-intake{
  max-width:720px;
  min-height:290px;
  border:2px dashed var(--rule-strong);
  background:var(--panel);
  padding:34px 36px;
  position:relative;
  cursor:pointer;
  box-shadow:var(--shadow);
  transition:border-color .16s,background .16s,transform .16s,box-shadow .16s;
}
.review-intake:hover,.review-intake:focus-visible,.review-intake.drag{
  border-color:var(--action);
  background:var(--card);
  transform:translateY(-1px);
  box-shadow:var(--shadow);
}
.review-intake:focus-visible{outline:2px solid var(--struct-axis);outline-offset:1px}
.review-intake h1{
  font-family:var(--font-display);
  font-stretch:125%;
  font-weight:700;
  font-size:clamp(24px,3.2vw,30px);
  line-height:1;
  letter-spacing:-.01em;
  
  margin:14px 0 0;
}
.review-intake p{max-width:48ch;margin:14px 0 22px;color:var(--ink-soft);font-size:15px}
.review-intake .btn{pointer-events:none}
.intake-formats{margin-top:18px;font-family:var(--font-ui);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.review-empty-help{max-width:720px;margin:14px 0 0;font-size:13px;color:var(--ink-soft)}
.review-empty-help .linkbtn{font-size:11px}

/* review header */
.review-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px 28px;padding:34px 0 20px;border-bottom:1px solid var(--rule-strong)}
.rh-id{flex:1 1 280px}
.rh-id h1{font-family:var(--font-display);font-stretch:125%;font-weight:700;font-size:clamp(24px,3vw,30px);line-height:1;margin:8px 0 0}
.rh-sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);margin-top:10px;letter-spacing:.03em}
.rh-summary{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rh-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;flex-basis:100%}
.sev-chip{font-family:var(--font-ui);font-size:11px;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--rule-strong);padding:6px 9px;background:color-mix(in srgb,var(--card) 50%,transparent);display:inline-flex;gap:5px;align-items:center;font-weight:500}
.sev-chip b{font-size:14px;font-variant-numeric:tabular-nums}
.sev-chip.blocker b{color:var(--sev-blocker)}
.sev-chip.major b{color:var(--sev-major)}
.sev-chip.minor b{color:var(--sev-minor)}
.sev-chip.needs_review{border-style:dashed}
.sev-chip.needs_review b{color:var(--sev-review)}
.review-workflow{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.review-workflow-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.review-workflow-meta .wf-chip{border:1px solid var(--rule-strong);padding:3px 7px;text-transform:uppercase;letter-spacing:.05em}
.review-workflow-meta .wf-chip.in_review{border-style:dashed}
.review-workflow-meta .wf-chip.approved{border-color:var(--struct-axis);color:var(--struct-axis)}
.review-workflow-meta .wf-chip.rejected{border-color:var(--neg);color:var(--neg)}
.review-workflow-meta .wf-chip.changes_requested{border-color:var(--warn-ink);color:var(--warn-ink)}
.review-workflow-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.workflow-assign-form,.assign-form{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}
.workflow-assign-form label,.assign-form label{display:flex;flex-direction:column;gap:4px;font-family:var(--font-ui);font-size:11px;font-weight:500;color:var(--ink-soft)}
.workflow-assign-form select,.workflow-assign-form input,.assign-form select,.assign-form input{font:13px/1.3 var(--font-sans);padding:6px 8px;border:1px solid var(--rule-strong);background:var(--card);color:var(--ink);min-width:0}
.workflow-assign-form select,.assign-form select{max-width:240px}
.workflow-assign-form .wf-chain{flex:1 1 220px}
.assign-form .assign-current{flex-basis:100%;margin:0}
.assign-form .muted{flex-basis:100%;margin:0}
.assign-actions{display:flex;gap:8px;align-items:center}
.assign-chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:10px;color:var(--ink-soft);border:1px solid var(--rule-strong);padding:2px 6px;white-space:nowrap}
.assign-chip.due-soon{border-color:var(--warn-ink);color:var(--warn-ink)}
.assign-chip.overdue{border-color:var(--neg);color:var(--neg)}
.ev-item .assign-chip{margin-top:6px}
.ev-assign .assign-form label{flex:1 1 160px}
.ev-assign .assign-form select{max-width:none}
.et-assign .assign-form,.pid-assign .assign-form{margin-top:6px}
.audit-export{padding:0;margin-bottom:20px}
.audit-export-form{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}
.audit-export-form label{display:flex;flex-direction:column;gap:4px;font-family:var(--font-ui);font-size:11px;font-weight:500;color:var(--ink-soft)}
.audit-export-form input,.audit-export-form select{font:13px/1.3 var(--font-sans);padding:6px 8px;border:1px solid var(--rule-strong);background:var(--card);color:var(--ink)}
.audit-export-status{margin:0;padding:0 18px 14px;font-size:12px;color:var(--ink-soft)}
.audit-export-status:empty{display:none}
.workflow-sign-dialog{border:1px solid var(--rule-strong);padding:20px 22px;max-width:420px;background:var(--paper,var(--card));color:var(--ink);font-family:var(--font-sans)}
.workflow-sign-dialog::backdrop{background:color-mix(in srgb,var(--navy) 35%,transparent)}
.workflow-sign-dialog h3{margin:0 0 8px;font-family:var(--font-display);font-size:20px;font-stretch:125%}
.workflow-sign-field{display:flex;flex-direction:column;gap:4px;margin:12px 0;font-family:var(--font-ui);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:500}
.workflow-sign-field input{font:14px/1.3 var(--font-sans);text-transform:none;letter-spacing:0;padding:8px 10px;border:1px solid var(--rule-strong);background:var(--card);color:var(--ink)}
.workflow-sign-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.thresh{display:flex;align-items:center;gap:8px;font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:500}
.thresh input[type=range]{width:118px;accent-color:var(--struct-axis)}
.thresh output{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:500}
.review-lineage-setting{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);font:10px/1.4 var(--font-mono);color:var(--ink-soft)}

.export-tray{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:13px 0;border-bottom:1px solid var(--rule)}
.export-tray .tray-lbl{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-weight:500}
.export-tray .tray-link{font-family:var(--font-mono);font-size:11px;color:var(--struct-axis);border:1px solid var(--rule-strong);padding:6px 10px;text-decoration:none}
.export-tray .tray-link:hover{border-color:var(--struct-axis);background:var(--struct-axis-soft)}
.export-tray .tray-link.annotated{background:var(--struct-axis);border-color:var(--struct-axis);color:var(--on-fill)}
.export-tray .tray-link.annotated:hover{filter:brightness(.92)}
.export-tray .tray-note{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--ink-faint)}
@media(max-width:760px){.export-tray .tray-note{flex-basis:100%;margin-left:0}}

/* two-column body */
.review-body{display:grid;grid-template-columns:1.12fr .88fr;gap:26px;align-items:start;padding:24px 0}
.review-data.busy:not(.busy-preserve){opacity:.7}
.drawing-pane{position:sticky;top:120px}
.drawing-pane .pb{padding:14px}
.stage{position:relative;background:var(--paper);border:1px solid var(--rule);line-height:0;overflow:hidden}
.stage-zoom{position:relative;transform-origin:0 0;will-change:transform}
.stage-zoom.zoomable{cursor:grab;touch-action:none}
.stage-zoom.panning{cursor:grabbing}
.stage-zoom.animate{transition:transform .28s cubic-bezier(.22,.61,.36,1)}
.stage img{display:block;width:100%;height:auto;-webkit-user-drag:none;user-select:none}
.drawing-pdf-canvas{display:block;width:100%;height:auto;background:var(--paper)}
.drawing-resolution-status{position:absolute;left:14px;bottom:14px;z-index:7;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--struct-axis) 28%,transparent);background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:var(--shadow);color:var(--ink-soft);font:10px/1.2 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;pointer-events:none;font-weight:500}
.drawing-resolution-status[hidden]{display:none}
.drawing-resolution-status span{width:11px;height:11px;border:2px solid color-mix(in srgb,var(--struct-axis) 22%,transparent);border-top-color:var(--struct-axis);border-radius:50%;animation:drawing-resolution-spin .75s linear infinite}
.drawing-resolution-status b{font:inherit;color:inherit}
@keyframes drawing-resolution-spin{to{transform:rotate(360deg)}}
.measurement-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.drawing-measurement-form label{display:grid;gap:4px;color:var(--ink-soft);font:10px/1.2 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;font-weight:500}
.drawing-measurement-form input,.drawing-measurement-form select,.drawing-measurement-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--rule-strong);background:var(--paper);color:var(--ink);padding:7px;font:12px/1.3 var(--font-body);text-transform:none;letter-spacing:normal}
.drawing-measurement-form textarea{resize:vertical;margin-top:4px}
.measurement-form-actions{display:flex;align-items:center;gap:8px;margin-top:10px}
.measurement-form-actions .muted-note{margin-left:auto}
.measurement-import-results ul{margin:8px 0 0;padding-left:18px;font:12px/1.4 var(--font-body);color:var(--ink)}
.measurement-import-results p{margin:8px 0 0}
.extraction-correction-editor form.drawing-measurement-form{display:block}
.extraction-correction-editor form.drawing-measurement-form .measurement-import-results{display:block}
.extraction-measure{margin-left:6px}
@media(max-width:760px){.measurement-form-grid{grid-template-columns:1fr}.measurement-form-actions{flex-wrap:wrap}.measurement-form-actions .muted-note{width:100%;margin-left:0}}
@media(prefers-reduced-motion:reduce){.drawing-resolution-status span{animation:none}}
.markup{position:absolute;inset:0;width:100%;height:100%;pointer-events:visiblePainted}
.zoom-ctl{position:absolute;right:10px;bottom:10px;z-index:6;display:flex;align-items:stretch;background:var(--panel);border:1px solid var(--rule-strong);box-shadow:var(--shadow)}
.zoom-ctl button{font-family:var(--font-mono);font-size:14px;line-height:1;color:var(--ink);background:transparent;border:none;border-left:1px solid var(--rule);padding:7px 11px;cursor:pointer;min-width:34px}
.zoom-ctl button:first-child{border-left:none}
.zoom-ctl button:hover{background:var(--struct-axis-soft)}
.zoom-ctl #zoomPct{font-size:11px;letter-spacing:.03em;color:var(--ink-soft)}
.zoom-ctl #zoomReset{min-width:52px}
.markup .mk{color:var(--mark-review);pointer-events:all;cursor:pointer;transition:opacity .14s}
.markup .mk.blocker{color:var(--mark-blocker)}
.markup .mk.major{color:var(--mark-major)}
.markup .mk.minor{color:var(--mark-minor)}
.markup .mk.review{color:var(--mark-review)}
.markup .mk.dim{opacity:.3}
.markup .mk-box{fill:rgba(255,255,255,.08);stroke:currentColor;stroke-width:2;vector-effect:non-scaling-stroke;shape-rendering:geometricPrecision}
.markup .mk.review .mk-box{stroke-dasharray:8 5}
.markup .mk-leader{stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linecap:square;opacity:.95}
.markup .mk-label-bg{fill:rgba(255,255,255,.96);stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 0 color-mix(in srgb,var(--navy) 18%,transparent))}
.markup .mk-label-index{fill:currentColor;stroke:none}
.markup .mk-label-num{font-family:var(--font-mono);font-size:16px;font-weight:600;fill:var(--paper);dominant-baseline:auto;pointer-events:none}
.markup .mk-label-text{font-family:var(--font-mono);font-size:20px;font-weight:600;letter-spacing:.02em;fill:var(--mark-ink);dominant-baseline:auto;pointer-events:none}
.markup .mk:hover .mk-box,.markup .mk:hover .mk-label-bg,.markup .mk.sel .mk-box,.markup .mk.sel .mk-label-bg{stroke-width:3}
.markup .mk.sel .mk-box{fill:color-mix(in srgb,var(--mark-review) 8%,transparent)}
.markup .mk-pin{fill:color-mix(in srgb,var(--mark-review) 8%,transparent);stroke:var(--mark-review);stroke-width:2.5;vector-effect:non-scaling-stroke;animation:mkpin .9s ease-out 1;shape-rendering:geometricPrecision}
@keyframes mkpin{0%{fill:color-mix(in srgb,var(--mark-review) 28%,transparent)}100%{fill:color-mix(in srgb,var(--mark-review) 8%,transparent)}}
.stage-empty{padding:56px 20px;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);line-height:1.6}
.markup-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:11px;font-family:var(--font-ui);font-size:10px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;line-height:1.2;font-weight:500}
.markup-legend span{display:flex;align-items:center;gap:5px}
.markup-legend i{width:12px;height:10px;border:2px solid currentColor;display:inline-block}
.markup-legend i.sev-blocker{color:var(--mark-blocker)}
.markup-legend i.sev-major{color:var(--mark-major)}
.markup-legend i.sev-minor{color:var(--mark-minor)}
.markup-legend i.sev-review{color:var(--mark-review);border-style:dashed}
/* drawing/3D view toggle */
.stage-toggle{margin-left:auto;display:inline-flex;border:1px solid var(--rule-strong);line-height:1}
.stage-toggle button{font-family:var(--font-ui);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:5px 11px;background:var(--panel);color:var(--ink-soft);border:none;border-left:1px solid var(--rule);cursor:pointer;font-weight:500}
.stage-toggle button:first-child{border-left:none}
.stage-toggle button[aria-pressed="true"]{background:var(--struct-axis);color:var(--on-fill)}
.stage-toggle button:disabled{opacity:.4;cursor:not-allowed}
/* native 3D model viewer */
.stage3d{position:relative;width:100%;height:clamp(360px,58vh,640px);background:var(--canvas);line-height:normal}
.stage3d model-viewer{width:100%;height:100%;display:block;--poster-color:transparent;background:var(--canvas)}
.stage3d .pmi-hotspot{max-width:220px;padding:3px 7px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:var(--shadow);color:var(--ink);font:10px/1.3 var(--font-mono);white-space:normal;text-align:left;cursor:pointer;transform:translate(8px,-50%)}
.stage3d .pmi-hotspot:hover,.stage3d .pmi-hotspot:focus-visible{border-color:var(--focus);outline:none}
.stage3d .pmi-hotspot.on{border-color:var(--mark-major);color:var(--ink);font-weight:600}
.stage3d .pmi-hotspot[data-visible="false"]{opacity:.35}
.stage3d-panels{position:absolute;top:10px;left:10px;z-index:4;display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:min(260px,calc(100% - 20px));max-height:calc(100% - 20px);overflow:auto}
.stage3d-panel{padding:6px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--card) 96%,transparent);box-shadow:var(--shadow);color:var(--ink-soft);font:11px var(--font-ui)}
.stage3d-pmi-toggle{display:flex;align-items:center;gap:6px;cursor:pointer}
.stage3d-assembly summary{cursor:pointer;color:var(--ink);font-weight:500}
.stage3d-assembly ul{margin:6px 0 0;padding:0;list-style:none}
.stage3d-assembly li{display:flex;align-items:center;gap:6px;padding:2px 0;border-top:1px solid var(--rule)}
.stage3d-assembly li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}
.stage3d-assembly .stage3d-part{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:11px var(--font-mono);text-align:left;padding:1px 4px;margin-left:-4px;border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--ink-soft);cursor:pointer}
.stage3d-assembly .stage3d-part:hover{color:var(--ink);border-color:var(--rule)}
.stage3d-assembly .stage3d-part:focus-visible{outline:none;border-color:var(--focus)}
.stage3d-assembly .stage3d-part[aria-pressed="true"]{background:var(--struct-axis);border-color:var(--struct-axis);color:var(--on-fill)}
.stage3d-show-all{margin-top:6px;padding:3px 8px;border:1px solid var(--rule-strong);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);font:11px var(--font-ui);cursor:pointer}
.stage3d-show-all:focus-visible{outline:none;border-color:var(--focus)}
.stage3d-assembly li b{font-weight:500;color:var(--ink)}
.stage3d-assembly li i{font-style:normal;color:var(--warn-ink)}
.stage-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);line-height:1.6}
.no-findings.model3d-note{color:var(--ink-soft);line-height:1.6;text-align:left}
.no-findings.model3d-note b{display:block;color:var(--ink);margin-bottom:4px;font-family:var(--font-display);text-transform:none;font-stretch:125%}

/* findings pane */
.findings-pane{display:flex;flex-direction:column;position:relative;background:var(--panel);border:1px solid var(--rule-strong);box-shadow:var(--shadow)}
.findings-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--rule-strong);background:color-mix(in srgb,var(--background) 42%,transparent);flex-wrap:wrap}
.findings-filter{display:inline-flex;border:1px solid var(--rule-strong)}
.findings-filter button{font-family:var(--font-ui);font-size:10px;font-weight:500;padding:6px 10px;background:transparent;border:none;border-left:1px solid var(--rule);cursor:pointer;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}
.findings-filter button:first-child{border-left:none}
.findings-filter button[aria-pressed="true"]{background:var(--ink);color:var(--on-fill)}
.findings-filter button b{font-variant-numeric:tabular-nums;opacity:.7;font-weight:500}
.findings-filter button[aria-pressed="true"] b{opacity:.9}
/* toolbar: status segment + facet selects + bulk */
.findings-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;width:100%;margin-top:4px}
.findings-toolbar .facets{display:flex;flex-wrap:wrap;gap:6px}
.facet-sel{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--ink-soft);background:var(--panel);border:1px solid var(--rule-strong);padding:5px 6px;cursor:pointer;letter-spacing:.02em}
.facet-sel:hover{border-color:var(--ink)}
.findings-toolbar .bulk{display:flex;align-items:center;gap:7px;margin-left:auto}
.findings-toolbar .showing{font-family:var(--font-mono);font-size:10px;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.bulk-btn{font-family:var(--font-ui);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;padding:5px 9px;border:1px solid var(--rule-strong);background:color-mix(in srgb,var(--card) 90%,transparent);color:var(--ink-soft);cursor:pointer}
.bulk-btn:hover:not(:disabled){border-color:var(--pos);color:var(--pos)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.bulk-btn:disabled{opacity:.4;cursor:not-allowed}
.kbd-hint{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;color:var(--ink-faint);background:none;border:1px solid var(--rule);padding:2px 6px;margin-left:6px;cursor:pointer;text-transform:none}
.kbd-hint:hover{border-color:var(--struct-axis);color:var(--struct-axis)}
.findings-list{padding:4px 0;max-height:80vh;overflow:auto}
.no-findings{padding:24px 18px;color:var(--ink-soft);font-size:13px}
.no-findings.warn{color:var(--warn-ink);font-family:var(--font-mono);font-size:12px}
.fam-group{border-bottom:1px solid var(--rule)}
.fam-group:last-child{border-bottom:none}
.fam-head{display:flex;justify-content:space-between;align-items:center;padding:11px 16px 7px;background:color-mix(in srgb,var(--background) 30%,transparent)}
.fam-name{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.fam-count{font-family:var(--font-mono);font-size:10px;color:var(--ink-faint)}
.finding{padding:13px 16px;border-top:1px solid var(--rule);cursor:pointer;transition:background .12s}
.fam-group .finding:first-of-type{border-top:none}
.finding:hover{background:color-mix(in srgb,var(--struct-axis) 28%,transparent)}
.finding.sel{background:color-mix(in srgb,var(--struct-axis) 55%,transparent)}
.finding.link{box-shadow:inset 0 0 0 1px var(--struct-axis)}
.finding.done{opacity:.6}
.finding:focus-visible{outline:2px solid var(--struct-axis);outline-offset:-2px}
.f-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.f-sev{font-family:var(--font-ui);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;padding:3px 6px;border:1px solid currentColor;color:var(--ink-faint)}
.f-sev.blocker{color:var(--sev-blocker)}
.f-sev.major{color:var(--sev-major)}
.f-sev.minor{color:var(--sev-minor)}
.f-fam{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:500}
.f-conf-val{margin-left:auto;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.conf-bar{display:block;width:100%;height:6px;margin:8px 0 6px;overflow:visible}
.conf-bg{fill:color-mix(in srgb,var(--struct-axis) 22%,transparent)}
.conf-fill{transform-origin:left center}
.conf-fill.blocker{fill:var(--sev-blocker)}
.conf-fill.major{fill:var(--sev-major)}
.conf-fill.minor{fill:var(--sev-minor)}
.f-expl{font-size:13px;margin:6px 0 0;line-height:1.45}
.f-fix{font-size:12px;margin-top:8px;color:var(--ink-soft);background:color-mix(in srgb,var(--background) 55%,transparent);border:1px solid var(--border);padding:6px 9px}
.f-fix .lbl{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--struct-axis);margin-right:7px;font-weight:500}
.f-evidence{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);margin-top:6px}
.f-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:9px}
.src-chip{font-family:var(--font-mono);font-size:10px;color:var(--ink-soft);border:1px solid var(--rule-strong);padding:3px 7px;background:color-mix(in srgb,var(--card) 50%,transparent);letter-spacing:.02em}
.f-owner{font-family:var(--font-mono);font-size:10px;color:var(--pos)}
.status-badge{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:3px 6px;border:1px solid currentColor;font-weight:500}
.status-badge.needs{color:var(--sev-review);border-style:dashed}
.status-badge.accepted{color:var(--pos)}
.status-badge.rejected{color:var(--status-failure)}
.status-badge.blocked{color:var(--status-blocker)}
.status-badge.resolved{color:var(--ink-faint)}
.f-actions{display:flex;gap:7px;margin-top:11px}
.dispo{font-family:var(--font-ui);font-size:10px;font-weight:500;padding:6px 11px;border:1px solid var(--rule-strong);background:color-mix(in srgb,var(--card) 90%,transparent);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}
.dispo:hover{border-color:var(--ink);color:var(--ink)}
.dispo:focus-visible{outline:2px solid var(--struct-axis);outline-offset:1px}
.dispo.accept.on{background:var(--pos);color:var(--on-fill);border-color:var(--pos)}
.dispo.reject.on{background:var(--neg);color:var(--on-fill);border-color:var(--neg)}
.dispo.resolve.on{background:var(--ink-faint);color:var(--on-fill);border-color:var(--ink-faint)}
/* deterministic explainability detail panel */
.f-detail{margin:11px -2px 1px;padding:12px 13px 11px;background:color-mix(in srgb,var(--background) 45%,transparent);border:1px solid var(--rule)}
.fd-rule{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:4px}
.fd-origin{font-family:var(--font-ui);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;color:var(--on-fill);background:var(--ink)}
.fd-origin.plant_brain{background:var(--struct-axis)}
.fd-origin.asme_y14_5,.fd-origin.iso_gps{background:var(--warn);color:var(--ink)}
.fd-origin.deterministic{background:var(--ink-faint)}
.fd-ref{font-family:var(--font-mono);font-size:10px;color:var(--ink)}
.fd-ver{font-family:var(--font-mono);font-size:10px;color:var(--ink-faint)}
.fd-sec{margin:8px 0 0}
.fd-lbl{display:block;font-family:var(--font-ui);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:2px}
.fd-sec p{margin:0;font-size:13px;line-height:1.5;color:var(--ink-soft)}
.fd-dims{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}
.fd-dim{font-family:var(--font-mono);font-size:11px;background:var(--panel);border:1px solid var(--rule-strong);padding:3px 8px;cursor:pointer;color:var(--ink)}
.fd-dim:hover{border-color:var(--struct-axis);color:var(--struct-axis)}
.fd-gate{font-size:12px;line-height:1.5;color:var(--ink-soft);font-style:italic;border-top:1px dashed var(--rule);padding-top:8px;margin-top:10px}
.fd-copilot{margin-top:10px;padding-top:9px;border-top:1px solid var(--rule)}
.fd-cop-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fd-explain{font-family:var(--font-ui);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;padding:4px 9px;border:1px solid var(--struct-axis);background:var(--struct-axis-soft);color:var(--struct-ink);cursor:pointer}
.fd-explain:hover{background:var(--struct-axis);color:var(--on-fill)}
.fd-sample{display:inline-block;margin-left:6px;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--struct-axis);background:var(--struct-axis-soft);border-radius:var(--radius-md);padding:2px 5px;vertical-align:1px;font-weight:500}
.fd-cop-body{font-size:13px;line-height:1.55;color:var(--ink);margin-top:6px;white-space:pre-wrap}
.fd-cop-body.busy{color:var(--ink-faint);font-style:italic}
.fd-cop-note{font-size:12px;line-height:1.5;color:var(--ink-soft);margin-top:6px}
.fd-cop-note.warn{color:var(--neg)}
.fd-cached{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);border:1px solid var(--rule);padding:1px 4px;vertical-align:middle;font-weight:500}
.fd-ask-item{margin-top:8px;padding-left:9px}
.fd-q{font-size:12px;font-weight:600;color:var(--ink)}
.fd-q::before{content:"Q ";font-family:var(--font-mono);color:var(--ink-faint)}
.fd-a{font-size:13px;line-height:1.55;color:var(--ink-soft);margin-top:2px;white-space:pre-wrap}
.fd-ask{display:flex;gap:6px;margin-top:9px}
.fd-ask-in{flex:1;font-family:var(--font-ui);font-size:12px;padding:6px 8px;border:1px solid var(--rule-strong);background:var(--panel);color:var(--ink)}
.fd-ask-in:focus-visible{outline:2px solid var(--struct-axis);outline-offset:1px}
.fd-ask-btn{font-family:var(--font-ui);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;padding:5px 11px;border:1px solid var(--rule-strong);background:color-mix(in srgb,var(--card) 90%,transparent);color:var(--ink-soft);cursor:pointer}
.fd-ask-btn:hover{border-color:var(--struct-axis);color:var(--struct-axis)}

/* extraction inspector */
.inspector{margin-top:10px}
.inspector .ph{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--rule-strong);background:color-mix(in srgb,var(--background) 42%,transparent)}
.ph-toggle{display:flex;align-items:center;gap:9px;background:none;border:none;cursor:pointer;padding:0}
.ph-toggle .ph-t{font-family:var(--font-display);font-stretch:125%;font-weight:700;font-size:14px;margin:0}
.ph-toggle .caret{font-size:10px;color:var(--struct-axis)}
.ph-toggle.rail-toggle .ph-t{font:600 10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint)}
.sheet-section .rail-toggle{padding:12px 0 4px;width:100%}
.inspector .sub{font-family:var(--font-ui);font-size:11px;color:var(--ink-faint);letter-spacing:.05em;text-transform:uppercase;font-weight:500}
.inspector .pb{padding:18px}
.insp-sheet{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.insp-kv{border:1px solid var(--rule);padding:9px 11px;background:color-mix(in srgb,var(--card) 60%,transparent)}
.insp-kv span{display:block;font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:4px;font-weight:500}
.insp-kv b{font-family:var(--font-mono);font-size:13px;font-weight:500}
.insp-views{margin-bottom:16px}
.view-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.view-pill{font-family:var(--font-mono);font-size:11px;border:1px solid var(--rule-strong);padding:5px 9px;cursor:pointer;background:color-mix(in srgb,var(--card) 50%,transparent)}
.view-pill:hover{border-color:var(--struct-axis);background:var(--struct-axis-soft)}
.dim-table{width:100%;border-collapse:collapse}
.dim-table th{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);text-align:right;padding:8px 10px;border-bottom:1px solid var(--rule-strong);font-weight:500}
.dim-table th.l{text-align:left}
.dim-table td{font-family:var(--font-mono);font-size:12px;text-align:right;padding:9px 10px;border-bottom:1px solid var(--rule);font-variant-numeric:tabular-nums}
.dim-table td.l{text-align:left}
.dim-row{cursor:pointer}
.dim-row:hover{background:color-mix(in srgb,var(--struct-axis) 30%,transparent)}
.dim-row.sel{background:var(--struct-axis-soft)}
.dim-row.sel td{font-weight:600}
.dim-row.link{background:color-mix(in srgb,var(--struct-axis) 40%,transparent)}
.dim-row.link.sel{background:var(--struct-axis-soft)}
.view-pill.sel{border-color:var(--struct-axis);background:var(--struct-axis);color:var(--on-fill)}
.dim-table .muted-note{color:var(--ink-soft);text-align:left}

/* review queue */
.queue-list{display:flex;flex-direction:column;gap:12px}
.q-item{display:grid;grid-template-columns:1fr 280px;gap:18px;border:1px solid var(--rule-strong);background:var(--panel);padding:16px;box-shadow:var(--shadow)}
.q-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:4px}
.q-side{display:flex;flex-direction:column;gap:8px}
.q-side .txt{font-family:var(--font-mono);font-size:11px;border:1px solid var(--rule);padding:7px 8px;background:color-mix(in srgb,var(--background) 55%,transparent)}
.q-side .txt:focus-visible{outline:2px solid var(--struct-axis);outline-offset:0;background:var(--card)}
.q-acts{display:flex;gap:7px}
.q-locate{font-size:10px}

@media(prefers-reduced-motion:no-preference){
  .fade{opacity:0;transform:translateY(12px);animation:rise .62s cubic-bezier(.18,.72,.22,1) forwards}
  section.fade:nth-of-type(2){animation-delay:.08s}
  section.fade:nth-of-type(3){animation-delay:.16s}
  section.fade:nth-of-type(4){animation-delay:.24s}
  @keyframes rise{to{opacity:1;transform:none}}
}
@media(max-width:980px){
  .review-empty{grid-template-columns:1fr}
  .review-body,.q-item{grid-template-columns:1fr}
  .drawing-pane{position:static}
  .findings-list{max-height:none}
  .sec-head::before{display:none}
}
@media(max-width:700px){
  body{overflow-x:hidden}
  .wrap{padding:0 16px}
  .app-bar{height:auto;padding:12px 0;flex-wrap:wrap;gap:10px}
  .brand .by{display:none}
  .head-right{width:100%;justify-content:space-between}
  .head-right .btn:not(#addDrawingBtn){display:none}
  .tabs{top:69px;overflow-x:auto}
  .review-head{padding-top:24px}
  .q-item{grid-template-columns:1fr}
  .tabs .hint{display:none}
  .review-intake{padding:26px 22px;min-height:250px}
  .review-intake h1{font-size:30px}
  .sec-head{flex-wrap:wrap}
}

/* ===================================================================
   SEMPER APP SHELL v2 - sidebar + topbar + surfaces
   =================================================================== */
:root{--topbar-h:58px;--side-w:236px}
.shell{display:flex;min-height:100vh;align-items:stretch}
.side{width:var(--side-w);flex:none;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;
  padding:20px 16px;border-right:1px solid rgba(255,255,255,.12);background:var(--navy);z-index:25}
.side-brand{display:flex;align-items:center;gap:10px;padding:4px 6px 22px}
.side-lockup{display:block;width:min(168px,100%);height:auto;max-height:58px;object-fit:contain;object-position:left center}
.side-mark{display:none;width:36px;height:36px;object-fit:contain}
.side-name{font-family:var(--font-display);font-weight:700;font-stretch:125%;font-size:14px;line-height:.98;letter-spacing:-.01em;color:var(--on-navy)}
.product-switch{display:block;margin:-12px 6px 14px}
.product-switch select{width:100%;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);padding:8px 10px;color:var(--ink);font:inherit}
.side-nav{display:flex;flex-direction:column;gap:1px}
.side-nav button{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:none;background:none;border-radius:var(--radius-md);cursor:pointer;
  font-family:var(--font-ui);font-size:13px;font-weight:500;color:var(--on-navy-soft);text-align:left;transition:background .14s,color .14s}
.side-nav button svg{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.side-nav button span{flex:1}
.side-nav button:hover{background:var(--navy-raised);color:var(--on-navy)}
.side-nav button.on{color:var(--navy);background:var(--on-navy);font-weight:600}
.nav-workspace{margin:8px 0 2px;padding-top:8px;border-top:1px solid rgba(255,255,255,.18)}
.nav-workspace-toggle{width:100%;padding:7px 11px;color:var(--on-navy-soft);font:500 10px var(--font-ui);letter-spacing:.1em;text-transform:uppercase;text-align:left}
.nav-workspace-toggle:hover{color:var(--brand-cyan);background:var(--navy-raised)}
.nav-workspace-body{display:flex;flex-direction:column;gap:1px}
.nav-workspace-body button{padding-left:17px}
.nav-count{flex:none;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--action-ink);color:var(--on-navy);font-family:var(--font-mono);font-size:10px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.side-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.18)}
.side-conf-top{display:flex;justify-content:space-between;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--on-navy-soft);font-weight:500}
.side-conf-top b{color:var(--on-navy)}
.side-bar{height:5px;margin-top:6px;background:rgba(255,255,255,.18);border-radius:var(--radius-md);overflow:hidden}
.side-bar i{display:block;height:100%;background:var(--brand-cyan);transition:width .3s}
.side-status{display:flex;align-items:center;gap:7px;margin-top:14px;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--on-navy-soft);font-weight:500}
.side-status .led{width:7px;height:7px;border-radius:50%;background:var(--on-navy-faint);flex:none}
.side-status .led.live{background:var(--pos);box-shadow:0 0 0 3px color-mix(in srgb,var(--status-pass) 16%,transparent)}

.main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--canvas);overflow-x:clip}
.topbar{position:sticky;top:0;z-index:24;display:flex;align-items:center;gap:9px;height:var(--topbar-h);padding:0 22px;
  background:var(--panel);border-bottom:1px solid var(--rule)}
.topbar .grow{flex:1}
.topbar .btn{padding:7px 11px;font-size:11px}
/* Topbar hierarchy: keep one filled focal action (Add drawing) and let the
   menu triggers recede to quiet ghost buttons. The 1px border stays
   transparent at rest so the hover state adds no shift. */
.topbar .btn:not(.primary){
  background:none;
  border-color:transparent;
  color:var(--ink-soft);
  box-shadow:none;
}
.topbar .btn:not(.primary):hover{
  background:var(--card);
  border-color:var(--rule-strong);
  color:var(--ink);
  transform:none;
  box-shadow:0 1px 0 color-mix(in srgb,var(--navy) 5%,transparent);
}
.topbar .btn:not(.primary):disabled{color:var(--ink-faint);background:none;border-color:transparent}
.popup-menu-wrap{position:relative;flex:none}
.popup-menu{position:absolute;right:0;top:calc(100% + 7px);z-index:70;min-width:184px;padding:5px;border:1px solid var(--rule-strong);background:var(--panel);box-shadow:var(--shadow-overlay)}
.popup-menu[hidden]{display:none}
.popup-menu [role^="menuitem"]{display:block;width:100%;border:0;background:none;padding:9px 10px;color:var(--ink);font:12px var(--font-ui);text-align:left;text-decoration:none;cursor:pointer}
.popup-menu [role^="menuitem"]:hover,.popup-menu [role^="menuitem"]:focus-visible{background:var(--struct-axis-soft);outline:none}
.popup-menu [role^="menuitem"]:disabled{color:var(--ink-faint);cursor:not-allowed;background:none}
.popup-menu .popup-menu-featured{display:flex;align-items:center;justify-content:space-between;gap:14px;font-weight:600}
.popup-menu-badge{flex:none;padding:2px 5px;border:1px solid var(--struct-axis);color:var(--struct-ink);font:500 10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase}
.popup-menu-context{padding:8px 10px 9px;border-bottom:1px solid var(--rule);color:var(--ink-soft);font:10px/1.45 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;font-weight:500}
.popup-menu-separator{height:1px;margin:5px 0;background:var(--rule)}
.help-menu-trigger{position:relative}
.help-unread-dot{position:absolute;right:3px;top:3px;width:7px;height:7px;border-radius:50%;background:var(--action-ink);box-shadow:0 0 0 2px var(--canvas)}
.help-unread-dot[hidden]{display:none}
.side-collapse{border:none;background:none;font-size:18px;color:var(--ink-soft);cursor:pointer;padding:6px;line-height:1;border-radius:var(--radius-md)}
.side-collapse:hover{background:var(--muted-surface)}
.crumbs{display:flex;align-items:center;gap:8px;font-family:var(--font-ui);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.crumbs b{color:var(--ink);font-weight:600}
.crumbs .sep{opacity:.5}
.icon-btn{position:relative;border:1px solid var(--rule-strong);background:var(--card);border-radius:var(--radius-md);padding:6px 9px;cursor:pointer;font-size:13px;line-height:1}
.notif-dot{position:absolute;top:4px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--action);box-shadow:0 0 0 2px var(--card)}
.content{flex:1;min-width:0}

/* Release brief: non-modal by design. On wide screens the workspace yields
   room to the drawer; laptop and mobile widths keep their layout and let the
   drawer overlay without a dimming backdrop. */
.release-drawer{
  position:fixed;right:0;top:var(--topbar-h);bottom:0;z-index:66;
  width:min(390px,100vw);overflow-y:auto;background:var(--panel);
  border-left:1px solid var(--rule-strong);box-shadow:-18px 0 44px color-mix(in srgb,var(--navy) 10%,transparent);
  padding:27px 24px 22px;
}
.release-drawer[hidden]{display:none}
.release-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.release-drawer-head h2{margin:7px 0 0;font-family:var(--font-display);font-size:28px;font-stretch:125%;line-height:1.08;letter-spacing:-.01em}
.release-close,.release-later,.release-item-action{
  border:0;background:none;color:var(--struct-ink);cursor:pointer;font:500 11px var(--font-mono);
  letter-spacing:.04em;text-decoration:none;
}
.release-close{padding:4px 0;text-transform:uppercase;color:var(--ink-soft)}
.release-close:hover,.release-later:hover,.release-item-action:hover,.release-notes-link:hover{color:var(--action-ink);text-decoration:underline;text-underline-offset:3px}
.release-close:focus-visible,.release-later:focus-visible,.release-item-action:focus-visible,.release-notes-link:focus-visible{outline:2px solid var(--struct-axis);outline-offset:3px}
.release-summary{margin:10px 0 18px;color:var(--ink-soft);font-size:14px;line-height:1.55}
.release-items{border-top:1px solid var(--rule)}
.release-item{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;padding:20px 0;border-bottom:1px solid var(--rule)}
.release-item-number{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:1px;border-radius:50%;background:var(--action-ink);color:var(--on-fill);font:600 10px var(--font-mono)}
.release-item-copy h3{margin:0;font-size:15px;line-height:1.35}
.release-item-copy p{margin:7px 0 10px;color:var(--ink-soft);font-size:13px;line-height:1.55}
.release-item-action{display:inline-block;padding:2px 0;color:var(--struct-ink)}
.release-drawer-actions{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:12px;padding-top:20px}
.release-later{justify-self:center;color:var(--ink-soft)}
.release-drawer-actions .btn{width:100%}
.release-notes-link{display:block;margin-top:17px;text-align:center;color:var(--struct-ink);font:500 11px var(--font-mono);letter-spacing:.03em;text-decoration:none}
.release-once-note{margin:18px 0 0;text-align:center;color:var(--ink-faint);font:10px/1.45 var(--font-mono);letter-spacing:.03em}
@media(min-width:1360px){
  .release-open .main{margin-right:390px}
}
@media(max-width:760px){
  .release-drawer{top:var(--topbar-h);width:100vw;padding:22px 20px 20px}
  .release-drawer-head h2{font-size:25px}
  .release-item{padding:17px 0}
  .release-drawer-actions{position:sticky;bottom:-20px;margin:0 -20px -20px;padding:14px 20px 20px;background:var(--panel);border-top:1px solid var(--rule)}
}
@media(prefers-reduced-motion:no-preference){
  .release-drawer{animation:release-drawer-in .22s cubic-bezier(.4,0,.2,1)}
  @keyframes release-drawer-in{from{transform:translateX(18px);opacity:.72}to{transform:none;opacity:1}}
}
.shell.nav-collapsed .side{width:66px}
.shell.nav-collapsed .side-name,.shell.nav-collapsed .side-lockup,.shell.nav-collapsed .side-nav span,.shell.nav-collapsed .nav-count,.shell.nav-collapsed .side-foot{display:none}
.shell.nav-collapsed .side-brand{justify-content:center;padding:4px 0 22px}
.shell.nav-collapsed .side-mark{display:block}
.shell.nav-collapsed .side-nav button{justify-content:center;padding:10px 0}
.shell.nav-collapsed .nav-workspace{border-top:0;margin:5px 0;padding-top:0}
.shell.nav-collapsed .nav-workspace-toggle{justify-content:center;padding:10px 0}
.shell.nav-collapsed .nav-workspace-toggle svg{display:block}
.shell.nav-collapsed .nav-workspace-body button{padding:10px 0}

/* legacy sticky offsets now reference the topbar */
.main .drawing-pane{top:calc(var(--topbar-h) + 14px)}

/* surface headers */
.surf-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:30px 0 18px;border-bottom:1px solid var(--rule)}
.surf-head h2{font-family:var(--font-display);font-weight:700;font-stretch:125%;font-size:28px;letter-spacing:-.01em;margin:6px 0 0;color:var(--ink)}
.surf-head p{font-size:14px;color:var(--ink-soft);margin:8px 0 0;max-width:64ch;line-height:1.5}
.surf-head-actions{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.demo-tag{display:inline-block;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--struct-axis);background:var(--struct-axis-soft);border-radius:var(--radius-md);padding:2px 6px;vertical-align:middle;font-weight:500}

/* dashboard */
.stat-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:22px 0}
.stat-tile{background:var(--panel);border:1px solid var(--rule-strong);border-radius:var(--radius-lg);padding:16px 17px;box-shadow:var(--shadow)}
.stat-tile .sv{font-family:var(--font-mono);font-size:30px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}
.stat-tile.alert .sv{color:var(--neg)}
.stat-tile .sl{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin-top:9px;font-weight:500}
.stat-tile .sd{font-size:12px;color:var(--ink-soft);margin-top:5px}
.dash-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:30px}
.dashboard-scope{display:flex;align-items:center;gap:10px;margin:18px 0 0;padding:10px 12px;border:1px solid var(--rule-strong);background:var(--card);color:var(--ink-soft);font-size:12px}
.dashboard-scope strong{color:var(--ink)}
.dashboard-totals{margin-top:2px}
.dashboard-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding-top:20px}
.dashboard-section-head h3{margin:0;font-size:16px;color:var(--ink)}
.dashboard-section-head p{margin:4px 0 0;color:var(--ink-faint);font-size:12px}
.dash-assigned{margin-bottom:20px}
.dashboard-selected{border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule);margin-bottom:20px}
.dashboard-selected-body{padding:12px 0 18px}
.dashboard-selected .dash-row{border:1px solid var(--rule);background:var(--card)}
.dash-panel .pb{padding:4px 0}
.dash-row{display:flex;align-items:center;gap:12px;width:100%;padding:11px 18px;border:0;border-bottom:1px solid var(--rule);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.dash-row:last-child{border-bottom:none}
.dash-row:hover{background:var(--muted-surface)}
.dash-row .dr-main{flex:1;min-width:0}
.dash-row .dr-t{font-weight:600;font-size:13px;color:var(--ink)}
.dash-row .dr-s{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);margin-top:2px}
.dash-empty{padding:22px 18px;font-family:var(--font-mono);font-size:12px;color:var(--ink-faint)}

/* findings / evidence trace */
.ev-empty{padding:40px 0;font-family:var(--font-mono);font-size:13px;color:var(--ink-soft)}
.ev-grid{display:grid;grid-template-columns:200px minmax(0,1fr) minmax(0,1.2fr);border:1px solid var(--rule-strong);border-radius:var(--radius-lg);margin:22px 0 32px;background:var(--panel);box-shadow:var(--shadow);min-height:520px}
.ev-col-head{font-family:var(--font-ui);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);padding:13px 16px;border-bottom:1px solid var(--rule);font-weight:500}
.ev-sheets{border-right:1px solid var(--rule)}
.ev-sheet{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 16px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--rule);color:var(--ink)}
.ev-sheet.on{background:var(--action-soft)}
.ev-sheet .c{font-family:var(--font-mono);font-size:10px;color:var(--ink-faint)}
.ev-listwrap{border-right:1px solid var(--rule);display:flex;flex-direction:column;min-width:0}
.ev-list{overflow:auto}
.ev-item{padding:12px 16px;border-bottom:1px solid var(--rule);cursor:pointer}
.ev-item:hover{background:var(--muted-surface)}
.ev-item.on{background:var(--action-soft)}
.ev-item .ei-top{display:flex;gap:6px;align-items:center}
.ev-item .ei-msg{font-size:13px;color:var(--ink);margin-top:7px;line-height:1.4}
.ev-item .ei-zone{font-family:var(--font-ui);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin-top:6px;font-weight:500}
.ev-trace{padding:18px 20px;overflow:auto;min-width:0}
.ev-trace .et-empty{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);padding-top:30px}
.et-head{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.et-head h4{font-family:var(--font-display);font-weight:700;font-size:15px;margin:0;color:var(--ink);font-stretch:125%}
.et-sec{margin-bottom:15px}
.et-sec .et-lbl{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-weight:500}
.et-sec p{font-size:13px;color:var(--ink-soft);line-height:1.5;margin:0}
.et-check{display:flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:12px;padding:9px 12px;border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--muted-surface)}
.et-check .res{font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.et-check .res.fail{color:var(--neg)}
.et-check .res.pass{color:var(--pos)}
.et-chain{list-style:none;margin:0;padding:0}
.et-chain li{position:relative;padding:0 0 11px 18px;font-size:13px;color:var(--ink-soft);line-height:1.45}
.et-chain li::before{content:"";position:absolute;left:2px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--struct-axis);z-index:1}
.et-chain li::after{content:"";position:absolute;left:5px;top:11px;bottom:0;width:1px;background:var(--rule-strong)}
.et-chain li:last-child::after{display:none}

/* shared severity pill */
.sev-pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-ui);font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 7px;border-radius:var(--radius-md);color:var(--on-fill)}
.sev-pill.blocker{background:var(--sev-blocker)}
.sev-pill.major{background:var(--sev-major)}
.sev-pill.minor{background:var(--sev-minor)}
.sev-pill.pass{background:var(--status-pass)}
.sev-pill.needs_review,.sev-pill.review{background:var(--card);color:var(--sev-review);box-shadow:inset 0 0 0 1px var(--sev-review)}

/* documents */
.docs-filter{display:grid;gap:5px;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.docs-filter select{min-width:190px;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);padding:8px 30px 8px 9px;font:12px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--ink)}
.docs-table{margin:22px 0 32px;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}
.docs-row{display:grid;grid-template-columns:minmax(160px,1fr) 150px 110px 90px 130px 122px;gap:12px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--rule);font-size:13px}
.docs-row:last-child{border-bottom:none}
.docs-row.h{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);background:var(--muted-surface);font-weight:500}
.docs-row .dn{font-weight:600;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.docs-row .da{display:flex;gap:7px;justify-content:flex-end}
.docs-row .doc-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px}
.doc-open{height:30px;padding:0 10px;border:1px solid var(--struct-axis);border-radius:var(--radius-md);background:var(--card);color:var(--struct-axis);font:500 10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.doc-open:hover{background:var(--struct-axis-soft)}
.doc-delete{width:30px;height:30px;display:inline-grid;place-items:center;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);color:var(--neg);cursor:pointer}
.doc-delete:hover{background:color-mix(in srgb,var(--status-failure) 8%,transparent);border-color:color-mix(in srgb,var(--status-failure) 45%,transparent)}
.doc-delete svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.doc-no-action{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint)}
.docs-empty{padding:30px 18px;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--ink-faint)}
#docsTurnoverPanel{margin:0 0 32px}
#docsTurnoverPanel .docs-filter{margin:0 0 12px;max-width:280px}
#docsTurnoverPanel .docs-filter input{border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);padding:8px 9px;font:12px var(--font-ui);color:var(--ink)}
.docs-turnover-status{font:12px/1.45 var(--font-ui);color:var(--ink-soft);margin:0 0 12px}
.docs-turnover-group{margin:0 0 14px}
.docs-turnover-group h4{font-family:var(--font-ui);font-size:11px;letter-spacing:.05em;text-transform:uppercase;margin:0 0 6px;color:var(--ink-faint);font-weight:500}
.docs-turnover-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 0;font-size:13px}
.docs-turnover-row span:last-child{color:var(--ink-soft);font-size:12px}
.doc-stat{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--rule-strong);border-radius:var(--radius-md);color:var(--ink-soft);background:var(--muted-surface);font-weight:500}
@media(max-width:900px){
  .docs-row{grid-template-columns:minmax(0,1fr) 110px 112px;gap:8px 12px}
  .docs-row.h span:nth-child(3),.docs-row.h span:nth-child(4),.docs-row.h span:nth-child(5),
  .docs-row span:nth-child(3),.docs-row span:nth-child(4),.docs-row span:nth-child(5){display:none}
  .docs-row .da{justify-content:flex-start}
}
.mtr-intake{display:grid;gap:14px}
.mtr-run-fields{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:10px;align-items:end}
.mtr-run-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mtr-intake-datalists{display:none}
.mtr-input-details{display:grid;gap:8px;margin-top:14px}
.mtr-disclosure{border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--muted-surface)}
.mtr-disclosure summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:44px;padding:12px 14px;cursor:pointer;list-style-position:inside;font-weight:600;color:var(--ink)}
.mtr-disclosure summary small{color:var(--ink-faint);font-weight:400;font-size:11px;text-align:right}
.mtr-disclosure summary:focus-visible{outline:2px solid var(--struct-axis);outline-offset:-2px}
.mtr-disclosure-body{padding:0 14px 14px}
.mtr-intake.busy{opacity:.72;pointer-events:none}
.mtr-upload-grid{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:10px;align-items:center}
.mtr-upload-grid input{width:100%;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);padding:9px 10px;color:var(--ink);font:inherit}
.mtr-spec-status{padding-left:10px}
.mtr-intelligence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-top:1px solid var(--rule);padding-top:14px}
.mtr-intelligence-grid select{width:100%;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);padding:9px 10px;color:var(--ink);font:inherit}
.mtr-intelligence-card{display:grid;gap:5px;border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--muted-surface);padding:9px 10px;min-width:0}
.mtr-field-label{font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.mtr-intelligence-status{margin:0;padding-left:8px;font-size:11px;line-height:1.35}
.mtr-evidence-upload input{font:12px var(--font-ui);color:var(--ink-soft);max-width:100%}
.mtr-evidence-upload small{font-size:11px;line-height:1.35;color:var(--ink-faint)}
.mtr-capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 14px}
.mtr-capability-grid .set-radio{align-items:start;border:1px solid var(--rule);border-radius:var(--radius-md);padding:9px;background:var(--muted-surface)}
.mtr-capability-grid .set-radio small{display:block;margin-top:3px;line-height:1.35}
.mtr-spec-queue{display:grid;gap:10px}
.mtr-spec-queue-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--card);padding:12px 14px}
.mtr-spec-queue-item span{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--neg);font-weight:500}
.mtr-spec-queue-item h4{margin:3px 0 4px;font-size:13px;color:var(--ink);overflow-wrap:anywhere}
.mtr-spec-queue-item p{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.42}
.mtr-spec-queue-item small{display:block;margin-top:5px;font-family:var(--font-mono);font-size:10px;color:var(--ink-faint)}
.mtr-spec-queue-actions{display:grid;gap:6px;justify-items:end}
.mtr-spec-queue-actions b{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.mtr-context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border-top:1px solid var(--rule);padding-top:14px}
.mtr-context-grid input{width:100%;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);padding:9px 10px;color:var(--ink);font:inherit}
#mtrMatrix{overflow-x:auto;max-width:100%}
.mtr-table{display:grid;margin-top:6px;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);overflow:hidden;background:var(--card)}
.mtr-head,.mtr-row{display:grid;grid-template-columns:1fr 1.4fr 1fr 1.2fr .8fr;border-bottom:1px solid var(--rule)}
.mtr-head{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);background:var(--muted-surface);font-weight:500}
.mtr-head span,.mtr-row span{padding:10px 12px;border-right:1px solid var(--rule);min-width:0;overflow:hidden;text-overflow:ellipsis}
.mtr-head span:last-child,.mtr-row span:last-child{border-right:0}
.mtr-row:last-child{border-bottom:0}
.mtr-row span b{display:block;color:var(--ink);font-weight:780;overflow-wrap:anywhere}
.mtr-row span small{display:block;margin-top:3px;font-family:var(--font-mono);font-size:10px;letter-spacing:.03em;color:var(--ink-faint);overflow-wrap:anywhere}
.mtr-row.fail span:last-child,.mtr-row.missing span:last-child,.mtr-row.missing_unit span:last-child{color:var(--neg);font-weight:600}
.mtr-row.needs_review span:last-child,.mtr-row.not_parsed span:last-child,.mtr-row.unsupported_conversion span:last-child{color:var(--struct-ink);font-weight:600}
.mtr-row.blocker span:last-child{color:var(--sev-blocker);font-weight:600}
.mtr-row.major span:last-child{color:var(--sev-major);font-weight:600}
.mtr-row.minor span:last-child{color:var(--sev-minor);font-weight:600}
.mtr-row.pass span:last-child{color:var(--pos);font-weight:600}
.mtr-row.reference span:last-child{color:var(--ink-faint);font-weight:600}
.mtr-summary{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:10px;margin-bottom:14px}
.mtr-verdict{grid-column:1/-1;display:grid;grid-template-columns:minmax(240px,1.1fr) minmax(0,1fr);gap:16px;align-items:start;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--card);padding:14px 16px}
.mtr-verdict span{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.mtr-verdict strong{display:block;margin-top:3px;font-family:var(--font-display);font-size:22px;line-height:1.05;color:var(--ink);font-stretch:125%}
.mtr-verdict p{margin:5px 0 0;max-width:62ch;font-size:13px;color:var(--ink-soft);line-height:1.42;overflow-wrap:anywhere}
.mtr-verdict button{white-space:nowrap}
.mtr-verdict-action{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:6px;min-width:0;max-width:none}
.mtr-verdict-action small{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;color:var(--ink-faint)}
.mtr-readiness-line{display:block;margin-top:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.03em;color:var(--struct-ink)}
.mtr-stale-warning{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:10px;padding:8px 10px;border:1px solid var(--status-warning);border-radius:var(--radius-md);background:var(--status-warning-soft);color:var(--ink-soft);font-size:11px;line-height:1.35}
.mtr-stale-warning b{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--warn-ink);font-weight:500}
.mtr-ocr-status{margin:8px 0 0;padding:6px 8px;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--struct-axis-soft);display:grid;gap:2px}
.mtr-ocr-status[data-ocr-status="limited"],.mtr-ocr-status[data-ocr-status="needs_review"]{background:var(--card)}
.mtr-ocr-status[data-ocr-status="unavailable"]{background:var(--status-failure-soft)}
.mtr-ocr-status span{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);font-weight:500}
.mtr-ocr-status small{font-size:11px;line-height:1.35;color:var(--ink-soft);overflow-wrap:anywhere}
.mtr-charpy-readings ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.mtr-charpy-readings li{display:grid;grid-template-columns:minmax(72px,.55fr) minmax(0,1fr);gap:4px 8px;align-items:baseline}
.mtr-charpy-readings li b{font-family:var(--font-ui);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.mtr-charpy-readings li span{font-size:12px;color:var(--ink-soft);overflow-wrap:anywhere}
.mtr-charpy-readings li small{grid-column:2;font-family:var(--font-mono);font-size:10px;color:var(--ink-faint)}
.mtr-charpy-aggregate{margin:7px 0 0;font-size:11px;color:var(--ink-soft)}
.mtr-charpy-aggregate strong{font-family:var(--font-mono);color:var(--ink)}
.mtr-summary-total,.mtr-summary-chip{border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--card);padding:12px 14px;display:grid;gap:2px}
.mtr-summary-total strong,.mtr-summary-chip strong{font-family:var(--font-display);font-size:22px;line-height:1;color:var(--ink);font-stretch:125%}
.mtr-summary-total span,.mtr-summary-chip span{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:500}
.mtr-summary-chip.blocker strong{color:var(--sev-blocker)}
.mtr-summary-chip.major strong{color:var(--sev-major)}
.mtr-summary-chip.minor strong{color:var(--sev-minor)}
.mtr-summary-chip.needs_review strong{color:var(--struct-ink)}
.mtr-attachment-policy{display:grid;gap:4px;margin:0 0 14px;padding:10px 12px;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--muted-surface);color:var(--ink-soft);font-size:12px;line-height:1.4}
.mtr-attachment-policy strong{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);font-weight:500}
.mtr-extract{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px}
.mtr-extract div{border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--muted-surface);padding:10px 12px;min-width:0}
.mtr-extract span{display:block;font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:4px;font-weight:500}
.mtr-extract strong{display:block;font-size:12px;color:var(--ink-soft);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mtr-intelligence-summary{grid-column:1/-1;display:grid;gap:10px;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--card);padding:12px}
.mtr-intelligence-head{display:flex;justify-content:space-between;gap:12px;align-items:end;border-bottom:1px solid var(--rule);padding-bottom:8px}
.mtr-intelligence-head span,.mtr-intelligence-facts span,.mtr-intelligence-section-label{display:block;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.mtr-intelligence-head strong{display:block;margin-top:3px;font-size:14px;color:var(--ink)}
.mtr-intelligence-head small{font:10px var(--font-mono);color:var(--ink-faint)}
.mtr-intelligence-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.mtr-intelligence-facts>div{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--muted-surface);padding:8px 9px;min-width:0}
.mtr-intelligence-facts strong{display:block;margin-top:4px;font-size:12px;overflow-wrap:anywhere;color:var(--ink)}
.mtr-intelligence-facts small{display:block;margin-top:4px;font-size:10px;line-height:1.35;color:var(--ink-faint)}
.mtr-derived{display:grid;gap:5px}
.mtr-intelligence-section-label{margin-bottom:1px}
.mtr-derived-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--rule);padding:7px 0}
.mtr-derived-row b{display:block;font-size:12px;color:var(--ink)}
.mtr-derived-row small{display:block;margin-top:2px;font:10px var(--font-mono);color:var(--ink-faint);overflow-wrap:anywhere}
.mtr-derived-row>strong{font:500 12px var(--font-mono);text-align:right;color:var(--struct-ink);white-space:nowrap}
.mtr-derived-row>strong.pass{color:var(--pos)}
.mtr-derived-row>strong.fail{color:var(--neg)}
.mtr-derived-row>strong small{font-weight:400}
.mtr-correction-workbench,.mtr-spec-workbench{grid-column:1/-1;display:grid;gap:10px;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--card);padding:12px}
.mtr-workbench-head{display:flex;justify-content:space-between;align-items:end;gap:12px;border-bottom:1px solid var(--rule);padding-bottom:8px}
.mtr-workbench-head span{display:block;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.mtr-workbench-head strong{display:block;margin-top:3px;font-size:14px;color:var(--ink)}
.mtr-workbench-head small{font:10px var(--font-mono);color:var(--ink-faint);overflow-wrap:anywhere;text-align:right}
.mtr-correction-list{display:grid;gap:5px}
.mtr-correction-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--rule);padding:7px 0}
.mtr-correction-row>div{min-width:0}
.mtr-correction-row b,.mtr-correction-row span{display:block;overflow-wrap:anywhere}
.mtr-correction-row b{font-size:12px;color:var(--ink)}
.mtr-correction-row span{margin-top:2px;font:10px var(--font-mono);color:var(--ink-faint)}
.mtr-correction-form{display:grid;gap:10px;border-top:1px solid var(--rule);padding-top:10px}
.mtr-correction-form form,.mtr-spec-workbench{min-width:0}
.mtr-correction-form form{display:grid;gap:9px}
.mtr-correction-form label,.mtr-spec-workbench>label{display:grid;gap:4px;color:var(--ink-soft);font-size:11px}
.mtr-correction-form input,.mtr-correction-form select,.mtr-correction-form textarea,.mtr-spec-workbench textarea{width:100%;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);padding:8px 9px;color:var(--ink);font:inherit}
.mtr-correction-form textarea,.mtr-spec-workbench textarea{resize:vertical;min-height:60px}
.mtr-spec-workbench textarea{font:11px var(--font-mono);line-height:1.45;min-height:180px}
.mtr-spec-group{display:grid;gap:9px;margin:0;padding:12px;border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--muted-surface);min-width:0}
.mtr-spec-group legend{padding:0 5px;font-weight:600;color:var(--ink)}
.mtr-spec-group>.muted-note{margin:0}
.mtr-guided-editor{display:grid;gap:10px;min-width:0}
.mtr-guided-row{display:grid;grid-template-columns:minmax(110px,1.2fr) repeat(3,minmax(70px,.7fr)) 68px minmax(150px,1.4fr);gap:7px;align-items:end;padding-top:9px;border-top:1px solid var(--rule)}
.mtr-guided-row label,.mtr-spec-list-field{display:grid;gap:4px;font-size:10px;color:var(--ink-soft)}
.mtr-guided-label{min-width:0;padding-bottom:7px}.mtr-guided-label b,.mtr-guided-label small{display:block;overflow-wrap:anywhere}.mtr-guided-label b{font-size:12px;color:var(--ink)}.mtr-guided-label small{margin-top:2px;font:10px var(--font-mono);color:var(--ink-faint)}
.mtr-guided-row input,.mtr-spec-list-field textarea{width:100%;min-width:0;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);padding:7px 8px;color:var(--ink);font:inherit}
.mtr-check-field{align-items:center}.mtr-check-field input{width:18px;height:18px;justify-self:start}.mtr-guided-evidence{grid-column:span 1}
.mtr-spec-list-field{padding-top:8px;border-top:1px solid var(--rule)}.mtr-spec-list-field span{font-weight:500;color:var(--ink)}.mtr-spec-list-field small{color:var(--ink-faint)}.mtr-spec-list-field textarea{font:11px var(--font-mono);resize:vertical}
.mtr-spec-empty{padding:8px 0;color:var(--ink-faint);font-size:12px}
.mtr-spec-advanced{border-top:1px solid var(--rule);padding-top:8px}.mtr-spec-advanced summary{cursor:pointer;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--struct-ink);font-weight:500}.mtr-spec-advanced pre{max-height:240px;overflow:auto;margin:8px 0 0;padding:10px;background:var(--muted-surface);color:var(--ink-soft);font:10px/1.45 var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere}
.mtr-spec-errors{padding:8px 10px;background:var(--status-blocker-soft);border:1px solid var(--border);color:var(--ink-soft);font-size:12px}.mtr-spec-errors b{color:var(--status-blocker)}.mtr-spec-errors ul{margin:6px 0 0;padding-left:18px}
.mtr-next-actions,.mtr-checklist-workbench{display:grid;gap:10px;margin:0 0 14px;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--card);padding:12px}
.mtr-next-list{display:grid;gap:6px}.mtr-next-row{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start;width:100%;padding:9px 10px;border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--panel);color:var(--ink);text-align:left;cursor:pointer}.mtr-next-row:hover{border-color:var(--struct-axis);background:var(--struct-axis-soft)}.mtr-next-row:focus-visible{outline:2px solid var(--struct-axis);outline-offset:2px}.mtr-next-marker{font:600 16px var(--font-mono);color:var(--action-ink)}.mtr-next-row b,.mtr-next-row small{display:block}.mtr-next-row b{font-size:12px}.mtr-next-row small{margin-top:2px;color:var(--ink-soft);font-size:11px;line-height:1.4}
.mtr-checklist-summary,.mtr-checklist-coverage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mtr-checklist-summary>div,.mtr-checklist-coverage{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--muted-surface);padding:9px 10px;min-width:0}.mtr-checklist-summary span,.mtr-checklist-coverage span{display:block;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}.mtr-checklist-summary strong,.mtr-checklist-coverage strong{display:block;margin-top:4px;color:var(--ink);overflow-wrap:anywhere}.mtr-checklist-summary small,.mtr-checklist-coverage small{display:block;margin-top:3px;color:var(--ink-faint);font-size:10px;overflow-wrap:anywhere}.mtr-checklist-coverage-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mtr-checklist-unresolved{border-top:1px solid var(--rule);padding-top:9px}.mtr-checklist-unresolved>b{font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--warn-ink);font-weight:500}.mtr-checklist-unresolved ul{display:grid;gap:6px;margin:7px 0 0;padding:0;list-style:none}.mtr-checklist-unresolved li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:7px 0;border-bottom:1px solid var(--rule);font-size:12px}.mtr-checklist-unresolved li small{grid-column:1;color:var(--ink-faint);font-size:11px}.mtr-checklist-unresolved li .linkbtn{grid-column:2;grid-row:1/3;align-self:center}.mtr-checklist-clear,.mtr-checklist-loading{margin:0;padding:10px;border:1px solid var(--rule);background:var(--muted-surface);color:var(--ink-soft);font-size:12px}.mtr-checklist-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mtr-checklist-empty{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mtr-inline-reason{color:var(--ink-faint);font-size:11px;line-height:1.4}
.mtr-workbench-approved{font:10px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--pos);align-self:center;font-weight:500}
.mtr-matrix-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:14px;align-items:start}
.mtr-table.matrix-v2{gap:0}
.mtr-table.matrix-v2 .mtr-row{grid-template-columns:.95fr minmax(180px,1.35fr) minmax(150px,1fr) minmax(150px,1fr) minmax(112px,.7fr)}
.mtr-row.annotation-focus{outline:2px solid var(--struct-axis);outline-offset:-2px;background:var(--struct-axis-soft)}
.mtr-row.evidence-focus{background:var(--card)}
.mtr-group{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--rule);background:var(--muted-surface)}
.mtr-group h4{margin:0;font-family:var(--font-display);font-size:13px;letter-spacing:-.01em;color:var(--ink);font-stretch:125%}
.mtr-group span{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.mtr-evidence{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px;border-top:1px solid var(--rule);background:var(--canvas)}
.mtr-evidence-col{min-width:0;border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--card);padding:9px 10px}
.mtr-evidence-col b{display:block;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px;font-weight:500}
.mtr-evidence-col p{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.42;overflow-wrap:anywhere}
.mtr-evidence-col small{display:block;margin-top:5px;font-family:var(--font-mono);font-size:10px;color:var(--ink-faint);line-height:1.35}
.mtr-evidence-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:7px}
.mtr-preview-link{margin-top:7px;font-size:10px}
.mtr-row-details{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:0 12px 12px;background:var(--muted-surface)}
.mtr-row-details:empty{display:none}
.mtr-refs,.mtr-condition-panel,.mtr-row-finding,.mtr-charpy-readings{min-width:0;border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--card);padding:9px 10px}
.mtr-refs>b,.mtr-condition-panel>b,.mtr-row-finding>b,.mtr-charpy-readings>b{display:block;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-weight:500}
.mtr-refs>div{display:flex;flex-wrap:wrap;gap:6px}
.mtr-refs a,.mtr-refs span{display:inline-flex;align-items:center;max-width:100%;padding:3px 6px;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--muted-surface);font-family:var(--font-mono);font-size:10px;line-height:1.2;color:var(--ink-soft);text-decoration:none;overflow:hidden;text-overflow:ellipsis}
.mtr-refs a:hover{border-color:var(--ink-faint);color:var(--ink)}
.mtr-condition-panel dl{display:grid;gap:5px;margin:0}
.mtr-condition-panel dl div{display:grid;grid-template-columns:minmax(95px,.7fr) minmax(0,1fr);gap:8px;align-items:start}
.mtr-condition-panel dt{font-family:var(--font-ui);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.mtr-condition-panel dd{margin:0;font-size:12px;color:var(--ink-soft);overflow-wrap:anywhere}
.mtr-row-finding p{margin:0 0 6px;font-size:12px;line-height:1.42;color:var(--ink-soft);overflow-wrap:anywhere}
.mtr-row-finding small{display:block;font-family:var(--font-mono);font-size:10px;line-height:1.35;color:var(--ink-faint);overflow-wrap:anywhere}
.mtr-row-link{display:inline-block;margin-top:4px;font-size:10px}
.mtr-side-stack{position:sticky;top:14px;display:grid;gap:12px;max-height:calc(100vh - 170px);overflow:auto}
.mtr-evidence-preview,.mtr-annotations{display:grid;gap:10px;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--card);padding:12px;min-width:0}
.mtr-evidence-preview[hidden],.mtr-annotations[hidden]{display:none}
.mtr-preview-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mtr-preview-tabs button{border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--muted-surface);padding:7px 8px;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;font-weight:500}
.mtr-preview-tabs button.on,.mtr-preview-tabs button[aria-pressed="true"]{border-color:var(--action);background:var(--accent);color:var(--action-ink)}
.mtr-preview-source{display:grid;grid-template-columns:minmax(160px,42%) minmax(0,1fr);gap:10px;align-items:start}
.mtr-preview-source.digital{grid-template-columns:minmax(0,1fr)}
.mtr-source-sheet{position:relative;aspect-ratio:8.5/11;border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--canvas);overflow:hidden}
.mtr-source-sheet--live{background:var(--muted-surface)}
.mtr-source-page{display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0}
.mtr-source-region{position:absolute;border:2px solid var(--markup);background:color-mix(in srgb,var(--markup) 12%,transparent);box-shadow:0 0 0 2px rgba(255,255,255,.78);z-index:1}
.mtr-source-empty{position:absolute;inset:0;display:grid;place-items:center;padding:10px;text-align:center;font:10px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);z-index:0;font-weight:500}
.mtr-source-details{min-width:0}
.mtr-source-details>span{display:block;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px;font-weight:500}
.mtr-source-details strong{display:block;font-size:12px;color:var(--ink);overflow-wrap:anywhere;margin-bottom:7px}
.mtr-source-details dl{display:grid;gap:4px;margin:0}
.mtr-source-details dl div{display:grid;grid-template-columns:62px minmax(0,1fr);gap:6px;align-items:start}
.mtr-source-details dt{font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.mtr-source-details dd{margin:0;font-size:11px;line-height:1.35;color:var(--ink-soft);overflow-wrap:anywhere}
.mtr-preview-raw{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--muted-surface);padding:9px 10px}
.mtr-preview-raw b{display:block;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px;font-weight:500}
.mtr-preview-raw p{margin:0;font-size:12px;line-height:1.42;color:var(--ink-soft);overflow-wrap:anywhere}
.mtr-preview-alt{justify-self:start;font-size:10px}
.mtr-matrix-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:12px}
.mtr-filter-chips{display:flex;flex-wrap:wrap;gap:6px}
.mtr-filter-chip{border:1px solid var(--rule-strong);border-radius:999px;background:var(--muted-surface);padding:5px 10px;font:10px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;font-weight:500}
.mtr-filter-chip.on{border-color:var(--action);background:var(--accent);color:var(--action-ink)}
.mtr-filter-chip b{margin-left:4px}
.mtr-matrix-search,.mtr-matrix-compare{min-width:180px;flex:1}
.mtr-group{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-top:1px solid var(--rule);background:var(--muted-surface);padding:8px 10px;cursor:pointer;text-align:left}
.mtr-group h4{margin:0;font-size:12px}
.mtr-group span{font:10px var(--font-ui);color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;font-weight:500}
.mtr-group.collapsed{opacity:.85}
.mtr-ocr-banner{display:grid;gap:4px;border:1px solid var(--status-warning);background:var(--status-warning-soft);border-radius:var(--radius-lg);padding:10px 12px;margin-bottom:12px}
.mtr-ocr-banner.blocked{border-color:var(--status-blocker);background:var(--status-blocker-soft)}
.mtr-ocr-banner strong{font-size:12px}
.mtr-ocr-banner span{font-size:12px;color:var(--ink-soft)}
.mtr-register-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px;align-items:end}
.mtr-register-list,.mtr-spec-coverage{display:grid;gap:8px}
.mtr-compare-panel{border:1px solid var(--rule-strong);border-radius:var(--radius-lg);padding:12px;margin-bottom:12px;background:var(--card)}
.mtr-compare-head{display:grid;gap:4px;margin-bottom:10px}
.mtr-modal{border:none;padding:0;background:transparent;max-width:min(520px,92vw)}
.mtr-modal::backdrop{background:color-mix(in srgb,var(--navy) 45%,transparent)}
.mtr-modal-card{display:grid;gap:12px;background:var(--card);border:1px solid var(--rule-strong);border-radius:6px;padding:18px;box-shadow:var(--shadow-overlay)}
.mtr-modal-card h3{margin:0}
.mtr-verdict-action{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;justify-content:flex-start;min-width:0;max-width:none}
.mtr-annotations-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--rule);padding-bottom:9px}
.mtr-annotations-head h4{margin:0;font-family:var(--font-display);font-size:13px;letter-spacing:-.01em;color:var(--ink);font-stretch:125%}
.mtr-annotations-head span{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;font-weight:500}
.mtr-annotation-card{display:grid;gap:7px;border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--muted-surface);padding:10px;min-width:0}
.mtr-annotation-card.editing{background:var(--card)}
.mtr-annotation-top{display:flex;align-items:start;justify-content:space-between;gap:8px}
.mtr-annotation-top b{font-size:13px;line-height:1.35;color:var(--ink);overflow-wrap:anywhere}
.mtr-annotation-top span,.mtr-annotation-card small{font-family:var(--font-mono);font-size:10px;line-height:1.35;color:var(--ink-faint);overflow-wrap:anywhere}
.mtr-annotation-card p{margin:0;font-size:12px;line-height:1.4;color:var(--ink-soft);overflow-wrap:anywhere}
.mtr-annotation-card label{display:grid;gap:4px;font-size:11px;color:var(--ink-faint)}
.mtr-annotation-card textarea{resize:vertical;min-height:70px}
.mtr-annotation-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.linkbtn.danger{color:var(--neg)}
.mtr-findings-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 10px}
.mtr-findings-head h4{margin:0;font-family:var(--font-display);font-size:13px;letter-spacing:-.01em;font-stretch:125%}
.mtr-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.mtr-findings{display:grid;gap:10px}
.mtr-finding{border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--card);padding:13px 14px;box-shadow:0 1px 0 color-mix(in srgb,var(--card) 65%,transparent) inset}
.mtr-finding-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.mtr-finding p{margin:0 0 10px;color:var(--ink)}
.mtr-finding-note{font-size:12px;color:var(--ink-soft);border-top:1px solid var(--rule);padding-top:8px;margin-top:8px}
.mtr-finding-note span{display:block;font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:2px;font-weight:500}
.mtr-review-dock{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:184px;margin-top:16px;border:1px solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--card);overflow:hidden;box-shadow:var(--shadow)}
.mtr-review-dock[hidden]{display:none}
.mtr-dock-tabs{border-right:1px solid var(--rule);background:var(--muted-surface)}
.mtr-dock-tabs button{display:block;width:100%;min-height:44px;text-align:left;padding:13px 16px;border:0;border-bottom:1px solid var(--rule);background:transparent;font:12px var(--font-mono);color:var(--ink-soft);cursor:pointer}
.mtr-dock-tabs button.on{color:var(--action-ink);background:var(--card);font-weight:600}
.mtr-dock-tabs b{float:right;font:10px var(--font-mono);color:var(--ink-faint)}
.mtr-dock-body{min-width:0;display:flex;flex-direction:column}
.mtr-dock-panel{display:none;min-height:0;height:100%}
.mtr-dock-panel.on{display:flex;flex-direction:column}
.mtr-comment-form input{font-family:var(--font-ui)}
.mtr-copilot{background:var(--card);margin:0}
.mtr-copilot .copilot-panel{display:grid;gap:8px}
.mtr-copilot .copilot-result{margin-top:2px}
.mtr-decision-assist{border-top:1px solid var(--rule);padding-top:10px;margin-top:4px}
.mtr-decision-assist .copilot-result{margin-top:8px}

/* card grids (standards / templates) */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;padding:22px 0 32px}
.std-source-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.std-card,.tpl-card{background:var(--panel);border:1px solid var(--rule-strong);border-radius:var(--radius-lg);padding:17px 18px;box-shadow:var(--shadow)}
.std-card{cursor:pointer;transition:transform .12s,border-color .12s,box-shadow .12s}
.std-card:hover,.std-card.on{border-color:var(--action);transform:translateY(-1px);box-shadow:var(--shadow)}
.std-card.on{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--action) 16%,transparent),var(--shadow)}
.std-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.std-tag{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--struct-axis);background:var(--struct-axis-soft);padding:3px 7px;border-radius:var(--radius-md);font-weight:500}
.std-state{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.std-state.on{color:var(--pos)}
.std-card h3,.tpl-card h3{font-family:var(--font-display);font-weight:700;font-stretch:125%;font-size:16px;margin:0 0 6px;color:var(--ink)}
.std-card p,.tpl-card p{font-size:13px;color:var(--ink-soft);line-height:1.5;margin:0}
.std-meta{font-family:var(--font-ui);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin-top:13px;border-top:1px solid var(--rule);padding-top:11px;font-weight:500}
.std-rule-browser{grid-column:1/-1;background:var(--panel);border:1px solid var(--rule-strong);box-shadow:var(--shadow);padding:18px;margin-top:2px}
.std-browser-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;border-bottom:1px solid var(--rule);padding-bottom:16px;margin-bottom:14px}
.std-browser-head h3{font-family:var(--font-display);font-size:22px;font-weight:700;font-stretch:125%;margin:4px 0 4px}
.std-browser-head p{max-width:720px;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.5}
.std-search{display:block;min-width:260px}
.std-search span{display:block;font-family:var(--font-ui);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-weight:500}
.std-search input{width:100%;border:1px solid var(--rule-strong);background:var(--card);padding:9px 10px;font:12px var(--font-ui);color:var(--ink)}
.std-rules{display:grid;gap:10px}
.std-rule{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:14px 15px;border:1px solid var(--rule);background:var(--card)}
.std-rule.draft{border-color:color-mix(in srgb,var(--struct-axis) 42%,transparent);background:var(--struct-axis-soft)}
.std-rule-id{font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;color:var(--ink-faint);overflow-wrap:anywhere}
.std-rule-id span{margin-left:8px;color:var(--struct-axis);text-transform:uppercase}
.std-rule h4{font-size:15px;margin:5px 0 7px;color:var(--ink);font-weight:600}
.std-rule p{margin:0;color:var(--ink-soft);font-size:13px;line-height:1.48}
.std-rule .std-why,.std-rule .std-standard{margin-top:7px}
.std-rule p b{color:var(--ink)}
.std-rule-actions{display:flex;gap:10px;align-items:flex-start;white-space:nowrap}
.std-rule-actions .warn{color:var(--neg)}
.std-rule-editor{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--rule);padding-top:12px}
.std-rule-editor label{display:flex;flex-direction:column;gap:6px;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.std-rule-editor input,.std-rule-editor textarea{font:13px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--ink);border:1px solid var(--rule-strong);padding:9px;background:var(--card);resize:vertical}
.std-rule-editor label:nth-child(n+2){grid-column:1/-1}
.std-editor-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center}
.std-empty{font-size:13px;color:var(--ink-soft);border:1px dashed var(--rule-strong);background:var(--card);padding:18px}
.std-empty code{font-family:var(--font-mono);font-size:12px}
.tpl-fams{display:flex;flex-wrap:wrap;gap:6px;margin:13px 0}
.tpl-fams span{font-family:var(--font-ui);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:var(--muted-surface);border:1px solid var(--rule);border-radius:var(--radius-md);padding:3px 7px;font-weight:500}
.tpl-card.on{border-color:var(--action)}
.tpl-card .btn{margin-top:13px}

/* review profiles */
.rp-module-toggle{display:flex;gap:8px;margin:0 0 16px}
.rp-module-toggle .btn[aria-selected="true"]{background:var(--action);color:var(--on-fill);border-color:var(--action)}
.rp-active{margin:18px 0 14px;font-size:13px;color:var(--ink-soft)}
.rp-active .linkbtn{margin-left:10px}
.rp-editor{max-width:720px}
.rp-hint{font-size:13px;color:var(--ink-faint)}
.rp-fam{margin:14px 0}
.rp-fam h4{font-family:var(--font-ui);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 6px;font-weight:500}
.rp-rule{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--rule)}
.rp-en{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}
.rp-rule select{font-family:var(--font-mono);font-size:11px;padding:4px 6px;border:1px solid var(--rule-strong);background:var(--panel);border-radius:var(--radius-md)}

/* mtr batch dossier actions */
.mtr-batch-actions{margin:10px 0 4px}

/* standards console */
.standards-console-wrap{max-width:none;padding:28px 28px 40px}
.stdc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:18px;border-bottom:1px solid var(--rule)}
.stdc-head h2{font-family:var(--font-display);font-size:28px;font-stretch:125%;font-weight:700;margin:4px 0 4px;color:var(--ink)}
.stdc-head p{margin:0;color:var(--ink-soft);font-size:13px}
.stdc-head-actions{display:flex;align-items:center;gap:12px}
.stdc-search{position:relative;display:block;min-width:310px}
.stdc-search::after{content:"⌕";position:absolute;right:11px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);color:var(--ink-faint)}
.stdc-search input{width:100%;height:36px;border:1px solid var(--rule-strong);background:var(--card);padding:0 34px 0 12px;font:12px var(--font-ui);color:var(--ink)}
.stdc-tabs,.module-tabs{display:flex;gap:28px;border-bottom:1px solid var(--rule);margin-bottom:12px}
.stdc-tabs button,.module-tabs button{border:0;background:transparent;padding:14px 0 12px;font:600 12px var(--font-ui);color:var(--ink-soft);cursor:pointer;position:relative}
.stdc-tabs button.on,.stdc-tabs button[aria-selected="true"],.module-tabs button.on,.module-tabs button[aria-selected="true"]{color:var(--ink)}
.stdc-tabs button.on::after,.stdc-tabs button[aria-selected="true"]::after,.module-tabs button.on::after,.module-tabs button[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--action)}
a.btn,a.linkbtn,a.docs-link{text-decoration:none;display:inline-flex;align-items:center}
.tab-count{font:600 10px var(--font-mono);color:var(--ink-faint);margin-left:5px;letter-spacing:.04em}
.tab-count.blocker{color:var(--neg)}
.stdc-console{min-height:620px}
.stdc-layout{display:grid;grid-template-columns:300px minmax(430px,1fr) minmax(360px,38vw);gap:0;border:1px solid var(--rule-strong);background:var(--card);box-shadow:var(--shadow)}
.stdc-library,.stdc-editor,.stdc-live{min-width:0;min-height:620px}
.stdc-library{border-right:1px solid var(--rule);background:var(--muted-surface)}
.stdc-editor{border-right:1px solid var(--rule);background:var(--card)}
.stdc-live{background:var(--muted-surface)}
.stdc-pane-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid var(--rule)}
.stdc-pane-head b,.stdc-section-title{font:600 12px var(--font-ui);color:var(--ink)}
.stdc-filter{padding:10px 12px;border-bottom:1px solid var(--rule)}
.stdc-filter select,.stdc-rule-title select,.stdc-live-head select,.stdc-testbar select{width:100%;border:1px solid var(--rule-strong);background:var(--card);padding:8px 30px 8px 9px;font:11px var(--font-ui);color:var(--ink)}
.stdc-lib-head{display:grid;grid-template-columns:1fr 64px;gap:10px;padding:8px 12px;font:600 10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--rule)}
.stdc-lib-list{max-height:calc(100vh - 250px);overflow:auto;padding:6px}
.stdc-std{border-bottom:1px solid var(--rule)}
.stdc-std-row{display:grid;grid-template-columns:18px minmax(0,1fr) 42px 12px;gap:8px;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:9px 7px;cursor:pointer;color:var(--ink)}
.stdc-std.on .stdc-std-row,.stdc-std-row:hover{background:var(--card)}
.stdc-std-row input{accent-color:var(--action)}
.stdc-std-row b{display:block;font-size:12px;line-height:1.15}
.stdc-std-row small{display:block;margin-top:2px;font:10px var(--font-ui);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;font-weight:500}
.stdc-std-row i{font-style:normal;font:10px var(--font-mono);color:var(--ink-soft);text-align:right}
.stdc-std-row em{width:7px;height:7px;border-radius:50%;background:var(--rule-strong)}
.stdc-std-row em.live{background:var(--pos)}
.stdc-std-row em.draft{background:var(--warn)}
.stdc-cats{padding:0 0 8px 32px}
.stdc-cat{font-size:12px;color:var(--ink-soft);padding:6px 8px}
.stdc-cat.on{background:var(--card)}
.stdc-cat>span{font-weight:500;color:var(--ink)}
.stdc-cat>b{float:right;font:10px var(--font-mono);color:var(--ink-faint)}
.stdc-cat-rules{clear:both;display:grid;gap:3px;padding-top:7px}
.stdc-cat-rules button{border:0;background:transparent;text-align:left;padding:6px 8px;font-size:11px;color:var(--ink-soft);cursor:pointer;border-radius:var(--radius-md)}
.stdc-cat-rules button.on,.stdc-cat-rules button:hover{background:var(--accent);color:var(--action-ink)}
.stdc-cat-rules em{font-style:normal;font:10px var(--font-ui);color:var(--ink-faint);text-transform:uppercase;font-weight:500}
.stdc-breadcrumb{padding:13px 16px 0;font:10px var(--font-mono);color:var(--ink-faint)}
.stdc-breadcrumb span{margin:0 6px;color:var(--ink-soft)}
.stdc-rule-title{display:flex;justify-content:space-between;gap:14px;padding:8px 16px 12px;border-bottom:1px solid var(--rule)}
.stdc-rule-title h3{margin:0 0 8px;font-size:20px;color:var(--ink)}
.stdc-rule-state{display:inline-flex;align-items:center;gap:6px;font:10px var(--font-ui);text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.stdc-rule-state::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--rule-strong)}
.stdc-rule-state.on{color:var(--pos)}
.stdc-rule-state.on::before{background:var(--pos)}
.stdc-rule-form{padding:14px 16px 16px;display:grid;gap:12px}
.stdc-rule-form label{display:flex;flex-direction:column;gap:6px;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.stdc-rule-form input,.stdc-rule-form textarea,.stdc-rule-form select{border:1px solid var(--rule-strong);background:var(--card);padding:9px 10px;font:13px var(--font-ui);color:var(--ink);text-transform:none;letter-spacing:0;resize:vertical}
.stdc-rule-form input:disabled{background:var(--muted-surface);color:var(--ink-soft)}
.stdc-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stdc-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid var(--rule);padding-top:12px}
.stdc-toggle{margin-right:auto;flex-direction:row!important;align-items:center;font-family:var(--font-ui)!important;text-transform:none!important;letter-spacing:0!important;color:var(--ink-soft)!important}
.stdc-toggle input{accent-color:var(--pos)}
.stdc-history{padding:0 16px 16px}
.stdc-history-grid{display:grid;grid-template-columns:70px 92px minmax(0,1fr) 90px;gap:8px 10px;margin-top:8px;font-size:11px;color:var(--ink-soft)}
.stdc-history-grid b{font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.stdc-live-head{display:grid;grid-template-columns:1fr minmax(170px,260px);gap:12px;align-items:center;padding:13px 14px;border-bottom:1px solid var(--rule);background:var(--card)}
.stdc-live-head b{font-size:12px;color:var(--ink)}
.stdc-preview-frame{position:relative;margin:12px;border:1px solid var(--rule-strong);background:var(--card);min-height:320px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.stdc-preview-frame img{display:block;width:100%;height:auto}
.stdc-preview-empty{padding:40px 20px;color:var(--ink-faint);font:12px var(--font-mono)}
.stdc-region{position:absolute;border:2px solid var(--markup);background:color-mix(in srgb,var(--markup) 8%,transparent);box-shadow:0 0 0 2px rgba(255,255,255,.72)}
.stdc-callout{position:absolute;right:16px;top:16px;max-width:220px;background:var(--card);border:1px solid var(--rule-strong);box-shadow:var(--shadow);padding:9px 10px;font:10px/1.4 var(--font-mono);color:var(--ink-soft)}
.stdc-callout.fail{border-color:color-mix(in srgb,var(--status-failure) 45%,transparent);color:var(--status-failure)}
.stdc-testbar{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:10px;align-items:end;padding:0 12px 12px}
.stdc-testbar label{font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.stdc-testbar label select{display:block;margin-top:6px}
.stdc-results{display:grid;gap:8px;padding:0 12px 14px}
.stdc-result{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:start;background:var(--card);border:1px solid var(--rule);padding:10px 11px;font-size:12px;color:var(--ink-soft)}
.stdc-result b{font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--rule-strong);padding:2px 5px;text-align:center;font-weight:500}
.stdc-result small{display:block;margin-top:3px;font:10px var(--font-mono);color:var(--ink-faint)}
.stdc-result.fail b{color:var(--status-failure);border-color:color-mix(in srgb,var(--status-failure) 38%,transparent);background:var(--status-failure-soft)}
.stdc-result.pass b{color:var(--pos);border-color:color-mix(in srgb,var(--status-pass) 38%,transparent);background:var(--pos-soft)}
.stdc-result.warn b{color:var(--status-warning);border-color:color-mix(in srgb,var(--status-warning) 38%,transparent);background:var(--status-warning-soft)}
.stdc-result.muted{display:block;color:var(--ink-faint);font-family:var(--font-mono)}
.stdc-flat{border:1px solid var(--rule-strong);background:var(--card);box-shadow:var(--shadow);padding:14px;display:grid;gap:10px}
.stdc-local-notice{font:500 11px var(--font-ui);line-height:1.4;color:var(--ink-soft);background:var(--struct-axis-soft);border:1px solid var(--rule-strong);padding:8px 11px;margin:0}
.stdc-editor>.stdc-local-notice{margin:12px 14px 0}
.stdc-check-row{display:grid;grid-template-columns:minmax(0,1fr) 280px 70px;gap:14px;align-items:center;border:1px solid var(--rule);background:var(--card);text-align:left;padding:12px;cursor:pointer}
.stdc-check-row:hover{border-color:var(--action);background:var(--action-soft)}
.stdc-check-row b{font-size:13px;color:var(--ink)}
.stdc-check-row span{font-size:12px;color:var(--ink-soft)}
.stdc-check-row i{font-style:normal;font:10px var(--font-ui);color:var(--ink-faint);text-transform:uppercase;text-align:right;font-weight:500}
.review-profile-status{margin:10px 0 0;font-size:13px;color:var(--ink-soft)}
.stdc-profiles-error{display:grid;gap:10px;padding:14px;border:1px solid var(--rule-strong);background:var(--card)}
.stdc-profiles-error p{margin:0;font-size:13px;color:var(--ink-soft);line-height:1.45}
.stdc-policy{display:grid;grid-template-columns:20px minmax(0,1fr) 70px;gap:10px;align-items:start;border:1px solid var(--rule);padding:13px;background:var(--card)}
.stdc-policy input{accent-color:var(--pos)}
.stdc-policy b{display:block;font-size:13px;color:var(--ink)}
.stdc-policy small{display:block;margin-top:4px;font-size:12px;color:var(--ink-soft);line-height:1.4}
.stdc-policy em{font-style:normal;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);text-align:right;font-weight:500}
@media (max-width:1280px){
  .stdc-layout{grid-template-columns:260px minmax(360px,1fr);}.stdc-live{grid-column:1/-1;border-top:1px solid var(--rule);border-right:0}.stdc-editor{border-right:0}
}

/* audit timeline */
.timeline{margin:24px 0 36px;padding-left:6px}
.tl-item{position:relative;padding:0 0 20px 26px;border-left:1px solid var(--rule-strong);margin-left:6px}
.tl-item:last-child{border-left-color:transparent;padding-bottom:0}
.tl-item::before{content:"";position:absolute;left:-5px;top:2px;width:9px;height:9px;border-radius:50%;background:var(--struct-axis);box-shadow:0 0 0 3px var(--canvas)}
.tl-when{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.tl-what{font-size:13px;color:var(--ink);margin-top:3px}
.tl-what b{font-weight:640}
.tl-who{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);margin-top:3px}
.audit-deleted-docs{border:1px solid color-mix(in srgb,var(--status-warning) 28%,transparent);background:var(--status-warning-soft);padding:14px 16px;margin:0 0 20px 0;display:grid;gap:10px}
.audit-deleted-docs>div:first-child{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid color-mix(in srgb,var(--status-warning) 18%,transparent);padding-bottom:10px}
.audit-deleted-docs b{font-size:13px;color:var(--ink)}
.audit-deleted-docs p{margin:2px 0 0;font-size:12px;color:var(--ink-soft);line-height:1.4}
.audit-deleted-row{display:grid;grid-template-columns:120px minmax(140px,260px) minmax(0,1fr);gap:12px;align-items:start;font-size:12px;color:var(--ink-soft)}
.audit-deleted-row span{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.audit-deleted-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.audit-deleted-row em{font-style:normal;line-height:1.35;color:var(--ink-soft)}

/* settings */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:22px 0 32px}
.set-panel .pb{padding:14px 18px}
.set-kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:13px}
.set-kv:last-child{border-bottom:none}
.set-kv span{color:var(--ink-faint)}
.set-kv b{color:var(--ink)}
.set-radio{display:flex;gap:11px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--rule)}
.set-radio:last-child{border-bottom:none}
.set-radio b{display:block;font-size:13px;color:var(--ink)}
.set-radio small{display:block;font-size:12px;color:var(--ink-soft);margin-top:3px}
.set-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--rule);font-size:13px;color:var(--ink)}
.set-row:last-child{border-bottom:none}
.set-coming-soon{margin:0;font-size:13px;line-height:1.45;color:var(--ink-soft)}
.copilot-status{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--rule);background:color-mix(in srgb,var(--card) 48%,transparent);padding:10px 12px;margin-bottom:12px}
.copilot-status span{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.copilot-status b{font-size:13px;color:var(--ink)}
.copilot-status.on{border-color:color-mix(in srgb,var(--status-pass) 35%,transparent);background:var(--pos-soft)}
.copilot-status.off{border-style:dashed}
.copilot-status.sample{background:var(--struct-axis-soft);border-color:color-mix(in srgb,var(--struct-axis) 35%,transparent)}
.copilot-note{font-size:13px;color:var(--ink-soft);line-height:1.55;margin:0 0 12px}
.copilot-select{display:block;margin-bottom:12px}
.copilot-select span{display:block;font-family:var(--font-ui);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-weight:500}
.copilot-select select{width:100%;font-family:var(--font-ui);font-size:13px;font-weight:500;color:var(--ink);padding:9px 32px 9px 10px;border:1px solid var(--rule-strong);border-radius:0;background:var(--panel);appearance:none}
.copilot-select select:focus-visible{outline:2px solid var(--struct-axis);outline-offset:1px}
.copilot-candidates{display:grid;gap:8px}
.copilot-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-top:1px solid var(--rule);padding-top:8px;font-size:12px}
.copilot-row:first-child{border-top:none}
.copilot-row b{display:block;font-size:13px;color:var(--ink)}
.copilot-row small{display:block;font-family:var(--font-mono);font-size:10px;color:var(--ink-faint);margin-top:2px}
.copilot-row>span{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);text-align:right;max-width:190px;font-weight:500}
.copilot-row.ok>span{color:var(--pos)}

/* review workspace toolbar */
.rv-toolbar{display:flex;align-items:center;gap:14px;padding:10px 0;margin-top:6px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.hide-markup #markup{display:none}
.rv-menu-wrap .rv-menu{left:0;right:auto;min-width:196px}
.rv-menu-trigger{border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);color:var(--ink-soft);padding:7px 11px;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;font-weight:500}
.rv-menu-trigger:hover,.rv-menu-trigger[aria-expanded="true"]{border-color:var(--ink);background:var(--card);color:var(--ink)}
.rv-menu-item{font:12px var(--font-ui)!important;letter-spacing:normal!important;text-transform:none!important}
.rv-menu-item[role="menuitemradio"]::before{content:'○';display:inline-block;width:18px;color:var(--ink-faint)}
.rv-menu-item[role="menuitemradio"][aria-checked="true"]::before{content:'●';color:var(--struct-axis)}
.rv-menu-item[role="menuitemcheckbox"]::before{content:'□';display:inline-block;width:18px;color:var(--ink-faint)}
.rv-menu-item[role="menuitemcheckbox"][aria-checked="true"]::before{content:'✓';color:var(--struct-axis);font-weight:600}
.rv-menu-item.on{background:var(--struct-axis-soft);color:var(--ink)}
.rv-demo{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;padding:6px 11px;border:1px dashed var(--rule-strong);background:none;color:var(--ink-faint);border-radius:var(--radius-md);cursor:not-allowed;font-weight:500}
.review-stage-hidemarkup .markup{display:none}

/* review bottom timeline */
.rv-timeline{display:flex;gap:8px;align-items:center;padding:14px 0 4px;overflow-x:auto;border-top:1px solid var(--rule);margin-top:8px}

/* screenshot-faithful Reviews workspace */
.review-workspace{
  --rv-red:var(--action-ink);
  --rv-rail:var(--muted-surface);
  --rv-line:var(--border);
  --rv-muted:var(--ink-faint);
  padding:0;
}
.review-topline{
  display:grid;
  /* Two tiers instead of one dense band: the drawing identity holds the left
     column, while the severity summary and the tuning controls stack on the
     right — status above, actions below — so chips, slider, and buttons no
     longer compete on a single line. */
  grid-template-columns:minmax(220px,1fr) auto;
  grid-template-areas:"id summary" "id controls";
  align-items:center;
  gap:8px 18px;
  padding:12px 18px;
  border-bottom:1px solid var(--rv-line);
  background:color-mix(in srgb,var(--card) 84%,transparent);
}
.review-topline .review-doc-id{grid-area:id}
.review-topline .rh-summary{grid-area:summary;justify-self:end}
.review-topline .review-controls{grid-area:controls;justify-self:end}
.review-doc-id h1,.doc-name{
  font-family:var(--font-ui);
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  margin:0;
  text-transform:uppercase;
}
.review-controls{display:flex;align-items:center;gap:8px}
.review-save-state{margin-top:7px;font:10px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--pos);font-weight:500}
.review-progress{position:sticky;top:var(--topbar-h);z-index:24;display:flex;align-items:center;gap:9px;padding:9px 18px;border-bottom:1px solid color-mix(in srgb,var(--struct-axis) 28%,transparent);background:var(--struct-axis-soft);color:var(--struct-ink);font:11px var(--font-mono);letter-spacing:.04em}
.review-progress[hidden]{display:none}
.review-progress-dot{width:9px;height:9px;border-radius:50%;border:2px solid color-mix(in srgb,var(--struct-axis) 28%,transparent);border-top-color:var(--struct-axis);animation:review-progress-spin .8s linear infinite}
@keyframes review-progress-spin{to{transform:rotate(360deg)}}
.topbar .btn.primary.context-secondary{background:var(--card);color:var(--action-ink);border-color:var(--rule-strong)}
.topbar .btn.primary.context-secondary:hover{background:var(--action-soft);border-color:var(--action-ink)}
.drawing-share-panel{margin:0 0 12px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--panel,var(--muted-surface))}
.drawing-share-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.drawing-share-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.drawing-share-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--border)}
.drawing-share-row:first-child{border-top:0;padding-top:0}
.drawing-share-revoke{flex:0 0 auto}
.mtr-share-panel{margin:0 0 12px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--panel,var(--muted-surface))}
.mtr-share-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.mtr-share-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.mtr-share-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--border)}
.mtr-share-row:first-child{border-top:0;padding-top:0}
.mtr-share-revoke{flex:0 0 auto}
.mtr-share-status{display:inline-block;margin-left:8px;font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.mtr-share-status-active{color:var(--status-pass)}
.mtr-share-status-expired{color:var(--status-warning)}
.mtr-share-status-revoked{color:var(--status-failure)}
.rc-params{display:flex;align-items:center;gap:8px;padding-right:12px;margin-right:2px;border-right:1px solid var(--rule)}
.thresh.compact{min-width:185px}
.thresh.compact span{font-size:10px}
.review-lab{
  display:grid;
  grid-template-columns:clamp(218px,18vw,232px) minmax(640px,1fr) clamp(272px,22vw,304px);
  min-height:calc(100vh - var(--topbar-h));
  background:var(--muted-surface);
  border-top:1px solid color-mix(in srgb,var(--card) 70%,transparent);
}
.review-lab.findings-collapsed{grid-template-columns:minmax(640px,1fr) clamp(272px,22vw,304px)}
.review-lab.findings-collapsed .review-left{display:none}
.review-lab.evidence-collapsed{grid-template-columns:clamp(218px,18vw,232px) minmax(640px,1fr)}
.review-lab.evidence-collapsed .evidence-panel{display:none}
.review-lab.findings-collapsed.evidence-collapsed{grid-template-columns:minmax(0,1fr)}
.review-left,.evidence-panel{
  background:var(--rv-rail);
  border-right:1px solid var(--rv-line);
  min-height:inherit;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.evidence-panel{border-right:none;border-left:1px solid var(--rv-line)}
/* The evidence-sheet backdrop only exists at phone widths (see the <=760px
   block, which flips this to display:block). */
.ev-backdrop{display:none}
.review-left-head,.ep-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding:16px 16px 12px;
  border-bottom:1px solid var(--rv-line);
}
.ep-head{
  min-height:51px;
  padding:10px 12px;
  align-items:center;
  background:var(--card);
}
.doc-rev{
  margin-top:5px;
  font-family:var(--font-mono);
  font-size:10px;
  color:var(--rv-muted);
}
.review-status-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  padding:12px 14px;
  border-bottom:1px solid var(--rv-line);
}
.review-status-strip div{background:var(--card);padding:8px 9px;border:1px solid var(--rv-line)}
.review-status-strip b{display:block;color:var(--rv-red);font-size:18px;line-height:1;font-family:var(--font-display);font-stretch:125%}
.review-status-strip span{display:block;margin-top:5px;font-family:var(--font-ui);font-size:10px;color:var(--rv-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:500}
.sheet-search{display:block;padding:14px 14px 8px}
.sheet-search input,.comment-form input,.review-workspace input[type="search"]{
  width:100%;
  border:1px solid var(--rv-line);
  background:var(--card);
  padding:9px 10px;
  font:11px var(--font-mono);
  color:var(--ink);
}
.rail-title{
  font-family:var(--font-ui);
  color:var(--ink-faint);
  font-size:10px;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-weight:600;
}
.sheet-section{padding:0 14px 12px;border-bottom:1px solid var(--rv-line)}
.sheet-list{display:flex;flex-direction:column;gap:6px;margin-top:9px;max-height:180px;overflow:auto}
.sheet-row{
  display:grid;
  grid-template-columns:20px 58px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  border:1px solid transparent;
  background:transparent;
  padding:7px 6px;
  text-align:left;
  cursor:pointer;
  color:var(--ink-soft);
}
.sheet-row:hover,.sheet-row.on{background:var(--card);border-color:var(--rv-line);color:var(--ink)}
.sheet-row .sheet-no{font:11px var(--font-mono);color:var(--rv-muted)}
.sheet-row img{width:58px;height:42px;object-fit:cover;border:1px solid var(--rv-line);background:var(--card)}
.sheet-row .sheet-title{font-size:11px;font-weight:690}
.sheet-row .sheet-count{min-width:18px;height:18px;border-radius:50%;background:var(--rv-red);color:var(--on-fill);font:10px/18px var(--font-mono);text-align:center}
.review-findings{
  border:none;
  box-shadow:none;
  background:transparent;
  min-height:0;
  flex:1;
}
.review-findings .findings-head{display:block;padding:13px 14px 8px;background:transparent;border-bottom:none}
.review-findings .findings-toolbar{margin-top:8px}
.review-findings .findings-filter,.review-findings .facets,.review-findings .bulk{display:none}
.review-findings.filters-open .findings-filter{display:inline-flex}
.review-findings.filters-open .facets{display:flex}
.review-findings.filters-open .bulk{display:flex}
.review-findings .findings-list{max-height:none;overflow:auto;padding:0 10px 10px}
.review-findings .fam-head{display:none}
.review-findings .finding{
  position:relative;
  margin:0 0 6px;
  padding:10px 10px 10px 34px;
  border:1px solid var(--rv-line);
  border-left:1px solid var(--rv-line);
  background:var(--card);
  opacity:1;
  min-width:0;
  overflow:hidden;
}
.review-findings .finding::before{
  content:attr(data-callout-no);
  position:absolute;
  left:10px;
  top:11px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:var(--rv-red);
  color:var(--on-fill);
  font:10px/18px var(--font-mono);
  text-align:center;
}
.review-findings .finding.sel{border-color:var(--rule-strong);background:var(--card)}
.review-findings .finding.done{opacity:.82}
.review-findings .f-top{gap:6px}
.review-findings .f-sev{display:none}
.review-findings .f-fam{font-size:11px;text-transform:none;color:var(--ink);font-weight:600;min-width:0;overflow-wrap:anywhere}
.review-findings .f-conf-val,.review-findings .conf-bar,.review-findings .f-fix,.review-findings .f-evidence,.review-findings .f-actions,.review-findings .f-detail{display:none}
.review-findings .f-expl{font-size:11px;line-height:1.35;margin:4px 0;color:var(--ink-soft);overflow-wrap:anywhere}
.review-findings .f-rule-summary{margin-top:7px;min-width:0}
.review-findings .f-foot{font-size:10px;gap:4px;min-width:0}
.review-findings .src-chip{
  display:block;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.3;
}
.reviewer-disposition{
  padding:14px;
  border-top:1px solid var(--rv-line);
  background:var(--card);
}
.rd-selected{margin:9px 0 11px;color:var(--rv-muted);font-size:11px;line-height:1.35}
.rd-actions{display:grid;grid-template-columns:1fr;gap:8px}
.rd-actions .btn{text-align:center}
.rd-actions .resolve{display:none}
.review-canvas{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) 168px;
  min-width:0;
  background:var(--muted-surface);
}
.review-canvas .rv-toolbar{
  margin:0;
  padding:8px 12px;
  min-height:51px;
  border-bottom:1px solid var(--rv-line);
  background:var(--card);
  gap:8px;
  align-items:flex-start;
}
.zoom-inline{display:inline-flex;border:1px solid var(--rv-line);background:var(--card);overflow:hidden;border-radius:var(--radius-md)}
.finding-nav{display:inline-flex;border:1px solid var(--rv-line);background:var(--card);overflow:hidden;border-radius:var(--radius-md)}
.zoom-inline button,.finding-nav button{
  border:none;
  border-left:1px solid var(--rv-line);
  background:var(--card);
  color:var(--ink-soft);
  min-width:29px;
  padding:7px 8px;
  font:12px var(--font-mono);
  cursor:pointer;
}
.zoom-inline button:first-child,.finding-nav button:first-child{border-left:none}
.zoom-inline button:hover,.finding-nav button:hover{background:var(--struct-axis-soft);color:var(--struct-ink)}
.finding-nav button:disabled{opacity:.4;cursor:not-allowed;background:var(--card);color:var(--ink-faint)}
.review-panel-controls{display:inline-flex;border:1px solid var(--rv-line);background:var(--card);overflow:hidden;border-radius:var(--radius-md)}
.review-panel-controls button{border:0;border-left:1px solid var(--rv-line);padding:7px 9px;background:var(--card);color:var(--ink-soft);font:10px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;font-weight:500}
.review-panel-controls button:first-child{border-left:0}
.review-panel-controls button[aria-pressed="true"]{background:var(--struct-axis-soft);color:var(--struct-axis)}
.compare-select{
  border:1px solid var(--rv-line);
  background:var(--card);
  padding:8px 28px 8px 10px;
  font:11px var(--font-mono);
  color:var(--ink);
  cursor:pointer;
}
.compare-select:disabled{opacity:.55;cursor:not-allowed;background:var(--muted-surface);color:var(--ink-faint)}
.model-pair-select{max-width:220px}
.model-pair-select.has-suggestion{border-color:var(--struct-axis);box-shadow:inset 0 0 0 1px var(--struct-axis-soft)}
.drawing-pane{
  position:relative;
  padding:18px 18px 10px;
  min-height:0;
}
.canvas-hint{position:absolute;left:30px;right:30px;top:30px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--struct-axis) 24%,transparent);background:color-mix(in srgb,var(--card) 96%,transparent);box-shadow:var(--shadow);color:var(--ink-soft);font:11px var(--font-mono);line-height:1.35}
.canvas-hint[hidden]{display:none}
.canvas-hint button{flex:none;border:0;background:transparent;color:var(--struct-axis);font:10px var(--font-ui);text-transform:uppercase;cursor:pointer;text-decoration:underline;text-underline-offset:2px;font-weight:500}
.insp-kv b.needs-review{color:var(--warn-ink);font-weight:500}
.drawing-pane .stage{
  height:100%;
  max-height:calc(100vh - 320px);
  min-height:480px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--muted-surface);
  border:1px solid var(--rv-line);
  box-shadow:var(--shadow);
}
.stage-zoom{width:100%}
.stage img{max-height:calc(100vh - 340px);object-fit:contain;margin:0 auto}
.stage-minimap{
  position:absolute;
  right:18px;
  top:18px;
  width:116px;
  height:78px;
  border:1px solid var(--rv-line);
  background:var(--card) center/cover no-repeat;
  box-shadow:var(--shadow);
  z-index:6;
  opacity:.82;
  pointer-events:none;
}
.stage-minimap .mini-viewport{
  position:absolute;
  border:1px dashed var(--rv-red);
  background:color-mix(in srgb,var(--action) 5%,transparent);
}
.measure-readout{
  position:absolute;
  left:30px;
  bottom:72px;
  z-index:7;
  background:var(--card);
  border:1px solid var(--rv-line);
  padding:8px 10px;
  font:11px var(--font-mono);
  box-shadow:var(--shadow);
}
.review-dock{
  border-top:1px solid var(--rv-line);
  background:var(--card);
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  min-height:168px;
}
.dock-tabs{
  border-right:1px solid var(--rv-line);
  padding:0;
}
.dock-tabs button{
  display:block;
  width:100%;
  text-align:left;
  padding:13px 18px;
  border:none;
  border-bottom:1px solid var(--rv-line);
  background:var(--card);
  font:12px var(--font-mono);
  color:var(--ink-soft);
  cursor:pointer;
}
.dock-tabs button.on{color:var(--rv-red);font-weight:600}
.dock-body{min-width:0;display:flex;flex-direction:column}
.dock-panel{display:none;min-height:0;height:100%}
.dock-panel.on{display:flex;flex-direction:column}
.comment-list{flex:1;overflow:auto;padding:12px 18px;display:flex;gap:12px;flex-direction:column}
.comment-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--navy);color:var(--on-navy);font:12px/32px var(--font-mono);text-align:center}
.comment-bubble{font-size:12px;color:var(--ink);line-height:1.4}
.comment-bubble b{font-size:11px}
.comment-bubble time{margin-left:6px;color:var(--ink-faint);font:10px var(--font-mono)}
.comment-policy{display:grid;gap:4px;margin:0 18px 10px;padding:9px 10px;border:1px solid var(--rv-line);background:var(--muted-surface);color:var(--ink-soft);font-size:12px;line-height:1.35}
.comment-policy strong{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);font-weight:500}
.comment-form{display:grid;grid-template-columns:minmax(0,1fr) 36px 36px;gap:0;border-top:1px solid var(--rv-line)}
.comment-form input{border:none;border-right:1px solid var(--rv-line);padding:12px 14px}
.copilot-panel{padding:14px;overflow:auto}
.copilot-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.copilot-actions .linkbtn{border:1px solid var(--rule);background:var(--card);padding:7px 10px;text-decoration:none}
.copilot-actions .linkbtn.on{border-color:var(--struct-axis);background:var(--struct-axis-soft)}
.copilot-actions .linkbtn:disabled{opacity:.55;cursor:wait}
.copilot-note{margin:0 0 10px;color:var(--ink-soft);font-size:12px;line-height:1.45}
.copilot-result{border:1px solid var(--rule);background:var(--card);padding:12px 13px;box-shadow:var(--shadow)}
.copilot-result.busy{color:var(--ink-faint);font-style:italic}
.copilot-result p{margin:10px 0 0;white-space:normal;font-size:13px;line-height:1.55}
.copilot-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-family:var(--font-ui);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:500}
.copilot-meta b,.copilot-meta em{font-style:normal;color:var(--struct-axis);background:var(--struct-axis-soft);border:1px solid color-mix(in srgb,var(--struct-axis) 18%,transparent);padding:2px 6px}
.copilot-meta small{font:inherit;color:var(--ink-soft);text-transform:none;letter-spacing:0}
.evidence-panel{min-width:0}
.ep-head h2{
  margin:6px 0 0;
  font-size:15px;
  font-family:var(--font-display);
  text-transform:none;font-stretch:125%}
.evidence-body{padding:14px;overflow:auto}
.ev-card{
  border:1px solid var(--rv-line);
  background:var(--card);
  padding:11px;
  margin-bottom:12px;
  border-radius:var(--radius-md);
}
.ev-label{font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:7px;font-weight:500}
.ev-source-zone{height:86px;background:var(--muted-surface) center/cover no-repeat;border:1px solid var(--rv-line);position:relative;overflow:hidden}
.ev-source-zone::after{content:"";position:absolute;inset:18px 42px;border:1px dashed var(--markup)}
.ev-source-zone.none{display:flex;align-items:center;justify-content:center;padding:0 16px;text-align:center}
.ev-source-zone.none::after{display:none}
.ev-source-zone.none span{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);line-height:1.5;font-weight:500}
.ev-check{display:flex;justify-content:space-between;gap:12px;align-items:center}
.ev-check .fail{color:var(--rv-red);font:10px var(--font-mono)}
.rule-detail-card p{margin:9px 0 0;font-size:12px;line-height:1.45;color:var(--ink-soft)}
.rule-detail-card p b{color:var(--ink)}
.rule-kv{display:grid;grid-template-columns:66px minmax(0,1fr);gap:8px;margin-top:6px;font:10px var(--font-mono)}
.rule-kv span{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em}
.rule-kv b{font-weight:500;color:var(--ink);overflow-wrap:anywhere}
.specificity-note{padding-top:8px;border-top:1px solid var(--rv-line);font-family:var(--font-mono);font-size:11px!important;color:var(--ink-faint)!important}
.ask-ai-note{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.45}
.ask-ai-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.ask-ai-card .et-chain{margin-top:12px}
.severity-row{display:flex;align-items:center;justify-content:space-between;font-size:12px}
.sev-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--rv-red)}
.ev-audit{display:flex;flex-direction:column;gap:7px}
.audit-row{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:9px;font-size:11px;color:var(--ink-soft)}
.audit-row i{font-style:normal;color:var(--pos)}
.user-markup{fill:color-mix(in srgb,var(--markup) 6%,transparent);stroke:var(--markup);stroke-width:2;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
.comment-pin circle{fill:var(--navy);stroke:var(--paper);stroke-width:3;vector-effect:non-scaling-stroke}
.comment-pin text{font:600 12px var(--font-mono);fill:var(--paper);pointer-events:none}
.measure-line line{stroke:var(--struct-axis);stroke-width:2;vector-effect:non-scaling-stroke}
.measure-line text{font:600 16px var(--font-mono);fill:var(--mark-review);stroke:var(--paper);stroke-width:3;paint-order:stroke}
.overlay-item rect{fill:color-mix(in srgb,var(--mark-review) 6%,transparent);stroke:var(--mark-review);stroke-width:2;vector-effect:non-scaling-stroke}
.overlay-item text{font:600 17px var(--font-mono);fill:var(--mark-review);stroke:var(--paper);stroke-width:3;paint-order:stroke}
.overlay-item.gdt rect{stroke:var(--markup);stroke-dasharray:none}
.overlay-item.gdt text{fill:var(--markup)}
/* Certainty via line pattern + label text — not color alone. */
.overlay-item.gdt.gdt-state-validated-complete rect{stroke-dasharray:none;stroke-width:2}
.overlay-item.gdt.gdt-state-validated-incomplete rect{stroke-dasharray:6 4;stroke-width:2}
.overlay-item.gdt.gdt-state-parser-incomplete rect{stroke-dasharray:2 3;stroke-width:2}
.overlay-item.gdt.gdt-state-ambiguous rect{stroke-dasharray:1 3 6 3;stroke-width:2.5}
.overlay-item.gdt.gdt-state-legacy rect{stroke-dasharray:8 2 2 2;stroke-width:1.5}
.overlay-item.gdt.gdt-state-parser-incomplete text,
.overlay-item.gdt.gdt-state-validated-incomplete text,
.overlay-item.gdt.gdt-state-ambiguous text{font-style:italic}
.overlay-item.note rect{stroke:var(--warn);stroke-dasharray:5 4}
.overlay-item.note text{fill:var(--warn)}
.overlay-item.datum rect{fill:var(--paper);stroke:var(--mark-ink)}
.overlay-item.datum text{fill:var(--mark-ink);stroke:none}
.toast-stack{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;flex-direction:column;gap:10px}
.toast{background:var(--navy);color:var(--on-navy);border:1px solid rgba(255,255,255,.15);box-shadow:var(--shadow-overlay);padding:11px 13px;font-size:12px;max-width:320px}
.toast button{margin-left:10px;border:none;background:var(--card);color:var(--navy);padding:4px 7px;font:10px var(--font-mono);cursor:pointer}

@media(max-width:1440px){
  .review-topline{grid-template-columns:1fr;grid-template-areas:"id" "summary" "controls";align-items:start}
  .review-topline .rh-summary,.review-topline .review-controls{justify-self:start}
  .review-controls{flex-wrap:wrap;row-gap:8px}
  .review-lab,.review-lab.evidence-collapsed{
    position:relative;
    grid-template-columns:clamp(210px,22vw,232px) minmax(0,1fr);
    overflow:hidden;
  }
  .review-lab.findings-collapsed,.review-lab.findings-collapsed.evidence-collapsed{grid-template-columns:minmax(0,1fr)}
  .review-lab .evidence-panel{
    display:flex;
    position:absolute;
    top:0;right:0;bottom:0;
    z-index:18;
    width:min(360px,calc(100% - 210px));
    min-height:100%;
    border-left:1px solid var(--rv-line);
    border-top:0;
    box-shadow:var(--shadow-overlay);
    transform:translateX(101%);
    transition:transform .22s cubic-bezier(.4,0,.2,1);
  }
  .review-lab .evidence-panel.sheet-open{transform:none}
  .review-lab.evidence-collapsed .evidence-panel{transform:translateX(101%)}
  .review-lab.findings-collapsed .evidence-panel{width:min(380px,92%)}
}
@media(max-width:1180px){
  .review-lab .evidence-panel{position:static;grid-column:1/-1;display:flex;width:auto;min-height:0;max-height:none;border-left:0;border-top:1px solid var(--rv-line);box-shadow:none;transform:none}
  .review-lab .evidence-panel.sheet-open{transform:none}
  .review-lab.findings-collapsed .evidence-panel{width:auto}
  .review-lab.evidence-collapsed .evidence-panel{display:none}
  .review-lab{grid-template-columns:220px minmax(420px,1fr)}
  .review-lab.findings-collapsed{grid-template-columns:minmax(0,1fr)}
  .review-topline{grid-template-columns:1fr;grid-template-areas:"id" "summary" "controls";align-items:start}
  .review-topline .rh-summary,.review-topline .review-controls{justify-self:start}
  .review-controls{flex-wrap:wrap;row-gap:8px}
  .rc-params{border-right:none;padding-right:0;flex-wrap:wrap}
  .stat-tiles{grid-template-columns:repeat(2,1fr)}
  .dash-cols,.settings-grid{grid-template-columns:1fr}
  .ev-grid{grid-template-columns:minmax(150px,.42fr) minmax(0,1fr);min-height:0}
  .ev-listwrap{border-right:none}
  .ev-trace{display:block;grid-column:1/-1;border-top:1px solid var(--rule);padding:16px 18px;max-height:none}
  .mtr-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mtr-intelligence-grid{grid-template-columns:1fr}
  .mtr-intelligence-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mtr-capability-grid{grid-template-columns:1fr}
  .mtr-spec-queue-item{grid-template-columns:1fr}
  .mtr-spec-queue-actions{justify-items:start}
  .mtr-matrix-layout{grid-template-columns:1fr}
  .mtr-side-stack{position:static;max-height:none;overflow:visible}
  .mtr-preview-source{grid-template-columns:minmax(120px,38%) minmax(0,1fr)}
  .mtr-preview-source.digital{grid-template-columns:minmax(0,1fr)}
  .review-dock{grid-template-columns:1fr}
  .dock-tabs{display:flex;border-right:0;border-bottom:1px solid var(--rv-line);overflow-x:auto}
  .dock-tabs button{white-space:nowrap}
  .mtr-review-dock{grid-template-columns:1fr}
  .mtr-dock-tabs{display:flex;border-right:0;border-bottom:1px solid var(--rule);overflow-x:auto}
  .mtr-dock-tabs button{white-space:nowrap;border-bottom:0;border-right:1px solid var(--rule)}
  .mtr-table.matrix-v2 .mtr-row{grid-template-columns:1fr 1.4fr 1fr 1fr .8fr}
  .mtr-row-details{grid-template-columns:1fr}
}
@media(max-width:900px){
  .side{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--shadow-overlay)}
  .shell.nav-open .side{transform:none}
  .review-lab,.review-lab.evidence-collapsed,.review-lab.findings-collapsed,.review-lab.findings-collapsed.evidence-collapsed{grid-template-columns:minmax(0,1fr)}
  .topbar .btn:not(#addDrawingBtn):not(#helpMenuTrigger){display:none}
  .ev-grid{grid-template-columns:1fr}
  .ev-sheets,.ev-listwrap{border-right:0;border-bottom:1px solid var(--rule)}
  .ev-list{max-height:260px}
  .ev-trace{grid-column:auto}
  .mtr-run-fields,.mtr-upload-grid,.mtr-context-grid,.mtr-evidence,.mtr-verdict{grid-template-columns:1fr}
  .mtr-run-fields .btn{width:100%}
  .mtr-summary{grid-template-columns:1fr 1fr}
  .mtr-intelligence-facts{grid-template-columns:1fr}
  .mtr-stale-warning{grid-template-columns:1fr}
  .mtr-table.matrix-v2 .mtr-row{grid-template-columns:1fr}
  .mtr-table.matrix-v2 .mtr-head{display:none}
  .mtr-row span{border-right:0;border-bottom:1px solid var(--rule)}
  .mtr-row span:last-child{border-bottom:0}
  .mtr-row-details{grid-template-columns:1fr;padding-top:0}
  .mtr-condition-panel dl div{grid-template-columns:1fr}
  .mtr-guided-row{grid-template-columns:1fr 1fr}
  .mtr-guided-label,.mtr-guided-evidence{grid-column:1/-1}
  .mtr-checklist-coverage-grid{grid-template-columns:1fr 1fr}
}

/* Operator panel (internal admins) */
.table-scroll{overflow-x:auto;}
.op-table{width:100%;border-collapse:collapse;font-size:13px;}
.op-table th,.op-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;}
.op-table th{color:var(--ink-soft);}
.op-table tr.on td{background:color-mix(in srgb,var(--struct-axis) 8%,transparent);}
.op-table .linklike{background:none;border:0;padding:0;cursor:pointer;color:inherit;text-align:left;font:inherit;}
.op-table .chip{border:1px solid var(--rule-strong);border-radius:var(--radius-md);padding:2px 10px;background:none;color:var(--ink-soft);cursor:pointer;font-size:12px;margin:1px 2px 1px 0;}
.op-table .chip.on{border-color:var(--pos);color:var(--pos);}
.op-member-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.op-member-form input,.op-member-form select{padding:7px 10px;border-radius:var(--radius-md);border:1px solid var(--rule-strong);background:var(--card);color:var(--ink);}
.api-token-form{align-items:flex-end}
.api-token-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-soft)}
.api-token-form label input[type=text]{min-width:220px}
.api-token-modules{display:flex;gap:12px;flex-wrap:wrap;align-items:center;border:1px solid var(--rule);border-radius:var(--radius-md);padding:6px 10px;margin:0}
.api-token-modules legend{font-size:12px;color:var(--ink-soft);padding:0 4px}
.api-token-modules label{flex-direction:row;align-items:center;gap:6px;color:var(--ink);font-size:13px}
.api-token-table td small{display:block;color:var(--ink-soft);font-size:12px}
.api-token-row.is-revoked td,.api-token-row.is-expired td{color:var(--ink-soft)}
.api-token-status{font-size:12px}
.api-token-row.is-active .api-token-status{color:var(--pos)}
.api-token-secret{margin:12px 0;padding:12px;border:1px solid color-mix(in srgb,var(--warn) 45%,var(--rule-strong));border-radius:var(--radius-md);background:color-mix(in srgb,var(--warn) 8%,var(--card))}
.api-token-secret p{margin:0 0 8px}
.api-token-secret-row{display:flex;gap:8px;flex-wrap:wrap}
.api-token-secret-row input{flex:1 1 280px;min-width:0;font-family:var(--font-mono);font-size:12px;padding:7px 10px;border-radius:var(--radius-md);border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink)}
#teamApiTokenHelp code{font-size:12px}
/* Two-step sign-in: the QR stays dark-on-paper in both themes so phones can scan it. */
.mfa-steps{margin:0;padding-left:20px;display:grid;gap:14px}
.mfa-qr{width:184px;height:184px;margin:10px 0;padding:0;background:var(--paper);color:var(--mark-ink);border:1px solid var(--rule);border-radius:var(--radius-md)}
.mfa-qr svg{display:block;width:100%;height:100%}
.mfa-manual summary{cursor:pointer;color:var(--ink-soft);font-size:13px}
.mfa-secret{display:inline-block;margin-top:4px;font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;overflow-wrap:anywhere}
.mfa-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin:8px 0}
.mfa-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-soft)}
.mfa-form input{width:12ch;padding:7px 10px;border-radius:var(--radius-md);border:1px solid var(--rule-strong);background:var(--card);color:var(--ink);font-family:var(--font-mono);font-size:14px;letter-spacing:.08em}
.mfa-codes{list-style:none;margin:10px 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:6px 24px}
.mfa-codes code{font-family:var(--font-mono);font-size:14px}
.mfa-actions{display:flex;gap:8px;flex-wrap:wrap}
.mfa-state{margin:0 0 6px}
.mfa-note{margin:10px 0 0;padding:8px 10px;border:1px solid var(--rule);border-radius:var(--radius-md);background:color-mix(in srgb,var(--struct-axis) 6%,var(--card));font-size:13px}

.rule-kv b{overflow-wrap:anywhere}

/* Small screens: the review workspace is desktop-first; keep its header and
   tool rows contained instead of overflowing the viewport. */
@media (max-width:760px){
  .review-controls{flex-wrap:wrap;row-gap:8px}
  .rc-params{border-right:none;padding-right:0;flex-wrap:wrap}
  .rh-summary{flex-wrap:wrap;row-gap:6px}
  .zoom-inline{max-width:100%;overflow-x:auto}
  .thresh.compact{max-width:100%}
  /* Standards Console: the 3-track desktop grid forces ~620px of min content;
     stack it so phones stop horizontal-scrolling (audit 2026-07-13). */
  .stdc-layout{grid-template-columns:1fr}
  .stdc-editor,.stdc-live{border-right:0}
  .stdc-library,.stdc-editor,.stdc-live{min-height:0}
  .stdc-head-actions{flex-wrap:wrap;max-width:100%}
  .stdc-breadcrumb{flex-wrap:wrap;max-width:100%}
  /* Dimension inspector table scrolls inside its pane, not the page. */
  .insp-dims{overflow-x:auto;max-width:100%}
  /* Comfortable thumb targets on touch widths (WCAG 2.5.8 floor, 40px+ for
     primary controls). */
  .side-nav button{min-height:44px}
  .topbar .btn,.side-collapse{min-height:40px;min-width:40px}
  #productSwitch{min-height:40px}
  .btn{min-height:40px}
  .dispo{min-height:40px}
  .linkbtn{padding:8px 4px}
  .ph-toggle{min-height:40px}
  .stdc-tabs,.module-tabs{overflow-x:auto;max-width:100%}
  .stdc-tabs button,.module-tabs button{min-height:40px;flex:none}
  input[type=checkbox],input[type=radio]{width:18px;height:18px}
  /* Collapse the findings rail + canvas grid to a single column so the
     workspace stops forcing a 640px+ track and horizontal scroll on phones.
     The findings rail stacks above the canvas; the evidence panel (already
     full-width below 1180px) follows. */
  .review-lab{grid-template-columns:1fr}
  .review-left{border-right:none;border-bottom:1px solid var(--rv-line)}
  .review-canvas{min-height:64vh}
  /* Stack the review header (doc id / severity / gate+actions) instead of
     holding side-by-side tracks that overflow a phone. */
  .review-topline{grid-template-columns:1fr;grid-template-areas:"id" "summary" "controls";gap:12px}
  .review-topline .rh-summary,.review-topline .review-controls{justify-self:start}
  /* The breadcrumb is a fixed path that cannot fit a phone topbar; clip it
     rather than let it push the page into horizontal scroll. */
  .crumbs{flex:0 1 auto;min-width:0;overflow:hidden}
  /* Evidence trace as a bottom sheet: on a phone the panel would otherwise sit
     far below the canvas, so the product's whole "traces back to evidence"
     payoff is a long scroll away. Selecting a finding now slides it up as a
     sheet — one tap to the evidence, one tap (backdrop, handle, or close) back. */
  .review-lab .evidence-panel{
    position:fixed;left:0;right:0;top:auto;bottom:0;z-index:60;
    width:auto;min-height:0;max-height:86vh;margin:0;border-left:none;
    border-top:1px solid var(--rv-line);
    border-radius:14px 14px 0 0;
    box-shadow:var(--shadow-overlay);
    transform:translateY(101%);
    transition:transform .26s cubic-bezier(.4,0,.2,1);
    display:flex;flex-direction:column;
  }
  .review-lab .evidence-panel.sheet-open{transform:none}
  .review-lab .evidence-panel .ep-head{position:relative;padding-top:20px}
  .review-lab .evidence-panel .ep-head::before{
    content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);
    width:38px;height:4px;border-radius:var(--radius-md);background:var(--rule-strong);
  }
  .evidence-body{overflow-y:auto;-webkit-overflow-scrolling:touch}
  .ev-backdrop{display:block;position:fixed;inset:0;z-index:55;background:color-mix(in srgb,var(--navy) 42%,transparent);
    opacity:0;transition:opacity .26s;pointer-events:none}
  .ev-backdrop.on{opacity:1;pointer-events:auto}
}
@media(prefers-reduced-motion:reduce){
  .review-lab .evidence-panel{transition:none}
  .ev-backdrop{transition:none}
  .review-progress-dot{animation:none}
}
/* A wide extraction table scrolls within its own panel, never the page. */
.insp-dims{overflow-x:auto}

/* MTR batch (PO roll-up) results */
.mtr-batch-result{display:grid;gap:10px;margin-top:12px}
.mtr-batch-result .pid-summary{margin-bottom:0}

/* P&ID consistency workspace */
.pid-upload{display:inline-flex;cursor:pointer}
.pid-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.pid-verdict{font-family:var(--font-ui);font-size:11px;font-weight:640;letter-spacing:.1em;text-transform:uppercase;color:var(--on-fill);border-radius:var(--radius-md);padding:5px 10px;background:var(--warn-ink)}
.pid-verdict.ok{background:var(--pos)}
.pid-verdict.blocked{background:var(--status-blocker)}
.pid-count{font-family:var(--font-ui);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--rule-strong);border-radius:var(--radius-md);padding:4px 8px;background:var(--card);font-weight:500}
.pid-finding{border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--card);padding:12px 14px;margin-bottom:10px}
.pid-f-head{display:flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:11px}
.pid-f-head b{overflow-wrap:anywhere}
.pid-finding p{font-size:13px;color:var(--ink-soft);margin:7px 0 9px;line-height:1.45}
.pid-sev{font-family:var(--font-ui);font-size:10px;font-weight:640;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-md);padding:3px 7px;color:var(--on-fill);background:var(--warn-ink)}
.pid-sev.blocker{background:var(--status-blocker)}
.pid-sev.major{background:var(--sev-major)}
.pid-sev.minor{background:var(--sev-minor)}
.pid-sev.match{background:var(--card);color:var(--ink-soft);border:1px solid var(--rule-strong)}
.pid-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pid-compare>div{border:1px solid var(--rule);border-radius:var(--radius-md);padding:8px 10px}
.pid-compare .lbl{display:block;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--struct-axis);font-weight:500}
.pid-compare b{display:block;font-family:var(--font-mono);font-size:12px;margin:3px 0;overflow-wrap:anywhere}
.pid-compare i{display:block;font-family:var(--font-ui);font-size:10px;font-style:normal;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
@media (max-width:760px){.pid-compare{grid-template-columns:1fr}}
.pid-result-actions{margin-left:auto}
.pid-result-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
.pid-drawing-workspace{display:grid;grid-template-columns:68px minmax(0,1.25fr) minmax(280px,.85fr);min-height:460px;border:1px solid var(--rule-strong);background:var(--canvas,var(--muted-surface));overflow:hidden}
.pid-finding-rail{display:flex;flex-direction:column;gap:7px;padding:10px 7px;border-right:1px solid var(--rule);background:var(--muted-surface);min-width:0}
.pid-rail-title{font:10px var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);text-align:center;font-weight:500}
.pid-finding-rail-list{display:flex;flex-direction:column;gap:6px;overflow:auto}
.pid-rail-finding{display:grid;place-items:center;min-height:32px;border:1px solid var(--rule-strong);border-radius:50%;background:var(--card);color:var(--warn-ink);font:600 11px var(--font-mono);cursor:pointer}
.pid-rail-finding.sheet{border-style:dashed;color:var(--ink-faint)}.pid-rail-finding.sel{background:var(--warn-ink);border-color:var(--warn-ink);color:var(--on-fill)}.pid-rail-finding:focus-visible{outline:2px solid var(--struct-axis);outline-offset:2px}
.pid-sheet-checks-btn{margin-top:auto;border:1px solid var(--rule-strong);background:var(--card);color:var(--ink-soft);padding:6px 3px;font:10px/1.25 var(--font-ui);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;font-weight:500}.pid-sheet-checks{position:absolute;z-index:30;width:min(300px,80vw);margin-left:57px;padding:6px;border:1px solid var(--rule-strong);background:var(--card);box-shadow:var(--shadow-overlay)}
.pid-sheet-check{display:block;width:100%;padding:8px;border:0;border-bottom:1px solid var(--rule);background:var(--card);text-align:left;cursor:pointer}.pid-sheet-check:last-child{border-bottom:0}.pid-sheet-check b,.pid-sheet-check small{display:block}.pid-sheet-check small{margin-top:3px;color:var(--ink-soft);font-size:11px}
.pid-preview-pane{min-width:0;display:flex;flex-direction:column}.pid-canvas-toolbar{display:flex;align-items:center;gap:7px;min-height:43px;padding:6px 10px;border-bottom:1px solid var(--rule);background:var(--card)}.pid-sheet-label{min-width:72px;text-align:center;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}.pid-canvas-toolbar .linkbtn{margin-left:auto}
.pid-stage{height:min(68dvh,640px);min-height:360px;position:relative;background:var(--card);overflow:auto;overscroll-behavior:contain}
.pid-canvas{position:relative;min-width:100%;min-height:100%;line-height:0}.pid-canvas img{display:block;max-width:none;height:auto}.pid-canvas .markup{position:absolute;inset:0;width:100%;height:100%;pointer-events:auto}.pid-marker{cursor:pointer}.pid-marker:focus{outline:none}.pid-marker:focus .mk-label-bg{stroke:var(--mark-review);stroke-width:3}.pid-leader,.pid-leader-arrow{fill:none;stroke:var(--warn-ink);stroke-width:2;vector-effect:non-scaling-stroke}.pid-region-focus{box-shadow:inset 0 0 0 3px var(--struct-axis)}
.pid-matrix{margin-bottom:14px}
/* test packs */
.tp-show{display:inline-flex;border:1px solid var(--rule-strong);margin:2px 0 12px;line-height:1}
.tp-show button{font:500 11px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;padding:6px 11px;background:var(--panel);color:var(--ink-soft);border:none;border-left:1px solid var(--rule);cursor:pointer}
.tp-show button:first-child{border-left:none}
.tp-show button[aria-pressed="true"]{background:var(--struct-axis);color:var(--on-fill)}
.tp-show button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.tp-finding.decided{opacity:.72}
.tp-finding .pid-f-head{font:500 13px var(--font-ui);color:var(--ink)}
.tp-finding .tp-status{margin-left:auto;font:500 10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}
.tp-message{margin:8px 0 6px;color:var(--ink);font-size:13px;line-height:1.5}
.tp-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.tp-chip{font:11px var(--font-ui);color:var(--ink-soft);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:2px 6px}
.tp-chip b{font-family:var(--font-mono);font-weight:500;color:var(--ink)}
.tp-compare{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0;font-size:12px;color:var(--ink-soft)}
.tp-compare b{font-family:var(--font-mono);color:var(--ink);font-weight:500}
.tp-evidence,.tp-disposition{margin:6px 0 0;font-size:11px;color:var(--ink-soft);overflow-wrap:anywhere}
.tp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.tp-actions textarea{flex:1 1 100%;min-height:40px;resize:vertical;border:1px solid var(--rule-strong);padding:6px;background:var(--card);color:var(--ink);font:12px var(--font-ui)}
.tp-section{margin:18px 0 8px;font:500 11px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}
.tp-table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--card)}
.tp-matrix tr{cursor:default}
.tp-matrix td b{font-family:var(--font-mono);font-weight:500}
.tp-matrix tr.blocker td:last-child{color:var(--sev-blocker);font-weight:600}
.tp-matrix tr.needs_review td:last-child{color:var(--sev-review)}
.tp-matrix tr.excluded{color:var(--ink-faint)}
.tp-nde.accept{color:var(--status-pass)}
.tp-nde.reject{color:var(--sev-blocker);font-weight:600}
.tp-heat{font-family:var(--font-mono);font-size:11px;padding:1px 5px;border-radius:var(--radius-sm);border:1px solid var(--rule)}
.tp-heat.blocked,.tp-heat.missing{border-color:var(--sev-blocker);color:var(--sev-blocker)}
.tp-heat.needs_review{border-style:dashed;border-color:var(--sev-review)}
.tp-pressure{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:0}
.tp-pressure div{border:1px solid var(--rule);border-radius:var(--radius-md);padding:8px 10px;background:var(--card)}
.tp-pressure dt{font:500 10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}
.tp-pressure dd{margin:3px 0 0;font-family:var(--font-mono);font-size:12px;color:var(--ink)}
.pid-matrix-group{margin-bottom:14px;border:1px solid var(--rule);border-radius:var(--radius-md);overflow:hidden;background:var(--card)}
.pid-matrix-group h4{margin:0;padding:8px 12px;font-family:var(--font-ui);font-size:11px;letter-spacing:.05em;text-transform:uppercase;background:var(--muted-surface);border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:500}
.pid-matrix-count{font-size:10px;letter-spacing:.08em;border:1px solid var(--rule);border-radius:999px;padding:2px 8px;background:var(--card);color:var(--ink-soft)}
.pid-matrix-none,.pid-matrix-empty{margin:0;padding:10px 12px}
.pid-matrix-table{width:100%;border-collapse:collapse;font-size:12px}
.pid-matrix-table th,.pid-matrix-table td{padding:7px 10px;border-top:1px solid var(--rule);text-align:left;vertical-align:top}
.pid-matrix-table th{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}
.pid-matrix-table tr{cursor:pointer}
.pid-matrix-table tr.sel{background:color-mix(in srgb,var(--struct-axis) 8%,transparent)}
.pid-matrix-table tr:hover,.pid-matrix-table tr:focus{background:color-mix(in srgb,var(--struct-axis) 4%,transparent);outline:none}
.pid-matrix-table tr:focus-visible{outline:2px solid var(--struct-axis);outline-offset:-2px}
.pid-matrix-table tr.pid-match .pid-match-label{font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.pid-finding.sel{border-color:var(--struct-axis)}
.pid-evidence-drawer{border:0;border-left:1px solid var(--rule-strong);border-radius:0;background:var(--card);padding:12px 14px;margin:0;max-height:calc(100dvh - 220px);overflow:auto;box-shadow:-8px 0 18px color-mix(in srgb,var(--navy) 5%,transparent)}
.pid-evidence-head{margin-bottom:10px}
.pid-evidence-nav{display:flex;align-items:center;gap:5px}.pid-evidence-nav .eyebrow{margin-right:auto}.pid-evidence-nav .icon-btn{font-size:10px;padding:4px 6px}
.pid-evidence-head h4{margin:4px 0 0;font-size:15px;overflow-wrap:anywhere}
.pid-evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.pid-ev-side{border:1px solid var(--rule);border-radius:var(--radius-md);padding:8px 10px}
.pid-ev-ref{margin-top:8px;padding-top:8px;border-top:1px solid var(--rule)}
.pid-ev-ref:first-of-type{margin-top:6px;padding-top:0;border-top:0}
.pid-ev-ref b{display:block;font-family:var(--font-mono);font-size:11px;margin-bottom:4px;overflow-wrap:anywhere}
.pid-ev-ref .lbl{display:inline;margin-right:4px}
.pid-drawer-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--rule)}.pid-drawer-section p{margin:5px 0;color:var(--ink-soft);font-size:12px}.pid-source-crop{position:relative;overflow:hidden;margin-top:7px;border:1px solid var(--rule);background:var(--muted-surface)}.pid-source-crop img{position:absolute;max-width:none;user-select:none}.pid-source-crop span{position:absolute;border:2px solid var(--warn-ink);background:color-mix(in srgb,var(--status-warning) 10%,transparent)}.pid-source-crop.none{display:grid;place-items:center;padding:14px;color:var(--ink-soft);font-size:11px}.pid-drawer-actions{display:flex;gap:7px;margin-top:12px}.pid-correction-label{display:grid;gap:4px;margin-top:8px;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}.pid-correction-label input,.pid-correction-label textarea{border:1px solid var(--rule-strong);padding:6px;background:var(--card);color:var(--ink);font:12px var(--font-ui);text-transform:none;letter-spacing:0}.pid-correction-label textarea{min-height:58px;resize:vertical}
.pid-result-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:760px){.pid-evidence-grid{grid-template-columns:1fr}}
@media (max-width:1179px){.pid-drawing-workspace{grid-template-columns:56px minmax(0,1fr) 360px}.pid-finding-rail{padding-left:5px;padding-right:5px}.pid-result-layout{grid-template-columns:1fr}}
@media (max-width:760px){.pid-drawing-workspace{grid-template-columns:1fr;min-height:0;overflow:visible}.pid-finding-rail{order:2;flex-direction:row;border-top:1px solid var(--rule);border-right:0;overflow:auto}.pid-rail-title,.pid-sheet-checks-btn{display:none}.pid-finding-rail-list{flex-direction:row}.pid-rail-finding{min-width:32px}.pid-sheet-checks{margin:42px 0 0;left:7px}.pid-findings-pane{order:3}.pid-evidence-drawer{position:fixed;z-index:60;left:0;right:0;bottom:0;max-height:70dvh;border:1px solid var(--rule-strong);box-shadow:0 -8px 24px color-mix(in srgb,var(--navy) 14%,transparent)}.pid-register-controls{width:100%}.pid-register-controls input{width:100%!important}.pid-canvas-toolbar{flex-wrap:wrap}}
.pid-register{margin-top:14px;border:1px solid var(--rule-strong);background:var(--card)}.pid-register-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:12px;border-bottom:1px solid var(--rule)}.pid-register-head h4{margin:3px 0 0;font-size:14px}.pid-register-controls{display:flex;gap:6px;flex-wrap:wrap}.pid-register-controls input,.pid-register-controls select{min-height:30px;border:1px solid var(--rule-strong);padding:4px 7px;background:var(--card);color:var(--ink);font:11px var(--font-ui)}.pid-register-rows{max-height:280px;overflow:auto}.pid-register-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;width:100%;padding:9px 12px;border:0;border-bottom:1px solid var(--rule);background:var(--card);text-align:left;cursor:pointer}.pid-register-row:hover,.pid-register-row.sel{background:color-mix(in srgb,var(--struct-axis) 7%,transparent)}.pid-register-row b{font:600 12px var(--font-ui);overflow-wrap:anywhere}.pid-register-row span{grid-column:1;color:var(--ink-soft);font:10px var(--font-mono);overflow-wrap:anywhere}.pid-register-row em{grid-column:2;grid-row:1;color:var(--struct-axis);font:10px var(--font-ui);font-style:normal;text-transform:uppercase;font-weight:500}
.pid-intake-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}
.pid-file{display:flex;flex-direction:column;gap:6px;font-family:var(--font-ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.pid-file input{font-family:var(--font-ui);font-size:13px;text-transform:none;letter-spacing:0;border:1px solid var(--rule-strong);border-radius:var(--radius-md);padding:8px 10px;background:var(--card);color:var(--ink)}
.pid-intake-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
#pidExtraction{font-size:12px;line-height:1.5;margin-top:6px}
@media (max-width:760px){.pid-intake-grid{grid-template-columns:1fr}}

/* accessibility floor: visible focus on every interactive (design.md) */
:where(a,button,[role="button"],select,summary):focus-visible,
.side-nav button:focus-visible,.side-collapse:focus-visible,.sheet-row:focus-visible,.dock-tabs button:focus-visible,.mtr-dock-tabs button:focus-visible,.rv-tool:focus-visible,.ov-toggle:focus-visible,.findings-filter button:focus-visible,.stage-toggle button:focus-visible,.linkbtn:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--struct-axis);outline-offset:1px}

/* Drawing-first review workspace — Option 2.
   The index, canvas, details drawer, and dock each have one job. */
.review-workspace{
  --df-index:84px;
  --df-drawer:400px;
  --df-dock-collapsed:40px;
  --df-dock-open:220px;
  --df-paper:var(--paper);
  --df-canvas:var(--muted-surface);
  --df-line:var(--border);
}
.review-topline{
  grid-template-columns:minmax(240px,1fr) auto auto;
  grid-template-areas:"id summary controls";
  gap:10px 18px;
  padding:10px 16px;
  min-height:76px;
  background:var(--card);
}
.review-topline .review-doc-id{min-width:0}
.review-doc-id h1{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.review-topline .eyebrow{font-size:10px}
.review-topline .rh-sub{margin-top:5px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.review-profile-status,.review-save-state{margin:3px 0 0;font-size:10px}
.review-topline .rh-summary{justify-self:end;gap:5px}
.review-topline .sev-chip{padding:4px 7px;font-size:10px;gap:4px}
.review-topline .sev-chip b{font-size:12px}
.review-topline .review-controls{justify-self:end;flex-wrap:nowrap}
.review-settings-menu{right:0;left:auto;width:300px;padding:14px}
.review-settings-menu .rc-params{display:grid;gap:14px;padding:0;margin:0;border:0}
.review-settings-menu .thresh{justify-content:space-between;min-width:0}
.review-settings-menu .thresh input[type="range"]{width:128px}

.review-lab,
.review-lab.evidence-collapsed,
.review-lab.findings-collapsed,
.review-lab.findings-collapsed.evidence-collapsed{
  position:relative;
  display:grid;
  grid-template-columns:84px minmax(0,1fr);
  height:calc(100dvh - var(--topbar-h) - 108px);
  min-height:0;
  overflow:hidden;
  background:var(--df-canvas);
}
.review-lab.findings-collapsed .review-left{display:flex}
.review-left{
  grid-column:1;
  grid-row:1;
  width:var(--df-index);
  min-height:0;
  border-right:1px solid var(--df-line);
  background:var(--muted-surface);
  overflow:visible;
}
.review-left-head,.review-status-strip,.reviewer-disposition{display:none}
.sheet-section{padding:14px 8px 10px;border-bottom:1px solid var(--df-line);flex:none}
.sheet-section .rail-toggle{display:flex;min-height:22px;padding:0 2px;border:0;pointer-events:none}
.sheet-section .rail-toggle .caret{display:none}
.sheet-section .rail-toggle .ph-t,.review-findings .rail-title{font-size:10px;letter-spacing:.1em}
.sheet-search{display:none}
.sheet-list{gap:6px;margin-top:8px;max-height:132px}
.sheet-row{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:38px;
  padding:0;
  border:1px solid var(--df-line);
  background:var(--card);
  color:var(--ink-soft);
}
.sheet-row:hover,.sheet-row.on{border-color:var(--rv-red)}
.sheet-row img,.sheet-row .sheet-title{display:none}
.sheet-row .sheet-no{font:600 11px var(--font-mono);color:inherit}
.sheet-row .sheet-count{
  position:absolute;right:5px;top:5px;min-width:6px;width:6px;height:6px;border-radius:50%;
  overflow:hidden;color:transparent;font-size:0;background:var(--rv-red);
}
.review-findings{display:flex;min-height:0;flex:1;overflow:visible}
.review-findings .findings-head{display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:3px;padding:12px 8px 7px;align-items:center}
.review-findings .kbd-hint{width:16px;height:16px;font-size:10px}
.review-findings #reviewFilterBtn{width:24px;height:24px;min-width:24px;padding:0}
.review-findings .findings-toolbar{display:none}
.review-findings .findings-list{display:flex;flex-direction:column;gap:5px;min-height:0;padding:0 8px 8px;overflow-y:auto;overflow-x:hidden}
.review-findings .finding-index-item{
  position:relative;display:flex;align-items:center;justify-content:flex-start;gap:6px;
  width:100%;min-height:36px;margin:0;padding:4px 6px;border:1px solid transparent;
  background:transparent;cursor:pointer;color:var(--ink-soft);overflow:visible;
}
.review-findings .finding-index-item::before{display:none}
.review-findings .finding-index-number{
  display:grid;place-items:center;width:26px;height:26px;flex:none;border:1px solid currentColor;
  border-radius:50%;background:var(--card);font:600 11px var(--font-mono);font-variant-numeric:tabular-nums;
}
.review-findings .finding-index-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.review-findings .finding-index-item.blocker{--finding-color:var(--sev-blocker);color:var(--sev-blocker)}
.review-findings .finding-index-item.major{--finding-color:var(--sev-major);color:var(--sev-major)}
.review-findings .finding-index-item.minor{--finding-color:var(--sev-minor);color:var(--sev-minor)}
.review-findings .finding-index-item.needs{--finding-color:var(--sev-review);color:var(--sev-review)}
.review-findings .finding-index-item:hover{background:var(--card);border-color:var(--df-line)}
.review-findings .finding-index-item.sel{background:var(--card);border-color:var(--rule-strong)}
.review-findings .finding-index-item.sel .finding-index-number{color:var(--on-fill);background:var(--finding-color,var(--rv-red))}
.review-findings .finding-index-item.done{opacity:.5}
.sheet-checks-wrap{position:relative;margin:auto 8px 10px;flex:none}
.sheet-checks-btn{
  display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:4px;
  width:100%;margin:0;padding:7px 5px;border:1px solid var(--df-line);background:var(--card);
  color:var(--ink-soft);font:10px var(--font-ui);text-align:left;text-transform:uppercase;cursor:pointer;font-weight:500}
.sheet-checks-btn[hidden]{display:none}
.sheet-checks-btn b{font:inherit;line-height:1.2}.sheet-checks-btn em{font-style:normal;color:var(--rv-red)}
.sheet-checks-btn:hover,.sheet-checks-btn.on{border-color:var(--rv-red);color:var(--rv-red)}
.sheet-checks-menu{
  position:absolute;z-index:48;left:calc(100% + 8px);bottom:0;width:310px;max-height:360px;overflow:auto;
  padding:6px;border:1px solid var(--df-line);background:var(--card);box-shadow:var(--shadow-overlay);
}
.sheet-check-item{
  display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:start;width:100%;padding:9px 8px;
  border:0;border-bottom:1px solid var(--df-line);background:var(--card);color:var(--ink);font:11px var(--font-ui);text-align:left;cursor:pointer;
}
.sheet-check-item:last-child{border-bottom:0}.sheet-check-item:hover,.sheet-check-item:focus-visible{background:var(--struct-axis-soft)}
.sheet-check-number{display:grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;font:600 10px var(--font-mono)}
.sheet-check-item.blocker{color:var(--sev-blocker)}.sheet-check-item.major{color:var(--sev-major)}.sheet-check-item.minor{color:var(--sev-minor)}.sheet-check-item.needs{color:var(--sev-review)}
.sheet-check-item b{display:block;font:600 11px var(--font-ui);color:currentColor}.sheet-check-item small{display:block;margin-top:3px;color:var(--ink-soft);font:10px/1.35 var(--font-ui)}
.review-left.filters-open .sheet-search{
  display:block;position:absolute;z-index:44;left:72px;top:38px;width:280px;padding:10px;
  border:1px solid var(--df-line);background:var(--card);box-shadow:var(--shadow-overlay);
}
.review-findings.filters-open .findings-toolbar{
  display:flex;position:absolute;z-index:43;left:72px;top:98px;width:360px;padding:12px;
  border:1px solid var(--df-line);background:var(--card);box-shadow:var(--shadow-overlay);
}
.review-findings.filters-open .findings-filter,.review-findings.filters-open .facets,.review-findings.filters-open .bulk{display:flex}

.review-canvas{
  position:relative;grid-column:2;grid-row:1;display:grid;
  grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;background:var(--df-canvas);
}
.review-canvas .rv-toolbar{padding:9px 14px;min-height:52px;align-items:center;z-index:12}
.review-canvas .drawing-pane{position:relative;top:auto;padding:14px 16px 46px;min-height:0;overflow:hidden}
.drawing-pane .stage{height:100%;min-height:0;max-height:none;border-color:var(--df-line);background:var(--paper)}
.stage img{max-height:none}
.markup-legend{position:absolute;left:24px;bottom:47px;z-index:5;margin:0;padding:5px 8px;background:rgba(255,255,255,.92);border:1px solid var(--df-line)}

.review-dock{
  position:absolute;z-index:16;left:0;right:0;bottom:0;height:var(--df-dock-collapsed);
  min-height:0;display:grid;grid-template-columns:1fr;background:var(--card);border-top:1px solid var(--df-line);
  box-shadow:0 -1px 8px color-mix(in srgb,var(--navy) 4%,transparent);transition:height .2s ease;
}
.review-dock.open{height:var(--df-dock-open);grid-template-rows:minmax(0,1fr) 40px}
.dock-tabs{display:flex;align-items:stretch;border:0;border-bottom:0;overflow-x:auto}
.dock-tabs button{width:auto;min-width:140px;height:40px;padding:0 18px;border:0;border-right:1px solid var(--df-line);white-space:nowrap;text-align:left}
.dock-tabs button.on{box-shadow:inset 0 2px 0 var(--rv-red);color:var(--rv-red)}
.dock-body{display:none;min-height:0;border-top:1px solid var(--df-line);background:var(--card)}
.review-dock.open .dock-tabs{grid-row:2;border-top:1px solid var(--df-line)}
.review-dock.open .dock-body{display:grid;grid-row:1;grid-template-rows:34px minmax(0,1fr);border-top:0;border-bottom:1px solid var(--df-line)}
.dock-body-head{display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 16px;border-bottom:1px solid var(--df-line);font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.dock-panel{min-height:0;overflow:auto}.dock-panel.on{min-height:0}
#extractionPanel{padding:12px 16px 18px}
#extractionPanel .insp-sheet{margin-bottom:12px}
.extraction-register{min-width:0}
.extraction-register-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:4px 0 12px}
.extraction-register-head p{margin:5px 0 0;color:var(--ink-faint);font:10px/1.4 var(--font-mono)}
.extraction-register-controls{display:flex;gap:7px;align-items:center}
.extraction-register-controls input,.extraction-register-controls select{min-height:32px;border:1px solid var(--df-line);background:var(--card);padding:5px 8px;font:11px var(--font-ui);color:var(--ink)}
.extraction-register-controls input{width:min(260px,30vw)}
.extraction-table td small{display:block;margin-top:3px;color:var(--ink-faint);font:10px/1.35 var(--font-mono)}
.extraction-table .extraction-row{cursor:pointer}
.extraction-table .extraction-row:hover,.extraction-table .extraction-row.sel{background:var(--struct-axis-soft)}
.extraction-state{display:inline-block;margin:5px 0 0 7px;padding:2px 4px;border:1px solid var(--struct-axis);color:var(--struct-axis);font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;font-weight:500}
.extraction-correction-editor{position:sticky;left:0;bottom:0;margin-top:12px;padding:12px;border:1px solid var(--struct-axis);background:var(--card);box-shadow:var(--shadow)}
.extraction-correction-editor form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,2fr);gap:10px;align-items:end}
.extraction-correction-editor .eyebrow{grid-column:1/-1}
.extraction-correction-editor label{display:grid;gap:4px;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.extraction-correction-editor input,.extraction-correction-editor textarea{width:100%;min-height:34px;border:1px solid var(--df-line);padding:7px;font:12px var(--font-ui);text-transform:none;letter-spacing:0;color:var(--ink);resize:vertical}
.extraction-correction-editor form>div:last-child{grid-column:1/-1;display:flex;gap:7px}
.overlay-item.characteristic rect{fill:color-mix(in srgb,var(--mark-review) 4%,transparent);stroke:var(--mark-review);stroke-width:1.2;stroke-dasharray:3 3}
.overlay-item.characteristic text{fill:var(--mark-review);font-weight:600}
.overlay-item.revision-change rect{fill:color-mix(in srgb,var(--markup) 10%,transparent);stroke:var(--markup);stroke-width:2;stroke-dasharray:8 4}
.overlay-item.revision-change text{fill:var(--markup);font-weight:600}
.compare-pane{position:absolute;z-index:11;left:16px;right:16px;top:66px;max-height:calc(100% - 124px);overflow:auto;background:color-mix(in srgb,var(--card) 97%,transparent);border:1px solid var(--df-line);box-shadow:var(--shadow-overlay)}
.compare-workspace{margin:0;border:0}
.compare-workspace-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
.compare-modes{display:flex;align-items:center;border:1px solid var(--df-line)}
.compare-modes button{border:0;border-left:1px solid var(--df-line);background:var(--card);padding:6px 9px;font:10px var(--font-ui);text-transform:uppercase;cursor:pointer;font-weight:500}.compare-modes button:first-child{border-left:0}.compare-modes button.on{background:var(--struct-axis);color:var(--on-fill)}
.compare-side{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.compare-side figure{margin:0;border:1px solid var(--df-line);background:var(--muted-surface)}.compare-side img{display:block;width:100%;height:auto}.compare-side figcaption{padding:6px;font:10px var(--font-mono);color:var(--ink-soft)}
.compare-register{overflow:auto;margin:12px 0}.compare-register table{width:100%;border-collapse:collapse;font:10px var(--font-mono)}.compare-register th,.compare-register td{padding:7px;border:1px solid var(--df-line);text-align:left}
.compare-warning{padding:7px 9px;background:var(--status-warning-soft);border:1px solid var(--border);font-size:11px;color:var(--ink-soft)}.compare-mode-note{font-size:11px;color:var(--ink-soft)}
.review-workspace > .inspector{display:none}

.review-lab .evidence-panel{
  display:flex;position:absolute;z-index:30;top:0;right:0;bottom:var(--df-dock-collapsed);
  width:min(400px,calc(100% - 84px));min-height:0;max-height:none;
  border:0;border-left:1px solid var(--df-line);background:var(--card);box-shadow:-8px 0 24px color-mix(in srgb,var(--navy) 8%,transparent);
  transform:translateX(102%);visibility:hidden;pointer-events:none;
  transition:transform .22s cubic-bezier(.4,0,.2,1),visibility 0s linear .22s;
}
.review-lab:has(#reviewDock.open) .evidence-panel{bottom:var(--df-dock-open)}
.review-lab .evidence-panel.sheet-open{transform:none;visibility:visible;pointer-events:auto;transition-delay:0s}
.review-lab.evidence-collapsed .evidence-panel{display:flex;transform:translateX(102%)}
.ep-head{min-height:62px;padding:10px 14px;border-bottom:1px solid var(--df-line)}
.ep-head .eyebrow{font-size:10px}.ep-head h2{margin-top:4px;font-size:14px}
.ep-head-actions{display:flex;gap:4px;align-items:center}
.evidence-body{padding:0 16px 18px;overflow:auto}
.ev-finding-summary{padding:17px 0 14px;border-bottom:1px solid var(--df-line)}
.ev-finding-summary h3{margin:0;font:700 17px/1.3 var(--font-display);text-transform:none;font-stretch:125%}
.ev-finding-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px;font:10px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.ev-severity{color:var(--sev-major)}.ev-severity.blocker{color:var(--sev-blocker)}.ev-severity.minor{color:var(--sev-minor)}.ev-severity.needs_review,.ev-severity.review{color:var(--sev-review)}
.ev-focus-section,.ev-narrative,.ev-disposition,.ev-assign{padding:15px 0;border-bottom:1px solid var(--df-line)}
.ev-characteristic{padding:15px 0;border-bottom:1px solid var(--df-line)}.ev-characteristic .rule-kv{margin-top:7px}.ev-related{display:grid;gap:5px;margin-top:10px}.ev-related>span{font:10px var(--font-mono);color:var(--ink-faint)}.ev-characteristic details{margin-top:10px;font-size:11px}.ev-characteristic ol{padding-left:20px;color:var(--ink-soft)}
.ev-section-label{margin-bottom:9px;font:10px var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
.ev-source-zone{position:relative;width:100%;min-height:142px;max-height:236px;overflow:hidden;border:1px solid var(--df-line);background:var(--muted-surface);box-shadow:var(--shadow)}
.ev-source-zone img{position:absolute;max-width:none;object-fit:fill;user-select:none}
.ev-source-highlight{position:absolute;border:1.5px dashed var(--markup);background:color-mix(in srgb,var(--markup) 5%,transparent);box-shadow:0 0 0 999px rgba(255,255,255,.08)}
.ev-source-zone.none{min-height:112px;height:auto}.ev-source-zone.none span{max-width:270px;text-transform:none;letter-spacing:0;line-height:1.5}
.ev-narrative h3{margin:0 0 6px;font:600 12px var(--font-ui);text-transform:none}
.ev-narrative p,.ev-more-body p{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.55}
.ev-more{border-bottom:1px solid var(--df-line)}
.ev-more summary{padding:13px 0;cursor:pointer;font:600 11px var(--font-ui);list-style-position:inside}
.ev-more-body{padding:0 0 15px}.ev-more-body>*+*{margin-top:10px}
.ev-disposition-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ev-disposition-actions .btn{min-width:0;padding:8px 4px;font-size:10px}
.ev-disposition-actions .on{border-color:var(--rv-red);color:var(--rv-red);background:var(--action-soft)}
.ev-focus-btn{display:block;width:100%;margin-top:14px;text-align:center}
.ev-audit .audit-row{grid-template-columns:42px minmax(0,1fr) 14px}

.markup .mk{outline:none}
.markup .mk:focus-visible .mk-label-bg{stroke-width:3;filter:drop-shadow(0 0 3px currentColor)}
.markup .mk-box{fill:rgba(255,255,255,.04);stroke-width:1.35;stroke-dasharray:5 4}
.markup .mk.sel .mk-box{fill:color-mix(in srgb,var(--markup) 5%,transparent);stroke-dasharray:none;stroke-width:2}
.markup .mk-leader{stroke-width:1.25}
.markup .mk-label-bg{fill:var(--paper);stroke-width:1.2}
.markup .mk-label-index{fill:var(--paper);stroke:currentColor;stroke-width:1.2;vector-effect:non-scaling-stroke}
.markup .mk-label-num{font-size:13px;fill:currentColor}
.markup .mk-label-text{font-size:13px;font-weight:600}
.markup .mk.sel .mk-label-index{fill:var(--markup);stroke:var(--markup)}
.markup .mk.sel .mk-label-num{fill:var(--paper)}
.marker-hit-layer{display:contents}
.marker-hit-layer .mk-hit{position:absolute;display:block;margin:0;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto}
.marker-hit-layer .mk-hit:focus-visible{outline:2px solid var(--markup);outline-offset:2px}
.markup .mk.dim{opacity:.42}

@media(max-width:1179px){
  .review-workspace{--df-index:72px;--df-drawer:360px}
  .review-lab,.review-lab.evidence-collapsed,.review-lab.findings-collapsed,.review-lab.findings-collapsed.evidence-collapsed{height:calc(100dvh - var(--topbar-h) - 128px)}
  .review-lab,.review-lab.evidence-collapsed,.review-lab.findings-collapsed,.review-lab.findings-collapsed.evidence-collapsed{grid-template-columns:72px minmax(0,1fr)}
  .review-lab .evidence-panel{width:min(360px,calc(100% - 72px))}
  .review-topline{grid-template-columns:minmax(220px,1fr) auto;grid-template-areas:"id summary" "id controls"}
  .review-topline .review-controls{justify-self:end}
  .dock-tabs button{min-width:120px}
}
@media(max-width:760px){
  .extraction-register-head{align-items:stretch;flex-direction:column}.extraction-register-controls{align-items:stretch}.extraction-register-controls input{width:100%}
  .extraction-correction-editor form{grid-template-columns:1fr}
  html,body,.shell,.content{max-width:100%;overflow-x:hidden}
  .review-topline{grid-template-columns:1fr;grid-template-areas:"id" "summary" "controls";gap:8px;padding:10px 12px}
  .review-topline .rh-summary,.review-topline .review-controls{justify-self:start;max-width:100%;overflow-x:auto}
  .review-topline .review-controls{flex-wrap:wrap}
  .review-lab,.review-lab.evidence-collapsed,.review-lab.findings-collapsed,.review-lab.findings-collapsed.evidence-collapsed{
    grid-template-columns:minmax(0,1fr);grid-template-rows:92px minmax(0,1fr);
    height:calc(100vh - var(--topbar-h) - 170px);min-height:610px;
  }
  .review-left{grid-column:1;grid-row:1;width:100%;height:92px;min-height:0;flex-direction:row;border-right:0;border-bottom:1px solid var(--df-line);overflow-x:auto;overflow-y:hidden}
  .sheet-section{display:flex;align-items:center;padding:8px;border:0;border-right:1px solid var(--df-line)}
  .sheet-section .rail-toggle{display:none}.sheet-list{flex-direction:row;margin:0;max-height:none;overflow:visible}
  .sheet-row{width:42px;min-width:42px;height:42px}
  .review-findings{min-width:max-content;flex-direction:row;align-items:center}
  .review-findings .findings-head{display:flex;width:auto;padding:8px 4px 8px 8px}.review-findings .rail-title{display:none}
  .review-findings .findings-list{flex-direction:row;align-items:center;gap:3px;padding:8px;overflow:visible}
  .review-findings .finding-index-item{width:42px;min-width:42px;height:42px;padding:4px;justify-content:center}.review-findings .finding-index-dot{position:absolute;right:2px;top:5px}
  .sheet-checks-wrap{min-width:76px;margin:8px 8px 8px 0}.sheet-checks-btn{min-width:76px}
  .sheet-checks-menu{position:fixed;left:12px;right:12px;bottom:104px;width:auto;max-height:42vh}
  .review-canvas{grid-column:1;grid-row:2;min-height:0}
  .review-canvas .rv-toolbar{overflow-x:auto;flex-wrap:nowrap}.review-canvas .rv-toolbar>*{flex:none}
  .drawing-pane{padding:10px 10px 44px}.markup-legend{display:none}
  .review-dock.open{height:min(260px,48vh)}.dock-tabs button{min-width:112px;padding:0 12px}
  .review-lab .evidence-panel{
    position:fixed;left:0;right:0;top:auto;bottom:0;z-index:60;width:auto;max-height:86vh;
    border-left:0;border-top:1px solid var(--df-line);border-radius:12px 12px 0 0;
    transform:translateY(102%);box-shadow:var(--shadow-overlay);
  }
  /* The phone sheet sits above its backdrop and the dock, anchored to the bottom edge. */
  .review-lab:has(#reviewDock.open) .evidence-panel{bottom:0}
  .review-lab .evidence-panel.sheet-open{transform:none}
  .review-lab.evidence-collapsed .evidence-panel{transform:translateY(102%)}
  .review-lab .evidence-panel .ep-head{padding-top:20px}
  .ev-backdrop{display:block}
  .review-left.filters-open .sheet-search{position:fixed;left:12px;right:12px;top:112px;width:auto}
  .review-findings.filters-open .findings-toolbar{position:fixed;left:12px;right:12px;top:170px;width:auto;max-height:50vh;overflow:auto}
}
@media(prefers-reduced-motion:reduce){.review-dock{transition:none}}

/* Brand lockup: use the compact white wordmark in the full rail and the
   supplied app mark when the navigation collapses to an icon rail. */
.side-brand img{flex:none;object-fit:contain}
.side-brand .side-lockup{display:block}
.side-brand .side-mark{display:none}
.shell.nav-collapsed .side-brand .side-lockup{display:none}
.shell.nav-collapsed .side-brand .side-mark{display:block}
.shell.nav-collapsed .side-brand{min-height:44px}
.side-nav button:focus-visible,.side button:focus-visible,.side select:focus-visible{outline-color:var(--brand-cyan)}

/* MTR readiness categories keep independent restrictions distinct from
   failed criteria and review items. Status color is never decorative. */
.mtr-readiness-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}
.mtr-readiness-category{min-width:0;padding:10px 12px;border:1px solid var(--rule);background:var(--panel);color:var(--ink)}
.mtr-readiness-category h3,.mtr-readiness-category h4{margin:0;color:var(--ink);font-size:13px;line-height:1.35}
.mtr-readiness-category p{margin:5px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.mtr-readiness-restrictions{margin-top:9px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--status-warning) 45%,transparent);background:var(--status-warning-soft);color:var(--ink)}
.mtr-readiness-restrictions p{margin:4px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.mtr-evidence-source-note{margin-top:8px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--struct-axis) 32%,transparent);background:var(--struct-axis-soft);color:var(--ink);font-size:12px;line-height:1.45;overflow-wrap:anywhere}

/* Static synthetic sample report. The page stays a quiet report surface;
   the banner is the explicit synthetic/illustrative disclosure. */
body.sample-report-page{min-height:100vh;background:var(--canvas);color:var(--ink)}
.sample-report-page{width:min(100%,1120px);margin-inline:auto;padding:clamp(18px,4vw,44px);color:var(--ink)}
.sample-report-banner{margin:0 0 20px;padding:12px 15px;border:1px solid color-mix(in srgb,var(--brand-cyan) 35%,transparent);background:var(--navy);color:var(--on-navy);font-size:13px;line-height:1.5}
.sample-report-banner strong{color:var(--brand-cyan)}
.sample-report-banner a{color:var(--brand-cyan);text-underline-offset:3px}
.sample-report-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:0 0 16px;border-bottom:1px solid var(--rule-strong)}
.sample-report-header img{display:block;width:min(240px,65vw);height:auto}
.sample-report-header h1{margin:0;color:var(--ink);font:700 clamp(22px,3vw,30px)/1.15 var(--font-display);letter-spacing:-.01em;font-stretch:125%}
.sample-report-header p{max-width:60ch;margin:7px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.5}
.sample-report-verdict{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:18px 0;padding:15px 17px;border:1px solid var(--rule-strong);background:var(--panel)}
.sample-report-verdict h1{margin:6px 0 0;color:var(--ink);font:700 clamp(20px,2.5vw,26px)/1.2 var(--font-display);font-stretch:125%}
.sample-report-verdict .status-badge{flex:none;margin-top:3px;white-space:nowrap}
.sample-report-verdict strong{display:block;color:var(--ink);font:600 16px/1.35 var(--font-ui)}
.sample-report-verdict p{margin:5px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.5}
.sample-report-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 20px}
.sample-report-metrics>*{min-width:0;padding:12px;border:1px solid var(--rule);background:var(--panel)}
.sample-report-metrics strong{display:block;color:var(--ink);font:600 22px/1.1 var(--font-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.sample-report-metrics span{display:block;margin-top:6px;color:var(--ink-soft);font:10px/1.35 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;font-weight:500}
.sample-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.sample-report-card{min-width:0;border:1px solid var(--rule-strong);background:var(--panel)}
.sample-report-card h2{margin:0;padding:12px 14px;border-bottom:1px solid var(--rule);color:var(--ink);font:600 15px/1.35 var(--font-ui)}
.sample-report-card>p{margin:0;padding:12px 14px;color:var(--ink-soft);font-size:12px;line-height:1.5}
.sample-report-row{display:grid;grid-template-columns:minmax(0,1fr) max-content minmax(0,1.5fr);gap:8px 14px;align-items:start;padding:10px 14px;border-bottom:1px solid var(--rule);color:var(--ink-soft);font-size:12px;line-height:1.45}
.sample-report-row:last-child{border-bottom:0}
.sample-report-row>div:first-child>strong{display:block;color:var(--ink);font-weight:600;text-align:left}
.sample-report-row>div:first-child p{margin:4px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.4}
.sample-report-row .status-badge{justify-self:start;white-space:nowrap}
.sample-report-value{min-width:0;color:var(--ink);font:500 11px/1.45 var(--font-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.sample-report-footer{margin-top:18px;padding-top:12px;border-top:1px solid var(--rule-strong);color:var(--ink-faint);font-size:11px;line-height:1.5}

@media(max-width:900px){
  .mtr-readiness-categories{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sample-report-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .shell.nav-collapsed .side{width:66px;padding-inline:10px}
  .shell.nav-collapsed .side-brand{justify-content:center;padding:4px 0 18px}
  .shell.nav-collapsed .side-brand .side-mark{width:34px;height:34px}
  .mtr-readiness-categories{grid-template-columns:1fr}
  .sample-report-page{padding:18px 14px 28px}
  .sample-report-header{align-items:flex-start;flex-direction:column}
  .sample-report-verdict{flex-direction:column;gap:10px;padding:13px}
  .sample-report-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .sample-report-row{grid-template-columns:minmax(0,1fr) max-content;gap:6px 8px;padding:9px 11px;font-size:11px}
  .sample-report-row>div:first-child{grid-column:1;grid-row:1}
  .sample-report-row>.status-badge{grid-column:2;grid-row:1}
  .sample-report-row .sample-report-value{grid-column:1/-1;text-align:left}
}

/* Docked finding inspector (>=1180px): verdict and next action sit beside the
   drawing instead of in a slide-over, so reviewers never lose the sheet. Below
   1180px the inspector stays a slide-over (tablet) or bottom sheet (phone). */
@media(min-width:1180px){
  .review-lab,.review-lab.evidence-collapsed,.review-lab.findings-collapsed,.review-lab.findings-collapsed.evidence-collapsed{
    grid-template-columns:84px minmax(0,1fr) clamp(320px,26vw,380px);
  }
  .review-lab .evidence-panel,
  .review-lab .evidence-panel.sheet-open,
  .review-lab.evidence-collapsed .evidence-panel,
  .review-lab.findings-collapsed .evidence-panel,
  .review-lab:has(#reviewDock.open) .evidence-panel{
    position:relative;grid-column:3;grid-row:1;top:auto;right:auto;bottom:auto;width:auto;
    flex-direction:column;transform:none;visibility:visible;pointer-events:auto;
    box-shadow:none;transition:none;
  }
  #evidenceClose{display:none}
}

/* ======================================================================
   Semper Core parity layer (design.md). Component primitives resolve here,
   after the surface rules above, so every view shares Semper Core's look:
   navy actions, blue focus, 6px controls, 8px surfaces, Plex type, red for
   identity and critical states only.
   ====================================================================== */

html,body{background:var(--background);color:var(--foreground)}
body{font-synthesis:none}
a{color:var(--link)}
::selection{background:color-mix(in srgb,var(--link) 22%,transparent)}
input,select,textarea,button{font-family:var(--font-ui)}
input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--primary)}

/* Buttons: shadcn Button (h-8, px-2.5, rounded-lg, text-sm, medium). */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:32px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-lg);
  background:var(--card);color:var(--foreground);box-shadow:none;
  font:500 14px/1.2 var(--font-ui);letter-spacing:0;text-transform:none;white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
}
.btn:hover{background:var(--muted-surface);border-color:var(--border);color:var(--foreground);transform:none;box-shadow:none}
.btn:active:not([aria-haspopup]){transform:translateY(1px)}
.btn:focus-visible{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 50%,transparent)}
.btn.primary,.btn.dark{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.btn.primary:hover,.btn.dark:hover{background:var(--action-hover);border-color:var(--action-hover);color:var(--primary-foreground)}
.btn.primary:disabled,.btn.dark:disabled{background:var(--muted-surface);border-color:var(--muted-surface);color:var(--muted-foreground)}
.btn.slim{min-height:28px;padding:0 10px;font-size:12.8px}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.topbar .btn{font-size:14px;padding:0 10px}
.topbar .btn:not(.primary):hover{background:var(--muted-surface);border-color:transparent;box-shadow:none}
.review-controls .btn:not(.primary){background:none;border-color:transparent;color:var(--ink-soft)}
.review-controls .btn:not(.primary):hover,.review-controls .btn[aria-expanded="true"]{background:var(--muted-surface);border-color:transparent;color:var(--foreground)}
.topbar .btn.primary.context-secondary{background:var(--card);color:var(--foreground);border-color:var(--border)}
.topbar .btn.primary.context-secondary:hover{background:var(--muted-surface);border-color:var(--border)}
.ev-disposition-actions .btn{font-size:12px;padding:0 4px}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);color:var(--foreground)}
.icon-btn:hover,.side-collapse:hover{background:var(--muted-surface)}
.side-collapse{border-radius:var(--radius-lg);color:var(--muted-foreground)}

/* Secondary in-surface controls share one compact outline style. */
.dispo,.bulk-btn,.fd-ask-btn,.doc-open,.kbd-hint,.facet-sel,.view-pill,.export-tray .tray-link{
  font:500 12px/1.2 var(--font-ui);letter-spacing:0;text-transform:none;
  border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);
}
.dispo{padding:7px 11px}
.dispo:hover,.bulk-btn:hover:not(:disabled),.fd-ask-btn:hover,.doc-open:hover,.view-pill:hover,.export-tray .tray-link:hover,.facet-sel:hover{background:var(--muted-surface);border-color:var(--border-strong);color:var(--foreground)}
.dispo.accept.on{background:var(--status-good-surface);border-color:var(--status-good);color:var(--status-good)}
.dispo.reject.on{background:var(--status-bad-surface);border-color:var(--status-bad);color:var(--status-bad)}
.dispo.resolve.on{background:var(--muted-surface);border-color:var(--border-strong);color:var(--foreground)}
.q-acts .dispo{flex:1}
.doc-open{color:var(--foreground)}
.doc-delete{border-color:var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--destructive)}
.doc-delete:hover{background:color-mix(in srgb,var(--destructive) 10%,transparent);border-color:color-mix(in srgb,var(--destructive) 40%,transparent)}
.export-tray .tray-link.annotated,.view-pill.sel{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.fd-explain{font:500 12px var(--font-ui);letter-spacing:0;text-transform:none;border-radius:var(--radius-md);padding:5px 10px;border:1px solid var(--border);background:var(--card);color:var(--foreground)}
.fd-explain:hover{background:var(--muted-surface);color:var(--foreground)}
.linkbtn.fd-explain{border:0;background:none;padding:5px 4px;color:var(--link)}
.linkbtn.fd-explain:hover{background:none;color:var(--link);text-decoration:underline}
.rv-menu-trigger{font:500 12px var(--font-ui);letter-spacing:0;text-transform:none}

/* Links: Core link variant. */
.linkbtn{font:500 13px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--link);text-underline-offset:4px}
.linkbtn:hover{text-decoration:underline}
.release-close,.release-later,.release-item-action,.release-notes-link{font:500 13px var(--font-ui);letter-spacing:0;color:var(--link)}
.release-close{text-transform:none;color:var(--muted-foreground)}
.release-close:hover,.release-later:hover,.release-item-action:hover,.release-notes-link:hover{color:var(--link)}

/* Segmented toggles: Core Tabs (muted track, raised active segment). */
.findings-filter,.stage-toggle{display:inline-flex;gap:2px;padding:3px;border:0;border-radius:var(--radius-lg);background:var(--muted-surface)}
.findings-filter button,.stage-toggle button{border:0;border-radius:var(--radius-md);background:transparent;color:color-mix(in srgb,var(--foreground) 60%,transparent);font:500 12px var(--font-ui);letter-spacing:0;text-transform:none;padding:4px 8px}
.findings-filter button[aria-pressed="true"],.stage-toggle button[aria-pressed="true"]{background:var(--card);color:var(--foreground);box-shadow:0 1px 2px rgb(20 27 41 / .08)}
/* Line tabs: 2px foreground underline, no brand red. */
.stdc-tabs button,.module-tabs button{font:500 14px var(--font-ui);color:color-mix(in srgb,var(--foreground) 60%,transparent)}
.stdc-tabs button.on,.stdc-tabs button[aria-selected="true"],.module-tabs button.on,.module-tabs button[aria-selected="true"]{color:var(--foreground)}
.stdc-tabs button.on::after,.stdc-tabs button[aria-selected="true"]::after,.module-tabs button.on::after,.module-tabs button[aria-selected="true"]::after{background:var(--foreground)}
.dock-tabs button{font:500 13px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--muted-foreground)}
.dock-tabs button.on{color:var(--foreground);box-shadow:inset 0 -2px 0 var(--foreground)}
.mtr-dock-tabs button{font:500 13px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--muted-foreground)}
.mtr-dock-tabs button.on{color:var(--foreground);background:var(--card);font-weight:600}
.tabs button[aria-selected="true"]{border-bottom-color:var(--foreground)}

/* Form fields: one Core input look. */
/* :where() keeps this at zero specificity: any component rule still wins. */
:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=hidden]),select,textarea){
  min-height:32px;padding:5px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-lg);
  background-color:var(--input);color:var(--foreground);font:400 14px/1.4 var(--font-ui);
}
:where(textarea){min-height:64px}
input::placeholder,textarea::placeholder{color:var(--muted-foreground)}
input:not([type=checkbox]):not([type=radio]):not([type=range]):focus-visible,select:focus-visible,textarea:focus-visible{
  outline:none;border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 50%,transparent);
}
.fd-ask-in,.workflow-sign-field input,.docs-filter select,#docsTurnoverPanel .docs-filter input,.feedback-card textarea,.q-side .txt{font:400 14px/1.4 var(--font-ui);letter-spacing:0;text-transform:none;padding:6px 10px;min-height:32px}
.q-field{font:500 12px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--muted-foreground)}
.q-side .txt{background:var(--input);border-color:var(--border-strong)}

/* Surfaces: Core Card (1px border, 8px radius, no heavy shadow). */
.panel,.findings-pane,.docs-table,.ev-grid,.q-item,.std-card,.tpl-card,.sample-report-card,.review-intake,.stdc-local-notice{
  border-color:var(--border);border-radius:var(--radius-surface);box-shadow:none;
}
.panel{background:var(--card)}
.panel .ph,.inspector .ph,.findings-head{background:transparent;border-bottom-color:var(--border);padding:14px 16px}
.panel .ph h3{font:600 14px/1.4 var(--font-ui);font-stretch:normal;letter-spacing:0;text-transform:none;color:var(--foreground)}
.panel .ph .sub,.inspector .sub{font:400 12px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--muted-foreground)}
.panel .pb{padding:12px 16px 16px}
.ph-toggle .ph-t{font:600 14px var(--font-ui);font-stretch:normal;letter-spacing:0;text-transform:none}
.ph-toggle .caret{color:var(--muted-foreground)}
.dash-panel{padding:0}
.dash-row:hover,.ev-item:hover{background:var(--table-row-hover)}
.review-intake{border:1px dashed var(--border-strong);background:var(--card)}
.review-intake:hover,.review-intake:focus-visible,.review-intake.drag{border-color:var(--primary);background:var(--card);transform:none;box-shadow:var(--shadow-raised)}
.review-intake h1{font-weight:700;font-stretch:125%;letter-spacing:-.02em}
.mtr-modal-card,.shortcuts-card,.workflow-sign-dialog,.popup-menu{border-color:var(--border);border-radius:var(--radius-xl);background:var(--popover);color:var(--popover-foreground);box-shadow:var(--shadow-overlay)}
.shortcuts-card h3,.workflow-sign-dialog h3{font:500 16px/1.35 var(--font-heading);font-stretch:normal;letter-spacing:0;text-transform:none}
.mtr-modal::backdrop,.workflow-sign-dialog::backdrop{background:var(--scrim)}
#shortcuts,#feedback,#drop{background:var(--scrim)}
#drop .box{border-color:var(--primary);border-radius:var(--radius-xl)}
.release-drawer{background:var(--popover);border-left-color:var(--border);box-shadow:var(--shadow-overlay)}
.release-drawer-head h2{font-weight:700;font-stretch:125%;letter-spacing:-.02em}
.release-item-number{background:var(--primary);color:var(--primary-foreground);font:500 11px var(--font-ui)}

/* Menus: Core DropdownMenu. */
.popup-menu{padding:4px;border-radius:var(--radius-lg)}
.popup-menu [role^="menuitem"]{border-radius:var(--radius-md);padding:6px 8px;font:400 14px var(--font-ui);color:var(--popover-foreground)}
.popup-menu [role^="menuitem"]:hover,.popup-menu [role^="menuitem"]:focus-visible{background:var(--accent);color:var(--accent-foreground)}
.popup-menu .popup-menu-featured{font-weight:500}
.popup-menu-badge{border:1px solid var(--border);border-radius:999px;padding:1px 8px;color:var(--foreground);font:500 11px var(--font-ui);letter-spacing:0;text-transform:none}
.popup-menu-context{padding:6px 8px;color:var(--muted-foreground);font:500 12px/1.45 var(--font-ui);letter-spacing:0;text-transform:none}
.popup-menu-separator{margin:4px -4px;background:var(--border)}
.help-unread-dot,.notif-dot{background:var(--brand-red);box-shadow:0 0 0 2px var(--card)}

/* Toasts: Core Sonner (popover surface, hairline, 6px). */
.toast{background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);font-size:13px}
.toast button{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);font:500 12px var(--font-ui)}

/* Badges and status: Core Badge / .status chip (pill, 11px, status pairs). */
/* Sentence case like Core's Badge; JS passes values through badgeLabel(). */
.sev-pill,.status-badge,.f-sev,.doc-stat,.demo-tag,.fd-sample,.fd-cached,.wf-chip,.sev-chip,.fd-origin{border-radius:999px;font-family:var(--font-ui);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}
.sev-pill{height:20px;padding:0 8px}
.sev-pill.blocker{background:var(--status-critical-surface);color:var(--status-critical)}
.sev-pill.major{background:var(--status-bad-surface);color:var(--status-bad)}
.sev-pill.minor{background:var(--status-warn-surface);color:var(--status-warn)}
.sev-pill.pass{background:var(--status-good-surface);color:var(--status-good)}
.sev-pill.needs_review,.sev-pill.review{background:var(--status-progress-surface);color:var(--status-progress);box-shadow:none}
.status-badge,.f-sev{padding:1px 8px}
.sev-chip{padding:4px 10px;background:var(--card);border-color:var(--border)}
.demo-tag,.fd-sample{color:var(--status-progress);background:var(--status-progress-surface);padding:2px 8px}
.fd-origin{padding:1px 8px;color:var(--on-fill)}
.doc-stat{background:var(--muted-surface);border-color:transparent;color:var(--status-neutral)}
.doc-stat.warn{color:var(--status-warn);border-color:transparent;background:var(--status-warn-surface)}
.doc-stat.pass{color:var(--status-good);border-color:transparent;background:var(--status-good-surface)}

/* Tables: one Core table look. */
.dim-table th,.docs-row.h,.op-table th,.pid-matrix-table th{background:var(--table-head-bg);color:var(--muted-foreground);font:500 11px var(--font-ui);letter-spacing:.05em;text-transform:uppercase}
.dim-table th{padding:10px 16px;border-bottom-color:var(--table-row-border)}
.dim-table td{padding:10px 16px;border-bottom-color:var(--table-row-border)}
.docs-row{border-bottom-color:var(--table-row-border)}
.dim-row:hover,.docs-row:not(.h):hover{background:var(--table-row-hover)}
.dim-row.sel,.dim-row.link.sel{background:var(--muted-surface)}
.dim-row.link{background:var(--status-progress-surface)}
.docs-group{padding:9px 18px;border-bottom:1px solid var(--rule);background:var(--table-head-bg);font:500 11px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--muted-foreground)}
.docs-group b{margin-left:6px;color:var(--ink-soft);font-weight:600}

/* Selection: navy (foreground) rail or ring, never brand red. */
.finding:hover{background:var(--table-row-hover)}
.finding.sel{background:var(--muted-surface)}
.finding.link{box-shadow:inset 0 0 0 1px var(--link)}
.ev-sheet.on,.ev-item.on{background:var(--muted-surface)}
.ev-item.on .ei-msg{font-weight:600}
.review-findings .finding.sel,.review-findings .finding-index-item.sel{background:var(--card);border-color:var(--border-strong)}
.std-card:hover,.std-card.on,.tpl-card.on{border-color:var(--primary);transform:none;box-shadow:0 0 0 1px var(--primary)}
.stdc-cat.on{background:var(--card)}
.stdc-cat-rules button.on,.stdc-cat-rules button:hover,.mtr-filter-chip.on,.mtr-preview-tabs button.on,.mtr-preview-tabs button[aria-pressed="true"]{background:var(--accent);color:var(--foreground);border-color:var(--border-strong)}
.rp-module-toggle .btn[aria-selected="true"]{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.mtr-row.evidence-focus{background:var(--card)}

/* Page layout: Core main-content (28/32/40) and page title. */
.content>.view>.wrap{max-width:1410px;padding:0 32px 40px}
.surf-head{padding:28px 0 18px;border-bottom:0}
.surf-head .eyebrow,.stdc-head .eyebrow{display:none}
.surf-head h2,.stdc-head h2{
  margin:0 0 6px;color:var(--foreground);
  font-family:var(--font-display);font-weight:700;font-stretch:125%;
  font-size:clamp(28px,2.3vw,32px);line-height:1.15;letter-spacing:-.02em;text-transform:none;
}
.surf-head p,.stdc-head p{margin:0;font-size:14px;line-height:1.5;color:var(--muted-foreground)}
.surf-head .linkbtn,.stdc-head .linkbtn{align-self:flex-end}
#view-queue section{padding-top:0}
.eyebrow{font:500 11px var(--font-ui);letter-spacing:.05em;color:var(--muted-foreground)}
.stdc-console{padding-top:16px}
.ev-empty.ev-card,.ev-card.ev-empty{font:13px/1.5 var(--font-ui);color:var(--ink-soft);border:0;padding:18px 2px}

/* Dashboard KPIs: Core stat tiles. */
.stat-tiles{gap:12px;padding:0;margin:14px 0 6px;border:0;background:none}
.stat-tile{padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-surface);background:var(--card);box-shadow:none}
.stat-tile .sv{font:600 20px/1.2 var(--font-ui);letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--foreground)}
.stat-tile.alert .sv{color:var(--status-critical)}
.stat-tile .sl{order:-1;margin:0 0 6px;font:500 12px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--muted-foreground)}
.stat-tile{display:flex;flex-direction:column}
.dashboard-scope{border-color:var(--border);border-radius:var(--radius-lg);background:var(--card)}

/* Shell: Core WorkspaceShell sidebar (always navy) and topbar. */
:root{--side-w:248px}
.side{padding:16px 12px 12px;background:var(--sidebar);border-right:1px solid var(--ws-line)}
.side-brand{padding:0 6px 16px;min-height:32px}
.side-brand .side-lockup{width:auto;height:28px;max-width:100%;max-height:28px}
.product-switch{margin:0 0 12px}
.product-switch select{height:34px;padding:0 10px;border:1px solid var(--ws-line);border-radius:8px;background-color:var(--ws-hover);color:var(--ws-text);color-scheme:dark;font:400 13.5px var(--font-ui)}
.side-nav{gap:2px}
.side-nav button{height:34px;padding:0 10px;gap:10px;border-radius:8px;color:var(--ws-text);font:400 13.5px/1 var(--font-ui)}
.side-nav button svg{stroke:var(--ws-icon);opacity:1}
.side-nav button:hover{background:var(--ws-hover);color:var(--on-navy)}
.side-nav button.on{background:var(--ws-active);color:var(--on-navy);font-weight:500;box-shadow:none}
.side-nav button.on svg,.side-nav button:hover svg{stroke:var(--on-navy)}
.nav-count,.side-nav button .nav-count,.side-nav button.on .nav-count{flex:none;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:var(--ws-count);color:var(--ws-count-text);font:500 10px var(--font-ui)}
.nav-workspace{margin:8px 0 2px;padding-top:8px;border-top:1px solid var(--ws-line)}
.nav-workspace-toggle{display:flex;align-items:center;gap:10px;height:26px;padding:0 10px;border-radius:8px;font:500 12px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--ws-muted)}
.nav-workspace-toggle .caret{order:3;flex:none;margin-left:auto;font-size:10px;color:var(--ws-muted)}
.nav-workspace-toggle span:not(.caret){flex:1}
.nav-workspace-toggle:hover{color:var(--on-navy);background:var(--ws-hover)}
.nav-workspace-body button{padding-left:16px}
.side-foot{border-top:1px solid var(--ws-line)}
.side-conf{display:none}
.side-foot .side-status{margin-top:0;color:var(--ws-muted);font:400 12px var(--font-ui);letter-spacing:0;text-transform:none}
.side-nav button:focus-visible,.side button:focus-visible,.side select:focus-visible{outline:2px solid var(--sidebar-ring);outline-offset:2px}
.shell.nav-collapsed .side{width:56px;padding-inline:8px}
.shell.nav-collapsed .side-brand .side-mark{width:26px;height:26px}
.topbar{padding:0 30px 0 24px;background:var(--card);border-bottom:1px solid var(--border)}
.crumbs{font:400 12px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--muted-foreground)}
.crumbs b{font-weight:500;color:var(--foreground)}
.who{border-color:var(--border);border-radius:var(--radius-lg);background:var(--card)}
.who-name{font-weight:500}
.who-meta{font:400 11px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--muted-foreground)}

/* Theme toggle: Core ThemeToggle (30px, 11px label). */
.theme-toggle{display:inline-flex;align-items:center;gap:6px;height:30px;padding:5px 8px;border:1px solid var(--border);border-radius:5px;background:var(--card);color:var(--foreground);font:500 11px var(--font-ui);cursor:pointer}
.theme-toggle:hover{background:var(--muted-surface)}
.theme-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .theme-icon-sun{display:none}
html.dark .theme-toggle .theme-icon-sun{display:block}
html.dark .theme-toggle .theme-icon-moon{display:none}

/* Review header: identity in the display face, one filled action. */
.review-doc-id h1{font:700 18px/1.2 var(--font-display);font-stretch:125%;letter-spacing:-.01em;text-transform:none}
.review-topline .eyebrow,.review-topline .rh-sub,.review-profile-status,.review-save-state{font-size:11px}
.review-topline .sev-chip{font-size:11px}
.sev-chip.conf{border-color:transparent;background:none;color:var(--ink-soft)}
.sev-chip.conf b{color:var(--ink)}

/* Findings rail: title on its own row so it never clips. */
.review-findings .findings-head{grid-template-columns:repeat(2,24px);justify-content:space-between;row-gap:6px}
.review-findings .findings-head .rail-title{grid-column:1/-1;font-size:11px;letter-spacing:.05em}
.review-findings .kbd-hint{width:24px;height:24px;font-size:11px;padding:0}
.sheet-section .rail-toggle .ph-t{font:500 11px var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--muted-foreground)}
.sheet-checks-btn{font-size:11px}

/* Standards editor: publish row and rule title no longer collide. */
.stdc-publish-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:12px 16px 4px}
.stdc-publish-note{flex:1 1 100%;font-size:12px;line-height:1.45;color:var(--ink-soft)}
.stdc-rule-title h3{font:700 20px/1.25 var(--font-display);font-stretch:125%;letter-spacing:-.01em}
.stdc-local-notice{font:400 12px/1.45 var(--font-ui);background:var(--card)}

/* Empty and status messages read as interface copy, not data. */
.dash-empty,.docs-empty,.ev-empty,.stage-empty,.stage-msg,.ev-trace .et-empty,.no-findings.warn{font-family:var(--font-ui);font-size:13px;color:var(--muted-foreground)}

/* Dark theme: the drawing stays paper; chrome around it follows the theme. */
.markup-legend{background:color-mix(in srgb,var(--paper) 92%,transparent);border-color:var(--mark-line);color:var(--mark-ink-soft)}
.markup-legend i.sev-blocker{color:var(--mark-blocker)}
.markup-legend i.sev-major{color:var(--mark-major)}
.markup-legend i.sev-minor{color:var(--mark-minor)}
.markup-legend i.sev-review{color:var(--mark-review)}
html.dark .stage,html.dark .drawing-pdf-canvas{background:var(--paper)}

@media(max-width:760px){
  .content>.view>.wrap{padding:0 16px 30px}
  /* Phones: the review header keeps identity and counts; actions move to a
     bottom bar so the drawing starts higher on the screen. */
  .review-topline .review-controls{
    position:fixed;z-index:40;left:0;right:0;bottom:0;margin:0;padding:8px 12px calc(8px + env(safe-area-inset-bottom));
    display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;background:var(--card);border-top:1px solid var(--border);
  }
  .review-topline .review-controls>*{flex:none}
  .review-topline .review-controls .btn.primary{order:-1}
  .review-topline .review-controls .btn{padding:0 10px}
  #view-review.on{padding-bottom:64px}
  .review-topline .review-profile-status,.review-topline .review-save-state{display:none}
  .review-canvas .rv-toolbar{flex-wrap:wrap;row-gap:6px;overflow-x:visible}
  .crumbs{font-size:0;gap:0}
  .crumbs b{font-size:12px}
  .stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .topbar{padding:0 12px}
  .theme-toggle span{display:none}
}
@media(max-width:760px){
  /* The rail sits higher now that review actions live in the bottom bar, so
     the filter popovers open as a sheet above that bar instead of over the
     rail's own filter button. */
  .review-findings.filters-open .findings-toolbar{top:auto;bottom:72px;max-height:46vh}
  .review-left.filters-open .sheet-search{top:auto;bottom:calc(72px + 46vh + 8px)}
}

/* Embedded inside Semper Core (/app?embed=1): Core owns the account,
   workspace and theme chrome; Review keeps its product navigation. */
html[data-embed="core"] #accountMenuWrap,
html[data-embed="core"] [data-tenant-switcher],
html[data-embed="core"] #themeToggle{display:none!important}
/* P&ID revision comparison */
.pid-compare-body{padding:12px;display:grid;gap:12px}
.pid-compare-body>p{margin:0}
.pid-compare-note{color:var(--ink-soft);font-size:12px;line-height:1.5}
.pid-compare-error{color:var(--neg);font-size:12px}
.pid-compare-group h5,.pid-compare-decision h5{margin:0 0 6px;font:600 12px var(--font-ui)}
.pid-compare-group h5 .muted{font-weight:400}
.pid-compare-rows{list-style:none;margin:0;padding:0;border:1px solid var(--rule)}
.pid-compare-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:4px 10px;align-items:baseline;padding:8px 10px;border-bottom:1px solid var(--rule)}
.pid-compare-row:last-child{border-bottom:0}
.pid-compare-row b{font:600 12px var(--font-ui);overflow-wrap:anywhere}
.pid-compare-type{color:var(--ink-soft);font:10px var(--font-mono)}
.pid-compare-change{font:500 10px var(--font-ui);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}
.pid-compare-row[data-change="added"] .pid-compare-change{color:var(--pos)}
.pid-compare-row[data-change="removed"] .pid-compare-change{color:var(--neg)}
.pid-compare-row[data-change="changed"] .pid-compare-change{color:var(--warn-ink)}
.pid-compare-fields{grid-column:2/-1;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:2px 10px;margin:4px 0 0;font:11px var(--font-mono)}
.pid-compare-fields dt{color:var(--ink-soft)}
.pid-compare-fields dd{margin:0;overflow-wrap:anywhere}
.pid-compare-fields del{color:var(--ink-soft)}
.pid-compare-fields ins{text-decoration:none;font-weight:600}
.pid-compare-decision{border-top:1px solid var(--rule);padding-top:12px}
.pid-compare-current{margin:0 0 8px;font-size:12px;overflow-wrap:anywhere}
.pid-compare-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.pid-compare-form label{display:grid;gap:4px;font:500 11px var(--font-ui);color:var(--ink-soft)}
.pid-compare-form select,.pid-compare-form textarea{border:1px solid var(--rule-strong);padding:5px 7px;background:var(--card);color:var(--ink);font:12px var(--font-ui)}
.pid-compare-reason{flex:1 1 260px}
.pid-compare-reason textarea{width:100%;resize:vertical}
.pid-compare-history{margin-top:8px;font-size:12px}
.pid-compare-history ol{margin:6px 0 0;padding-left:18px;display:grid;gap:4px}
@media (max-width:640px){.pid-compare-row{grid-template-columns:minmax(0,1fr)}.pid-compare-fields{grid-column:1}}
/* SAP QM connection (Settings) and send status (MTR review) */
.sap-qm-settings{margin-top:16px;padding-top:14px;border-top:1px solid var(--rule)}
.sap-qm-settings h4{margin:0 0 4px;font:600 13px var(--font-ui)}
.sap-qm-settings h5{margin:14px 0 6px;font:600 12px var(--font-ui)}
.sap-qm-settings>p{margin:0 0 10px;font-size:12px;line-height:1.5}
.sap-qm-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sap-qm-form label{display:grid;gap:4px;font:500 11px var(--font-ui);color:var(--ink-soft)}
.sap-qm-form input:not([type=radio]),.sap-qm-form select{min-height:32px;border:1px solid var(--rule-strong);padding:5px 8px;background:var(--card);color:var(--ink);font:12px var(--font-ui)}
.sap-qm-wide{grid-column:1/-1}
.sap-qm-form fieldset{display:grid;gap:6px;margin:0;padding:10px;border:1px solid var(--rule)}
.sap-qm-form legend{padding:0 4px;font:600 11px var(--font-ui);color:var(--ink-soft)}
.sap-qm-form fieldset p{margin:0;font-size:12px}
.sap-qm-actions{display:flex;gap:8px;flex-wrap:wrap}
.sap-qm-test{margin:10px 0 0;font-size:12px}
.sap-qm-test.ok{color:var(--pos)}
.sap-qm-test.bad{color:var(--neg)}
.sap-qm-syncs{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:12px}
.sap-qm-syncs li{display:flex;gap:8px;overflow-wrap:anywhere}
.sap-qm-syncs small{margin-left:auto;color:var(--ink-soft);white-space:nowrap}
.mtr-sap-status{flex-basis:100%;color:var(--ink-soft);font-size:11px}
@media (max-width:640px){.sap-qm-form{grid-template-columns:minmax(0,1fr)}}
.sap-qm-form fieldset .set-radio{display:flex;padding:2px 0;border-bottom:0;font-size:12px;color:var(--ink);gap:8px;align-items:center}

/* ======================================================================
   Drawing review: Inspector layout. One review bar (identity, verdict,
   progress, Submit), a titled finding list covering every sheet, the sheet,
   and an inspector with Details / Comments / History / Copilot tabs.
   Scoped to #reviewData so it settles the layered review rules above.
   ====================================================================== */
#reviewData{--df-index:264px}
#reviewData .review-topline{
  grid-template-columns:minmax(220px,1fr) auto auto;grid-template-areas:"id summary controls";
  align-items:center;gap:6px 16px;min-height:56px;padding:7px 16px;
}
#reviewData .review-topline .rh-summary,#reviewData .review-topline .review-controls{justify-self:end}
#reviewData .review-doc-id{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:2px;min-width:0}
#reviewData .review-doc-id .eyebrow{flex:none;margin:0}
#reviewData .review-doc-id h1{flex:0 1 auto;min-width:0;max-width:100%}
#reviewData .rh-break{flex-basis:100%;height:0}
#reviewData .review-doc-id .rh-sub,#reviewData .review-profile-status,#reviewData .review-save-state{margin:0;flex:0 1 auto;min-width:0;max-width:100%}
#reviewData .review-profile-status:empty,#reviewData .review-save-state:empty,#reviewData .rh-sub:empty{display:none}
#reviewData .review-workflow{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;padding:0;border:0;background:none;font-size:11px}
#reviewData .review-workflow[hidden]{display:none}
#reviewData .review-workflow-meta,#reviewData .review-workflow-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.review-verdict{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}
.verdict-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1px solid currentColor;border-radius:999px;font:600 12px/1.3 var(--font-ui);white-space:nowrap}
.verdict-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.verdict-chip.blocked{color:var(--status-critical);background:var(--status-critical-surface)}
.verdict-chip.in_review{color:var(--status-progress);background:var(--status-progress-surface)}
.verdict-chip.changes_needed{color:var(--status-warn);background:var(--status-warn-surface)}
.verdict-chip.ready{color:var(--status-good);background:var(--status-good-surface)}
.verdict-progress{display:grid;gap:4px;color:var(--ink-soft);font:12px var(--font-ui);font-variant-numeric:tabular-nums;white-space:nowrap}
.verdict-progress b{color:var(--ink);font-weight:600}
.verdict-meter{display:block;width:120px;height:4px}
.verdict-meter .vm-bg{fill:var(--border)}
.verdict-meter .vm-fill{fill:var(--primary)}
.review-submit-wrap{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px}
.review-submit-reason{max-width:240px;color:var(--ink-faint);font:11px/1.3 var(--font-ui);text-align:right}
.review-submit-reason:empty{display:none}
#reviewSubmitBtn:disabled{cursor:not-allowed}

/* Finding list: severity groups with titled rows; other sheets are tagged. */
#reviewData .review-findings .findings-list{gap:2px;padding:0 8px 10px}
.finding-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:10px 2px 4px;color:var(--ink-faint);font:600 11px var(--font-ui)}
.finding-group-head:first-child{margin-top:2px}
.finding-group-head b{font:500 11px var(--font-ui);font-variant-numeric:tabular-nums}
.finding-group-head.blocker span{color:var(--sev-blocker)}
.finding-group-head.major span{color:var(--sev-major)}
.finding-group-head.minor span{color:var(--sev-minor)}
#reviewData .review-findings .finding-index-item{align-items:flex-start;gap:8px;min-height:44px;padding:6px 6px;border-radius:var(--radius-md);text-align:left}
#reviewData .review-findings .finding-index-number{width:24px;height:24px;margin-top:1px}
#reviewData .review-findings .finding-index-item.blocker .finding-index-number{border-radius:3px}
#reviewData .review-findings .finding-index-item.minor .finding-index-number{width:28px;height:28px;margin:-1px -2px 0;border:0;border-radius:0;background:color-mix(in srgb,currentColor 18%,var(--card));clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
#reviewData .review-findings .finding-index-item.needs .finding-index-number{border-style:dashed}
.finding-row-text{display:grid;gap:2px;min-width:0;flex:1}
.finding-row-text b{overflow:hidden;color:var(--ink);font:500 12px/1.35 var(--font-ui);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.finding-row-text small{color:var(--ink-faint);font:11px/1.3 var(--font-ui)}
#reviewData .review-findings .finding-index-dot{margin-top:9px}
#reviewData .review-findings .finding-index-item.deferred .finding-index-dot{background:transparent;border:1.5px solid currentColor}
#reviewData .review-findings .finding-index-item.done{opacity:.62}
#reviewData .review-findings .finding-index-item.done .finding-row-text b{text-decoration:line-through;text-decoration-color:var(--ink-faint)}
#reviewData .review-findings .finding-index-item:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
#reviewData .sheet-row{justify-content:flex-start;gap:8px;padding:0 8px}
#reviewData .sheet-row .sheet-title{display:block;overflow:hidden;color:var(--ink);font:12px var(--font-ui);white-space:nowrap;text-overflow:ellipsis}
#reviewData .sheet-row .sheet-count{position:static;width:auto;min-width:18px;height:18px;margin-left:auto;padding:0 5px;border-radius:999px;color:var(--on-fill);font:600 11px/18px var(--font-ui);text-align:center}
#reviewData .sheet-section .rail-toggle .ph-t,#reviewData .review-findings .rail-title{font-size:11px;letter-spacing:.04em}

/* Pins: severity shape plus colour; the box sits outside the flagged value. */
.markup .mk-shape-review{stroke-dasharray:4 3}
.markup .mk .mk-box{stroke-dasharray:none}
.markup .mk.review .mk-box{stroke-dasharray:5 4}

/* Inspector: tabs over one scrolling panel; decisions show their keys. */
.ep-tabs{display:flex;flex:none;gap:2px;padding:0 10px;border-bottom:1px solid var(--df-line);overflow-x:auto}
.ep-tabs button{flex:none;min-height:38px;padding:0 10px;border:0;background:none;color:var(--ink-soft);font:500 12px var(--font-ui);cursor:pointer;box-shadow:inset 0 -2px 0 transparent}
.ep-tabs button.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--primary)}
.ep-tabs button:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}
.ep-tabs button b{margin-left:4px;color:var(--ink-faint);font-weight:500;font-variant-numeric:tabular-nums}
#evidencePanel .ep-panel{flex:1;min-height:0;overflow:auto}
#evidencePanel .ep-panel[hidden]{display:none}
#evidencePanel #commentsPanel{display:flex;flex-direction:column;padding:12px 14px}
#evidencePanel #commentsPanel[hidden]{display:none}
#evidencePanel #commentsPanel .comment-list{flex:1;min-height:0;overflow:auto}
#evidencePanel #historyPanel,#evidencePanel #copilotPanel{padding:12px 14px}
.ev-disposition{position:sticky;bottom:0;z-index:2;background:var(--card)}
.ev-disposition-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;font-size:12px}
.ev-disposition-actions kbd,.ev-resolve kbd,.ev-overview kbd,.ev-narrative kbd{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;background:var(--muted-surface);color:var(--ink-soft);font:500 10px var(--font-mono)}
.ev-disposition-actions .defer.on{border-color:var(--status-warn);color:var(--status-warn);background:var(--status-warn-surface)}
.ev-resolve{display:inline-flex;align-items:center;gap:6px;margin-top:9px;font-size:12px}
.ev-resolve.on{font-weight:600}
.ev-overview p{margin:10px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.5}
.ev-overview-counts{margin-top:12px}
.ev-overview-counts .rule-kv{margin-top:6px}

@media(min-width:1180px){
  #reviewData .review-lab,#reviewData .review-lab.evidence-collapsed,#reviewData .review-lab.findings-collapsed,#reviewData .review-lab.findings-collapsed.evidence-collapsed{
    grid-template-columns:var(--df-index) minmax(0,1fr) clamp(340px,26vw,400px);
    height:calc(100dvh - var(--topbar-h) - 108px);
  }
}
@media(max-width:1179px){
  #reviewData{--df-index:220px}
  #reviewData .review-lab,#reviewData .review-lab.evidence-collapsed,#reviewData .review-lab.findings-collapsed,#reviewData .review-lab.findings-collapsed.evidence-collapsed{grid-template-columns:var(--df-index) minmax(0,1fr)}
  #reviewData .review-lab .evidence-panel{width:min(380px,calc(100% - var(--df-index)))}
  #reviewData .review-topline{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"id controls" "summary summary"}
  #reviewData .review-topline .rh-summary{justify-self:start}
}
@media(max-width:760px){
  #reviewData .review-topline{grid-template-columns:1fr;grid-template-areas:"id" "summary" "controls";gap:8px;padding:10px 12px}
  #reviewData .review-topline .rh-summary,#reviewData .review-topline .review-controls{justify-self:stretch}
  #reviewData .review-controls{flex-wrap:wrap}
  #reviewData .review-controls .btn{min-height:44px}
  .review-submit-wrap{flex:1 1 100%;align-items:stretch}
  .review-submit-reason{max-width:none;text-align:left}
  #reviewData .review-lab,#reviewData .review-lab.evidence-collapsed,#reviewData .review-lab.findings-collapsed,#reviewData .review-lab.findings-collapsed.evidence-collapsed{grid-template-columns:minmax(0,1fr)}
  #reviewData .review-lab .evidence-panel{width:auto}
  .finding-group-head,.finding-row-text{display:none}
  #reviewData .review-findings .finding-index-item{width:44px;min-width:44px;height:44px;align-items:center;justify-content:center;padding:4px}
  #reviewData .review-findings .finding-index-dot{margin-top:0}
  #reviewData .sheet-row{justify-content:center;width:44px;min-width:44px;height:44px;padding:0}
  #reviewData .sheet-row .sheet-title{display:none}
  #reviewData .sheet-row .sheet-count{position:absolute;right:3px;top:3px;min-width:6px;width:6px;height:6px;padding:0;color:transparent;font-size:0}
  .ev-disposition-actions .btn{min-height:44px}
}
