:root{--bg:#f6f7f9;--panel:#fff;--border:#dfe3e8;--text:#1c2430;--text2:#5b6673;--text3:#8a94a1;--blue:#2563eb;--blue-dark:#1d4ed8;--green:#16a34a;--amber:#d97706;--red:#dc2626;--shadow:0 1px 2px #1018280f,0 1px 3px #1018281a;--radius:8px;--sidebar:232px;--header:56px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#12161c;--panel:#1a1f27;--border:#2b323c;--text:#e8ecf1;--text2:#a9b3c0;--text3:#78828f;--shadow:0 1px 2px #0000004d}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit}.boot{text-align:center;place-content:center;gap:8px;height:100vh;display:grid}.boot-mark{letter-spacing:.2px;font-weight:650}.boot-msg{color:var(--text2)}.signin{place-items:center;min-height:100vh;padding:24px;display:grid}.signin form{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:360px;box-shadow:var(--shadow);padding:24px}.signin h1{margin:0 0 4px;font-size:18px}.signin .sub{color:var(--text2);margin:0 0 20px;font-size:13px}label{margin:0 0 14px;display:block}label .lbl{color:var(--text2);margin-bottom:5px;font-size:12px;font-weight:600;display:block}input,select,textarea{border:1px solid var(--border);background:var(--panel);border-radius:6px;width:100%;padding:9px 10px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.btn{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:9px 14px;font-weight:550;display:inline-flex}.btn:hover{border-color:var(--text3)}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}.btn-danger{color:var(--red);border-color:var(--red)}.btn-sm{padding:5px 10px;font-size:13px}.err{color:#7f1d1d;background:#fee2e2;border-radius:6px;margin:0 0 14px;padding:9px 11px;font-size:13px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .err{color:#fecaca;background:#3b1414}}.shell{grid-template-columns:var(--sidebar) 1fr;grid-template-rows:var(--header) 1fr;grid-template-areas:"brand header""nav main";height:100vh;display:grid}.brand{border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--panel);grid-area:brand;align-items:center;padding:0 16px;font-weight:650;display:flex}.header{border-bottom:1px solid var(--border);background:var(--panel);grid-area:header;align-items:center;gap:12px;padding:0 16px;display:flex}.header .spacer{flex:1}.proj{align-items:center;gap:8px;min-width:0;display:flex}.proj .lab{color:var(--text3);white-space:nowrap;font-size:12px}.proj select{max-width:280px;padding:6px 8px}.who{color:var(--text2);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:13px;overflow:hidden}.nav{background:var(--panel);border-right:1px solid var(--border);grid-area:nav;padding:10px 8px;overflow:auto}.nav a{color:var(--text2);border-radius:6px;padding:8px 10px;font-weight:520;text-decoration:none;display:block}.nav a:hover{background:var(--bg);color:var(--text)}.nav a[aria-current=page]{background:var(--blue);color:#fff}.nav .grp{color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin:14px 0 4px;padding:0 10px;font-size:11px}.main{grid-area:main;padding:20px;overflow:auto}.page-head{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.page-head h1{margin:0;font-size:19px}.page-head .sub{color:var(--text2);margin:2px 0 0;font-size:13px}.page-head .spacer{flex:1}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.toolbar input[type=search]{max-width:260px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:9px 12px}th{color:var(--text2);white-space:nowrap;background:var(--panel);font-size:12px;font-weight:600;position:sticky;top:0}td.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr:hover{background:var(--bg)}.state{text-align:center;color:var(--text2);padding:36px 20px}.state h3{color:var(--text);margin:0 0 6px;font-size:15px}.state p{margin:0 0 14px;font-size:13px}.pager{border-top:1px solid var(--border);color:var(--text2);align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.pager .spacer{flex:1}.badge{border:1px solid var(--border);color:var(--text2);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.badge-archived{color:var(--amber);border-color:var(--amber)}.modal-back{z-index:50;background:#0c111873;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;width:100%;max-width:520px;max-height:calc(100vh - 40px);display:flex}.modal h2{margin:0;font-size:16px}.modal-head{border-bottom:1px solid var(--border);padding:16px 18px}.modal-body{padding:18px;overflow:auto}.modal-foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.toast{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--green);box-shadow:var(--shadow);z-index:60;border-radius:6px;max-width:min(380px,100vw - 32px);padding:11px 14px;font-size:13px;position:fixed;bottom:16px;right:16px}.toast.bad{border-left-color:var(--red)}.hint{color:var(--text3);margin-top:4px;font-size:12px}@media (width<=1024px){:root{--sidebar:190px}.proj select{max-width:180px}}@media (width<=760px){.shell{grid-template-columns:1fr;grid-template-rows:var(--header) auto 1fr;grid-template-areas:"header""nav""main"}.brand{display:none}.nav{border-right:0;border-bottom:1px solid var(--border);gap:6px;padding:8px;display:flex;overflow-x:auto}.nav .grp{display:none}.nav a{white-space:nowrap}.main{padding:14px}.modal-foot{flex-direction:column-reverse}.modal-foot .btn{justify-content:center;width:100%}}.facts{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.fact{border:1px solid var(--border);background:var(--bg2);border-radius:8px;flex-direction:column;gap:2px;min-width:0;padding:8px 10px;display:flex}.fact .k{letter-spacing:.03em;text-transform:uppercase;color:var(--text3);font-size:11px}.fact .v{color:var(--text);overflow-wrap:anywhere;font-size:14px;font-weight:600}.fact.warn{border-color:var(--amber)}.fact.warn .v{color:var(--amber)}tfoot td{border-top:2px solid var(--border);font-weight:600}.ref-filter{margin-bottom:4px}label>select{width:100%}.cf-note{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text2);margin:10px 0;padding:10px 12px;font-size:13px}.cf-note.ok{border-left:3px solid var(--green)}.cf-note.bad{border-left:3px solid var(--red);color:var(--text)}.cf-strong{color:var(--text);font-weight:600}tr.cf-total td{border-top:2px solid var(--border);color:var(--text);font-weight:600}tr.cf-muted td{color:var(--text3)}td.cf-cell{cursor:pointer}td.cf-cell:hover{background:var(--bg);text-decoration:underline}
