/* =========================================================
   BiteTheBookie � "Cash Prime" Dark Fintech Theme
   Scoped under html.theme-cash so it is fully opt-in.
   When the theme-cash class is absent the original
   light/brand theme is used unchanged.
   ========================================================= */

:root {
    --cp-bg:            #0a0e1a; /* page background (deep navy/near-black) */
    --cp-bg-elevated:   #0f1626; /* cards, header surfaces */
    --cp-bg-row:        #111a2e; /* table rows / panels */
    --cp-bg-row-alt:    #0d1524;
    --cp-bg-hover:      #16223b;
    --cp-border:        #1e2a44; /* subtle hairline borders */
    --cp-primary:       #2f6bff; /* accent blue */
    --cp-primary-dark:  #2350cc;
    --cp-text:          #e6ebf5; /* primary text */
    --cp-text-muted:    #8a97b1; /* secondary text */
    --cp-success:       #22c55e; /* green up */
    --cp-danger:        #ef4444; /* red down */
    --cp-gold:          #f3c623;
}

/* ?? Global surfaces & text ??????????????????????????????? */
html.theme-cash,
html.theme-cash body,
html.theme-cash .site-body {
    background-color: var(--cp-bg) !important;
    color: var(--cp-text) !important;
}

html.theme-cash .site-main {
    background-color: var(--cp-bg) !important;
}

html.theme-cash h1,
html.theme-cash h2,
html.theme-cash h3,
html.theme-cash h4,
html.theme-cash h5,
html.theme-cash h6 {
    color: var(--cp-text);
}

html.theme-cash p {
    color: var(--cp-text);
}

html.theme-cash a {
    color: var(--cp-primary);
}

html.theme-cash .text-muted {
    color: var(--cp-text-muted) !important;
}

html.theme-cash .text-success {
    color: var(--cp-success) !important;
}

html.theme-cash .text-danger {
    color: var(--cp-danger) !important;
}

/* ?? Header / navigation ?????????????????????????????????? */
html.theme-cash .site-header,
html.theme-cash .top-header,
html.theme-cash .main-nav {
    background: var(--cp-bg-elevated) !important;
    border-bottom: 1px solid var(--cp-border) !important;
}

html.theme-cash .top-header a,
html.theme-cash .main-nav .nav-link {
    color: var(--cp-text) !important;
}

html.theme-cash .top-header a:hover,
html.theme-cash .main-nav .nav-link:hover {
    color: var(--cp-primary) !important;
}

html.theme-cash .main-nav .navbar-brand,
html.theme-cash .top-brand {
    color: var(--cp-text) !important;
}

html.theme-cash .main-nav .nav-link.active {
    color: #fff !important;
    border-bottom: 2px solid var(--cp-primary);
}

/* ?? Cards / panels ??????????????????????????????????????? */
html.theme-cash .card,
html.theme-cash .content-card,
html.theme-cash .pricing-card {
    background-color: var(--cp-bg-elevated) !important;
    border: 1px solid var(--cp-border) !important;
    color: var(--cp-text) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4) !important;
}

html.theme-cash .card:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.55) !important;
}

html.theme-cash .card-body,
html.theme-cash .card-body p,
html.theme-cash .card-header,
html.theme-cash .card-footer {
    background-color: transparent !important;
    color: var(--cp-text) !important;
}

html.theme-cash .card-header {
    border-bottom: 1px solid var(--cp-border) !important;
}

/* ?? Tables (the core dividends-style list) ??????????????? */
html.theme-cash .table {
    color: var(--cp-text) !important;
    border-color: var(--cp-border) !important;
    --bs-table-bg: transparent;
    --bs-table-color: var(--cp-text);
}

html.theme-cash .table thead th {
    background-color: transparent !important;
    color: var(--cp-text-muted) !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .4px;
    border-bottom: 1px solid var(--cp-border) !important;
}

html.theme-cash .table tbody td {
    background-color: var(--cp-bg-row) !important;
    border-color: var(--cp-border) !important;
    color: var(--cp-text) !important;
}

html.theme-cash .table tbody tr {
    border-radius: 8px;
}

html.theme-cash .table tbody tr:nth-child(even) td {
    background-color: var(--cp-bg-row-alt) !important;
}

html.theme-cash .table tbody tr:hover td {
    background-color: var(--cp-bg-hover) !important;
}

/* ?? Buttons ?????????????????????????????????????????????? */
html.theme-cash .btn-primary {
    background-color: var(--cp-primary) !important;
    border-color: var(--cp-primary) !important;
    color: #fff !important;
    font-weight: 600;
}

html.theme-cash .btn-primary:hover {
    background-color: var(--cp-primary-dark) !important;
    border-color: var(--cp-primary-dark) !important;
}

html.theme-cash .btn-outline-primary {
    color: var(--cp-primary) !important;
    border-color: var(--cp-primary) !important;
}

html.theme-cash .btn-outline-primary:hover {
    background-color: var(--cp-primary) !important;
    color: #fff !important;
}

html.theme-cash .btn-warning {
    background-color: var(--cp-primary) !important;
    border-color: var(--cp-primary) !important;
    color: #fff !important;
}

/* ?? Badges / tags ???????????????????????????????????????? */
html.theme-cash .badge {
    font-weight: 600;
    letter-spacing: .3px;
}

/* ?? Form controls / search ??????????????????????????????? */
html.theme-cash .form-control,
html.theme-cash .form-select,
html.theme-cash .input-group-text {
    background-color: var(--cp-bg-row) !important;
    border-color: var(--cp-border) !important;
    color: var(--cp-text) !important;
}

html.theme-cash .form-control::placeholder {
    color: var(--cp-text-muted) !important;
}

html.theme-cash .form-control:focus,
html.theme-cash .form-select:focus {
    background-color: var(--cp-bg-row) !important;
    border-color: var(--cp-primary) !important;
    box-shadow: 0 0 0 .2rem rgba(47, 107, 255, .25) !important;
    color: var(--cp-text) !important;
}

/* ?? Dropdown menus ??????????????????????????????????????? */
html.theme-cash .dropdown-menu {
    background-color: var(--cp-bg-elevated) !important;
    border: 1px solid var(--cp-border) !important;
}

html.theme-cash .dropdown-item {
    color: var(--cp-text) !important;
}

html.theme-cash .dropdown-item:hover,
html.theme-cash .dropdown-item:focus {
    background-color: var(--cp-bg-hover) !important;
    color: #fff !important;
}

html.theme-cash .dropdown-divider {
    border-color: var(--cp-border) !important;
}

/* ?? Section headers / hero bars ?????????????????????????? */
html.theme-cash .section-header,
html.theme-cash .cfb-conference__title,
html.theme-cash .cfb-teams-hero {
    background: var(--cp-bg-elevated) !important;
    color: var(--cp-text) !important;
    border: 1px solid var(--cp-border);
}

/* ?? Modals ??????????????????????????????????????????????? */
html.theme-cash .modal-content {
    background-color: var(--cp-bg-elevated) !important;
    color: var(--cp-text) !important;
    border: 1px solid var(--cp-border) !important;
}

/* ?? Nav pills ???????????????????????????????????????????? */
html.theme-cash .nav-pills .nav-link {
    color: var(--cp-text-muted) !important;
}

html.theme-cash .nav-pills .nav-link:hover {
    background-color: var(--cp-bg-hover) !important;
    color: var(--cp-text) !important;
}

html.theme-cash .nav-pills .nav-link.active {
    background-color: var(--cp-primary) !important;
    color: #fff !important;
}

/* ?? Breadcrumbs ?????????????????????????????????????????? */
html.theme-cash .breadcrumb-item a { color: var(--cp-primary) !important; }
html.theme-cash .breadcrumb-item.active { color: var(--cp-text-muted) !important; }

/* ?? Theme toggle button (visible in both themes) ????????? */
.theme-toggle-btn {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .35);
    color: #fff;
    border-radius: 999px;
    padding: 2px 12px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.6;
    cursor: pointer;
    white-space: nowrap;
}

.theme-toggle-btn:hover {
    background: rgba(255, 255, 255, .12);
}

html.theme-cash .theme-toggle-btn {
    border-color: var(--cp-border);
}

/* ?? Dark-font safety net for dark mode ??????????????????????????????
   Force light text anywhere the light theme (or inline styles) would
   otherwise leave dark, low-contrast text on the dark background. */
html.theme-cash .text-dark,
html.theme-cash .text-black,
html.theme-cash .text-body,
html.theme-cash .text-body-secondary,
html.theme-cash .text-secondary,
html.theme-cash .text-muted,
html.theme-cash .text-reset,
html.theme-cash span,
html.theme-cash li,
html.theme-cash td,
html.theme-cash th,
html.theme-cash label,
html.theme-cash dt,
html.theme-cash dd,
html.theme-cash small,
html.theme-cash strong,
html.theme-cash b,
html.theme-cash div {
    color: var(--cp-text);
}

/* Keep intentionally-coloured utilities readable (don't override these). */
html.theme-cash .text-primary { color: var(--cp-primary) !important; }
html.theme-cash .text-white   { color: #fff !important; }
html.theme-cash .text-muted,
html.theme-cash .text-body-secondary,
html.theme-cash .text-secondary { color: var(--cp-text-muted) !important; }
html.theme-cash .text-warning { color: var(--cp-gold) !important; }

/* Elements sitting on white surfaces (badges, light backgrounds) must
   NOT be flipped to light text � force dark text for legibility. */
html.theme-cash .bg-white,
html.theme-cash .bg-light,
html.theme-cash .badge.bg-light,
html.theme-cash .badge.text-dark,
html.theme-cash .table-light,
html.theme-cash .table-light td,
html.theme-cash .table-light th {
    color: #212529 !important;
}

/* The AI simulation panel keeps a white background in both themes, so its
   text must stay dark/blue for legibility (headings & names remain blue). */
html.theme-cash .simulation-content,
html.theme-cash .simulation-content p,
html.theme-cash .simulation-content li,
html.theme-cash .simulation-content td,
html.theme-cash .simulation-content div,
html.theme-cash .simulation-content span,
html.theme-cash .simulation-hero,
html.theme-cash .simulation-hero p,
html.theme-cash .simulation-hero span,
html.theme-cash .simulation-hero div,
html.theme-cash .simulation-hero h1,
html.theme-cash .simulation-hero h2,
html.theme-cash .simulation-hero h3,
html.theme-cash .markdown-content,
html.theme-cash .markdown-content p,
html.theme-cash .markdown-content li,
html.theme-cash .markdown-content td,
html.theme-cash .markdown-content div,
html.theme-cash .markdown-content span {
    color: var(--btb-body, #212529) !important;
}

html.theme-cash .simulation-content h1,
html.theme-cash .simulation-content h2,
html.theme-cash .simulation-content h3,
html.theme-cash .simulation-content strong,
html.theme-cash .simulation-hero .simulation-title,
html.theme-cash .simulation-hero .simulation-team__name,
html.theme-cash .simulation-hero .simulation-badge,
html.theme-cash .markdown-content h1,
html.theme-cash .markdown-content h2,
html.theme-cash .markdown-content h3,
html.theme-cash .markdown-content strong {
    color: var(--btb-primary, #0066cc) !important;
}

html.theme-cash .simulation-hero {
    background: linear-gradient(135deg, #06111f 0%, #0b2345 55%, #123a6b 100%);
    border: 1px solid rgba(255,255,255,.08);
}

html.theme-cash .simulation-notice {
    background: rgba(0, 102, 204, .08);
    border-color: rgba(0, 102, 204, .2);
}

html.theme-cash .simulation-shell {
    border-color: rgba(255,255,255,.08);
}

html.theme-cash .simulation-content {
    background: linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
}

html.theme-cash .markdown-content table th {
    color: #fff !important;
}

/* Coloured solid badges keep white text regardless of the utility. */
html.theme-cash .badge.bg-primary,
html.theme-cash .badge.bg-secondary,
html.theme-cash .badge.bg-success,
html.theme-cash .badge.bg-danger,
html.theme-cash .badge.bg-info,
html.theme-cash .badge.bg-dark {
    color: #fff !important;
}
html.theme-cash .badge.bg-warning {
    color: #212529 !important;
}

/* List groups & alerts often default to dark text. */
html.theme-cash .list-group-item {
    background-color: var(--cp-bg-elevated) !important;
    border-color: var(--cp-border) !important;
    color: var(--cp-text) !important;
}

/* ESPN news feed items use inline dark colours (#111/#222) that become
   invisible on the dark list-group background � force light text. */
html.theme-cash .espn-news-feed .list-group-item,
html.theme-cash .espn-news-feed .list-group-item * {
    color: var(--cp-text) !important;
}

html.theme-cash .espn-news-feed .list-group-item h5 {
    color: #fff !important;
}

/* League team modals keep white columns in both themes, so their text must
   stay dark (white-on-white otherwise in dark mode). */
html.theme-cash .nfl-team-modal__col,
html.theme-cash .nfl-team-modal__col-title,
html.theme-cash .nfl-team-modal__team,
html.theme-cash .nfl-team-modal__name,
html.theme-cash .nfl-team-modal__team span,
html.theme-cash .nfl-team-modal__teams span {
    color: #111 !important;
}

html.theme-cash .alert:not(.alert-warning):not(.alert-success):not(.alert-danger):not(.alert-info) {
    background-color: var(--cp-bg-elevated) !important;
    border-color: var(--cp-border) !important;
    color: var(--cp-text) !important;
}

/* Inline dark colours used in some Razor views (e.g. style="color:#0b0c0d")
   inside cards/main should still read as light text in dark mode. */
html.theme-cash .content-card [style*="color:#0b0c0d"],
html.theme-cash .content-card [style*="color: #0b0c0d"],
html.theme-cash .content-card [style*="color:#111"],
html.theme-cash .content-card [style*="color: #111"],
html.theme-cash .content-card [style*="color:#000"],
html.theme-cash .content-card [style*="color: #000"] {
    color: var(--cp-text) !important;
}

/* ?? Home page (SportsLine-style layout) ?????????????????? */
html.theme-cash .home-panel__title {
    background-color: var(--cp-bg-row) !important;
    color: var(--cp-text) !important;
    border-bottom: 1px solid var(--cp-border);
}
html.theme-cash .matchup-item + .matchup-item,
html.theme-cash .more-stories li + li {
    border-top-color: var(--cp-border);
}
html.theme-cash .matchup-link,
html.theme-cash .more-stories a,
html.theme-cash .matchup-teams,
html.theme-cash .feature-story__link,
html.theme-cash .feature-story__title,
html.theme-cash .expert-pick__game {
    color: var(--cp-text) !important;
}
html.theme-cash .matchup-link:hover,
html.theme-cash .more-stories a:hover {
    background-color: var(--cp-bg-hover) !important;
    color: var(--cp-primary) !important;
}
html.theme-cash .matchup-league { color: var(--cp-primary) !important; }
html.theme-cash .matchup-meta,
html.theme-cash .matchup-at,
html.theme-cash .feature-story__excerpt,
html.theme-cash .feature-story__meta,
html.theme-cash .promo-card__text,
html.theme-cash .discord-card__text,
html.theme-cash .expert-pick__analysis,
html.theme-cash .expert-pick__foot {
    color: var(--cp-text-muted) !important;
}
html.theme-cash .promo-card__title { color: var(--cp-text) !important; }
html.theme-cash .promo-card__price { color: var(--cp-primary) !important; }
html.theme-cash .feature-story__media { background: var(--cp-bg-row) !important; }
html.theme-cash .expert-pick {
    background: var(--cp-bg-row) !important;
    border-color: var(--cp-border) !important;
}
html.theme-cash .expert-pick__league { background: var(--cp-primary) !important; color: #fff !important; }
html.theme-cash .expert-pick__pick { color: var(--cp-success) !important; }
html.theme-cash .expert-pick__foot { border-top-color: var(--cp-border) !important; }
html.theme-cash .newsletter-card { background: #060911 !important; }
html.theme-cash .video-feature__title { color: var(--cp-text) !important; }
html.theme-cash .video-feature__desc { color: var(--cp-text-muted) !important; }
html.theme-cash .video-strip__thumb { background: var(--cp-bg-row) !important; }
html.theme-cash .video-strip__item,
html.theme-cash .video-strip__title { color: var(--cp-text) !important; }
html.theme-cash .video-strip__item:hover .video-strip__title { color: var(--cp-primary) !important; }

/* ?? College Football Teams grid ?????????????????????????? */
html.theme-cash .cfb-team-grid {
    background: var(--cp-bg-elevated) !important;
    border-color: var(--cp-border) !important;
}
html.theme-cash .cfb-conference__title {
    background: var(--cp-bg-row) !important;
    color: var(--cp-text) !important;
}
html.theme-cash .cfb-team,
html.theme-cash .cfb-team__name {
    color: var(--cp-text) !important;
}
html.theme-cash .cfb-team:hover {
    background: var(--cp-bg-hover) !important;
    color: var(--cp-primary) !important;
}

/* ?? NFL / League landing page (scoreboard, headlines, quick links) ?????? */
html.theme-cash .nfl-games,
html.theme-cash .nfl-headlines,
html.theme-cash .nfl-quicklinks {
    background: var(--cp-bg-elevated) !important;
    border-color: var(--cp-border) !important;
}
html.theme-cash .nfl-game-card {
    background: var(--cp-bg-row) !important;
    border-color: var(--cp-border) !important;
}
html.theme-cash .nfl-game-card__team span,
html.theme-cash .nfl-game-card__score {
    color: var(--cp-text) !important;
}
html.theme-cash .nfl-game-card__status {
    color: var(--cp-text-muted) !important;
}
html.theme-cash .nfl-headlines__list li,
html.theme-cash .nfl-quicklinks li {
    border-bottom-color: var(--cp-border) !important;
}
html.theme-cash .nfl-headlines__list a,
html.theme-cash .nfl-quicklinks a {
    color: var(--cp-text) !important;
}
html.theme-cash .nfl-headlines__list a:hover,
html.theme-cash .nfl-quicklinks a:hover {
    background: var(--cp-bg-hover) !important;
    color: var(--cp-primary) !important;
}
html.theme-cash .nfl-landing__title {
    color: var(--cp-text) !important;
}
html.theme-cash .nfl-landing__subnav a {
    color: var(--cp-text-muted) !important;
}
html.theme-cash .nfl-landing__subnav a:hover {
    background: var(--cp-bg-hover) !important;
    color: var(--cp-primary) !important;
}

