/* Recovered verbatim from the Wayback capture of 7fb.net, 17 Dec 2025.
   This is the original stylesheet -- kept as-is so the rebuilt site looks
   exactly like the one that was lost. */
* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            background: #1a1a1a;
            color: #e0e0e0;
            padding: 20px;
            line-height: 1.6;
        }

        .container {
            max-width: 1400px;
            margin: 0 auto;
        }

        .header {
            text-align: center;
            margin-bottom: 30px;
        }

        .header h1 {
            font-size: 2.5em;
            margin-bottom: 5px;
            color: #ffffff;
        }

        .header p {
            color: #888;
            font-size: 1.1em;
        }

        .filters {
            background: #252525;
            padding: 20px;
            border-radius: 8px;
            margin-bottom: 20px;
            display: flex;
            gap: 15px;
            flex-wrap: wrap;
            align-items: center;
        }

        .filters label {
            color: #888;
            font-size: 0.9em;
            margin-right: 5px;
        }

        .filters select {
            background: #1a1a1a;
            color: #e0e0e0;
            border: 1px solid #3a3a3a;
            padding: 8px 12px;
            border-radius: 4px;
            font-size: 1em;
            cursor: pointer;
        }

        .filters button {
            background: #4a9eff;
            color: white;
            border: none;
            padding: 8px 20px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 1em;
            font-weight: 500;
        }

        .filters button:hover {
            background: #3a8eef;
        }

        .refresh-toggle {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .refresh-toggle input[type="checkbox"] {
            width: 18px;
            height: 18px;
            cursor: pointer;
        }

        .filter-divider {
            width: 1px;
            height: 30px;
            background: #3a3a3a;
            margin: 0 5px;
        }

        .stats-bar {
            display: flex;
            gap: 15px;
            margin-bottom: 20px;
            flex-wrap: wrap;
        }

        .stat-badge {
            background: #252525;
            padding: 12px 20px;
            border-radius: 6px;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .stat-badge .label {
            color: #888;
            font-size: 0.9em;
        }

        .stat-badge .count {
            color: #ffffff;
            font-size: 1.3em;
            font-weight: bold;
        }

        .stat-badge.live {
            border-left: 4px solid #4caf50;
        }

        .stat-badge.pregame {
            border-left: 4px solid #888;
        }

        .stat-badge.final {
            border-left: 4px solid #666;
        }

        .stat-badge.pinned {
            border-left: 4px solid #ffd700;
            cursor: pointer;
        }

        .stat-badge.pinned:hover {
            background: #2a2a2a;
        }

        .games-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
            gap: 20px;
            margin-bottom: 30px;
        }

        .game-card {
            background: #252525;
            border-radius: 8px;
            overflow: hidden;
            transition: transform 0.2s;
        }

        .game-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(0,0,0,0.3);
        }

        .game-card {
            cursor: grab;
        }

        .game-card:active {
            cursor: grabbing;
        }

        .game-card.pinned {
            border: 2px solid #ffd700;
            box-shadow: 0 0 12px rgba(255, 215, 0, 0.2);
        }

        .sortable-ghost {
            opacity: 0.4;
        }

        .game-header {
            padding: 12px 15px;
            background: #2a2a2a;
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-bottom: 1px solid #3a3a3a;
        }

        .game-net {
            font-size: 0.75em;
            color: #9a9a9a;
            white-space: nowrap;
            letter-spacing: 0.02em;
        }

        .game-header-left {
            display: flex;
            align-items: center;
            gap: 10px;
            flex: 1;
        }

        .pin-button {
            background: none;
            border: none;
            cursor: pointer;
            font-size: 1.2em;
            padding: 4px;
            opacity: 0.3;
            transition: opacity 0.2s, transform 0.2s;
            line-height: 1;
        }

        .pin-button:hover {
            opacity: 0.6;
            transform: scale(1.1);
        }

        .pin-button.pinned {
            opacity: 1;
        }

        .game-status {
            font-weight: 600;
            font-size: 0.9em;
            flex: 1;
        }

        .game-status.pregame {
            color: #888;
        }

        .game-status.live {
            color: #4caf50;
        }

        .game-status.halftime {
            color: #ff9800;
        }

        .game-status.final {
            color: #666;
        }

        .game-time {
            color: #888;
            font-size: 0.85em;
        }

        .down-distance {
            color: #ff9800;
            font-size: 0.85em;
            font-weight: 600;
            margin-left: 8px;
        }

        .game-body {
            padding: 15px;
        }

        .team-row {
            display: grid;
            /* The name column gives way (it ellipsizes) so overtime periods never push
               the total off the card. */
            grid-template-columns: minmax(0, 1fr) auto auto auto auto auto;
            gap: 8px;
            padding: 10px 0;
            align-items: center;
            border-left: 4px solid;
            padding-left: 12px;
            margin-bottom: 8px;
        }

        .team-name {
            font-weight: 600;
            font-size: 1.05em;
            display: flex;
            flex-direction: column;
            gap: 2px;
            min-width: 0;
        }

        .team-name-line {
            display: flex;
            align-items: center;
            gap: 6px;
            min-width: 0;
        }

        .team-name-text {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .team-record {
            font-size: 0.8em;
            color: #888;
            font-weight: normal;
        }

        .team-icons {
            display: flex;
            gap: 3px;
            flex-shrink: 0;
            font-size: 0.9em;
        }

        .team-row.winning .team-name-text {
            font-weight: 700;
        }

        .team-row.winning .total-score {
            color: #4caf50;
            text-shadow: 0 0 8px rgba(76, 175, 80, 0.4);
        }

        .quarter-score {
            text-align: center;
            min-width: 25px;
            color: #888;
            font-size: 0.95em;
        }

        .total-score {
            text-align: center;
            font-weight: bold;
            font-size: 1.3em;
            min-width: 35px;
            color: #ffffff;
        }

        .game-footer {
            padding: 10px 15px;
            background: #2a2a2a;
            border-top: 1px solid #3a3a3a;
            font-size: 0.85em;
            color: #888;
            text-align: center;
        }

        .last-updated {
            text-align: center;
            color: #666;
            font-size: 0.9em;
            margin: 20px 0;
        }

        .no-games {
            text-align: center;
            padding: 60px 20px;
            color: #666;
            font-size: 1.2em;
        }

        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.5; }
        }

        .live-indicator {
            display: inline-block;
            width: 8px;
            height: 8px;
            background: #4caf50;
            border-radius: 50%;
            animation: pulse 2s infinite;
            margin-right: 5px;
        }

        /* Mobile Responsive Styles */
        @media screen and (max-width: 768px) {
            body {
                padding: 10px;
            }

            .header h1 {
                font-size: 1.8em;
            }

            .header p {
                font-size: 0.95em;
            }

            .filters {
                padding: 15px;
                gap: 10px;
                flex-direction: column;
                align-items: stretch;
            }

            .filters select {
                font-size: 0.9em;
                padding: 6px 10px;
            }

            .filters button {
                font-size: 0.9em;
                padding: 6px 15px;
            }

            .stats-bar {
                gap: 10px;
            }

            .stat-badge {
                padding: 8px 12px;
                flex: 1;
                min-width: calc(50% - 5px);
            }

            .stat-badge .label {
                font-size: 0.8em;
            }

            .stat-badge .count {
                font-size: 1.1em;
            }

            /* 2-column grid for mobile */
            .games-grid {
                grid-template-columns: repeat(2, 1fr);
                gap: 8px;
            }

            .game-card {
                border-radius: 6px;
                cursor: default;
            }

            .game-card:active {
                cursor: default;
            }

            .game-header {
                padding: 5px 8px;
                font-size: 0.75em;
            }

            .game-status {
                font-size: 0.8em;
            }

            .game-body {
                padding: 6px 8px;
            }

            /* Hide quarter scores on mobile, show only totals */
            .team-row .quarter-score {
                display: none !important;
            }

            .team-row {
                grid-template-columns: 1fr auto;
                padding: 4px 0;
                gap: 6px;
            }

            .team-name {
                font-size: 0.85em;
            }

            .team-record {
                font-size: 0.75em;
            }

            .team-icons {
                font-size: 0.8em;
            }

            .total-score {
                font-size: 1.3em;
                min-width: 35px;
            }

            .game-footer {
                padding: 4px 8px;
                font-size: 0.7em;
            }

            .pin-button {
                width: 24px;
                height: 24px;
                font-size: 0.8em;
                top: 3px;
                right: 3px;
            }

            /* Make down & distance more compact */
            .down-distance {
                font-size: 0.7em;
                padding: 2px 6px;
                margin-top: 3px;
            }

            .last-updated {
                font-size: 0.8em;
                padding: 8px;
            }
        }

        /* Extra small mobile - single column (under 400px) */
        @media screen and (max-width: 400px) {
            /* Switch back to single column */
            .games-grid {
                grid-template-columns: 1fr;
                gap: 10px;
            }

            .header h1 {
                font-size: 1.5em;
            }

            .stat-badge {
                min-width: 100%;
            }

            .team-name {
                font-size: 0.9em;
            }

            .total-score {
                font-size: 1.4em;
                min-width: 40px;
            }

            .game-header {
                padding: 6px 10px;
                font-size: 0.8em;
            }

            .game-body {
                padding: 8px 10px;
            }

            .game-footer {
                padding: 5px 10px;
                font-size: 0.75em;
            }

            .team-row {
                padding: 6px 0;
                gap: 8px;
            }
        }

/* ---- Affiliate cards -------------------------------------------------------
   Added Sep 2026. Sits on the same row as the stats bar, ads to the right, and
   wraps underneath on narrow screens rather than squeezing the counters.
   Font Awesome glyphs stand in for product images: nothing hotlinked, nothing to
   break when Amazon rotates its CDN, and no layout shift while images load.
   Colours follow the existing palette (#252525 cards, #888 labels, #ff9800). */
.header-row {
    display: flex;
    gap: 15px;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.header-row .stats-bar {
    margin-bottom: 0;
    flex: 0 0 auto;
}

.ad-row {
    display: flex;
    gap: 10px;
    flex: 1 1 420px;    /* takes the remaining width, wraps below when it cannot */
    min-width: 0;
}

.ad-card {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #252525;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    padding: 10px 14px;
    text-decoration: none;
    min-width: 0;
    transition: border-color .2s, transform .2s;
}

.ad-card:hover            { border-color: #ff9800; transform: translateY(-1px); }
.ad-card:hover .ad-icon   { color: #ff9800; }
.ad-card:hover .ad-title  { color: #ffffff; }

.ad-icon {
    font-size: 1.5rem;
    color: #666;
    flex-shrink: 0;
    width: 2rem;
    text-align: center;
    transition: color .2s;
}

.ad-body  { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.ad-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: #e0e0e0;
    line-height: 1.25;
    transition: color .2s;
}

.ad-meta  { font-size: 0.7rem; color: #666; white-space: nowrap; }

.ad-label {
    text-transform: uppercase;
    font-size: 0.6rem;
    letter-spacing: 0.5px;
    color: #888;
}

@media (max-width: 900px) {
    .ad-row  { flex-basis: 100%; }
    .ad-card { padding: 8px 12px; }
    .ad-icon { font-size: 1.2rem; width: 1.6rem; }
}

/* ---- Stats page ------------------------------------------------------------
   Reuses the scoreboard's card and badge styles; these are the additions. */
.stats-h2 {
    font-size: 1.1rem;
    color: #e0e0e0;
    margin: 28px 0 12px;
    font-weight: 600;
}

.stats-link {
    color: #888;
    text-decoration: none;
    font-size: 0.9em;
    margin-left: auto;
}
.stats-link:hover { color: #ff9800; }

.stat-card-icon {
    color: #ff9800;
    font-size: 1rem;
    margin-right: 8px;
}

.dim { color: #666; font-weight: normal; }

/* Horizontal scroll rather than a squashed table on a phone. */
.standings-wrap { overflow-x: auto; margin-bottom: 24px; }

.standings {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    min-width: 520px;
}

.standings th {
    text-align: right;
    padding: 8px 10px;
    color: #888;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid #3a3a3a;
    white-space: nowrap;
}

.standings td {
    text-align: right;
    padding: 7px 10px;
    color: #c0c0c0;
    border-bottom: 1px solid #2a2a2a;
    white-space: nowrap;
}

.standings th:nth-child(2), .standings td.tname { text-align: left; }
.standings tr:hover td { background: #252525; }

.standings .rank  { color: #666; width: 2rem; }
.standings .tname { color: #e0e0e0; font-weight: 600; }
.standings .w     { color: #ffffff; font-weight: 700; }
.standings .pos   { color: #4caf50; }
.standings .neg   { color: #ef5350; }

.standings tr.current-season td { background: #252525; color: #ffffff; }

/* ---- Live: red zone --------------------------------------------------------
   A drive inside the 20 is the thing worth glancing at on a busy Sunday, so the
   whole card is marked rather than just a line of text. The pulse is slow and
   subtle on purpose: several cards can be in the red zone at once and a fast
   flash across a 16-card grid is unusable. */
.game-card.red-zone {
    border-color: #d32f2f;
    box-shadow: 0 0 0 1px rgba(211, 47, 47, 0.35);
    animation: rz-pulse 2.4s ease-in-out infinite;
}

@keyframes rz-pulse {
    0%, 100% { box-shadow: 0 0 0 1px rgba(211, 47, 47, 0.30); }
    50%      { box-shadow: 0 0 8px 1px rgba(211, 47, 47, 0.55); }
}

.game-footer.rz {
    color: #ff6b6b;
    font-weight: 600;
    letter-spacing: 0.3px;
}

/* Respect a reduced-motion preference: keep the colour, drop the animation. */
@media (prefers-reduced-motion: reduce) {
    .game-card.red-zone { animation: none; }
}

/* ===== Sep 2026 additions: nav, card extras, team/game/standings/schedule/bracket pages ===== */
h1 a.plain { color: inherit; text-decoration: none; }
.site-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin: -8px 0 18px; font-size: 0.9em; }
.site-nav a { color: #888; text-decoration: none; padding: 4px 2px; border-bottom: 2px solid transparent; }
.site-nav a:hover { color: #e0e0e0; }
.site-nav a.active { color: #ffffff; border-bottom-color: #4a9eff; }

/* Overtime adds periods: keep them as extra columns, not a second row, and tighten the
   row once there are five or more of them (the 5th period is the row's 6th child). */
.team-row { grid-auto-flow: column; grid-auto-columns: auto; }
.team-row:has(> .quarter-score:nth-child(6)) { gap: 5px; }
.team-row:has(> .quarter-score:nth-child(6)) .quarter-score { min-width: 20px; font-size: 0.88em; }
.team-row:has(> .quarter-score:nth-child(6)) .total-score { min-width: 30px; }
.team-record { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
a.team-name-text { color: inherit; text-decoration: none; }
a.team-name-text:hover { text-decoration: underline; }
a.game-status { text-decoration: none; }
a.game-status:hover { text-decoration: underline; }
.game-footer[hidden], .game-net[hidden] { display: none; }
.card-extra:empty { display: none; }
.card-note { padding: 6px 15px; font-size: 0.8em; color: #999; border-top: 1px solid #2f2f2f; line-height: 1.35; }
.card-note.last-play { color: #c9c9c9; }
.card-note.headline { color: #ddd; }
.card-note.meeting { color: #666; font-size: 0.75em; }
.card-leaders { padding: 4px 15px 6px; font-size: 0.78em; color: #aaa; border-top: 1px solid #2f2f2f; }
.card-leaders div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lcat { display: inline-block; min-width: 3.2em; color: #4a9eff; font-weight: 600; font-size: 0.9em; text-transform: uppercase; letter-spacing: 0.3px; }
.byes { text-align: center; color: #777; font-size: 0.85em; margin: -6px 0 14px; }
.byes a { color: #999; text-decoration: none; }
.byes a:hover { color: #fff; }
.stat-badge.share { cursor: pointer; border: 1px solid #3a3a3a; background: #252525; color: #888; font: inherit; font-size: 0.85em; }
.stat-badge.share:hover { color: #fff; border-color: #4a9eff; }
.dim.small, p.small { font-size: 0.8em; text-align: center; }

/* Team page */
.team-hero { background: #252525; border-left: 6px solid #888; border-radius: 8px; padding: 14px 18px; margin-bottom: 18px; }
.team-hero-name { font-size: 1.5em; font-weight: 700; color: #fff; }
.team-hero-line { display: flex; flex-wrap: wrap; gap: 6px 18px; color: #aaa; font-size: 0.9em; margin-top: 6px; }
.team-hero-line a { color: #4a9eff; text-decoration: none; }
.week-tag { grid-column: 1 / -1; color: #666; font-size: 0.8em; text-transform: uppercase; letter-spacing: 1px; margin: 6px 0 -8px 4px; }
.grid-break { grid-column: 1 / -1; color: #ff9800; font-weight: 700; margin-top: 12px; }

/* Game page */
.game-page { max-width: 900px; margin: 0 auto; }
.gp-header { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: stretch; }
.gp-team { background: #252525; border-left: 6px solid #888; border-radius: 8px; padding: 12px 16px; }
.gp-team.winning .gp-score { color: #4caf50; }
.gp-name { color: #fff; font-weight: 700; font-size: 1.2em; text-decoration: none; }
.gp-rec { color: #888; font-size: 0.85em; }
.gp-score { font-size: 2.4em; font-weight: 700; color: #e0e0e0; line-height: 1.1; margin-top: 4px; }
.gp-at { align-self: center; color: #666; font-size: 1.4em; }
.gp-status { text-align: center; font-weight: 600; margin: 12px 0 4px; }
.gp-status.live { color: #4caf50; } .gp-status.halftime { color: #ff9800; } .gp-status.final { color: #888; } .gp-status.pregame { color: #888; }
.gp-meta { text-align: center; color: #888; font-size: 0.85em; }
.gp-headline { text-align: center; color: #ddd; margin: 12px 0; }
.gp-live { text-align: center; color: #ff9800; font-weight: 600; margin: 8px 0; }
.gp-leaders div { padding: 3px 0; color: #ccc; }
.standings.linescore, .standings.tstats, .standings.scoring, .standings.h2h { margin: 8px auto; }
.standings.scoring td.play { text-align: left; }
.wp-chart { width: 100%; height: auto; background: #202020; border: 1px solid #333; border-radius: 6px; display: block; margin-bottom: 8px; }
.drives .drive { background: #222; border-left: 3px solid #444; margin-bottom: 4px; border-radius: 4px; }
.drives .drive.scored { border-left-color: #4caf50; }
.drives summary { cursor: pointer; padding: 8px 12px; color: #ccc; font-size: 0.9em; }
.drives summary .tname { font-weight: 700; color: #fff; }
.drives .plays { margin: 0; padding: 4px 12px 10px 34px; color: #aaa; font-size: 0.85em; line-height: 1.45; }

/* Standings / schedule / bracket */
.standings-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
@media (max-width: 900px) { .standings-cols { grid-template-columns: 1fr; } .gp-header { grid-template-columns: 1fr; } .gp-at { display: none; } }
.standings th.divname { text-align: left; color: #fff; }
.swatch { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: middle; }
.standings td.tname a { color: inherit; text-decoration: none; }
.standings td.tname a:hover { text-decoration: underline; }
.standings tr.seed-bye td { background: #26302a; }
.standings tr.hunt td { color: #777; }
.standings tr.hunt td.tname { color: #999; }
.standings.sched td, .standings.sched th { padding: 4px 6px; font-size: 0.8em; text-align: center; }
.standings.sched td a { color: inherit; text-decoration: none; display: block; }
.standings.sched th a { color: #ccc; text-decoration: none; }
.standings.sched tr.sched-div td { text-align: left; color: #4a9eff; font-weight: 700; background: #202020; }
.sc-w { background: #1f3a24; color: #9be0a3; } .sc-l { background: #3a1f1f; color: #e09b9b; } .sc-t { background: #333; color: #ccc; }
.sc-live { background: #3a3417; color: #ffd76b; } .sc-pre { color: #999; } .sc-bye { color: #555; font-size: 0.75em; }
.bracket { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
@media (max-width: 700px) { .bracket { grid-template-columns: 1fr; } }
.bracket-round { display: flex; flex-direction: column; gap: 10px; justify-content: space-around; }
.bracket-title { color: #888; font-size: 0.8em; text-transform: uppercase; letter-spacing: 1px; text-align: center; }
.mini-game { display: block; background: #252525; border-radius: 6px; padding: 6px 8px; text-decoration: none; color: #ccc; }
.mini-game:hover { background: #2c2c2c; }
.mini-row { display: flex; justify-content: space-between; border-left: 4px solid #888; padding: 2px 8px; margin: 2px 0; }
.mini-row.win { color: #fff; font-weight: 700; }
.mini-when { color: #666; font-size: 0.75em; text-align: center; margin-top: 2px; }

/* Links inside prose, notices and footers: site blue, no browser default */
.no-games a, .last-updated a, .gp-meta a, .gp-leaders a, .drives a, p.dim a, .byes a, .team-hero-line a, .stats-h2 a {
    color: #4a9eff; text-decoration: none;
}
.no-games a:hover, .last-updated a:hover, .gp-meta a:hover, .drives a:hover, p.dim a:hover, .stats-h2 a:hover {
    text-decoration: underline;
}

.team-qb { color: #9aa; font-weight: 500; }
.team-row.winning .team-qb { color: #bcb; }
