:root{--bg:#0f1720;--fg:#f3f6fa;--mut:#9fb0c3;--card:#18232f;--line:#2b3a4a;--ok:#2ecc71;--fail:#ff5a5f;--pend:#f1c40f;--hold:#4aa3ff;--idle:#3a4b5c}@media (prefers-color-scheme: light){:root{--bg:#fff;--fg:#10202e;--mut:#4a5d70;--card:#f2f5f8;--line:#cfd8e1;--ok:#0a8f4a;--fail:#c0262d;--pend:#8a6a00;--hold:#0b63c5;--idle:#b3bfcb}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:22px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}header{display:flex;justify-content:space-between;align-items:baseline;padding:18px 36px;border-bottom:2px solid var(--line)}h1{margin:0;font-size:40px}h2{font-size:26px;margin:0 0 10px;color:var(--mut);font-weight:600}.mut{color:var(--mut)}code{font:19px ui-monospace,Menlo,monospace}main{display:grid;grid-template-columns:420px 1fr 520px;gap:20px;padding:20px 36px;height:calc(100vh - 90px)}section{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 20px;overflow:auto}.lamp{display:flex;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}.dot{width:26px;height:26px;border-radius:50%;background:var(--idle);flex:none}.dot.ok{background:var(--ok)}.dot.fail{background:var(--fail)}.dot.pending{background:var(--pend)}.dot.info{background:var(--hold)}.badge{display:inline-block;padding:2px 16px;border-radius:999px;font-weight:800;border:3px solid currentColor;font-size:28px}.permit{color:var(--ok)}.permit_with_duties{color:var(--pend)}.hold_for_custodian_review{color:var(--hold)}.deny{color:var(--fail)}.row{padding:6px 0;border-bottom:1px solid var(--line)}.k{color:var(--mut)}.ev{font:17px ui-monospace,Menlo,monospace;padding:4px 0;border-bottom:1px solid var(--line)}.ev.fail{color:var(--fail)}.ev.ok{color:var(--ok)}.ev.pending{color:var(--pend)}button{font:700 24px system-ui;padding:10px 26px;border-radius:10px;border:3px solid currentColor;background:transparent;cursor:pointer;margin-right:12px}button.go{color:var(--ok)}button.no{color:var(--fail)}table{border-collapse:collapse;width:100%}td,th{text-align:left;padding:6px 10px;border-bottom:1px solid var(--line);vertical-align:top}.met{color:var(--ok)}.unmet{color:var(--fail)}@media (max-width:1300px){main{grid-template-columns:1fr;height:auto}}
