:root{
  --brand:#0d3b66; /* corporate blue */
  --brand2:#1f6feb;
  --bg:#f6f7fb;
  --card:#ffffff;
  --muted:#6b7280;
  --sidebar:#0b1220;
  --sidebar2:#0f172a;
  --border:rgba(15,23,42,.08);
}
html,body{height:100%;}
body{background:var(--bg);}
.app-shell{min-height:100vh;}
.sidebar{
  background:linear-gradient(180deg,var(--sidebar) 0%, var(--sidebar2) 100%);
  color:#fff;
}
.sidebar .brand{
  display:flex; align-items:center; gap:10px;
  padding:14px 16px; border-bottom:1px solid rgba(255,255,255,.08);
}
.brand-logo{
  width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.brand-logo img{width:100%;height:100%;object-fit:contain;background:#fff;}
.brand-title{font-weight:700;line-height:1.1;}
.brand-sub{font-size:.8rem;opacity:.8;}
.sidebar .nav-link{color:rgba(255,255,255,.82);border-radius:12px;padding:10px 12px;}
.sidebar .nav-link:hover{background:rgba(255,255,255,.08);color:#fff;}
.sidebar .nav-link.active{background:rgba(255,255,255,.12);color:#fff;font-weight:600;}
.topbar{
  background:rgba(255,255,255,.7); backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--border);
}
.card{
  border:0; border-radius:16px; box-shadow:0 6px 24px rgba(15,23,42,.06);
}
.kpi-card{border-radius:16px;}
.kpi-label{color:var(--muted);font-size:.82rem;}
.kpi-value{font-size:1.55rem;font-weight:800;letter-spacing:-.02em;}
.kpi-icon{
  width:42px;height:42px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(13,59,102,.10); color:var(--brand);
}
.section-title{font-weight:800;letter-spacing:-.02em;}
.chart-box{height:320px;}
.chart-box.tall{height:360px;}
@media (max-width: 992px){
  .chart-box{height:300px;}
}
