/* =====================================================================
   THE HEMISPHERE — v12 "TERMINAL" (revival of v10 brutalist look)
   ---------------------------------------------------------------------
   - Sharp 0-corner boxes, 2px borders, hard offset shadows
   - Mono terminal type for data, Inter for body
   - Black canvas + white frames
   - Customizable ACCENT color via --t-accent (lime by default)
     Picker UI lives in topbar (#accent-picker-btn)
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap');

/* ============ TOKENS ============ */
:root {
    /* Canvas */
    --t-bg:        #0a0a0a;
    --t-paper:     #111111;
    --t-paper-2:   #161616;
    --t-paper-3:   #1d1d1d;

    /* Frames + lines */
    --t-border:    #ffffff;
    --t-line:      #2a2a2a;
    --t-line-2:    #3a3a3a;

    /* Ink */
    --t-ink:       #f5f5f5;
    --t-ink-soft:  #c8c8c8;
    --t-ink-mute:  #888888;

    /* Accent — overridable by user via #accent-picker-btn */
    --t-accent:        #c4f428;     /* default v10 lime */
    --t-accent-ink:    #0a0a0a;     /* text on accent */
    --t-accent-glow:   rgba(196, 244, 40, 0.35);

    /* Signal colors */
    --t-success:   #4ade80;
    --t-danger:    #f87171;
    --t-warn:      #fbbf24;
    --t-info:      #60a5fa;

    /* Typography */
    --t-display:   'Inter', system-ui, -apple-system, sans-serif;
    --t-mono:      'JetBrains Mono', 'SF Mono', ui-monospace, monospace;
    --t-body:      'Inter', system-ui, -apple-system, sans-serif;

    /* Layout */
    --t-rail-w:    220px;
    --t-topbar-h:  64px;
}

/* ============ LIGHT THEME ============ */
body.light-theme {
    --t-bg:        #f5f1e8;        /* off-white paper */
    --t-paper:     #ffffff;
    --t-paper-2:   #f0ece0;
    --t-paper-3:   #e8e2d0;
    --t-border:    #0a0a0a;
    --t-line:      #d6d0bf;
    --t-line-2:    #a8a290;
    --t-ink:       #0a0a0a;
    --t-ink-soft:  #2a2a2a;
    --t-ink-mute:  #5a5a5a;
    /* NOTE: --t-accent / --t-accent-ink / --t-accent-glow are computed by JS
       (applyAccentColor) and set as inline styles on <html> + <body>.
       Don't override them here, or user's chosen accent won't apply. */
}

/* ============ BASE ============ */
html, body {
    background: var(--t-bg) !important;
    color: var(--t-ink) !important;
    font-family: var(--t-body) !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
body::before, body::after { content: none !important; display: none !important; }

* { border-radius: 0 !important; }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--t-display) !important;
    font-weight: 700 !important;
    color: var(--t-ink) !important;
    text-transform: uppercase;
    letter-spacing: -0.5px;
}
h1 { font-size: 1.8rem !important; }
h2 { font-size: 1.4rem !important; }
h3 { font-size: 1.05rem !important; letter-spacing: 0.3px; }

::selection { background: var(--t-accent); color: var(--t-accent-ink); }

/* ============ STRUCTURAL LAYOUT ============ */
.main-area {
    margin-left: var(--t-rail-w) !important;
    background: var(--t-bg) !important;
    min-height: 100vh;
}

/* ============ SIDEBAR ============ */
.sidebar {
    position: fixed !important;
    top: 0 !important; left: 0 !important; bottom: 0 !important;
    width: var(--t-rail-w) !important;
    background: var(--t-paper) !important;
    border-right: 2px solid var(--t-border) !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    z-index: 250 !important;
    display: flex; flex-direction: column;
}
.sidebar-brand {
    border-bottom: 2px solid var(--t-border) !important;
    padding: 1.1rem 1.1rem !important;
    background: var(--t-paper) !important;
    color: var(--t-ink) !important;
    font-family: var(--t-display) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.brand-icon, .brand-text { color: var(--t-ink) !important; }
.brand-pro { color: var(--t-accent) !important; }
.sidebar-nav { flex: 1; padding: 0.5rem 0; }
.nav-section-label {
    font-family: var(--t-mono) !important;
    font-size: 0.62rem !important;
    color: var(--t-ink-mute) !important;
    letter-spacing: 1.6px !important;
    padding: 0.9rem 1.1rem 0.4rem !important;
    text-transform: uppercase;
    border-top: 1px solid var(--t-line);
}
.nav-section-label:first-child { border-top: 0; }

.nav-item {
    border-radius: 0 !important;
    padding: 0.7rem 1.1rem !important;
    font-family: var(--t-display) !important;
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    color: var(--t-ink-soft) !important;
    background: transparent !important;
    border: none !important;
    border-left: 3px solid transparent !important;
    transition: background 120ms, color 120ms !important;
    display: flex; align-items: center; gap: 0.85rem;
    text-align: left; width: 100%; cursor: pointer;
}
.nav-item::before, .nav-item::after { content: none !important; display: none !important; }
.nav-item:hover {
    background: var(--t-paper-2) !important;
    color: var(--t-ink) !important;
    border-left-color: var(--t-line-2) !important;
}
.nav-item.active {
    background: var(--t-accent) !important;
    color: var(--t-accent-ink) !important;
    font-weight: 700 !important;
    border-left-color: var(--t-accent-ink) !important;
}
.nav-item.active .nav-icon { color: var(--t-accent-ink) !important; }
.nav-icon { font-size: 1.05rem !important; width: 1.4rem !important; text-align: center; flex-shrink: 0; }

.nav-sub-items {
    padding-left: 0 !important;
    background: var(--t-bg) !important;
}
.nav-sub-item {
    font-family: var(--t-mono) !important;
    font-size: 0.72rem !important;
    padding: 0.45rem 1.1rem 0.45rem 3.45rem !important;
    color: var(--t-ink-mute) !important;
    background: transparent !important;
    border: none !important;
    border-left: 3px solid transparent !important;
    text-align: left; width: 100%; cursor: pointer;
}
.nav-sub-item:hover {
    color: var(--t-ink) !important;
    background: var(--t-paper-2) !important;
    border-left-color: var(--t-line-2) !important;
}
.nav-sub-item.active {
    color: var(--t-accent) !important;
    border-left-color: var(--t-accent) !important;
}

.sidebar-footer {
    border-top: 2px solid var(--t-border) !important;
    padding: 0.9rem 1rem !important;
    background: var(--t-bg) !important;
}
.sidebar-version {
    font-family: var(--t-mono) !important;
    font-size: 0.65rem !important;
    color: var(--t-ink-mute) !important;
    text-align: center;
    margin-top: 0.5rem;
    letter-spacing: 1px;
}
.theme-toggle-btn {
    background: var(--t-paper-2) !important;
    border: 2px solid var(--t-border) !important;
    color: var(--t-ink) !important;
    padding: 0.5rem 0.7rem !important;
    font-family: var(--t-mono) !important;
    font-size: 0.7rem !important;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    box-shadow: 3px 3px 0 0 var(--t-border) !important;
    width: 100%;
    display: flex; align-items: center; gap: 0.5rem;
    cursor: pointer;
}
.theme-toggle-btn:hover {
    transform: translate(-2px, -2px);
    box-shadow: 5px 5px 0 0 var(--t-accent) !important;
    background: var(--t-paper-3) !important;
}
.sidebar-toggle-btn { display: none !important; }

/* ============ TOPBAR ============ */
.topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 240 !important;
    background: var(--t-paper) !important;
    border-bottom: 2px solid var(--t-border) !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    height: var(--t-topbar-h) !important;
    padding: 0 1.5rem !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.topbar-left { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.page-title {
    font-family: var(--t-display) !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    color: var(--t-ink) !important;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    margin: 0 !important;
}
.page-subtitle {
    font-family: var(--t-mono) !important;
    font-size: 0.68rem !important;
    color: var(--t-ink-mute) !important;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}
.topbar-right {
    display: flex !important;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: nowrap !important;
}

/* ============ TOPBAR BUTTONS ============ */
.topbar-btn {
    background: var(--t-paper-2) !important;
    border: 2px solid var(--t-border) !important;
    color: var(--t-ink) !important;
    width: 38px !important;
    height: 38px !important;
    border-radius: 0 !important;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    cursor: pointer;
    font-size: 0.95rem;
    transition: transform 120ms, box-shadow 120ms, background 120ms !important;
}
.topbar-btn:hover {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 0 var(--t-accent) !important;
    background: var(--t-paper-3) !important;
}
.topbar-btn:active {
    transform: translate(0, 0);
    box-shadow: 1px 1px 0 0 var(--t-border) !important;
}

/* Override the install-btn inline gradient with brutalist accent */
#install-app-btn {
    background: var(--t-accent) !important;
    color: var(--t-accent-ink) !important;
    border: 2px solid var(--t-border) !important;
}

/* Budget pill — brutalist edge */
.global-budget-pill {
    background: var(--t-paper-2) !important;
    border: 2px solid var(--t-border) !important;
    color: var(--t-ink) !important;
    font-family: var(--t-mono) !important;
    font-size: 0.75rem !important;
    padding: 0.4rem 0.85rem !important;
    height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
    cursor: pointer;
}
.global-budget-pill .budget-value { color: var(--t-accent) !important; font-weight: 600; }
.global-budget-pill .budget-risk { color: var(--t-ink) !important; }
.global-budget-pill:hover {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 0 var(--t-accent) !important;
}

/* ============ MOBILE HEADER ============ */
.mobile-header {
    display: none;
    background: var(--t-paper) !important;
    border-bottom: 2px solid var(--t-border) !important;
    backdrop-filter: none !important;
    z-index: 240 !important;
    padding: 0 1rem !important;
}
.mobile-brand {
    color: var(--t-ink) !important;
    font-family: var(--t-display) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.mobile-brand .brand-pro { color: var(--t-accent) !important; }
.hamburger {
    background: var(--t-paper-2) !important;
    color: var(--t-ink) !important;
    border: 2px solid var(--t-border) !important;
    width: 40px !important; height: 40px !important;
    cursor: pointer;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
}
.hamburger:hover { background: var(--t-accent) !important; color: var(--t-accent-ink) !important; }

/* ============ TAB PAGES ============ */
.tab-page { display: none !important; padding: 1.5rem !important; }
.tab-page.active { display: block !important; animation: tFadeIn 220ms ease-out; }
@keyframes tFadeIn {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ============ CARDS — BRUTALIST BOX ============ */
.matchup-card,
.dash-card,
.pred-card,
.bet-history-card,
.odds-card,
.live-game-card,
.crypto-card,
.market-card,
.best-bet-card,
.summary-card,
.glance-card,
.session-card,
.tracking-stat-card,
.value-card,
.metric-card,
.stat-card {
    background: var(--t-paper) !important;
    border: 2px solid var(--t-border) !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 0 var(--t-border) !important;
    color: var(--t-ink) !important;
    padding: 1.1rem !important;
    backdrop-filter: none !important;
    transition: transform 140ms, box-shadow 140ms !important;
}
.matchup-card:hover,
.dash-card:hover,
.pred-card:hover,
.best-bet-card:hover,
.crypto-card:hover,
.market-card:hover,
.bet-history-card:hover,
.odds-card:hover,
.live-game-card:hover {
    transform: translate(-3px, -3px) !important;
    box-shadow: 7px 7px 0 0 var(--t-accent) !important;
}
.dash-card h3 { color: var(--t-ink) !important; margin: 0 0 0.7rem 0 !important; }

/* Container panels — transparent so cards inside show */
.tab-page,
.dashboard-grid,
.tracking-panel,
.best-bets-panel,
.pred-results,
.live-odds-panel,
.history-panel,
.crypto-results,
.markets-results,
.tab-content {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

/* ============ DASHBOARD GRID ============ */
.dashboard-grid {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    gap: 1rem !important;
    margin-top: 1rem;
}
.dashboard-grid > .dash-card { grid-column: span 4; min-height: 180px; display: block !important; }
.dashboard-grid > .dash-budget-card  { grid-column: span 8; }
.dashboard-grid > .dash-bestbet-card { grid-column: span 12; }
.dashboard-grid > .dash-analyst-card { grid-column: span 6; }
.dashboard-grid > .dash-bankroll-card{ grid-column: span 6; }
@media (max-width: 1100px) {
    .dashboard-grid > .dash-card { grid-column: span 6 !important; }
    .dashboard-grid > .dash-budget-card { grid-column: span 12 !important; }
}
@media (max-width: 700px) {
    .dashboard-grid {
        grid-template-columns: 1fr !important;
        gap: 0.75rem !important;
    }
    .dashboard-grid > * { grid-column: 1 / -1 !important; }
}

/* Today widget — kill phantom */
.today-widget {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.today-widget:empty { display: none !important; }

/* ============ QUICK ACTIONS ============ */
.quick-actions-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.6rem !important;
}
.qa-btn {
    background: var(--t-paper-2) !important;
    border: 2px solid var(--t-border) !important;
    color: var(--t-ink) !important;
    padding: 0.85rem !important;
    text-align: left;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.25rem !important;
    cursor: pointer;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
    transition: transform 120ms, box-shadow 120ms !important;
}
.qa-btn:hover {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 0 var(--t-accent) !important;
    background: var(--t-paper-3) !important;
}
.qa-btn .qa-icon { font-size: 1.25rem; }
.qa-btn strong { color: var(--t-ink); font-weight: 600; font-size: 0.85rem; }
.qa-btn small { color: var(--t-ink-mute); font-size: 0.7rem; font-family: var(--t-mono); }

/* ============ BARS / TICKER ============ */
.auto-refresh-bar,
.live-ticker {
    background: var(--t-paper) !important;
    border: 2px solid var(--t-border) !important;
    box-shadow: 3px 3px 0 0 var(--t-border) !important;
    padding: 0.6rem 1rem !important;
    margin: 0.8rem 1.5rem 0 !important;
    color: var(--t-ink-soft) !important;
    font-family: var(--t-mono) !important;
    font-size: 0.78rem;
    backdrop-filter: none !important;
}
.live-pill, .status-pill.live, .bb-status.live {
    background: var(--t-danger) !important;
    color: #fff !important;
    border: 2px solid var(--t-border) !important;
    padding: 0.18rem 0.55rem !important;
    font-family: var(--t-mono) !important;
    font-size: 0.65rem !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    animation: tBlink 1.6s ease-in-out infinite;
}
@keyframes tBlink {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.55; }
}

/* ============ SUBTABS ============ */
.betting-subtabs {
    background: var(--t-paper) !important;
    border: 2px solid var(--t-border) !important;
    box-shadow: 3px 3px 0 0 var(--t-border) !important;
    padding: 0 !important;
    margin: 1rem 1.5rem 0 !important;
    display: flex !important;
    gap: 0 !important;
}
.betting-subtab {
    background: transparent !important;
    color: var(--t-ink-soft) !important;
    border: none !important;
    border-right: 2px solid var(--t-border) !important;
    padding: 0.7rem 1.1rem !important;
    font-family: var(--t-mono) !important;
    font-size: 0.75rem !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    box-shadow: none !important;
}
.betting-subtab:last-child { border-right: none !important; }
.betting-subtab:hover { background: var(--t-paper-2) !important; color: var(--t-ink) !important; }
.betting-subtab.active {
    background: var(--t-accent) !important;
    color: var(--t-accent-ink) !important;
    font-weight: 700 !important;
}

/* ============ FILTER / BUDGET BARS ============ */
.budget-strip,
.pred-budget-bar,
.pred-filter-bar,
.sub-header {
    background: var(--t-paper) !important;
    border: 2px solid var(--t-border) !important;
    box-shadow: 3px 3px 0 0 var(--t-border) !important;
    padding: 0.85rem !important;
    backdrop-filter: none !important;
}
.bs-item { border-right: 2px solid var(--t-border) !important; padding: 0 1rem; }
.bs-item:last-child { border-right: none !important; }
.bs-label { color: var(--t-ink-mute) !important; font-family: var(--t-mono) !important; font-size: 0.65rem !important; text-transform: uppercase; letter-spacing: 1.2px; }
.bs-val { color: var(--t-ink) !important; font-family: var(--t-mono) !important; font-weight: 600 !important; }

/* ============ BUTTONS ============ */
.btn-accent,
#run-predictions-btn {
    background: var(--t-accent) !important;
    color: var(--t-accent-ink) !important;
    border: 2px solid var(--t-border) !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 0 var(--t-border) !important;
    font-family: var(--t-display) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 0.7rem 1.2rem !important;
    cursor: pointer;
    transition: transform 120ms, box-shadow 120ms !important;
}
.btn-accent:hover,
#run-predictions-btn:hover {
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 0 var(--t-accent-glow), 6px 6px 0 0 var(--t-border) !important;
}
.btn-accent:active,
#run-predictions-btn:active {
    transform: translate(0, 0);
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
}
.btn-ghost {
    background: var(--t-paper-2) !important;
    color: var(--t-ink) !important;
    border: 2px solid var(--t-border) !important;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
    font-family: var(--t-display) !important;
    text-transform: uppercase;
    padding: 0.55rem 1rem !important;
    cursor: pointer;
}
.btn-ghost:hover {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 0 var(--t-accent) !important;
}

/* ============ INPUTS ============ */
input, select, textarea {
    background: var(--t-paper-2) !important;
    color: var(--t-ink) !important;
    border: 2px solid var(--t-border) !important;
    border-radius: 0 !important;
    padding: 0.55rem 0.85rem !important;
    font-family: var(--t-mono) !important;
    font-size: 0.85rem !important;
    box-shadow: 2px 2px 0 0 var(--t-line-2) !important;
}
input:focus, select:focus, textarea:focus {
    outline: none !important;
    box-shadow: 3px 3px 0 0 var(--t-accent) !important;
    border-color: var(--t-accent) !important;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--t-accent); }

/* ============ DROPDOWN MENUS ============ */
.topbar-dropdown,
.tb-dd {
    background: var(--t-paper) !important;
    border: 2px solid var(--t-border) !important;
    box-shadow: 5px 5px 0 0 var(--t-border) !important;
    border-radius: 0 !important;
    padding: 0.4rem 0 !important;
    backdrop-filter: none !important;
}
.tb-dd-item {
    background: transparent !important;
    color: var(--t-ink) !important;
    border: none !important;
    padding: 0.55rem 0.95rem !important;
    font-family: var(--t-display) !important;
    font-size: 0.85rem;
    text-transform: none;
    cursor: pointer;
    display: flex; align-items: center; gap: 0.55rem;
    width: 100%;
    text-align: left;
}
.tb-dd-item:hover { background: var(--t-accent) !important; color: var(--t-accent-ink) !important; }
.tb-dd-section-label {
    font-family: var(--t-mono) !important;
    font-size: 0.6rem !important;
    color: var(--t-ink-mute) !important;
    text-transform: uppercase;
    letter-spacing: 1.6px;
    padding: 0.6rem 0.95rem 0.3rem !important;
    border-top: 1px solid var(--t-line);
}
.tb-dd-section-label:first-child { border-top: 0; }

/* ============ MODALS ============ */
.modal-content,
.ba-modal-content {
    background: var(--t-paper) !important;
    border: 2px solid var(--t-border) !important;
    box-shadow: 8px 8px 0 0 var(--t-accent) !important;
    border-radius: 0 !important;
    color: var(--t-ink) !important;
}
.modal { z-index: 1000 !important; }

/* ============ TOASTS ============ */
.toast, .notification, .ba-toast {
    background: var(--t-paper) !important;
    border: 2px solid var(--t-border) !important;
    color: var(--t-ink) !important;
    box-shadow: 4px 4px 0 0 var(--t-accent) !important;
    border-radius: 0 !important;
}

/* ============ FAB ============ */
.fab-btn {
    background: var(--t-accent) !important;
    color: var(--t-accent-ink) !important;
    border: 2px solid var(--t-border) !important;
    box-shadow: 4px 4px 0 0 var(--t-border) !important;
    border-radius: 0 !important;
    width: 56px !important;
    height: 56px !important;
}
.fab-btn:hover {
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 0 var(--t-border) !important;
}

/* ============ STATUS / PILLS / TAGS ============ */
.status-pill,
.api-status,
.pfb-pill,
.filter-chip,
.bb-status,
.bb-edge,
.conf-pct,
.pred-conf,
.edge-pill {
    background: var(--t-paper-2) !important;
    border: 2px solid var(--t-border) !important;
    color: var(--t-ink) !important;
    border-radius: 0 !important;
    font-family: var(--t-mono) !important;
    font-size: 0.7rem !important;
    padding: 0.22rem 0.55rem !important;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
}

/* ============ PROGRESS / CONFIDENCE BARS ============ */
.confidence-bar, .conf-bar, .pred-conf-bar,
.loading-bar, .progress-bar, .progress-fill,
.dab-track, .dab-fill {
    border-radius: 0 !important;
}
.progress-fill, .loading-bar, .dab-fill {
    background: var(--t-accent) !important;
}

/* ============ TAB DESC ============ */
.tab-desc {
    background: var(--t-paper) !important;
    border: 2px solid var(--t-border) !important;
    box-shadow: 3px 3px 0 0 var(--t-border) !important;
    color: var(--t-ink-soft) !important;
    padding: 0.85rem 1rem !important;
    margin-bottom: 1rem;
    font-family: var(--t-body) !important;
    font-size: 0.92rem !important;
}
.tab-desc strong { color: var(--t-accent) !important; font-family: var(--t-display) !important; text-transform: uppercase; letter-spacing: 0.5px; font-size: 0.82em; }

/* ============ NUMERIC VALUES ============ */
.metric-value, .conf-pct, .bb-edge, .bb-rank, .budget-value, .dash-stat-value {
    font-family: var(--t-mono) !important;
    font-weight: 600 !important;
    color: var(--t-ink) !important;
}

/* ============ CODE ============ */
code, pre {
    background: var(--t-bg) !important;
    color: var(--t-accent) !important;
    border: 1px solid var(--t-line-2) !important;
    border-radius: 0 !important;
    padding: 0.1rem 0.4rem;
    font-family: var(--t-mono) !important;
}

/* ============ LINKS ============ */
a {
    color: var(--t-accent) !important;
    text-decoration: none;
    border-bottom: 1px solid var(--t-accent);
}
a:hover { background: var(--t-accent); color: var(--t-accent-ink) !important; }

/* ============ HR ============ */
hr {
    border: 0 !important;
    border-top: 2px solid var(--t-border) !important;
    margin: 1.2rem 0;
}

/* ============ SCROLLBAR ============ */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--t-paper); }
::-webkit-scrollbar-thumb {
    background: var(--t-line-2);
    border: 2px solid var(--t-paper);
}
::-webkit-scrollbar-thumb:hover { background: var(--t-accent); }
* { scrollbar-color: var(--t-line-2) var(--t-paper); scrollbar-width: thin; }

/* ============ ACCENT PICKER ============ */
.accent-picker-pop {
    position: fixed;
    background: var(--t-paper);
    border: 2px solid var(--t-border);
    box-shadow: 6px 6px 0 0 var(--t-border);
    padding: 0.85rem;
    z-index: 9999;
    min-width: 220px;
    font-family: var(--t-display);
}
.accent-picker-pop .ap-title {
    font-family: var(--t-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1.6px;
    color: var(--t-ink-mute);
    margin-bottom: 0.55rem;
}
.accent-swatches {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 6px;
    margin-bottom: 0.7rem;
}
.accent-swatch {
    width: 28px; height: 28px;
    border: 2px solid var(--t-border);
    cursor: pointer;
    box-shadow: 2px 2px 0 0 var(--t-border);
    transition: transform 100ms;
    position: relative;
}
.accent-swatch:hover { transform: translate(-2px, -2px); box-shadow: 3px 3px 0 0 var(--t-border); }
.accent-swatch.active::after {
    content: '✓';
    position: absolute;
    inset: 0;
    display: flex; align-items: center; justify-content: center;
    color: #000;
    font-weight: 700;
    font-size: 0.85rem;
    text-shadow: 0 0 2px rgba(255,255,255,0.7);
}
.accent-custom-row {
    display: flex; align-items: center; gap: 0.5rem;
}
.accent-custom-row label {
    font-family: var(--t-mono);
    font-size: 0.7rem;
    color: var(--t-ink-soft);
    text-transform: uppercase;
    letter-spacing: 0.8px;
}
.accent-custom-row input[type="color"] {
    width: 36px; height: 36px;
    padding: 0 !important;
    background: transparent !important;
    border: 2px solid var(--t-border) !important;
    cursor: pointer;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
}
.accent-custom-row .accent-hex {
    flex: 1;
    font-family: var(--t-mono) !important;
    font-size: 0.78rem !important;
    text-transform: uppercase;
}
.accent-reset {
    margin-top: 0.55rem;
    width: 100%;
    background: var(--t-paper-2) !important;
    border: 2px solid var(--t-border) !important;
    color: var(--t-ink) !important;
    padding: 0.45rem !important;
    font-family: var(--t-mono) !important;
    font-size: 0.7rem !important;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    cursor: pointer;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
}
.accent-reset:hover {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 0 var(--t-accent) !important;
}
.accent-set-default {
    margin-top: 0.7rem;
    width: 100%;
    background: var(--t-accent) !important;
    border: 2px solid var(--t-border) !important;
    color: var(--t-accent-ink) !important;
    padding: 0.5rem !important;
    font-family: var(--t-mono) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    cursor: pointer;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
}
.accent-set-default:hover:not(:disabled) {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 0 var(--t-border) !important;
}
.accent-set-default:disabled {
    opacity: 0.7;
    cursor: default;
}
.accent-picker-backdrop {
    position: fixed; inset: 0;
    z-index: 9998;
    background: transparent;
}

/* The accent picker button — show a swatch of current accent */
#accent-picker-btn {
    position: relative;
}
#accent-picker-btn::after {
    content: '';
    position: absolute;
    bottom: 2px; right: 2px;
    width: 10px; height: 10px;
    background: var(--t-accent);
    border: 1.5px solid var(--t-border);
}

/* ============ GLITCHY TERMINAL ANIMATIONS (subtle) ============ */
@keyframes tCursorBlink {
    0%, 49% { opacity: 1; }
    50%, 100% { opacity: 0; }
}
.page-title::after {
    content: '_';
    color: var(--t-accent);
    margin-left: 4px;
    animation: tCursorBlink 1s step-start infinite;
}

/* ============ MOBILE ============ */
@media (max-width: 900px) {
    .main-area { margin-left: 0 !important; padding-top: env(safe-area-inset-top); }

    .mobile-header {
        display: flex !important;
        position: sticky !important;
        top: 0 !important;
        height: 54px;
        align-items: center;
        justify-content: space-between;
        padding: 0 0.9rem !important;
    }

    .sidebar {
        transform: translateX(-105%) !important;
        transition: transform 240ms cubic-bezier(0.16,1,0.3,1) !important;
        width: 84vw !important;
        max-width: 320px !important;
        z-index: 300 !important;
    }
    .sidebar.mobile-open,
    body.sidebar-open .sidebar { transform: translateX(0) !important; }

    #sidebar-backdrop, .sidebar-backdrop {
        position: fixed; inset: 0;
        background: rgba(0, 0, 0, 0.7);
        z-index: 290;
        transition: opacity 220ms;
    }
    #sidebar-backdrop.hidden, .sidebar-backdrop.hidden {
        opacity: 0; pointer-events: none; visibility: hidden;
    }

    .topbar {
        padding: 0.6rem 0.9rem !important;
        height: auto !important;
        min-height: 56px !important;
        flex-wrap: wrap !important;
        gap: 0.5rem;
    }
    .topbar-right { flex-wrap: wrap !important; gap: 0.4rem !important; }

    .tab-page { padding: 1rem !important; }
    .auto-refresh-bar, .live-ticker, .betting-subtabs, .budget-strip,
    .pred-budget-bar, .pred-filter-bar { margin: 0.7rem 0.8rem 0 !important; }

    button, .btn-accent, .btn-ghost, .topbar-btn, .qa-btn,
    .nav-item, .nav-sub-item { min-height: 44px; }
    input, select, textarea { font-size: 16px !important; min-height: 44px; }

    .fab-btn {
        bottom: calc(1rem + env(safe-area-inset-bottom)) !important;
        right: 1rem !important;
    }
}
@media (max-width: 700px) {
    body { font-size: 14.5px; }
    h1 { font-size: 1.4rem !important; }
    h2 { font-size: 1.15rem !important; }
    .page-title { font-size: 1rem !important; }
    .global-budget-pill .budget-label,
    .global-budget-pill .budget-sep { display: none; }
    .betting-subtabs { overflow-x: auto; flex-wrap: nowrap !important; }
    .betting-subtab { flex: 0 0 auto !important; white-space: nowrap; }
    .quick-actions-grid { grid-template-columns: 1fr !important; }
}

/* ============ HIGH-PRIORITY OVERRIDES ============ */
/* Kill legacy purple gradient on HEMISPHERE wordmark + bs-count.
   style.css line ~3745 hard-codes a purple linear-gradient bg with !important
   that must be neutralized so the brand follows --t-accent. */
.brand-pro,
.bs-count,
.mobile-brand .brand-pro,
.sidebar-brand .brand-pro,
body.light-theme .brand-pro,
body.light-theme .bs-count {
    background: transparent !important;
    background-image: none !important;
    background-clip: initial !important;
    -webkit-background-clip: initial !important;
    -webkit-text-fill-color: var(--t-accent) !important;
    color: var(--t-accent) !important;
    text-shadow: none !important;
    padding: 0 !important;
    box-shadow: none !important;
}
/* The brand diamond glyph also follows accent */
.brand-icon { color: var(--t-accent) !important; }
body.light-theme .brand-icon { color: var(--t-accent) !important; }

/* ============ LIGHT-THEME SIDEBAR + NAV ============ */
/* style.css has a stack of body.light-theme purple-glass rules with
   !important; we mirror at the same specificity to win by source order. */
body.light-theme .sidebar {
    background: var(--t-paper) !important;
    border-right: 2px solid var(--t-border) !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
}
body.light-theme .topbar {
    background: var(--t-paper) !important;
    border-bottom: 2px solid var(--t-border) !important;
    backdrop-filter: none !important;
}
body.light-theme .sidebar-brand {
    background: var(--t-paper) !important;
    color: var(--t-ink) !important;
    border-bottom: 2px solid var(--t-border) !important;
}
body.light-theme .nav-item {
    color: var(--t-ink-soft) !important;
    background: transparent !important;
    border-left-color: transparent !important;
}
body.light-theme .nav-item:hover:not(.active) {
    background: var(--t-paper-2) !important;
    color: var(--t-ink) !important;
    border-left-color: var(--t-line-2) !important;
}
body.light-theme .nav-item.active {
    background: var(--t-accent) !important;
    color: var(--t-accent-ink) !important;
    border-left: 3px solid var(--t-accent-ink) !important;
    background-image: none !important;
}
body.light-theme .nav-item.active::before { background: transparent !important; }
body.light-theme .nav-item.active .nav-icon { color: var(--t-accent-ink) !important; }
body.light-theme .nav-sub-item {
    color: var(--t-ink-mute) !important;
    background: transparent !important;
}
body.light-theme .nav-sub-item:hover {
    color: var(--t-ink) !important;
    background: var(--t-paper-2) !important;
}
body.light-theme .nav-sub-item.active {
    color: var(--t-accent) !important;
    border-left-color: var(--t-accent) !important;
    background: transparent !important;
}
body.light-theme .nav-sub-items {
    background: var(--t-bg) !important;
}
body.light-theme .nav-section-label {
    color: var(--t-ink-mute) !important;
    border-top-color: var(--t-line) !important;
}
body.light-theme .sidebar-footer {
    background: var(--t-bg) !important;
    border-top: 2px solid var(--t-border) !important;
}
body.light-theme .sidebar-version { color: var(--t-ink-mute) !important; }
body.light-theme .topbar-btn {
    background: var(--t-paper-2) !important;
    color: var(--t-ink) !important;
    border: 2px solid var(--t-border) !important;
    box-shadow: 2px 2px 0 0 var(--t-border) !important;
}
body.light-theme .topbar-btn:hover {
    background: var(--t-accent) !important;
    color: var(--t-accent-ink) !important;
    box-shadow: 4px 4px 0 0 var(--t-accent) !important;
}

/* ============ ACCENT-CHANGE FADE TRANSITION ============ */
/* When body.accent-fading is on (toggled briefly by JS during accent change),
   color-related properties animate smoothly across the whole UI. */
body.accent-fading,
body.accent-fading * {
    transition:
        background-color 380ms ease,
        background 380ms ease,
        color 380ms ease,
        border-color 380ms ease,
        box-shadow 380ms ease,
        fill 380ms ease,
        stroke 380ms ease,
        -webkit-text-fill-color 380ms ease !important;
}

/* When body.no-anim is set by user, kill all UI animations */
body.no-anim *,
body.no-anim *::before,
body.no-anim *::after {
    animation: none !important;
    transition: none !important;
}
body.no-anim .page-title::after { animation: none !important; opacity: 0.5; }

/* Picker — animation toggles section */
.accent-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 0;
    font-family: var(--t-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--t-ink-soft);
    border-top: 1px dashed var(--t-line-2);
    margin-top: 0.55rem;
}
.accent-toggle-row label { cursor: pointer; }
.accent-toggle-row input[type="checkbox"] {
    width: 18px; height: 18px;
    accent-color: var(--t-accent);
    cursor: pointer;
    margin: 0;
}

/* Print */
@media print {
    .sidebar, .topbar, .mobile-header, .auto-refresh-bar, .live-ticker, .fab-btn { display: none !important; }
    .main-area { margin-left: 0 !important; }
    .matchup-card, .dash-card, .pred-card, .best-bet-card, .crypto-card, .market-card { break-inside: avoid; box-shadow: none !important; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .page-title::after { animation: none !important; opacity: 0.5; }
}

/* End v12 Terminal */
