:root{--brand: #046BD2;--brand-hover: #0357a8;--brand-ink: #ffffff;--brand-tint: #e8f1fc;--bg: #eef2f7;--surface: #ffffff;--sidebar: #e8edf4;--border: #dbe3ec;--border-strong: #c7d2e0;--ink: #0f172a;--ink-2: #334155;--ink-3: #64748b;--ink-4: #94a3b8;--danger: #c81e1e;--danger-tint: #fdecec;--ok: #0f7b3f;--ok-tint: #e7f6ed;--hot-ink: #b4441a;--hot-bg: #fdeee6;--mod-ink: #9a6700;--mod-bg: #fdf5e2;--cold-ink: #41617f;--cold-bg: #eaf0f6;--ghost-ink: #6b4ea8;--ghost-bg: #f1ecfa;--font: Arial, "Helvetica Neue", Helvetica, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--r-sm: 6px;--r: 8px;--r-lg: 12px;--r-pill: 999px;--shadow: 0 1px 2px rgba(15, 23, 42, .04);--shadow-lg: 0 4px 16px rgba(15, 23, 42, .08);--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);padding:var(--s5) 0;display:flex;flex-direction:column}.brand{padding:0 var(--s5) var(--s6)}.brand h1{font-size:16px;margin:0 0 2px;letter-spacing:-.01em}.brand p{margin:0;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}.nav{display:flex;flex-direction:column;gap:1px}.nav a{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:9px var(--s5);color:var(--ink-2);text-decoration:none;font-size:14px;border-left:3px solid transparent}.nav a:hover{background:#fff9;color:var(--ink)}.nav a.on{background:var(--surface);color:var(--brand);font-weight:700;border-left-color:var(--brand)}.nav .count{font-family:var(--mono);font-size:12px;color:var(--ink-3)}.nav a.on .count{color:var(--brand)}.sidebar-foot{margin-top:auto;padding:var(--s5) var(--s5) 0;font-size:12px;color:var(--ink-3)}.sidebar-foot button{background:none;border:0;padding:0;color:var(--brand);font:inherit;cursor:pointer;text-decoration:underline}.main{padding:var(--s5) var(--s6) var(--s7);max-width:1320px}.page-h{font-size:30px;margin:var(--s4) 0 var(--s2);letter-spacing:-.02em}.page-sub{color:var(--ink-3);margin:0 0 var(--s5);max-width:62ch}.flag{display:inline-block;border:1px solid var(--brand);color:var(--brand);border-radius:var(--r-pill);padding:4px 12px;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.flag.test{border-color:#b4441a;color:#b4441a;background:var(--hot-bg)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow)}.card-h{padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);font-weight:700}.card-b{padding:var(--s5)}.grid{display:grid;gap:var(--s4)}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 980px){.g2,.g4{grid-template-columns:1fr}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s4) var(--s5)}.stat .k{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s2)}.stat .v{font-family:var(--mono);font-size:26px;letter-spacing:-.02em}.stat .v.danger{color:var(--danger)}.stat .n{font-size:12px;color:var(--ink-3);margin-top:var(--s1)}.note{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--r);padding:var(--s4) var(--s5)}.note.warn{border-left-color:#b4441a}.tablewrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow-x:auto;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);white-space:nowrap}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{color:var(--brand)}tbody td{padding:var(--s3) var(--s4);border-bottom:1px solid #eef2f7;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:#f7fafd}td.num,td.date,th.num{font-family:var(--mono)}td.num{text-align:right}td.danger,.danger-text{color:var(--danger);font-weight:700}.org{font-weight:700}.empty{padding:var(--s7);text-align:center;color:var(--ink-3)}.pill{display:inline-block;padding:2px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:700;white-space:nowrap}.pill.hot{background:var(--hot-bg);color:var(--hot-ink)}.pill.moderate{background:var(--mod-bg);color:var(--mod-ink)}.pill.cold{background:var(--cold-bg);color:var(--cold-ink)}.pill.ghosted{background:var(--ghost-bg);color:var(--ghost-ink)}.pill.ok{background:var(--ok-tint);color:var(--ok)}.pill.no{background:#eef2f7;color:var(--ink-3)}.pill.due{background:var(--brand-tint);color:var(--brand)}.pill.overdue{background:var(--danger-tint);color:var(--danger)}.chips{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s4)}.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);border-radius:var(--r-pill);padding:7px 15px;font:inherit;font-size:13px;cursor:pointer}.chip:hover{border-color:var(--brand);color:var(--brand)}.chip.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:700}.searchbar{display:flex;gap:var(--s3);margin-bottom:var(--s4)}label.fl{display:block;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px;font-weight:700}input,select,textarea{width:100%;padding:10px var(--s3);font:inherit;color:var(--ink);background:#f6f9fc;border:1px solid var(--border-strong);border-radius:var(--r)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 3px #046bd21f}textarea{min-height:92px;resize:vertical}.field{margin-bottom:var(--s4)}.req{color:var(--danger)}.err{color:var(--danger);font-size:12px;margin-top:var(--s1)}.btn{padding:10px 20px;border-radius:var(--r);border:1px solid transparent;font:inherit;font-weight:700;cursor:pointer;background:var(--brand);color:var(--brand-ink)}.btn:hover{background:var(--brand-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:var(--surface);border-color:var(--border-strong);color:var(--ink-2)}.btn.ghost:hover{border-color:var(--brand);color:var(--brand);background:var(--surface)}.btn.sm{padding:6px 13px;font-size:13px}.row{display:flex;gap:var(--s3);align-items:center}.row.end{justify-content:flex-end}.spacer{flex:1}.dl{width:100%;border-collapse:collapse}.dl tr{border-bottom:1px solid #eef2f7}.dl tr:last-child{border-bottom:0}.dl th{text-align:left;font-weight:400;color:var(--ink-3);padding:11px var(--s5);width:44%;text-transform:none;letter-spacing:0;font-size:14px;border:0}.dl td{padding:11px var(--s5)}.login{display:grid;place-items:center;min-height:100vh;padding:var(--s4)}.login .card{width:100%;max-width:400px}.login h1{font-size:20px;margin:0 0 var(--s1)}.login p.sub{color:var(--ink-3);margin:0 0 var(--s5);font-size:13px}.muted{color:var(--ink-3)}.small{font-size:12px}.mono{font-family:var(--mono)}.back{background:none;border:0;padding:0;color:var(--brand);font:inherit;cursor:pointer;margin-bottom:var(--s3)}.back:hover{text-decoration:underline}.footnote{border-top:1px solid var(--border);margin-top:var(--s6);padding-top:var(--s4);color:var(--ink-3);font-size:12px;max-width:70ch}.loading{padding:var(--s7);text-align:center;color:var(--ink-3)}
