/* Matchroom Commission Control — Phase 1 dashboard styles.
   Brand: pure black, ivory (#fffff0) text, hot-pink (#ff0068) accent,
   heavy uppercase Archivo display + Source Serif editorial copy. */

:root{
  --bg:#000; --surface:#0f0f0f; --surface-2:#181818; --surface-3:#222;
  --line:#2c2c2c; --line-soft:#1d1d1d;
  --ink:#fffff0; --ink-soft:rgba(255,255,240,.66); --ink-faint:rgba(255,255,240,.42);
  --accent:#ff0068; --accent-hot:#ff3d8a; --accent-deep:#c8004f;
  --good:#37d68a; --warn:#ffb020; --bad:#ff0068; --na:rgba(255,255,240,.34);
  --ring-track:#242424;
  --shadow:0 2px 4px rgba(0,0,0,.5),0 14px 40px rgba(0,0,0,.5);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);
  font-family:"Archivo",system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;}
.serif{font-family:"Source Serif 4",Georgia,serif;}
.wrap{max-width:1220px;margin:0 auto;padding:0 20px 72px;}
button{font-family:inherit;}
[hidden]{display:none!important;}

.topbar{position:sticky;top:0;z-index:40;background:rgba(0,0,0,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.topbar-inner{max-width:1220px;margin:0 auto;padding:13px 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mark{font-family:"Archivo";font-weight:900;font-style:italic;font-size:26px;line-height:1;letter-spacing:-.06em;transform:skewX(-2deg);}
.brand .mark b{color:var(--accent);}
.brand .txt{font-family:"Archivo";font-weight:800;font-size:16px;letter-spacing:.02em;text-transform:uppercase;line-height:1;}
.brand .txt small{display:block;font-size:9.5px;letter-spacing:.28em;color:var(--ink-faint);font-weight:600;margin-top:3px;}
.spacer{flex:1 1 auto;}
.fight-switch{position:relative;}
.event-pill{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);padding:8px 15px;
  font-family:inherit;color:inherit;text-align:left;cursor:pointer;}
.event-pill:hover{border-color:var(--accent);}
.event-pill .caret{color:var(--ink-faint);font-size:11px;margin-left:2px;}
.event-pill[aria-expanded=true]{border-color:var(--accent);}
.event-pill[aria-expanded=true] .caret{color:var(--accent);transform:rotate(180deg);}

/* fight switcher dropdown */
.fight-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:320px;max-width:min(420px,90vw);z-index:50;
  background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--accent);box-shadow:var(--shadow);
  max-height:min(60vh,440px);overflow-y:auto;}
.fm-item{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border:none;border-bottom:1px solid var(--line-soft);
  padding:11px 14px;cursor:pointer;color:inherit;text-align:left;font-family:inherit;}
.fm-item:last-child{border-bottom:none;}
.fm-item:hover{background:var(--surface-2);}
.fm-item.current{background:var(--surface-2);}
.fm-bar{width:3px;align-self:stretch;flex:none;min-height:30px;}
.fm-bar.ok{background:var(--good);} .fm-bar.due{background:var(--warn);} .fm-bar.miss{background:var(--accent);}
.fm-main{flex:1;min-width:0;}
.fm-main b{display:block;font-family:"Archivo";font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.03em;
  line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fm-main small{display:block;font-size:10.5px;color:var(--ink-faint);letter-spacing:.04em;margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fm-stat{text-align:right;flex:none;}
.fm-stat b{font-family:"Archivo";font-weight:900;font-size:15px;font-variant-numeric:tabular-nums;}
.fm-stat small{display:block;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;margin-top:1px;}
.fm-item.current .fm-main b::after{content:"●";color:var(--accent);font-size:8px;vertical-align:middle;margin-left:7px;}
.fm-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line-soft);}
.fm-row:last-child{border-bottom:none;}
.fm-row .fm-item{flex:1;border-bottom:none;}
.fm-del{flex:none;width:38px;border:none;border-left:1px solid var(--line-soft);background:transparent;
  color:var(--ink-faint);cursor:pointer;font-size:13px;font-family:inherit;}
.fm-del:hover{background:var(--accent);color:#fff;}
.fm-empty{padding:18px 14px;text-align:center;color:var(--ink-faint);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;}
.event-pill .ev-name{font-family:"Archivo";font-weight:800;font-size:14px;letter-spacing:.03em;line-height:1.1;text-transform:uppercase;}
.event-pill .ev-meta{font-size:11px;color:var(--ink-faint);letter-spacing:.04em;}
.count{text-align:center;padding-left:14px;border-left:1px solid var(--line);}
.count .n{font-family:"Archivo";font-weight:900;font-size:22px;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums;}
.count .l{font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-top:2px;}
.ghost-btn{border:1px solid var(--line);background:transparent;color:var(--ink);font-family:"Archivo";font-weight:700;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:9px 13px;cursor:pointer;}
.ghost-btn:hover{border-color:var(--accent);}

.headline{padding-top:30px;padding-bottom:22px;}
.eyebrow{font-family:"Archivo";font-weight:700;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;}
.headline h1{font-family:"Archivo";font-weight:900;font-size:clamp(30px,5vw,50px);text-transform:uppercase;letter-spacing:-.01em;margin:0;line-height:.95;}
.headline p{margin:14px 0 0;color:var(--ink-soft);max-width:60ch;font-size:16px;line-height:1.55;}
.demo{display:inline-block;margin-top:16px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ink-faint);border:1px solid var(--line);padding:5px 11px;}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;margin-bottom:30px;background:var(--line);border:1px solid var(--line);}
.kpi{background:var(--bg);padding:20px 18px 18px;display:flex;flex-direction:column;gap:2px;}
.kpi .kv{font-family:"Archivo";font-weight:900;font-size:46px;line-height:.9;font-variant-numeric:tabular-nums;letter-spacing:-.02em;}
.kpi .kl{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;margin-top:8px;}
.kpi .ks{font-size:12px;color:var(--ink-soft);margin-top:6px;letter-spacing:.02em;}
.ring-wrap{display:flex;align-items:center;gap:16px;}
.ring{--pct:0;width:78px;height:78px;flex:none;border-radius:50%;position:relative;
  background:conic-gradient(var(--good) calc(var(--pct)*1%),var(--ring-track) 0);display:grid;place-items:center;}
.ring::before{content:"";position:absolute;width:60px;height:60px;border-radius:50%;background:var(--bg);}
.ring b{position:relative;font-family:"Archivo";font-weight:900;font-size:21px;font-variant-numeric:tabular-nums;}
.bar-strip{display:flex;gap:3px;margin-top:12px;}
.bar-strip i{height:6px;flex:1;}

.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.section-lbl{font-family:"Archivo";font-weight:800;font-size:13px;letter-spacing:.16em;text-transform:uppercase;margin-right:6px;}
.filters{display:flex;gap:0;flex-wrap:wrap;border:1px solid var(--line);}
.chip-btn{border:none;border-right:1px solid var(--line);background:transparent;color:var(--ink-soft);padding:8px 14px;font-size:12px;
  cursor:pointer;font-weight:700;letter-spacing:.06em;text-transform:uppercase;display:inline-flex;align-items:center;gap:7px;font-family:"Archivo";}
.chip-btn:last-child{border-right:none;}
.chip-btn:hover{color:var(--ink);background:var(--surface);}
.chip-btn.active{background:var(--accent);color:#fff;}
.chip-btn .dot{width:8px;height:8px;border-radius:50%;}
.legend{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;font-weight:600;}
.legend span{display:inline-flex;align-items:center;gap:7px;}
.legend i{width:11px;height:11px;display:inline-block;}

.matrix-scroll{overflow-x:auto;border:1px solid var(--line);background:var(--surface);}
/* The verdict under a proposal: file it as it stands, or read it first. About the
   FILING, never about the fighter — a clean document is not a cleared boxer. */
.ai-rec{font-family:"Source Serif 4",Georgia,serif;font-size:12.5px;margin-top:11px;padding-top:10px;
  border-top:1px solid var(--line-soft);line-height:1.5;}
.ai-rec.good{color:var(--good);}
.ai-rec.check{color:var(--warn);}
.ai-rec ul{margin:6px 0 0;padding-left:18px;}
.ai-rec li{margin:2px 0;color:var(--ink-soft);}

/* Dragging a fighter onto another card in the switcher moves them there. The switcher
   opens on dragstart because it is the only place the other cards are named. */
.fighter-row[draggable=true]{cursor:grab;}
.fighter-row.dragging{opacity:.4;}
body.dragging-fighter .fight-menu{outline:2px solid var(--accent);}
body.dragging-fighter .fm-item{transition:background .12s;}
.fm-item.drop-target{background:var(--accent);color:#fff;}
.fm-item.drop-target .fm-main small,.fm-item.drop-target .fm-stat small{color:rgba(255,255,255,.8);}

/* The requirement a person clicked on the board, brought into view in the drawer. The
   mark fades: it says "this one" without leaving a selection nobody asked for. */
.req-focus{animation:reqFocus 1.8s ease-out;}
@keyframes reqFocus{
  0%{box-shadow:inset 3px 0 0 var(--accent);background:rgba(255,0,104,.10);}
  70%{box-shadow:inset 3px 0 0 var(--accent);background:rgba(255,0,104,.06);}
  100%{box-shadow:inset 3px 0 0 transparent;background:transparent;}
}
/* A tile on the board is a way into the drawer, so it should look like one. */
.fighter-row td[data-req] .cell{cursor:pointer;}

/* Bout header row: the pairing, which is what a commission submission states. */
.bout-row td{background:#000;padding:0;border-top:1px solid var(--line);}
.bout-head{display:flex;align-items:center;gap:14px;padding:10px 16px;}
.bout-head .idx{font-family:"Archivo";font-weight:900;font-size:22px;font-style:italic;color:var(--accent);letter-spacing:-.04em;line-height:1;min-width:34px;font-variant-numeric:tabular-nums;}
.bout-head .bt{font-family:"Archivo";font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase;}
.bout-head .rds{color:var(--ink-faint);font-weight:500;font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
table.matrix{border-collapse:collapse;width:100%;min-width:880px;}
.matrix thead th{position:sticky;top:0;background:#0a0a0a;z-index:2;font-family:"Archivo";font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);font-weight:800;padding:13px 8px;text-align:center;border-bottom:2px solid var(--accent);}
.matrix thead th .win{display:block;font-size:9px;color:var(--ink-faint);font-weight:500;letter-spacing:.03em;text-transform:none;margin-top:3px;}
.matrix th.corner{text-align:left;left:0;z-index:3;padding-left:16px;min-width:224px;background:#0a0a0a;}
.fighter-row{cursor:pointer;}
.fighter-row:hover td{background:var(--surface-2);}
.fighter-row td{border-bottom:1px solid var(--line-soft);border-top:1px solid var(--line-soft);padding:0;text-align:center;vertical-align:middle;}
.namecell{position:sticky;left:0;background:var(--surface);z-index:1;text-align:left!important;padding:0!important;border-right:1px solid var(--line);}
.fighter-row:hover .namecell{background:var(--surface-2);}
.namecell .fn{display:flex;align-items:center;gap:11px;padding:11px 14px 11px 16px;}
.namecell .av{width:34px;height:34px;flex:none;display:grid;place-items:center;font-family:"Archivo";font-weight:800;font-size:13px;color:#fff;font-style:italic;}
.namecell .who b{font-family:"Archivo";font-weight:800;font-size:16px;display:block;line-height:1.05;text-transform:uppercase;}
.namecell .who small{font-size:10px;color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;font-weight:600;}
.mini-pct{margin-left:auto;text-align:right;padding-left:8px;}
.mini-pct b{font-family:"Archivo";font-weight:800;font-size:15px;font-variant-numeric:tabular-nums;}
.mini-pct small{display:block;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}

.cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 6px;margin:4px;min-height:48px;border-left:2px solid transparent;}
.cell .s{font-family:"Archivo";font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}
.cell .d{font-size:9.5px;color:var(--ink-faint);line-height:1;font-variant-numeric:tabular-nums;}
.cell.ok{background:color-mix(in srgb,var(--good) 12%,transparent);border-left-color:var(--good);}
.cell.ok .s{color:var(--good);}
.cell.due{background:color-mix(in srgb,var(--warn) 13%,transparent);border-left-color:var(--warn);}
.cell.due .s{color:var(--warn);}
.cell.miss{background:color-mix(in srgb,var(--bad) 15%,transparent);border-left-color:var(--bad);}
.cell.miss .s{color:var(--accent-hot);}
.cell.na{background:transparent;}
.cell.na .s{color:var(--na);}
.cell .warnflag{font-size:8.5px;color:var(--warn);letter-spacing:.04em;text-transform:uppercase;font-weight:700;}

.status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;font-family:"Archivo";font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}
.status-pill .dot{width:7px;height:7px;border-radius:50%;}
.pill-ok{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good);} .pill-ok .dot{background:var(--good);}
.pill-due{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn);} .pill-due .dot{background:var(--warn);}
.pill-miss{background:color-mix(in srgb,var(--bad) 16%,transparent);color:var(--accent-hot);} .pill-miss .dot{background:var(--accent);}

/* drawer */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.66);backdrop-filter:blur(2px);z-index:60;opacity:0;transition:opacity .22s;pointer-events:none;}
.scrim.open{opacity:1;pointer-events:auto;}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(470px,94vw);z-index:61;background:var(--surface);border-left:2px solid var(--accent);
  box-shadow:-16px 0 50px rgba(0,0,0,.6);transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;}
.drawer.open{transform:translateX(0);}
.drawer-head{padding:22px;border-bottom:1px solid var(--line);}
.drawer-head .top{display:flex;align-items:flex-start;gap:13px;}
.drawer-head .av{width:48px;height:48px;flex:none;display:grid;place-items:center;font-family:"Archivo";font-weight:800;font-style:italic;font-size:19px;color:#fff;}
.drawer-head h2{font-family:"Archivo";font-weight:900;font-size:26px;margin:0;line-height:.98;text-transform:uppercase;letter-spacing:-.01em;}
.drawer-head .sub{font-size:11px;color:var(--ink-faint);margin-top:5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;}
.closebtn{margin-left:auto;border:1px solid var(--line);background:transparent;color:var(--ink-soft);width:34px;height:34px;cursor:pointer;font-size:16px;flex:none;}
.closebtn:hover{color:var(--ink);border-color:var(--accent);}
.drawer-prog{display:flex;align-items:center;gap:12px;margin-top:18px;}
.drawer-prog .track{flex:1;height:8px;background:var(--ring-track);overflow:hidden;display:flex;}
.drawer-prog .track i{height:100%;}
.drawer-prog b{font-family:"Archivo";font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;}
.drawer-body{flex:1;overflow-y:auto;padding:6px 22px 20px;}
.req{padding:15px 0;border-bottom:1px solid var(--line-soft);}
.req .rtop{display:flex;gap:13px;align-items:flex-start;}
.req .glyph{width:28px;height:28px;flex:none;display:grid;place-items:center;font-size:14px;font-weight:800;margin-top:1px;}
.g-ok{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good);}
.g-due{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn);}
.g-miss{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--accent-hot);}
.g-na{background:var(--surface-2);color:var(--na);}
.req .rn{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.req .rn b{font-family:"Archivo";font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.03em;}
.req .full{font-size:13px;color:var(--ink-soft);margin-top:2px;font-family:"Source Serif 4",Georgia,serif;}
.req .meta{display:flex;gap:16px;margin-top:9px;font-size:11px;color:var(--ink-faint);flex-wrap:wrap;letter-spacing:.04em;text-transform:uppercase;font-weight:600;}
.req .meta span b{color:var(--ink-soft);font-weight:700;}
.req .warn{color:var(--warn);}
.req .note{font-size:13px;color:var(--ink-soft);margin-top:8px;background:var(--bg);padding:9px 11px;border-left:2px solid var(--accent);font-family:"Source Serif 4",Georgia,serif;line-height:1.5;}

/* inline editor */
.editor{margin-top:11px;background:var(--bg);border:1px solid var(--line);padding:12px;display:none;}
.editor.open{display:block;}
.editor .row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px;}
.seg{display:flex;border:1px solid var(--line);}
.seg button{border:none;border-right:1px solid var(--line);background:transparent;color:var(--ink-soft);font-family:"Archivo";font-weight:700;
  font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding:7px 11px;cursor:pointer;}
.seg button:last-child{border-right:none;}
.seg button.sel-ok{background:var(--good);color:#000;}
.seg button.sel-due{background:var(--warn);color:#000;}
.seg button.sel-miss{background:var(--accent);color:#fff;}
label.fld{display:flex;flex-direction:column;gap:4px;font-family:"Archivo";font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;flex:1;min-width:130px;}
input[type=date],input[type=text],textarea,select{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);font-family:inherit;font-size:13px;padding:8px 10px;}
textarea{resize:vertical;min-height:52px;font-family:"Source Serif 4",Georgia,serif;}
.editor .foot{display:flex;gap:8px;justify-content:flex-end;margin-top:4px;}

.act{border:1px solid var(--line);background:transparent;color:var(--ink);font-family:"Archivo";font-size:11px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;padding:7px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.act:hover{border-color:var(--accent);}
.act.primary{background:var(--accent);border-color:var(--accent);color:#fff;}
.act.primary:hover{background:var(--accent-hot);border-color:var(--accent-hot);}
.act.small{padding:5px 10px;font-size:10px;}
.drawer-foot{padding:15px 22px;border-top:1px solid var(--line);background:var(--bg);display:flex;gap:10px;}
.drawer-foot .act{flex:1;justify-content:center;padding:12px;font-size:12px;}

/* modal */
.modal-scrim{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:70;display:grid;place-items:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .2s;}
.modal-scrim.open{opacity:1;pointer-events:auto;}
.modal{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent);max-width:480px;width:100%;box-shadow:var(--shadow);transform:scale(.96);transition:transform .2s;overflow:hidden;max-height:88vh;display:flex;flex-direction:column;}
.modal-scrim.open .modal{transform:scale(1);}
.modal-head{padding:20px 22px;border-bottom:1px solid var(--line);}
.modal-head h3{margin:0;font-family:"Archivo";font-weight:900;font-size:22px;text-transform:uppercase;letter-spacing:-.01em;}
.modal-head p{margin:6px 0 0;font-size:13px;color:var(--ink-soft);font-family:"Source Serif 4",Georgia,serif;}
.modal-body{padding:18px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;}
.modal-foot{padding:15px 22px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;}
.form-error{background:color-mix(in srgb,var(--bad) 15%,transparent);border-left:2px solid var(--accent);
  color:var(--accent-hot);padding:9px 11px;font-size:12px;font-weight:600;letter-spacing:.02em;}
input[type=password]{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);
  font-family:inherit;font-size:13px;padding:8px 10px;}
.checkline{display:flex;align-items:center;gap:9px;font-family:"Archivo";font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-soft);}

/* activity / audit panel */
.au-scope{margin-top:16px;}
.au-scope .seg button[disabled]{opacity:.4;cursor:not-allowed;}
.au{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--line-soft);align-items:flex-start;}
.au:last-child{border-bottom:none;}
.au-when{flex:none;width:52px;font-family:"Archivo";font-weight:800;font-size:12px;letter-spacing:.03em;text-transform:uppercase;
  line-height:1.2;font-variant-numeric:tabular-nums;}
.au-when small{display:block;font-size:10px;font-weight:600;color:var(--ink-faint);letter-spacing:.06em;margin-top:2px;}
.au-main{flex:1;min-width:0;}
.au-act{font-family:"Archivo";font-weight:800;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-hot);}
.au-who{font-family:"Archivo";font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);}
.au-top{display:flex;gap:9px;flex-wrap:wrap;align-items:baseline;}
.au-detail{font-size:13px;color:var(--ink-soft);margin-top:4px;font-family:"Source Serif 4",Georgia,serif;line-height:1.45;
  overflow-wrap:anywhere;}
.au-actor{flex:none;font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--ink-faint);
  border:1px solid var(--line);padding:2px 6px;margin-top:1px;}
.au-empty{padding:40px 0;text-align:center;color:var(--ink-faint);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;}
.au-foot{padding:13px 22px;border-top:1px solid var(--line);background:var(--bg);font-size:11px;color:var(--ink-faint);
  font-family:"Source Serif 4",Georgia,serif;line-height:1.45;}

/* ---- Phase 2 ops surfaces: pending badges, contacts, review queue ---- */
.pill-count{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;margin-left:8px;
  background:var(--accent);color:#fff;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums;}
.cell.has-pending{box-shadow:inset 0 -2px 0 var(--warn);}
.cell .pendflag{font-size:8.5px;color:var(--warn);letter-spacing:.04em;text-transform:uppercase;font-weight:700;}
.req .meta .pend{color:var(--warn);}

.contacts-block{border-bottom:1px solid var(--line);padding:14px 0 15px;}
.cb-head{display:flex;align-items:center;justify-content:space-between;font-family:"Archivo";font-weight:800;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px;}
.cb-row{display:flex;gap:10px;align-items:baseline;font-size:12.5px;padding:3px 0;}
.cb-row i{flex:none;width:62px;font-style:normal;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:700;}
.cb-row span{color:var(--ink-soft);overflow-wrap:anywhere;}
.cb-row .cb-none{color:var(--na);font-style:italic;}
.cb-send{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap;}
.cb-send .act[disabled]{opacity:.4;cursor:not-allowed;}
.cb-send .act[disabled]:hover{border-color:var(--line);}
.cb-hint{font-family:"Source Serif 4",Georgia,serif;font-size:12px;color:var(--ink-faint);margin-top:9px;line-height:1.45;}
/* A derived value stated where the field used to be, so it is not a silent default. */
.fld-hint{font-family:"Source Serif 4",Georgia,serif;font-size:12px;color:var(--ink-faint);margin:-4px 0 12px;line-height:1.45;}
.cb-editor{display:none;margin-top:12px;background:var(--bg);border:1px solid var(--line);padding:12px;}
.cb-editor.open{display:block;}
.cb-editor .row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px;}
.cb-editor .foot{display:flex;gap:8px;justify-content:flex-end;}

.rq{border-bottom:1px solid var(--line-soft);padding:15px 0;}
.rq:last-child{border-bottom:none;}
.rq-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.rq-who b{display:block;font-family:"Archivo";font-weight:800;font-size:15px;text-transform:uppercase;letter-spacing:.03em;line-height:1.1;}
.rq-who small{display:block;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-top:3px;}
.rq-top .act{flex:none;text-decoration:none;}
.rq-file{font-family:"Source Serif 4",Georgia,serif;font-size:13px;color:var(--ink-soft);margin-top:8px;overflow-wrap:anywhere;}
.rq-file span{font-family:"Archivo";font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
.rq-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.rq-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:11px;}

/* AI proposal on a review card. Styled as an annotation, never as a verdict:
   dashed edge, "suggested" label, and the confidence stated in plain numbers. */
.ai{border:1px dashed var(--line);border-left:2px solid var(--ink-faint);padding:10px 11px;margin-top:10px;background:var(--bg);}
.ai-hi{border-left-color:var(--good);}
.ai-mid{border-left-color:var(--warn);}
.ai-lo{border-left-color:var(--accent);}
.ai-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.ai-tag{font-family:"Archivo";font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);}
.ai-conf{font-family:"Archivo";font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-variant-numeric:tabular-nums;}
.ai-hi .ai-conf{color:var(--good);} .ai-mid .ai-conf{color:var(--warn);} .ai-lo .ai-conf{color:var(--accent-hot);}
.ai-body{font-size:13.5px;color:var(--ink-soft);margin-top:6px;}
.ai-body b{color:var(--ink);font-family:"Archivo";font-weight:800;text-transform:uppercase;font-size:12.5px;letter-spacing:.03em;}
.ai-why{font-family:"Source Serif 4",Georgia,serif;font-size:12.5px;color:var(--ink-soft);margin-top:5px;line-height:1.45;}
.ai-cite{font-family:"Source Serif 4",Georgia,serif;font-size:12.5px;color:var(--ink-faint);margin-top:6px;
  padding-left:9px;border-left:1px solid var(--line);line-height:1.45;font-style:italic;overflow-wrap:anywhere;}
.ai-cite span{font-style:normal;font-size:11px;}
.ai-foot{font-size:10.5px;letter-spacing:.03em;color:var(--ink-faint);margin-top:8px;font-weight:600;}
.ai-lo .ai-foot{color:var(--accent-hot);}

/* retention. The one destructive surface, so the destroy button is visually
   distinct from every other primary action in the product. */
.act.danger{background:transparent;border-color:var(--accent);color:var(--accent-hot);}
.act.danger:hover:not(:disabled){background:var(--accent);color:#fff;}
.act.danger:disabled{opacity:.5;cursor:default;}
.ret-policy{display:flex;gap:11px;align-items:baseline;padding:10px 11px;background:var(--bg);border:1px solid var(--line);}
.ret-policy i{flex:none;font-style:normal;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
.ret-policy span{font-size:13px;color:var(--ink-soft);}
.ret-warn{background:color-mix(in srgb,var(--warn) 13%,transparent);border-left:2px solid var(--warn);
  color:var(--warn);padding:9px 11px;font-size:12.5px;font-family:"Source Serif 4",Georgia,serif;line-height:1.45;}
.ret-blocked{background:color-mix(in srgb,var(--bad) 12%,transparent);border-left:2px solid var(--accent);
  color:var(--accent-hot);padding:9px 11px;font-size:12.5px;font-weight:600;}
.ret-keeps{font-family:"Source Serif 4",Georgia,serif;font-size:12.5px;color:var(--ink-soft);line-height:1.6;}
.ret-keeps b{font-family:"Archivo";font-weight:800;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);}
input[type=number]{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);
  font-family:inherit;font-size:13px;padding:8px 10px;}

/* archive backfill */
.au-scope .seg button b{font-weight:800;font-variant-numeric:tabular-nums;}
.au-scope{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.bf-note{font-family:"Source Serif 4",Georgia,serif;font-size:13px;color:var(--ink-soft);line-height:1.5;}
.bf-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.bf-stat{background:var(--bg);padding:12px 10px;text-align:center;}
.bf-stat b{display:block;font-family:"Archivo";font-weight:900;font-size:24px;font-variant-numeric:tabular-nums;line-height:1;}
.bf-stat small{display:block;font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;margin-top:6px;}
.bf-stat.warn b{color:var(--warn);}
.bf-item{border:1px solid var(--line);border-left:2px solid var(--warn);padding:11px;margin-top:9px;background:var(--bg);}
.bf-item.resolved{border-left-color:var(--good);opacity:.6;}
.bf-path{font-size:12px;color:var(--ink-soft);overflow-wrap:anywhere;}
.bf-path b{color:var(--ink);}
.bf-why{font-family:"Source Serif 4",Georgia,serif;font-size:12.5px;color:var(--warn);margin-top:5px;line-height:1.4;}
.bf-assign{display:flex;gap:7px;margin-top:9px;}
.bf-assign select{flex:1;min-width:0;}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:var(--surface-2);padding:1px 5px;}

.dev-otp{background:var(--bg);border:1px solid var(--line);color:var(--accent);font-family:"Archivo";font-weight:900;
  font-size:30px;letter-spacing:.3em;text-align:center;padding:14px;font-variant-numeric:tabular-nums;}

/* ---- upload portal -------------------------------------------------------------
   A separate surface from the board, sharing only the brand. Built mobile-first:
   most people opening this are on a phone, outdoors, once. Bigger targets, fewer
   words, no navigation to get lost in. */
.portal-body{display:flex;justify-content:center;padding:0 16px 56px;}
.portal-shell{width:100%;max-width:560px;}
.portal-brand{display:flex;align-items:center;gap:12px;padding:26px 0 22px;}
.portal-brand .mark{font-family:"Archivo";font-weight:900;font-style:italic;font-size:26px;line-height:1;letter-spacing:-.06em;}
.portal-brand .mark b{color:var(--accent);}
.portal-brand .txt{font-family:"Archivo";font-weight:800;font-size:15px;letter-spacing:.02em;text-transform:uppercase;line-height:1;}
.portal-brand .txt small{display:block;font-size:9px;letter-spacing:.26em;color:var(--ink-faint);font-weight:600;margin-top:4px;}

.portal-card{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent);padding:24px 20px;margin-bottom:16px;}
.portal-card h1{font-family:"Archivo";font-weight:900;font-size:26px;text-transform:uppercase;letter-spacing:-.01em;margin:0;line-height:1;}
.portal-lede{font-family:"Source Serif 4",Georgia,serif;font-size:16px;line-height:1.5;color:var(--ink-soft);margin:12px 0 0;}
.portal-loading{color:var(--ink-faint);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;text-align:center;padding:24px 0;}
.portal-who{display:flex;flex-direction:column;gap:5px;}
.portal-event{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
/* The quiet way out of a dead end on the portal: a fresh code. Deliberately not a
   second primary button — it is the fallback, not the thing to do. */
.portal-link-btn{display:block;width:100%;margin-top:14px;background:none;border:none;
  font-family:"Source Serif 4",Georgia,serif;font-size:14px;color:var(--ink-faint);
  text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px;}
.portal-link-btn:hover:not(:disabled){color:var(--ink);}
.portal-link-btn:disabled{opacity:.5;cursor:default;}
.portal-foot{font-family:"Source Serif 4",Georgia,serif;font-size:13px;line-height:1.5;color:var(--ink-faint);margin:20px 2px 0;}

.otp-input{display:block;width:100%;margin-top:18px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);
  font-family:"Archivo";font-weight:800;font-size:32px;letter-spacing:.34em;text-align:center;padding:16px 10px;
  font-variant-numeric:tabular-nums;}
.otp-input:focus{outline:none;border-color:var(--accent);}
.portal-btn{display:block;width:100%;margin-top:14px;background:var(--accent);border:1px solid var(--accent);color:#fff;
  font-family:"Archivo";font-weight:800;font-size:14px;letter-spacing:.08em;text-transform:uppercase;padding:16px;cursor:pointer;}
.portal-btn:hover:not(:disabled){background:var(--accent-hot);border-color:var(--accent-hot);}
.portal-btn:disabled{opacity:.6;cursor:default;}

.req-list{margin-top:18px;display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);}
.req-item{background:var(--bg);padding:15px 14px;}
.req-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.req-head b{font-family:"Archivo";font-weight:800;font-size:15px;text-transform:uppercase;letter-spacing:.03em;}
.req-sub{font-family:"Source Serif 4",Georgia,serif;font-size:13.5px;color:var(--ink-soft);margin-top:4px;line-height:1.4;}
.req-win{color:var(--ink-faint);}
.p-badge{font-family:"Archivo";font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;white-space:nowrap;}
.p-ok{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good);}
.p-due{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn);}
.p-miss{background:color-mix(in srgb,var(--bad) 16%,transparent);color:var(--accent-hot);}
.p-pending{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn);}

.file-btn{display:block;margin-top:12px;}
.file-label{display:block;border:1px dashed var(--line);color:var(--ink-soft);font-family:"Archivo";font-weight:700;
  font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:14px;text-align:center;cursor:pointer;}
.file-btn:hover .file-label{border-color:var(--accent);color:var(--ink);}
.up-status{margin-top:9px;font-size:13px;font-family:"Source Serif 4",Georgia,serif;color:var(--ink-soft);}
.up-ok{color:var(--good);}
.up-bad{color:var(--accent-hot);}

/* toast */
.toast-zone{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;width:max-content;max-width:92vw;}
.toast{background:var(--ink);color:#000;padding:12px 16px;font-size:13px;font-weight:600;box-shadow:0 12px 34px rgba(0,0,0,.5);display:flex;align-items:center;gap:11px;animation:pop .3s cubic-bezier(.2,1.4,.5,1);max-width:440px;}
.toast .ic{width:22px;height:22px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px;flex:none;font-weight:800;}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.96);}to{opacity:1;transform:none;}}

@media (max-width:560px){.legend{width:100%;margin-left:0;order:5;}.event-pill{width:100%;}.kpi .kv{font-size:38px;}}

/* Document viewer.
   Sits to the LEFT of the review drawer on a wide screen, so the document and the
   proposal are readable at the same time — reviewing means comparing the two, and a
   new browser tab breaks exactly that. Below the breakpoint there is no room for
   side-by-side, so it takes the full width and the reviewer flips between them. */
.doc-viewer{position:fixed;top:0;bottom:0;left:0;right:min(470px,94vw);z-index:62;
  background:#0a0a0a;border-right:1px solid var(--line);display:flex;flex-direction:column;}
.dv-head{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);
  background:var(--surface);flex:none;}
.dv-title{flex:1;min-width:0;}
.dv-title b{display:block;font-family:"Archivo";font-weight:800;font-size:13px;letter-spacing:.03em;
  text-transform:uppercase;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dv-title small{display:block;font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:700;margin-top:3px;}
.dv-head .act{flex:none;text-decoration:none;}
.dv-frame{flex:1;width:100%;border:none;background:#fff;}
.dv-img{flex:1;overflow:auto;display:grid;place-items:center;padding:20px;background:#111;}
.dv-img img{max-width:100%;height:auto;box-shadow:0 8px 40px rgba(0,0,0,.6);}
.dv-fallback{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  padding:40px;text-align:center;}
.dv-fallback p{font-family:"Source Serif 4",Georgia,serif;font-size:15px;color:var(--ink-soft);margin:0;max-width:40ch;}
.dv-fallback .act{text-decoration:none;}

/* No room for side-by-side: the viewer covers everything and Escape returns you. */
@media (max-width:1000px){
  .doc-viewer{right:0;z-index:64;}
}

/* PDF rendered to canvas, with the cited passage boxed on the page. */
.pv-scroll{flex:1;overflow:auto;background:#111;padding:16px;display:flex;flex-direction:column;
  align-items:center;gap:16px;}
.pv-loading{color:var(--ink-faint);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  font-weight:700;padding:40px;}
.pv-page{position:relative;flex:none;box-shadow:0 8px 40px rgba(0,0,0,.6);background:#fff;}
.pv-page canvas{display:block;}
/* The highlight. Outlined rather than filled so the text underneath stays readable —
   a reviewer has to read the words to confirm them, not just see that something was
   marked. */
.pv-mark{position:absolute;border:2px solid var(--accent);border-radius:3px;
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);pointer-events:none;}

/* What the highlight does or does not mean. */
.dv-status{flex:none;padding:9px 16px;font-size:12.5px;font-family:"Source Serif 4",Georgia,serif;
  line-height:1.45;border-bottom:1px solid var(--line);}
.dv-status.ok{background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good);}
.dv-status.warn{background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--warn);}
.dv-status.bad{background:color-mix(in srgb,var(--bad) 13%,transparent);color:var(--accent-hot);}

/* The limit of what green means, said plainly under the headline rather than left
   for someone to infer from a legend. */
.caveat{max-width:62ch;margin:14px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-faint);
  border-left:2px solid var(--line);padding-left:12px;}
.caveat b{color:var(--ink-soft);}

/* A flagged document. Loud, and deliberately empty of detail: it says "go and read
   this", never what was found. Putting a finding here would undo the two-tier design
   in the one place ops look at every document. */
.flagged{border:1px solid var(--accent);border-left:3px solid var(--accent);
  background:color-mix(in srgb,var(--bad) 10%,transparent);padding:11px 13px;margin-top:10px;}
.flagged-head{font-family:"Archivo";font-weight:800;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent-hot);}
.flagged p{font-family:"Source Serif 4",Georgia,serif;font-size:13px;line-height:1.5;
  color:var(--ink-soft);margin:7px 0 0;}
.flagged .flagged-sub{font-size:12px;color:var(--ink-faint);font-style:italic;}
.checkline.ack{margin-top:9px;font-size:12px;text-transform:none;letter-spacing:0;
  color:var(--accent-hot);font-family:"Source Serif 4",Georgia,serif;align-items:flex-start;}
.checkline.ack input{margin-top:3px;}

/* Flag marker on the board. Says a hand was raised about this fighter and nothing
   more — which requirement, and what was found, stay off the grid. */
.flagchip{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:2px 6px;
  font-family:"Archivo";font-size:8.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  white-space:nowrap;cursor:help;}
.flagchip.open{background:color-mix(in srgb,var(--bad) 20%,transparent);color:var(--accent-hot);
  border:1px solid var(--accent);}
/* Resolved flags stay visible but stop shouting — permanent record, not an alarm. */
.flagchip.done{background:transparent;color:var(--ink-faint);border:1px solid var(--line);}

/* The detail, in the drawer only. */
.flags-block{border-bottom:1px solid var(--line);padding:14px 0 15px;}
.fb-head{font-family:"Archivo";font-weight:800;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-hot);margin-bottom:10px;}
.fb-row{border-left:2px solid var(--accent);padding:8px 0 8px 10px;margin-bottom:8px;background:var(--bg);}
.fb-row.done{border-left-color:var(--line);}
.fb-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.fb-top b{font-family:"Archivo";font-weight:800;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;}
.fb-top span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
.fb-file{font-size:11px;color:var(--ink-faint);margin-top:3px;overflow-wrap:anywhere;}
.fb-note{font-family:"Source Serif 4",Georgia,serif;font-size:12.5px;color:var(--ink-soft);
  margin-top:6px;line-height:1.45;}
.fb-missing{color:var(--warn);font-style:italic;}
.fb-foot{font-size:11px;color:var(--ink-faint);font-family:"Source Serif 4",Georgia,serif;
  line-height:1.45;margin-top:8px;}

/* ---- assessor scorecard (Phase 3) ---- */
/* The headline is deliberately muted while the sample is too small to mean anything:
   a big confident number from five reviews is the thing this drawer exists not to do. */
.ar-head{padding:26px 22px 22px;border-bottom:1px solid var(--line);text-align:center;}
.ar-value{font-size:44px;font-weight:700;letter-spacing:-.02em;line-height:1;}
.ar-label{margin-top:8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;color:var(--ink-faint);}
.ar-detail{margin-top:10px;font-size:12px;color:var(--ink-faint);line-height:1.5;
  font-family:"Source Serif 4",Georgia,serif;}
.ar-provisional .ar-value{color:var(--ink-faint);}

.ar-section{padding:18px 22px;border-bottom:1px solid var(--line);}
.ar-section h3{margin:0 0 12px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;color:var(--ink-faint);}

.ar-finding{position:relative;padding:0 0 0 20px;margin-bottom:11px;font-size:13px;
  line-height:1.55;font-family:"Source Serif 4",Georgia,serif;}
.ar-finding:last-child{margin-bottom:0;}
.ar-dot{position:absolute;left:2px;top:7px;width:7px;height:7px;border-radius:50%;}
.ar-good .ar-dot{background:var(--good);}
.ar-warn .ar-dot{background:var(--accent);}
.ar-note .ar-dot{background:var(--ink-faint);opacity:.45;}
.ar-warn{color:var(--ink);}
.ar-note{color:var(--ink-faint);}

.ar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.ar-stat{text-align:center;padding:10px 4px;background:var(--bg);border:1px solid var(--line);border-radius:6px;}
.ar-stat .n{font-size:20px;font-weight:700;line-height:1;}
.ar-stat .l{margin-top:5px;font-size:9px;letter-spacing:.06em;text-transform:uppercase;
  font-weight:700;color:var(--ink-faint);}

.ar-table{width:100%;border-collapse:collapse;font-size:12px;}
.ar-table th{text-align:left;font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  font-weight:700;color:var(--ink-faint);padding:0 8px 7px 0;}
.ar-table td{padding:6px 8px 6px 0;border-top:1px solid var(--line);font-variant-numeric:tabular-nums;}

.ar-usage{font-size:12px;line-height:1.6;color:var(--ink-faint);
  font-family:"Source Serif 4",Georgia,serif;}
.ar-model{margin-top:7px;font-size:11px;color:var(--ink-faint);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;}
.ar-empty{padding:18px 0;text-align:center;color:var(--ink-faint);font-size:12px;}

/* ---- batch assessment preview ---- */
/* The count is the thing being agreed to, so it is the biggest thing in the box. */
.ab-count{font-size:15px;margin-bottom:8px;}
.ab-count strong{font-size:26px;font-weight:700;margin-right:5px;}
.ab-capped{font-size:12px;color:var(--warn);margin-bottom:8px;line-height:1.5;}
.ab-est{font-size:12px;color:var(--ink-faint);line-height:1.55;margin-bottom:12px;
  font-family:"Source Serif 4",Georgia,serif;}
.ab-sample{list-style:none;margin:0;padding:10px 0 0;border-top:1px solid var(--line);
  max-height:150px;overflow:auto;}
.ab-sample li{font-size:12px;padding:3px 0;display:flex;justify-content:space-between;gap:12px;}
.ab-sample li span{color:var(--ink-faint);flex:none;}
.ab-more{font-size:11px;color:var(--ink-faint);padding-top:7px;}
.ab-failures li{flex-direction:column;align-items:flex-start;gap:2px;padding:6px 0;
  border-bottom:1px solid var(--line-soft);}
.ab-failures .fn{color:var(--ink);font-weight:600;}
.ab-failures .why{color:var(--warn);font-size:11px;line-height:1.45;}

/* ---- unverified rule set ---- */
/* Deliberately loud and deliberately not dismissible: it is a statement about how far
   the board can be trusted, and it stops being true only when someone signs the rules
   off in code. */
.unverified{margin:14px 0 4px;padding:12px 16px;border:1px solid var(--warn);
  border-left-width:3px;border-radius:4px;background:rgba(255,176,32,.07);
  font-size:12.5px;line-height:1.6;color:var(--ink-soft);
  font-family:"Source Serif 4",Georgia,serif;}
.unverified strong{color:var(--warn);font-weight:700;}
.unverified a{color:var(--warn);text-decoration:underline;}
.unverified code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;
  background:var(--surface-2);padding:1px 5px;border-radius:3px;}

/* ---- compose window (upload request) ---- */
/* Sending this is the only action in the product that reaches a real person and cannot
   be recalled. The window exists to slow that down by one deliberate step. */
.cw-meta{border:1px solid var(--line);border-radius:6px;padding:11px 13px;margin-bottom:14px;
  background:var(--bg);}
.cw-meta > div{display:flex;align-items:baseline;gap:9px;font-size:12.5px;padding:3px 0;}
.cw-meta span{width:52px;flex:none;font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  font-weight:700;color:var(--ink-faint);}
.cw-meta b{font-weight:600;word-break:break-all;}
.cw-meta i{font-style:normal;color:var(--ink-faint);font-size:11px;}

.cw-preview-head{display:flex;justify-content:space-between;align-items:center;
  font-size:9px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  color:var(--ink-faint);margin:16px 0 7px;}
.cw-refresh{background:none;border:none;color:var(--accent);cursor:pointer;
  font:inherit;letter-spacing:.08em;text-transform:uppercase;padding:0;}
.cw-preview{margin:0;padding:13px;background:var(--bg);border:1px solid var(--line);
  border-radius:6px;max-height:210px;overflow:auto;white-space:pre-wrap;word-break:break-word;
  font-family:"Source Serif 4",Georgia,serif;font-size:12.5px;line-height:1.55;color:var(--ink-soft);}

.cw-locked{margin-top:9px;font-size:11px;line-height:1.5;color:var(--ink-faint);
  font-family:"Source Serif 4",Georgia,serif;}
.cw-sms{margin-top:14px;padding:11px 13px;border:1px solid var(--line);border-radius:6px;
  background:var(--bg);font-size:12px;line-height:1.5;color:var(--ink-soft);}
.cw-sms span{display:block;font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  font-weight:700;color:var(--ink-faint);margin-bottom:5px;}
.fld small{font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-faint);
  font-size:11px;margin-left:6px;}
