:root{
  --primary:#0D3B6E; --primary-dark:#082A52; --accent:#E8A000;
  --success:#1B7F4F; --success-bg:#E8F5EF; --danger:#C0392B; --danger-bg:#FDEDEC;
  --warn:#D4750A; --warn-bg:#FEF3E2; --bg:#F4F6FA; --surface:#fff;
  --text:#0F1923; --muted:#6B7785; --border:#D8DDE8;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
.topbar{background:var(--primary);color:#fff;padding:14px 24px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:10}
.logo{background:var(--accent);color:var(--primary);font-weight:800;font-size:13px;padding:4px 9px;border-radius:6px}
.topbar h1{font-size:16px;font-weight:600;flex:1}
.layout{display:grid;grid-template-columns:200px 1fr;min-height:calc(100vh - 52px)}
.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:16px 0}
.nav-item{padding:10px 20px;color:var(--muted);cursor:pointer;font-weight:500;border-left:3px solid transparent}
.nav-item.active{color:var(--primary);background:#EEF2FF;border-left-color:var(--primary)}
.nav-item:hover{background:#FAFBFC}
.content{padding:24px;overflow-x:auto}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:24px}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px}
.stat-val{font-size:24px;font-weight:700}
.stat-lbl{font-size:12px;color:var(--muted);margin-top:4px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:20px}
.card-title{font-size:15px;font-weight:600;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}
table{width:100%;border-collapse:collapse;min-width:600px}
th{text-align:left;font-size:11px;text-transform:uppercase;color:var(--muted);padding:8px;border-bottom:1px solid var(--border);white-space:nowrap}
td{padding:10px 8px;border-bottom:1px solid var(--border);font-size:13px;white-space:nowrap}
tr:hover td{background:#FAFBFC}
.badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:10px}
.badge-ok{background:var(--success-bg);color:var(--success)}
.badge-warn{background:var(--warn-bg);color:var(--warn)}
.badge-err{background:var(--danger-bg);color:var(--danger)}
.btn{background:var(--primary);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-weight:600;cursor:pointer;font-size:13px}
.btn:hover{background:var(--primary-dark)}
.btn-danger{background:var(--danger)}
.btn-gray{background:#8a93a1}
.btn-sm{padding:5px 10px;font-size:12px}
input,select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;margin-bottom:10px;font-family:inherit}
label{font-size:12px;font-weight:600;display:block;margin-bottom:4px;color:var(--muted)}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal-bg.show{display:flex}
.modal{background:#fff;border-radius:10px;padding:24px;width:440px;max-height:85vh;overflow-y:auto}
.modal h3{margin-bottom:16px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,var(--primary),var(--primary-dark))}
.login-box{background:#fff;border-radius:14px;padding:32px;width:340px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.hidden{display:none !important}
#toast{position:fixed;bottom:20px;right:20px;background:var(--success);color:#fff;padding:10px 18px;border-radius:8px;display:none;font-weight:600;box-shadow:0 4px 14px rgba(0,0,0,.25);z-index:200}
#toast.err{background:var(--danger)}
code{background:#F1F3F6;padding:2px 6px;border-radius:4px;font-size:12px}
.empty-row td{text-align:center;color:var(--muted);padding:24px}
.spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp 0.7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
