/* Stable SPA shell fallback. Keep this file independent from Vite's hashed
   bundle so Django pages never render with raw navigation during an asset
   rollover or while a local service worker is being cleared. */
:root {
  --bb-brand: #009fff;
  --bb-brand-hover: #0088dd;
  --bb-bg: #f7f9fc;
  --bb-surface: #fff;
  --bb-surface-muted: #f8fafc;
  --bb-surface-hover: #f1f6fb;
  --bb-text: #172033;
  --bb-text-muted: #64748b;
  --bb-text-subtle: #94a3b8;
  --bb-line: #e2e8f0;
  --bb-line-subtle: #edf1f5;
  --sidebar-width: 232px;
  --topbar-height: 54px;
  --radius-sm: 6px;
  --radius-md: 9px;
  --shadow-panel: 0 1px 2px rgba(15,23,42,.04), 0 8px 24px rgba(15,23,42,.035);
}
[data-bs-theme="dark"] {
  --bb-bg: #0b0f14;
  --bb-surface: #111820;
  --bb-surface-muted: #151d26;
  --bb-surface-hover: #1a2530;
  --bb-text: #e6edf3;
  --bb-text-muted: #9aa7b5;
  --bb-text-subtle: #718096;
  --bb-line: #2a3542;
  --bb-line-subtle: #202a35;
  --shadow-panel: 0 1px 2px rgba(0,0,0,.22);
}
html, body { margin: 0; min-width: 0; overflow-x: hidden; background: var(--bb-bg); }
#app { min-height: 100vh; color: var(--bb-text); }
.bb-app__layout { display: flex; min-width: 0; padding-top: var(--topbar-height); }
.bb-topbar { position: fixed; inset: 0 0 auto; z-index: 1030; height: var(--topbar-height); display: flex; align-items: center; gap: 12px; padding: 0 16px; background: var(--bb-surface); border-bottom: 1px solid var(--bb-line); }
.bb-topbar__brand { display: inline-flex; align-items: center; flex: 0 0 auto; text-decoration: none; }
.bb-topbar__brand .logo-area { display: inline-flex; align-items: center; gap: 8px; }
.bb-topbar__brand .logo-icon { width: 24px; height: 24px; }
.bb-topbar__brand .logo-text { color: var(--bb-text) !important; font-weight: 700; font-size: 1.08rem; }
.bb-searchbox { display: flex; align-items: center; width: min(380px, 34vw); height: 32px; margin-left: 12px; padding: 0 10px; border: 1px solid var(--bb-line); border-radius: var(--radius-sm); background: var(--bb-surface-muted); }
.bb-searchbox__input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; color: var(--bb-text); }
.bb-topbar__quick-actions, .bb-topbar__actions { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.bb-sidebar-col { position: fixed; inset: var(--topbar-height) auto 0 0; z-index: 1020; width: var(--sidebar-width); overflow: auto; background: var(--bb-surface); border-right: 1px solid var(--bb-line); }
.bb-main--has-sidebar { width: calc(100% - var(--sidebar-width)); margin-left: var(--sidebar-width); min-width: 0; }
.bbw-workspace-switcher { position: sticky; top: var(--topbar-height); z-index: 1019; display: flex; align-items: center; min-height: 42px; padding: 0 20px; background: color-mix(in srgb, var(--bb-surface) 96%, transparent); border-bottom: 1px solid var(--bb-line); }
.bb-sidebar-item { display: flex; align-items: center; min-height: 36px; padding: 7px 9px; color: var(--bb-text-muted); text-decoration: none; }
.bb-sidebar-item--active { color: var(--bb-brand); background: rgba(0,159,255,.12); }
.dropdown-menu:not(.show) { display: none; }
.bb-topbar__quick-actions .dropdown-menu, .bb-topbar__actions .dropdown-menu { position: absolute; }
.bb-page { min-height: calc(100dvh - var(--topbar-height)); padding: 20px 24px 48px; background: var(--bb-bg); }
.bb-page__inner { max-width: 1320px; margin-inline: auto; }
.bb-page-header__title, .crs-hero__title, .rmap-hero__title, .rmap-stage-title { color: var(--bb-text); }
.card, .bb-card, .crs-panel, .crs-hero, .crs-sidebar-card, .rmap-hero, .rmap-stage-head, .rmap-topic-card { border-color: var(--bb-line); border-radius: var(--radius-md); box-shadow: var(--shadow-panel); }
.crs-hero, .crs-panel, .crs-sidebar-card, .rmap-hero, .rmap-stage-head, .rmap-topic-card { background: var(--bb-surface); }
.crs-hero__desc p, .crs-panel p, .crs-sidebar-card, .rmap-hero__desc, .rmap-stage-desc { color: var(--bb-text-muted); }
.crs-tabs { top: calc(var(--topbar-height) + 10px); background: var(--bb-surface); border-color: var(--bb-line); }
.rmap-hero { margin-top: 2px; padding: 20px 22px; }
.rmap-roadmap-content { grid-template-columns: 188px minmax(0, 1fr); gap: 16px; }
.rmap-stage-head { padding: 14px 16px; }
.rmap-topics { gap: 10px; }
.rmap-topic-card .card-body { padding: 14px; }
@media (max-width: 991.98px) {
  :root { --topbar-height: 50px; }
  .bb-sidebar-col { display: none !important; }
  .bb-main--has-sidebar { width: 100%; margin-left: 0; }
  .bb-searchbox { display: none; }
  .rmap-roadmap-content { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .bb-page { padding-inline: 0; }
  .bb-page__inner { padding-inline: 12px; }
}
