/* widgets/qc — Marianne's QC queue (Craig 6:06p 7/29: "give her everything for now").
   Built to Designer's three concept screens (docs/jarvis-mockups/marianne-qc-tab-concept-20260729.html).

   CALM-ALERTS LAW: there is no red in this file, and there must never be. A guard-flagged wrap is
   amber (--motm-warning family); a big pending queue is a WORKLOAD fact rendered in neutral ink,
   never an alarm. Alarm ink belongs to Craig-court items only, and nothing in this tab is his court. */

/* ── header ─────────────────────────────────────────────────────────────────── */
#ops-pane-qc .qc-head{display:flex;align-items:flex-end;gap:26px;flex-wrap:wrap;margin-bottom:14px}
#ops-pane-qc .qc-head h3{font:600 21px Fraunces,Georgia,serif;color:#171b17;margin:0}
#ops-pane-qc .qc-asof{font:400 10.5px Inter,system-ui,sans-serif;color:#9a988a;margin-top:3px}
#ops-pane-qc .qc-stats{display:flex;align-items:stretch;gap:12px;margin-left:auto}
#ops-pane-qc .qc-stat{background:#fff;border:1px solid #e7e2d4;border-radius:12px;padding:9px 16px;text-align:center;min-width:104px}
#ops-pane-qc .qc-stat .n{font:700 21px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d)}
#ops-pane-qc .qc-stat .l{font:600 9.5px Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#6b7669;margin-top:2px}
#ops-pane-qc .qc-stat.flag .n{color:#8a5a0f}
/* the divider is deliberate — pending is a different KIND of number and must never read as summable */
#ops-pane-qc .qc-statdiv{width:1px;background:#ddd8c6;margin:4px 2px}
#ops-pane-qc .qc-stat.pending{background:#f2efe2;border-style:dashed}
#ops-pane-qc .qc-stat.pending .n{color:#6b7669}
#ops-pane-qc .qc-stat.pending .l{color:#9a988a}
#ops-pane-qc .qc-stat.pending .sub2{font:400 9px Inter,system-ui,sans-serif;color:#9a988a;margin-top:1px}

/* ── filters ────────────────────────────────────────────────────────────────── */
#ops-pane-qc .qc-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
#ops-pane-qc .qc-fchip{font:500 11px Inter,system-ui,sans-serif;color:#4d5a4f;background:#fff;border:1px solid #e0dbc9;border-radius:999px;padding:5px 12px;cursor:pointer;transition:border-color .12s}
#ops-pane-qc .qc-fchip:hover{border-color:var(--brand-line,#b9d8b4)}
#ops-pane-qc .qc-fchip b{color:var(--brand-deep,#1f4a2d)}
#ops-pane-qc .qc-fchip.on{border-color:#b9d8b4;background:#f2f7f3}
#ops-pane-qc .qc-fnote{font:400 10.5px Inter,system-ui,sans-serif;color:#9a988a;margin-left:6px}
#ops-pane-qc .qc-fsel{font:500 11px Inter,system-ui,sans-serif;color:#4d5a4f;background:#fff;border:1px solid #e0dbc9;border-radius:999px;padding:5px 10px;cursor:pointer;outline:none}

/* ── queue ──────────────────────────────────────────────────────────────────── */
#ops-pane-qc .qc-queue{display:flex;flex-direction:column;gap:8px}
#ops-pane-qc .qc-sec{font:700 10px Inter,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#8a5a0f;margin:6px 2px 2px}
#ops-pane-qc .qc-sec.rest{color:#8b8a7c;margin-top:12px}
#ops-pane-qc .qc-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e7e2d4;border-radius:12px;padding:11px 16px;cursor:pointer;transition:border-color .12s,transform .12s}
#ops-pane-qc .qc-row:hover{border-color:var(--brand-line,#b9d8b4)}
#ops-pane-qc .qc-row.guard{border-color:#e6c987;box-shadow:0 0 0 3px rgba(214,166,74,.14)}
#ops-pane-qc .qc-row .client{font:600 12.5px Inter,system-ui,sans-serif;color:#1f2b20;width:190px;flex:none}
#ops-pane-qc .qc-row .lane{font:600 9.5px Inter,system-ui,sans-serif;letter-spacing:.06em;color:#3c5a44;background:#e6efe4;border-radius:999px;padding:3px 9px;flex:none}
#ops-pane-qc .qc-row .title{font:400 12px Inter,system-ui,sans-serif;color:#4d5156;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#ops-pane-qc .qc-row .guardchip{font:600 9.5px Inter,system-ui,sans-serif;color:#8a5a0f;background:#fbf3df;border:1px solid #ecd9a8;border-radius:999px;padding:3px 9px;flex:none}
#ops-pane-qc .qc-row .meta{font:400 10.5px Inter,system-ui,sans-serif;color:#9a988a;width:126px;text-align:right;flex:none}
#ops-pane-qc .qc-row .open{font:600 11px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d);background:#e6efe4;border-radius:8px;padding:6px 12px;white-space:nowrap;flex:none}
/* reviewed rows STAY in place, dimmed — the day's record, not a disappearing act */
#ops-pane-qc .qc-row.done{opacity:.62}
#ops-pane-qc .qc-row .verdict{font:700 9.5px Inter,system-ui,sans-serif;letter-spacing:.06em;border-radius:999px;padding:3px 9px;flex:none}
#ops-pane-qc .qc-row .verdict.pass{color:#2a5d38;background:#e6efe4}
#ops-pane-qc .qc-row .verdict.flag{color:#8a5a0f;background:#fbf3df;border:1px solid #ecd9a8}
#ops-pane-qc .qc-row .verdict.queued{color:#6b7669;background:#f2efe2;border:1px dashed #ddd8c6}
#ops-pane-qc .qc-empty{font:400 13px Inter,system-ui,sans-serif;color:#8b8a7c;background:#fff;border:1px solid #e7e2d4;border-radius:12px;padding:22px 18px;text-align:center}
/* filtered-empty: calm, not alarm — the queue is fine, the FILTER is what's empty */
#ops-pane-qc .qc-empty.filtered{display:flex;flex-direction:column;align-items:center;gap:11px}
#ops-pane-qc .qc-empty .qe-line{color:#6b7669}
#ops-pane-qc .qc-empty .qe-line b{color:#3c4a3e;font-weight:700}
#ops-pane-qc .qc-empty .qe-clear{font:600 11.5px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d);background:#e6efe4;border:1px solid #cfe3d3;border-radius:8px;padding:7px 14px;cursor:pointer}
#ops-pane-qc .qc-empty .qe-clear:hover{background:#dcebda}

/* provenance banner — fixture vs live. Never let sample rows read as real work. */
#ops-pane-qc .qc-src{font:600 11.5px Inter,system-ui,sans-serif;color:#8a5a0f;background:#fbf3df;border:1px solid #ecd9a8;border-radius:10px;padding:9px 13px;margin-bottom:14px}
#ops-pane-qc .qc-src.live{color:#3c5a44;background:#f2f7f3;border-color:#cfe3d3}

/* ── detail drawer (screen 2) ───────────────────────────────────────────────── */
/* ABOVE #ops-modal (z-index 10000) — the QC queue lives INSIDE that section modal, so a drawer
   underneath it is a drawer nobody can read. Caught on the QA screenshot, not in review. */
#qc-drawer{position:fixed;inset:0;z-index:10050;display:none}
#qc-drawer.show{display:block}
#qc-drawer .qc-dim{position:absolute;inset:0;background:rgba(31,42,31,.34)}
#qc-drawer .qc-panel{position:absolute;top:0;right:0;bottom:0;width:min(640px,92vw);background:#fcfbf5;padding:24px 28px 30px;overflow:auto;box-shadow:-18px 0 44px rgba(31,42,31,.2)}
#qc-drawer .crumb{font:600 10px Inter,system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#8b8a7c}
#qc-drawer h3{font:600 19px Fraunces,Georgia,serif;color:#171b17;margin:6px 0 0}
#qc-drawer .sub{font:400 11.5px Inter,system-ui,sans-serif;color:#6b7669;margin-top:4px}
#qc-drawer .qc-x{position:absolute;top:16px;right:20px;background:none;border:none;font:400 22px Georgia,serif;color:#8b8a7c;cursor:pointer;line-height:1;padding:4px 8px}
#qc-drawer .qc-x:hover{color:#171b17}
#qc-drawer .gbanner{display:flex;gap:8px;align-items:flex-start;font:600 11.5px/1.5 Inter,system-ui,sans-serif;color:#8a5a0f;background:#fbf3df;border:1px solid #ecd9a8;border-radius:10px;padding:9px 13px;margin-top:14px}
#qc-drawer .sect{margin-top:18px}
#qc-drawer .sect .sl{font:700 10px Inter,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#8b8a7c;margin-bottom:7px}
#qc-drawer .wrapbox{font:400 12.5px/1.65 Inter,system-ui,sans-serif;color:#333a33;background:#fff;border:1px solid #e7e2d4;border-radius:12px;padding:14px 16px;white-space:pre-wrap}
#qc-drawer .evlist{display:flex;flex-direction:column;gap:6px}
#qc-drawer .ev{display:flex;gap:8px;align-items:center;font:500 11.5px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d);background:#fff;border:1px solid #e7e2d4;border-radius:10px;padding:8px 12px;text-decoration:none;transition:border-color .12s}
#qc-drawer .ev:hover{border-color:var(--brand-line,#b9d8b4)}
#qc-drawer .ev .k{font:600 9px Inter,system-ui,sans-serif;letter-spacing:.08em;color:#8b8a7c;background:#f2efe2;border-radius:6px;padding:2px 7px;flex:none}
#qc-drawer .ev .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
/* Change Log tail — READ-ONLY by construction: rendered as text, no input/textarea/button inside. */
#qc-drawer .cl{background:#f4f2e6;border:1px solid #e7e2d4;border-radius:12px;padding:12px 15px}
#qc-drawer .cl .ro{font:600 9px Inter,system-ui,sans-serif;letter-spacing:.1em;color:#8a5a0f;float:right}
#qc-drawer .cl .ln{font:400 11px/1.7 ui-monospace,Menlo,monospace;color:#4d5a4f;white-space:pre-wrap}
#qc-drawer .verdictbar{display:flex;gap:12px;align-items:stretch;margin-top:22px;flex-wrap:wrap}
#qc-drawer .btn-pass{font:700 13px Inter,system-ui,sans-serif;color:#f2efe2;background:#2a5d38;border:2px solid #2a5d38;border-radius:12px;padding:12px 34px;cursor:pointer}
#qc-drawer .btn-pass:hover{background:var(--brand-deep-hover,#2a5f3c)}
#qc-drawer .btn-flag{font:700 13px Inter,system-ui,sans-serif;color:#8a5a0f;background:#fff;border:2px solid #d6a64a;border-radius:12px;padding:12px 26px;cursor:pointer}
#qc-drawer .btn-flag:hover{background:#fbf3df}
#qc-drawer .btn-pass[disabled],#qc-drawer .btn-flag[disabled]{opacity:.45;cursor:not-allowed}
#qc-drawer .noteslot{flex:1;min-width:220px;font:400 12px Inter,system-ui,sans-serif;color:#333a33;background:#fff;border:1px solid #e0dbc9;border-radius:12px;padding:12px 14px;resize:vertical;outline:none}
#qc-drawer .noteslot:focus{border-color:var(--brand-line,#b9d8b4)}
#qc-drawer .vfoot{font:400 10.5px/1.5 Inter,system-ui,sans-serif;color:#9a988a;margin-top:12px}
#qc-drawer .vdone{font:600 12px Inter,system-ui,sans-serif;color:#2a5d38;background:#e6efe4;border-radius:10px;padding:11px 15px;margin-top:22px}
#qc-drawer .vdone.flag{color:#8a5a0f;background:#fbf3df;border:1px solid #ecd9a8}

/* ── Bot Check tile expansion (screen 3) ────────────────────────────────────── */
.qc-tile-counts{display:flex;gap:8px;margin-top:10px}
.qc-mini{flex:1;text-align:center;background:#f5f3ea;border-radius:10px;padding:8px 4px}
.qc-mini .n{font:700 16px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d)}
.qc-mini.flag .n{color:#8a5a0f}
.qc-mini.pend{background:#f2efe2;border:1px dashed #ddd8c6}
.qc-mini.pend .n{color:#6b7669}
.qc-mini .l{font:600 8.5px Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#8b8a7c;margin-top:1px}
.qc-tile-go{display:block;width:100%;text-align:center;font:700 12px Inter,system-ui,sans-serif;color:#f2efe2;background:var(--brand-deep,#1f4a2d);border:none;border-radius:10px;padding:9px;margin-top:10px;cursor:pointer}
.qc-tile-go:hover{background:var(--brand-deep-hover,#2a5f3c)}

/* ════ V2 — THE COMPOSE (Craig-approved 7/30) ═══════════════════════════════════
   C Sorting Desk (front door) · A Triage momentum rail · B Client Stacks (toggle).
   CALM-ALERTS LAW HOLDS: still no red in this file. Guard work is amber (#8a5a0f on
   #fbf3df); a 1,000-deep cluster is a WORKLOAD number in neutral ink. Alarm ink is
   Craig-court only and nothing on this tab is his court. */

/* ── v1 revert bar — shown only on ?qc=v1, so the way back is never a dead end ── */
#ops-pane-qc .qc-v1bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font:500 11.5px Inter,system-ui,sans-serif;color:#6b7669;background:#f4f2e6;border:1px dashed #ddd8c6;border-radius:10px;padding:9px 13px;margin-bottom:12px}
#ops-pane-qc .qc-v1bar b{color:#3c4a3e}
#ops-pane-qc .qc-v1back{font:600 11px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d);background:#e6efe4;border:1px solid #cfe3d3;border-radius:8px;padding:6px 12px;cursor:pointer;margin-left:auto}
#ops-pane-qc .qc-v1back:hover{background:#dcebda}

/* ── view toggle — B is a toggle, not a tab; v1 sits at the far end as the revert ── */
#ops-pane-qc .qc-views{display:flex;align-items:center;gap:6px;margin:0 0 16px}
#ops-pane-qc .qc-vtab{font:600 11.5px Inter,system-ui,sans-serif;color:#6b7669;background:#fff;border:1px solid #e0dbc9;border-radius:999px;padding:6px 15px;cursor:pointer;transition:border-color .12s,background .12s}
#ops-pane-qc .qc-vtab:hover{border-color:var(--brand-line,#b9d8b4)}
#ops-pane-qc .qc-vtab.on{color:var(--brand-deep,#1f4a2d);background:#e6efe4;border-color:#cfe3d3}
#ops-pane-qc .qc-vspace{flex:1}

/* ── C · the sorting desk ─────────────────────────────────────────────────────── */
#ops-pane-qc .qc-sortdesk{display:flex;flex-direction:column;gap:10px}

/* GUARD BAND — first, amber, and structurally batch-free: no Pass-all lives in here. */
#ops-pane-qc .qc-guardband{background:#fbf3df;border:1px solid #ecd9a8;border-radius:14px;padding:15px 18px;box-shadow:0 0 0 3px rgba(214,166,74,.12)}
#ops-pane-qc .qc-guardband .gb-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
#ops-pane-qc .qc-guardband .gb-warn{font:400 14px Inter,system-ui,sans-serif;color:#8a5a0f}
#ops-pane-qc .qc-guardband .gb-t{font:600 13px Inter,system-ui,sans-serif;color:#8a5a0f}
#ops-pane-qc .qc-guardband .gb-sub{font:400 11px Inter,system-ui,sans-serif;color:#a07c3a}
#ops-pane-qc .qc-guardband .gb-names{display:flex;gap:7px;flex-wrap:wrap;margin:11px 0 13px}
#ops-pane-qc .qc-guardband .gb-n{font:500 11px Inter,system-ui,sans-serif;color:#6b5220;background:#fff;border:1px solid #ecd9a8;border-radius:999px;padding:4px 11px}
#ops-pane-qc .qc-guardband .gb-n i{font-style:normal;font-weight:600;color:#8a5a0f}
#ops-pane-qc .qc-guardband .gb-more{font:400 11px Inter,system-ui,sans-serif;color:#a07c3a;align-self:center}
#ops-pane-qc .qc-guardband .gb-go{font:700 12px Inter,system-ui,sans-serif;color:#fbf8ef;background:#8a5a0f;border:none;border-radius:10px;padding:9px 18px;cursor:pointer}
#ops-pane-qc .qc-guardband .gb-go:hover{background:#7a4f0c}

/* CLUSTER — one motion, many wraps. */
#ops-pane-qc .qc-cl{background:#fff;border:1px solid #e7e2d4;border-radius:14px;padding:15px 18px;transition:border-color .12s}
#ops-pane-qc .qc-cl:hover{border-color:var(--brand-line,#b9d8b4)}
#ops-pane-qc .qc-cl.ready{border-color:#cfe3d3;background:#fcfdfb}
#ops-pane-qc .qc-cl .cl-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
#ops-pane-qc .qc-cl .cl-label{font:600 14px Inter,system-ui,sans-serif;color:#1f2b20}
#ops-pane-qc .qc-cl .cl-meta{font:400 11.5px Inter,system-ui,sans-serif;color:#8b8a7c}
#ops-pane-qc .qc-cl .cl-meta b{color:#3c4a3e;font-weight:700}
#ops-pane-qc .qc-cl .cl-samp{margin:10px 0 12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
#ops-pane-qc .qc-cl .cl-sl{font:600 10px Inter,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:#8b8a7c}
#ops-pane-qc .qc-cl .cl-sl.none{font:400 11.5px Inter,system-ui,sans-serif;letter-spacing:0;text-transform:none;color:#9a988a}
#ops-pane-qc .qc-cl .cl-chip{font:500 11px Inter,system-ui,sans-serif;color:#2a5d38;background:#e6efe4;border-radius:999px;padding:4px 11px;cursor:pointer}
#ops-pane-qc .qc-cl .cl-chip:hover{background:#dcebda}
#ops-pane-qc .qc-cl .cl-chip.more{color:#8b8a7c;background:#f2efe2;cursor:default}
#ops-pane-qc .qc-cl .cl-act{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#ops-pane-qc .qc-cl .cl-pass{font:700 12.5px Inter,system-ui,sans-serif;color:#f2efe2;background:#2a5d38;border:2px solid #2a5d38;border-radius:11px;padding:9px 22px;cursor:pointer}
#ops-pane-qc .qc-cl .cl-pass:hover{background:var(--brand-deep-hover,#2a5f3c)}
#ops-pane-qc .qc-cl .cl-pass[disabled]{opacity:.4;cursor:not-allowed}
#ops-pane-qc .qc-cl .cl-samplebtn{font:600 12px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d);background:#fff;border:1px solid #cfe3d3;border-radius:11px;padding:9px 16px;cursor:pointer}
#ops-pane-qc .qc-cl .cl-samplebtn:hover{background:#f2f7f3}
#ops-pane-qc .qc-cl .cl-note{font:400 10.5px Inter,system-ui,sans-serif;color:#9a988a;flex:1;min-width:180px}

/* ── the batch confirm — the court-honest sentence is the product ─────────────── */
#qc-confirm{position:fixed;inset:0;z-index:10060;display:none}
#qc-confirm.show{display:block}
#qc-confirm .qc-cdim{position:absolute;inset:0;background:rgba(31,42,31,.4)}
#qc-confirm .qc-cbox{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,92vw);background:#fcfbf5;border-radius:16px;padding:26px 28px;box-shadow:0 22px 60px rgba(31,42,31,.28)}
#qc-confirm .cb-t{font:600 19px Fraunces,Georgia,serif;color:#171b17}
#qc-confirm .cb-say{font:400 13.5px/1.6 Inter,system-ui,sans-serif;color:#333a33;background:#fff;border:1px solid #e7e2d4;border-radius:12px;padding:14px 16px;margin:12px 0 14px}
#qc-confirm .cb-say b{font-weight:700;color:#1f2b20}
#qc-confirm .cb-list{margin:0 0 18px;padding-left:18px}
#qc-confirm .cb-list li{font:400 11.5px/1.6 Inter,system-ui,sans-serif;color:#6b7669;margin-bottom:5px}
#qc-confirm .cb-list li b{color:#8a5a0f}
#qc-confirm .cb-act{display:flex;gap:10px;align-items:center}
#qc-confirm .cb-yes{font:700 13px Inter,system-ui,sans-serif;color:#f2efe2;background:#2a5d38;border:2px solid #2a5d38;border-radius:12px;padding:12px 26px;cursor:pointer}
#qc-confirm .cb-yes:hover{background:var(--brand-deep-hover,#2a5f3c)}
#qc-confirm .cb-no{font:600 12.5px Inter,system-ui,sans-serif;color:#6b7669;background:#fff;border:1px solid #e0dbc9;border-radius:12px;padding:12px 20px;cursor:pointer}
#qc-confirm .cb-no:hover{border-color:#c9c3ad}

/* ── A · the momentum rail, inside the drawer ─────────────────────────────────── */
#qc-drawer .qc-mom{margin-top:24px;padding-top:18px;border-top:1px solid #e7e2d4}
#qc-drawer .qc-mom .mm-pos{font:400 11px Inter,system-ui,sans-serif;color:#8b8a7c;margin-bottom:11px}
#qc-drawer .qc-mom .mm-pos b{font:700 22px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d);margin-right:7px}
#qc-drawer .qc-mom .mm-grid{display:flex;gap:8px}
#qc-drawer .qc-mom .mm-c{flex:1;text-align:center;background:#f5f3ea;border-radius:10px;padding:9px 4px}
#qc-drawer .qc-mom .mm-c b{display:block;font:700 16px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d)}
#qc-drawer .qc-mom .mm-c span{font:600 8.5px Inter,system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:#8b8a7c}
#qc-drawer .qc-mom .mm-c.guard{background:#fbf3df;border:1px solid #ecd9a8}
#qc-drawer .qc-mom .mm-c.guard b,#qc-drawer .qc-mom .mm-c.flag b{color:#8a5a0f}
/* pending stays dashed and apart here too — it is never summed into the row above */
#qc-drawer .qc-mom .mm-pend{display:flex;align-items:baseline;gap:8px;background:#f2efe2;border:1px dashed #ddd8c6;border-radius:10px;padding:9px 13px;margin-top:8px}
#qc-drawer .qc-mom .mm-pend b{font:700 15px Inter,system-ui,sans-serif;color:#6b7669}
#qc-drawer .qc-mom .mm-pend span{font:400 10.5px Inter,system-ui,sans-serif;color:#9a988a}
#qc-drawer .qc-mom .mm-nl{font:700 10px Inter,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#8b8a7c;margin:16px 0 7px}
#qc-drawer .qc-mom .mm-n{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid #e7e2d4;border-radius:10px;padding:8px 12px;margin-bottom:5px;cursor:pointer;transition:border-color .12s}
#qc-drawer .qc-mom .mm-n:hover{border-color:var(--brand-line,#b9d8b4)}
#qc-drawer .qc-mom .mm-n.guard{border-color:#ecd9a8;background:#fdfaf2}
#qc-drawer .qc-mom .mm-n .w{color:#8a5a0f;font-size:11px}
#qc-drawer .qc-mom .mm-n .c{font:600 11.5px Inter,system-ui,sans-serif;color:#1f2b20;flex:none;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#qc-drawer .qc-mom .mm-n .t{font:400 11px Inter,system-ui,sans-serif;color:#8b8a7c;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#qc-drawer .qc-mom .mm-done{font:400 11.5px Inter,system-ui,sans-serif;color:#6b7669;background:#f2f7f3;border:1px solid #cfe3d3;border-radius:10px;padding:10px 13px;margin-top:14px}

/* ── B · the client stacks ────────────────────────────────────────────────────── */
#ops-pane-qc .qc-shelf-head{font:400 12px Inter,system-ui,sans-serif;color:#8b8a7c;margin-bottom:12px}
#ops-pane-qc .qc-shelf-head b{color:#3c4a3e;font-weight:700}
#ops-pane-qc .qc-shelf-head .amb{color:#8a5a0f}
#ops-pane-qc .qc-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:10px}
#ops-pane-qc .qc-book{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e7e2d4;border-radius:14px;padding:13px 16px;cursor:pointer;transition:border-color .12s}
#ops-pane-qc .qc-book:hover{border-color:var(--brand-line,#b9d8b4)}
#ops-pane-qc .qc-book.guard{border-color:#e6c987;box-shadow:0 0 0 3px rgba(214,166,74,.12)}
#ops-pane-qc .qc-book.cleared{opacity:.66;background:#f7f6ef}
#ops-pane-qc .qc-book .bk-ring{position:relative;width:48px;height:48px;flex:none}
#ops-pane-qc .qc-book .bk-ring svg{transform:rotate(-90deg)}
#ops-pane-qc .qc-book .bk-trk{fill:none;stroke:#eae6d8;stroke-width:5}
#ops-pane-qc .qc-book .bk-arc{fill:none;stroke:var(--brand-deep,#1f4a2d);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .3s}
#ops-pane-qc .qc-book.guard .bk-arc{stroke:#c8952f}
#ops-pane-qc .qc-book .bk-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 11px Inter,system-ui,sans-serif;color:#4d5a4f}
#ops-pane-qc .qc-book .bk-body{flex:1;min-width:0}
#ops-pane-qc .qc-book .bk-name{font:600 13px Inter,system-ui,sans-serif;color:#1f2b20;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#ops-pane-qc .qc-book .bk-sub{font:400 10.5px Inter,system-ui,sans-serif;color:#9a988a;margin-top:2px}
#ops-pane-qc .qc-book .bk-cnt{font:400 11px Inter,system-ui,sans-serif;color:#6b7669;margin-top:3px}
#ops-pane-qc .qc-book .bk-cnt .amb{color:#8a5a0f;font-weight:600}
#ops-pane-qc .qc-book .bk-go{font:600 11px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d);flex:none;white-space:nowrap}
#ops-pane-qc .qc-book .bk-stamp{font:700 9px Inter,system-ui,sans-serif;letter-spacing:.09em;color:#2a5d38;background:#e6efe4;border:1px solid #cfe3d3;border-radius:999px;padding:4px 10px}

/* ══ THE PAPER TRAIL (builder2 7/30) ═══════════════════════════════════════════
   Craig 3:41p: "We just don't have evidence and paper trail for her to review."
   Everything below is the READ SIDE of fields the rail already derived. CALM-ALERTS
   still holds absolutely: a vanished artifact and a missing trail are AMBER facts,
   never alarm ink — this whole tab is Marianne's court, and none of it is Craig's. */

/* coverage bar — the queue telling on itself, before any filter runs */
#ops-pane-qc .qc-trailbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#f7f6ef;border:1px solid #e7e2d4;border-radius:12px;padding:9px 15px;margin:0 0 14px}
#ops-pane-qc .qc-trailbar .tb-t{font:700 9.5px Inter,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#8b8a7c}
#ops-pane-qc .qc-trailbar .tb-n{font:400 12px Inter,system-ui,sans-serif;color:#4d5a4f}
#ops-pane-qc .qc-trailbar .tb-n b{font-weight:700;color:var(--brand-deep,#1f4a2d)}
#ops-pane-qc .qc-trailbar .tb-d{font:400 11px Inter,system-ui,sans-serif;color:#8b8a7c}
#ops-pane-qc .qc-trailbar .tb-gap,#ops-pane-qc .qc-trailbar .tb-miss{font:500 11px Inter,system-ui,sans-serif;color:#8a5a0f;background:#fbf3df;border:1px solid #ecd9a8;border-radius:999px;padding:3px 10px}
#ops-pane-qc .qc-trailbar .tb-gap b,#ops-pane-qc .qc-trailbar .tb-miss b{font-weight:700}
#ops-pane-qc .qc-trailbar .tb-note{font:400 10px Inter,system-ui,sans-serif;color:#a8a695;margin-left:auto}

/* row wrapper — click line, proof strip, panel */
#ops-pane-qc .qc-rowwrap{background:#fff;border:1px solid #e7e2d4;border-radius:12px;overflow:hidden}
#ops-pane-qc .qc-rowwrap .qc-row{border:0;border-radius:0;background:transparent}
#ops-pane-qc .qc-rowwrap .qc-row.guard{box-shadow:none;border:0;background:#fffdf6}
/* a trail-less row is DASHED, not coloured: an absence of proof is a workload fact */
#ops-pane-qc .qc-rowwrap:has(.qc-row.notrail){border-style:dashed;border-color:#ddd8c6}
#ops-pane-qc .qc-rowtrail{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 16px 10px;margin-top:-3px}
#ops-pane-qc .tr-tog{font:600 10px Inter,system-ui,sans-serif;letter-spacing:.04em;color:var(--brand-deep,#1f4a2d);background:#eef4ec;border:1px solid #dbe8dc;border-radius:999px;padding:4px 11px;cursor:pointer;flex:none}
#ops-pane-qc .tr-tog:hover{background:#e2eee2}
#ops-pane-qc .tr-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
#ops-pane-qc .tc{font:600 9.5px Inter,system-ui,sans-serif;letter-spacing:.04em;border-radius:999px;padding:3px 9px;white-space:nowrap}
#ops-pane-qc .tc.rev{letter-spacing:.08em;color:#6b7669;background:#f2efe2;border:1px solid #e4e0d0}
#ops-pane-qc .tc.rev.exception{color:#8a5a0f;background:#fbf3df;border-color:#ecd9a8}
#ops-pane-qc .tc.rev.sample{color:#2a5d38;background:#e6efe4;border-color:#cfe3d3}
#ops-pane-qc .tc.ev{color:#2a5d38;background:#eef4ec;border:1px solid #dbe8dc}
#ops-pane-qc .tc.cl{color:#3c5a44;background:#e6efe4;border:1px solid #cfe3d3}
#ops-pane-qc .tc.clo{color:#8b8a7c;background:#f4f2e6;border:1px solid #e4e0d0}
#ops-pane-qc .tc.miss{color:#8a5a0f;background:#fbf3df;border:1px solid #ecd9a8}
#ops-pane-qc .tc.none{color:#8b8a7c;background:#f7f6ef;border:1px dashed #ddd8c6}

/* the panel — shared verbatim by the row expander and the drawer */
.qc-trailpanel{display:none}
.qc-trailpanel.on{display:block;background:#f7f6ef;border-top:1px solid #eae6d8;padding:13px 16px 15px}
.qc-trailpanel.drawer{border-top:0;border:1px solid #e7e2d4;border-radius:12px;padding:14px 16px}
.qc-trailpanel .tp-why{display:flex;gap:12px;align-items:flex-start;padding-bottom:11px;margin-bottom:11px;border-bottom:1px solid #eae6d8}
.qc-trailpanel .tp-sec{display:flex;gap:12px;align-items:flex-start;margin-bottom:11px}
.qc-trailpanel .tp-sec:last-child{margin-bottom:0}
.qc-trailpanel .tp-k{font:700 9px Inter,system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#8b8a7c;width:132px;flex:none;padding-top:2px}
.qc-trailpanel .tp-k .ro{font:700 8.5px Inter,system-ui,sans-serif;letter-spacing:.1em;color:#8a5a0f;font-style:normal}
.qc-trailpanel .tp-v{flex:1;min-width:0;font:400 11.5px/1.6 Inter,system-ui,sans-serif;color:#4d5a4f}
.qc-trailpanel .tp-none{font:400 11.5px/1.6 Inter,system-ui,sans-serif;color:#8b8a7c}
.qc-trailpanel .tp-none code{font:400 10.5px ui-monospace,Menlo,monospace;color:#6b7669;background:#f2efe2;border-radius:5px;padding:1px 5px}
.qc-trailpanel .tp-warn{font:500 11.5px/1.6 Inter,system-ui,sans-serif;color:#8a5a0f;background:#fbf3df;border:1px solid #ecd9a8;border-radius:9px;padding:8px 11px;margin-bottom:7px}
.qc-trailpanel .tp-ev{display:flex;flex-direction:column;gap:5px}
.qc-trailpanel .tp-e{display:flex;gap:8px;align-items:center;font:500 11px Inter,system-ui,sans-serif;color:var(--brand-deep,#1f4a2d);background:#fff;border:1px solid #e7e2d4;border-radius:9px;padding:7px 11px;text-decoration:none;transition:border-color .12s}
.qc-trailpanel .tp-e:hover{border-color:var(--brand-line,#b9d8b4)}
.qc-trailpanel .tp-e.gone{border-style:dashed;border-color:#ecd9a8;color:#8a5a0f}
.qc-trailpanel .tp-e .k{font:700 8.5px Inter,system-ui,sans-serif;letter-spacing:.08em;color:#8b8a7c;background:#f2efe2;border-radius:5px;padding:2px 6px;flex:none}
.qc-trailpanel .tp-e.gone .k{color:#8a5a0f;background:#fbf3df}
.qc-trailpanel .tp-e .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qc-trailpanel .tp-cl{font:400 10.5px/1.75 ui-monospace,Menlo,monospace;color:#4d5a4f;background:#fff;border:1px solid #e7e2d4;border-radius:9px;padding:10px 12px;white-space:pre-wrap}
.qc-trailpanel .tp-cl.older{color:#8b8a7c;border-style:dashed}

/* exception band now carries real rows; the 5% spot-check gets its own calm band */
#ops-pane-qc .qc-guardband .gb-rows,#ops-pane-qc .qc-sampband .sb-rows{display:flex;flex-direction:column;gap:8px;margin:10px 0 4px}
#ops-pane-qc .qc-sampband{background:#fff;border:1px solid #e7e2d4;border-radius:14px;padding:14px 16px;margin-bottom:14px}
#ops-pane-qc .qc-sampband .sb-head{display:flex;flex-direction:column;gap:3px}
#ops-pane-qc .qc-sampband .sb-t{font:600 12.5px Inter,system-ui,sans-serif;color:#1f2b20}
#ops-pane-qc .qc-sampband .sb-t b{color:var(--brand-deep,#1f4a2d)}

/* qc-auditband — raw QBO audit-log exceptions (Craig 8/16 8:49p, "exceptions-first"). Same calm-
   alert amber as .qc-guardband on purpose: this is a look-here, not an alarm — no red, per law. */
#ops-pane-qc .qc-auditband{background:#fbf3df;border:1px solid #ecd9a8;border-radius:14px;padding:15px 18px;box-shadow:0 0 0 3px rgba(214,166,74,.12);margin-bottom:14px}
#ops-pane-qc .qc-auditband .ab-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
#ops-pane-qc .qc-auditband .ab-warn{font:400 14px Inter,system-ui,sans-serif;color:#8a5a0f}
#ops-pane-qc .qc-auditband .ab-t{font:600 13px Inter,system-ui,sans-serif;color:#8a5a0f}
#ops-pane-qc .qc-auditband .ab-sub{font:400 11px Inter,system-ui,sans-serif;color:#a07c3a}
#ops-pane-qc .qc-auditband .ab-cov{font:400 11px Inter,system-ui,sans-serif;color:#a07c3a;margin-top:6px}
#ops-pane-qc .qc-auditband .ab-books{display:flex;flex-direction:column;gap:8px;margin-top:12px}
#ops-pane-qc .qc-auditband .ab-bookgrp{background:#fff;border:1px solid #ecd9a8;border-radius:10px;overflow:hidden}
#ops-pane-qc .qc-auditband .ab-booktog{width:100%;display:flex;align-items:center;gap:10px;font:600 12px Inter,system-ui,sans-serif;color:#6b5220;background:none;border:none;padding:10px 13px;cursor:pointer;text-align:left}
#ops-pane-qc .qc-auditband .ab-bookname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#ops-pane-qc .qc-auditband .ab-bookn{font:500 11px Inter,system-ui,sans-serif;color:#a07c3a;flex:none}
#ops-pane-qc .qc-auditband .ab-bookarrow{font:600 11px Inter,system-ui,sans-serif;color:#8a5a0f;flex:none}
#ops-pane-qc .qc-auditband .ab-bookrows{display:flex;flex-direction:column;gap:7px;padding:0 13px 13px;border-top:1px solid #f2e6c4}
#ops-pane-qc .qc-auditband .ab-row{background:#fbf9f2;border:1px solid #f2e6c4;border-radius:8px;padding:8px 10px;margin-top:7px}
#ops-pane-qc .qc-auditband .ab-bucket{display:inline-block;font:700 9px Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#6b5220;background:#f2e6c4;border-radius:5px;padding:2px 7px;margin-right:6px}
#ops-pane-qc .qc-auditband .ab-bucket.unknown{color:#7a5a5a;background:#f0e1e1}
#ops-pane-qc .qc-auditband .ab-tag{font:500 10.5px Inter,system-ui,sans-serif;color:#8b8a7c}
#ops-pane-qc .qc-auditband .ab-ooh{font:500 10.5px Inter,system-ui,sans-serif;color:#8a5a0f;margin-left:8px}
#ops-pane-qc .qc-auditband .ab-memo{font:400 11px/1.6 ui-monospace,Menlo,monospace;color:#4d5a4f;margin-top:5px;white-space:pre-wrap}
#ops-pane-qc .qc-auditband .ab-reason{font:400 11px/1.55 Inter,system-ui,sans-serif;color:#5c5a4d;margin-top:4px}
#ops-pane-qc .qc-auditband .ab-ip{font:400 10.5px ui-monospace,Menlo,monospace;color:#8b8a7c;margin-top:4px}
#ops-pane-qc .qc-auditband .ab-more{font:400 11px Inter,system-ui,sans-serif;color:#a07c3a;margin-top:2px}
#ops-pane-qc .qc-auditband .ab-openqbo{display:inline-block;font:600 11px Inter,system-ui,sans-serif;color:#8a5a0f;text-decoration:none;border-bottom:1px solid #ecd9a8;margin-top:6px}
#ops-pane-qc .qc-auditband .ab-openqbo:hover{border-color:#8a5a0f}
#ops-pane-qc .qc-sampband .sb-sub{font:400 11px/1.55 Inter,system-ui,sans-serif;color:#8b8a7c}
