:root{--bg0:#070b14;--bg1:#0b1220;--card:#0f1b34;--bd:rgba(170,190,255,.14);--txt:#eaf1ff;--muted:#9fb1d6;--pri:#4f8cff;--pri2:#7c5cff;--good:#22c55e;--bad:#ef4444;--warn:#f59e0b;--shadow:0 18px 55px rgba(0,0,0,.45);--r:18px;--r2:22px}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--txt);background:radial-gradient(1200px 700px at 10% 0%, rgba(79,140,255,.22), transparent 55%),radial-gradient(900px 540px at 90% 10%, rgba(124,92,255,.18), transparent 55%),linear-gradient(180deg,var(--bg1) 0%,var(--bg0) 100%)}
a{color:inherit;text-decoration:none}
.container{max-width:1260px;margin:0 auto;padding:16px}
.hr{height:1px;background:rgba(255,255,255,.08);margin:14px 0}
.small{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.03);color:var(--muted);font-size:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 14px;border-radius:14px;border:0;cursor:pointer;font-weight:900;color:#fff;background:linear-gradient(135deg,var(--pri),var(--pri2));box-shadow:0 10px 30px rgba(79,140,255,.18)}
.btn.secondary{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);color:var(--txt);box-shadow:none}
.btn.danger{background:rgba(239,68,68,.14);border:1px solid rgba(239,68,68,.35);color:#fecaca;box-shadow:none}
.input{width:100%;padding:12px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.10);outline:none;background:rgba(255,255,255,.03);color:var(--txt)}
.input:focus{border-color:rgba(79,140,255,.45);box-shadow:0 0 0 4px rgba(79,140,255,.14)}
.label{display:block;margin:10px 0 6px;font-size:12px;color:var(--muted)}
.card{background:linear-gradient(180deg,rgba(15,27,52,.95),rgba(10,16,34,.95));border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow);padding:16px}
.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:640px}
.table th,.table td{padding:12px;border-bottom:1px solid rgba(255,255,255,.08);font-size:13px;vertical-align:top}
.table th{text-align:left;color:#b9c9ea;font-size:12px;text-transform:uppercase;letter-spacing:.25px}
.alert{padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.03);margin-bottom:12px}
.alert.ok{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.10);color:#bbf7d0}
.alert.err{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.10);color:#fecaca}
.app{display:flex;min-height:100vh}
.sidebar{width:300px;flex:0 0 300px;padding:16px;position:sticky;top:0;height:100vh}
.sidecard{height:calc(100vh - 32px);background:linear-gradient(180deg,rgba(15,27,52,.92),rgba(10,16,34,.92));border:1px solid var(--bd);border-radius:var(--r2);box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;gap:14px}
.brand{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.brand .logo{width:44px;height:44px;border-radius:16px;background:linear-gradient(135deg,var(--pri),var(--pri2));display:flex;align-items:center;justify-content:center;font-weight:950}
.brand .title{font-weight:950}.brand .sub{font-size:12px;color:var(--muted);margin-top:2px}
.nav{display:flex;flex-direction:column;gap:8px}
.nav a{padding:12px;border-radius:16px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:space-between;font-size:14px}
.nav a.active{background:rgba(79,140,255,.18);border-color:rgba(79,140,255,.35)}
.badge{font-size:12px;padding:2px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.10);color:var(--muted);background:rgba(255,255,255,.03)}
.main{flex:1 1 auto;padding:16px 16px 60px}
.mobilebar{display:none}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.page-title{font-size:18px;font-weight:950}.page-subtitle{font-size:12px;color:var(--muted);margin-top:3px}
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}
.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}
.kpi{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.kpi .k{font-size:12px;color:var(--muted)}.kpi .v{font-size:28px;font-weight:950;margin-top:6px}
.auth{min-height:100vh;display:grid;place-items:center;padding:16px}
.authcard{width:100%;max-width:520px;border-radius:26px;padding:18px;background:linear-gradient(180deg,rgba(15,27,52,.96),rgba(10,16,34,.96));border:1px solid var(--bd);box-shadow:var(--shadow)}
@media (max-width:980px){.sidebar{position:fixed;left:0;top:0;transform:translateX(-110%);transition:.22s ease;z-index:50;width:86vw;max-width:360px}.sidebar.open{transform:translateX(0)}.main{padding:14px}.mobilebar{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:10;padding:10px 12px;border-radius:18px;margin-bottom:12px;background:rgba(10,16,34,.72);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08)}.col-4,.col-6,.col-8{grid-column:span 12}.table{min-width:520px}}
