/* V3ComplianceDoor - the requirement strip (ruled 2026-10-08: Option A, the Ledger, with C's dimension band). Tokens only; text 12px and up at 400/500;
   the three states differ by height, fill and outline as well as colour. © 2026 VeriPass AI, Inc. */
.ce { max-width:1180px; }
.ce-kicker { font:500 12px var(--mono); letter-spacing:2px; color:var(--accent); margin:4px 0 14px; }
.ce-loading { font:400 13px var(--sans); color:var(--text-muted); padding:24px 0; }
.ce-warn { color:var(--amber); }

/* the inventory */
.ce-inv { display:flex; gap:28px; flex-wrap:wrap; align-items:flex-end; }
.ce-inv-n { display:flex; flex-direction:column; gap:2px; }
.ce-inv-n b { font:500 30px var(--mono); color:var(--text); font-variant-numeric:tabular-nums; line-height:1.1; }
.ce-inv-n span { font:400 13px var(--sans); color:var(--text-muted); }
.ce-inv-n.ce-n-e b { color:var(--certified); } .ce-inv-n.ce-n-s b { color:var(--amber); } .ce-inv-n.ce-n-u b { color:var(--text-muted); }
.ce-inv-line { font:400 13px var(--sans); color:var(--text-secondary); margin:10px 0 8px; line-height:1.5; }
.ce-key { display:flex; gap:18px; margin:4px 0 18px; }
.ce-key-i { display:inline-flex; align-items:flex-end; gap:6px; font:500 12px var(--mono); color:var(--text-muted); }

/* the cell grammar */
.ce-strip { display:flex; align-items:flex-end; gap:3px; height:30px; }
.ce-cell { flex:0 0 12px; width:12px; height:100%; padding:0; border:0; border-radius:2px; cursor:pointer; display:block; outline-offset:2px; }
.ce-cell:focus-visible { outline:2px solid var(--accent-hover); }
.ce-cell:hover, .ce-cell.is-open { box-shadow:0 0 0 1px var(--text); }
.ce-s-evidenced { background:var(--certified); }
.ce-s-short { background:var(--amber); height:55%; clip-path:polygon(0 0, 55% 0, 100% 35%, 100% 100%, 0 100%); }
.ce-s-unmeasured { background:transparent; box-shadow:inset 0 0 0 1.5px var(--text-muted); background-image:repeating-linear-gradient(180deg, transparent 0 4px, var(--bg) 4px 7px); }
.ce-cell.ce-s-unmeasured { background:transparent; border:1.5px dashed var(--text-muted); box-shadow:none; }
.ce-cell.ce-s-unmeasured:hover, .ce-cell.ce-s-unmeasured.is-open { border-color:var(--text); }
.ce-cell--key { flex:none; width:10px; height:18px; cursor:default; }
.ce-cell--key.ce-s-short { height:10px; }
.ce-cell.is-lit { outline:2px solid var(--text); outline-offset:2px; }

.ce-counts { font:400 13px var(--sans); color:var(--text-secondary); font-variant-numeric:tabular-nums; }
.ce-n-e { color:var(--certified); } .ce-n-s { color:var(--amber); } .ce-n-u { color:var(--text-muted); }

/* the six measurements */
.ce-dims { display:grid; grid-template-columns:repeat(6, 1fr); gap:8px; margin:0 0 20px; }
.ce-dim { text-align:left; background:var(--card); border:1px solid var(--border); border-radius:var(--radius-md); padding:10px 12px; cursor:pointer; display:flex; flex-direction:column; gap:2px; color:var(--text); }
.ce-dim.is-un { border-style:dashed; border-color:var(--text-muted); }
.ce-dim.is-sel { border-color:var(--text); box-shadow:0 0 0 1px var(--text); }
.ce-dim-name { font:500 12px var(--sans); color:var(--text-secondary); }
.ce-dim-mean { font:500 18px var(--mono); color:var(--text); font-variant-numeric:tabular-nums; }
.ce-dim-none { font:500 14px var(--sans); color:var(--text-muted); }
.ce-dim-on, .ce-dim-maps { font:400 12px var(--sans); color:var(--text-muted); }
.ce-dims-cap { font:400 13px var(--sans); color:var(--text-secondary); margin:0 0 8px; }

/* the ledger */
.ce-ledger { display:flex; flex-direction:column; border-top:1px solid var(--border); }
.ce-row { display:grid; grid-template-columns:200px auto 1fr; gap:24px; align-items:center; padding:12px 4px; border-bottom:1px solid var(--border); }
.ce-row-name { display:flex; flex-direction:column; gap:2px; }
.ce-fw { font:500 13px var(--mono); color:var(--text); }
.ce-fw-reg { font:400 12px var(--sans); color:var(--text-muted); }

/* the requirement, opened */
.ce-req-wrap { padding:4px 0 8px; }
.ce-req { background:var(--card); border:1px solid var(--border-light); border-radius:var(--radius-md); padding:18px 20px; margin:6px 0 10px; }
.ce-req-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ce-req-fw { font:500 12px var(--mono); color:var(--text-muted); }
.ce-req-art { font:500 13px var(--mono); color:var(--text); }
.ce-req-title { font:400 13px var(--sans); color:var(--text-secondary); }
.ce-req-close { margin-left:auto; background:none; border:1px solid var(--border-light); border-radius:var(--radius-sm); padding:4px 10px; font:500 12px var(--sans); color:var(--text-secondary); cursor:pointer; }
.ce-req-close:hover { color:var(--text); border-color:var(--text-muted); }
.ce-word { font:500 12px var(--mono); letter-spacing:0.5px; }
.ce-w-evidenced { color:var(--certified); } .ce-w-short { color:var(--amber); } .ce-w-unmeasured { color:var(--text-muted); }
.ce-say { font:400 14px var(--sans); color:var(--text); line-height:1.55; margin:12px 0 14px; max-width:860px; }
.ce-dimrows { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.ce-dimrow { display:grid; grid-template-columns:170px 260px 150px 90px auto; gap:12px; align-items:center; font:400 13px var(--sans); color:var(--text-secondary); }
.ce-bar { position:relative; height:10px; background:var(--border); border-radius:2px; }
.ce-bar--none { background:transparent; border:1.5px dashed var(--text-muted); height:10px; }
.ce-bar-fill { position:absolute; left:0; top:0; bottom:0; border-radius:2px; clip-path:none; height:100%; }
.ce-bar-fill.ce-s-short { clip-path:none; height:100%; }
.ce-bar-floor { position:absolute; top:-4px; bottom:-4px; width:2px; background:var(--text); }
.ce-dimrow-v { font:500 13px var(--mono); color:var(--text); font-variant-numeric:tabular-nums; }
.ce-dimrow-f { font:400 12px var(--mono); color:var(--text-muted); }
.ce-dimrow-on { font:400 12px var(--sans); color:var(--text-muted); }
.ce-scale { font:400 12px var(--sans); color:var(--text-muted); }
.ce-certs-t { font:400 13px var(--sans); color:var(--text-secondary); margin:4px 0 6px; }
.ce-sf { margin-top:16px; }
.ce-sf-t { font:500 12px var(--mono); color:var(--text-muted); margin-bottom:6px; }
.ce-sf-row { display:grid; grid-template-columns:110px 90px 1fr; gap:12px; padding:6px 0; border-top:1px solid var(--border); font:400 13px var(--sans); color:var(--text-secondary); text-decoration:none; }
.ce-sf-row:hover { color:var(--text); }
.ce-sf-when { font:400 12px var(--mono); color:var(--text-muted); }
.ce-sf-v { font:500 12px var(--mono); }
.ce-v-certified { color:var(--certified); } .ce-v-flagged { color:var(--amber); } .ce-v-failed { color:var(--red-soft); }
.ce-more { font:400 12px var(--sans); color:var(--text-muted); margin-top:6px; }

@media (max-width: 1100px) { .ce-dims { grid-template-columns:repeat(3, 1fr); } .ce-row { grid-template-columns:1fr; gap:8px; } .ce-dimrow { grid-template-columns:1fr; } }

/* THE DISSENT (ruled 2026-10-08): an EVIDENCED cell with certificates below floor carries a cap cut off by a gap in the page
   colour, so the marker reads without colour; the counts beside it say how many */
.ce-cell.ce-s-evidenced.ce-dissent { background:linear-gradient(to bottom, var(--amber) 0 5px, var(--bg) 5px 8px, var(--certified) 8px 100%); }
.ce-cell--key.ce-s-evidenced.ce-dissent { background:linear-gradient(to bottom, var(--amber) 0 4px, var(--bg) 4px 6px, var(--certified) 6px 100%); }
.ce-dissent-line { font:400 13px var(--sans); color:var(--text-secondary); margin-top:2px; }
.ce-inv-n.ce-n-d b { color:var(--amber); }
.ce-dim-wo { font:500 12px var(--sans); color:var(--text); margin-top:4px; line-height:1.4; }
.ce-dim.is-un .ce-dim-wo { color:var(--text); }
.ce-pkg { margin-top:6px; align-self:flex-start; background:none; border:1px solid var(--border-light); border-radius:var(--radius-sm); padding:3px 8px; font:500 12px var(--sans); color:var(--accent); cursor:pointer; }
.ce-pkg:hover { color:var(--accent-hover); border-color:var(--accent); }
.ce-pkg:disabled { color:var(--text-muted); cursor:default; }
