/* iLoveDanceShoes — "Astro" theme layer 
 *
 * Sits on top of Bootstrap 5.3 + dashboard.css + nav.css. Dark by default,
 * light via <html data-bs-theme="light">. Bootstrap's own dark mode handles
 * forms/modals/tables; this file sets the palette and restyles components.
 */

/* ── Tokens ─────────────────────────────────────────────────────── */
:root,
[data-bs-theme="dark"] {
    --ui-bg: #07080f;
    --ui-bg-glow-1: rgba(124, 58, 237, 0.22);
    --ui-bg-glow-2: rgba(34, 211, 238, 0.08);
    --ui-surface: rgba(255, 255, 255, 0.035);
    --ui-surface-2: rgba(255, 255, 255, 0.06);
    --ui-surface-solid: #10121c;
    --ui-border: rgba(255, 255, 255, 0.08);
    --ui-border-strong: rgba(255, 255, 255, 0.14);
    --ui-text: #e7e9f3;
    --ui-muted: #8a8fa8;
    --ui-faint: #5c6179;
    --ui-accent: #a78bfa;
    --ui-accent-strong: #8b5cf6;
    --ui-accent-soft: rgba(139, 92, 246, 0.16);
    --ui-gradient: linear-gradient(135deg, #8b5cf6 0%, #d946ef 55%, #f472b6 100%);
    --ui-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset, 0 12px 32px -12px rgba(0, 0, 0, 0.6);
    --ui-row-hover: rgba(167, 139, 250, 0.06);
    --ui-nav-bg: rgba(7, 8, 15, 0.72);
    --ui-pos: #34d399;
    --ui-neg: #f87171;
    --ui-warn: #fbbf24;

    --bs-body-bg: var(--ui-bg);
    --bs-body-color: var(--ui-text);
    --bs-secondary-color: var(--ui-muted);
    --bs-tertiary-bg: var(--ui-surface-2);
    --bs-border-color: var(--ui-border);
    --bs-emphasis-color: #fff;
    --bs-primary: #8b5cf6;
    --bs-primary-rgb: 139, 92, 246;
    --bs-link-color: var(--ui-accent);
    --bs-link-hover-color: #c4b5fd;
    --bs-link-color-rgb: 167, 139, 250;
    --bs-font-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --bs-border-radius: 10px;
    --bs-border-radius-sm: 8px;
    --bs-border-radius-lg: 14px;
    color-scheme: dark;
}

[data-bs-theme="light"] {
    --ui-bg: #f6f6fb;
    --ui-bg-glow-1: rgba(139, 92, 246, 0.10);
    --ui-bg-glow-2: rgba(34, 211, 238, 0.06);
    --ui-surface: #ffffff;
    --ui-surface-2: #f3f2f9;
    --ui-surface-solid: #ffffff;
    --ui-border: #e7e6f0;
    --ui-border-strong: #d6d4e4;
    --ui-text: #151624;
    --ui-muted: #5f6378;
    --ui-faint: #9a9db0;
    --ui-accent: #6d28d9;
    --ui-accent-strong: #7c3aed;
    --ui-accent-soft: rgba(124, 58, 237, 0.09);
    --ui-shadow: 0 1px 2px rgba(20, 20, 40, 0.04), 0 8px 24px -12px rgba(20, 20, 40, 0.12);
    --ui-row-hover: rgba(124, 58, 237, 0.04);
    --ui-nav-bg: rgba(255, 255, 255, 0.78);
    --ui-pos: #059669;
    --ui-neg: #dc2626;
    --ui-warn: #b45309;

    --bs-body-bg: var(--ui-bg);
    --bs-body-color: var(--ui-text);
    --bs-secondary-color: var(--ui-muted);
    --bs-border-color: var(--ui-border);
    --bs-emphasis-color: #0b0c16;
    --bs-primary: #7c3aed;
    --bs-primary-rgb: 124, 58, 237;
    --bs-link-color: var(--ui-accent);
    --bs-link-hover-color: #5b21b6;
    color-scheme: light;
}

/* ── Base ───────────────────────────────────────────────────────── */
body {
    background-color: var(--ui-bg) !important;
    background-image:
        radial-gradient(900px 480px at 12% -120px, var(--ui-bg-glow-1), transparent 70%),
        radial-gradient(700px 420px at 95% -160px, var(--ui-bg-glow-2), transparent 70%);
    background-attachment: fixed;
    color: var(--ui-text);
    font-family: var(--bs-font-sans-serif);
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "cv11", "ss01";
}
.text-muted { color: var(--ui-muted) !important; }
.num, .text-end, td.text-end { font-variant-numeric: tabular-nums; }

/* ── Top nav (shared nav.js markup, re-skinned) ─────────────────── */
#app-nav { background: transparent; position: sticky; top: 0; z-index: 1030; }
.ilds-nav {
    background: var(--ui-nav-bg);
    backdrop-filter: saturate(160%) blur(14px);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    border-bottom: 1px solid var(--ui-border);
    height: 52px;
    padding: 0 20px;
}
.ilds-nav-items, .ilds-nav-group { height: 52px; display: flex; align-items: center; }
.ilds-nav-brand {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.02em;
    background: var(--ui-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
}
.ilds-nav-btn { color: var(--ui-muted); font-size: 13px; font-weight: 500; border-radius: 8px; height: 34px; margin: 0 1px; }
.ilds-nav-btn:hover, .ilds-nav-btn.open { color: var(--ui-text); background: var(--ui-surface-2); }
.ilds-nav-btn.active { color: var(--ui-text); border-bottom: none; background: var(--ui-accent-soft); }
.ilds-nav-arrow { color: var(--ui-faint); }
.ilds-dropdown, .ilds-notif-panel, .ilds-user-dropdown {
    top: 46px;
    background: var(--ui-surface-solid);
    border: 1px solid var(--ui-border-strong);
    border-radius: 12px;
    box-shadow: 0 20px 48px -16px rgba(0, 0, 0, 0.55);
    margin-top: 4px;
}
.ilds-user-dropdown { top: 44px; }
.ilds-dd-item, .ilds-user-dd-item, .ilds-np-title, .ilds-np-item-title { color: var(--ui-text); }
.ilds-dd-item { margin: 0 6px; border-radius: 8px; }
.ilds-dd-item:hover, .ilds-user-dd-item:hover, .ilds-np-item:hover { background: var(--ui-surface-2); color: var(--ui-text); }
.ilds-dd-section, .ilds-dd-item-sub, .ilds-np-item-time { color: var(--ui-faint); }
.ilds-np-item-sub { color: var(--ui-muted); }
.ilds-np-item.unread { background: var(--ui-accent-soft); }
.ilds-dd-sep, .ilds-np-sep { border-top-color: var(--ui-border); }
.ilds-np-header, .ilds-np-footer { border-color: var(--ui-border); }
.ilds-sync-pill, .ilds-user-name { color: var(--ui-muted); }
.ilds-notif-btn { color: var(--ui-muted); }
.ilds-notif-btn:hover, .ilds-sync-pill:hover, .ilds-user-pill:hover { background: var(--ui-surface-2); color: var(--ui-text); border-color: var(--ui-border); }
.ilds-user-avatar { background: var(--ui-gradient); color: #fff; border: none; }

/* ── Page header ────────────────────────────────────────────────── */
.page-shell { max-width: 1480px; margin: 0 auto; padding: 28px 24px 48px; }
.page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}
.page-eyebrow {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ui-accent);
    margin-bottom: 6px;
}
.page-title {
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin: 0;
    color: var(--bs-emphasis-color);
}
.page-sub { color: var(--ui-muted); margin: 6px 0 0; font-size: 14px; }
.page-actions { display: flex; align-items: center; gap: 10px; }
.page-actions .quarter-select { min-width: 250px; }

.theme-toggle {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    border: 1px solid var(--ui-border-strong);
    background: var(--ui-surface);
    color: var(--ui-muted);
    transition: all 0.15s;
}
.theme-toggle:hover { color: var(--ui-text); border-color: var(--ui-accent); }
[data-bs-theme="dark"] .icon-sun,
[data-bs-theme="light"] .icon-moon { display: none; }
.ilds-theme-btn { margin-right: 2px; }

/* ── Stat tiles (tab summary) ───────────────────────────────────── */
.tab-summary { display: block; font-size: inherit; }
.stat-row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 12px;
    margin: 18px 0 18px;
}
.stat-tile {
    background: var(--ui-surface);
    border: 1px solid var(--ui-border);
    border-radius: 14px;
    padding: 14px 16px;
    box-shadow: var(--ui-shadow);
}
.stat-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--ui-muted);
    margin-bottom: 4px;
}
.stat-value {
    font-size: 22px;
    font-weight: 650;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    color: var(--bs-emphasis-color);
}
.stat-tile.is-primary {
    background:
        linear-gradient(var(--ui-surface-solid), var(--ui-surface-solid)) padding-box,
        var(--ui-gradient) border-box;
    border: 1px solid transparent;
}

/* ── Tabs → segmented control ───────────────────────────────────── */
#sheet-tabs {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 2px;
    padding: 4px;
    border: 1px solid var(--ui-border);
    border-radius: 12px;
    background: var(--ui-surface);
}
#sheet-tabs .nav-link {
    color: var(--ui-muted);
    border: none;
    border-radius: 9px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 500;
    transition: background 0.15s, color 0.15s;
}
#sheet-tabs .nav-link:hover { color: var(--ui-text); background: var(--ui-surface-2); border: none; }
#sheet-tabs .nav-link.active {
    color: var(--bs-emphasis-color);
    background: var(--ui-accent-soft);
    box-shadow: inset 0 0 0 1px rgba(139, 92, 246, 0.35);
    font-weight: 600;
}
.tab-badge.badge {
    background: var(--ui-surface-2) !important;
    color: var(--ui-muted);
    font-weight: 600;
    font-size: 11px;
    border-radius: 999px;
    padding: 3px 7px;
    margin-left: 6px;
}
#sheet-tabs .nav-link.active .tab-badge.badge { background: var(--ui-accent-strong) !important; color: #fff; }

/* ── Filters ────────────────────────────────────────────────────── */
.toolbar { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.filter-bar { gap: 8px; width: 100%; }
.filter-bar select { width: 200px; }
.form-select, .form-control {
    background-color: var(--ui-surface);
    border: 1px solid var(--ui-border-strong);
    color: var(--ui-text);
    border-radius: 10px;
    font-size: 13px;
    min-height: 38px;
}
.form-select:focus, .form-control:focus {
    border-color: var(--ui-accent);
    box-shadow: 0 0 0 3px var(--ui-accent-soft);
    background-color: var(--ui-surface);
    color: var(--ui-text);
}
[data-bs-theme="dark"] .form-select option { background: var(--ui-surface-solid); color: var(--ui-text); }

/* ── Table card ─────────────────────────────────────────────────── */
.table-card {
    background: var(--ui-surface);
    border: 1px solid var(--ui-border);
    border-radius: 16px;
    box-shadow: var(--ui-shadow);
    padding: 6px 0 4px;
    overflow: hidden;
}
.table-card .table-responsive { padding: 0 6px; }
.table {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: transparent;
    --bs-table-hover-bg: var(--ui-row-hover);
    --bs-table-border-color: var(--ui-border);
    --bs-table-color: var(--ui-text);
    --bs-table-hover-color: var(--ui-text);
    --bs-table-striped-color: var(--ui-text);
    margin-bottom: 0;
    font-size: 13.5px;
}
.table > thead > tr > th {
    font-size: 11.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ui-muted);
    background: transparent;
    border-bottom: 1px solid var(--ui-border-strong);
    padding: 12px 10px;
    white-space: nowrap;
}
.table > tbody > tr > td {
    padding: 11px 10px;
    border-bottom-color: var(--ui-border);
    vertical-align: middle;
}
.table > tbody > tr:last-child > td { border-bottom: none; }
.table td.text-end, .table th.text-end { font-variant-numeric: tabular-nums; }
.placeholder-col { color: var(--ui-faint) !important; }

/* DataTables chrome */
div.dt-container { padding: 4px 10px; }
div.dt-container .dt-search input,
div.dt-container .dt-length select {
    background: var(--ui-surface);
    border: 1px solid var(--ui-border-strong);
    border-radius: 10px;
    color: var(--ui-text);
    min-height: 34px;
    padding: 4px 10px;
}
div.dt-container .dt-search input:focus { outline: none; border-color: var(--ui-accent); box-shadow: 0 0 0 3px var(--ui-accent-soft); }
div.dt-container .dt-info, div.dt-container .dt-length, div.dt-container .dt-search label { color: var(--ui-muted); font-size: 12.5px; }
.pagination { --bs-pagination-bg: transparent; --bs-pagination-border-color: transparent; --bs-pagination-color: var(--ui-muted);
    --bs-pagination-hover-bg: var(--ui-surface-2); --bs-pagination-hover-color: var(--ui-text); --bs-pagination-hover-border-color: transparent;
    --bs-pagination-active-bg: var(--ui-accent-soft); --bs-pagination-active-color: var(--bs-emphasis-color); --bs-pagination-active-border-color: rgba(139, 92, 246, 0.35);
    --bs-pagination-disabled-bg: transparent; --bs-pagination-disabled-color: var(--ui-faint); --bs-pagination-disabled-border-color: transparent;
    --bs-pagination-focus-box-shadow: 0 0 0 3px var(--ui-accent-soft); gap: 2px; }
.pagination .page-link { border-radius: 8px !important; font-size: 12.5px; min-width: 32px; text-align: center; }
table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order,
table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order { opacity: 0.6; }

/* ── Pills & chips (dark-friendly versions of dashboard.css) ────── */
.src-badge { border-radius: 999px; font-size: 11.5px; font-weight: 600; padding: 3px 9px; }
[data-bs-theme="dark"] .src-fiona-template      { background: rgba(250, 204, 21, 0.12); color: #fde68a; border-color: rgba(250, 204, 21, 0.28); }
[data-bs-theme="dark"] .src-vendor-lookup       { background: rgba(96, 165, 250, 0.12); color: #bfdbfe; border-color: rgba(96, 165, 250, 0.28); }
[data-bs-theme="dark"] .src-travel-detected     { background: rgba(251, 146, 60, 0.12); color: #fed7aa; border-color: rgba(251, 146, 60, 0.30); }
[data-bs-theme="dark"] .src-heuristic           { background: rgba(148, 163, 184, 0.12); color: #cbd5e1; border-color: rgba(148, 163, 184, 0.26); }
[data-bs-theme="dark"] .src-default             { background: rgba(248, 113, 113, 0.12); color: #fecaca; border-color: rgba(248, 113, 113, 0.30); }
[data-bs-theme="dark"] .src-ai-suggested        { background: rgba(167, 139, 250, 0.14); color: #ddd6fe; border-color: rgba(167, 139, 250, 0.32); }
[data-bs-theme="dark"] .src-internal-transfer   { background: rgba(167, 139, 250, 0.14); color: #ddd6fe; border-color: rgba(167, 139, 250, 0.32); }
[data-bs-theme="dark"] .src-manual-non-taxable  { background: rgba(148, 163, 184, 0.10); color: #e2e8f0; border-color: rgba(148, 163, 184, 0.22); }
[data-bs-theme="dark"] .src-manual-jurisdiction { background: rgba(52, 211, 153, 0.12); color: #a7f3d0; border-color: rgba(52, 211, 153, 0.30); }
[data-bs-theme="dark"] .src-travel-chip { background: rgba(251, 146, 60, 0.10); color: #fdba74; border-color: rgba(251, 146, 60, 0.35); }
[data-bs-theme="dark"] .vendor-hint { background: rgba(250, 204, 21, 0.10); color: #fde68a; border-color: rgba(250, 204, 21, 0.3); }
[data-bs-theme="dark"] .status-icon.status-clear { color: #464b63; }
.status-icon:hover { background-color: var(--ui-surface-2); }
.status-icon.status-flagged { color: var(--ui-neg); }
.status-icon.status-done { color: var(--ui-pos); }
.cat-cell:hover, .vendor-display:hover { border-bottom-color: var(--ui-accent); }
.badge.bg-secondary { background: var(--ui-surface-2) !important; color: var(--ui-muted); }

/* ── Buttons ────────────────────────────────────────────────────── */
.btn { border-radius: 10px; font-weight: 500; font-size: 13.5px; }
.btn-sm { font-size: 12.5px; }
.btn-lg { font-size: 15px; }
.btn-primary {
    --bs-btn-bg: var(--ui-accent-strong);
    --bs-btn-border-color: var(--ui-accent-strong);
    --bs-btn-hover-bg: #7c3aed;
    --bs-btn-hover-border-color: #7c3aed;
    --bs-btn-active-bg: #6d28d9;
    background-image: var(--ui-gradient);
    border: none;
}
.btn-outline-primary {
    --bs-btn-color: var(--ui-accent);
    --bs-btn-border-color: rgba(139, 92, 246, 0.45);
    --bs-btn-hover-bg: var(--ui-accent-soft);
    --bs-btn-hover-color: var(--bs-emphasis-color);
    --bs-btn-hover-border-color: var(--ui-accent);
}

/* ── Modals & toasts ────────────────────────────────────────────── */
.modal-content, .toast {
    background: var(--ui-surface-solid);
    border: 1px solid var(--ui-border-strong);
    border-radius: 16px;
    box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.6);
}
.modal-header, .modal-footer, .toast-header { border-color: var(--ui-border); background: transparent; color: var(--ui-text); }
.modal-backdrop.show { opacity: 0.6; backdrop-filter: blur(2px); }

/* ── Small screens ──────────────────────────────────────────────── */
@media (max-width: 900px) {
    /* nav.js has no mobile menu yet: let the items scroll sideways */
    .ilds-nav { padding: 0 12px; }
    .ilds-nav-brand { margin-right: 12px; }
    .ilds-nav-items { overflow-x: auto; scrollbar-width: none; }
    .ilds-nav-items::-webkit-scrollbar { display: none; }
    .ilds-user-name, .ilds-sync-pill { display: none; }
    /* Fixed positioning escapes the scroll container's clipping; the nav's
       backdrop-filter makes .ilds-nav the containing block, so these pin
       just under the bar. */
    .ilds-dropdown, .ilds-notif-panel { position: fixed; top: 52px; left: 8px; right: 8px; width: auto; min-width: 0; }
}
@media (max-width: 720px) {
    .page-shell { padding: 20px 14px 40px; }
    #sheet-tabs { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; scrollbar-width: none; }
    #sheet-tabs .nav-link { white-space: nowrap; }
    .stat-row { grid-template-columns: repeat(2, 1fr); }
    .page-title { font-size: 24px; }
    .page-actions { width: 100%; }
    .page-actions .quarter-select { flex: 1; min-width: 0; max-width: none; }
    .filter-bar select { width: auto; max-width: none; flex: 1 1 45%; }
}

/* ══ Shared components (all pages) ══════════════════════════════ */

/* Page frame for pages still on .container-fluid */
body > .container-fluid, body > main.container-fluid, body > div.container { max-width: 1480px; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: var(--bs-emphasis-color); letter-spacing: -0.015em; }
h1, .h1 { font-weight: 700; letter-spacing: -0.03em; }
hr { border-color: var(--ui-border); opacity: 1; }
a { text-decoration: none; }
code { color: var(--ui-accent); }

/* Surfaces: cards and the page-specific card classes from dashboard.css */
.card, .kpi-card, .report-card, .review-card, .export-card, .trip-card {
    --bs-card-bg: var(--ui-surface);
    --bs-card-border-color: var(--ui-border);
    --bs-card-cap-bg: transparent;
    background: var(--ui-surface);
    border: 1px solid var(--ui-border) !important;
    border-radius: 14px;
    box-shadow: var(--ui-shadow);
    color: var(--ui-text);
}
.card-header, .card-footer { border-color: var(--ui-border); background: transparent; }
.card-title, .kpi-card .card-title { color: var(--ui-muted); font-weight: 500; }
.kpi-value, .kpi-card .display-6, .kpi-card h3, .kpi-card .h3 { font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.report-card-sub, .report-card-meta, .trip-meta-right, .review-card .review-meta { color: var(--ui-muted); }
.report-card-regen-status pre { background: var(--ui-surface-2); color: var(--ui-text); }
.export-card h6 { color: var(--ui-text); }
.trip-card-header { background: linear-gradient(180deg, rgba(251, 146, 60, 0.08), transparent); border-bottom-color: var(--ui-border); }
.trip-card-header:hover { background: rgba(251, 146, 60, 0.10); }
.trip-rows thead th { background: transparent; color: var(--ui-muted); }
[data-bs-theme="dark"] .trip-rows tr.row-reviewed { background: rgba(52, 211, 153, 0.05); }
[data-bs-theme="dark"] .trip-rows tr.row-personal { background: rgba(251, 146, 60, 0.05); }
[data-bs-theme="dark"] .trip-override-badge { background: rgba(96, 165, 250, 0.12); color: #bfdbfe; border-color: rgba(96, 165, 250, 0.3); }

/* Bootstrap utilities that hardcode light colors */
[data-bs-theme="dark"] .bg-white, [data-bs-theme="dark"] .bg-light { background-color: var(--ui-surface) !important; }
[data-bs-theme="dark"] .text-dark:not(.badge) { color: var(--ui-text) !important; }
[data-bs-theme="dark"] .table-light, [data-bs-theme="dark"] thead.table-light th {
    --bs-table-bg: transparent; --bs-table-color: var(--ui-muted); background: transparent !important; color: var(--ui-muted) !important;
}
.border, .border-top, .border-bottom, .border-start, .border-end { border-color: var(--ui-border) !important; }
.shadow-sm, .shadow { box-shadow: var(--ui-shadow) !important; }

/* Generic tabs on other pages (non-segmented) */
.nav-tabs { --bs-nav-tabs-border-color: var(--ui-border); --bs-nav-tabs-link-active-bg: transparent;
    --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); --bs-nav-tabs-link-active-border-color: transparent transparent var(--ui-accent-strong);
    --bs-nav-tabs-link-hover-border-color: transparent transparent var(--ui-border-strong); }
.nav-tabs .nav-link { color: var(--ui-muted); border-width: 0 0 2px; font-weight: 500; }
.nav-pills { --bs-nav-pills-link-active-bg: var(--ui-accent-soft); --bs-nav-pills-link-active-color: var(--bs-emphasis-color); }
.nav-pills .nav-link { color: var(--ui-muted); border-radius: 9px; }

/* Alerts, list groups, dropdowns, progress */
.alert { border-radius: 12px; border-width: 1px; }
[data-bs-theme="dark"] .alert-info    { background: rgba(34, 211, 238, 0.08);  border-color: rgba(34, 211, 238, 0.25);  color: #a5f3fc; }
[data-bs-theme="dark"] .alert-warning { background: rgba(250, 204, 21, 0.08);  border-color: rgba(250, 204, 21, 0.25);  color: #fde68a; }
[data-bs-theme="dark"] .alert-danger  { background: rgba(248, 113, 113, 0.08); border-color: rgba(248, 113, 113, 0.28); color: #fecaca; }
[data-bs-theme="dark"] .alert-success { background: rgba(52, 211, 153, 0.08);  border-color: rgba(52, 211, 153, 0.25);  color: #a7f3d0; }
[data-bs-theme="dark"] .alert-secondary, [data-bs-theme="dark"] .alert-light { background: var(--ui-surface); border-color: var(--ui-border); color: var(--ui-text); }
.list-group { --bs-list-group-bg: transparent; --bs-list-group-border-color: var(--ui-border); --bs-list-group-color: var(--ui-text);
    --bs-list-group-action-hover-bg: var(--ui-surface-2); --bs-list-group-active-bg: var(--ui-accent-soft);
    --bs-list-group-active-border-color: rgba(139, 92, 246, 0.35); --bs-list-group-active-color: var(--bs-emphasis-color); }
.dropdown-menu { --bs-dropdown-bg: var(--ui-surface-solid); --bs-dropdown-border-color: var(--ui-border-strong);
    --bs-dropdown-link-hover-bg: var(--ui-surface-2); --bs-dropdown-link-color: var(--ui-text); --bs-dropdown-link-hover-color: var(--ui-text);
    --bs-dropdown-link-active-bg: var(--ui-accent-soft); border-radius: 12px; box-shadow: 0 20px 48px -16px rgba(0, 0, 0, 0.55); }
.progress { --bs-progress-bg: var(--ui-surface-2); border-radius: 999px; }
.progress-bar { background-image: var(--ui-gradient); }
.form-check-input { background-color: var(--ui-surface); border-color: var(--ui-border-strong); }
.form-check-input:checked { background-color: var(--ui-accent-strong); border-color: var(--ui-accent-strong); }
.form-label, .col-form-label { color: var(--ui-muted); font-size: 13px; font-weight: 500; }
.input-group-text { background: var(--ui-surface-2); border-color: var(--ui-border-strong); color: var(--ui-muted); border-radius: 10px; }
.btn-outline-secondary { --bs-btn-color: var(--ui-muted); --bs-btn-border-color: var(--ui-border-strong);
    --bs-btn-hover-bg: var(--ui-surface-2); --bs-btn-hover-color: var(--ui-text); --bs-btn-hover-border-color: var(--ui-border-strong); }
.btn-secondary { --bs-btn-bg: var(--ui-surface-2); --bs-btn-border-color: var(--ui-border-strong); --bs-btn-color: var(--ui-text);
    --bs-btn-hover-bg: var(--ui-border-strong); --bs-btn-hover-border-color: var(--ui-border-strong); --bs-btn-hover-color: var(--ui-text); }
.btn-light { --bs-btn-bg: var(--ui-surface-2); --bs-btn-border-color: var(--ui-border); --bs-btn-color: var(--ui-text); }
[data-bs-theme="dark"] .btn-outline-danger { --bs-btn-color: #fca5a5; --bs-btn-border-color: rgba(248, 113, 113, 0.45);
    --bs-btn-hover-bg: rgba(248, 113, 113, 0.14); --bs-btn-hover-color: #fecaca; --bs-btn-hover-border-color: #f87171; }
.chart-container { background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 14px; box-shadow: var(--ui-shadow); }
[data-bs-theme="dark"] .btn-success { --bs-btn-bg: #059669; --bs-btn-border-color: #059669; --bs-btn-hover-bg: #047857; --bs-btn-hover-border-color: #047857; }
[data-bs-theme="dark"] .btn-outline-success { --bs-btn-color: #6ee7b7; --bs-btn-border-color: rgba(52, 211, 153, 0.45);
    --bs-btn-hover-bg: rgba(52, 211, 153, 0.14); --bs-btn-hover-color: #a7f3d0; --bs-btn-hover-border-color: #34d399; }
[data-bs-theme="dark"] .btn-outline-warning { --bs-btn-color: #fde68a; --bs-btn-border-color: rgba(250, 204, 21, 0.45);
    --bs-btn-hover-bg: rgba(250, 204, 21, 0.14); --bs-btn-hover-color: #fef3c7; --bs-btn-hover-border-color: #facc15; }
[data-bs-theme="dark"] .btn-outline-info { --bs-btn-color: #a5f3fc; --bs-btn-border-color: rgba(34, 211, 238, 0.45);
    --bs-btn-hover-bg: rgba(34, 211, 238, 0.14); --bs-btn-hover-color: #cffafe; --bs-btn-hover-border-color: #22d3ee; }
.btn-close { filter: none; }
[data-bs-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

/* Status row tints (payroll, purchase orders) — translucent in dark mode */
[data-bs-theme="dark"] .payroll-paid, [data-bs-theme="dark"] .po-row-received { background-color: rgba(52, 211, 153, 0.07); }
[data-bs-theme="dark"] .payroll-overdue, [data-bs-theme="dark"] .po-row-cancelled { background-color: rgba(248, 113, 113, 0.08); }
[data-bs-theme="dark"] .payroll-due-soon, [data-bs-theme="dark"] .po-row-partially_received { background-color: rgba(250, 204, 21, 0.07); }
[data-bs-theme="dark"] .po-row-ordered { background-color: rgba(96, 165, 250, 0.07); }
[data-bs-theme="dark"] .po-row-draft, [data-bs-theme="dark"] .detail-row td { background-color: var(--ui-surface); }
.po-row-cancelled td { color: var(--ui-faint); }

/* KPI accent colors, softened for dark */
[data-bs-theme="dark"] .kpi-cra .kpi-value, [data-bs-theme="dark"] .kpi-po-active .kpi-value { color: #93c5fd; }
[data-bs-theme="dark"] .kpi-rq .kpi-value { color: #67e8f9; }
[data-bs-theme="dark"] .kpi-next-due .kpi-value, [data-bs-theme="dark"] .kpi-po-overdue .kpi-value { color: #fdba74; }
[data-bs-theme="dark"] .kpi-paid-count .kpi-value { color: #6ee7b7; }
[data-bs-theme="dark"] .kpi-po-on-order .kpi-value { color: #c4b5fd; }
[data-bs-theme="dark"] .kpi-po-draft .kpi-value { color: var(--ui-muted); }

/* Bootstrap contextual badges read too loud on dark */
[data-bs-theme="dark"] .badge.bg-success { background: rgba(52, 211, 153, 0.16) !important; color: #6ee7b7; }
[data-bs-theme="dark"] .badge.bg-danger  { background: rgba(248, 113, 113, 0.16) !important; color: #fca5a5; }
[data-bs-theme="dark"] .badge.bg-warning { background: rgba(250, 204, 21, 0.16) !important; color: #fde68a !important; }
[data-bs-theme="dark"] .badge.bg-info    { background: rgba(34, 211, 238, 0.14) !important; color: #a5f3fc !important; }
[data-bs-theme="dark"] .badge.bg-primary { background: rgba(139, 92, 246, 0.2) !important; color: #ddd6fe; }
.badge { font-weight: 600; border-radius: 999px; padding: 0.35em 0.65em; }
[data-bs-theme="light"] .badge.bg-success { background: #d1fae5 !important; color: #065f46; }
[data-bs-theme="light"] .badge.bg-danger  { background: #fee2e2 !important; color: #991b1b; }
[data-bs-theme="light"] .badge.bg-warning { background: #fef3c7 !important; color: #92400e !important; }
[data-bs-theme="light"] .badge.bg-info    { background: #cffafe !important; color: #155e75 !important; }
[data-bs-theme="light"] .badge.bg-primary { background: #ede9fe !important; color: #5b21b6; }

/* ── Questions for a person (transactions.js hasOpenQuestion) ────────────
   Amber = "waiting on you", kept apart from the red routine review flag. */
:root { --ui-question: #b45309; --ui-question-bg: #fff7e6; --ui-question-border: #f5c26b; }
[data-bs-theme="dark"] { --ui-question: #fbbf24; --ui-question-bg: rgba(251, 191, 36, 0.10); --ui-question-border: rgba(251, 191, 36, 0.35); }

.questions-banner {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
    margin: 0 0 14px; padding: 12px 16px; border-radius: 12px;
    background: var(--ui-question-bg); border: 1px solid var(--ui-question-border); color: var(--ui-text);
}
.q-banner-main { display: flex; gap: 12px; align-items: flex-start; }
.q-banner-icon, .row-question-icon {
    flex: none; display: inline-flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; border-radius: 50%; font-weight: 700; font-size: 13px;
    background: var(--ui-question); color: #fff;
}
[data-bs-theme="dark"] .q-banner-icon, [data-bs-theme="dark"] .row-question-icon { color: #111; }
.q-banner-sub { color: var(--ui-muted); font-size: 0.875rem; }
.q-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.q-chip {
    border: 1px solid var(--ui-question-border); background: var(--ui-surface-solid); color: var(--ui-text);
    border-radius: 999px; padding: 4px 12px; font-size: 0.85rem; min-height: 32px;
}
.q-chip:hover, .q-chip:focus-visible { border-color: var(--ui-question); outline: none; }
.q-chip b { color: var(--ui-question); margin-left: 4px; }

.tab-question-badge {
    margin-left: 4px; background: var(--ui-question-bg) !important; color: var(--ui-question);
    border: 1px solid var(--ui-question-border); font-weight: 600;
}

/* The question itself, under the payee — visible without hovering (touch). */
.row-question {
    display: flex; gap: 8px; align-items: flex-start; width: 100%; max-width: 46ch;
    margin-top: 6px; padding: 6px 8px; border-radius: 8px; text-align: left;
    background: var(--ui-question-bg); border: 1px solid var(--ui-question-border);
    color: var(--ui-text); font-size: 0.82rem; line-height: 1.35; white-space: normal;
}
.row-question:hover, .row-question:focus-visible { border-color: var(--ui-question); outline: none; }
.row-question-icon { width: 18px; height: 18px; font-size: 11px; }

.status-icon.status-question {
    color: var(--ui-question); font-weight: 800; border: 1.5px solid var(--ui-question-border);
    border-radius: 50%; width: 26px; height: 26px; line-height: 1;
}

#questionModal .q-row-meta { color: var(--ui-muted); font-size: 0.85rem; margin-bottom: 6px; }
#questionModal .q-text {
    padding: 10px 12px; border-radius: 8px; background: var(--ui-question-bg);
    border: 1px solid var(--ui-question-border); white-space: pre-line;
}
#questionModal .q-hint { color: var(--ui-muted); font-size: 0.85rem; }
