:root{
  --navy: #003C8D;
  --navy-dark: #002a63;
  --navy-light: #e8f0fc;
  --accent: #2fbf71;
  --danger: #e5484d;
  --warning: #f5a623;
  --bg: #f4f6fb;
  --card-radius: 14px;
  --shadow-sm: 0 2px 8px rgba(16,24,64,.06);
  --shadow-md: 0 8px 24px rgba(16,24,64,.10);
}

*{box-sizing:border-box;}
body{
  background:var(--bg);
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;
  color:#1f2430;
}

/* ---------- Sidebar ---------- */
.sidebar{
  position:fixed; top:0; left:0; bottom:0; width:250px; z-index:1030;
  background:linear-gradient(180deg,var(--navy) 0%, var(--navy-dark) 100%);
  color:#fff; overflow-y:auto; transition:transform .25s ease;
}
.sidebar .brand{padding:20px 18px; border-bottom:1px solid rgba(255,255,255,.12);}
.sidebar .brand small{opacity:.7; display:block; font-size:11px; letter-spacing:.02em;}
.sidebar .nav-section{font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.55; padding:16px 18px 6px;}
.sidebar a.nav-link{
  color:rgba(255,255,255,.85); padding:9px 18px; font-size:14px; display:flex; align-items:center; gap:10px;
  border-left:3px solid transparent; transition:background .15s ease, border-color .15s ease;
}
.sidebar a.nav-link:hover, .sidebar a.nav-link.active{
  background:rgba(255,255,255,.08); border-left-color:var(--accent); color:#fff;
}
.sidebar a.nav-link i{width:18px; text-align:center; opacity:.9;}

.content-wrap{margin-left:250px; min-height:100vh; transition:margin .25s ease;}
.topbar{
  background:#fff; box-shadow:var(--shadow-sm); padding:12px 24px;
  display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:1020;
}
.main-content{padding:24px;}

@media (max-width: 991px){
  .sidebar{transform:translateX(-100%);}
  .sidebar.show{transform:translateX(0);}
  .content-wrap{margin-left:0;}
}

/* ---------- Cards ---------- */
.card{
  border:none; border-radius:var(--card-radius); box-shadow:var(--shadow-sm);
  transition:transform .18s ease, box-shadow .18s ease;
}
.card.hoverable:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.stat-card{ border-radius:var(--card-radius); padding:20px; color:#fff; box-shadow:var(--shadow-md); }
.stat-card h3{ font-weight:700; margin:6px 0 2px; }
.stat-card .label{ font-size:13px; opacity:.85; }
.stat-card .delta{ font-size:12.5px; color:rgba(255,255,255,.9); font-weight:500; margin-top:6px; line-height:1.4; }
.stat-card .delta-up, .stat-card .delta-down, .stat-card .delta-flat{
  color:#fff; font-weight:700; display:inline-flex; align-items:center; gap:6px;
  background:rgba(0,0,0,.25); padding:4px 12px; border-radius:20px;
}
.bg-navy{ background:linear-gradient(135deg,var(--navy),#0a5cc7); }
.bg-teal{ background:linear-gradient(135deg,#0d9488,#14b8a6); }
.bg-indigo{ background:linear-gradient(135deg,#4338ca,#6366f1); }
.bg-orange{ background:linear-gradient(135deg,#c2410c,#f97316); }
.bg-slate{ background:linear-gradient(135deg,#334155,#475569); }
.bg-rose{ background:linear-gradient(135deg,#9f1239,#e11d48); }

/* ---------- Buttons ---------- */
.btn{ border-radius:9px; transition:all .15s ease; }
.btn-primary{ background:var(--navy); border-color:var(--navy); }
.btn-primary:hover{ background:var(--navy-dark); border-color:var(--navy-dark); transform:translateY(-1px); }

/* ---------- Tables ---------- */
.table thead th{ background:var(--navy-light); color:var(--navy-dark); font-size:12.5px; text-transform:uppercase; letter-spacing:.03em; border-bottom:none;}
.table td, .table th{ vertical-align:middle; }
.table-hover tbody tr:hover{ background:#f6f9ff; }

.badge-status{ padding:5px 10px; border-radius:20px; font-weight:500; }

/* ---------- Login page ---------- */
.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--navy) 0%, #001a42 100%); }
.login-card{ border-radius:18px; box-shadow:0 20px 60px rgba(0,0,0,.35); overflow:hidden; max-width:400px; width:100%; }
.login-card .card-header{ background:#fff; border:none; padding:32px 32px 8px; text-align:center; }
.login-card .card-body{ padding:16px 32px 32px; }

.filter-bar{ background:#fff; border-radius:var(--card-radius); box-shadow:var(--shadow-sm); padding:16px; margin-bottom:20px; }
.section-title{ font-weight:700; color:var(--navy-dark); margin-bottom:2px; }
.text-muted-sm{ font-size:12.5px; color:#8a94a6; }

.delta-up{ color:#0d9488; font-weight:600; }
.delta-down{ color:#e11d48; font-weight:600; }
.delta-flat{ color:#8a94a6; font-weight:600; }

::-webkit-scrollbar{ width:8px; height:8px; }
::-webkit-scrollbar-thumb{ background:#c8d0e0; border-radius:8px; }
