:root{--bg:#0a0a0f;--bg2:#0e0e15;--card:#13131c;--card2:#1a1a26;--line:#26263a;--line2:#34344f;--text:#fff;--muted:#8b8ba7;--muted2:#6a6a85;--accent:#ff2d55;--accent-dim:#ff2d5522;--success:#2ed573;--warning:#ffb02e;--danger:#ff4d4f;--info:#5aa9ff;--radius:18px;--radius-sm:12px;font-synthesis:none}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 80% -10%, #1a1030 0%, transparent 55%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}a{color:var(--info);text-decoration:none}.tabnum{font-variant-numeric:tabular-nums}.app{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:linear-gradient(#11111a,#0c0c12);height:100vh;padding:22px 16px;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;margin-bottom:4px;display:flex}.brand .logo{background:var(--accent);color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;font-size:18px;font-weight:900;display:grid}.brand .ttl{letter-spacing:.2px;font-size:16px;font-weight:800}.brand .sub{color:var(--muted2);letter-spacing:2.5px;text-transform:uppercase;font-size:10px}.nav{flex-direction:column;gap:2px;margin-top:18px;display:flex}.nav button{text-align:left;width:100%;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:11px;align-items:center;gap:11px;padding:10px 12px;font-size:13.5px;font-weight:600;display:flex}.nav button:hover{color:var(--text);background:#ffffff08}.nav button.active{background:var(--accent-dim);color:#fff}.nav button.active .ic{color:var(--accent)}.nav .ic{text-align:center;opacity:.9;width:18px}.nav .sect{color:var(--muted2);letter-spacing:1.5px;text-transform:uppercase;margin:16px 12px 6px;font-size:10px}.main{padding:26px 30px 60px;overflow-x:hidden}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.topbar h1{margin:0;font-size:22px;font-weight:800}.topbar .crumbs{color:var(--muted);margin-top:3px;font-size:12.5px}.topbar .right{align-items:center;gap:10px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card.tight{padding:14px}.card h3{margin:0 0 14px;font-size:14px;font-weight:700}.grid{gap:16px;display:grid}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-2{grid-template-columns:repeat(2,1fr)}@media (width<=1100px){.cols-4{grid-template-columns:repeat(2,1fr)}.cols-3,.cols-2{grid-template-columns:1fr}}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.stat .k{color:var(--muted);align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.stat .v{letter-spacing:-.5px;margin-top:8px;font-size:30px;font-weight:800}.stat .d{color:var(--muted2);margin-top:4px;font-size:11.5px}.stat .dot{border-radius:50%;width:9px;height:9px;display:inline-block}.badge{border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.badge .d{border-radius:50%;width:7px;height:7px}.b-active{color:#71e8a3;background:#2ed5731a}.b-tolerance_used{color:#ffce7a;background:#ffb02e1a}.b-dropped{color:#ff9192;background:#ff4d4f1a}.b-registered{color:#9ccbff;background:#5aa9ff1a}.b-grouped,.b-entered{color:#ff8aa0;background:#ff2d551a}.b-cancelled{color:var(--muted);background:#ffffff10}.b-gray{color:var(--muted);background:#ffffff0d}button.btn,.btn{background:var(--card2);color:var(--text);border:1px solid var(--line2);cursor:pointer;border-radius:11px;padding:9px 15px;font-size:13px;font-weight:700}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:0 0}.btn.sm{border-radius:9px;padding:6px 11px;font-size:12px}.btn.danger{color:#ff9192;border-color:#ff4d4f55}.btn:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{background:var(--bg2);color:var(--text);border:1px solid var(--line2);border-radius:11px;width:100%;padding:10px 12px;font-family:inherit;font-size:13.5px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}label.fld{margin-bottom:12px;display:block}label.fld .lab{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--line);padding:10px 12px;font-size:11.5px;font-weight:600}td{border-bottom:1px solid #ffffff08;padding:11px 12px}tr:hover td{background:#ffffff05}.row-click{cursor:pointer}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar .grow{flex:1;min-width:180px}.muted{color:var(--muted)}.pill-tabs{background:var(--card);border:1px solid var(--line);border-radius:12px;gap:4px;padding:4px;display:inline-flex}.pill-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:6px 13px;font-size:12.5px;font-weight:700}.pill-tabs button.active{background:var(--accent);color:#fff}.overlay{z-index:50;background:#000a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.drawer{background:var(--bg2);border-left:1px solid var(--line);z-index:60;width:460px;max-width:92vw;height:100vh;padding:22px;position:fixed;top:0;right:0;overflow-y:auto;box-shadow:-20px 0 60px #000a}.modal{background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);width:480px;max-width:94vw;padding:22px}.spark{justify-content:center;align-items:center;display:flex}.empty{color:var(--muted);text-align:center;padding:40px}.loading{color:var(--muted);text-align:center;padding:30px}.login-wrap{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{width:380px;max-width:92vw}.legend{flex-wrap:wrap;gap:14px;margin-top:10px;display:flex}.legend .it{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.legend .d{border-radius:3px;width:10px;height:10px}.toast{background:var(--card2);border:1px solid var(--line2);z-index:100;border-radius:12px;padding:12px 18px;font-weight:600;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast.err{border-color:var(--danger);color:#ff9192}.toast.ok{border-color:var(--success);color:#8ff0b6}
