:root{color:#12203a;--navy:#071633;--navy-soft:#10244a;--orange:#ff6a12;--orange-dark:#e25500;--line:#e3ebf6;--muted:#66758c;--card:#fff;--ok:#128a4e;--danger:#b42318;background:#eef3fb;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:#1558c0}h1,h2,p{margin:0}.login-screen{grid-template-columns:minmax(16rem,.9fr) minmax(20rem,1.1fr);min-height:100vh;display:grid}.login-hero{color:#f7fbff;background:radial-gradient(circle at 18% 88%,#ff8a2a8c,#0000 26%),radial-gradient(circle at 78% 100%,#5ca8ff66,#0000 30%),linear-gradient(#071633 0%,#0c2b62 58%,#16427f 100%);flex-direction:column;justify-content:flex-end;gap:1rem;padding:2.5rem;display:flex}.login-hero .brand-mark{width:min(18rem,100%);margin-bottom:auto}.login-hero h1{max-width:16rem;font-size:1.7rem;line-height:1.25}.eyebrow{color:#d5e4fb;letter-spacing:.14em;text-transform:uppercase;font-size:.75rem}.login-panel{background:radial-gradient(circle at 100% 0,#50a0ff29,#0000 28%),#f8fbff;align-content:center;justify-items:center;gap:.7rem;padding:2rem 1.5rem;display:grid}.login-panel .brand-mark{width:11rem}.login-panel h2{font-size:1.7rem}.login-copy,.panel-head p,.muted{color:var(--muted)}.login-panel form,.gate form,.gate label,.inline-form label{gap:.4rem;display:grid}.login-panel form{gap:.9rem;width:min(26rem,100%)}.gate{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:24px;width:min(28rem,100% - 2rem);margin:8vh auto;padding:2rem 1.5rem;box-shadow:0 16px 40px #10244a14}.gate h1{margin-top:.8rem}.lock{width:4.5rem;height:4.5rem;color:var(--orange);background:#fff1e8;border-radius:999px;place-items:center;margin:0 auto;font-size:1.6rem;display:grid}input,select,button{font:inherit}input,select{width:100%;color:inherit;background:#fff;border:1px solid #d5e0ef;border-radius:12px;padding:.7rem .8rem}button,.button{color:#fff;background:var(--orange);cursor:pointer;border:0;border-radius:12px;padding:.72rem 1rem;text-decoration:none;display:inline-block}button:hover,.button:hover{background:var(--orange-dark)}button:disabled{cursor:wait;opacity:.7}.ghost{color:#17315c;background:#fff;border:1px solid #d5e0ef}.ghost:hover{background:#f4f7fb}[role=alert]{color:var(--danger)}.shell{grid-template-columns:15.5rem 1fr;min-height:100vh;display:grid}aside{color:#f7f9fb;background:linear-gradient(#081735 0%,#07122c 100%);flex-direction:column;gap:1.2rem;padding:1.1rem .8rem;display:flex}.brand-link{padding:.2rem .45rem;display:block}.brand-mark{width:100%;height:auto;display:block}aside nav ul{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}aside a{color:#d7e4f8;border-radius:12px;align-items:center;gap:.65rem;padding:.62rem .75rem;text-decoration:none;display:flex}aside a:hover{background:#ffffff0f}aside a[aria-current=page]{color:#fff;background:var(--orange);font-weight:700}.nav-icon{flex:none;width:1.05rem;height:1.05rem}.content{grid-template-rows:auto 1fr;min-width:0;display:grid}.realtime-bar{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-right:auto;display:flex}.realtime-status[data-state=connected]{color:var(--ok)}.realtime-status[data-state=reconnecting]{color:var(--orange-dark)}.realtime-status[data-state=offline]{color:var(--danger)}.bell-count{color:var(--orange-dark);margin-left:.35rem}.notice-list{gap:.6rem;min-width:16rem;padding:.75rem;display:grid}.topbar{border-bottom:1px solid var(--line);background:#ffffffeb;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.8rem 1rem;padding:.85rem 1.25rem;display:flex}.identity,.session-meta,.topbar label,.inline-form,td form{flex-wrap:wrap;align-items:center;gap:.45rem .6rem;display:flex}.inline-form{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1rem}.identity{margin-right:auto}.avatar{color:#fff;background:#1558c0;border-radius:999px;place-items:center;width:2.3rem;height:2.3rem;font-size:.78rem;font-weight:700;display:grid}.identity strong,.session-meta strong{display:block}.identity span,.session-meta span,.topbar label{color:var(--muted);font-size:.92rem}.topbar select{width:auto;min-width:11rem}main{padding:1.25rem}.panel{gap:1rem;display:grid}.panel-head{gap:.25rem;display:grid}.panel-head h1,.login-panel h2{color:#10203d}.stats,.panel dl{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.8rem;display:grid}.stats div,.panel dl div,.surface{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:0 8px 24px #10244a0a}.stats dt,.panel dt{color:var(--muted);font-size:.85rem;font-weight:600}.stats dd,.panel dd{margin:.35rem 0 0;font-size:1.15rem;font-weight:700}.chips{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.chips li{color:#1558c0;background:#e8f1ff;border-radius:999px;padding:.28rem .55rem;font-size:.82rem}.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:auto}table{border-collapse:collapse;background:0 0;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:.7rem .8rem}th{color:var(--muted);font-size:.82rem;font-weight:700}td form select,.inline-form select,.inline-form input,td form button,.inline-form button{width:auto}.actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}@media (max-width:860px){.login-screen,.shell{grid-template-columns:1fr}.login-hero{min-height:16rem}aside nav ul{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr))}.identity{margin-right:0}}.user-menu{margin-right:auto}.user-menu summary{cursor:pointer;align-items:center;gap:.6rem;list-style:none;display:flex}.user-menu summary::-webkit-details-marker{display:none}.user-menu summary span,.user-menu-panel p{color:var(--muted);font-size:.92rem}.user-menu-panel{background:var(--card);border:1px solid var(--line);border-radius:16px;gap:.7rem;width:min(22rem,80vw);margin-top:.6rem;padding:.9rem;display:grid;box-shadow:0 12px 32px #0716331f}.notice{color:#8a3b00;background:#fff4ec;border:1px solid #ffd0b0;border-radius:12px;padding:.8rem 1rem}.status-ok{color:var(--ok);font-weight:700}.status-warn{color:var(--orange-dark);font-weight:700}.status-bad{color:var(--danger);font-weight:700}.stack{gap:1rem;display:grid}.filter-bar{flex-wrap:wrap;align-items:end;gap:.6rem;display:flex}.filter-bar label{color:var(--muted);gap:.3rem;font-size:.85rem;display:grid}.filter-bar input,.filter-bar select{width:auto;min-width:10rem}
