/* ── Reset & Base ── */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --primary:#1e3a5f;--primary-light:#2f5496;--accent:#0ea5e9;
  --success:#22c55e;--warning:#f59e0b;--danger:#ef4444;
  --bg:#f1f5f9;--card:#fff;--text:#1e293b;--muted:#64748b;
  --border:#e2e8f0;--radius:8px;--shadow:0 1px 3px rgba(0,0,0,.1);
}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px;min-height:100vh}
a{color:var(--accent);text-decoration:none}

/* ── Layout ── */
.topbar{background:var(--primary);color:#fff;padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}
.topbar h1{font-size:18px;font-weight:600}
.topbar nav{display:flex;gap:6px}
.topbar nav a{color:rgba(255,255,255,.8);padding:8px 14px;border-radius:var(--radius);font-size:13px;transition:.2s}
.topbar nav a:hover,.topbar nav a.active{background:rgba(255,255,255,.15);color:#fff}
.topbar .user-info{font-size:12px;color:rgba(255,255,255,.6);margin-left:16px}
.topbar .btn-logout{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;padding:6px 12px;border-radius:var(--radius);cursor:pointer;font-size:12px}
.container{max-width:1280px;margin:0 auto;padding:20px 24px}

/* ── Cards ── */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}
.card{background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border-left:4px solid var(--primary)}
.card.success{border-left-color:var(--success)}.card.warning{border-left-color:var(--warning)}.card.danger{border-left-color:var(--danger)}.card.accent{border-left-color:var(--accent)}
.card h3{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.5px;margin-bottom:4px}
.card .value{font-size:28px;font-weight:700}
.card .sub{font-size:12px;color:var(--muted);margin-top:4px}

/* ── Tables ── */
.table-wrap{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto;margin-bottom:24px}
table{width:100%;border-collapse:collapse;font-size:13px}
th{background:#f8fafc;color:var(--muted);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.5px;padding:12px 14px;text-align:left;border-bottom:2px solid var(--border);white-space:nowrap}
td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
tr:hover td{background:#f8fafc}
.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600}
.badge-green{background:#dcfce7;color:#166534}.badge-red{background:#fee2e2;color:#991b1b}.badge-yellow{background:#fef9c3;color:#854d0e}.badge-blue{background:#dbeafe;color:#1e40af}.badge-gray{background:#f1f5f9;color:#475569}

/* ── Forms & Filters ── */
.filters{background:var(--card);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow);margin-bottom:20px;display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--muted);letter-spacing:.5px}
input,select{border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;font-size:13px;outline:none;transition:.2s}
input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.15)}
.btn{padding:8px 18px;border-radius:var(--radius);border:none;font-size:13px;font-weight:600;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:6px}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-light)}
.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:#0284c7}
.btn-success{background:var(--success);color:#fff}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-outline:hover{background:#f8fafc}
.btn-sm{padding:5px 12px;font-size:12px}

/* ── Chart area ── */
.chart-container{background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:24px}
.chart-container h2{font-size:15px;font-weight:600;margin-bottom:12px}

/* ── Section headers ── */
.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.section-header h2{font-size:18px;font-weight:600}

/* ── Modal/detail panel ── */
.detail-panel{background:var(--card);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin-bottom:24px;display:none}
.detail-panel.open{display:block}
.detail-panel h2{font-size:16px;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--border)}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}
.detail-item{font-size:13px}.detail-item label{font-weight:600;color:var(--muted);font-size:11px;display:block;margin-bottom:2px;text-transform:uppercase}

/* ── Login ── */
.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%)}
.login-box{background:#fff;border-radius:12px;padding:40px;width:360px;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.login-box h1{text-align:center;margin-bottom:8px;color:var(--primary);font-size:22px}
.login-box p{text-align:center;color:var(--muted);margin-bottom:24px;font-size:13px}
.login-box .field{margin-bottom:16px}
.login-box input{width:100%;padding:12px}
.login-box .btn{width:100%;padding:12px;font-size:15px;justify-content:center}
.login-error{color:var(--danger);font-size:13px;text-align:center;margin-bottom:12px;display:none}

/* ── Pagination ── */
.pagination{display:flex;justify-content:center;gap:4px;margin-top:16px}
.pagination button{padding:6px 12px;border:1px solid var(--border);background:#fff;border-radius:var(--radius);cursor:pointer;font-size:12px}
.pagination button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pagination button:disabled{opacity:.4;cursor:default}

/* ── Loading ── */
.loading{text-align:center;padding:40px;color:var(--muted)}

/* ── Responsive ── */
@media(max-width:768px){
  .topbar{padding:0 12px}.topbar h1{font-size:15px}.topbar nav a{padding:6px 10px;font-size:12px}
  .container{padding:12px}.cards{grid-template-columns:1fr 1fr}.filters{flex-direction:column}
  .detail-grid{grid-template-columns:1fr}
}
@media(max-width:480px){.cards{grid-template-columns:1fr}.topbar nav{display:none}}
