:root{--shell:#0f0d0c;--ink:#141210;--ink-2:#5a5550;--ink-3:#8a8580;--paper:#f6f4f1;--card:#fff;--line:#e3ded8;--vermilion:#e8562e;--met-ink:#1e6b34;--met-bg:#e4f3e8;--partial-ink:#7a6000;--partial-bg:#fbf1d3;--notmet-ink:#a8271f;--notmet-bg:#fbe5e3;--na-ink:#5f6673;--na-bg:#eceff3}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}.app{height:100vh;display:flex;overflow:hidden}.side{background:var(--shell);color:#dde5ef;flex-direction:column;width:230px;min-width:230px;display:flex}.logo{border-bottom:1px solid #ffffff1f;align-items:center;gap:9px;padding:18px 16px 14px;display:flex}.logo .word{letter-spacing:-.5px;white-space:nowrap;color:#fff;font-size:16px;font-weight:900;display:block}.logo .word em{color:var(--vermilion);font-style:normal}.logo .kicker{color:var(--vermilion);letter-spacing:1.2px;font-size:9.5px;display:block}.side h4{letter-spacing:1.4px;color:#9fb0c6;text-transform:uppercase;margin:0;padding:16px 16px 6px;font-size:10px}.clientBtn{text-align:left;color:#d5deea;cursor:pointer;background:0 0;border:none;border-left:3px solid #0000;width:100%;padding:9px 16px;font-size:13px;text-decoration:none;display:block}.clientBtn:hover{background:#ffffff0f}.clientBtn.active{border-left-color:var(--vermilion);color:#fff;background:#ffffff1a}.clientBtn .mlb{float:right;color:#fff;background:#ffffff24;border-radius:9px;padding:1px 7px;font-size:11px}.foot{color:#9fb0c6;border-top:1px solid #ffffff1f;margin-top:auto;padding:14px 16px;font-size:11px}.foot .tagline{color:var(--vermilion);font-style:italic}.main{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:4px;min-height:52px;padding:0 22px;display:flex}.topbar .cname{margin-right:14px;font-size:16px;font-weight:700}.topbar .meta{color:var(--ink-2);margin-right:auto;font-size:12px}.topbar .assessor{color:var(--ink-2);font-size:12px}.tabs{background:var(--card);border-bottom:1px solid var(--line);gap:2px;padding:0 14px;display:flex}.tab{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-bottom:2.5px solid #0000;padding:10px 14px;font-size:13px;font-weight:500;text-decoration:none;display:inline-block}.tab.active{color:var(--shell);border-bottom-color:var(--vermilion);font-weight:700}.tab .cnt{background:var(--notmet-bg);color:var(--notmet-ink);border-radius:8px;margin-left:5px;padding:0 6px;font-size:11px}.view{flex:1;padding:20px 22px;overflow:auto}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:16px;padding:16px}.kpis{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.kpi .lab{text-transform:uppercase;letter-spacing:.8px;color:var(--ink-3);font-size:11px;font-weight:600}.kpi .val{color:var(--shell);font-size:26px;font-weight:800}.kpi .val.small{padding-top:6px;font-size:16px}.kpi .sub{color:var(--ink-2);font-size:11px}.kpi.warn .val{color:var(--notmet-ink)}h3.sec{color:var(--ink);margin:4px 0 10px;font-size:13px;font-weight:700}.grid8{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.stratCard{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:12px}.stratCard .nm{min-height:30px;font-size:12.5px;font-weight:600}.stratCard .mlRow{align-items:baseline;gap:5px;margin:2px 0 8px;display:flex}.stratCard .mlNow{color:var(--shell);font-size:22px;font-weight:800}.stratCard .mlTgt{color:var(--ink-2);font-size:12px}.stratCard .mlRow .chip{margin-left:auto}.pbar{background:#eae6e0;border-radius:3px;height:6px;overflow:hidden}.pbar>i{background:var(--shell);border-radius:3px;height:100%;display:block}.pbar.below>i{background:var(--vermilion)}.pnote{color:var(--ink-2);margin-top:5px;font-size:11px}.chip{white-space:nowrap;border-radius:10px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-block}.c-met{background:var(--met-bg);color:var(--met-ink)}.c-partial{background:var(--partial-bg);color:var(--partial-ink)}.c-notmet{background:var(--notmet-bg);color:var(--notmet-ink)}.c-na{background:var(--na-bg);color:var(--na-ink)}.c-ml{color:var(--shell);background:#efe9e3;font-weight:700}.c-src{color:#5a5550;background:#f1ede8}.c-src.collector{color:#a8451f;background:#fbe8df}.t-tested{color:#0f5c50;background:#dfeeeb}.t-sighted{color:#274f75;background:#e2ebf5}.t-document{color:#4f3d78;background:#ebe7f3}.t-asserted{color:#7d5a1a;background:#f5ecdd}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.filters select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 9px;font-size:13px}.muted{color:var(--ink-3);font-size:12px}.tableWrap{background:var(--card);border:1px solid var(--line);border-radius:10px;max-height:calc(100vh - 210px);margin-bottom:16px;padding:0;overflow:auto}table{border-collapse:collapse;width:100%}th{text-transform:uppercase;letter-spacing:.8px;color:var(--ink-3);text-align:left;border-bottom:1px solid var(--line);z-index:1;background:#faf8f5;padding:8px 10px;font-size:10.5px;position:sticky;top:0}td{vertical-align:top;border-bottom:1px solid #efece7;padding:9px 10px;font-size:13px}tr:hover td{background:#faf8f5}td.reqTxt{max-width:520px;line-height:1.45}.stratHead td{color:var(--shell);background:#f1ede8;padding:7px 10px;font-size:12.5px;font-weight:700}.stratHead .mini{color:var(--ink-2);font-size:11.5px;font-weight:500}.evref{color:#a8451f;font-size:12px;font-weight:600}select.status{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;padding:4px 6px;font-size:12px}select.status:disabled{opacity:.6;cursor:wait}select.status.s-met{background:var(--met-bg);color:var(--met-ink);border-color:#bfe0c8;font-weight:700}select.status.s-partial{background:var(--partial-bg);color:var(--partial-ink);border-color:#e7d493;font-weight:700}select.status.s-notmet{background:var(--notmet-bg);color:var(--notmet-ink);border-color:#f0c0bc;font-weight:700}select.status.s-na{background:var(--na-bg);color:var(--na-ink);border-color:#d6dbe2;font-weight:700}.btn{cursor:pointer;border:none;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:600}.btn.primary{background:var(--shell);color:#fff}.btn.primary:hover{background:#2a2724}.btn.ghost{color:var(--ink);background:#efece7}.btn.sm{padding:4px 10px;font-size:11.5px}.btn:disabled{opacity:.6;cursor:wait}.toast{background:var(--shell);color:#fff;opacity:0;pointer-events:none;z-index:50;border-radius:9px;padding:10px 16px;font-size:13px;transition:opacity .25s;position:fixed;bottom:18px;right:18px;box-shadow:0 4px 18px #00000040}.toast.show{opacity:1}.toast.error{background:var(--notmet-ink)}.overlay{z-index:40;background:#0f0d0c73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--card);border:1px solid var(--line);border-radius:10px;width:460px;max-width:calc(100vw - 40px);max-height:calc(100vh - 80px);padding:18px 20px;overflow:auto}.dialog h3{margin:0 0 4px;font-size:14px}.dialog .hint{color:var(--ink-2);margin-bottom:12px;font-size:12px}.dialog .evRow{align-items:baseline;gap:8px;padding:5px 0;font-size:13px;display:flex}.dialog .evRow .desc{color:var(--ink-2);font-size:12px}.dialog fieldset{border:1px solid var(--line);border-radius:8px;margin:12px 0;padding:10px 12px}.dialog fieldset legend{color:var(--ink-3);text-transform:uppercase;letter-spacing:.8px;padding:0 4px;font-size:11px}.dialog input[type=text],.dialog input[type=url],.dialog input[type=date],.dialog textarea{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;margin-bottom:8px;padding:6px 9px;font-family:inherit;font-size:13px}.dialog textarea{resize:vertical;min-height:70px}.dialog .actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.dialog .err{color:var(--notmet-ink);margin-top:8px;font-size:12px}.auditRow{border-bottom:1px solid #efece7;flex-wrap:wrap;align-items:baseline;gap:8px;padding:7px 0;font-size:13px;display:flex}.auditRow:last-child{border-bottom:none}.auditRow .when{font-variant-numeric:tabular-nums;min-width:150px}.auditRow .auditNote{color:var(--ink-2);flex-basis:100%;padding-left:158px;font-size:12px}.emptyWrap{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;display:flex}.emptyWrap .card{max-width:460px}.emptyWrap code{background:#efe9e3;border-radius:5px;padding:1px 6px;font-size:12.5px}
