:root{--primary: #033b95;--primary-deep: #022a6b;--primary-soft: #dce5f4;--on-primary: #ffffff;--on-primary-soft: #022a6b;--secondary: #c40f01;--secondary-soft: #fbe2df;--bg: #f8fafc;--surface: #ffffff;--surface-2: #f1f5f9;--text: #0f172a;--text-sec: #64748b;--border: #e2e8f0;--success: #16a34a;--success-soft: #dcfce7;--error: #dc2626;--amber: #eab308;--amber-soft: #fef3c7;--radius-pill: 999px;--radius-card: 16px;--radius-control: 14px;--radius-sm: 12px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 6px 16px rgba(15, 23, 42, .06);--shadow-lg: 0 10px 30px rgba(15, 23, 42, .1);--font: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif}@media(prefers-color-scheme:dark){:root{--primary-deep: #0a2c66;--primary-soft: rgba(10, 60, 150, .5);--on-primary-soft: #cfe0fa;--secondary: #f4685b;--secondary-soft: rgba(124, 20, 10, .5);--bg: #0b1220;--surface: #1e293b;--surface-2: #28364a;--text: #f1f5f9;--text-sec: #94a3b8;--border: #334155;--success: #22c55e;--success-soft: rgba(22, 101, 52, .4);--error: #f87171;--amber: #fbbf24;--amber-soft: rgba(120, 80, 0, .42);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}.center{min-height:100vh;display:grid;place-items:center;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:28px 32px;width:min(94vw,420px);box-shadow:var(--shadow)}h1{font-size:21px;font-weight:700;margin:0 0 4px}h2{font-size:17px;font-weight:600;margin:0 0 16px}.sub{color:var(--text-sec);font-size:13px;margin-bottom:20px}label{display:block;font-size:12px;font-weight:500;color:var(--text-sec);margin:12px 0 4px}input{width:100%;padding:10px 12px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:14px}input::placeholder{color:var(--text-sec)}input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}button{font:inherit;font-weight:600;cursor:pointer;border:0;border-radius:var(--radius-control);transition:filter .15s ease,background .15s ease,border-color .15s ease}.btn{width:100%;margin-top:18px;padding:11px;background:var(--primary);color:var(--on-primary);font-size:14px}.btn:hover{filter:brightness(1.08)}.btn.secondary{background:transparent;border:1px solid var(--border);color:var(--text)}.btn.danger{background:var(--secondary);color:#fff}.btn:disabled{opacity:.5;cursor:default;filter:none}.divider{text-align:center;color:var(--text-sec);font-size:12px;margin:16px 0 4px}.error{color:var(--error);font-size:13px;margin-top:12px}.shell{max-width:1120px;margin:0 auto;padding:24px}.topbar{display:flex;align-items:center;gap:20px;margin-bottom:24px}.topbar h1{font-size:18px}.nav{display:flex;gap:16px;flex:1}.nav a{color:var(--text-sec);font-size:14px;font-weight:500;padding:6px 0;border-bottom:2px solid transparent}.nav a.active{color:var(--text);border-bottom-color:var(--primary)}.muted{color:var(--text-sec);font-size:13px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px;box-shadow:var(--shadow)}.tile .n{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums}.tile .l{color:var(--text-sec);font-size:13px;margin-top:4px}.table-wrap{overflow-x:auto;margin-top:20px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:start;padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--text-sec);font-weight:600;background:var(--surface-2);position:sticky;top:0}td{font-variant-numeric:tabular-nums}tbody tr:hover{background:var(--surface-2)}tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;line-height:1.6}.badge.ok{color:var(--success);background:var(--success-soft)}.badge.danger{color:var(--secondary);background:var(--secondary-soft)}.badge.warn{color:var(--amber);background:var(--amber-soft)}.badge.brand{color:var(--primary);background:var(--primary-soft)}.badge.neutral{color:var(--text-sec);background:var(--surface-2)}.row-action{padding:5px 12px;font-size:12px;font-weight:600;border-radius:var(--radius-pill);border:1px solid var(--border);background:transparent;color:var(--text)}.row-action.danger{color:var(--secondary);border-color:var(--secondary)}.row-action:disabled{opacity:.4;cursor:default}.pager{display:flex;align-items:center;gap:12px;margin-top:16px}.pager button{width:auto;margin:0;padding:8px 14px;font-size:13px;background:transparent;border:1px solid var(--border);color:var(--text)}.pager button:disabled{opacity:.4;cursor:default}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:grid;place-items:center;padding:24px;z-index:50}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;width:min(92vw,400px);box-shadow:var(--shadow-lg)}.modal h3{margin:0 0 8px;font-size:17px;font-weight:600}.modal p{margin:0 0 20px;color:var(--text-sec);font-size:14px;line-height:1.5}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-actions button{width:auto;margin:0;padding:9px 16px;font-size:14px}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
