        /* ════════════════════════════════════════════════════════════════════
           AURORA DESIGN SYSTEM — PruneOps
           ════════════════════════════════════════════════════════════════════ */
        :root {
            --sidebar-width: 268px;

            /* Brand palette */
            --brand-50:#eef2ff; --brand-100:#e0e7ff; --brand-200:#c7d2fe;
            --brand-300:#a5b4fc; --brand-400:#818cf8; --brand-500:#6366f1;
            --brand-600:#4f46e5; --brand-700:#4338ca; --brand-800:#3730a3;
            --violet-500:#8b5cf6; --violet-600:#7c3aed;

            /* Gradients */
            --grad-brand: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
            --grad-brand-soft: linear-gradient(135deg, rgba(99,102,241,.12), rgba(139,92,246,.12));
            --grad-emerald: linear-gradient(135deg, #10b981, #34d399);
            --grad-amber: linear-gradient(135deg, #f59e0b, #fbbf24);
            --grad-rose: linear-gradient(135deg, #f43f5e, #fb7185);
            --grad-sky: linear-gradient(135deg, #0ea5e9, #38bdf8);

            /* Surfaces (light) */
            --surface: #f5f6fb;
            --card-bg: #ffffff;
            --card-bg-soft: #f8fafc;
            --card-border: rgba(15, 23, 42, 0.07);
            --card-border-hover: rgba(99, 102, 241, 0.30);
            --ink: #0f172a;
            --ink-soft: #475569;
            --ink-muted: #5b6779;
            --hairline: rgba(15, 23, 42, 0.08);

            /* Sidebar */
            --sb-bg: linear-gradient(180deg, #0f172a 0%, #1e1b4b 55%, #312e81 100%);
            --sb-link: rgba(226, 232, 240, .68);
            --sb-link-hover-bg: rgba(255,255,255,.07);
            --sb-active-bg: linear-gradient(135deg, rgba(99,102,241,.28), rgba(139,92,246,.22));
            --sb-divider: rgba(255,255,255,.07);

            /* Shadows */
            --shadow-xs: 0 1px 2px rgba(15,23,42,.04);
            --shadow-sm: 0 1px 3px rgba(15,23,42,.06), 0 1px 2px rgba(15,23,42,.04);
            --shadow: 0 6px 18px -6px rgba(15,23,42,.12), 0 2px 6px -2px rgba(15,23,42,.05);
            --shadow-lg: 0 24px 48px -16px rgba(15,23,42,.22), 0 8px 16px -8px rgba(15,23,42,.08);
            --shadow-brand: 0 10px 28px -8px rgba(99,102,241,.45);

            /* Radii */
            --r-sm: 9px; --r: 16px; --r-lg: 22px; --r-pill: 999px;

            --ease: cubic-bezier(.4, 0, .2, 1);
        }

        /* ── Dark mode ─────────────────────────────────────────────────────── */
        .dark-mode {
            --surface: #080c18;
            --card-bg: #111827;
            --card-bg-soft: #0f1626;
            --card-border: rgba(255,255,255,.07);
            --card-border-hover: rgba(129,140,248,.45);
            --ink: #f1f5f9;
            --ink-soft: #cbd5e1;
            --ink-muted: #94a3b8;
            --hairline: rgba(255,255,255,.08);
            --sb-bg: linear-gradient(180deg, #05070f 0%, #0f0a24 55%, #1a1438 100%);
            --shadow: 0 6px 18px -6px rgba(0,0,0,.55), 0 2px 6px -2px rgba(0,0,0,.4);
            --shadow-lg: 0 24px 48px -16px rgba(0,0,0,.7);
            --bs-body-bg: #080c18;
            --bs-body-color: #f1f5f9;
            --bs-body-bg-rgb: 8, 12, 24;
        }
        .dark-mode .bg-light,
        .dark-mode .bg-white { background-color: var(--card-bg-soft) !important; }
        .dark-mode .text-dark { color: var(--ink) !important; }
        .dark-mode .text-muted { color: var(--ink-muted) !important; }
        .dark-mode .border-light-subtle,
        .dark-mode .border-bottom { border-color: var(--hairline) !important; }
        .dark-mode .alert-light { background-color: var(--card-bg-soft); border-color: var(--hairline); color: var(--ink); }
        .dark-mode .accordion-button,
        .dark-mode .accordion-button.collapsed { background-color: var(--card-bg); color: var(--ink); }
        .dark-mode .accordion-button::after { filter: invert(.8); }
        .dark-mode .accordion-item { background-color: var(--card-bg); }
        .dark-mode code.text-primary,
        .dark-mode .font-monospace.text-primary { color: var(--brand-300) !important; }

        /* ── Base typography ───────────────────────────────────────────────── */
        html, body { max-width: 100%; overflow-x: hidden; }
        body {
            font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
            background-color: var(--surface);
            color: var(--ink);
            -webkit-font-smoothing: antialiased;
            text-rendering: optimizeLegibility;
        }
        body::before {
            content: '';
            position: fixed;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            background:
                radial-gradient(900px 500px at 88% -8%, rgba(139,92,246,.14), transparent 60%),
                radial-gradient(800px 480px at 8% 108%, rgba(99,102,241,.12), transparent 60%);
        }
        h1, h2, h3, h4, h5, h6, .fw-bold { letter-spacing: -.02em; }
        .font-monospace { font-family: 'JetBrains Mono', ui-monospace, monospace; }
        .text-dark { color: var(--ink) !important; }
        .text-muted { color: var(--ink-muted) !important; }

        /* ── Layout shell ──────────────────────────────────────────────────── */
        /* No z-index here: #sidebar-wrapper/#sidebar-overlay are fixed-position
           siblings living outside #wrapper's DOM subtree, but giving #wrapper its
           own stacking context would trap their z-index comparisons inside it,
           making the overlay (z-index 999, a body-level sibling) paint above the
           sidebar (z-index 1000 as authored, but only 1 as rendered) and swallow
           every click on the mobile drawer. */
        #wrapper { display: flex; min-height: 100vh; position: relative; }

        #page-content-wrapper {
            flex: 1;
            min-width: 0; /* flex items default to min-width:auto, which lets
                             intrinsically-wide content (e.g. a Chart.js
                             canvas with many categories) force this column
                             wider than the viewport instead of shrinking */
            margin-left: var(--sidebar-width);
            transition: margin .3s var(--ease);
            min-height: 100vh;
            padding: 1.75rem !important;
            position: relative;
            display: flex;
            flex-direction: column;
        }
        #page-content-wrapper.expanded { margin-left: 76px; }

        /* ── Sidebar ───────────────────────────────────────────────────────── */
        #sidebar-wrapper {
            width: var(--sidebar-width);
            background: var(--sb-bg);
            transition: width .3s var(--ease), margin-left .3s var(--ease);
            position: fixed;
            top: 0;
            bottom: 0;
            overflow-y: auto;
            z-index: 1000;
            box-shadow: 8px 0 32px -12px rgba(15,23,42,.5);
        }
        #sidebar-wrapper::-webkit-scrollbar { width: 6px; }
        #sidebar-wrapper::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); border-radius: 3px; }

        #sidebar-wrapper.collapsed { width: 76px; }
        #sidebar-wrapper.collapsed .sidebar-brand span,
        #sidebar-wrapper.collapsed .sidebar-category,
        #sidebar-wrapper.collapsed .sidebar-link span,
        #sidebar-wrapper.collapsed .footer-link-label { display: none !important; }
        #sidebar-wrapper.collapsed .sidebar-brand { justify-content: center; padding: 1rem 0; }
        #sidebar-wrapper.collapsed .sidebar-toolbar { flex-direction: column; }
        #sidebar-wrapper.collapsed .sidebar-toolbar-btn { width: 100%; }
        #sidebar-wrapper.collapsed .sidebar-link {
            justify-content: center;
            align-items: center;
            width: 44px;
            height: 44px;
            padding: 0;
            margin: 2px auto;
        }
        #sidebar-wrapper.collapsed .sidebar-link i { width: auto; margin-right: 0 !important; }
        #sidebar-wrapper.collapsed .sidebar-footer-row { flex-direction: column; gap: 2px; }
        #sidebar-wrapper.collapsed .sidebar-footer-link {
            justify-content: center;
            padding: .55rem 0;
            width: 100%;
        }
        #sidebar-wrapper.collapsed .sidebar-footer-link .footer-link-extra { display: none; }

        .sidebar-brand-wrapper {
            border-bottom: 1px solid var(--sb-divider);
            padding: 1.05rem 1.5rem !important;
        }
        .sidebar-brand { color: #fff; font-size: 1.05rem; font-weight: 700; gap: .55rem; }
        .sidebar-brand img { filter: drop-shadow(0 2px 6px rgba(99,102,241,.6)); }
        .sidebar-brand span {
            background: linear-gradient(120deg, #fff 30%, #c7d2fe);
            -webkit-background-clip: text; background-clip: text;
            -webkit-text-fill-color: transparent;
        }
        .sidebar-brand:hover { opacity: .9; }

        .sidebar-category {
            font-size: .66rem; font-weight: 700; letter-spacing: .14em;
            color: rgba(148,163,184,.55); text-transform: uppercase;
            padding: .5rem 1rem; margin-top: .35rem;
        }

        .sidebar-link {
            color: var(--sb-link);
            text-decoration: none;
            padding: .62rem .9rem;
            display: flex; align-items: center; gap: .65rem;
            border-radius: var(--r-sm);
            margin: 2px 12px;
            font-size: .875rem; font-weight: 500;
            transition: color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);
            position: relative;
        }
        .sidebar-link:hover { color: #fff; background: var(--sb-link-hover-bg); }
        .sidebar-link i { width: 20px; text-align: center; font-size: 1.02rem; }
        .sidebar-link.active {
            color: #fff;
            background: var(--sb-active-bg);
            box-shadow: inset 0 0 0 1px rgba(129,140,248,.35);
        }
        .hover-white:hover { color: #fff !important; }
        .border-top-2 { border-top-width: 2px !important; }

        /* ── Sidebar toolbar (menu toggle + theme toggle) ──────────────────── */
        .sidebar-toolbar { border-bottom: 1px solid var(--sb-divider); }
        .sidebar-toolbar-btn {
            flex: 1;
            color: var(--sb-link) !important;
            background: transparent !important;
            border: 1px solid var(--sb-divider) !important;
            border-radius: var(--r-sm) !important;
            padding: .5rem 0 !important;
            transition: color .2s var(--ease), background .2s var(--ease) !important;
        }
        .sidebar-toolbar-btn:hover { color: #fff !important; background: var(--sb-link-hover-bg) !important; }

        /* ── Sidebar footer links (org switch / user / admin / logout) ────── */
        .sidebar-footer-row { display: flex; align-items: center; gap: 2px; }
        .sidebar-footer-link {
            color: var(--sb-link);
            text-decoration: none;
            padding: .55rem .9rem;
            display: flex; align-items: center; gap: .65rem;
            border-radius: var(--r-sm);
            font-size: .82rem; font-weight: 500;
            transition: color .2s var(--ease), background .2s var(--ease);
        }
        .sidebar-footer-link:hover { color: #fff; background: var(--sb-link-hover-bg); }
        .sidebar-footer-link.active { color: #fff; background: var(--sb-active-bg); }
        .sidebar-footer-link i { width: 20px; text-align: center; font-size: 1rem; flex-shrink: 0; }
        .sidebar-footer-link .footer-link-extra { margin-left: auto; }
        .sidebar-footer-icon-btn {
            flex-shrink: 0;
            padding: .55rem;
            min-width: 44px;
            min-height: 44px;
            justify-content: center;
        }
        .sidebar-footer-icon-btn i { width: auto; }
        .sidebar-user-card {
            display: flex; align-items: center; gap: .6rem;
            padding: .55rem .9rem;
            border-radius: var(--r-sm);
        }

        /* ── Cards (global restyle) ────────────────────────────────────────── */
        .card {
            background: var(--card-bg);
            border: 1px solid var(--card-border);
            border-radius: var(--r);
            box-shadow: var(--shadow);
            backdrop-filter: blur(10px);
            transition: border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
        }
        .card.border-0 { border: 1px solid var(--card-border); }
        .card-header { border-bottom-color: var(--hairline); }
        .dark-mode { --bs-card-cap-bg: rgba(255,255,255,0.03); }

        /* ── Docs hero (Aurora) ────────────────────────────────────────────── */
        .aurora-hero {
            border-radius: var(--r-lg);
            padding: 2.5rem;
            margin-bottom: 1.5rem;
            color: #fff;
            background:
                radial-gradient(620px 340px at 92% -18%, rgba(139,92,246,.50), transparent 60%),
                radial-gradient(560px 320px at -5% 120%, rgba(99,102,241,.38), transparent 60%),
                linear-gradient(135deg, #0f172a 0%, #1e1b4b 55%, #312e81 100%);
            box-shadow: var(--shadow-lg);
        }
        .dark-mode .aurora-hero {
            background:
                radial-gradient(620px 340px at 92% -18%, rgba(139,92,246,.42), transparent 60%),
                radial-gradient(560px 320px at -5% 120%, rgba(99,102,241,.32), transparent 60%),
                linear-gradient(135deg, #0a0f1e 0%, #15113a 55%, #211a4d 100%);
        }
        .aurora-hero .stat-num { font-size: 1.9rem; font-weight: 800; letter-spacing: -.02em; }
        .aurora-hero a:not(.btn) { color: #c7d2fe; }

        /* ── Buttons ───────────────────────────────────────────────────────── */
        .btn { border-radius: var(--r-sm); font-weight: 600; letter-spacing: -.01em; transition: all .2s var(--ease); }
        .btn-sm { border-radius: 8px; }
        .btn-primary { background: var(--grad-brand); border: none; box-shadow: 0 4px 14px -4px rgba(99,102,241,.55); }
        .btn-primary:hover { box-shadow: 0 8px 22px -4px rgba(99,102,241,.65); transform: translateY(-1px); filter: brightness(1.05); }
        .btn-success { background: var(--grad-emerald); border: none; }
        .btn-warning { background: var(--grad-amber); border: none; color: #422006 !important; }
        .btn-outline-primary { color: var(--brand-600); border-color: rgba(99,102,241,.35); }
        .btn-outline-primary:hover { background: var(--grad-brand); border: none; }
        .btn-outline-info { color: #0284c7; border-color: rgba(14,165,233,.35); }
        .btn-outline-info:hover { background: var(--grad-sky); border: none; color: #fff; }
        .btn-link { font-weight: 600; }

        /* ── Badges (pill refinement) ──────────────────────────────────────── */
        .badge { font-weight: 600; letter-spacing: .01em; border-radius: var(--r-pill); padding: .42em .72em; }
        .badge.rounded-pill { padding: .45em .9em; }

        /* ── Nav tabs (section tabs) ───────────────────────────────────────── */
        .nav-tabs { border: none; gap: .35rem; }
        .nav-tabs .nav-link {
            border: 1px solid transparent !important;
            border-radius: var(--r-sm) !important;
            padding: .6rem 1.15rem !important;
            color: var(--ink-muted) !important;
            font-weight: 600; font-size: .9rem;
            background: transparent;
            transition: all .2s var(--ease);
        }
        .nav-tabs .nav-link:hover { color: var(--ink) !important; background: var(--card-bg-soft); }
        .nav-tabs .nav-link.active {
            color: var(--brand-600) !important;
            background: var(--card-bg) !important;
            border-color: var(--card-border) !important;
            box-shadow: var(--shadow-sm);
        }
        /* Marks a top-level tab that expands into a sub-navigation row when
           active (e.g. "Integrations", "Inventory") — signals there's more
           beneath it before the user clicks in. */
        .nav-link-caret { font-size: .65rem; opacity: .55; margin-left: -.15rem; }
        .nav-tabs .nav-link.active .nav-link-caret { opacity: .8; }

        /* ── Nav tabs, sub-navigation variant (second level nested inside one
           top-level tab) — same family as .nav-tabs, scaled down so the
           hierarchy reads at a glance. ────────────────────────────────────── */
        .nav-tabs-sub { border: none; gap: .3rem; margin-top: -.5rem; }
        .nav-tabs-sub .nav-link {
            border: 1px solid transparent !important;
            border-radius: var(--r-sm) !important;
            padding: .4rem .85rem !important;
            color: var(--ink-muted) !important;
            font-weight: 600; font-size: .8rem;
            background: transparent;
            transition: all .2s var(--ease);
        }
        .nav-tabs-sub .nav-link:hover { color: var(--ink) !important; background: var(--card-bg-soft); }
        .nav-tabs-sub .nav-link.active {
            color: var(--brand-600) !important;
            background: var(--card-bg-soft) !important;
            border-color: var(--card-border) !important;
        }

        /* ── Tables ────────────────────────────────────────────────────────── */
        .table { --bs-table-bg: transparent; color: var(--ink); border-color: var(--hairline); margin-bottom: 0; }
        .table > :not(caption) > * > * { padding: .85rem 1rem; }
        .table thead th, .table .table-light th, .table .table-dark th {
            background: var(--card-bg-soft);
            color: var(--ink-muted) !important;
            font-size: .72rem; font-weight: 700; letter-spacing: .06em;
            text-transform: uppercase;
            border-bottom: 1px solid var(--hairline) !important;
            border-top: none !important;
        }
        .table-dark { --bs-table-bg: transparent; background: transparent !important; }
        .table-light { --bs-table-bg: transparent; --bs-table-color: var(--ink-muted); }
        .table-hover > tbody > tr { transition: background .15s var(--ease); }
        .table-hover > tbody > tr:hover > * { --bs-table-accent-bg: var(--brand-50); }
        .dark-mode .table-hover > tbody > tr:hover > * { --bs-table-accent-bg: rgba(99,102,241,.10); }
        .table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-accent-bg: rgba(99,102,241,.025); }
        .min-w-0 { min-width: 0; }
        .table .group-header-row td {
            background: var(--grad-brand-soft) !important;
            border-top: 1px solid var(--hairline);
        }

        /* ── Forms ─────────────────────────────────────────────────────────── */
        .form-control, .form-select {
            border-radius: var(--r-sm);
            border-color: var(--hairline);
            background-color: var(--card-bg);
            color: var(--ink);
            transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
        }
        .form-control:focus, .form-select:focus {
            border-color: var(--brand-400);
            box-shadow: 0 0 0 4px rgba(99,102,241,.15);
            background-color: var(--card-bg);
            color: var(--ink);
        }
        .form-control::placeholder { color: var(--ink-muted); }
        .input-group-text { border-radius: var(--r-sm); border-color: var(--hairline); background: var(--card-bg-soft); color: var(--ink-muted); }

        /* ── Alerts ────────────────────────────────────────────────────────── */
        .alert { border-radius: var(--r); border: 1px solid transparent; font-weight: 500; }

        /* ── Progress ──────────────────────────────────────────────────────── */
        .progress { border-radius: var(--r-pill); background: var(--hairline); }
        .progress-bar { border-radius: var(--r-pill); }

        /* ── Accordion ─────────────────────────────────────────────────────── */
        .accordion-item { border: 1px solid var(--card-border) !important; border-radius: var(--r) !important; overflow: hidden; }
        .accordion-button { font-weight: 600; }

        /* ── Page title block (h4.fw-bold.text-dark used across audit pages) ─ */
        #page-content-wrapper > .d-flex h4.fw-bold { font-size: 1.6rem; font-weight: 800; }

        /* ── Bulk tracking toolbar ─────────────────────────────────────────── */
        .bulk-actions-bar {
            background: var(--grad-brand-soft);
            border-bottom: 1px solid var(--hairline);
            padding: .85rem 1.1rem;
            border-radius: var(--r) var(--r) 0 0;
            display: none;
        }
        .bulk-actions-bar.show { display: flex; align-items: center; gap: .5rem; }

        /* ── Aurora component helpers (used by macros) ─────────────────────── */
        .aurora-hover { transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease); }
        .aurora-hover:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--card-border-hover) !important; }
        .aurora-icon {
            width: 42px; height: 42px; border-radius: 12px;
            display: inline-flex; align-items: center; justify-content: center;
            font-size: 1.2rem; color: #fff; flex-shrink: 0;
            background: var(--grad-brand);
            box-shadow: var(--shadow-brand);
        }
        .aurora-icon.emerald { background: var(--grad-emerald); box-shadow: 0 8px 22px -6px rgba(16,185,129,.5); }
        .aurora-icon.amber   { background: var(--grad-amber);   box-shadow: 0 8px 22px -6px rgba(245,158,11,.5); }
        .aurora-icon.rose    { background: var(--grad-rose);    box-shadow: 0 8px 22px -6px rgba(244,63,94,.5); }
        .aurora-icon.sky     { background: var(--grad-sky);     box-shadow: 0 8px 22px -6px rgba(14,165,233,.5); }
        .aurora-icon.sm { width: 34px; height: 34px; font-size: 1rem; border-radius: 10px; }
        .aurora-top-bar { position: absolute; top: 0; left: 0; right: 0; height: 4px; border-radius: var(--r) var(--r) 0 0; }
        .config-chip { background: var(--card-bg-soft); border: 1px solid var(--hairline); border-radius: 10px; padding: .5rem .65rem; font-size: 11px; }

        /* ── Cached view info bar (absolute top-right, no layout impact) ───── */
        .cache-info-bar {
            position: absolute;
            top: 1.25rem;
            right: 1.75rem;
            z-index: 10;
        }
        @media (max-width: 768px) {
            .cache-info-bar { top: .75rem; right: 1rem; }
        }

        /* ── Stat tile (inline colour-tinted stat block, used by stat_tile macro) ── */
        .stat-tile { border: 1px solid transparent; }        .stat-tile-primary   { background: rgba(99,102,241,.08);  border-color: rgba(99,102,241,.20); }
        .stat-tile-danger    { background: rgba(244,63,94,.08);   border-color: rgba(244,63,94,.20); }
        .stat-tile-warning   { background: rgba(245,158,11,.08);  border-color: rgba(245,158,11,.20); }
        .stat-tile-success   { background: rgba(16,185,129,.08);  border-color: rgba(16,185,129,.20); }
        .stat-tile-info      { background: rgba(14,165,233,.08);  border-color: rgba(14,165,233,.20); }
        .stat-tile-secondary { background: var(--card-bg-soft);   border-color: var(--hairline); }
        .stat-tile-value.text-danger  { color: #fb7185 !important; }
        .stat-tile-value.text-warning { color: #fbbf24 !important; }
        .stat-tile-value.text-success { color: #34d399 !important; }
        .stat-tile-value.text-info    { color: #38bdf8 !important; }
        .dark-mode .stat-tile-value.text-danger  { color: #fda4af !important; }
        .dark-mode .stat-tile-value.text-warning { color: #fcd34d !important; }
        .dark-mode .stat-tile-value.text-success { color: #6ee7b7 !important; }
        .dark-mode .stat-tile-value.text-info    { color: #7dd3fc !important; }

        /* ── Score ring track (used by score_ring macro) ──────────────────── */
        .score-ring-track { stroke: var(--hairline); }

        /* ── Mobile topbar (hidden on desktop) ────────────────────────────── */
        #mobile-topbar { display: none; }

        /* ── Sidebar overlay (mobile drawer backdrop) ───────────────────────── */
        #sidebar-overlay {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(15, 23, 42, .55);
            z-index: 999;
        }
        #sidebar-overlay.show { display: block; }

        /* ── Responsive ────────────────────────────────────────────────────── */
        @media (max-width: 768px) {
            #mobile-topbar {
                display: flex;
                align-items: center;
                gap: .75rem;
                position: sticky;
                top: 0;
                z-index: 900;
                background: var(--card-bg);
                border-bottom: 1px solid var(--hairline);
                padding: .75rem 1rem;
                box-shadow: var(--shadow-sm);
            }
            #mobile-topbar .sidebar-brand span {
                background: linear-gradient(120deg, var(--ink) 30%, var(--brand-500));
                -webkit-background-clip: text; background-clip: text;
                -webkit-text-fill-color: transparent;
            }
            #mobile-topbar-toggle {
                border: 1px solid var(--hairline);
                background: var(--card-bg-soft);
                color: var(--ink);
                width: 40px; height: 40px;
                border-radius: var(--r-sm);
                display: flex; align-items: center; justify-content: center;
                flex-shrink: 0;
            }

            /* Sidebar becomes an off-canvas drawer; collapsed state is ignored.
               Width is fixed at all times (open or closed) and the slide is
               driven purely by transform so the browser can compositor-animate
               it instead of reflowing layout on every frame. */
            #sidebar-wrapper,
            #sidebar-wrapper.collapsed {
                width: min(84vw, var(--sidebar-width));
                margin-left: 0;
                transform: translateX(-100%);
                transition: transform .3s var(--ease);
            }
            #sidebar-wrapper.mobile-open,
            #sidebar-wrapper.collapsed.mobile-open {
                transform: translateX(0);
            }
            #sidebar-wrapper.collapsed .sidebar-brand span,
            #sidebar-wrapper.collapsed.mobile-open .sidebar-brand span,
            #sidebar-wrapper.collapsed .sidebar-category,
            #sidebar-wrapper.collapsed .sidebar-link span,
            #sidebar-wrapper.collapsed .footer-link-label {
                display: revert !important;
            }
            #sidebar-wrapper.collapsed .sidebar-link {
                justify-content: flex-start;
                width: auto; height: auto;
                padding: .62rem .9rem;
                margin: 2px 12px;
            }

            #page-content-wrapper,
            #page-content-wrapper.expanded {
                margin-left: 0;
                padding: 1rem !important;
            }

            .sidebar-toolbar { display: none !important; }

            /* Stat/metric cards stack full width on phones */
            .row.g-4 > [class*="col-"],
            .row.g-3 > [class*="col-"] { margin-bottom: .25rem; }
        }

        @media (max-width: 480px) {
            #page-content-wrapper { padding: .75rem !important; }
            .aurora-hero { padding: 1.5rem; }
            /* Metric/summary cards go full-width on very small phones */
            .row.g-4 > .col-6, .row.g-3 > .col-6 { flex: 0 0 100%; max-width: 100%; }
        }

        /* ── Flash toast overlay ──────────────────────────────────────────── */
        .flash-container {
            position: fixed;
            top: 1rem;
            right: 1rem;
            z-index: 1080;
            max-width: 440px;
            width: calc(100% - 2rem);
        }
        .flash-container .alert {
            animation: flash-in .25s ease-out;
        }
        @keyframes flash-in {
            from { opacity: 0; transform: translateX(1rem); }
            to   { opacity: 1; transform: translateX(0); }
        }

        /* ── Reduced motion ────────────────────────────────────────────────── */
        @media (prefers-reduced-motion: reduce) {
            #page-content-wrapper,
            #sidebar-wrapper {
                transition-duration: .01ms !important;
            }
            .sidebar-link,
            .sidebar-toolbar-btn,
            .sidebar-footer-link,
            .card,
            .btn,
            .nav-tabs .nav-link,
            .table-hover > tbody > tr,
            .form-control,
            .form-select {
                transition-duration: .01ms !important;
            }
            .btn-primary:hover,
            .aurora-hover:hover {
                transform: none !important;
            }
            .flash-container .alert {
                animation: none !important;
            }
        }

        /* ── App footer ────────────────────────────────────────────────────── */
        .app-footer {
            border-top: 1px solid var(--border-color, #e9ecef);
            font-size: .8rem;
        }
        .app-footer .footer-stat {
            display: inline-flex;
            align-items: center;
            gap: .35rem;
        }
        .app-footer .footer-stat i { font-size: .85rem; opacity: .7; }
