:root{--bg:#0b1020;--panel:#111837;--muted:#8fa1c1;--text:#e9efff;--brand:#7aa2ff;--line:#1f2a4d;--accent:#58e1a8;--danger:#ff5c7a;}
*{box-sizing:border-box} html,body{height:100%;margin:0;font-family:system-ui,-apple-system,"Segoe UI",Tahoma,Arial;color:var(--text);background:linear-gradient(180deg,#0b1020,#0e1430 28%,#0b1020);}
a{color:inherit;text-decoration:none}
.layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.sidebar{background:#0d1430;border-inline-end:1px solid var(--line);padding:16px;position:sticky;top:0;height:100vh}
.brand{font-weight:800;font-size:18px;color:#fff;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.brand .logo{height:22px}
.nav{display:flex;flex-direction:column;gap:6px}
.nav-link{padding:10px 12px;border:1px solid transparent;border-radius:12px;color:#d7e3ff}
.nav-link:hover{background:#0f1b46;border-color:#1a2b63}
.nav-link.active{background:#132057;border-color:#26428b}
.sidebar-footer{position:absolute;inset-inline:16px;bottom:16px;display:flex;flex-direction:column;gap:8px}
.btn,.btn-outline{display:inline-block;padding:8px 12px;border-radius:10px;border:1px solid var(--brand);background:var(--brand);color:#04112c;font-weight:700}
.btn:hover{filter:brightness(1.05)} .btn.small{padding:6px 10px;font-size:12px}.btn-outline{background:transparent;color:var(--brand)}
.btn.danger{background:transparent;color:#fff;border-color:var(--danger)}
.content{padding:16px 24px}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.breadcrumbs{opacity:.8}
.search{min-width:240px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#0b1330;color:var(--text)}
.cards{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;margin-bottom:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px}
.card-title{color:var(--muted);font-size:12px}
.card-value{font-weight:900;font-size:28px;color:#fff;margin-top:6px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:14px}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.table{width:100%;border-collapse:collapse}.table thead th{font-weight:700;text-align:right;color:#b7c6e8;border-bottom:1px solid var(--line);padding:8px}
.table tbody td{border-bottom:1px solid var(--line);padding:8px}
.hidden{display:none}
.links li{margin:6px 0}
.form-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.form-row input, .form-row select{flex:1;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#0b1330;color:var(--text)}
.footer{opacity:.6;font-size:12px;margin-top:20px;text-align:center}
.row.gap{display:flex;align-items:center;gap:8px}
.subnav{display:flex;gap:6px;flex-wrap:wrap}
.tview.hidden{display:none}
.badge{padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid #2b3b72;background:#162552;color:#dbe6ff}
.badge.ok{border-color:#1e8f63;background:#0c2e26;color:#bff3e0}
.badge.warn{border-color:#c48f1c;background:#2d220a;color:#ffe6a6}
/* Login */
.login-body{display:flex;align-items:center;justify-content:center;height:100vh;background:linear-gradient(180deg,#0b1020,#0e1430)}
.login-card{width:min(420px,92%);background:#0f1635;border:1px solid #1f2a4d;border-radius:16px;padding:20px;text-align:center}
.login-card .logo{height:28px;margin-bottom:10px}
.muted{color:#a6b5d1}
@media (max-width:1100px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .layout{grid-template-columns:220px 1fr}
}
