
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
            background-color: #f8f8f8;
            color: #333;
            line-height: 1.6;
        }
        /* ============ ERROR & RECONNECTING STATES ============ */
        .error-banner {
            background: #fee;
            border: 1px solid #fcc;
            color: #c33;
            padding: 15px 20px;
            border-radius: 6px;
            margin-bottom: 20px;
            display: none;
        }

        .error-banner.show {
            display: block;
        }

        .reconnecting-banner {
            background: #fef3cd;
            border: 1px solid #ffc107;
            color: #856404;
            padding: 15px 20px;
            border-radius: 6px;
            margin-bottom: 20px;
            display: none;
        }

        .reconnecting-banner.show {
            display: block;
        }

        /* ============ RESPONSIVE ============ */
        @media (max-width: 768px) {
            .h2h-inner {
                display: grid;
                grid-template-areas: "centre centre centre" "left vs right";
                grid-template-columns: 1fr auto 1fr;
                gap: 10px 6px;
                padding: 12px 14px 14px;
                align-items: center;
            }
            .h2h-centre { grid-area: centre; padding: 0; justify-content: center; }
            .h2h-vs-divider { display: none; }
            .h2h-vs-mobile {
                grid-area: vs;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 10px;
                font-weight: 900;
                color: #d1d5db;
                letter-spacing: 0.1em;
            }
            .h2h-team-col:first-child { grid-area: left; width: auto; align-items: center; }
            .h2h-team-col:nth-child(3) { grid-area: right; width: auto; align-items: center; }
            .fight-row { flex-wrap: wrap; }
        }

        @media (max-width: 768px) {
            .header-container {
                padding: 0 15px;
            }

            .logo {
                font-size: 36px;
            }

            nav {
                gap: 15px;
                font-size: 12px;
            }

            .upcoming-fights {
                grid-template-columns: 1fr;
            }

            .draft-container {
                grid-template-columns: 1fr;
            }

            .results-container {
                grid-template-columns: 1fr;
            }

            .teams-grid {
                grid-template-columns: 1fr 1fr;
            }

            .team-assignment-row {
                grid-template-columns: 1fr;
            }

            main {
                padding: 20px 15px;
            }

            .auth-card,
            .setup-card {
                padding: 30px 20px;
            }

            .ladder-table th,
            .ladder-table td {
                padding: 12px 10px;
                font-size: 13px;
            }

            .fight-matchup {
                flex-direction: column;
            }

            .vs-text {
                align-self: center;
                margin-top: 10px;
                margin-bottom: 10px;
            }
        }

        /* ── Teams page: horizontal swipe carousel on portrait phones ── */
        @media (max-width: 480px) {
            .teams-grid {
                display: flex;
                flex-direction: row;
                overflow-x: auto;
                scroll-snap-type: x mandatory;
                -webkit-overflow-scrolling: touch;
                gap: 12px;
                padding-bottom: 16px;
                scrollbar-width: none;
            }
            .teams-grid::-webkit-scrollbar { display: none; }
            .squad-card {
                min-width: 82vw;
                max-width: 82vw;
                scroll-snap-align: start;
                flex-shrink: 0;
            }
            #teamsPage::after {
                content: 'Swipe to see all teams →';
                display: block;
                text-align: center;
                font-size: 11px;
                font-weight: 600;
                color: #bbb;
                letter-spacing: 0.5px;
                margin-top: 4px;
                padding-bottom: 4px;
            }
        }