﻿
/* ---------- Base Fantasy App Theme (generic) ----------
   Applies when <body> has class="theme" plus team class like theme-chi, theme-gb, etc.
   Team classes only need to set the variables below.
-------------------------------------------------------- */

.theme {
    /* team-scoped variables to be set by team classes */
    --team-primary: #0B162A; /* dark / background */
    --team-primary-700: #08101e; /* darker */
    --team-primary-100: #1b2740; /* lighter */
    --team-accent: #C83803; /* bright accent */
    --team-accent-700: #a73105; /* darker accent */
    --team-accent-100: #ffe9df; /* pale accent */
    --team-contrast: #ffffff; /* text on primary */
    /* semantic surface tokens */
    --bg: #0f1424;
    --card-bg: #101a31;
    --card-border: #1e2944;
    --hr: #243152;
    --text: #e9edf6;
}

    /* ---------- Base ---------- */
    .theme body {
        background: var(--bg);
        color: var(--text);
    }

    .theme a {
        color: var(--team-accent);
    }

        .theme a:hover {
            color: #ff6b36;
        }

    .theme hr, .theme .row-sep tr + tr {
        border-color: var(--hr);
    }

    /* ---------- Navbar ---------- */
    .theme .navbar {
        background: linear-gradient(135deg,var(--team-primary) 0%, var(--team-primary-700) 100%);
        border-bottom: 1px solid var(--card-border);
    }

        .theme .navbar .navbar-brand,
        .theme .navbar .nav-link {
            color: #fff;
        }

            .theme .navbar .nav-link:hover,
            .theme .navbar .nav-link.active {
                color: #ffd7c8;
            }

    .theme .dropdown-menu {
        background: var(--card-bg);
        border-color: var(--card-border);
    }

    .theme .dropdown-item {
        color: var(--text);
    }

        .theme .dropdown-item:hover {
            background: var(--team-primary-100);
            color: #fff;
        }

    /* ---------- Cards / tables ---------- */
    .theme .card {
        background: var(--card-bg);
        border: 1px solid var(--card-border);
        color: var(--text);
    }

    .theme .card-header {
        background: var(--team-primary-100);
        color: #fff;
        border-bottom: 1px solid var(--card-border);
    }

    .theme .table {
        --bs-table-bg: transparent;
        color: var(--text);
    }

        .theme .table thead th {
            background: var(--team-primary);
            color: #fff;
            border-color: var(--team-primary);
        }

        .theme .table tbody tr:hover {
            background: var(--team-primary-100);
        }

    /* ---------- Buttons ---------- */
    .theme .btn-primary {
        background: var(--team-accent);
        border-color: var(--team-accent);
        color: #fff;
    }

        .theme .btn-primary:hover {
            background: var(--team-accent-700);
            border-color: var(--team-accent-700);
        }

    .theme .btn-outline-secondary {
        border-color: var(--team-accent);
        color: var(--team-accent);
        background: transparent;
    }

        .theme .btn-outline-secondary:hover {
            background: var(--team-accent);
            color: #fff;
            border-color: var(--team-accent);
        }

    .theme .btn-secondary {
        background: var(--team-primary-100);
        border-color: var(--card-border);
        color: #fff;
    }

    /* ---------- Forms ---------- */
    .theme .form-control, .theme .form-select {
        background: #0f1b33;
        border: 1px solid var(--card-border);
        color: var(--text);
    }

        .theme .form-control:focus, .theme .form-select:focus {
            border-color: var(--team-accent);
            box-shadow: 0 0 0 .2rem rgba(200,56,3,.25);
        }

    /* ---------- Alerts ---------- */
    .theme .alert-success {
        background: rgba(200,56,3,.08);
        border: 1px solid var(--team-accent);
        color: #ffd7c8;
    }

    /* ---------- Pagination ---------- */
    .theme .page-item .page-link {
        background: #0f1b33;
        color: #fff;
        border-color: var(--card-border);
    }

    .theme .page-item.active .page-link {
        background: var(--team-accent);
        border-color: var(--team-accent);
    }

    /* ---------- Your fantasy components ---------- */
    .theme .ff-team-header {
        background: linear-gradient(135deg,var(--team-primary) 0%, var(--team-primary-700) 100%);
        color: #fff;
        border-radius: .75rem;
    }

    .theme .ff-team-title {
        color: #fff;
    }

    .theme .ff-team-sub span {
        color: rgba(255,255,255,.85);
    }

    .theme .ff-dot {
        color: var(--team-accent);
    }

    .theme .ff-matchup-tile {
        border: 1px solid var(--team-accent);
        box-shadow: 0 0 0 2px color-mix(in srgb, var(--team-accent) 20%, transparent) inset;
        background: var(--card-bg);
    }

    .theme .ff-tile-title {
        color: #fff;
    }

    .theme .ff-tile-cta {
        color: var(--team-accent);
    }

    .theme a.ff-player-name {
        color: #ff6b36;
    }

        .theme a.ff-player-name:hover {
            color: #ff875e;
            text-decoration: underline;
        }

    .theme #rosterTable .row-selected {
        background: #162338 !important;
    }

    .theme #rosterTable .row-candidate {
        background: var(--team-accent-100) !important;
    }

    .theme .winbar {
        background: linear-gradient(90deg,var(--team-accent), transparent);
        height: 4px;
        border-radius: 4px;
    }
    .theme body.page-roster {
        background: #fff; /* white page */
        color: #212529; /* bootstrap default text */
    }

        /* Cards / tables back to light */
        .theme body.page-roster .card {
            background: #fff;
            color: #212529;
            border-color: #dee2e6;
        }

        .theme body.page-roster .card-header {
            background: #f8f9fa;
            color: #212529;
            border-bottom-color: #dee2e6;
        }

        .theme body.page-roster .table {
            color: #212529;
        }

            .theme body.page-roster .table thead th {
                background: #f8f9fa;
                color: #212529;
                border-color: #dee2e6;
            }

            .theme body.page-roster .table tbody tr:hover {
                background: #f8f9fa;
            }

        /* Tile + forms to light */
        .theme body.page-roster .ff-matchup-tile {
            background: #fff;
            border-color: #dee2e6;
            box-shadow: none;
        }

        .theme body.page-roster .form-control,
        .theme body.page-roster .form-select {
            background: #fff;
            color: #212529;
            border-color: #ced4da;
        }

        /* Success alert back to Bootstrap light */
        .theme body.page-roster .alert-success {
            background: #d1e7dd;
            border-color: #badbcc;
            color: #0f5132;
        }
    /* Force white text/links in the top header/navbar */
    .theme .navbar,
    .theme .navbar .navbar-brand,
    .theme .navbar .nav-link,
    .theme .navbar .nav-link:visited,
    .theme .navbar .dropdown-toggle {
        color: #fff !important;
    }

        .theme .navbar .nav-link:hover,
        .theme .navbar .dropdown-item:hover {
            color: #fff !important;
            opacity: .85;
            text-decoration: underline;
        }

        /* Make the burger icon and border visible on dark bg */
        .theme .navbar .navbar-toggler {
            border-color: rgba(255,255,255,.35);
        }

        .theme .navbar .navbar-toggler-icon {
            filter: invert(1) grayscale(100%);
        }

    /* If you have any links inside dark card headers, make them white too */
    .theme .card-header a,
    .theme .table thead a {
        color: #fff !important;
    }
/* ===== Light content everywhere, dark headers only ===== */

/* Make page/cards/tables white by default */
.theme {
    --bg: #ffffff;
    --card-bg: #ffffff;
    --card-border: #e6eaf2;
    --hr: #e6eaf2;
    --text: #1a2536;
}

    /* Keep header bars navy (already uses team-primary) */
    .theme .navbar,
    .theme .ff-team-header {
        /* leave as-is (your existing gradient) */
    }

    /* Tables/cards on white */
    .theme body {
        background: var(--bg);
        color: var(--text);
    }

    .theme .card {
        background: var(--card-bg);
        border: 1px solid var(--card-border);
    }

    .theme .table {
        --bs-table-bg: transparent;
        color: var(--text);
    }

    .theme hr, .theme .row-sep tr + tr {
        border-color: var(--hr);
    }

    /* Softer hover on white */
    .theme .table tbody tr:hover {
        background: var(--team-accent-100);
    }

    /* ===== Matchup: make points always orange & readable ===== */

    /* Big score numbers in the header */
    .theme .matchup-header .total-num {
        color: var(--team-accent);
        font-weight: 800;
        opacity: 1; /* ensure not dim */
    }

    /* Per-row points columns (left & right) */
    .theme .matchup-table .pts-left,
    .theme .matchup-table .pts-right {
        color: var(--team-accent);
        font-weight: 700;
        opacity: 1;
    }

    /* Position column—use accent for headings */
    .theme .matchup-table thead th {
        background: var(--team-primary);
        color: #fff;
        border-color: var(--team-primary);
    }

    .theme .matchup-table .pos-col {
        color: var(--team-accent);
        font-weight: 700;
    }

    /* The mini scoreboard card stays light */
    .theme .matchup-header .score-block {
        background: var(--card-bg);
        border: 1px solid var(--card-border);
        border-radius: .5rem;
    }

    /* Player names: accent color on white */
    .theme a.ff-player-name {
        color: var(--team-accent);
    }

        .theme a.ff-player-name:hover {
            color: color-mix(in srgb, var(--team-accent) 85%, white);
            text-decoration: underline;
        }
    /* Matchup tile: make inner panel the same navy gradient as header */
    .theme .ff-matchup-tile .ff-tile-body,
    .theme .ff-matchup-tile .ff-tilerow {
        background: linear-gradient(135deg, var(--team-primary) 0%, var(--team-primary-700) 100%);
        border-radius: .65rem;
    }

    /* keep text readable on the dark panel */
    .theme .ff-matchup-tile .ff-tilerow-center {
        color: #fff;
        opacity: .9;
    }

    .theme .ff-matchup-tile .helmet,
    .theme .ff-matchup-tile img.ff-tile-avatar {
        background: #fff;
    }
    /* logos still pop */

    /* keep scores in team accent (orange for CHI) */
    .theme .ff-matchup-tile .ff-score {
        color: var(--team-accent);
        font-weight: 800;
    }
    /* --- Player modal: white dropdown with team-accent text --- */

    /* The list panel */
    .theme .modal .dropdown-menu {
        background: #fff; /* white list */
        border-color: var(--team-accent); /* subtle accent border */
        box-shadow: 0 6px 18px rgba(0,0,0,.25);
    }

    /* Each row in the list */
    .theme .modal .dropdown-item {
        color: var(--team-accent); /* team accent text (e.g., Bears orange) */
    }

        /* Hover / active row */
        .theme .modal .dropdown-item:hover,
        .theme .modal .dropdown-item:focus,
        .theme .modal .dropdown-item.active {
            background: var(--team-accent-100); /* pale accent background */
            color: var(--team-primary); /* dark navy text for contrast */
        }

    /* The button / toggle itself inside the modal */
    .theme .modal .btn.dropdown-toggle,
    .theme .modal .form-select {
        background: #fff;
        color: var(--team-accent);
        border-color: var(--team-accent);
    }

    /* Optional: if this modal uses a native <select>, style its options too */
    .theme .modal select.form-select option {
        background: #fff;
        color: var(--team-accent);
    }

        .theme .modal select.form-select option:checked {
            /* Chrome needs a gradient to override UA highlight */
            background: var(--team-accent-100) linear-gradient(0deg,var(--team-accent-100),var(--team-accent-100));
            color: var(--team-primary);
        }
    /* Players page search — white background with themed lettering */
    .theme .player-search,
    .theme #playerSearch {
        background: #ffffff !important;
        color: var(--team-accent) !important; /* e.g., Bears orange */
        border-color: var(--card-border) !important;
        caret-color: var(--team-accent);
    }

        /* Placeholder uses a softer version of the accent */
        .theme .player-search::placeholder,
        .theme #playerSearch::placeholder {
            color: color-mix(in srgb, var(--team-accent) 60%, #666);
            opacity: .85;
        }

        /* Focus ring in team accent */
        .theme .player-search:focus,
        .theme #playerSearch:focus {
            border-color: var(--team-accent) !important;
            box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--team-accent) 25%, transparent) !important;
            outline: none;
        }



/* ---------- 32 NFL Teams (primary + accent palettes) ---------- */
/* Scoped to <html> so toggling class on documentElement takes effect */

html.theme-ari {
    --team-primary: #4e0f1f;
    --team-primary-700: #2b0a12;
    --team-primary-100: #69142a;
    --team-accent: #000000;
    --team-accent-700: #000000;
    --team-accent-100: #1f1f1f;
    --team-contrast: #fff;
}

html.theme-atl {
    --team-primary: #2b0a12;
    --team-primary-700: #160408;
    --team-primary-100: #3a0f19;
    --team-accent: #A71930;
    --team-accent-700: #851326;
    --team-accent-100: #ffd4dc;
    --team-contrast: #fff;
}

html.theme-bal {
    --team-primary: #241773;
    --team-primary-700: #190f4f;
    --team-primary-100: #2e1f8e;
    --team-accent: #9E7C0C;
    --team-accent-700: #7a5f09;
    --team-accent-100: #f5e6b8;
    --team-contrast: #fff;
}

html.theme-buf {
    --team-primary: #00338D;
    --team-primary-700: #00225e;
    --team-primary-100: #083fb0;
    --team-accent: #C60C30;
    --team-accent-700: #9b0a26;
    --team-accent-100: #ffd1d9;
    --team-contrast: #fff;
}

html.theme-car {
    --team-primary: #101820;
    --team-primary-700: #0a1116;
    --team-primary-100: #172431;
    --team-accent: #0085CA;
    --team-accent-700: #006aa3;
    --team-accent-100: #d7f1ff;
    --team-contrast: #fff;
}

html.theme-chi {
    --team-primary: #0B162A;
    --team-primary-700: #08101e;
    --team-primary-100: #1b2740;
    --team-accent: #C83803;
    --team-accent-700: #a73105;
    --team-accent-100: #ffe9df;
    --team-contrast: #fff;
}

html.theme-cin {
    --team-primary: #000000;
    --team-primary-700: #000;
    --team-primary-100: #1f1f1f;
    --team-accent: #FB4F14;
    --team-accent-700: #c43f10;
    --team-accent-100: #ffe1d5;
    --team-contrast: #fff;
}

html.theme-cle {
    --team-primary: #311D00;
    --team-primary-700: #1c1000;
    --team-primary-100: #4a2f0c;
    --team-accent: #FF3C00;
    --team-accent-700: #c72f00;
    --team-accent-100: #ffd9cc;
    --team-contrast: #fff;
}

html.theme-dal {
    --team-primary: #041E42;
    --team-primary-700: #03142c;
    --team-primary-100: #0c2a5f;
    --team-accent: #869397;
    --team-accent-700: #6d777a;
    --team-accent-100: #e4eaee;
    --team-contrast: #fff;
}

html.theme-den {
    --team-primary: #002244;
    --team-primary-700: #00152c;
    --team-primary-100: #062e63;
    --team-accent: #FB4F14;
    --team-accent-700: #c43f10;
    --team-accent-100: #ffe1d5;
    --team-contrast: #fff;
}

html.theme-det {
    --team-primary: #0b2a4a;
    --team-primary-700: #06182a;
    --team-primary-100: #12395f;
    --team-accent: #0076B6;
    --team-accent-700: #005e90;
    --team-accent-100: #d6efff;
    --team-contrast: #fff;
}

html.theme-gb {
    --team-primary: #203731;
    --team-primary-700: #15231f;
    --team-primary-100: #2d4d46;
    --team-accent: #FFB612;
    --team-accent-700: #cc920e;
    --team-accent-100: #fff0c3;
    --team-contrast: #fff;
}

html.theme-hou {
    --team-primary: #03202F;
    --team-primary-700: #021521;
    --team-primary-100: #093247;
    --team-accent: #A71930;
    --team-accent-700: #851326;
    --team-accent-100: #ffd4dc;
    --team-contrast: #fff;
}

html.theme-ind {
    --team-primary: #0b1f3b;
    --team-primary-700: #081429;
    --team-primary-100: #11325a;
    --team-accent: #0072CE;
    --team-accent-700: #005aa3;
    --team-accent-100: #d6ebff;
    --team-contrast: #fff;
}

html.theme-jax {
    --team-primary: #101820;
    --team-primary-700: #0a1116;
    --team-primary-100: #18242f;
    --team-accent: #006778;
    --team-accent-700: #00515f;
    --team-accent-100: #d6f4f6;
    --team-contrast: #fff;
}

html.theme-kc {
    --team-primary: #8c0f1f;
    --team-primary-700: #5b0a14;
    --team-primary-100: #b01429;
    --team-accent: #FFB81C;
    --team-accent-700: #cc9317;
    --team-accent-100: #fff0c2;
    --team-contrast: #fff;
}

html.theme-lv {
    --team-primary: #000000;
    --team-primary-700: #000;
    --team-primary-100: #202020;
    --team-accent: #A5ACAF;
    --team-accent-700: #8a9296;
    --team-accent-100: #e7ecef;
    --team-contrast: #fff;
}

html.theme-lac {
    --team-primary: #002A5E;
    --team-primary-700: #001b3b;
    --team-primary-100: #083a81;
    --team-accent: #FFC20E;
    --team-accent-700: #d3a40c;
    --team-accent-100: #fff2bf;
    --team-contrast: #fff;
}

html.theme-lar {
    --team-primary: #003594;
    --team-primary-700: #002666;
    --team-primary-100: #0a45b9;
    --team-accent: #FFA300;
    --team-accent-700: #d98600;
    --team-accent-100: #ffe9bf;
    --team-contrast: #fff;
}

html.theme-mia {
    --team-primary: #005e61;
    --team-primary-700: #07393b;
    --team-primary-100: #0d7f84;
    --team-accent: #FC4C02;
    --team-accent-700: #c93d02;
    --team-accent-100: #ffd9c8;
    --team-contrast: #fff;
}

html.theme-min {
    --team-primary: #4F2683;
    --team-primary-700: #36185a;
    --team-primary-100: #6533a8;
    --team-accent: #FFC62F;
    --team-accent-700: #d1a324;
    --team-accent-100: #fff2c4;
    --team-contrast: #fff;
}

html.theme-ne {
    --team-primary: #002244;
    --team-primary-700: #00152c;
    --team-primary-100: #08305c;
    --team-accent: #C60C30;
    --team-accent-700: #9b0a26;
    --team-accent-100: #ffd1d9;
    --team-contrast: #fff;
}

html.theme-no {
    --team-primary: #101820;
    --team-primary-700: #0b1218;
    --team-primary-100: #182433;
    --team-accent: #D3BC8D;
    --team-accent-700: #b39e74;
    --team-accent-100: #fff1d7;
    --team-contrast: #fff;
}

html.theme-nyg {
    --team-primary: #0B2265;
    --team-primary-700: #071742;
    --team-primary-100: #13308a;
    --team-accent: #A71930;
    --team-accent-700: #851326;
    --team-accent-100: #ffd4dc;
    --team-contrast: #fff;
}

html.theme-nyj {
    --team-primary: #125740;
    --team-primary-700: #0c3a2a;
    --team-primary-100: #1e7f59;
    --team-accent: #00A884;
    --team-accent-700: #00856a;
    --team-accent-100: #cffff2;
    --team-contrast: #fff;
}

html.theme-phi {
    --team-primary: #004C54;
    --team-primary-700: #003338;
    --team-primary-100: #0b6973;
    --team-accent: #A5ACAF;
    --team-accent-700: #8a9296;
    --team-accent-100: #e7ecef;
    --team-contrast: #fff;
}

html.theme-pit {
    --team-primary: #101820;
    --team-primary-700: #0a1116;
    --team-primary-100: #18242f;
    --team-accent: #FFB612;
    --team-accent-700: #cc920e;
    --team-accent-100: #fff0c3;
    --team-contrast: #fff;
}

html.theme-sf {
    --team-primary: #7C0000;
    --team-primary-700: #520000;
    --team-primary-100: #a00000;
    --team-accent: #B3995D;
    --team-accent-700: #8d7a4b;
    --team-accent-100: #f3e7c9;
    --team-contrast: #fff;
}

html.theme-sea {
    --team-primary: #002244;
    --team-primary-700: #00152c;
    --team-primary-100: #08305c;
    --team-accent: #69BE28;
    --team-accent-700: #4e991c;
    --team-accent-100: #e3f6cf;
    --team-contrast: #fff;
}

html.theme-tb {
    --team-primary: #34302B;
    --team-primary-700: #1f1c19;
    --team-primary-100: #47423c;
    --team-accent: #D50A0A;
    --team-accent-700: #a80808;
    --team-accent-100: #ffd0d0;
    --team-contrast: #fff;
}

html.theme-ten {
    --team-primary: #0C2340;
    --team-primary-700: #08182d;
    --team-primary-100: #12345c;
    --team-accent: #4B92DB;
    --team-accent-700: #377bc0;
    --team-accent-100: #d7eaff;
    --team-contrast: #fff;
}

html.theme-was {
    --team-primary: #5A1414;
    --team-primary-700: #3a0c0c;
    --team-primary-100: #7a1b1b;
    --team-accent: #FFB612;
    --team-accent-700: #cc920e;
    --team-accent-100: #fff0c3;
    --team-contrast: #fff;
}
