:root { --bg:#060912; --surface:#0f1626; --surface-2:#17213a; --border:#1f2a44; --text:#e6ebf5; --muted:#93a0bd; --accent:#1fa2ff; --accent-ink:#021322; --danger:#f87171; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:16px/1.55 system-ui,"Segoe UI",sans-serif; }
a { color:var(--accent); text-decoration:none; }
h1,h2,h3 { line-height:1.2; margin:0 0 .6em; }
.shell { display:grid; grid-template-columns:240px 1fr; min-height:100vh; }
aside { background:var(--surface); border-right:1px solid var(--border); padding:20px; display:flex; flex-direction:column; gap:24px; }
aside nav { display:grid; gap:4px; flex:1; align-content:start; }
aside nav a { padding:9px 12px; border-radius:8px; color:var(--text); }
aside nav a.active { background:var(--surface-2); color:var(--accent); }
.brand { font-weight:800; font-size:1.15rem; } .brand span { color:var(--accent); } .brand small { color:var(--muted); font-weight:400; }
main { padding:28px; } main.empty { padding:0; }
.card { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:20px; margin-bottom:16px; }
.auth-box { max-width:420px; margin:80px auto; }
.grid { display:grid; gap:16px; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); }
.stat { font-size:2rem; font-weight:700; color:var(--accent); }
.btn { display:inline-block; border:0; border-radius:8px; padding:9px 16px; font:inherit; font-weight:600; cursor:pointer; background:var(--accent); color:var(--accent-ink); }
.btn:disabled { opacity:.55; cursor:not-allowed; } .btn.secondary { background:var(--surface-2); color:var(--text); border:1px solid var(--border); }
.btn.danger { background:transparent; color:var(--danger); border:1px solid var(--danger); } .btn.sm { padding:4px 10px; font-size:.85rem; }
.field { display:grid; gap:6px; margin-bottom:14px; } .field label { color:var(--muted); font-size:.9rem; }
input,select,textarea { width:100%; padding:10px 12px; border-radius:8px; border:1px solid var(--border); background:var(--bg); color:var(--text); font:inherit; }
.form-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:0 12px; align-items:end; }
.alert { padding:10px 14px; border-radius:8px; margin-bottom:14px; } .alert.error { background:#3b1620; border:1px solid var(--danger); color:#fecaca; } .alert.success { background:#0f2f27; border:1px solid var(--accent); color:#b6f3e1; }
.muted { color:var(--muted); } .badge { display:inline-block; padding:2px 10px; border-radius:999px; font-size:.78rem; background:var(--surface-2); border:1px solid var(--border); }
table { width:100%; border-collapse:collapse; } th,td { text-align:left; padding:9px 8px; border-bottom:1px solid var(--border); } th { color:var(--muted); font-weight:500; font-size:.85rem; }
#blazor-error-ui { display:none; position:fixed; bottom:0; left:0; right:0; padding:10px 16px; background:#3b1620; }
@media (max-width:760px) { .shell { grid-template-columns:1fr; } }
