/* Aurora theme: dark rail + fixed topbar + scrollable content well.
   Tokens over Bootstrap. Swap this file (or the active_theme config) to reskin
   the whole platform. Kept deliberately small. */
:root {
  --bs-primary: #4154f1;
  --bs-primary-rgb: 65,84,241;
  --wb-navy: #012970;
  --wb-rail-bg: #0b1727;
  --wb-rail-fg: #c7d0dd;
  --wb-rail-fg-active: #ffffff;
  --wb-rail-active-bg: #16233a;
  --wb-rail-accent: #4154f1;
  --wb-rail-w: 248px;
  --wb-topbar-h: 62px;
  --bs-body-font-family: "Open Sans", system-ui, sans-serif;
  --bs-body-color: #444;
  --bs-body-bg: #f4f6fb;
}
h1,h2,h3,h4,h5,.navbar-brand { font-family: "Nunito", var(--bs-body-font-family); color: var(--wb-navy); }
body { margin:0; background: var(--bs-body-bg); }

/* ── rails ── */
.wb-rail {
  position: fixed; top:0; left:0; bottom:0; width: var(--wb-rail-w);
  background: var(--wb-rail-bg); color: var(--wb-rail-fg);
  display:flex; flex-direction:column; z-index:1030; overflow-y:auto;
}
.wb-rail::-webkit-scrollbar { width:6px; } .wb-rail::-webkit-scrollbar-thumb { background:#233247; border-radius:3px; }
.wb-brand { display:flex; align-items:center; gap:10px; padding:16px 18px; font-family:"Nunito"; font-weight:800; font-size:1.15rem; color:#fff; }
.wb-brand .wb-mark { width:34px; height:34px; border-radius:9px; background:linear-gradient(135deg,#4154f1,#012970); display:flex; align-items:center; justify-content:center; color:#fff; font-size:18px; }
.wb-rail-group { padding:6px 14px; margin-top:8px; font-size:.68rem; letter-spacing:.09em; text-transform:uppercase; color:#5c6b82; }
.wb-rail a.wb-navlink {
  display:flex; align-items:center; gap:11px; padding:9px 18px; color:var(--wb-rail-fg);
  text-decoration:none; font-size:.92rem; border-left:3px solid transparent; transition:background .15s, color .15s, border-color .15s;
}
.wb-rail a.wb-navlink:hover { background:var(--wb-rail-active-bg); color:var(--wb-rail-fg-active); }
.wb-rail a.wb-navlink.active { background:var(--wb-rail-active-bg); color:var(--wb-rail-fg-active); border-left-color:var(--wb-rail-accent); }
.wb-rail a.wb-navlink i { font-size:1.05rem; width:20px; text-align:center; }
.wb-rail-foot { margin-top:auto; padding:12px 18px; border-top:1px solid #1a2740; }

/* ── topbar ── */
.wb-topbar {
  position: fixed; top:0; right:0; left: var(--wb-rail-w); height: var(--wb-topbar-h);
  background:#fff; border-bottom:1px solid #e6ecfb; display:flex; align-items:center;
  gap:16px; padding:0 22px; z-index:1020;
}
.wb-topbar .wb-page-title { font-family:"Nunito"; font-weight:700; color:var(--wb-navy); font-size:1.05rem; }
.wb-topbar .wb-search { flex:1; max-width:420px; }
.wb-topbar .wb-search input { border-radius:9px; background:#f4f6fb; border:1px solid #e6ecfb; }

/* ── content well: the only scrolling region ── */
.wb-content { margin-left: var(--wb-rail-w); padding: calc(var(--wb-topbar-h) + 22px) 26px 40px; min-height:100vh; }

/* ── shared polish ── */
.card { border:1px solid #e6ecfb; border-radius:14px; }
.table thead th { background:#f4f6fb; color:var(--wb-navy); font-size:.85rem; font-weight:600; }
.btn-primary { --bs-btn-bg:#4154f1; --bs-btn-border-color:#4154f1; --bs-btn-hover-bg:#2b3ed9; --bs-btn-hover-border-color:#2b3ed9; }
a { color:#4154f1; text-decoration:none; }
.wb-icon-badge { width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:rgba(65,84,241,.09); color:#4154f1; font-size:22px; }

/* ── animations (opt-in, GPU-cheap: transform/opacity only) ── */
@keyframes wbFade { from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }
.wb-animate { animation: wbFade .28s ease both; }
.wb-animate-2 { animation: wbFade .28s ease .05s both; }
.wb-animate-3 { animation: wbFade .28s ease .10s both; }
.wb-tile { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.wb-tile:hover { transform: translateY(-4px); box-shadow:0 14px 34px rgba(1,41,112,.12); border-color:#c7d4fb; }
@media (max-width: 900px) {
  .wb-rail { transform: translateX(-100%); transition: transform .2s ease; }
  .wb-rail.show { transform:none; }
  .wb-topbar { left:0; } .wb-content { margin-left:0; }
}
