/*
Theme Name: PolyLeagues Minigame
Theme URI: https://polyleagues.com
Author: PolyLeagues
Author URI: https://polyleagues.com
Description: Dedicated theme for the PolyLeagues minigame.
Version: 1.0.0
License: GPL-2.0-or-later
Text Domain: polyleagues
*/

@font-face {
    font-family: 'PolyLeagues Sans';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('assets/fonts/roboto.woff2') format('woff2');
}
@font-face {
    font-family: 'PolyLeagues Sans';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('assets/fonts/roboto.woff2') format('woff2');
}
@font-face {
    font-family: 'PolyLeagues Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('assets/fonts/montserrat.woff2') format('woff2');
}

:root {
    --mfc-blue: #2cae45;
    --mfc-cyan: #8fdc5b;
    --mfc-yellow: #fee001;
    --mfc-dark: #05070b;
    --mfc-panel: #0e1a11;
    --mfc-panel-2: #0b140d;
    --mfc-border: rgba(255,255,255,0.08);
    --mfc-text: #edf6ee;
    --mfc-muted: #9db7a2;
    --mfc-danger: #ff3b6f;
    --mfc-radius-card: 18px;
    --mfc-radius-pill: 999px;
    --mfc-radius-btn: 12px;
    --mfc-shadow-card: 0 18px 40px rgba(0,0,0,0.35);
    --mfc-shadow-cta: 0 12px 24px rgba(24, 99, 37, 0.35);
    --mfc-gradient-cta: linear-gradient(135deg, var(--mfc-cyan), var(--mfc-blue));
    --mfc-gradient-surface: linear-gradient(180deg, rgba(10,16,24,0.95), rgba(8,12,20,0.95));
}

* { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--mfc-dark);
    color: var(--mfc-text);
    font-family: 'PolyLeagues Sans', 'Roboto', system-ui, -apple-system, sans-serif;
}

a { color: var(--mfc-cyan); text-decoration: none; }
a:hover { color: var(--mfc-yellow); }

.btn,
.brand-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 14px;
    border-radius: var(--mfc-radius-btn);
    background: var(--mfc-gradient-cta);
    color: #07210d;
    font-weight: 700;
    box-shadow: var(--mfc-shadow-cta);
    border: none;
    cursor: pointer;
}
.btn-ghost,
.brand-cta-ghost {
    background: transparent;
    color: var(--mfc-cyan);
    border: 1px solid rgba(143, 220, 91, 0.5);
    box-shadow: none;
}
.brand-card {
    background: var(--mfc-panel);
    border: 1px solid var(--mfc-border);
    border-radius: var(--mfc-radius-card);
    box-shadow: var(--mfc-shadow-card);
}
.brand-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: var(--mfc-radius-pill);
    background: rgba(143, 220, 91, 0.15);
    border: 1px solid rgba(143, 220, 91, 0.35);
    color: var(--mfc-text);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.brand-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: var(--mfc-radius-pill);
    background: rgba(143, 220, 91, 0.1);
    border: 1px solid rgba(143, 220, 91, 0.35);
    color: var(--mfc-text);
    font-size: 0.75rem;
    font-weight: 700;
}
.brand-badge img {
    width: 14px;
    height: 14px;
}

.site-header {
    background: rgba(5, 7, 11, 0.95);
    border-bottom: 1px solid var(--mfc-border);
    position: relative;
    z-index: 10;
    backdrop-filter: blur(10px);
    position: sticky;
    top: 0;
}
.site-header .header-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 14px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.site-header .mfc-theme-profile-wrap {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px 14px;
    overflow: hidden;
    transition: max-height 0.22s ease, opacity 0.22s ease, padding 0.22s ease, margin 0.22s ease;
}
.site-header .mfc-theme-profile-wrap .mfc-profile-header {
    background: linear-gradient(135deg, rgba(8, 16, 28, 0.98), rgba(8, 20, 34, 0.95));
    border-top: 1px solid rgba(143, 220, 91, 0.2);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.mfc-header-collapse-toggle {
    display: none;
    position: absolute;
    left: 50%;
    bottom: -13px;
    transform: translateX(-50%);
    width: 34px;
    height: 26px;
    border: 1px solid rgba(143, 220, 91, 0.35);
    border-radius: 999px;
    background: rgba(8, 16, 28, 0.96);
    color: var(--mfc-text);
    z-index: 12;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.35);
}
.mfc-header-collapse-icon {
    width: 10px;
    height: 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-top: -2px;
    transition: transform 0.2s ease, margin-top 0.2s ease;
}
body.mfc-header-collapsed .mfc-header-collapse-icon {
    transform: rotate(-135deg);
    margin-top: 2px;
}
.header-live {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(143, 220, 91, 0.12);
    border: 1px solid rgba(143, 220, 91, 0.35);
    color: var(--mfc-cyan);
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.live-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--mfc-yellow);
    box-shadow: 0 0 10px rgba(254, 224, 1, 0.8);
}
.header-ticker {
    background: var(--mfc-panel-2);
    border-bottom: 1px solid var(--mfc-border);
    overflow: hidden;
}
.header-ticker-track {
    display: inline-flex;
    gap: 40px;
    padding: 10px 24px;
    white-space: nowrap;
    animation: header-ticker 18s linear infinite;
    color: var(--mfc-muted);
    font-size: 0.85rem;
}
@keyframes header-ticker {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.nav-toggle {
    display: none;
    width: 42px;
    height: 42px;
    padding: 0;
    flex-direction: column;
    border-radius: 10px;
    border: 1px solid var(--mfc-border);
    background: var(--mfc-panel);
    align-items: center;
    justify-content: center;
    gap: 4px;
    cursor: pointer;
}
.nav-toggle-bar {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--mfc-text);
    border-radius: 999px;
    transform-origin: center;
    transition: transform 0.18s ease, opacity 0.18s ease;
}
body.nav-open .nav-toggle .nav-toggle-bar:nth-child(1) { transform: translateY(6px) rotate(45deg); }
body.nav-open .nav-toggle .nav-toggle-bar:nth-child(2) { opacity: 0; }
body.nav-open .nav-toggle .nav-toggle-bar:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.site-logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}
.site-logo img {
    height: 32px;
    width: auto;
}
.site-logo span {
    font-family: 'PolyLeagues Display', 'Montserrat', sans-serif;
    color: var(--mfc-text);
    font-size: 1.05rem;
    letter-spacing: 0.02em;
}
.site-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}
.site-nav a {
    color: var(--mfc-text);
    font-weight: 600;
    font-size: 0.95rem;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: border-color .15s ease, background .15s ease;
}
.site-nav a:hover {
    border-color: rgba(143, 220, 91, 0.45);
    background: rgba(143, 220, 91, 0.08);
}
.site-nav .current-menu-item a,
.site-nav .current_page_item a {
    border-color: rgba(143, 220, 91, 0.7);
    background: rgba(143, 220, 91, 0.12);
}
.site-nav .mfc-nav-profile {
    display: none;
}
.site-nav .mfc-nav-home {
    display: none;
}
.site-actions .btn {
    background: var(--mfc-gradient-cta);
    box-shadow: var(--mfc-shadow-cta);
    border-radius: var(--mfc-radius-btn);
}
.nav-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(2, 6, 10, 0.6);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
    z-index: 9;
}
.mfc-pull-refresh-indicator {
    position: fixed;
    left: 50%;
    top: calc(env(safe-area-inset-top) + 62px);
    transform: translate(-50%, calc(-120% + var(--mfc-pull-offset, 0px)));
    display: none;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid rgba(143, 220, 91, 0.28);
    background: rgba(8, 16, 28, 0.92);
    color: #e8f0f7;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    box-shadow: 0 12px 24px rgba(4, 10, 16, 0.35);
    opacity: 0;
    pointer-events: none;
    z-index: 1600;
    transition: opacity .16s ease, border-color .16s ease, background-color .16s ease, transform .18s ease;
}
.mfc-pull-refresh-indicator.is-visible {
    opacity: 1;
}
.mfc-pull-refresh-indicator.is-armed {
    border-color: rgba(143, 220, 91, 0.55);
    background: rgba(14, 28, 20, 0.94);
}
.mfc-pull-refresh-indicator.is-refreshing {
    border-color: rgba(143, 220, 91, 0.62);
}
.mfc-pull-refresh-icon {
    display: inline-flex;
    width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-size: 0.95rem;
    opacity: 0.9;
    transition: transform .16s ease;
}
.mfc-pull-refresh-indicator.is-armed .mfc-pull-refresh-icon {
    transform: rotate(180deg);
}
.mfc-pull-refresh-indicator.is-refreshing .mfc-pull-refresh-icon {
    animation: mfcPullRefreshSpin .8s linear infinite;
}
@keyframes mfcPullRefreshSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.site-content {
    min-height: 60vh;
}

.entry-content > *:not(.mfc-shell):not(.mfc-hub-page) {
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}
.entry-content > .mfc-hub-page {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

.site-footer {
    background: #0b180d;
    border-top: 1px solid var(--mfc-border);
    color: var(--mfc-muted);
}
.site-footer .footer-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 24px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 20px;
}
.footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: var(--mfc-radius-pill);
    background: rgba(143, 220, 91, 0.1);
    border: 1px solid rgba(143, 220, 91, 0.35);
    color: var(--mfc-text);
    font-size: 0.75rem;
    font-weight: 700;
}
.badge img {
    width: 14px;
    height: 14px;
}
.badge-18 {
    background: rgba(254, 224, 1, 0.16);
    border-color: rgba(254, 224, 1, 0.5);
    color: var(--mfc-yellow);
}
.footer-trust {
    margin-top: 12px;
    border: 1px solid var(--mfc-border);
    border-radius: 12px;
    overflow: hidden;
    background: #0b180d;
}
.footer-trust img {
    display: block;
    width: 100%;
    height: auto;
}
.footer-legal {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 0.85rem;
    color: var(--mfc-muted);
}
.site-footer h4 {
    margin: 0 0 8px;
    color: var(--mfc-text);
    font-family: 'PolyLeagues Display', 'Montserrat', sans-serif;
}
.site-footer a { color: var(--mfc-muted); }
.site-footer a:hover { color: var(--mfc-cyan); }

@media (max-width: 980px) {
    .site-header .header-inner { flex-direction: row; align-items: center; }
    .site-header .mfc-theme-profile-wrap { padding: 0 16px 12px; }
    .site-nav { position: fixed; top: 70px; right: 16px; left: 16px; background: var(--mfc-panel); border: 1px solid var(--mfc-border); border-radius: 16px; padding: 12px; display: none; z-index: 11; }
    .site-nav ul { flex-direction: column; gap: 8px; }
    .nav-toggle { display: inline-flex; }
    .site-actions { display: none; }
    body.nav-open .site-nav { display: block; }
    body.nav-open .nav-backdrop { opacity: 1; pointer-events: auto; }
    body.nav-open { overflow: hidden; }
    .header-live { display: none; }
}
@media (max-width: 780px) {
    .site-header .header-inner { padding: 10px 12px; }
    .site-header .mfc-theme-profile-wrap { padding: 0 12px 8px; max-height: 360px; }
    .site-header.has-profile-panel .mfc-header-collapse-toggle { display: inline-flex; }
    body.mfc-header-collapsed .site-header .mfc-theme-profile-wrap {
        max-height: 0;
        opacity: 0;
        padding-top: 0;
        padding-bottom: 0;
        margin-top: 0;
        margin-bottom: 0;
    }
    body.mfc-header-collapsed .site-header .mfc-theme-profile-wrap .mfc-profile-header {
        opacity: 0;
        transform: translateY(-8px);
        pointer-events: none;
    }
    .site-header .mfc-theme-profile-wrap .mfc-profile-header {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
        padding: 10px 12px;
        border-radius: 12px;
    }
    .site-header .mfc-theme-profile-wrap .mfc-profile-left { gap: 8px; }
    .site-header .mfc-theme-profile-wrap .mfc-avatar { width: 40px; height: 40px; border-radius: 12px; }
    .site-header .mfc-theme-profile-wrap .mfc-profile-name { font-size: 0.95rem; line-height: 1.15; }
    .site-header .mfc-theme-profile-wrap .mfc-profile-sub { font-size: 0.78rem; }
    .site-header .mfc-theme-profile-wrap .mfc-profile-mini {
        grid-column: 1 / -1;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }
    .site-header .mfc-theme-profile-wrap .mfc-mini-stat { padding: 6px 8px; border-radius: 10px; }
    .site-header .mfc-theme-profile-wrap .mfc-mini-label { font-size: 0.7rem; letter-spacing: 0.08em; }
    .site-header .mfc-theme-profile-wrap .mfc-mini-value { font-size: 0.88rem; line-height: 1; }
    .site-header .mfc-theme-profile-wrap .mfc-profile-header-actions {
        width: auto;
        justify-content: flex-end;
        flex-wrap: nowrap;
        gap: 6px;
    }
    .site-header .mfc-theme-profile-wrap .mfc-notif-bell { width: 34px; height: 34px; border-radius: 10px; }
    .site-header .mfc-theme-profile-wrap .mfc-btn { padding: 6px 10px; border-radius: 10px; font-size: 0.78rem; }
    .header-ticker { display: none; }
    .site-footer .footer-inner { grid-template-columns: 1fr; }
    .entry-content > *:not(.mfc-shell):not(.mfc-hub-page) { padding-left: 16px; padding-right: 16px; }
    .footer-legal { padding-left: 16px; padding-right: 16px; }
    .header-ticker-track { padding: 10px 16px; }
}
@media (max-width: 520px) {
    .site-header .mfc-theme-profile-wrap { padding: 0 10px 6px; }
    .site-header .mfc-theme-profile-wrap .mfc-profile-header { padding: 8px 10px; gap: 8px; }
    .site-header .mfc-theme-profile-wrap .mfc-profile-mini { gap: 4px; }
    .site-header .mfc-theme-profile-wrap .mfc-mini-stat { padding: 5px 6px; }
    .site-header .mfc-theme-profile-wrap .mfc-mini-label { font-size: 0.7rem; }
    .site-header .mfc-theme-profile-wrap .mfc-mini-value { font-size: 0.8rem; }
    .site-header .mfc-theme-profile-wrap .mfc-coach-open { display: none; }
    .site-header .mfc-theme-profile-wrap .mfc-profile-open { padding: 6px 9px; font-size: 0.8rem; }
}

.mfc-hub-page {
    background:
        linear-gradient(180deg, rgba(58, 107, 48, 0.18), rgba(58, 107, 48, 0.28)),
        radial-gradient(1000px 420px at 50% -5%, rgba(255, 255, 255, 0.22), transparent 62%),
        var(--mfc-hub-grass) center/420px auto repeat;
    border-top: 1px solid rgba(255,255,255,0.12);
    border-bottom: 1px solid rgba(255,255,255,0.12);
}
.mfc-hub-inner {
    max-width: 980px;
    margin: 0 auto;
    padding: 18px 18px 30px;
    display: grid;
    gap: 16px;
}
.mfc-hub-brand-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.mfc-hub-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: rgba(236, 247, 240, 0.94);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
}
.mfc-hub-brand img {
    width: 132px;
    height: 22px;
    object-fit: contain;
}
.mfc-hub-auth {
    display: inline-flex;
    gap: 8px;
}
.mfc-hub-auth-btn {
    min-height: 34px;
    padding: 7px 14px;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,0.46);
    background: rgba(243, 248, 252, 0.96);
    color: #0c2a12;
    font-size: 0.82rem;
    font-weight: 700;
}
.mfc-hub-auth-btn.is-ghost {
    background: rgba(6, 14, 18, 0.52);
    color: rgba(236, 246, 252, 0.98);
}
.mfc-hub-title {
    margin: 2px 0 0;
    text-align: center;
    color: #edf6ef;
    font-size: clamp(1.8rem, 4.2vw, 2.8rem);
    line-height: 1.1;
}
.mfc-hub-title span {
    color: #ffffff;
    font-weight: 800;
    letter-spacing: 0.02em;
}
.mfc-hub-mascot {
    justify-self: center;
    width: min(250px, 100%);
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.26);
    background: rgba(236, 244, 250, 0.95);
    box-shadow: 0 20px 34px rgba(4, 14, 8, 0.35);
    padding: 10px;
}
.mfc-hub-mascot img {
    width: 100%;
    height: auto;
    display: block;
}
.mfc-hub-intro-card {
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(7, 23, 13, 0.92), rgba(6, 16, 12, 0.9));
    box-shadow: 0 18px 32px rgba(4, 14, 8, 0.38);
    padding: 16px 16px 14px;
    display: grid;
    gap: 10px;
}
.mfc-hub-intro-kicker {
    margin: 0;
    color: rgba(160, 236, 136, 0.96);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}
.mfc-hub-title-intro {
    margin: 0;
    text-align: left;
    font-size: clamp(1.4rem, 3.2vw, 2.1rem);
}
.mfc-hub-intro-copy {
    margin: 0;
    color: rgba(231, 246, 234, 0.9);
    font-size: 0.98rem;
    line-height: 1.45;
}
.mfc-hub-intro-account {
    margin: 0;
    color: rgba(213, 240, 221, 0.88);
    font-size: 0.84rem;
}
.mfc-hub-intro-account strong {
    color: #ffffff;
}
.mfc-hub-intro-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.mfc-hub-intro-step {
    border: 1px solid rgba(132, 211, 86, 0.36);
    border-radius: 12px;
    background: rgba(9, 29, 14, 0.8);
    color: rgba(236, 247, 240, 0.94);
    font-size: 0.82rem;
    line-height: 1.3;
    padding: 8px 9px;
}
.mfc-hub-intro-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.mfc-hub-intro-actions .mfc-btn {
    min-height: 38px;
}
.mfc-hub-team-line {
    margin: -4px 0 2px;
    text-align: center;
    color: rgba(225, 243, 232, 0.92);
    font-size: 0.95rem;
}
.mfc-hub-team-line strong {
    color: #ffffff;
}
.mfc-hub-sports {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 6px 0 16px;
    justify-content: center;
}
.mfc-hub-sports-label {
    color: rgba(255,255,255,0.8);
    font-size: 0.92rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.mfc-hub-sport-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(7, 17, 11, 0.85);
    border: 1px solid rgba(34, 214, 125, 0.45);
    color: #ffffff;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(2, 11, 7, 0.3);
}
.mfc-hub-sport-emoji {
    font-size: 1rem;
    line-height: 1;
}
.mfc-hub-game-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 18px;
    margin-top: 4px;
}
.mfc-hub-game-card {
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.16);
    background: rgba(7, 17, 11, 0.92);
    box-shadow: 0 16px 28px rgba(2, 11, 7, 0.38);
    overflow: hidden;
    color: #edf6ee;
}
.mfc-hub-game-media {
    height: 138px;
    background-size: cover;
    background-position: center;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}
.mfc-hub-game-body {
    padding: 12px 12px 14px;
    display: grid;
    gap: 8px;
}
.mfc-hub-game-body h3 {
    margin: 0;
    font-size: 1.2rem;
    text-align: center;
    color: #f3f8f1;
}
.mfc-hub-game-body span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    border-radius: 999px;
    background: linear-gradient(180deg, #2ed247, #15aa3a);
    color: #06240f;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}
.mfc-hub-board {
    margin-top: 8px;
    display: grid;
    gap: 14px;
}
.mfc-hub-title-board {
    margin: 0;
    text-align: center;
}
.mfc-hub-page--leaderboard .mfc-hub-inner {
    max-width: 1260px;
    padding-top: 26px;
}
.mfc-hub-page--leaderboard .mfc-hub-board {
    margin-top: 0;
}
.mfc-hub-toggle {
    justify-self: center;
    display: inline-flex;
    border: 1px solid rgba(112, 188, 61, 0.72);
    border-radius: 12px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(88, 178, 43, 0.9), rgba(74, 150, 37, 0.92));
    box-shadow: 0 10px 24px rgba(8, 30, 11, 0.32);
}
.mfc-hub-toggle button {
    border: 0;
    min-width: 112px;
    min-height: 38px;
    padding: 8px 14px;
    background: transparent;
    color: rgba(15, 35, 12, 0.74);
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}
.mfc-hub-toggle button.is-active {
    background: rgba(13, 47, 13, 0.28);
    color: #ffffff;
}
.mfc-hub-podium {
    display: none;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 22px;
    align-items: end;
    margin-top: 10px;
}
.mfc-hub-podium.is-active {
    display: grid;
}
.mfc-hub-podium-card {
    text-align: center;
    display: grid;
    gap: 8px;
    justify-items: center;
    min-width: 0;
}
.mfc-hub-podium-card.is-top {
    transform: translateY(-14px);
}
.mfc-hub-podium-icon {
    width: 94px;
    height: 94px;
    display: grid;
    place-items: center;
    margin-bottom: 2px;
}
.mfc-hub-podium-icon-ball img {
    width: 90px;
    height: 90px;
}
.mfc-hub-podium-icon-cup span {
    font-size: 76px;
    line-height: 1;
}
.mfc-hub-podium-name {
    margin: 0;
    font-size: 2rem;
    line-height: 1.1;
    color: #eef8f0;
    font-weight: 700;
    width: min(100%, 16ch);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.mfc-hub-podium-reward {
    width: min(360px, 100%);
    border: 1px solid rgba(97, 127, 167, 0.34);
    background: linear-gradient(180deg, rgba(12, 24, 44, 0.97), rgba(4, 11, 22, 0.98));
    border-radius: 18px;
    padding: 14px 14px 16px;
    color: #d6e4fb;
    box-shadow: 0 18px 36px rgba(3, 10, 20, 0.54);
}
.mfc-hub-podium-reward-badge {
    width: 34px;
    height: 28px;
    border-radius: 7px;
    margin: 0 auto 8px;
    display: grid;
    place-items: center;
    background: rgba(249, 197, 51, 0.94);
    color: #102238;
    font-size: 1rem;
}
.mfc-hub-podium-reward-target {
    font-size: 0.92rem;
    color: rgba(215, 230, 255, 0.86);
    font-weight: 700;
}
.mfc-hub-podium-reward-value {
    margin-top: 10px;
    font-size: 2.35rem;
    font-weight: 800;
    color: #f4f8ff;
    line-height: 1;
}
.mfc-hub-podium-reward-label {
    margin-top: 4px;
    font-size: 0.96rem;
    color: rgba(214, 228, 247, 0.94);
    font-weight: 700;
    letter-spacing: 0.01em;
}
.mfc-hub-table-wrap {
    border: none;
    background: transparent;
    border-radius: 0;
    overflow: hidden;
    margin-top: 10px;
}
.mfc-hub-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0 10px;
}
.mfc-hub-table th,
.mfc-hub-table td {
    padding: 12px 14px;
    border-bottom: 0;
    text-align: left;
}
.mfc-hub-table th {
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(220, 234, 216, 0.62);
    background: transparent;
    font-weight: 700;
}
.mfc-hub-table td {
    font-size: 1.02rem;
    color: #eaf3f2;
    background: linear-gradient(180deg, rgba(11, 22, 42, 0.96), rgba(7, 16, 33, 0.98));
}
.mfc-hub-table th:nth-child(1),
.mfc-hub-table td:nth-child(1) {
    width: 10%;
}
.mfc-hub-table th:nth-child(2),
.mfc-hub-table td:nth-child(2) {
    width: 50%;
}
.mfc-hub-table th:nth-child(3),
.mfc-hub-table td:nth-child(3) {
    width: 20%;
}
.mfc-hub-table th:nth-child(4),
.mfc-hub-table td:nth-child(4) {
    width: 20%;
}
.mfc-hub-table tbody tr td:first-child {
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
}
.mfc-hub-table tbody tr td:last-child {
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
}
.mfc-hub-table tbody {
    display: none;
}
.mfc-hub-table tbody.is-active {
    display: table-row-group;
}
.mfc-hub-rank {
    width: 76px;
    font-weight: 800;
}
.mfc-hub-player-wrap {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    max-width: 100%;
}
.mfc-hub-player-avatar {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 1px solid rgba(203, 214, 226, 0.48);
    background: #e8eff7;
    object-fit: cover;
}
.mfc-hub-player-avatar-fallback {
    display: inline-grid;
    place-items: center;
    font-weight: 700;
    color: #1a344f;
}
.mfc-hub-player-meta {
    display: inline-grid;
    line-height: 1.05;
    min-width: 0;
}
.mfc-hub-player-meta strong {
    font-size: 0.98rem;
    color: #eef5ff;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mfc-hub-player-meta em {
    font-style: normal;
    font-size: 0.74rem;
    color: rgba(170, 191, 213, 0.78);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mfc-hub-score {
    color: #f0f7ff;
    font-weight: 700;
}
.mfc-hub-gem {
    color: #9dd3ff;
    font-weight: 700;
}
.mfc-hub-board-actions {
    text-align: center;
}
.mfc-hub-leaderboard-link {
    color: #d8f7b1;
    font-weight: 700;
}
.mfc-welcome-shell {
    position: fixed;
    inset: 0;
    z-index: 120700;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.mfc-welcome-shell.is-open {
    display: flex;
}
.mfc-welcome-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 11, 8, 0.74);
    backdrop-filter: blur(2px);
}
.mfc-welcome-modal {
    position: relative;
    width: min(640px, calc(100vw - 24px));
    border-radius: 20px;
    border: 1px solid rgba(144, 220, 90, 0.44);
    background:
        radial-gradient(120% 100% at 90% 0%, rgba(32, 184, 72, 0.2), transparent 45%),
        linear-gradient(165deg, rgba(7, 22, 13, 0.98), rgba(5, 15, 9, 0.98));
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5);
    padding: 22px 20px 18px;
    color: #eaf7ee;
}
.mfc-welcome-x {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.1);
    color: #f2fbf5;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}
.mfc-welcome-kicker {
    margin: 0 0 8px;
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #9de07b;
    font-weight: 800;
}
.mfc-welcome-modal h2 {
    margin: 0;
    font-size: clamp(1.35rem, 3.4vw, 1.9rem);
    line-height: 1.15;
    word-break: break-word;
}
.mfc-welcome-copy {
    margin: 12px 0 10px;
    color: rgba(223, 241, 230, 0.92);
    font-size: 0.98rem;
}
.mfc-welcome-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}
.mfc-welcome-list li {
    position: relative;
    padding-left: 18px;
    color: rgba(223, 241, 230, 0.94);
}
.mfc-welcome-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.54em;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(180deg, #84f66a, #41cb49);
    box-shadow: 0 0 0 4px rgba(94, 214, 91, 0.2);
}
.mfc-welcome-actions {
    margin-top: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.mfc-welcome-actions .mfc-btn {
    min-height: 40px;
    border-radius: 12px;
}
body.mfc-welcome-open {
    overflow: hidden;
}

@media (max-width: 980px) {
    .mfc-hub-inner {
        padding: 14px 14px 24px;
    }
}
@media (max-width: 780px) {
    .mfc-hub-brand-row {
        flex-direction: column;
        align-items: flex-start;
    }
    .mfc-hub-auth {
        width: 100%;
    }
    .mfc-hub-auth-btn {
        flex: 1 1 auto;
        text-align: center;
    }
    .mfc-hub-game-grid {
        grid-template-columns: 1fr;
    }
    .mfc-hub-intro-steps {
        grid-template-columns: 1fr;
    }
    .mfc-hub-podium {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .mfc-hub-podium-card[data-rank="1"] {
        order: 1;
    }
    .mfc-hub-podium-card[data-rank="2"] {
        order: 2;
    }
    .mfc-hub-podium-card[data-rank="3"] {
        order: 3;
    }
    .mfc-hub-podium-card.is-top {
        transform: none;
    }
    .mfc-hub-podium-name {
        font-size: 1.55rem;
    }
    .mfc-hub-podium-reward-value {
        font-size: 1.8rem;
    }
}
@media (max-width: 520px) {
    .mfc-hub-inner {
        padding: 12px 10px 18px;
    }
    .mfc-hub-table th,
    .mfc-hub-table td {
        padding: 9px 8px;
        font-size: 0.8rem;
    }
    .mfc-hub-player-avatar {
        width: 30px;
        height: 30px;
    }
    .mfc-hub-player-meta strong {
        font-size: 0.86rem;
    }
    .mfc-hub-player-meta em {
        font-size: 0.72rem;
    }
    .mfc-hub-podium-icon {
        width: 72px;
        height: 72px;
    }
    .mfc-hub-podium-icon-ball img {
        width: 68px;
        height: 68px;
    }
    .mfc-hub-podium-icon-cup span {
        font-size: 58px;
    }
    .mfc-hub-podium-reward {
        border-radius: 14px;
        padding: 12px;
    }
    .mfc-hub-podium-reward-value {
        font-size: 1.48rem;
    }
    .mfc-hub-table th:nth-child(4),
    .mfc-hub-table td:nth-child(4) {
        display: none;
    }
    .mfc-welcome-modal {
        border-radius: 16px;
        padding: 18px 14px 14px;
    }
    .mfc-welcome-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
    .mfc-welcome-actions .mfc-btn {
        width: 100%;
        justify-content: center;
    }
}

/* Global layout refresh: header + footer */
.site-header {
    background: linear-gradient(180deg, rgba(4, 16, 8, 0.98), rgba(3, 12, 7, 0.97));
    border-bottom: 1px solid rgba(143, 220, 91, 0.26);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.32);
}
.header-topline {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(8, 22, 13, 0.74);
}
.header-topline-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 8px 18px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
}
.header-topline-copy {
    color: rgba(199, 220, 188, 0.9);
    font-size: 0.78rem;
    letter-spacing: 0.03em;
    text-align: center;
}
.header-topline-links {
    display: inline-flex;
    gap: 12px;
}
.header-topline-links a {
    color: rgba(210, 231, 198, 0.94);
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}
.header-topline-links a:hover {
    color: #ffffff;
}
.site-header .header-inner {
    max-width: 1240px;
    padding: 10px 18px;
    gap: 14px;
}
.site-logo img {
    height: 28px;
}
.site-logo span {
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(233, 247, 230, 0.94);
}
.site-nav {
    margin-left: auto;
}
.site-nav ul {
    gap: 8px;
}
.site-nav a {
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.02);
}
.site-nav .current-menu-item a,
.site-nav .current_page_item a {
    border-color: rgba(143, 220, 91, 0.7);
    background: rgba(143, 220, 91, 0.14);
}
.site-actions {
    display: inline-flex;
    gap: 8px;
}
.site-actions .btn {
    min-height: 34px;
    padding: 7px 14px;
    border-radius: 9px;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.site-header .mfc-theme-profile-wrap {
    max-width: 1240px;
    padding: 0 18px 10px;
}
.site-header .mfc-theme-profile-wrap .mfc-profile-header {
    border-radius: 12px;
    border: 1px solid rgba(143, 220, 91, 0.24);
}
.header-ticker {
    background: rgba(8, 22, 13, 0.86);
    border-bottom-color: rgba(255, 255, 255, 0.08);
}
.header-ticker-track {
    padding: 8px 18px;
    font-size: 0.78rem;
}

.site-footer {
    background: linear-gradient(180deg, #0b180d, #07100a);
    border-top: 1px solid rgba(143, 220, 91, 0.22);
}
.site-footer .footer-inner {
    max-width: 1240px;
    padding: 24px 18px 18px;
    grid-template-columns: minmax(260px, 1.6fr) repeat(3, minmax(0, 1fr));
    gap: 20px;
}
.footer-brand-card {
    border: 1px solid rgba(143, 220, 91, 0.22);
    border-radius: 14px;
    padding: 14px;
    background: linear-gradient(180deg, rgba(11, 26, 14, 0.92), rgba(8, 18, 10, 0.92));
}
.footer-col p,
.footer-brand-card p {
    margin: 0 0 8px;
}
.footer-col p:last-child,
.footer-brand-card p:last-child {
    margin-bottom: 0;
}
.footer-col h4,
.footer-brand-card h4 {
    margin-bottom: 10px;
}
.footer-legal {
    max-width: 1240px;
    border-top: 1px solid rgba(255,255,255,0.08);
    margin-top: 8px;
    padding-top: 12px;
    padding-bottom: 14px;
}

@media (max-width: 1100px) {
    .header-topline-inner {
        grid-template-columns: auto 1fr;
    }
    .header-topline-links {
        display: none;
    }
}
@media (max-width: 980px) {
    .header-topline-copy {
        text-align: left;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }
    .site-header .header-inner {
        padding: 10px 14px;
    }
    .site-nav {
        position: fixed;
        top: 62px;
        right: 12px;
        left: 12px;
        z-index: 14;
        border: 1px solid rgba(143, 220, 91, 0.34);
        border-radius: 14px;
        background: linear-gradient(180deg, rgba(9, 21, 12, 0.98), rgba(7, 17, 10, 0.98));
        padding: 12px;
        display: none;
        margin-left: 0;
    }
    body.nav-open .site-nav {
        display: block;
    }
    body.nav-open .nav-backdrop {
        opacity: 1;
        pointer-events: auto;
    }
    body.nav-open {
        overflow: hidden;
    }
    .site-nav ul {
        gap: 6px;
    }
    .site-nav a {
        width: 100%;
        text-align: left;
    }
    .nav-toggle {
        display: inline-flex;
    }
    .site-actions {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-left: auto;
    }
    .site-actions .btn {
        padding: 6px 10px;
        min-height: 32px;
        font-size: 0.74rem;
    }
    .site-footer .footer-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .footer-brand-card {
        grid-column: 1 / -1;
    }
}
@media (max-width: 780px) {
    .site-nav {
        top: 62px;
    }
    .header-topline {
        display: none;
    }
    .header-ticker {
        display: none;
    }
    .site-actions .btn-ghost {
        display: none;
    }
    .site-header .mfc-theme-profile-wrap {
        padding: 0 12px 8px;
    }
}
@media (max-width: 520px) {
    .site-logo span {
        display: none;
    }
    .site-actions .btn {
        min-height: 44px;
        font-size: 0.78rem;
    }
    .site-footer .footer-inner {
        grid-template-columns: 1fr;
        padding: 18px 12px 12px;
    }
    .footer-legal {
        padding-left: 12px;
        padding-right: 12px;
    }
}

/* Legacy light-theme header/footer shell removed — see HEADER REWRITE block at end of file */
.site-header .mfc-theme-profile-wrap { display: none !important; }
.mfc-header-collapse-toggle { display: none !important; }

.site-footer {
    background: linear-gradient(180deg, #eef2f5, #e2e7ec);
    border-top: 1px solid #c7cfd7;
}
.site-footer .footer-inner {
    grid-template-columns: minmax(260px, 1.8fr) repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.footer-brand-card {
    border-color: #c7d0d9;
    background: linear-gradient(180deg, #f8fafc, #edf2f6);
}
.footer-col h4,
.footer-brand-card h4 {
    color: #1c2b38;
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.footer-col p,
.footer-brand-card p {
    color: #334252;
}
.site-footer a {
    color: #334252;
}
.site-footer a:hover {
    color: #2e6325;
}
.badge {
    background: rgba(133, 188, 99, 0.18);
    border-color: rgba(86, 127, 61, 0.4);
    color: #224029;
}
.footer-legal {
    border-top-color: #c6cfd8;
    color: #4a5a6a;
    display: grid;
    gap: 4px;
}
.mfc-ajax-loading main.site-content {
    opacity: 0.56;
    transition: opacity 0.2s ease;
}
.mfc-ajax-loading {
    cursor: progress;
}
.mfc-ajax-loader {
    position: fixed;
    inset: 0;
    z-index: 120000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(235, 240, 244, 0.62);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.18s ease, visibility 0.18s ease;
}
.mfc-ajax-loader-panel {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 132px;
    min-height: 46px;
    padding: 10px 16px;
    border-radius: 12px;
    border: 1px solid #c3ccd5;
    background: linear-gradient(180deg, #ffffff, #edf2f6);
    box-shadow: 0 12px 28px rgba(11, 25, 38, 0.18);
    color: #1f3242;
    font-weight: 700;
    letter-spacing: 0.03em;
}
.mfc-ajax-spinner {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 2px solid rgba(76, 97, 118, 0.28);
    border-top-color: #2e5f22;
    animation: mfc-ajax-spin 0.72s linear infinite;
}
.mfc-ajax-loader-text {
    font-size: 0.78rem;
    text-transform: uppercase;
}
body.mfc-ajax-loading .mfc-ajax-loader {
    opacity: 1;
    visibility: visible;
}
@keyframes mfc-ajax-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 1080px) {
    .site-footer .footer-inner {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .footer-brand-card {
        grid-column: 1 / -1;
    }
}
@media (max-width: 780px) {
    .site-actions .btn-ghost {
        display: inline-flex;
    }
    .site-actions .btn {
        min-height: 44px;
        font-size: 0.8rem;
        padding: 8px 10px;
    }
    .site-header .site-actions .mfc-profile-cta {
        min-height: 44px;
        padding-left: 10px;
        padding-right: 10px;
    }
    .mfc-profile-cta-avatar {
        width: 30px;
        height: 30px;
        flex: 0 0 30px;
    }
    .site-header .site-actions .mfc-profile-cta .mfc-profile-notif-count {
        min-width: 19px;
        height: 19px;
        font-size: 0.72rem;
        top: -8px;
        right: -8px;
    }
}
@media (max-width: 640px) {
    .site-footer .footer-inner {
        grid-template-columns: 1fr;
    }
}

/* Remove duplicate in-page brand strips (header already provides logo/navigation) */
.mfc-game .mfc-predict-brand-row,
.mfc-hub-brand-row {
    display: none !important;
}

/* Rehauled profile drawer to match light header/footer theme */
.mfc-drawer-overlay {
    background: rgba(9, 18, 28, 0.38) !important;
    backdrop-filter: blur(2px);
}
.mfc-profile-drawer {
    z-index: 10060;
}
.mfc-drawer-panel {
    background: linear-gradient(180deg, #f6f8fb, #e9eef4) !important;
    border-left: 1px solid #c8d1db !important;
    color: #162632 !important;
    box-shadow: -18px 0 36px rgba(8, 17, 30, 0.18);
}
.mfc-drawer-panel::before {
    display: none !important;
}
.mfc-drawer-title {
    color: #152632 !important;
    letter-spacing: 0.02em;
}
.mfc-drawer-close {
    background: #ffffff !important;
    color: #203342 !important;
    border: 1px solid #b8c4d0 !important;
    box-shadow: none !important;
}
.mfc-drawer-profile {
    background: #ffffff !important;
    border: 1px solid #cfd8e1 !important;
    box-shadow: 0 8px 20px rgba(16, 32, 50, 0.08);
}
.mfc-drawer-avatar {
    background: linear-gradient(135deg, rgba(133, 188, 99, 0.2), rgba(255, 227, 121, 0.25)) !important;
    border-color: rgba(104, 156, 72, 0.5) !important;
}
.mfc-drawer-name {
    color: #152531 !important;
}
.mfc-drawer-sub {
    color: #4f6578 !important;
}
.mfc-drawer-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.mfc-drawer-stat {
    background: #f9fbfd !important;
    border: 1px solid #d3dce5 !important;
}
.mfc-drawer-stat span {
    color: #5a7084 !important;
}
.mfc-drawer-stat strong {
    color: #1d3645 !important;
}
.mfc-drawer-actions .mfc-btn {
    border-radius: 10px !important;
    min-height: 36px;
}
.mfc-drawer-actions .mfc-btn:not(.mfc-btn-ghost) {
    background: linear-gradient(135deg, #95d26a, #67b34a) !important;
    color: #12301e !important;
    box-shadow: none !important;
}
.mfc-drawer-actions .mfc-btn-ghost {
    background: #ffffff !important;
    color: #213748 !important;
    border: 1px solid #bcc8d3 !important;
}
.mfc-drawer-section,
.mfc-notif-list .mfc-notif-item,
.mfc-recent-item {
    background: #ffffff !important;
    border: 1px solid #d4dde6 !important;
}
.mfc-drawer-section-title,
.mfc-notif-title {
    color: #203545 !important;
}
.mfc-recent-meta,
.mfc-notif-time,
.mfc-notif-empty {
    color: #60778b !important;
}

/* Header profile image CTA + Facebook-like notification bubble */
.site-header .site-actions .mfc-profile-cta {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding-left: 8px;
    padding-right: 8px;
    min-width: 42px;
    justify-content: center;
}
.mfc-profile-cta-avatar {
    width: 26px;
    height: 26px;
    border-radius: 999px;
    overflow: hidden;
    border: 1px solid rgba(117, 131, 144, 0.55);
    background: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 26px;
}
.mfc-profile-cta-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.mfc-profile-cta-fallback {
    font-size: 0.72rem;
    font-weight: 800;
    color: #1b2b36;
    letter-spacing: 0.03em;
}
.site-header .site-actions .mfc-profile-cta .mfc-profile-notif-count {
    position: absolute;
    top: -7px;
    right: -7px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 999px;
    background: #e53935;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    display: none;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 14px rgba(229, 57, 53, 0.35);
}

@media (max-width: 640px) {
    .site-header .site-actions .mfc-profile-cta {
        gap: 6px;
        padding-left: 8px;
        padding-right: 8px;
        min-width: 44px;
        justify-content: center;
    }
    .site-header .site-actions .mfc-profile-cta .mfc-profile-cta-text {
        display: none;
    }
    .site-header .site-actions .mfc-profile-cta .mfc-profile-notif-count {
        min-width: 20px;
        height: 20px;
        font-size: 0.7rem;
    }
}

/* Final mobile nav override (single source of truth) */
@media (max-width: 980px) {
    .mfc-pull-refresh-indicator {
        display: inline-flex;
    }
    .site-nav .mfc-nav-home {
        display: list-item;
    }
    .site-header {
        z-index: 1300;
    }
    .site-nav .mfc-nav-profile {
        display: list-item;
    }
    .site-actions {
        display: inline-flex !important;
        align-items: center;
        gap: 6px;
        margin-left: 0;
    }
    .nav-toggle {
        display: inline-flex;
        width: 44px;
        height: 44px;
        border-radius: 12px;
        border: 1px solid #b8c2cc;
        background: linear-gradient(180deg, #ffffff, #edf2f6);
        color: #1d313f;
        box-shadow: 0 10px 20px rgba(14, 26, 38, 0.14);
    }
    .nav-toggle-bar {
        background: #1d313f;
        width: 18px;
    }
    .nav-backdrop {
        z-index: 1200;
        background: rgba(9, 18, 28, 0.28) !important;
        backdrop-filter: blur(1px) !important;
        opacity: 0;
        transition: opacity 0.2s ease;
    }
    .site-nav {
        position: fixed;
        top: calc(62px + env(safe-area-inset-top));
        right: 10px;
        left: 10px;
        z-index: 1301;
        display: block !important;
        margin-left: 0;
        padding: 12px;
        border-radius: 14px;
        border: 1px solid #c4cdd7;
        background: linear-gradient(180deg, #f8fafc, #eaf0f5);
        box-shadow: 0 20px 38px rgba(6, 17, 28, 0.22);
        opacity: 1;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-12px) scale(0.985);
        transform-origin: top center;
        transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.24s;
    }
    body.nav-open .site-nav {
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0) scale(1);
        transition-delay: 0s;
    }
    body.nav-open .nav-backdrop {
        opacity: 1 !important;
        pointer-events: auto;
        backdrop-filter: blur(1px) !important;
    }
    body.nav-open {
        overflow: hidden;
    }
    body.nav-open main.site-content,
    body.nav-open .site-content {
        opacity: 1 !important;
        filter: none !important;
    }
    .site-nav ul {
        display: grid;
        gap: 8px;
    }
    .site-nav li,
    .site-nav a {
        opacity: 1 !important;
    }
    .site-nav a {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 44px;
        text-align: left;
        padding: 10px 12px;
        font-size: 0.86rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        border-radius: 11px;
        color: #1b2e3b;
        border: 1px solid rgba(123, 139, 154, 0.34);
        background: #ffffff;
    }
    .site-nav a:hover {
        border-color: rgba(97, 140, 68, 0.55);
        background: #f4faef;
    }
    .site-nav .current-menu-item a,
    .site-nav .current_page_item a {
        border-color: rgba(97, 140, 68, 0.62);
        background: #eaf6df;
    }
}
@media (max-width: 520px) {
    .site-header .header-inner {
        padding: 8px 10px;
    }
    .site-logo img {
        height: 24px;
    }
    .site-nav {
        top: calc(56px + env(safe-area-inset-top));
        right: 8px;
        left: 8px;
        padding: 10px;
        transform: translateY(-10px) scale(0.988);
    }
}

/* First-steps onboarding focus mode (nickname -> team) */
body.mfc-optin-active .site-footer {
    display: none !important;
}
body.mfc-optin-active .site-header .header-inner {
    justify-content: flex-start;
}
body.mfc-optin-active .site-header .site-logo {
    margin-right: auto;
}
body.mfc-optin-active .site-nav,
body.mfc-optin-active .nav-toggle,
body.mfc-optin-active .nav-backdrop {
    display: none !important;
}
body.mfc-optin-active .site-content {
    min-height: calc(100dvh - 62px);
}
body.mfc-optin-active .mfc-game.mfc-team-screen .mfc-boxed {
    padding-top: 10px;
    padding-bottom: max(12px, env(safe-area-inset-bottom));
}
@media (max-width: 640px) {
    body.mfc-optin-active .site-header .header-inner {
        padding: 8px 10px;
    }
}
@supports selector(body:has(.mfc-optin-shell)) {
    body:has(.mfc-optin-shell) .site-footer {
        display: none !important;
    }
}

/* Stability overrides after QA pass */
.mfc-ajax-loading main.site-content {
    opacity: 1 !important;
}
.mfc-ajax-loader {
    background: rgba(235, 240, 244, 0.42);
}
@media (max-width: 980px) {
    body.nav-open .mfc-ajax-loader {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
    body.nav-open .site-content,
    body.nav-open .site-footer {
        opacity: 1 !important;
        filter: none !important;
    }
}

/* Mobile header profile CTA: keep avatar visible, hide extra CTAs */
@media (max-width: 980px) {
    body:not(.mfc-optin-active) .site-header .site-actions {
        display: inline-flex !important;
        align-items: center;
        gap: 6px;
        margin-left: 0;
    }
    body:not(.mfc-optin-active) .site-header .site-actions .mfc-profile-cta {
        display: inline-flex !important;
        min-width: 42px;
        min-height: 44px;
        padding: 6px;
    }
    body:not(.mfc-optin-active) .site-header .site-actions .mfc-profile-page-cta,
    body:not(.mfc-optin-active) .site-header .site-actions .btn:not(.mfc-profile-cta) {
        display: none !important;
    }
}

/* Header flush-top safety override */
:root {
    --wp-admin--admin-bar--height: 0px;
}
html {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
html[style] {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
body {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
body.admin-bar {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
#wpadminbar {
    display: none !important;
}
.site-header {
    position: relative !important;
    top: 0 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
    left: 0 !important;
    right: 0 !important;
}

/* Mobile header polish: flush top, right-side controls, readable badge */
@media (max-width: 980px) {
    .site-header {
        position: relative !important;
        top: 0 !important;
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    .site-header .header-inner {
        justify-content: flex-start;
        flex-wrap: nowrap;
        gap: 8px;
        padding-top: 8px;
        padding-bottom: 8px;
        width: 100%;
        overflow: hidden;
    }
    .site-header .site-logo {
        margin-right: auto;
        flex: 1 1 auto;
        min-width: 0;
        overflow: hidden;
        max-width: 100%;
    }
    .site-header .site-logo img {
        max-width: min(152px, 42vw);
        width: auto;
    }
    .site-header .site-logo span {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .nav-toggle {
        order: 3;
        margin-left: auto;
        margin-right: 0;
        flex: 0 0 44px;
    }
    .site-actions {
        order: 4;
        margin-left: 0 !important;
        gap: 8px !important;
        flex: 0 0 auto;
    }
    body:not(.mfc-optin-active) .site-header .site-actions .mfc-profile-cta {
        min-width: 44px;
        min-height: 44px;
        padding: 5px;
        border-radius: 12px;
        overflow: visible;
    }
    body.mfc-optin-active .site-header .site-actions,
    body.mfc-team-select-mode .site-header .site-actions {
        display: inline-flex !important;
        align-items: center;
        gap: 6px !important;
        margin-left: 0 !important;
        flex: 0 0 auto;
    }
    body.mfc-optin-active .site-header .site-actions .mfc-profile-cta,
    body.mfc-team-select-mode .site-header .site-actions .mfc-profile-cta {
        display: inline-flex !important;
        min-width: 42px;
        min-height: 42px;
        padding: 5px;
        border-radius: 12px;
        overflow: visible;
    }
    body.mfc-optin-active .site-header .site-actions .mfc-profile-page-cta,
    body.mfc-optin-active .site-header .site-actions .btn:not(.mfc-profile-cta),
    body.mfc-team-select-mode .site-header .site-actions .mfc-profile-page-cta,
    body.mfc-team-select-mode .site-header .site-actions .btn:not(.mfc-profile-cta) {
        display: none !important;
    }
    body.mfc-team-select-mode .nav-toggle,
    body.mfc-team-select-mode .site-nav,
    body.mfc-team-select-mode .nav-backdrop {
        display: none !important;
    }
    .site-header .site-actions .mfc-profile-cta .mfc-profile-notif-count {
        top: -4px;
        right: -4px;
        min-width: 18px;
        height: 18px;
        padding: 0 4px;
        border: 2px solid #eef2f5;
        box-shadow: 0 4px 10px rgba(229, 57, 53, 0.28);
        line-height: 1;
        transform: none;
    }
}
@media (max-width: 520px) {
    .site-header .header-inner {
        padding: 7px 8px;
        gap: 6px;
    }
    .site-header .site-logo img {
        max-width: min(144px, 45vw);
    }
    .site-header .site-logo span {
        font-size: 0.8rem;
        letter-spacing: 0.07em;
    }
    .nav-toggle {
        width: 42px;
        height: 42px;
        border-radius: 11px;
        box-shadow: 0 6px 12px rgba(14, 26, 38, 0.12);
    }
    .site-header .site-actions .mfc-profile-cta .mfc-profile-notif-count {
        top: -3px;
        right: -3px;
        min-width: 17px;
        height: 17px;
        font-size: 0.66rem;
    }
}

/* Legacy header CSS removed — see "POLYLEAGUES — HEADER REWRITE" block at end of file */

/* Standalone login/register experience (AAA auth UI) */
body.mfc-auth-only-mode {
    margin: 0;
    min-height: 100vh;
    background: #dfe5ea;
    color: #1a2733;
    overflow-x: hidden;
}
body.mfc-auth-only-mode::before {
    content: "";
    position: fixed;
    inset: 0;
    background-image:
        linear-gradient(180deg, rgba(225, 232, 238, 0.8), rgba(219, 227, 233, 0.74)),
        var(--mfc-hub-grass, url('/wp-content/plugins/polyleagues/assets/football/grass-texture.jpg'));
    background-size: cover;
    background-position: center;
    z-index: 0;
}
body.mfc-auth-only-mode .mfc-auth-only-main {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: clamp(14px, 2.8vw, 30px);
}
body.mfc-auth-only-mode .entry-content {
    width: min(1060px, 100%);
}
body.mfc-auth-only-mode .entry-content > *:not(.mfc-shell) {
    max-width: none;
    padding: 0;
}
body.mfc-auth-only-mode .mfc-shell {
    margin: 0;
}
body.mfc-auth-only-mode .mfc-box {
    max-width: none;
    padding: 0;
}
body.mfc-auth-only-mode .mfc-game {
    background: transparent;
    border: 0;
    box-shadow: none;
}
body.mfc-auth-only-mode .mfc-boxed {
    padding: 0;
}
body.mfc-auth-only-mode .mfc-auth-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(14px, 2.4vw, 24px);
    align-items: stretch;
}
body.mfc-auth-only-mode .mfc-auth-brand-panel,
body.mfc-auth-only-mode .mfc-auth-card {
    border-radius: 20px;
    border: 1px solid rgba(164, 176, 189, 0.72);
    background: linear-gradient(180deg, rgba(241, 245, 249, 0.94), rgba(227, 234, 240, 0.94));
    box-shadow: 0 16px 34px rgba(21, 33, 44, 0.14);
    backdrop-filter: blur(2px);
}
body.mfc-auth-only-mode .mfc-auth-brand-panel {
    padding: clamp(18px, 2.8vw, 30px);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
body.mfc-auth-only-mode .mfc-auth-brand-logo {
    width: min(260px, 78%);
    height: auto;
}
body.mfc-auth-only-mode .mfc-auth-brand-panel h2 {
    margin: 4px 0 2px;
    font-size: clamp(1.38rem, 2.6vw, 2rem);
    line-height: 1.15;
    color: #182734;
}
body.mfc-auth-only-mode .mfc-auth-brand-panel p {
    margin: 0;
    color: #3f5264;
    font-size: 0.99rem;
    line-height: 1.45;
}
body.mfc-auth-only-mode .mfc-auth-brand-list {
    margin: 6px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}
body.mfc-auth-only-mode .mfc-auth-brand-list li {
    position: relative;
    padding-left: 20px;
    color: #253748;
    font-weight: 600;
    line-height: 1.35;
}
body.mfc-auth-only-mode .mfc-auth-brand-list li::before {
    content: "+";
    position: absolute;
    left: 0;
    top: 0;
    color: #2f8f22;
    font-weight: 900;
}
body.mfc-auth-only-mode .mfc-auth-card {
    padding: clamp(18px, 2.6vw, 28px);
}
body.mfc-auth-only-mode .mfc-auth-mode-switch {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    padding: 5px;
    border-radius: 999px;
    background: rgba(205, 214, 222, 0.78);
    border: 1px solid rgba(161, 176, 189, 0.74);
    margin-bottom: 12px;
}
body.mfc-auth-only-mode .mfc-auth-mode {
    min-width: 118px;
    text-align: center;
    text-decoration: none;
    font-weight: 800;
    letter-spacing: 0.02em;
    padding: 9px 14px;
    border-radius: 999px;
    color: #2f4356;
}
body.mfc-auth-only-mode .mfc-auth-mode.is-active {
    background: linear-gradient(180deg, #81c355, #6daa44);
    color: #f5fbe9;
}
body.mfc-auth-only-mode .mfc-auth-card h3 {
    margin: 0 0 4px;
    color: #172532;
    font-size: clamp(1.52rem, 3.4vw, 2.08rem);
    line-height: 1.1;
}
body.mfc-auth-only-mode .mfc-auth-card > p {
    margin: 0 0 14px;
    color: #44586a;
    font-size: 0.98rem;
}
body.mfc-auth-only-mode .mfc-auth-form {
    display: grid;
    gap: 10px;
}
body.mfc-auth-only-mode .mfc-auth-field {
    display: grid;
    gap: 6px;
}
body.mfc-auth-only-mode .mfc-auth-form label {
    margin: 0;
    font-size: 0.78rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: #516478;
    font-weight: 800;
}
body.mfc-auth-only-mode .mfc-auth-form input[type="email"],
body.mfc-auth-only-mode .mfc-auth-form input[type="password"] {
    width: 100%;
    min-height: 48px;
    padding: 11px 13px;
    border-radius: 12px;
    border: 1px solid rgba(155, 170, 183, 0.8);
    background: rgba(249, 251, 253, 0.95);
    color: #16232f;
    font-size: 0.98rem;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
body.mfc-auth-only-mode .mfc-auth-form input[type="email"]:focus,
body.mfc-auth-only-mode .mfc-auth-form input[type="password"]:focus {
    border-color: #6aae40;
    box-shadow: 0 0 0 3px rgba(109, 170, 68, 0.18);
    background: #ffffff;
}
body.mfc-auth-only-mode .mfc-auth-helper {
    margin: 0;
    font-size: 0.82rem;
    color: #4c6175;
}
body.mfc-auth-only-mode .mfc-setup-message.is-error {
    border-color: rgba(191, 62, 62, 0.35);
    background: rgba(255, 238, 238, 0.86);
    color: #842222;
}
body.mfc-auth-only-mode .mfc-auth-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
}
body.mfc-auth-only-mode .mfc-auth-actions .mfc-btn {
    min-height: 44px;
    border-radius: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
}
body.mfc-auth-only-mode .mfc-auth-actions .mfc-btn:not(.mfc-btn-ghost) {
    background: linear-gradient(180deg, #82c654, #6aa943);
    border: 1px solid rgba(95, 145, 58, 0.7);
    color: #f6fbe9;
}
body.mfc-auth-only-mode .mfc-auth-actions .mfc-btn.mfc-btn-ghost {
    background: rgba(244, 248, 252, 0.92);
    border: 1px solid rgba(161, 176, 190, 0.9);
    color: #223648;
}
@media (max-width: 980px) {
    body.mfc-auth-only-mode .mfc-auth-layout {
        grid-template-columns: 1fr;
    }
    body.mfc-auth-only-mode .mfc-auth-brand-panel {
        order: 2;
    }
    body.mfc-auth-only-mode .mfc-auth-card {
        order: 1;
    }
}
@media (max-width: 640px) {
    body.mfc-auth-only-mode .mfc-auth-only-main {
        align-items: start;
        padding: 12px;
    }
    body.mfc-auth-only-mode .entry-content {
        width: 100%;
    }
    body.mfc-auth-only-mode .mfc-auth-layout {
        gap: 10px;
    }
    body.mfc-auth-only-mode .mfc-auth-brand-panel,
    body.mfc-auth-only-mode .mfc-auth-card {
        border-radius: 14px;
        padding: 14px;
    }
    body.mfc-auth-only-mode .mfc-auth-mode-switch {
        width: 100%;
    }
    body.mfc-auth-only-mode .mfc-auth-mode {
        min-width: 0;
        padding-left: 8px;
        padding-right: 8px;
    }
    body.mfc-auth-only-mode .mfc-auth-actions {
        flex-direction: column;
    }
    body.mfc-auth-only-mode .mfc-auth-actions .mfc-btn {
        width: 100%;
    }
}

/* First-run compact setup (nickname -> team) */
body .mfc-shell-compact-setup .mfc-game {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
body .mfc-shell-compact-setup {
    background: transparent !important;
    box-shadow: none !important;
    clip-path: none !important;
}
body .mfc-shell-compact-setup .mfc-box {
    background: transparent !important;
}
body .mfc-shell-compact-setup .mfc-compact-setup-box {
    max-width: 980px;
    margin: 0 auto;
    padding-top: 8px;
}
body .mfc-shell-compact-setup .mfc-setup-message {
    margin: 0 0 12px;
}
body .mfc-shell-compact-setup .mfc-compact-setup-card,
body .mfc-shell-compact-setup .mfc-compact-how-panel,
body .mfc-shell-compact-setup .mfc-compact-team-card {
    background: linear-gradient(180deg, rgba(242, 246, 250, 0.96), rgba(231, 237, 243, 0.96)) !important;
    border: 1px solid rgba(171, 185, 199, 0.74) !important;
    box-shadow: 0 12px 28px rgba(13, 25, 36, 0.16) !important;
    color: #1a2b3a !important;
}
body .mfc-shell-compact-setup .mfc-compact-setup-card h3,
body .mfc-shell-compact-setup .mfc-compact-how-panel h4,
body .mfc-shell-compact-setup .mfc-team-select-title {
    color: #1a2b3a !important;
}
body .mfc-shell-compact-setup .mfc-onboard-copy,
body .mfc-shell-compact-setup .mfc-team-select-copy,
body .mfc-shell-compact-setup .mfc-compact-setup-tip {
    color: #4c6276 !important;
}
body .mfc-shell-compact-setup .mfc-compact-setup-form {
    display: grid;
    gap: 10px;
}
body .mfc-shell-compact-setup .mfc-compact-setup-form label {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #516479;
}
body .mfc-shell-compact-setup .mfc-compact-setup-form input[type="text"] {
    min-height: 46px;
    border-radius: 12px;
    border: 1px solid rgba(157, 173, 189, 0.88);
    background: rgba(250, 252, 254, 0.96);
    color: #152331;
    font-size: 1rem;
    padding: 11px 13px;
}
body .mfc-shell-compact-setup .mfc-compact-setup-form input[type="text"]:focus {
    border-color: #6cae46;
    box-shadow: 0 0 0 3px rgba(109, 170, 68, 0.2);
    outline: none;
}
body .mfc-shell-compact-setup .mfc-compact-how-panel {
    margin-top: 12px;
}
body .mfc-shell-compact-setup .mfc-compact-how-panel summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-weight: 800;
    font-size: 1rem;
}
body .mfc-shell-compact-setup .mfc-compact-how-panel summary::-webkit-details-marker {
    display: none;
}
body .mfc-shell-compact-setup .mfc-compact-how-body {
    margin-top: 10px;
    color: #2c4154;
}
body .mfc-shell-compact-setup .mfc-compact-how-body p {
    margin: 0 0 8px;
}
body .mfc-shell-compact-setup .mfc-compact-how-body ul {
    margin: 0;
    padding-left: 18px;
    display: grid;
    gap: 6px;
}
body .mfc-shell-compact-setup .mfc-compact-team-card {
    margin-top: 2px;
}
body .mfc-shell-compact-setup .mfc-team-select-grid-head span {
    color: #516479 !important;
}
body .mfc-shell-compact-setup .mfc-team-card {
    border: 1px solid rgba(170, 185, 200, 0.82) !important;
    background: rgba(248, 251, 253, 0.96) !important;
}
body .mfc-shell-compact-setup .mfc-team-card .mfc-team-name {
    color: #1f3446 !important;
}
body .mfc-shell-compact-setup .mfc-team-card input:checked + .mfc-team-flag,
body .mfc-shell-compact-setup .mfc-team-card input:checked ~ .mfc-team-name {
    color: #1f4f23 !important;
}
@media (max-width: 980px) {
    body .mfc-shell-compact-setup .mfc-compact-setup-box {
        padding-top: 4px;
    }
}

/* Legacy Final-QA-baseline header block removed — see HEADER REWRITE at end of file */

/* Profile page layout hardening */
body .mfc-player-page .mfc-profile-header {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 560px) auto !important;
    align-items: center !important;
}
body .mfc-player-page .mfc-profile-left {
    min-width: 0 !important;
    align-items: center !important;
}
body .mfc-player-page .mfc-profile-meta,
body .mfc-player-page .mfc-profile-name,
body .mfc-player-page .mfc-profile-sub {
    min-width: 0 !important;
}
body .mfc-player-page .mfc-profile-name {
    line-height: 1.15 !important;
    overflow-wrap: anywhere !important;
}
body .mfc-player-page .mfc-profile-sub {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body .mfc-player-page .mfc-profile-mini {
    width: 100%;
    min-width: 320px;
}
body .mfc-player-page .mfc-mini-stat,
body .mfc-player-page .mfc-mini-value {
    min-width: 0;
}
body .mfc-player-page .mfc-mini-value {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
@media (max-width: 1240px) {
    body .mfc-player-page .mfc-profile-header {
        grid-template-columns: 1fr !important;
    }
    body .mfc-player-page .mfc-profile-mini {
        min-width: 0;
    }
    body .mfc-player-page .mfc-profile-sub {
        white-space: normal;
    }
}

/* ============================================================
   POLYLEAGUES — STADIUM AFTER DARK DESIGN SYSTEM
   ============================================================ */

:root {
    --poly-ink-1000: #04060c;
    --poly-ink-900:  #07091a;
    --poly-ink-800:  #0d1126;
    --poly-ink-700:  #131836;
    --poly-ink-600:  #1c2349;
    --poly-ink-500:  #2a3568;
    --poly-accent:   #22d67d;
    --poly-accent-2: #5fffba;
    --poly-accent-glow: rgba(34, 214, 125, 0.45);
    --poly-gold:     #ffb547;
    --poly-warn:     #ff5d5d;
    --poly-text:     #eef1f8;
    --poly-text-dim: #93a0bb;
    --poly-text-mute:#5a6480;
    --poly-border:   rgba(255, 255, 255, 0.08);
    --poly-border-2: rgba(255, 255, 255, 0.14);
    --poly-display:  'Big Shoulders Display', 'Anton', 'Bebas Neue', 'Arial Black', system-ui, sans-serif;
    --poly-body:     'Plus Jakarta Sans', 'Manrope', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --poly-mono:     'JetBrains Mono', 'IBM Plex Mono', ui-monospace, 'Cascadia Code', Consolas, monospace;
    --poly-radius:   18px;
    --poly-radius-lg: 28px;
    --poly-shadow-lg: 0 30px 80px -30px rgba(0, 0, 0, 0.7), 0 10px 30px -10px rgba(0,0,0,0.5);
}

body {
    font-family: var(--poly-body);
    background: var(--poly-ink-1000);
    color: var(--poly-text);
}

/* ===== Page shell — replace the grass background ===== */
.poly-page {
    position: relative;
    background: linear-gradient(180deg, var(--poly-ink-1000) 0%, var(--poly-ink-900) 30%, var(--poly-ink-1000) 100%) !important;
    overflow: hidden;
    isolation: isolate;
    min-height: 100vh;
    padding: 0 0 80px;
}
.poly-page::before { content: none !important; }

.poly-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}
.poly-bg-glow {
    position: absolute;
    width: 60vw;
    height: 60vw;
    max-width: 900px;
    max-height: 900px;
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.55;
    animation: polyDrift 22s ease-in-out infinite alternate;
}
.poly-bg-glow--a {
    top: -10%;
    left: -10%;
    background: radial-gradient(circle, var(--poly-accent-glow) 0%, transparent 70%);
}
.poly-bg-glow--b {
    bottom: -15%;
    right: -10%;
    background: radial-gradient(circle, rgba(80, 92, 220, 0.4) 0%, transparent 70%);
    animation-delay: -8s;
}
@keyframes polyDrift {
    0%   { transform: translate(0, 0) scale(1); }
    50%  { transform: translate(40px, -30px) scale(1.05); }
    100% { transform: translate(-30px, 50px) scale(0.96); }
}
.poly-bg-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
    background-size: 80px 80px;
    mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, #000 30%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, #000 30%, transparent 80%);
}
.poly-bg-noise {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.4 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
    opacity: 0.06;
    mix-blend-mode: overlay;
}

.poly-inner {
    position: relative;
    z-index: 1;
    max-width: 1280px;
    margin: 0 auto;
    padding: 64px 28px 0;
    display: flex;
    flex-direction: column;
    gap: 96px;
}

/* ===== Eyebrows & section heads ===== */
.poly-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--poly-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--poly-accent);
    padding: 6px 14px;
    border: 1px solid color-mix(in srgb, var(--poly-accent) 35%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--poly-accent) 8%, transparent);
}
.poly-eyebrow-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--poly-accent);
    box-shadow: 0 0 12px var(--poly-accent-glow);
    animation: polyPulse 2s ease-in-out infinite;
}
@keyframes polyPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.85); }
}
.poly-section-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 36px;
}
.poly-section-title {
    font-family: var(--poly-display);
    font-weight: 800;
    font-size: clamp(40px, 6vw, 72px);
    line-height: 0.92;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--poly-text);
    margin: 0;
}
.poly-display-accent {
    color: var(--poly-accent);
    font-style: italic;
}

/* ===== HERO ===== */
.poly-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 48px;
    align-items: end;
    padding: 24px 0 24px;
}
.poly-hero-text {
    display: flex;
    flex-direction: column;
    gap: 28px;
    max-width: 640px;
}
.poly-display {
    font-family: var(--poly-display);
    font-weight: 900;
    font-size: clamp(56px, 9vw, 124px);
    line-height: 0.86;
    letter-spacing: -0.015em;
    text-transform: uppercase;
    color: var(--poly-text);
    margin: 0;
}
.poly-display .poly-display-accent {
    background: linear-gradient(120deg, var(--poly-accent) 0%, var(--poly-accent-2) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.poly-lede {
    font-family: var(--poly-body);
    font-size: clamp(16px, 1.4vw, 19px);
    line-height: 1.55;
    color: var(--poly-text-dim);
    max-width: 520px;
    margin: 0;
    font-weight: 500;
}
.poly-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}
.poly-cta-row--centered { justify-content: center; }

/* ===== Buttons ===== */
.poly-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 26px;
    border-radius: 999px;
    font-family: var(--poly-body);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.01em;
    line-height: 1;
    border: 1px solid transparent;
    text-decoration: none !important;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease;
    will-change: transform;
}
.poly-btn:focus-visible { outline: 2px solid var(--poly-accent); outline-offset: 3px; }
.poly-btn--primary {
    background: var(--poly-accent);
    color: var(--poly-ink-900) !important;
    box-shadow: 0 10px 28px -8px var(--poly-accent-glow), inset 0 -2px 0 rgba(0,0,0,0.18);
}
.poly-btn--primary:hover {
    background: var(--poly-accent-2);
    transform: translateY(-2px);
    box-shadow: 0 16px 36px -8px var(--poly-accent-glow);
}
.poly-btn--ghost {
    background: transparent;
    color: var(--poly-text) !important;
    border-color: var(--poly-border-2);
}
.poly-btn--ghost:hover {
    background: rgba(255,255,255,0.04);
    border-color: var(--poly-text-dim);
    transform: translateY(-2px);
}
.poly-btn--lg {
    padding: 20px 32px;
    font-size: 17px;
}

/* ===== Trust row ===== */
.poly-trust {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    font-family: var(--poly-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--poly-text-dim);
}
.poly-trust li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.poly-trust li span {
    color: var(--poly-accent);
    font-size: 8px;
    line-height: 1;
}
.poly-account-detected {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--poly-text-dim);
}
.poly-account-detected strong { color: var(--poly-text); }

/* ===== Hero stats grid ===== */
.poly-hero-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-self: stretch;
}
.poly-stat {
    position: relative;
    border: 1px solid var(--poly-border);
    background: linear-gradient(160deg, var(--poly-ink-700) 0%, var(--poly-ink-800) 100%);
    border-radius: var(--poly-radius);
    padding: 22px 22px 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 130px;
    overflow: hidden;
    transition: transform 0.25s ease, border-color 0.25s ease;
}
.poly-stat::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, rgba(34, 214, 125, 0.12), transparent 60%);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.poly-stat:hover { transform: translateY(-3px); border-color: var(--poly-border-2); }
.poly-stat:hover::before { opacity: 1; }
.poly-stat--lg { grid-column: span 1; min-height: 160px; }
.poly-stat--accent {
    background: linear-gradient(160deg, color-mix(in srgb, var(--poly-accent) 18%, var(--poly-ink-700)) 0%, var(--poly-ink-700) 100%);
    border-color: color-mix(in srgb, var(--poly-accent) 30%, transparent);
}
.poly-stat-num {
    font-family: var(--poly-display);
    font-size: clamp(40px, 4.5vw, 64px);
    font-weight: 900;
    line-height: 1;
    color: var(--poly-text);
    letter-spacing: -0.02em;
}
.poly-stat--accent .poly-stat-num { color: var(--poly-accent); }
.poly-stat-label {
    font-family: var(--poly-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--poly-text-dim);
    line-height: 1.4;
    margin-top: 12px;
}

/* ===== Ticker ===== */
.poly-ticker {
    position: relative;
    border-top: 1px solid var(--poly-border);
    border-bottom: 1px solid var(--poly-border);
    background: var(--poly-ink-900);
    margin-top: -32px;
    margin-bottom: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    height: 64px;
}
.poly-ticker-label {
    flex: 0 0 auto;
    padding: 0 22px;
    height: 100%;
    display: inline-flex;
    align-items: center;
    background: var(--poly-accent);
    color: var(--poly-ink-900);
    font-family: var(--poly-mono);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.poly-ticker-viewport {
    flex: 1 1 auto;
    overflow: hidden;
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.poly-ticker-track {
    display: inline-flex;
    align-items: center;
    gap: 36px;
    padding: 0 36px;
    white-space: nowrap;
    animation: polyTickerSlide 30s linear infinite;
    font-family: var(--poly-display);
    font-size: 26px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--poly-text);
}
.poly-ticker-item { display: inline-flex; align-items: center; gap: 12px; }
.poly-ticker-item span { font-size: 22px; }
.poly-ticker-sep {
    color: var(--poly-text-mute);
    font-weight: 400;
}
@keyframes polyTickerSlide {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ===== How it works ===== */
.poly-how-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.poly-how-step {
    position: relative;
    padding: 32px 28px 28px;
    border: 1px solid var(--poly-border);
    border-radius: var(--poly-radius-lg);
    background: linear-gradient(180deg, var(--poly-ink-800) 0%, var(--poly-ink-900) 100%);
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden;
}
.poly-how-step::after {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--poly-accent), transparent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s ease;
}
.poly-how-step:hover {
    transform: translateY(-4px);
    border-color: var(--poly-border-2);
    box-shadow: var(--poly-shadow-lg);
}
.poly-how-step:hover::after { transform: scaleX(1); }
.poly-step-num {
    display: block;
    font-family: var(--poly-display);
    font-weight: 800;
    font-size: 56px;
    line-height: 1;
    color: var(--poly-text-mute);
    margin-bottom: 18px;
    transition: color 0.3s ease;
}
.poly-how-step:hover .poly-step-num { color: var(--poly-accent); }
.poly-how-step h3 {
    font-family: var(--poly-display);
    font-weight: 800;
    font-size: 26px;
    line-height: 1.05;
    text-transform: uppercase;
    letter-spacing: -0.005em;
    margin: 0 0 10px;
    color: var(--poly-text);
}
.poly-how-step p {
    margin: 0;
    color: var(--poly-text-dim);
    font-size: 15px;
    line-height: 1.55;
}

/* ===== Sport coverage cards ===== */
.poly-coverage-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.poly-sport-card {
    position: relative;
    padding: 28px 24px 26px;
    border: 1px solid var(--poly-border);
    border-radius: var(--poly-radius-lg);
    background: linear-gradient(180deg, var(--poly-ink-800) 0%, var(--poly-ink-900) 100%);
    overflow: hidden;
    transition: transform 0.3s ease, border-color 0.3s ease;
    min-height: 240px;
    display: flex;
    flex-direction: column;
}
.poly-sport-card::before {
    content: "";
    position: absolute;
    top: -40%;
    right: -20%;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--poly-accent-glow) 0%, transparent 70%);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}
.poly-sport-card:hover { transform: translateY(-4px); border-color: var(--poly-accent); }
.poly-sport-card:hover::before { opacity: 0.7; }
.poly-sport-card[data-sport="basketball"] .poly-sport-emoji { filter: hue-rotate(8deg); }
.poly-sport-tag {
    font-family: var(--poly-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--poly-text-mute);
}
.poly-sport-emoji {
    font-size: 56px;
    line-height: 1;
    margin: 18px 0 18px;
    display: block;
    filter: drop-shadow(0 6px 16px rgba(0,0,0,0.35));
}
.poly-sport-card h3 {
    font-family: var(--poly-display);
    font-weight: 800;
    font-size: 32px;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -0.005em;
    margin: 0 0 8px;
    color: var(--poly-text);
}
.poly-sport-card p {
    flex: 1 1 auto;
    margin: 0 0 18px;
    color: var(--poly-text-dim);
    font-size: 14px;
    line-height: 1.5;
}
.poly-sport-cta {
    font-family: var(--poly-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--poly-accent);
    transition: gap 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.poly-sport-card:hover .poly-sport-cta { gap: 12px; }

/* ===== Board (existing leaderboard restyled) ===== */
.poly-board-section { display: flex; flex-direction: column; gap: 32px; }
.poly-board {
    background: var(--poly-ink-800) !important;
    border: 1px solid var(--poly-border) !important;
    border-radius: var(--poly-radius-lg) !important;
    box-shadow: var(--poly-shadow-lg) !important;
    padding: 36px 32px !important;
}
.poly-board-toggle {
    display: inline-flex !important;
    background: var(--poly-ink-900) !important;
    border-radius: 999px !important;
    border: 1px solid var(--poly-border) !important;
    padding: 4px !important;
    margin-bottom: 24px !important;
}
.poly-board-toggle button {
    border: none !important;
    background: transparent !important;
    color: var(--poly-text-dim) !important;
    padding: 10px 22px !important;
    border-radius: 999px !important;
    font-family: var(--poly-body) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    cursor: pointer;
    transition: color 0.2s ease, background 0.2s ease;
}
.poly-board-toggle button.is-active {
    background: var(--poly-accent) !important;
    color: var(--poly-ink-900) !important;
}
.poly-table {
    font-family: var(--poly-body) !important;
}
.poly-table th {
    font-family: var(--poly-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--poly-text-mute) !important;
    border-bottom: 1px solid var(--poly-border) !important;
    padding: 12px 16px !important;
    text-align: left;
}
.poly-table td {
    border-bottom: 1px solid var(--poly-border) !important;
    padding: 14px 16px !important;
    color: var(--poly-text);
}
.poly-table tbody tr { transition: background 0.15s ease; }
.poly-table tbody tr:hover { background: rgba(255,255,255,0.02) !important; }
.poly-table .mfc-hub-rank {
    font-family: var(--poly-display) !important;
    font-weight: 800 !important;
    font-size: 22px !important;
    color: var(--poly-text-dim) !important;
}
.poly-table .mfc-hub-score {
    font-family: var(--poly-mono) !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    color: var(--poly-accent) !important;
}
.poly-board-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    font-family: var(--poly-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--poly-accent) !important;
    text-decoration: none !important;
    transition: gap 0.2s ease;
}
.poly-board-link:hover { gap: 16px; }

/* Podium overrides for new look */
.poly-board .mfc-hub-podium { gap: 18px !important; padding: 0 !important; margin-bottom: 28px !important; }
.poly-board .mfc-hub-podium-card {
    background: var(--poly-ink-900) !important;
    border: 1px solid var(--poly-border) !important;
    border-radius: var(--poly-radius) !important;
    padding: 22px 18px !important;
}
.poly-board .mfc-hub-podium-card.is-top {
    border-color: color-mix(in srgb, var(--poly-accent) 50%, transparent) !important;
    background: linear-gradient(180deg, color-mix(in srgb, var(--poly-accent) 14%, var(--poly-ink-900)) 0%, var(--poly-ink-900) 100%) !important;
    box-shadow: 0 16px 40px -16px var(--poly-accent-glow) !important;
}
.poly-board .mfc-hub-podium-name {
    font-family: var(--poly-display) !important;
    font-weight: 800 !important;
    font-size: 22px !important;
    text-transform: uppercase !important;
    letter-spacing: -0.005em !important;
    color: var(--poly-text) !important;
}

/* ===== Final CTA ===== */
.poly-final {
    margin-bottom: 32px;
}
.poly-final-card {
    position: relative;
    text-align: center;
    padding: 72px 48px 64px;
    border-radius: var(--poly-radius-lg);
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--poly-accent) 22%, var(--poly-ink-700)) 0%, var(--poly-ink-800) 60%, var(--poly-ink-900) 100%);
    border: 1px solid var(--poly-border-2);
    overflow: hidden;
    box-shadow: var(--poly-shadow-lg);
}
.poly-final-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(45deg, rgba(34,214,125,0.04) 0 2px, transparent 2px 24px);
    pointer-events: none;
}
.poly-final-title {
    font-family: var(--poly-display);
    font-weight: 900;
    font-size: clamp(48px, 7vw, 96px);
    line-height: 0.9;
    letter-spacing: -0.015em;
    text-transform: uppercase;
    color: var(--poly-text);
    margin: 16px 0 18px;
}
.poly-final-lede {
    color: var(--poly-text-dim);
    font-size: clamp(15px, 1.3vw, 18px);
    line-height: 1.55;
    max-width: 580px;
    margin: 0 auto 32px;
}

/* ===== Header & footer touch-ups ===== */
.site-header {
    background: rgba(7, 9, 26, 0.78) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--poly-border) !important;
    position: sticky !important;
    top: 0;
    z-index: 50;
}
.site-header .header-inner { padding: 12px 28px !important; }
.site-header .site-nav a {
    font-family: var(--poly-mono) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--poly-text-dim) !important;
    transition: color 0.18s ease;
}
.site-header .site-nav a:hover { color: var(--poly-text) !important; }
.site-header .site-actions .btn {
    font-family: var(--poly-body) !important;
    font-weight: 700 !important;
    border-radius: 999px !important;
    padding: 10px 20px !important;
    font-size: 13px !important;
    letter-spacing: 0.02em !important;
}
.site-header .site-actions .btn-ghost {
    background: transparent !important;
    color: var(--poly-text) !important;
    border: 1px solid var(--poly-border-2) !important;
}
.site-header .site-actions .btn-ghost:hover {
    background: rgba(255,255,255,0.04) !important;
}
.site-header .site-actions .btn:not(.btn-ghost) {
    background: var(--poly-accent) !important;
    color: var(--poly-ink-900) !important;
    box-shadow: 0 8px 22px -8px var(--poly-accent-glow) !important;
}
.site-footer {
    background: var(--poly-ink-1000) !important;
    border-top: 1px solid var(--poly-border) !important;
    color: var(--poly-text-dim) !important;
}

/* Hide the legacy chip strip + grass-styled sections that we no longer need on the new home */
.poly-page .mfc-hub-sports { display: none; }
.poly-page .mfc-hub-game-grid { display: none; }
.poly-page .mfc-hub-intro-card { display: none; }

/* Ensure the existing hub page background does not draw the grass */
.poly-page::after { display: none; }
.poly-page,
.mfc-hub-page.poly-page {
    background-image: linear-gradient(180deg, var(--poly-ink-1000) 0%, var(--poly-ink-900) 30%, var(--poly-ink-1000) 100%) !important;
}

/* ===== Responsive ===== */
@media (max-width: 980px) {
    .poly-inner { padding: 40px 20px 0; gap: 72px; }
    .poly-hero { grid-template-columns: 1fr; gap: 40px; }
    .poly-hero-stats { grid-template-columns: repeat(2, 1fr); }
    .poly-how-grid { grid-template-columns: 1fr; }
    .poly-coverage-grid { grid-template-columns: repeat(2, 1fr); }
    .poly-final-card { padding: 56px 28px; }
}
@media (max-width: 600px) {
    .poly-display { font-size: clamp(48px, 12vw, 72px); }
    .poly-section-title { font-size: clamp(34px, 9vw, 48px); }
    .poly-coverage-grid { grid-template-columns: 1fr; }
    .poly-hero-stats { grid-template-columns: 1fr 1fr; }
    .poly-ticker { height: 56px; }
    .poly-ticker-track { font-size: 22px; }
    .poly-board { padding: 24px 18px !important; }
    .poly-trust { gap: 6px 16px; font-size: 10px; }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
    .poly-bg-glow, .poly-eyebrow-dot, .poly-ticker-track { animation: none !important; }
}

/* ============================================================
   POLYLEAGUES — RICHER CONTENT SECTIONS
   ============================================================ */

/* Hero atmospheric image overlay */
.poly-page::before {
    content: "" !important;
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 95vh;
    background-image:
        linear-gradient(180deg, rgba(4,6,12,0.45) 0%, rgba(4,6,12,0.78) 50%, var(--poly-ink-1000) 100%),
        url('/wp-content/plugins/polyleagues/assets/football/hero-stadium-night.jpg');
    background-size: cover, cover;
    background-position: center top, center 30%;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 0;
    -webkit-mask-image: linear-gradient(180deg, #000 50%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 50%, transparent 100%);
}
.poly-page > .poly-bg,
.poly-page > .poly-inner { z-index: 1; }

/* Sport-card gradient tones (per sport) */
.poly-sport-card[data-sport="football"]::after,
.poly-sport-card[data-sport="basketball"]::after,
.poly-sport-card[data-sport="baseball"]::after,
.poly-sport-card[data-sport="hockey"]::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, transparent 30%, rgba(34,214,125,0.08) 100%);
    pointer-events: none;
    transition: opacity 0.4s ease;
    z-index: 0;
}
.poly-sport-card[data-sport="football"]  { background: radial-gradient(circle at top right, rgba(34, 214, 125, 0.14), transparent 60%), linear-gradient(180deg, var(--poly-ink-800) 0%, var(--poly-ink-900) 100%); }
.poly-sport-card[data-sport="basketball"]{ background: radial-gradient(circle at top right, rgba(255, 154, 60, 0.18), transparent 60%), linear-gradient(180deg, var(--poly-ink-800) 0%, var(--poly-ink-900) 100%); }
.poly-sport-card[data-sport="baseball"]  { background: radial-gradient(circle at top right, rgba(255, 92, 92, 0.18), transparent 60%), linear-gradient(180deg, var(--poly-ink-800) 0%, var(--poly-ink-900) 100%); }
.poly-sport-card[data-sport="hockey"]    { background: radial-gradient(circle at top right, rgba(96, 162, 255, 0.18), transparent 60%), linear-gradient(180deg, var(--poly-ink-800) 0%, var(--poly-ink-900) 100%); }
.poly-sport-card > * { position: relative; z-index: 1; }

/* ===== Leagues showcase ===== */
.poly-leagues-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}
.poly-league {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--poly-border);
    border-radius: 12px;
    background: linear-gradient(180deg, var(--poly-ink-800) 0%, var(--poly-ink-900) 100%);
    transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
    cursor: default;
}
.poly-league:hover {
    transform: translateY(-2px);
    border-color: var(--poly-border-2);
}
.poly-league-mark {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 8px;
    font-family: var(--poly-display);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--poly-text);
    background: var(--poly-ink-700);
    border: 1px solid var(--poly-border);
}
.poly-league-name {
    font-family: var(--poly-body);
    font-size: 13px;
    font-weight: 700;
    color: var(--poly-text);
    letter-spacing: 0.005em;
}
.poly-league[data-tone="football"]   .poly-league-mark { background: linear-gradient(135deg, rgba(34,214,125,0.22), rgba(34,214,125,0.06)); border-color: color-mix(in srgb, var(--poly-accent) 25%, transparent); color: var(--poly-accent-2); }
.poly-league[data-tone="basketball"] .poly-league-mark { background: linear-gradient(135deg, rgba(255,154,60,0.22), rgba(255,154,60,0.06)); border-color: rgba(255,154,60,0.32); color: #ffb677; }
.poly-league[data-tone="baseball"]   .poly-league-mark { background: linear-gradient(135deg, rgba(255,92,92,0.22), rgba(255,92,92,0.06)); border-color: rgba(255,92,92,0.32); color: #ff8e8e; }
.poly-league[data-tone="hockey"]     .poly-league-mark { background: linear-gradient(135deg, rgba(96,162,255,0.22), rgba(96,162,255,0.06)); border-color: rgba(96,162,255,0.32); color: #8db8ff; }

/* ===== Why play cards ===== */
.poly-why-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.poly-why-card {
    position: relative;
    padding: 36px 30px 30px;
    border: 1px solid var(--poly-border);
    border-radius: var(--poly-radius-lg);
    background: linear-gradient(180deg, var(--poly-ink-800) 0%, var(--poly-ink-900) 100%);
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.3s ease, border-color 0.3s ease;
    min-height: 320px;
    display: flex;
    flex-direction: column;
}
.poly-why-card::before {
    content: "";
    position: absolute;
    top: -30%;
    right: -20%;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    filter: blur(40px);
    opacity: 0.55;
    transition: transform 0.6s ease, opacity 0.4s ease;
    z-index: -1;
}
.poly-why-card--free::before    { background: radial-gradient(circle, rgba(34,214,125,0.55), transparent 70%); }
.poly-why-card--prizes::before  { background: radial-gradient(circle, rgba(255,181,71,0.55), transparent 70%); }
.poly-why-card--skill::before   { background: radial-gradient(circle, rgba(96,162,255,0.5), transparent 70%); }
.poly-why-card:hover {
    transform: translateY(-4px);
    border-color: var(--poly-border-2);
}
.poly-why-card:hover::before {
    transform: translate(-30px, 30px) scale(1.15);
    opacity: 0.8;
}
.poly-why-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--poly-border);
    color: var(--poly-accent);
    margin-bottom: 24px;
}
.poly-why-card--prizes .poly-why-icon { color: var(--poly-gold); }
.poly-why-card--skill  .poly-why-icon { color: #8db8ff; }
.poly-why-icon svg { width: 28px; height: 28px; stroke: currentColor; }
.poly-why-card h3 {
    font-family: var(--poly-display);
    font-weight: 800;
    font-size: clamp(28px, 2.4vw, 36px);
    line-height: 0.95;
    text-transform: uppercase;
    letter-spacing: -0.005em;
    color: var(--poly-text);
    margin: 0 0 14px;
}
.poly-why-card p {
    flex: 1 1 auto;
    margin: 0 0 22px;
    color: var(--poly-text-dim);
    font-size: 15px;
    line-height: 1.55;
}
.poly-why-tag {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    padding: 6px 12px;
    border-radius: 999px;
    font-family: var(--poly-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--poly-text);
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--poly-border-2);
}

/* ===== Leaderboard CTA card ===== */
.poly-lbcard {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 32px;
    align-items: center;
    padding: 56px 56px 56px;
    border-radius: var(--poly-radius-lg);
    border: 1px solid var(--poly-border-2);
    background: linear-gradient(135deg, var(--poly-ink-700) 0%, var(--poly-ink-900) 60%);
    text-decoration: none !important;
    overflow: hidden;
    isolation: isolate;
    box-shadow: var(--poly-shadow-lg);
    transition: transform 0.35s ease, border-color 0.35s ease;
}
.poly-lbcard:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--poly-accent) 40%, transparent);
}
.poly-lbcard-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(ellipse at 20% 20%, rgba(34,214,125,0.18), transparent 55%),
        radial-gradient(ellipse at 80% 80%, rgba(34,214,125,0.10), transparent 55%);
}
.poly-lbcard-text { display: flex; flex-direction: column; gap: 14px; max-width: 520px; }
.poly-lbcard-title {
    font-family: var(--poly-display);
    font-weight: 900;
    font-size: clamp(40px, 5vw, 64px);
    line-height: 0.92;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--poly-text);
    margin: 0;
}
.poly-lbcard-lede {
    color: var(--poly-text-dim);
    font-size: 16px;
    line-height: 1.55;
    margin: 0;
}
.poly-lbcard-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
    align-self: flex-start;
    padding: 14px 22px;
    border-radius: 999px;
    background: var(--poly-accent);
    color: var(--poly-ink-900) !important;
    font-family: var(--poly-body);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.01em;
    transition: gap 0.25s ease;
}
.poly-lbcard:hover .poly-lbcard-cta { gap: 16px; }
.poly-lbcard-podium {
    position: relative;
    height: 240px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 10px;
}
.poly-lbcard-rank {
    position: relative;
    flex: 0 0 auto;
    width: 80px;
    border-radius: 14px 14px 0 0;
    border: 1px solid var(--poly-border-2);
    background: linear-gradient(180deg, var(--poly-ink-700) 0%, var(--poly-ink-800) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--poly-display);
    font-weight: 900;
    font-size: 64px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--poly-text-dim);
    transition: transform 0.4s ease, color 0.4s ease;
}
.poly-lbcard-rank--1 {
    height: 220px;
    color: var(--poly-text);
    background: linear-gradient(180deg, color-mix(in srgb, var(--poly-accent) 26%, var(--poly-ink-700)) 0%, var(--poly-ink-800) 100%);
    border-color: color-mix(in srgb, var(--poly-accent) 50%, transparent);
    box-shadow: 0 20px 50px -20px var(--poly-accent-glow);
    z-index: 2;
}
.poly-lbcard-rank--2 {
    height: 170px;
    transform: translateY(2px);
}
.poly-lbcard-rank--3 {
    height: 140px;
    transform: translateY(2px);
}
.poly-lbcard:hover .poly-lbcard-rank--1 { transform: translateY(-6px); }
.poly-lbcard:hover .poly-lbcard-rank--2 { transform: translateY(-3px); }
.poly-lbcard:hover .poly-lbcard-rank--3 { transform: translateY(-3px); }

/* ===== Footer redesign ===== */
.site-footer {
    position: relative;
    background: var(--poly-ink-1000) !important;
    border-top: 1px solid var(--poly-border) !important;
    padding: 80px 28px 32px !important;
    margin-top: 60px;
    overflow: hidden;
}
.site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--poly-accent), transparent);
    opacity: 0.4;
}
.site-footer .footer-inner {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(280px, 1.4fr) repeat(3, minmax(0, 1fr));
    gap: 56px 32px;
    padding: 0 !important;
}
.site-footer .footer-brand-card {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.site-footer .footer-brand-card h4 {
    font-family: var(--poly-display) !important;
    font-weight: 900 !important;
    font-size: 48px !important;
    line-height: 0.9 !important;
    letter-spacing: -0.01em !important;
    text-transform: uppercase !important;
    color: var(--poly-text) !important;
    margin: 0 !important;
}
.site-footer .footer-brand-card p {
    color: var(--poly-text-dim) !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    max-width: 380px !important;
    margin: 0 !important;
}
.site-footer .footer-badges {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px !important;
    margin-top: 6px !important;
}
.site-footer .badge {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    padding: 6px 12px !important;
    border-radius: 999px !important;
    font-family: var(--poly-mono) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--poly-text-dim) !important;
    background: rgba(255,255,255,0.03) !important;
    border: 1px solid var(--poly-border) !important;
}
.site-footer .badge-18 {
    color: var(--poly-accent) !important;
    border-color: color-mix(in srgb, var(--poly-accent) 35%, transparent) !important;
}
.site-footer .badge img { display: none !important; }
.site-footer .footer-trust {
    margin-top: 0 !important;
    background: rgba(255,255,255,0.02);
    border: 1px solid var(--poly-border);
    border-radius: 14px;
    padding: 18px 18px;
    max-width: 380px;
}
.site-footer .footer-trust img {
    max-width: 200px !important;
    height: auto !important;
    filter: brightness(0.9) saturate(0.8);
    opacity: 0.85;
}
.site-footer .footer-col h4 {
    font-family: var(--poly-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    color: var(--poly-text-mute) !important;
    margin: 0 0 18px !important;
}
.site-footer .footer-col p {
    margin: 0 0 12px !important;
    line-height: 1.4 !important;
}
.site-footer .footer-col p a {
    font-family: var(--poly-body) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--poly-text) !important;
    text-decoration: none !important;
    transition: color 0.18s ease;
    display: inline-flex;
    align-items: center;
}
.site-footer .footer-col p a::after {
    content: "→";
    margin-left: 6px;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity 0.2s ease, transform 0.2s ease;
    color: var(--poly-accent);
}
.site-footer .footer-col p a:hover {
    color: var(--poly-accent) !important;
}
.site-footer .footer-col p a:hover::after {
    opacity: 1;
    transform: translateX(0);
}
.site-footer .footer-legal {
    max-width: 1280px !important;
    margin: 56px auto 0 !important;
    padding-top: 32px !important;
    border-top: 1px solid var(--poly-border) !important;
    display: flex !important;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 14px !important;
    color: var(--poly-text-mute) !important;
    font-family: var(--poly-mono) !important;
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
}

/* ============================================================
   POLYLEAGUES — HEADER REWRITE
   ============================================================ */

/* Outer bar */
.site-header {
    background: linear-gradient(180deg, rgba(4,6,12,0.92) 0%, rgba(4,6,12,0.78) 100%) !important;
    backdrop-filter: blur(18px) saturate(1.2) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.2) !important;
    border-bottom: 1px solid var(--poly-border) !important;
    position: sticky !important;
    top: 0;
    z-index: 50 !important;
    padding: 0 !important;
}
.site-header::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--poly-accent) 60%, transparent), transparent);
    opacity: 0.5;
    pointer-events: none;
}

/* Inner: full row with proper space */
.site-header .header-inner {
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding: 14px 28px !important;
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    align-items: center !important;
    gap: 32px !important;
}

/* ===== Logo lockup ===== */
.site-header .site-logo {
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
    text-decoration: none !important;
    transition: opacity 0.18s ease;
}
.site-header .site-logo:hover { opacity: 0.85; }
.site-header .site-logo img {
    height: 40px !important;
    max-height: 40px !important;
    width: auto !important;
    display: block;
    filter: brightness(0) invert(1) !important;
    transition: filter 0.18s ease;
}
.site-header .site-logo:hover img {
    filter: brightness(0) invert(1) sepia(1) saturate(8) hue-rotate(95deg) !important;
}
/* Live status pill next to logo (CSS-injected, no markup change) */
.site-header .site-logo::after {
    content: "LIVE";
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 18px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--poly-accent) 35%, transparent);
    background:
        radial-gradient(circle at 9px center, var(--poly-accent) 0 3px, transparent 4px),
        color-mix(in srgb, var(--poly-accent) 8%, transparent);
    color: var(--poly-accent);
    font-family: var(--poly-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    line-height: 1;
    margin-left: 6px;
    animation: polyLivePulse 2s ease-in-out infinite;
}
@keyframes polyLivePulse {
    0%, 100% { box-shadow: 0 0 0 0 var(--poly-accent-glow); }
    50%      { box-shadow: 0 0 0 6px transparent; }
}

/* ===== Navigation ===== */
.site-header .site-nav {
    justify-self: center;
}
.site-header .site-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex !important;
    align-items: center;
    gap: 4px !important;
    flex-wrap: nowrap !important;
}
.site-header .site-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 10px 16px !important;
    border-radius: 0 !important;
    background: transparent !important;
    border: none !important;
    color: var(--poly-text-dim) !important;
    font-family: var(--poly-mono) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    transition: color 0.18s ease;
}
.site-header .site-nav a::after {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 6px;
    height: 1px;
    background: var(--poly-accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}
.site-header .site-nav a:hover {
    color: var(--poly-text) !important;
    background: transparent !important;
}
.site-header .site-nav a:hover::after { transform: scaleX(1); }
.site-header .site-nav .current-menu-item a,
.site-header .site-nav .current_page_item a {
    color: var(--poly-text) !important;
}
.site-header .site-nav .current-menu-item a::after,
.site-header .site-nav .current_page_item a::after { transform: scaleX(1); }

/* ===== Right-side actions ===== */
.site-header .site-actions {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
}

/* Reset existing pill button styles inside header */
.site-header .site-actions .btn {
    padding: 0 !important;
    border-radius: 999px !important;
    font-family: var(--poly-body) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    border: 1px solid transparent !important;
    transition: transform 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

/* Ghost / secondary buttons (Log in, etc.) */
.site-header .site-actions .btn-ghost {
    padding: 10px 18px !important;
    background: transparent !important;
    color: var(--poly-text) !important;
    border-color: var(--poly-border-2) !important;
}
.site-header .site-actions .btn-ghost:hover {
    background: rgba(255,255,255,0.04) !important;
    border-color: var(--poly-text-dim) !important;
}

/* Primary CTA (Play Now / Create account) — green */
.site-header .site-actions .btn:not(.btn-ghost) {
    padding: 10px 18px !important;
    background: var(--poly-accent) !important;
    color: var(--poly-ink-900) !important;
    box-shadow: 0 8px 20px -8px var(--poly-accent-glow) !important;
}
.site-header .site-actions .btn:not(.btn-ghost):hover {
    background: var(--poly-accent-2) !important;
    transform: translateY(-1px);
}

/* Avatar pill (compact, only visible icon — text "PROFILE" button hidden) */
.site-header .mfc-profile-page-cta { display: none !important; }
.site-header .mfc-profile-cta {
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid var(--poly-border-2) !important;
    overflow: visible;
    position: relative;
}
.site-header .mfc-profile-cta:hover {
    background: rgba(255,255,255,0.08) !important;
    border-color: var(--poly-text-dim) !important;
}
.site-header .mfc-profile-cta-avatar {
    width: 36px !important;
    height: 36px !important;
    border-radius: 999px !important;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.site-header .mfc-profile-cta-avatar img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}
.site-header .mfc-profile-cta-fallback {
    font-family: var(--poly-display);
    font-weight: 800;
    font-size: 14px;
    color: var(--poly-text);
    letter-spacing: -0.01em;
}
.site-header .mfc-notif-count {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--poly-warn);
    color: #fff;
    font-family: var(--poly-mono);
    font-size: 10px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
    border: 2px solid var(--poly-ink-900);
}

/* Mobile nav toggle + collapse toggle */
.site-header .nav-toggle {
    background: transparent !important;
    border: 1px solid var(--poly-border-2) !important;
    border-radius: 10px !important;
    width: 42px;
    height: 42px;
}
.mfc-header-collapse-toggle { display: none !important; }

/* Responsive */
@media (max-width: 980px) {
    .site-header .header-inner {
        grid-template-columns: 1fr auto auto !important;
        gap: 16px !important;
        padding: 12px 18px !important;
    }
    .site-header .site-nav { display: none !important; }
    .site-header .site-logo::after { display: none; }
    .site-header .nav-toggle { display: inline-flex !important; }
    body.nav-open .site-nav {
        display: block !important;
        position: fixed;
        top: 70px;
        left: 16px;
        right: 16px;
        background: var(--poly-ink-800);
        border: 1px solid var(--poly-border-2);
        border-radius: 16px;
        padding: 12px;
        z-index: 51;
    }
    body.nav-open .site-nav ul {
        flex-direction: column !important;
        gap: 4px !important;
        align-items: stretch;
    }
    body.nav-open .site-nav a {
        padding: 14px 16px !important;
    }
}
@media (max-width: 600px) {
    .site-header .header-inner { padding: 10px 14px !important; gap: 10px !important; }
    .site-header .site-logo img { height: 32px !important; max-height: 32px !important; }
    .site-header .site-actions .btn { padding: 8px 14px !important; font-size: 12px !important; }
    .site-header .site-actions { gap: 6px !important; }
}

/* Responsive add-ons */
@media (max-width: 980px) {
    .poly-why-grid { grid-template-columns: 1fr; }
    .poly-lbcard { grid-template-columns: 1fr; padding: 40px 32px; gap: 28px; }
    .poly-lbcard-podium { height: 180px; }
    .poly-lbcard-rank { width: 60px; font-size: 48px; }
    .site-footer .footer-inner { grid-template-columns: 1fr 1fr; gap: 40px 24px; }
    .poly-page::before { height: 70vh; }
}
@media (max-width: 600px) {
    .poly-leagues-grid { grid-template-columns: repeat(2, 1fr); }
    .site-footer { padding: 60px 20px 28px !important; }
    .site-footer .footer-inner { grid-template-columns: 1fr; gap: 36px; }
    .site-footer .footer-brand-card h4 { font-size: 36px !important; }
    .site-footer .footer-legal { flex-direction: column; align-items: flex-start; }
}

/* ===========================================================
   POLYLEAGUES — MULTI-LEAGUE SWITCHER
   In-game sport filter chips, league tab strip, league panels.
   Header flyout for the "Leagues" nav menu.
   =========================================================== */
.mfc-predict-board-wrap {
    display: flex;
    flex-direction: column;
    gap: 28px;
    margin: 32px 0;
}
.mfc-predict-header {
    display: flex;
    align-items: stretch;
    gap: 24px;
    padding: 26px 28px;
    background: linear-gradient(135deg, rgba(34,214,125,0.10) 0%, rgba(7,9,26,0.92) 60%, rgba(7,9,26,0.96) 100%);
    border: 1px solid rgba(34,214,125,0.22);
    border-radius: 20px;
    box-shadow: 0 24px 64px -32px rgba(0,0,0,0.7), inset 0 0 0 1px rgba(255,255,255,0.04);
    color: #f3fbf6;
    position: relative;
    overflow: hidden;
}
.mfc-predict-header::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(800px 240px at 8% 20%, rgba(34,214,125,0.16), transparent 60%),
        repeating-linear-gradient(135deg, rgba(255,255,255,0.012) 0 2px, transparent 2px 6px);
    pointer-events: none;
    z-index: 0;
}
.mfc-predict-header > * { position: relative; z-index: 1; }
.mfc-predict-header-text { flex: 1; min-width: 0; }
.mfc-predict-header-text h3 {
    margin: 0 0 8px 0 !important;
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 34px;
    letter-spacing: 0.02em;
    line-height: 1;
    color: #ffffff;
    text-transform: uppercase;
}
.mfc-predict-header-text p {
    margin: 0 !important;
    color: rgba(245,250,247,0.72);
    font-size: 14px;
    line-height: 1.5;
    max-width: 60ch;
}
.mfc-predict-header-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(72px, 1fr));
    gap: 12px;
    align-items: stretch;
    min-width: 320px;
}
.mfc-predict-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 12px 8px;
    background: rgba(4,6,12,0.6);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 12px;
    gap: 4px;
}
.mfc-predict-stat strong {
    font-family: 'JetBrains Mono', monospace;
    font-size: 26px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
    letter-spacing: -0.02em;
}
.mfc-predict-stat span {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: rgba(245,250,247,0.56);
}
.mfc-predict-stat.is-accent {
    background: linear-gradient(180deg, rgba(34,214,125,0.18) 0%, rgba(34,214,125,0.06) 100%);
    border-color: rgba(34,214,125,0.5);
}
.mfc-predict-stat.is-accent strong { color: #5fffba; }
.mfc-predict-stat.is-accent span { color: rgba(95,255,186,0.85); }

/* Sport filter chips */
.mfc-sport-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0;
}
.mfc-sport-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: rgba(7,9,26,0.6);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 999px;
    color: rgba(245,250,247,0.7);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    cursor: pointer;
    transition: all 0.18s ease;
}
.mfc-sport-chip:hover {
    border-color: rgba(34,214,125,0.4);
    color: #ffffff;
    background: rgba(34,214,125,0.08);
}
.mfc-sport-chip.is-active {
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    border-color: #22d67d;
    color: #04060c;
    box-shadow: 0 8px 24px -10px rgba(34,214,125,0.6);
}
.mfc-sport-chip.is-active .mfc-sport-chip-count { background: rgba(4,6,12,0.18); color: #04060c; }
.mfc-sport-chip-icon { font-size: 14px; line-height: 1; }
.mfc-sport-chip-count {
    padding: 1px 7px;
    background: rgba(255,255,255,0.06);
    border-radius: 999px;
    font-size: 10px;
    color: rgba(245,250,247,0.85);
}

/* League tab strip — horizontal scrollable cards */
.mfc-league-switcher {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 4px 4px 14px 4px;
    margin: 0 -4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(34,214,125,0.4) transparent;
    scroll-snap-type: x mandatory;
}
.mfc-league-switcher::-webkit-scrollbar { height: 6px; }
.mfc-league-switcher::-webkit-scrollbar-thumb {
    background: rgba(34,214,125,0.4);
    border-radius: 99px;
}
.mfc-league-tab {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    align-items: center;
    gap: 14px;
    flex: 0 0 auto;
    min-width: 280px;
    max-width: 340px;
    padding: 14px 16px;
    background: linear-gradient(160deg, rgba(7,9,26,0.92) 0%, rgba(4,6,12,0.96) 100%);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 14px;
    color: #f3fbf6;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
    position: relative;
    overflow: hidden;
    scroll-snap-align: start;
}
.mfc-league-tab::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(400px 120px at 100% 0%, rgba(34,214,125,0.08), transparent 70%);
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}
.mfc-league-tab:hover { border-color: rgba(34,214,125,0.32); transform: translateY(-1px); }
.mfc-league-tab:hover::before { opacity: 1; }
.mfc-league-tab.is-active {
    border-color: #22d67d;
    background: linear-gradient(160deg, rgba(34,214,125,0.14) 0%, rgba(7,9,26,0.96) 100%);
    box-shadow: 0 12px 36px -12px rgba(34,214,125,0.5), inset 0 0 0 1px rgba(34,214,125,0.18);
}
.mfc-league-tab.is-active::before { opacity: 1; }
.mfc-league-tab-sport {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 0;
    background: rgba(255,255,255,0.04);
    border-radius: 10px;
    text-align: center;
}
.mfc-league-tab-icon { font-size: 22px; line-height: 1; }
.mfc-league-tab-sport-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.18em;
    color: rgba(245,250,247,0.6);
    text-transform: uppercase;
}
.mfc-league-tab.is-active .mfc-league-tab-sport {
    background: rgba(34,214,125,0.18);
}
.mfc-league-tab.is-active .mfc-league-tab-sport-label { color: #5fffba; }
.mfc-league-tab-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.mfc-league-tab-name {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 18px;
    color: #ffffff;
    line-height: 1.1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.mfc-league-tab-sub {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.12em;
    color: rgba(245,250,247,0.55);
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.mfc-league-tab-pulse {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 2px;
    padding-left: 8px;
    border-left: 1px solid rgba(255,255,255,0.06);
}
.mfc-league-tab-pulse strong {
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
}
.mfc-league-tab-pulse em {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    font-style: normal;
    letter-spacing: 0.18em;
    color: rgba(245,250,247,0.6);
    text-transform: uppercase;
}
.mfc-league-tab.is-active .mfc-league-tab-pulse strong { color: #5fffba; }
.mfc-league-tab-dot {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #22d67d;
    box-shadow: 0 0 0 0 rgba(34,214,125,0.7);
    animation: polyLivePulse 2s ease-in-out infinite;
}

/* League panel */
.mfc-league-panel {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 24px;
    background: linear-gradient(180deg, rgba(7,9,26,0.94) 0%, rgba(4,6,12,0.98) 100%);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 18px;
    position: relative;
    overflow: hidden;
}
.mfc-league-panel.is-active::after {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, #22d67d 30%, #5fffba 50%, #22d67d 70%, transparent 100%);
}
.mfc-league-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.mfc-league-panel-titleblock { flex: 1; min-width: 0; }
.mfc-league-panel-eyebrow {
    display: inline-block;
    margin-bottom: 6px;
    padding: 2px 8px;
    background: rgba(34,214,125,0.12);
    border-radius: 4px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    color: #5fffba;
    text-transform: uppercase;
}
.mfc-league-panel-title {
    margin: 0 !important;
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 30px;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    line-height: 1;
}
.mfc-league-panel-sub {
    margin: 6px 0 0 0 !important;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.12em;
    color: rgba(245,250,247,0.55);
    text-transform: uppercase;
}
.mfc-league-panel-stats {
    display: flex;
    gap: 10px;
}
.mfc-league-panel-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 10px 14px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 10px;
    min-width: 80px;
    gap: 2px;
}
.mfc-league-panel-stat strong {
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
}
.mfc-league-panel-stat span {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.16em;
    color: rgba(245,250,247,0.55);
    text-transform: uppercase;
}
.mfc-league-panel-stat.is-open {
    background: rgba(34,214,125,0.10);
    border-color: rgba(34,214,125,0.4);
}
.mfc-league-panel-stat.is-open strong { color: #5fffba; }

/* Header nav: Leagues flyout */
.mfc-nav-has-flyout {
    position: relative;
}
.mfc-nav-flyout-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    background: none;
    border: none;
    color: inherit;
    font: inherit;
    cursor: pointer;
    font-family: inherit;
}
.mfc-nav-flyout-caret {
    font-size: 11px;
    line-height: 1;
    opacity: 0.7;
    transform: translateY(1px);
    transition: transform 0.2s ease;
}
.mfc-nav-has-flyout.is-open .mfc-nav-flyout-caret { transform: translateY(1px) rotate(180deg); }
.mfc-nav-flyout {
    position: absolute;
    top: calc(100% + 16px);
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    width: min(720px, calc(100vw - 32px));
    background: linear-gradient(180deg, rgba(7,9,26,0.98) 0%, rgba(4,6,12,0.98) 100%);
    border: 1px solid rgba(34,214,125,0.22);
    border-radius: 18px;
    box-shadow: 0 32px 80px -24px rgba(0,0,0,0.8), 0 0 0 1px rgba(255,255,255,0.04);
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
    z-index: 200;
    backdrop-filter: blur(20px) saturate(1.2);
}
.mfc-nav-has-flyout.is-open .mfc-nav-flyout {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0s;
}
.mfc-nav-flyout::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 14px;
    height: 14px;
    background: rgba(7,9,26,0.98);
    border-top: 1px solid rgba(34,214,125,0.22);
    border-left: 1px solid rgba(34,214,125,0.22);
}
.mfc-nav-flyout-head {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 8px 14px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    margin-bottom: 16px;
}
.mfc-nav-flyout-eyebrow {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.22em;
    color: #5fffba;
    text-transform: uppercase;
}
.mfc-nav-flyout-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    font-size: 22px;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.mfc-nav-flyout-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
}
.mfc-nav-flyout-col {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.mfc-nav-flyout-col-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    background: rgba(34,214,125,0.08);
    border-radius: 8px;
}
.mfc-nav-flyout-col-icon { font-size: 16px; line-height: 1; }
.mfc-nav-flyout-col-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.2em;
    color: #5fffba;
    text-transform: uppercase;
    font-weight: 700;
}
.mfc-nav-flyout-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.mfc-nav-flyout-list a {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px 10px;
    border-radius: 8px;
    color: #f3fbf6;
    text-decoration: none !important;
    transition: background 0.15s ease;
}
.mfc-nav-flyout-list a:hover {
    background: rgba(34,214,125,0.10);
}
.mfc-nav-flyout-item-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 13px;
    color: #ffffff;
    line-height: 1.3;
}
.mfc-nav-flyout-item-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    color: rgba(245,250,247,0.5);
    text-transform: uppercase;
}
.mfc-nav-flyout-foot {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(255,255,255,0.06);
    display: flex;
    justify-content: flex-end;
}
.mfc-nav-flyout-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    border-radius: 999px;
    color: #04060c !important;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none !important;
    font-weight: 700;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.mfc-nav-flyout-cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px -8px rgba(34,214,125,0.5);
}

@media (max-width: 900px) {
    .mfc-predict-header {
        flex-direction: column;
    }
    .mfc-predict-header-stats {
        grid-template-columns: repeat(4, 1fr);
        min-width: 0;
    }
    .mfc-league-tab {
        min-width: 240px;
        max-width: 280px;
    }
    .mfc-nav-flyout {
        position: fixed;
        top: 80px;
        left: 16px;
        right: 16px;
        transform: none;
        width: auto;
    }
    .mfc-nav-has-flyout.is-open .mfc-nav-flyout { transform: none; }
    .mfc-nav-flyout::before { display: none; }
}
@media (max-width: 600px) {
    .mfc-predict-header {
        padding: 18px;
    }
    .mfc-predict-header-text h3 { font-size: 26px; }
    .mfc-predict-header-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    .mfc-league-tab {
        min-width: 220px;
        max-width: 100%;
        grid-template-columns: 44px 1fr;
        padding: 12px;
    }
    .mfc-league-tab-pulse {
        grid-column: 1 / -1;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        padding-left: 0;
        padding-top: 8px;
        margin-top: 4px;
        border-left: none;
        border-top: 1px solid rgba(255,255,255,0.06);
    }
    .mfc-league-panel { padding: 16px; }
    .mfc-league-panel-title { font-size: 22px; }
    .mfc-league-panel-stats { width: 100%; }
}

/* ===========================================================
   POLYLEAGUES — PREDICTOR REDESIGN
   Full restyle of the in-game prediction surface to match the
   Stadium-After-Dark aesthetic. Overrides the legacy bright-green
   plugin CSS using higher specificity / !important on critical
   visual properties. Layout primitives (grids, flex) are preserved
   so existing JS interactions (collapse, score input, quick picks,
   countdown) keep working unchanged.
   =========================================================== */

/* Page wrapper: deep stadium ground (override grass-texture legacy bg) */
html body.mfc-game-theme-grass,
html body {
    background: var(--poly-ink-1000) !important;
    background-image: none !important;
}
body .mfc-shell .mfc-game,
body .mfc-shell-access-error .mfc-game,
body.mfc-game-theme-grass,
body .mfc-game,
body .mfc-game-minimal {
    background: transparent !important;
    background-image: none !important;
}
body .mfc-game .mfc-boxed,
body .mfc-game.mfc-game-minimal .mfc-boxed {
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 0 24px !important;
    background: transparent !important;
}

/* Toggle collapsed/expanded match summary visibility via aria-hidden */
body .mfc-match-row .mfc-match-collapsed-summary[aria-hidden="true"] {
    display: none !important;
}
body .mfc-match-row.is-collapsed .mfc-match-info,
body .mfc-match-row.is-collapsed .mfc-match-actions,
body .mfc-match-row.is-collapsed .mfc-pick-summary,
body .mfc-match-row.is-collapsed .mfc-match-status,
body .mfc-match-row.is-collapsed .mfc-predict-board {
    display: none !important;
}
body .mfc-match-row:not(.is-collapsed) .mfc-match-collapsed-summary {
    display: none !important;
}

/* Kill the legacy bright-green hero card */
body .mfc-card.mfc-predict-stage-hero {
    display: none !important;
}

/* New hero scoreboard */
.poly-predict-hero {
    position: relative;
    margin: 32px 0 28px;
    padding: 36px 40px;
    border-radius: 24px;
    background:
        radial-gradient(900px 360px at 12% 20%, rgba(34,214,125,0.18), transparent 60%),
        radial-gradient(700px 320px at 88% 80%, rgba(95,255,186,0.10), transparent 60%),
        linear-gradient(180deg, #0a0e1f 0%, #04060c 100%);
    border: 1px solid rgba(34,214,125,0.22);
    box-shadow:
        0 32px 80px -36px rgba(0,0,0,0.85),
        inset 0 1px 0 rgba(255,255,255,0.04);
    overflow: hidden;
    color: #f3fbf6;
}
.poly-predict-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(0deg, rgba(255,255,255,0.018) 0 1px, transparent 1px 4px),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.012) 0 1px, transparent 1px 4px);
    pointer-events: none;
    z-index: 0;
}
.poly-predict-hero::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, #22d67d 25%, #5fffba 50%, #22d67d 75%, transparent 100%);
    opacity: 0.6;
}
.poly-predict-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 40px;
    align-items: center;
}
.poly-predict-hero-left { min-width: 0; }
.poly-predict-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    background: rgba(34,214,125,0.10);
    border: 1px solid rgba(34,214,125,0.30);
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.22em;
    color: #5fffba;
    text-transform: uppercase;
    margin-bottom: 18px;
}
.poly-predict-hero-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #22d67d;
    box-shadow: 0 0 12px rgba(34,214,125,0.7);
    animation: polyLivePulse 2s ease-in-out infinite;
}
.poly-predict-hero-title {
    margin: 0 0 14px 0 !important;
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif !important;
    font-weight: 900 !important;
    font-size: clamp(44px, 6vw, 76px) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.01em !important;
    color: #ffffff !important;
    text-transform: uppercase !important;
}
.poly-predict-hero-sub {
    margin: 0 0 24px 0 !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    color: rgba(245,250,247,0.66) !important;
    max-width: 56ch;
}
.poly-predict-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
}
.poly-predict-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 24px;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 700;
    color: #04060c !important;
    text-decoration: none !important;
    box-shadow: 0 16px 32px -12px rgba(34,214,125,0.55);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.poly-predict-hero-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 40px -12px rgba(34,214,125,0.7);
}
.poly-predict-hero-link {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.7) !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.16);
    padding-bottom: 2px;
    transition: color 0.15s ease, border-color 0.15s ease;
}
.poly-predict-hero-link:hover {
    color: #5fffba !important;
    border-color: #5fffba;
}
.poly-predict-scoreboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.poly-predict-scoreboard-cell {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 18px 18px 16px;
    background: rgba(7,9,26,0.72);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 16px;
    backdrop-filter: blur(12px);
    position: relative;
    overflow: hidden;
}
.poly-predict-scoreboard-cell::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12), transparent);
}
.poly-predict-scoreboard-cell.is-streak {
    background:
        radial-gradient(220px 100px at 90% 10%, rgba(255,181,71,0.16), transparent 70%),
        rgba(7,9,26,0.72);
    border-color: rgba(255,181,71,0.28);
}
.poly-predict-scoreboard-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.5);
}
.poly-predict-scoreboard-value {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 44px;
    line-height: 1;
    color: #ffffff;
    letter-spacing: -0.02em;
    margin: 2px 0;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    word-break: break-word;
}
.poly-predict-scoreboard-cell:nth-child(4) .poly-predict-scoreboard-value {
    font-size: 22px;
    line-height: 1.15;
}
.poly-predict-scoreboard-cell.is-streak .poly-predict-scoreboard-value { color: #ffb547; }
.poly-predict-scoreboard-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.45);
}

/* "How does it work" panel: keep but darken */
body .mfc-coach-panel,
body .mfc-howitworks-panel,
body .mfc-card.mfc-howitworks-card {
    background: rgba(7,9,26,0.76) !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
    border-radius: 18px !important;
    color: #f3fbf6 !important;
    box-shadow: 0 24px 60px -32px rgba(0,0,0,0.7) !important;
}

/* Match prediction section (the form wrapper) */
body .mfc-form,
body .mfc-multi-league-form {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
}

/* Round / group / date headers */
body .mfc-round-section {
    margin-top: 22px;
    padding: 0;
}
body .mfc-round-section h4 {
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 700 !important;
    font-size: 22px !important;
    color: #ffffff !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    margin: 18px 0 12px 0 !important;
    padding-bottom: 10px !important;
    border-bottom: 1px dashed rgba(255,255,255,0.08) !important;
}
body .mfc-group-block,
body .mfc-date-group {
    margin: 18px 0 !important;
    padding: 18px !important;
    background: rgba(7,9,26,0.6) !important;
    border: 1px solid rgba(255,255,255,0.05) !important;
    border-radius: 14px !important;
}
body .mfc-group-header,
body .mfc-date-toggle .mfc-date-title {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 12px !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    color: #5fffba !important;
    font-weight: 700 !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
body .mfc-group-meta,
body .mfc-date-toggle .mfc-date-count,
body .mfc-date-meta {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: rgba(245,250,247,0.5) !important;
    background: transparent !important;
    margin: 4px 0 12px 0 !important;
}
body .mfc-date-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    padding: 0 0 8px 0 !important;
    cursor: pointer !important;
}
body .mfc-date-toggle::after {
    content: "▾";
    color: #5fffba;
    font-size: 14px;
    margin-left: 12px;
    transition: transform 0.2s ease;
}
body .mfc-date-toggle[aria-expanded="false"]::after { transform: rotate(-90deg); }
body .mfc-date-panel {
    margin-top: 10px !important;
}

/* Predict board column header (legacy yellow strip → mono caps) */
body .mfc-predict-board-head {
    display: grid !important;
    grid-template-columns: 1fr 0.6fr 1fr 1fr !important;
    gap: 10px !important;
    padding: 10px 14px !important;
    margin: 12px 0 8px 0 !important;
    background: rgba(7,9,26,0.5) !important;
    border: 1px solid rgba(255,255,255,0.04) !important;
    border-radius: 10px !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    color: rgba(245,250,247,0.55) !important;
}
body .mfc-predict-board-head span {
    background: transparent !important;
    color: rgba(245,250,247,0.55) !important;
    padding: 0 !important;
    text-align: center !important;
}
body .mfc-predict-board-head span:first-child { text-align: left !important; }
body .mfc-predict-board-head span:last-child { text-align: right !important; }

/* Match row: deep card with subtle ring */
body .mfc-match-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 18px !important;
    margin: 10px 0 !important;
    background: linear-gradient(180deg, rgba(7,9,26,0.94) 0%, rgba(4,6,12,0.96) 100%) !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
    border-radius: 16px !important;
    color: #f3fbf6 !important;
    box-shadow: 0 16px 36px -24px rgba(0,0,0,0.7) !important;
    transition: border-color 0.18s ease, transform 0.15s ease, box-shadow 0.18s ease !important;
    position: relative !important;
    overflow: hidden !important;
}
body .mfc-match-row::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: radial-gradient(400px 160px at 100% 0%, rgba(34,214,125,0.05), transparent 70%) !important;
    pointer-events: none !important;
    opacity: 0 !important;
    transition: opacity 0.2s ease !important;
}
body .mfc-match-row:hover {
    border-color: rgba(34,214,125,0.32) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 22px 48px -22px rgba(34,214,125,0.32), 0 16px 36px -24px rgba(0,0,0,0.7) !important;
}
body .mfc-match-row:hover::before { opacity: 1 !important; }
body .mfc-match-row > * { position: relative; z-index: 1; }
body .mfc-match-row.is-collapsed { padding: 12px 16px !important; gap: 0 !important; }
body .mfc-match-row.is-collapsed .mfc-predict-board,
body .mfc-match-row.is-collapsed .mfc-match-info,
body .mfc-match-row.is-collapsed .mfc-match-actions { display: none !important; }
body .mfc-match-row[data-locked="1"]:not(.is-collapsed) { border-color: rgba(255,181,71,0.22) !important; }

/* Predict picks row: 4 dark cells (Home / Draw / Away / Score margin) */
body .mfc-predict-board {
    display: grid !important;
    grid-template-columns: 1fr 0.6fr 1fr 1fr !important;
    gap: 10px !important;
}
body .mfc-predict-cell {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    min-height: 76px !important;
    padding: 12px !important;
    background: rgba(255,255,255,0.03) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 12px !important;
    color: #f3fbf6 !important;
    cursor: pointer !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-align: center !important;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease !important;
    position: relative !important;
}
body .mfc-predict-cell:hover {
    background: rgba(34,214,125,0.06) !important;
    border-color: rgba(34,214,125,0.4) !important;
    transform: translateY(-1px) !important;
}
body .mfc-predict-cell.is-active,
body .mfc-predict-cell[aria-pressed="true"],
body .mfc-predict-cell.mfc-predict-pick.is-selected,
body .mfc-predict-cell.mfc-predict-pick[data-selected="true"] {
    background: linear-gradient(180deg, rgba(34,214,125,0.18) 0%, rgba(34,214,125,0.10) 100%) !important;
    border-color: #22d67d !important;
    color: #ffffff !important;
    box-shadow: 0 12px 28px -14px rgba(34,214,125,0.55), inset 0 0 0 1px rgba(34,214,125,0.4) !important;
}
body .mfc-predict-cell:disabled,
body .mfc-predict-cell[aria-disabled="true"] {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    transform: none !important;
}
body .mfc-predict-cell-draw {
    background: rgba(255,255,255,0.02) !important;
    border-style: dashed !important;
    color: rgba(245,250,247,0.7) !important;
}
body .mfc-predict-team-label {
    display: block !important;
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: inherit !important;
}
body .mfc-predict-cell-golden,
body .mfc-predict-golden-trigger {
    background: rgba(255,181,71,0.06) !important;
    border-color: rgba(255,181,71,0.28) !important;
    color: #ffb547 !important;
    gap: 4px !important;
}
body .mfc-predict-cell-golden:hover,
body .mfc-predict-golden-trigger:hover {
    background: rgba(255,181,71,0.12) !important;
    border-color: rgba(255,181,71,0.5) !important;
}
body .mfc-predict-cell-golden.is-active,
body .mfc-predict-golden-trigger.is-active,
body .mfc-predict-cell-golden[data-selected="true"] {
    background: linear-gradient(180deg, rgba(255,181,71,0.20) 0%, rgba(255,181,71,0.10) 100%) !important;
    border-color: #ffb547 !important;
    color: #ffd58a !important;
    box-shadow: 0 12px 28px -14px rgba(255,181,71,0.6) !important;
}
body .mfc-predict-golden-label {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 9px !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    color: inherit !important;
    opacity: 0.78 !important;
}
body .mfc-predict-golden-value {
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    text-transform: uppercase !important;
    color: inherit !important;
}
body .mfc-predict-golden-meta,
body .mfc-predict-golden-pill {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 9px !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: rgba(245,250,247,0.5) !important;
    background: transparent !important;
}

/* Pick summary line (under the row) */
body .mfc-pick-summary {
    grid-column: 1 / -1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    padding: 10px 12px !important;
    background: rgba(255,255,255,0.02) !important;
    border: 1px solid rgba(255,255,255,0.05) !important;
    border-radius: 10px !important;
    margin-top: 4px !important;
}
body .mfc-pick-summary-title {
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: #ffffff !important;
}
body .mfc-pick-summary-detail {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: rgba(245,250,247,0.55) !important;
}
body .mfc-pick-summary.mfc-pick-set {
    background: rgba(34,214,125,0.06) !important;
    border-color: rgba(34,214,125,0.22) !important;
}
body .mfc-pick-summary.mfc-pick-set .mfc-pick-summary-detail { color: #5fffba !important; }
body .mfc-pick-summary.mfc-pick-locked {
    background: rgba(255,181,71,0.06) !important;
    border-color: rgba(255,181,71,0.22) !important;
}
body .mfc-pick-summary.mfc-pick-final {
    background: rgba(95,255,186,0.05) !important;
    border-color: rgba(95,255,186,0.18) !important;
}

/* Match info row: teams, time, lock countdown, meta */
body .mfc-match-info {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    padding: 10px 0 0 0 !important;
}
body .mfc-match-teams {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    color: #ffffff !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
}
body .mfc-match-teams .mfc-team {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}
body .mfc-match-teams .mfc-vs {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.22em !important;
    color: rgba(245,250,247,0.45) !important;
    text-transform: uppercase !important;
    padding: 2px 8px !important;
    background: rgba(255,255,255,0.04) !important;
    border-radius: 4px !important;
}
body .mfc-match-time,
body .mfc-lock-countdown,
body .mfc-match-meta,
body .mfc-match-collapsed-meta {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: rgba(245,250,247,0.55) !important;
    background: transparent !important;
    padding: 0 !important;
}
body .mfc-lock-countdown {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    color: #ffb547 !important;
}
body .mfc-lock-countdown::before {
    content: "" !important;
    width: 6px !important;
    height: 6px !important;
    border-radius: 50% !important;
    background: #ffb547 !important;
    box-shadow: 0 0 8px rgba(255,181,71,0.7) !important;
}
body .mfc-match-collapsed-summary {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    padding: 0 !important;
}
body .mfc-match-collapsed-title {
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    letter-spacing: 0.02em !important;
    color: #ffffff !important;
    text-transform: uppercase !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

/* Score input row */
body .mfc-match-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding-top: 14px !important;
    border-top: 1px dashed rgba(255,255,255,0.08) !important;
}
body .mfc-score-row {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 12px !important;
    background: rgba(7,9,26,0.7) !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
    border-radius: 12px !important;
    width: auto !important;
    margin: 0 auto !important;
    max-width: 360px !important;
}
body .mfc-score-btn {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    background: rgba(34,214,125,0.10) !important;
    border: 1px solid rgba(34,214,125,0.32) !important;
    color: #5fffba !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: background 0.15s ease, transform 0.1s ease !important;
}
body .mfc-score-btn:hover { background: rgba(34,214,125,0.22) !important; }
body .mfc-score-btn:active { transform: scale(0.92) !important; }
body .mfc-score-btn:disabled {
    opacity: 0.35 !important;
    cursor: not-allowed !important;
    background: rgba(255,255,255,0.03) !important;
    border-color: rgba(255,255,255,0.08) !important;
    color: rgba(245,250,247,0.4) !important;
}
body .mfc-score-input {
    width: 60px !important;
    height: 44px !important;
    padding: 4px !important;
    background: rgba(4,6,12,0.6) !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    border-radius: 10px !important;
    color: #ffffff !important;
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 800 !important;
    font-size: 22px !important;
    text-align: center !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}
body .mfc-score-input:focus {
    outline: none !important;
    border-color: #22d67d !important;
    box-shadow: 0 0 0 3px rgba(34,214,125,0.18) !important;
}
body .mfc-score-input:disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
}
body .mfc-score-sep {
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 800 !important;
    font-size: 22px !important;
    color: rgba(245,250,247,0.45) !important;
}

/* Quick picks chips */
body .mfc-quick-picks {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
}
body .mfc-quick-label {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    color: rgba(245,250,247,0.45) !important;
}
body .mfc-quick-grid {
    display: flex !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
}
body .mfc-quick-pick {
    padding: 8px 12px !important;
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 8px !important;
    color: rgba(245,250,247,0.78) !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
}
body .mfc-quick-pick:hover {
    background: rgba(34,214,125,0.10) !important;
    border-color: rgba(34,214,125,0.4) !important;
    color: #ffffff !important;
}
body .mfc-quick-pick.is-active {
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%) !important;
    border-color: #22d67d !important;
    color: #04060c !important;
    box-shadow: 0 6px 16px -6px rgba(34,214,125,0.5) !important;
}
body .mfc-quick-pick:disabled {
    opacity: 0.35 !important;
    cursor: not-allowed !important;
}

/* Match status pill */
body .mfc-match-status {
    align-self: flex-start !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 4px 10px !important;
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 999px !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: rgba(245,250,247,0.7) !important;
    margin-top: 6px !important;
}
body .mfc-match-status.mfc-status-open {
    background: rgba(34,214,125,0.12) !important;
    border-color: rgba(34,214,125,0.36) !important;
    color: #5fffba !important;
}
body .mfc-match-status.mfc-status-saved {
    background: rgba(34,214,125,0.18) !important;
    border-color: rgba(34,214,125,0.5) !important;
    color: #ffffff !important;
}
body .mfc-match-status.mfc-status-locked {
    background: rgba(255,181,71,0.10) !important;
    border-color: rgba(255,181,71,0.32) !important;
    color: #ffb547 !important;
}
body .mfc-match-status.mfc-status-final {
    background: rgba(95,255,186,0.08) !important;
    border-color: rgba(95,255,186,0.28) !important;
    color: #5fffba !important;
}

/* Final result + earned badge */
body .mfc-final {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 6px 12px !important;
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 8px !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 11px !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    color: rgba(245,250,247,0.78) !important;
}
body .mfc-result {
    display: inline-flex !important;
    align-items: center !important;
    padding: 6px 14px !important;
    border-radius: 8px !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
}
body .mfc-result.mfc-win-exact { background: rgba(255,181,71,0.16) !important; border: 1px solid rgba(255,181,71,0.4) !important; color: #ffb547 !important; }
body .mfc-result.mfc-win-outcome { background: rgba(34,214,125,0.16) !important; border: 1px solid rgba(34,214,125,0.4) !important; color: #5fffba !important; }
body .mfc-result.mfc-lose { background: rgba(245,72,72,0.10) !important; border: 1px solid rgba(245,72,72,0.32) !important; color: #f87a7a !important; }
body .mfc-result.mfc-jackpot {
    background: linear-gradient(180deg, rgba(255,181,71,0.32) 0%, rgba(255,181,71,0.16) 100%) !important;
    border: 1px solid #ffb547 !important;
    color: #ffd58a !important;
    box-shadow: 0 8px 20px -8px rgba(255,181,71,0.6) !important;
}

/* Match collapse toggle button */
body .mfc-match-collapse {
    align-self: center !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    color: rgba(245,250,247,0.7) !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.15s ease, transform 0.2s ease !important;
}
body .mfc-match-collapse:hover { background: rgba(34,214,125,0.10) !important; color: #5fffba !important; }
body .mfc-match-collapse-icon {
    width: 0; height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid currentColor;
    transition: transform 0.2s ease;
}
body .mfc-match-row.is-collapsed .mfc-match-collapse-icon { transform: rotate(180deg); }

/* Submit / save bar (sticky) */
body .mfc-form .mfc-form-actions,
body .mfc-multi-league-form .mfc-form-actions,
body .mfc-form button[type="submit"],
body .mfc-multi-league-form button[type="submit"] {
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%) !important;
    color: #04060c !important;
    border: none !important;
    padding: 14px 24px !important;
    border-radius: 999px !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 12px !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    box-shadow: 0 16px 32px -12px rgba(34,214,125,0.55) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}
body .mfc-form button[type="submit"]:hover,
body .mfc-multi-league-form button[type="submit"]:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 22px 40px -12px rgba(34,214,125,0.7) !important;
}

/* Match guidance is redundant with .mfc-pick-summary above the teams; suppress */
body .mfc-match-row .mfc-match-guidance { display: none !important; }

/* Match collapse toggle — center-bottom of card, subtle */
body .mfc-match-row .mfc-match-collapse {
    position: absolute !important;
    right: 14px !important;
    top: 14px !important;
    margin: 0 !important;
}

/* Empty state for "No matches" */
body .mfc-form > p,
body .mfc-multi-league-form > p,
body .mfc-other-sports-wrap > p {
    padding: 24px !important;
    background: rgba(7,9,26,0.6) !important;
    border: 1px dashed rgba(255,255,255,0.08) !important;
    border-radius: 12px !important;
    color: rgba(245,250,247,0.55) !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 12px !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    text-align: center !important;
}

/* Responsive */
@media (max-width: 900px) {
    .poly-predict-hero { padding: 28px 24px; }
    .poly-predict-hero-inner { grid-template-columns: 1fr; gap: 24px; }
    .poly-predict-scoreboard { grid-template-columns: repeat(2, 1fr); }
    body .mfc-predict-board {
        grid-template-columns: 1fr 1fr !important;
    }
    body .mfc-predict-board-head {
        display: none !important;
    }
    body .mfc-match-row {
        padding: 14px !important;
    }
}
@media (max-width: 600px) {
    body .mfc-game .mfc-boxed { padding: 0 16px !important; }
    .poly-predict-hero {
        margin: 16px 0;
        padding: 24px 18px;
        border-radius: 18px;
    }
    .poly-predict-hero-title { font-size: 38px !important; }
    .poly-predict-scoreboard { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .poly-predict-scoreboard-cell { padding: 12px; }
    .poly-predict-scoreboard-value { font-size: 32px; }
    body .mfc-match-teams { font-size: 15px !important; }
    body .mfc-quick-picks { gap: 8px !important; }
    body .mfc-score-input { width: 52px !important; height: 38px !important; font-size: 18px !important; }
    body .mfc-score-btn { width: 32px !important; height: 32px !important; }
}

/* ============================================================
   POLYLEAGUES — STADIUM SPOTLIGHT
   Cinematic hero card, team crests, league watermarks, richer
   typography. Builds on the existing dark predictor base.
   ============================================================ */

/* Hero — wide split layout */
.poly-predict-hero-inner {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important;
}
.poly-predict-hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 22px 0 24px;
    max-width: 480px;
}
.poly-predict-hero-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 14px;
    background: rgba(7,9,26,0.66);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 12px;
    backdrop-filter: blur(8px);
}
.poly-predict-hero-stat.is-streak {
    background: linear-gradient(155deg, rgba(255,181,71,0.14) 0%, rgba(7,9,26,0.66) 100%);
    border-color: rgba(255,181,71,0.32);
}
.poly-predict-hero-stat-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.5);
}
.poly-predict-hero-stat-value {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 28px;
    line-height: 1;
    color: #ffffff;
    letter-spacing: -0.02em;
}
.poly-predict-hero-stat.is-streak .poly-predict-hero-stat-value { color: #ffb547; }
.poly-predict-hero-stat-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.42);
}

/* Hero — featured next-up match card */
.poly-hero-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 22px 22px 18px;
    background:
        radial-gradient(380px 220px at 50% 0%, rgba(34,214,125,0.16), transparent 70%),
        linear-gradient(180deg, rgba(7,9,26,0.92) 0%, rgba(4,6,12,0.98) 100%);
    border: 1px solid rgba(34,214,125,0.32);
    border-radius: 22px;
    overflow: hidden;
    box-shadow:
        0 28px 64px -32px rgba(0,0,0,0.85),
        0 0 0 1px rgba(255,255,255,0.04) inset;
}
.poly-hero-card-glow {
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    background: conic-gradient(from 90deg, rgba(34,214,125,0.0) 0deg, rgba(34,214,125,0.5) 90deg, rgba(34,214,125,0.0) 180deg, rgba(95,255,186,0.4) 270deg, rgba(34,214,125,0.0) 360deg);
    opacity: 0.32;
    filter: blur(28px);
    pointer-events: none;
    z-index: 0;
    animation: polyHeroSweep 9s linear infinite;
}
@keyframes polyHeroSweep {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.poly-hero-card > *:not(.poly-hero-card-glow) { position: relative; z-index: 1; }
.poly-hero-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.poly-hero-card-league {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.poly-hero-card-league-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(255,255,255,0.96);
    box-shadow: 0 6px 16px -8px rgba(0,0,0,0.6);
    flex-shrink: 0;
}
.poly-hero-card-league-logo.is-hidden { display: none; }
.poly-hero-card-league-logo img {
    max-width: 30px;
    max-height: 30px;
    object-fit: contain;
}
.poly-hero-card-league-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.poly-hero-card-league-name {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    font-size: 15px;
    color: #ffffff;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.poly-hero-card-league-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.5);
}
.poly-hero-card-badge {
    flex-shrink: 0;
    padding: 4px 10px;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-weight: 700;
    color: #04060c;
    box-shadow: 0 8px 18px -8px rgba(34,214,125,0.5);
}
.poly-hero-card-fixture {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
    padding: 14px 0 4px;
}
.poly-hero-card-team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.poly-hero-card-team-crest {
    width: 88px;
    height: 88px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 50% 30%, rgba(255,255,255,0.06), rgba(255,255,255,0.02) 60%);
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.08);
    overflow: hidden;
    transition: transform 0.4s cubic-bezier(.2,.8,.2,1);
}
.poly-hero-card:hover .poly-hero-card-team-home .poly-hero-card-team-crest { transform: translateX(-4px) scale(1.04); }
.poly-hero-card:hover .poly-hero-card-team-away .poly-hero-card-team-crest { transform: translateX(4px) scale(1.04); }
.poly-hero-card-team-name {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.1;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-align: center;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-hero-card-vs {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: rgba(4,6,12,0.7);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
}
.poly-hero-card-vs-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.28em;
    color: rgba(245,250,247,0.5);
    text-transform: uppercase;
}
.poly-hero-card-countdown {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.16em;
    color: #ffb547;
    text-transform: uppercase;
    font-weight: 700;
    white-space: nowrap;
}
.poly-hero-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-top: 12px;
    border-top: 1px dashed rgba(255,255,255,0.08);
    flex-wrap: wrap;
}
.poly-hero-card-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.poly-hero-card-meta-time {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.78);
}
.poly-hero-card-meta-venue {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.42);
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-hero-card-pick {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 8px 12px;
    border-radius: 10px;
    text-align: right;
}
.poly-hero-card-pick.is-empty {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
}
.poly-hero-card-pick.is-set {
    background: rgba(34,214,125,0.12);
    border: 1px solid rgba(34,214,125,0.36);
}
.poly-hero-card-pick-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.5);
}
.poly-hero-card-pick-value {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    font-size: 14px;
    color: #ffffff;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.1;
}
.poly-hero-card-pick.is-set .poly-hero-card-pick-value { color: #5fffba; }
.poly-hero-card-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px;
    background: linear-gradient(180deg, rgba(34,214,125,0.16) 0%, rgba(34,214,125,0.06) 100%);
    border: 1px solid rgba(34,214,125,0.4);
    border-radius: 12px;
    color: #5fffba !important;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    text-decoration: none !important;
    font-weight: 700;
    transition: all 0.18s ease;
}
.poly-hero-card-cta:hover {
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    color: #04060c !important;
    transform: translateY(-1px);
    box-shadow: 0 18px 32px -10px rgba(34,214,125,0.55);
}

/* Hero empty state */
.poly-predict-hero-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 56px 24px;
    background: rgba(7,9,26,0.6);
    border: 1px dashed rgba(255,255,255,0.12);
    border-radius: 22px;
    color: rgba(245,250,247,0.6);
    text-align: center;
}
.poly-predict-hero-empty-icon {
    font-size: 28px;
    color: rgba(34,214,125,0.5);
}
.poly-predict-hero-empty-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: #ffffff;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.poly-predict-hero-empty-sub {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

/* ============================================================
   Crest renderer (used by hero, predict cells, match info)
   ============================================================ */
.poly-crest {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255,255,255,0.94);
    flex-shrink: 0;
    overflow: hidden;
    position: relative;
    box-shadow: 0 4px 12px -4px rgba(0,0,0,0.4);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.poly-crest img {
    width: 70%;
    height: 70%;
    object-fit: contain;
}
.poly-crest.is-flag {
    background: rgba(255,255,255,0.06);
    overflow: hidden;
}
.poly-crest.is-flag img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}
.poly-crest.is-emoji,
.poly-crest.is-fallback {
    background: linear-gradient(160deg, rgba(34,214,125,0.18) 0%, rgba(7,9,26,0.86) 100%);
    color: #ffffff;
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.poly-crest-fallback {
    display: none;
    color: #04060c;
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
}
.poly-crest.is-fallback .poly-crest-fallback {
    display: inline-block;
    color: #ffffff;
}
.poly-crest-sm { width: 28px; height: 28px; font-size: 10px; }
.poly-crest-sm .poly-crest-fallback { font-size: 9px; }
.poly-crest-md { width: 40px; height: 40px; font-size: 13px; }
.poly-crest-md .poly-crest-fallback { font-size: 12px; }
.poly-crest-lg { width: 56px; height: 56px; font-size: 16px; }
.poly-crest-lg .poly-crest-fallback { font-size: 16px; }
.poly-crest-xl { width: 88px; height: 88px; font-size: 22px; }
.poly-crest-xl .poly-crest-fallback { font-size: 24px; }

/* ============================================================
   Predict cells — show big team crest above the team name
   ============================================================ */
body .mfc-predict-cell-home,
body .mfc-predict-cell-away {
    gap: 10px !important;
    padding: 14px 12px !important;
    min-height: 116px !important;
    align-items: center !important;
    justify-content: center !important;
}
body .mfc-predict-cell-home .poly-crest,
body .mfc-predict-cell-away .poly-crest {
    margin-bottom: 4px;
    transition: transform 0.18s ease;
}
body .mfc-predict-cell-home:hover .poly-crest,
body .mfc-predict-cell-away:hover .poly-crest {
    transform: scale(1.06);
}
body .mfc-predict-cell-home.is-selected .poly-crest,
body .mfc-predict-cell-away.is-selected .poly-crest {
    transform: scale(1.04);
    box-shadow: 0 8px 22px -6px rgba(34,214,125,0.55);
}
body .mfc-predict-cell-draw {
    min-height: 116px !important;
}

/* ============================================================
   League switcher tab — replace icon with real league logo
   ============================================================ */
.mfc-league-tab-logo {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.96);
    border-radius: 12px;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
    box-shadow: 0 6px 14px -6px rgba(0,0,0,0.5);
}
.mfc-league-tab-logo img {
    width: 70%;
    height: 70%;
    object-fit: contain;
}
.mfc-league-tab-logo.is-fallback {
    background: linear-gradient(160deg, rgba(34,214,125,0.18) 0%, rgba(7,9,26,0.86) 100%);
    color: #ffffff;
    font-size: 22px;
}
.mfc-league-tab-logo-fallback {
    display: none;
}
.mfc-league-tab-logo.is-fallback .mfc-league-tab-logo-fallback {
    display: inline-block;
}
.mfc-league-tab.is-active .mfc-league-tab-logo {
    box-shadow: 0 0 0 2px rgba(34,214,125,0.5), 0 8px 18px -6px rgba(34,214,125,0.4);
}
.mfc-league-tab-sport {
    background: transparent !important;
    padding: 0 !important;
}
.mfc-league-tab-sport-label {
    margin-top: 6px;
}

/* ============================================================
   League panel — watermark + crest in header
   ============================================================ */
body .mfc-league-panel { position: relative !important; overflow: hidden !important; }
body .mfc-league-panel > .mfc-league-panel-watermark {
    position: absolute !important;
    top: -40px !important;
    right: -60px !important;
    width: 320px !important;
    height: 320px !important;
    pointer-events: none !important;
    opacity: 0.06 !important;
    filter: grayscale(0.2) blur(0.4px);
    z-index: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
body .mfc-league-panel > .mfc-league-panel-watermark img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
}
body .mfc-league-panel > *:not(.mfc-league-panel-watermark) {
    position: relative;
    z-index: 1;
}
.mfc-league-panel-titleblock {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
}
.mfc-league-panel-crest {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.96);
    border-radius: 14px;
    flex-shrink: 0;
    box-shadow: 0 8px 22px -8px rgba(0,0,0,0.6);
    overflow: hidden;
}
.mfc-league-panel-crest img {
    width: 70%;
    height: 70%;
    object-fit: contain;
}
.mfc-league-panel-titletext {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

/* ============================================================
   Match teams — bigger crests, league logo in match meta
   ============================================================ */
body .mfc-match-teams {
    gap: 14px !important;
    flex-wrap: wrap;
}
body .mfc-match-teams .mfc-team {
    gap: 10px !important;
}
body .mfc-match-collapsed-title .poly-crest-sm {
    width: 22px;
    height: 22px;
}

@media (max-width: 900px) {
    .poly-predict-hero-stats {
        max-width: 100%;
    }
    .poly-hero-card { padding: 18px; }
    .poly-hero-card-team-crest { width: 72px; height: 72px; }
    .poly-hero-card-team-name { font-size: 14px; }
    .poly-crest-xl { width: 72px; height: 72px; }
    .poly-predict-hero-foot { flex-direction: column; align-items: flex-start; }
    .mfc-league-panel-crest { width: 52px; height: 52px; }
}
@media (max-width: 600px) {
    .poly-hero-card-fixture {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .poly-hero-card-vs { width: max-content; margin: 0 auto; flex-direction: row; gap: 12px; }
    .poly-hero-card-team-name { font-size: 16px; }
    body .mfc-predict-cell-home,
    body .mfc-predict-cell-away { min-height: 96px !important; }
    .poly-crest-lg { width: 44px; height: 44px; }
    .mfc-league-panel-crest { width: 44px; height: 44px; }
    .mfc-league-panel-watermark { width: 200px; height: 200px; top: -20px; right: -40px; }
}

/* ===================================================================
   POLYLEAGUES — AAA PREDICTOR (full reproject)
   3-pane shell: left rail + main + right rail. Sticky command bar on
   top, sticky submit bar at the bottom. Edge-to-edge dark stadium
   aesthetic, big crests, segmented picks, score-margin pills, live
   countdown chips, glow micro-interactions.
   =================================================================== */

/* Wipe legacy max-width on the .mfc-boxed wrapper for the AAA path */
body .mfc-game .mfc-boxed:has(.poly-game-aaa),
body .mfc-game-minimal:has(.poly-game-aaa) {
    max-width: none !important;
    padding: 0 !important;
}
body main.site-content:has(.poly-game-aaa) {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100%;
}
body:has(.poly-game-aaa) {
    background: var(--poly-ink-1000) !important;
    background-image: none !important;
}
body:has(.poly-game-aaa) main.site-content {
    padding-bottom: 110px !important; /* room for sticky submit bar */
}
.poly-game-aaa {
    width: 100%;
    color: #f3fbf6;
    font-family: 'Plus Jakarta Sans', sans-serif;
    background:
        radial-gradient(1200px 600px at 14% -10%, rgba(34,214,125,0.08), transparent 60%),
        radial-gradient(1000px 400px at 86% 110%, rgba(255,181,71,0.05), transparent 70%),
        var(--poly-ink-1000);
    min-height: calc(100vh - 80px);
}

/* ============== Sticky command bar ============== */
.poly-cmdbar {
    position: sticky;
    top: 0;
    z-index: 90;
    background: linear-gradient(180deg, rgba(7,9,26,0.96) 0%, rgba(4,6,12,0.92) 100%);
    backdrop-filter: blur(18px) saturate(1.2);
    border-bottom: 1px solid rgba(34,214,125,0.18);
    box-shadow: 0 12px 36px -28px rgba(0,0,0,0.7);
}
.poly-cmdbar-inner {
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 14px 28px;
    max-width: 1920px;
    margin: 0 auto;
    flex-wrap: wrap;
}
.poly-cmdbar-section { display: flex; align-items: center; gap: 14px; }
.poly-cmdbar-breadcrumb { flex: 1 1 auto; min-width: 0; }
.poly-cmdbar-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: rgba(34,214,125,0.12);
    border: 1px solid rgba(34,214,125,0.32);
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.22em;
    color: #5fffba;
    text-transform: uppercase;
    flex-shrink: 0;
}
.poly-cmdbar-pulse {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #22d67d;
    box-shadow: 0 0 8px rgba(34,214,125,0.7);
    animation: polyLivePulse 2s ease-in-out infinite;
}
.poly-cmdbar-current {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 16px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.7);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.poly-cmdbar-current strong { color: #ffffff; font-weight: 800; }
.poly-cmdbar-counters { display: flex; gap: 8px; flex-shrink: 0; }
.poly-cmdbar-counter {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: 6px 14px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 10px;
    line-height: 1;
}
.poly-cmdbar-counter strong {
    font-family: 'JetBrains Mono', monospace;
    font-size: 16px;
    font-weight: 700;
    color: #ffffff;
}
.poly-cmdbar-counter span {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.22em;
    color: rgba(245,250,247,0.5);
    text-transform: uppercase;
    margin-top: 4px;
}
.poly-cmdbar-counter.is-accent {
    background: linear-gradient(180deg, rgba(34,214,125,0.18) 0%, rgba(34,214,125,0.06) 100%);
    border-color: rgba(34,214,125,0.5);
}
.poly-cmdbar-counter.is-accent strong { color: #5fffba; }
.poly-cmdbar-quickstats { display: flex; gap: 8px; flex-shrink: 0; }
.poly-cmdbar-stat {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 6px 12px;
    background: rgba(7,9,26,0.7);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 10px;
}
.poly-cmdbar-stat span {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.22em;
    color: rgba(245,250,247,0.5);
    text-transform: uppercase;
}
.poly-cmdbar-stat strong {
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    font-weight: 700;
    color: #ffffff;
}
.poly-cmdbar-stat.is-streak strong { color: #ffb547; }

/* ============== 3-pane shell ============== */
.poly-game-shell {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr) 320px;
    gap: 0;
    max-width: 1920px;
    margin: 0 auto;
    align-items: start;
}

/* ============== Left rail ============== */
.poly-rail-left {
    position: sticky;
    top: 64px; /* below cmdbar */
    align-self: start;
    height: calc(100vh - 64px);
    overflow-y: auto;
    padding: 22px 18px 32px;
    border-right: 1px solid rgba(255,255,255,0.06);
    background: linear-gradient(180deg, rgba(7,9,26,0.6) 0%, rgba(4,6,12,0.4) 100%);
    scrollbar-width: thin;
    scrollbar-color: rgba(34,214,125,0.32) transparent;
}
.poly-rail-left::-webkit-scrollbar { width: 5px; }
.poly-rail-left::-webkit-scrollbar-thumb { background: rgba(34,214,125,0.32); border-radius: 99px; }
.poly-rail-toggle {
    display: none;
    position: fixed;
    bottom: 96px;
    left: 16px;
    z-index: 95;
    width: 48px;
    height: 48px;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    border: none;
    border-radius: 50%;
    color: #04060c;
    cursor: pointer;
    box-shadow: 0 14px 32px -10px rgba(34,214,125,0.55);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 3px;
}
.poly-rail-toggle span {
    width: 20px; height: 2px; background: currentColor; border-radius: 1px;
}
.poly-rail-section { margin-bottom: 24px; }
.poly-rail-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
    padding: 0 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.42);
}
.poly-rail-section-count {
    background: rgba(34,214,125,0.12);
    border: 1px solid rgba(34,214,125,0.32);
    border-radius: 99px;
    padding: 1px 7px;
    color: #5fffba;
    font-size: 9px;
    letter-spacing: 0.14em;
}
.poly-rail-sports {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.poly-rail-sport {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 9px;
    color: rgba(245,250,247,0.78);
    font-family: 'Plus Jakarta Sans', sans-serif;
    cursor: pointer;
    text-align: left;
    transition: all 0.15s ease;
    position: relative;
    overflow: hidden;
}
.poly-rail-sport-icon {
    font-size: 18px;
    line-height: 1;
    text-align: center;
}
.poly-rail-sport-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #ffffff;
    letter-spacing: 0.01em;
    text-transform: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
}
.poly-rail-sport-status {
    font-family: 'JetBrains Mono', monospace;
    font-size: 8.5px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 99px;
    font-weight: 700;
    line-height: 1.4;
}
.poly-rail-sport-status.is-live {
    background: rgba(34,214,125,0.18);
    color: #5fffba;
    box-shadow: inset 0 0 0 1px rgba(34,214,125,0.32);
}
.poly-rail-sport-status.is-soon {
    background: rgba(255,181,71,0.10);
    color: #ffb547;
    box-shadow: inset 0 0 0 1px rgba(255,181,71,0.26);
}
.poly-rail-sport:hover:not(.is-soon):not([disabled]) {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.06);
}
.poly-rail-sport.is-active {
    background: linear-gradient(135deg, rgba(34,214,125,0.18) 0%, rgba(34,214,125,0.04) 100%);
    border-color: rgba(34,214,125,0.5);
    box-shadow: inset 3px 0 0 #22d67d;
    padding-left: 12px;
}
.poly-rail-sport.is-active .poly-rail-sport-label { color: #ffffff; }
.poly-rail-sport.is-soon {
    cursor: not-allowed;
    opacity: 0.62;
}
.poly-rail-sport.is-soon .poly-rail-sport-label {
    color: rgba(245,250,247,0.55);
}
.poly-rail-sport.is-soon .poly-rail-sport-icon {
    filter: grayscale(0.45);
}
.poly-rail-sport.is-soon:hover {
    background: rgba(255,181,71,0.04);
    border-color: rgba(255,181,71,0.18);
    opacity: 0.78;
}
.poly-rail-sport.is-soon:hover .poly-rail-sport-status {
    background: rgba(255,181,71,0.18);
}
.poly-rail-sport-note {
    margin: 10px 6px 0 6px !important;
    padding: 8px 10px;
    background: rgba(255,181,71,0.04);
    border: 1px dashed rgba(255,181,71,0.22);
    border-radius: 8px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px !important;
    line-height: 1.5 !important;
    letter-spacing: 0.04em;
    color: rgba(245,250,247,0.55) !important;
    text-transform: none !important;
}
.poly-rail-sport.is-pinged .poly-rail-sport-status {
    animation: polyPingSoon 0.6s ease;
}
@keyframes polyPingSoon {
    0%   { transform: scale(1); }
    35%  { transform: scale(1.18); background: rgba(255,181,71,0.32); }
    65%  { transform: scale(0.95); }
    100% { transform: scale(1); }
}
.poly-rail-leagues { display: flex; flex-direction: column; gap: 4px; }
.poly-rail-league {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 10px;
    color: #f3fbf6;
    text-align: left;
    cursor: pointer;
    transition: all 0.15s ease;
}
.poly-rail-league:hover {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.06);
}
.poly-rail-league.is-active {
    background: linear-gradient(135deg, rgba(34,214,125,0.18) 0%, rgba(34,214,125,0.04) 100%);
    border-color: rgba(34,214,125,0.5);
    box-shadow: inset 3px 0 0 #22d67d;
    padding-left: 12px;
}
.poly-rail-league-crest {
    position: relative;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.94);
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
}
.poly-rail-league-crest img { width: 70%; height: 70%; object-fit: contain; }
.poly-rail-league-crest.is-fallback {
    background: linear-gradient(160deg, rgba(34,214,125,0.18) 0%, rgba(7,9,26,0.86) 100%);
    color: #ffffff;
    font-size: 18px;
}
.poly-rail-league-fallback { display: none; }
.poly-rail-league-crest.is-fallback .poly-rail-league-fallback { display: inline-block; }
.poly-rail-league-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.poly-rail-league-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 13px;
    color: #ffffff;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.poly-rail-league.is-active .poly-rail-league-name { color: #ffffff; }
.poly-rail-league-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    color: rgba(245,250,247,0.5);
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.poly-rail-league-count {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 700;
    color: #ffffff;
}
.poly-rail-league.is-active .poly-rail-league-count { color: #5fffba; }
.poly-rail-league-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #22d67d;
    box-shadow: 0 0 6px rgba(34,214,125,0.7);
    animation: polyLivePulse 2s ease-in-out infinite;
}
.poly-rail-empty {
    padding: 16px 12px;
    color: rgba(245,250,247,0.5);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    text-align: center;
}
.poly-rail-filters {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.poly-rail-filter {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    min-height: 44px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 8px;
    color: rgba(245,250,247,0.7);
    text-align: left;
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    transition: all 0.15s ease;
}
.poly-rail-filter:hover { background: rgba(255,255,255,0.04); }
.poly-rail-filter.is-active {
    background: rgba(34,214,125,0.08);
    border-color: rgba(34,214,125,0.32);
    color: #ffffff;
}
.poly-rail-filter-dot {
    width: 8px; height: 8px; border-radius: 50%;
    flex-shrink: 0;
    background: rgba(255,255,255,0.4);
}
.poly-rail-filter-dot-open { background: #22d67d; box-shadow: 0 0 6px rgba(34,214,125,0.6); }
.poly-rail-filter-dot-picked { background: #5fffba; }
.poly-rail-filter-dot-locked { background: #ffb547; }
.poly-rail-filter-dot-final { background: rgba(255,255,255,0.5); }

/* =========================================================================
   Country filter chips (left rail). Sit between the Leagues list and the
   View filters. Each chip = flag emoji + country name + league count.
   ========================================================================= */
.poly-rail-countries {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 280px;
    overflow-y: auto;
    margin: -2px;
    padding: 2px;
    scrollbar-width: thin;
    scrollbar-color: rgba(74,222,128,0.25) transparent;
}
.poly-rail-countries::-webkit-scrollbar { width: 4px; }
.poly-rail-countries::-webkit-scrollbar-thumb {
    background: rgba(74,222,128,0.22);
    border-radius: 999px;
}
.poly-rail-country {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 7px 10px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: rgba(245,250,247,0.72);
    text-align: left;
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12.5px;
    line-height: 1.15;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
    min-height: 36px;
}
.poly-rail-country:hover {
    background: rgba(255,255,255,0.04);
    color: #f0f0f3;
}
.poly-rail-country.is-active {
    background: linear-gradient(90deg, rgba(74,222,128,0.14), rgba(34,211,238,0.04));
    border-color: rgba(74,222,128,0.32);
    color: #ffffff;
}
.poly-rail-country-flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
    width: 22px;
    height: 16px;
    border-radius: 2px;
    overflow: hidden;
    /* Faint card behind emoji so single-color flags read against the rail */
    background: rgba(255,255,255,0.03);
}
.poly-rail-country.is-active .poly-rail-country-flag {
    background: rgba(74,222,128,0.12);
}
.poly-rail-country-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}
.poly-rail-country-count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.04em;
    color: rgba(245,250,247,0.42);
    background: rgba(255,255,255,0.04);
    padding: 2px 7px;
    border-radius: 999px;
    flex: 0 0 auto;
    min-width: 22px;
    text-align: center;
}
.poly-rail-country.is-active .poly-rail-country-count {
    color: #4ade80;
    background: rgba(74,222,128,0.16);
}
/* Mobile rail — country list scrolls horizontally inline like sport tabs */
@media (max-width: 880px) {
    body .poly-rail-countries {
        flex-direction: row !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        max-height: none !important;
        padding-bottom: 4px !important;
    }
    body .poly-rail-country {
        grid-template-columns: 18px auto auto !important;
        flex: 0 0 auto !important;
        padding: 6px 10px !important;
        white-space: nowrap !important;
    }
    body .poly-rail-country-name { max-width: 110px; }
}

/* ============== Main pane ============== */
.poly-game-main {
    min-width: 0;
    padding: 24px 28px 40px;
}

/* AAA hero — compact, full-width inside main */
.poly-hero-aaa {
    position: relative;
    margin-bottom: 28px;
    padding: 32px;
    border-radius: 24px;
    overflow: hidden;
    background:
        radial-gradient(800px 320px at 18% 20%, rgba(34,214,125,0.18), transparent 60%),
        linear-gradient(180deg, rgba(10,14,32,0.96) 0%, rgba(4,6,12,0.98) 100%);
    border: 1px solid rgba(34,214,125,0.22);
}
.poly-hero-aaa-bg {
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(0deg, rgba(255,255,255,0.012) 0 1px, transparent 1px 6px),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.012) 0 1px, transparent 1px 6px);
    pointer-events: none;
    opacity: 0.6;
}
.poly-hero-aaa-grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 32px;
    align-items: center;
}
.poly-hero-aaa-text { min-width: 0; }
.poly-hero-aaa-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    background: rgba(34,214,125,0.10);
    border: 1px solid rgba(34,214,125,0.32);
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.22em;
    color: #5fffba;
    text-transform: uppercase;
    margin-bottom: 16px;
}
.poly-hero-aaa-pulse {
    width: 8px; height: 8px; border-radius: 50%;
    background: #22d67d;
    box-shadow: 0 0 12px rgba(34,214,125,0.7);
    animation: polyLivePulse 2s ease-in-out infinite;
}
.poly-hero-aaa-title {
    margin: 0 0 14px 0 !important;
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 900 !important;
    font-size: clamp(38px, 5vw, 64px) !important;
    line-height: 0.95 !important;
    color: #ffffff !important;
    text-transform: uppercase !important;
    letter-spacing: -0.01em !important;
}
.poly-hero-aaa-title span { color: #5fffba; }
.poly-hero-aaa-sub {
    margin: 0 0 22px 0 !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    color: rgba(245,250,247,0.6) !important;
    max-width: 50ch;
}
.poly-hero-aaa-actions { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.poly-hero-aaa-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 22px;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 700;
    color: #04060c !important;
    text-decoration: none !important;
    box-shadow: 0 16px 32px -12px rgba(34,214,125,0.55);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.poly-hero-aaa-cta:hover { transform: translateY(-2px); box-shadow: 0 22px 40px -12px rgba(34,214,125,0.7); }
.poly-hero-aaa-link {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.7) !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.16);
    padding-bottom: 2px;
}
.poly-hero-aaa-link:hover { color: #5fffba !important; border-color: #5fffba; }
.poly-hero-aaa-featured {
    min-width: 0;
}
/* Reuse .poly-hero-card from earlier with tweaks for the AAA hero column */
.poly-hero-aaa-featured .poly-hero-card { margin: 0; }

/* ============== Match grid ============== */
.poly-league-section { margin-bottom: 36px; }
.poly-league-section[hidden] { display: none !important; }
.poly-league-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 20px;
    margin-bottom: 18px;
    background: linear-gradient(180deg, rgba(10,14,32,0.92) 0%, rgba(4,6,12,0.96) 100%);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 16px;
    flex-wrap: wrap;
}
.poly-league-section-id { display: flex; align-items: center; gap: 16px; min-width: 0; flex: 1; }
.poly-league-section-crest {
    position: relative;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.96);
    border-radius: 12px;
    flex-shrink: 0;
    box-shadow: 0 8px 22px -8px rgba(0,0,0,0.5);
    overflow: hidden;
}
.poly-league-section-crest img { width: 70%; height: 70%; object-fit: contain; }
.poly-league-section-crest.is-fallback { background: rgba(34,214,125,0.18); }
.poly-league-section-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.poly-league-section-eyebrow {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.22em;
    color: #5fffba;
    text-transform: uppercase;
}
.poly-league-section-title {
    margin: 0 !important;
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 800 !important;
    font-size: 28px !important;
    color: #ffffff !important;
    text-transform: uppercase !important;
    letter-spacing: 0.01em !important;
    line-height: 1 !important;
}
.poly-league-section-stats { display: flex; gap: 8px; flex-shrink: 0; }
.poly-league-section-stat {
    display: flex; flex-direction: column; align-items: center;
    padding: 8px 14px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 10px;
    min-width: 64px;
    line-height: 1;
}
.poly-league-section-stat strong {
    font-family: 'JetBrains Mono', monospace;
    font-size: 18px;
    color: #ffffff;
    font-weight: 700;
}
.poly-league-section-stat span {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.18em;
    color: rgba(245,250,247,0.5);
    text-transform: uppercase;
    margin-top: 4px;
}
.poly-league-section-stat.is-open strong { color: #5fffba; }
.poly-league-section-stat.is-open { background: rgba(34,214,125,0.10); border-color: rgba(34,214,125,0.4); }

/* Matchweek strip — sticky day chips */
.poly-matchweek-strip {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 6px 4px 14px;
    scrollbar-width: thin;
    scrollbar-color: rgba(34,214,125,0.32) transparent;
    margin-bottom: 16px;
    border-bottom: 1px dashed rgba(255,255,255,0.08);
}
.poly-matchweek-strip::-webkit-scrollbar { height: 5px; }
.poly-matchweek-strip::-webkit-scrollbar-thumb { background: rgba(34,214,125,0.32); }
.poly-matchweek-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 999px;
    color: rgba(245,250,247,0.7);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    flex-shrink: 0;
    transition: all 0.15s ease;
}
.poly-matchweek-chip:hover { border-color: rgba(34,214,125,0.4); color: #ffffff; }
.poly-matchweek-chip.is-active {
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    border-color: #22d67d;
    color: #04060c;
    box-shadow: 0 8px 18px -6px rgba(34,214,125,0.5);
}
.poly-matchweek-chip-count {
    background: rgba(255,255,255,0.12);
    border-radius: 99px;
    padding: 1px 7px;
    font-size: 10px;
    color: inherit;
}
.poly-matchweek-chip.is-active .poly-matchweek-chip-count { background: rgba(4,6,12,0.18); }

.poly-match-list { display: flex; flex-direction: column; gap: 28px; }
.poly-match-day {}
.poly-match-day-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    padding: 0 4px;
}
.poly-match-day-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #5fffba;
    font-weight: 700;
}
.poly-match-day-count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.5);
}

/* ============== Match card (the main predictor unit) ============== */
.poly-match-day { display: none; flex-direction: column; gap: 14px; }
.poly-match-day.is-active { display: flex; animation: polyMatchDayIn .25s ease-out; }
@keyframes polyMatchDayIn {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}
.poly-matchweek-chip.is-meta {
    border: 1px dashed rgba(255,255,255,0.12) !important;
    background: rgba(255,255,255,0.018) !important;
}
.poly-matchweek-chip.is-meta.is-active { border-style: solid !important; }
.poly-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px;
    background: linear-gradient(180deg, rgba(10,14,32,0.94) 0%, rgba(4,6,12,0.98) 100%);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 18px;
    box-shadow: 0 16px 36px -24px rgba(0,0,0,0.7);
    transition: border-color 0.18s ease, transform 0.15s ease, box-shadow 0.18s ease;
    position: relative;
    overflow: hidden;
}
.poly-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(420px 200px at 50% 0%, rgba(34,214,125,0.05), transparent 70%);
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}
.poly-card:hover {
    border-color: rgba(34,214,125,0.3);
    transform: translateY(-1px);
    box-shadow: 0 22px 48px -20px rgba(34,214,125,0.28), 0 16px 36px -24px rgba(0,0,0,0.7);
}
.poly-card:hover::before { opacity: 1; }
.poly-card > * { position: relative; z-index: 1; }
.poly-card.has-pick { border-color: rgba(34,214,125,0.35); }
.poly-card.poly-card-final { border-color: rgba(95,255,186,0.25); background: linear-gradient(180deg, rgba(7,9,26,0.96) 0%, rgba(4,6,12,0.98) 100%); }
.poly-card.poly-card-locked { border-color: rgba(255,181,71,0.22); }
.poly-card-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.poly-card-strip-time {
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.poly-card-strip-time-label {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 20px;
    letter-spacing: 0.04em;
    color: #ffffff;
    line-height: 1;
}
.poly-card-strip-time-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.5);
}
.poly-card-strip-status { display: flex; gap: 6px; flex-wrap: wrap; }
.poly-card-strip-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 700;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    color: rgba(245,250,247,0.7);
}
.poly-card-strip-pill.is-final { background: rgba(95,255,186,0.10); border-color: rgba(95,255,186,0.32); color: #5fffba; }
.poly-card-strip-pill.is-locked { background: rgba(255,181,71,0.10); border-color: rgba(255,181,71,0.32); color: #ffb547; }
.poly-card-strip-pill.is-saved { background: rgba(34,214,125,0.16); border-color: rgba(34,214,125,0.42); color: #5fffba; }
.poly-card-strip-pill.is-countdown { background: rgba(255,181,71,0.08); border-color: rgba(255,181,71,0.28); color: #ffb547; }
.poly-card-strip-pill.is-countdown::before {
    content: "";
    width: 6px; height: 6px; border-radius: 50%;
    background: #ffb547;
    box-shadow: 0 0 8px rgba(255,181,71,0.7);
}

.poly-card-fixture {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    padding: 12px 0;
}
.poly-card-team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    min-width: 0;
    text-align: center;
}
.poly-card-team-crest {
    width: 76px;
    height: 76px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 50% 30%, rgba(255,255,255,0.06), rgba(255,255,255,0.02) 60%);
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.08);
    overflow: hidden;
    transition: transform 0.3s cubic-bezier(.2,.8,.2,1);
}
.poly-card-team-crest .poly-crest { width: 76px; height: 76px; background: transparent; box-shadow: none; }
.poly-card-team-crest .poly-crest img { width: 70%; height: 70%; }
.poly-card:hover .poly-card-team:first-child .poly-card-team-crest { transform: translateX(-3px) scale(1.04); }
.poly-card:hover .poly-card-team-away .poly-card-team-crest { transform: translateX(3px) scale(1.04); }
.poly-card-team-name {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    font-size: 16px;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.1;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-card-team-score {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 36px;
    color: #5fffba;
    line-height: 1;
}
.poly-card-divider {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.poly-card-divider-vs {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.32em;
    color: rgba(245,250,247,0.4);
    padding: 4px 10px;
    background: rgba(4,6,12,0.7);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 6px;
}

/* Pick widget — segmented control */
.poly-card-pickwidget {
    display: grid;
    grid-template-columns: 1fr 0.7fr 1fr;
    gap: 8px;
}
.poly-pick {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: center;
    padding: 14px 12px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    color: #f3fbf6;
    cursor: pointer;
    transition: all 0.15s ease;
    position: relative;
    overflow: hidden;
}
.poly-pick:hover {
    background: rgba(34,214,125,0.06);
    border-color: rgba(34,214,125,0.4);
    transform: translateY(-1px);
}
.poly-pick:disabled,
.poly-pick[disabled] { opacity: 0.45; cursor: not-allowed; transform: none; }
.poly-pick-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.5);
}
.poly-pick-team {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.04em;
    color: #ffffff;
    text-transform: uppercase;
}
.poly-pick.is-selected {
    background: linear-gradient(180deg, rgba(34,214,125,0.22) 0%, rgba(34,214,125,0.10) 100%);
    border-color: #22d67d;
    box-shadow: 0 12px 26px -12px rgba(34,214,125,0.55), inset 0 0 0 1px rgba(34,214,125,0.4);
    transform: translateY(-1px);
}
.poly-pick.is-selected .poly-pick-label { color: #5fffba; }
.poly-pick.is-selected::after {
    content: "✓";
    position: absolute;
    top: 6px;
    right: 8px;
    font-size: 11px;
    color: #5fffba;
    font-weight: 700;
}
.poly-pick-draw { background: rgba(255,255,255,0.02); border-style: dashed; }
.poly-pick-draw .poly-pick-team { font-size: 18px; color: rgba(245,250,247,0.7); }
.poly-pick-draw.is-selected { border-style: solid; }

/* Score margin row */
.poly-card-marginrow {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 12px 14px;
    background: rgba(255,181,71,0.04);
    border: 1px dashed rgba(255,181,71,0.28);
    border-radius: 12px;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
    border-width: 0;
    margin-top: -8px;
    transition: max-height 0.25s ease, opacity 0.2s ease, padding 0.2s ease, border-width 0.2s ease, margin-top 0.2s ease;
}
.poly-card-marginrow.is-visible {
    max-height: 80px;
    opacity: 1;
    padding-top: 12px;
    padding-bottom: 12px;
    border-width: 1px;
    margin-top: 0;
}
.poly-card-marginrow-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #ffb547;
    font-weight: 700;
}
.poly-card-marginpills { display: flex; gap: 6px; flex-wrap: wrap; }
.poly-card-marginpill {
    padding: 8px 14px;
    background: rgba(7,9,26,0.7);
    border: 1px solid rgba(255,181,71,0.24);
    border-radius: 8px;
    color: rgba(245,250,247,0.78);
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s ease;
}
.poly-card-marginpill:hover {
    background: rgba(255,181,71,0.12);
    border-color: rgba(255,181,71,0.5);
    color: #ffb547;
}
.poly-card-marginpill.is-active {
    background: linear-gradient(180deg, #ffb547 0%, #f59f2c 100%);
    border-color: #ffb547;
    color: #04060c;
    box-shadow: 0 8px 20px -8px rgba(255,181,71,0.55);
}

.poly-card-foot {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 12px;
    border-top: 1px dashed rgba(255,255,255,0.08);
    flex-wrap: wrap;
}
.poly-card-foot-time,
.poly-card-foot-venue,
.poly-card-foot-potential,
.poly-card-foot-result {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.55);
}
.poly-card-foot-potential strong { color: #5fffba; }
.poly-card-foot-result.is-positive {
    color: #5fffba;
    background: rgba(34,214,125,0.12);
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 700;
    margin-left: auto;
}
.poly-card-foot-result.is-zero {
    color: rgba(245,250,247,0.7);
    margin-left: auto;
}

/* Empty state */
.poly-empty-state {
    padding: 80px 32px;
    background: rgba(7,9,26,0.6);
    border: 1px dashed rgba(255,255,255,0.12);
    border-radius: 18px;
    text-align: center;
    color: rgba(245,250,247,0.6);
}
.poly-empty-state-icon { font-size: 40px; color: rgba(34,214,125,0.4); margin-bottom: 12px; }
.poly-empty-state h3 {
    font-family: 'Big Shoulders Display', sans-serif !important;
    font-weight: 800 !important;
    font-size: 24px !important;
    color: #ffffff !important;
    text-transform: uppercase !important;
    margin: 0 0 8px !important;
}

/* ============== Right rail ============== */
.poly-rail-right {
    position: sticky;
    top: 64px;
    align-self: start;
    height: calc(100vh - 64px);
    overflow-y: auto;
    padding: 22px 18px 32px;
    border-left: 1px solid rgba(255,255,255,0.06);
    background: linear-gradient(180deg, rgba(7,9,26,0.6) 0%, rgba(4,6,12,0.4) 100%);
    scrollbar-width: thin;
    scrollbar-color: rgba(34,214,125,0.32) transparent;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.poly-rail-right::-webkit-scrollbar { width: 5px; }
.poly-rail-right::-webkit-scrollbar-thumb { background: rgba(34,214,125,0.32); border-radius: 99px; }

.poly-rail-card {
    background: linear-gradient(180deg, rgba(10,14,32,0.84) 0%, rgba(4,6,12,0.92) 100%);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 14px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.poly-rail-card-head { display: flex; flex-direction: column; gap: 2px; }
.poly-rail-card-eyebrow {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.28em;
    color: rgba(245,250,247,0.42);
    text-transform: uppercase;
}
.poly-rail-card-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    font-size: 18px;
    color: #ffffff;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    line-height: 1.1;
}

.poly-rail-stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.poly-rail-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 10px;
}
.poly-rail-stat.is-streak { background: rgba(255,181,71,0.06); border-color: rgba(255,181,71,0.22); }
.poly-rail-stat-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.22em;
    color: rgba(245,250,247,0.5);
    text-transform: uppercase;
}
.poly-rail-stat-value {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 22px;
    color: #ffffff;
    line-height: 1;
}
.poly-rail-stat.is-streak .poly-rail-stat-value { color: #ffb547; }
.poly-rail-stat-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    color: rgba(245,250,247,0.42);
    text-transform: uppercase;
}

.poly-rail-feed-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.poly-rail-feed-item {}
.poly-rail-feed-link {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 8px;
    padding: 10px 12px;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.04);
    border-radius: 8px;
    color: #f3fbf6;
    text-decoration: none !important;
    transition: background 0.15s ease;
}
.poly-rail-feed-link:hover { background: rgba(34,214,125,0.06); }
.poly-rail-feed-pair {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    color: #ffffff;
    grid-column: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.3;
}
.poly-rail-feed-pair span {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    color: rgba(245,250,247,0.4);
    margin: 0 4px;
}
.poly-rail-feed-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    color: rgba(245,250,247,0.5);
    text-transform: uppercase;
    grid-column: 1;
}
.poly-rail-feed-badge {
    grid-row: 1 / span 2;
    grid-column: 2;
    align-self: center;
    padding: 4px 8px;
    border-radius: 99px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 700;
}
.poly-rail-feed-badge.is-positive { background: rgba(34,214,125,0.18); color: #5fffba; }
.poly-rail-feed-badge.is-zero { background: rgba(245,72,72,0.10); color: #f87a7a; }
.poly-rail-feed-badge.is-pending { background: rgba(255,181,71,0.10); color: #ffb547; }

.poly-rail-leaderboard-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.poly-rail-leaderboard-item {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 8px 12px;
    background: rgba(255,255,255,0.02);
    border-radius: 8px;
    transition: background 0.15s ease;
}
.poly-rail-leaderboard-item.is-self {
    background: linear-gradient(135deg, rgba(34,214,125,0.16) 0%, rgba(34,214,125,0.04) 100%);
    border: 1px solid rgba(34,214,125,0.32);
}
.poly-rail-leaderboard-rank {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 18px;
    color: #5fffba;
    text-align: center;
}
.poly-rail-leaderboard-item:nth-child(1) .poly-rail-leaderboard-rank { color: #ffb547; }
.poly-rail-leaderboard-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #ffffff;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-rail-leaderboard-points {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 700;
    color: #ffffff;
}
.poly-rail-leaderboard-cta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #5fffba !important;
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 0 0;
}
.poly-rail-leaderboard-cta:hover { color: #22d67d !important; }

/* ============== Sticky submit bar ============== */
.poly-submit-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 80;
    background: linear-gradient(0deg, rgba(4,6,12,0.98) 0%, rgba(7,9,26,0.92) 100%);
    backdrop-filter: blur(20px) saturate(1.2);
    border-top: 1px solid rgba(34,214,125,0.32);
    box-shadow: 0 -16px 36px -16px rgba(0,0,0,0.7);
    transform: translateY(110%);
    transition: transform 0.3s cubic-bezier(.2,.8,.2,1);
}
.poly-submit-bar.is-active { transform: translateY(0); }
.poly-submit-bar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 28px;
    max-width: 1920px;
    margin: 0 auto;
}
.poly-submit-bar-status { display: flex; align-items: center; gap: 14px; }
.poly-submit-bar-count {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    color: #04060c;
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px -8px rgba(34,214,125,0.55);
    flex-shrink: 0;
}
.poly-submit-bar-text { display: flex; flex-direction: column; gap: 2px; }
.poly-submit-bar-text strong {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 18px;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.poly-submit-bar-text em {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
    color: rgba(245,250,247,0.5);
    text-transform: uppercase;
    font-style: normal;
}
.poly-submit-bar-cta {
    padding: 14px 28px;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    border: none;
    border-radius: 999px;
    color: #04060c !important;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 14px 32px -10px rgba(34,214,125,0.55);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.poly-submit-bar-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 40px -10px rgba(34,214,125,0.7);
}

/* ============== Responsive ============== */
@media (max-width: 1280px) {
    .poly-game-shell { grid-template-columns: 240px minmax(0, 1fr) 280px; }
    .poly-game-main { padding: 20px 22px 32px; }
    .poly-card-team-crest { width: 64px; height: 64px; }
    .poly-card-team-crest .poly-crest { width: 64px; height: 64px; }
}
@media (max-width: 1100px) {
    .poly-game-shell { grid-template-columns: 220px minmax(0, 1fr); }
    .poly-rail-right { display: none; }
    .poly-cmdbar-quickstats { display: none; }
}
@media (max-width: 880px) {
    .poly-game-shell { grid-template-columns: 1fr; }
    .poly-rail-left {
        position: fixed;
        top: 60px;
        bottom: 0;
        left: 0;
        width: 280px;
        z-index: 88;
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        background: rgba(4,6,12,0.98);
        backdrop-filter: blur(20px);
        border-right: 1px solid rgba(34,214,125,0.22);
    }
    .poly-rail-left.is-open { transform: translateX(0); }
    .poly-rail-toggle { display: inline-flex; }
    .poly-cmdbar-counters { display: none; }
    .poly-game-main { padding: 16px 18px 32px; }
    .poly-hero-aaa { padding: 22px; }
    .poly-hero-aaa-grid { grid-template-columns: 1fr; gap: 22px; }
    .poly-card { padding: 16px; }
    .poly-card-fixture { gap: 10px; }
    .poly-card-team-crest { width: 56px; height: 56px; }
    .poly-card-team-crest .poly-crest { width: 56px; height: 56px; }
    .poly-card-team-name { font-size: 13px; }
    .poly-card-team-score { font-size: 28px; }
    .poly-pick { padding: 10px 6px; }
    .poly-pick-team { font-size: 11px; }
    .poly-card-pickwidget { grid-template-columns: 1fr 0.5fr 1fr; gap: 6px; }
    .poly-submit-bar-inner { padding: 12px 18px; }
    .poly-submit-bar-text strong { font-size: 14px; }
    .poly-submit-bar-cta { padding: 10px 18px; font-size: 10px; }
}
@media (max-width: 540px) {
    .poly-cmdbar-inner { padding: 10px 14px; gap: 12px; }
    .poly-cmdbar-current { font-size: 13px; }
    .poly-hero-aaa-title { font-size: 32px !important; }
    .poly-card-marginpill { padding: 6px 10px; font-size: 11px; }
    .poly-rail-feed-link { padding: 8px; }
}

/* =====================================================================
   POLYLEAGUES — HEADER REDESIGN
   Two-tier broadcast bar: slim live ticker (top) + main glass header.
   Replaces the legacy site-header layout with edge-to-edge full width,
   premium typography, route-aware underline, profile pill with live
   stats, and a dimensional brand mark.
   ===================================================================== */

/* Reset legacy site-header rules that bleed in via plugin/theme */
.poly-header-shell { position: relative; z-index: 92; }
.poly-header-shell + .nav-backdrop { z-index: 90; }
body header.site-header.poly-header,
body .poly-header-shell .site-header {
    position: relative !important;
    background: linear-gradient(180deg, rgba(7,9,26,0.96) 0%, rgba(4,6,12,0.92) 100%) !important;
    backdrop-filter: blur(24px) saturate(1.25) !important;
    -webkit-backdrop-filter: blur(24px) saturate(1.25);
    border: none !important;
    border-bottom: 1px solid rgba(34,214,125,0.18) !important;
    padding: 0 !important;
    box-shadow: 0 24px 60px -38px rgba(0,0,0,0.85) !important;
    overflow: visible;
    height: auto !important;
    min-height: 0 !important;
}
body .poly-header-shell .site-header .header-inner,
body .poly-header-shell .site-header .poly-header-inner {
    max-width: 1920px !important;
    margin: 0 auto !important;
    padding: 0 28px !important;
    height: 64px !important;
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    align-items: center !important;
    gap: 28px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    position: relative;
    z-index: 2;
}
.poly-header-glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(900px 220px at 18% -20%, rgba(34,214,125,0.18), transparent 60%),
        radial-gradient(700px 200px at 82% 120%, rgba(95,255,186,0.06), transparent 60%);
    opacity: 0.85;
    z-index: 1;
}

/* === Brand block === */
.poly-header-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}
body .poly-header-shell a.site-logo.poly-header-logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none !important;
    line-height: 0;
}
body .poly-header-shell .poly-header-logo img {
    height: 36px !important;
    width: auto !important;
    filter: brightness(0) invert(1) drop-shadow(0 4px 14px rgba(34,214,125,0.18)) !important;
    transition: filter 0.2s ease;
}
body .poly-header-shell .poly-header-logo:hover img {
    filter: brightness(0) invert(1) drop-shadow(0 6px 18px rgba(34,214,125,0.55)) !important;
}
.poly-header-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 8px;
    background: rgba(34,214,125,0.12);
    border: 1px solid rgba(34,214,125,0.32);
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #5fffba;
    font-weight: 700;
}
.poly-header-status-dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: #22d67d;
    box-shadow: 0 0 8px rgba(34,214,125,0.7);
    animation: polyLivePulse 2s ease-in-out infinite;
}

/* === Center nav === */
body .poly-header-shell .poly-header-nav {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
body .poly-header-shell .poly-header-nav ul {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body .poly-header-shell .poly-header-nav ul li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    position: relative;
}
body .poly-header-shell .poly-header-nav ul li > a,
body .poly-header-shell .poly-header-nav ul li > .mfc-nav-flyout-trigger {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 9px 16px !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    color: rgba(245,250,247,0.78) !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 11px !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    line-height: 1 !important;
    transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease, transform 0.15s ease !important;
}
body .poly-header-shell .poly-header-nav ul li > a:hover,
body .poly-header-shell .poly-header-nav ul li > .mfc-nav-flyout-trigger:hover {
    color: #ffffff !important;
    background: rgba(255,255,255,0.04) !important;
    border-color: rgba(34,214,125,0.18) !important;
}
body .poly-header-shell .poly-header-nav ul li.is-active > a,
body .poly-header-shell .poly-header-nav ul li.is-active > .mfc-nav-flyout-trigger {
    color: #5fffba !important;
    background: rgba(34,214,125,0.10) !important;
    border-color: rgba(34,214,125,0.32) !important;
}
.poly-header-shell .poly-header-nav .poly-nav-text { display: inline-block; }
.poly-header-shell .poly-header-nav .poly-nav-pill {
    background: rgba(34,214,125,0.18);
    color: #5fffba;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    padding: 1px 6px;
    border-radius: 99px;
    letter-spacing: 0.04em;
    line-height: 1.4;
    font-weight: 700;
}
.poly-header-shell .poly-header-nav .mfc-nav-flyout-caret {
    font-size: 10px;
    margin-top: 1px;
    transition: transform 0.2s ease;
}
.poly-header-shell .poly-header-nav .mfc-nav-has-flyout.is-open .mfc-nav-flyout-caret {
    transform: rotate(180deg);
}

/* === Right actions === */
body .poly-header-shell .poly-header-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: transparent !important;
    padding: 0 !important;
}
.poly-header-search {
    width: 36px;
    height: 36px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 999px;
    color: rgba(245,250,247,0.65);
    cursor: not-allowed;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s ease;
}
.poly-header-search svg { width: 16px; height: 16px; }

/* Profile pill — premium player snapshot */
body .poly-header-shell .poly-header-bell-wrap { margin-left: 6px !important; position: relative; }
body .poly-header-shell a.poly-header-profile {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 6px 14px !important;
    min-height: 38px !important;
    margin-left: 12px !important;
    background: rgba(255,255,255,0.035) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 12px !important;
    color: #ffffff !important;
    text-decoration: none !important;
    transition: all 0.15s ease !important;
    line-height: 1 !important;
    box-shadow: none !important;
    position: relative;
    isolation: isolate;
}
/* Hide accidental badge bleed inside profile pill (legacy avatar badge) */
body .poly-header-shell .poly-header-profile .poly-header-profile-badge { display: none !important; }
body .poly-header-shell a.poly-header-profile:hover {
    background: rgba(74,222,128,0.06) !important;
    border-color: rgba(74,222,128,0.25) !important;
    transform: translateY(-1px);
}
.poly-header-profile-avatar { display: none !important; }
.poly-header-profile-avatar {
    position: relative;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    overflow: hidden;
    background: rgba(255,255,255,0.06);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid rgba(255,255,255,0.08);
}
.poly-header-profile-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.poly-header-profile-fallback {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-weight: 700;
    font-size: 11px;
    color: rgba(255,255,255,0.85);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.poly-header-profile-badge {
    position: absolute;
    top: -3px;
    right: -3px;
    background: #ffb547;
    color: #04060c;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 99px;
    border: 2px solid #07091a;
    line-height: 1.2;
}
.poly-header-profile-badge:empty,
.poly-header-profile-badge[data-count="0"] {
    display: none;
}
.poly-header-profile-meta {
    display: flex;
    flex-direction: column;
    gap: 3px;
    align-items: flex-start;
    line-height: 1;
}
.poly-header-profile-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: #f4f4f7;
    letter-spacing: 0.005em;
    line-height: 1.05;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-header-profile-stats {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 0;
}
.poly-header-profile-pts {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.05em;
    color: #4ade80;
    font-weight: 700;
    line-height: 1;
}
.poly-header-profile-streak {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: #fbbf24;
    font-weight: 700;
    line-height: 1;
}

/* Primary CTA */
body .poly-header-shell a.poly-header-cta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 10px 18px !important;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%) !important;
    border: none !important;
    border-radius: 999px !important;
    color: #04060c !important;
    text-decoration: none !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 11px !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    box-shadow: 0 12px 28px -10px rgba(34,214,125,0.55) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}
body .poly-header-shell a.poly-header-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -10px rgba(34,214,125,0.7) !important;
}
.poly-header-cta-arrow { font-size: 14px; }
body .poly-header-shell a.poly-header-link {
    color: rgba(245,250,247,0.78) !important;
    background: transparent !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    border-radius: 999px !important;
    padding: 9px 16px !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 11px !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: all 0.15s ease;
}
body .poly-header-shell a.poly-header-link:hover {
    color: #ffffff !important;
    border-color: rgba(34,214,125,0.45) !important;
}

/* === Slim live ticker (top strip) === */
body .poly-header-shell .poly-ticker,
.poly-header-shell > .poly-ticker {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    height: 36px !important;
    background: linear-gradient(90deg, rgba(4,6,12,0.96) 0%, rgba(7,9,26,0.92) 50%, rgba(4,6,12,0.96) 100%) !important;
    backdrop-filter: blur(20px);
    border: none !important;
    border-bottom: 1px solid rgba(34,214,125,0.18) !important;
    overflow: hidden !important;
    position: relative !important;
    z-index: 2 !important;
    margin: 0 !important;
    padding: 0 !important;
    top: 0 !important;
}
.poly-ticker-prefix {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px 0 24px;
    background: linear-gradient(90deg, rgba(34,214,125,0.18) 0%, rgba(34,214,125,0.04) 100%);
    height: 100%;
    border-right: 1px solid rgba(34,214,125,0.18);
    position: relative;
    z-index: 3;
}
.poly-ticker-prefix::after {
    content: "";
    position: absolute;
    top: 0; right: -12px; bottom: 0;
    width: 14px;
    background: linear-gradient(90deg, rgba(7,9,26,0.85), transparent);
    pointer-events: none;
}
.poly-ticker-pulse {
    width: 8px; height: 8px; border-radius: 50%;
    background: #22d67d;
    box-shadow: 0 0 10px rgba(34,214,125,0.8);
    animation: polyLivePulse 1.6s ease-in-out infinite;
    flex-shrink: 0;
}
.poly-ticker-prefix-text {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #5fffba;
    font-weight: 700;
    white-space: nowrap;
}
.poly-ticker-track {
    display: flex;
    flex: 1;
    align-items: center;
    gap: 28px;
    min-width: 0;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent 0, black 5%, black 95%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, black 5%, black 95%, transparent 100%);
    animation: polyTickerScroll 60s linear infinite;
    will-change: transform;
}
.poly-ticker:hover .poly-ticker-track { animation-play-state: paused; }
@keyframes polyTickerScroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.poly-ticker-item {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    padding: 0 8px;
    color: #f3fbf6;
    line-height: 1;
}
.poly-ticker-league {
    width: 18px; height: 18px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,0.92);
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0;
}
.poly-ticker-league.is-hidden { display: none; }
.poly-ticker-league img { width: 70%; height: 70%; object-fit: contain; }
.poly-ticker-fixture {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: #ffffff;
    letter-spacing: 0.04em;
    white-space: nowrap;
}
.poly-ticker-team-crest {
    width: 16px; height: 16px;
    object-fit: contain;
    flex-shrink: 0;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.4));
}
.poly-ticker-team {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #ffffff;
}
.poly-ticker-vs {
    color: rgba(245,250,247,0.4);
    font-size: 9px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.poly-ticker-kickoff {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #ffb547;
    padding: 2px 6px;
    background: rgba(255,181,71,0.08);
    border: 1px solid rgba(255,181,71,0.22);
    border-radius: 4px;
    flex-shrink: 0;
}
.poly-ticker-cta {
    flex-shrink: 0;
    padding: 0 22px;
    height: 100%;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-left: 1px solid rgba(34,214,125,0.18);
    background: linear-gradient(90deg, transparent 0%, rgba(34,214,125,0.08) 100%);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #5fffba !important;
    font-weight: 700;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background 0.15s ease;
}
.poly-ticker-cta:hover {
    background: linear-gradient(90deg, transparent 0%, rgba(34,214,125,0.18) 100%);
}

/* Burger remains hidden on desktop */
body .poly-header-shell .poly-header-burger {
    display: none;
    background: transparent !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    border-radius: 8px !important;
    padding: 8px 10px !important;
    cursor: pointer;
    flex-direction: column;
    gap: 4px;
}
body .poly-header-shell .poly-header-burger .nav-toggle-bar {
    width: 18px; height: 2px;
    background: #ffffff;
    border-radius: 1px;
}

/* Reset legacy .header-inner padding/sizing */
body header.site-header .mfc-header-collapse-toggle { display: none !important; }

/* Push site content below the new header (slim ticker + 64px main) */
body .poly-header-shell + .nav-backdrop + main.site-content,
body .poly-header-shell ~ main.site-content {
    padding-top: 0 !important;
}

/* Responsive */
@media (max-width: 1100px) {
    body .poly-header-shell .site-header .header-inner,
    body .poly-header-shell .site-header .poly-header-inner {
        padding: 0 18px !important;
        gap: 14px !important;
    }
    .poly-header-status { display: none; }
    body .poly-header-shell a.poly-header-profile { padding: 5px 12px 5px 5px !important; }
    .poly-header-profile-meta { display: none; }
    .poly-header-search { display: none; }
}
@media (max-width: 900px) {
    body .poly-header-shell .poly-header-nav {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(86vw, 340px);
        background: rgba(4,6,12,0.985);
        backdrop-filter: blur(28px);
        -webkit-backdrop-filter: blur(28px);
        border-right: 1px solid rgba(74,222,128,0.22);
        transform: translateX(-100%);
        transition: transform 0.28s cubic-bezier(.32,.72,0,1);
        padding: 0 !important;
        z-index: 96;
        overflow-y: auto;
    }
    body .poly-header-shell .poly-header-nav.is-open,
    body .poly-header-shell.nav-open .poly-header-nav { transform: translateX(0); }
    body .poly-header-shell .poly-header-nav ul {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 4px !important;
    }
    body .poly-header-shell .poly-header-burger { display: inline-flex !important; }
    .poly-ticker { height: 28px; }
    .poly-ticker-prefix { padding: 0 12px 0 16px; }
    .poly-ticker-prefix-text { font-size: 9px; }
    .poly-ticker-cta { display: none; }
}
@media (max-width: 600px) {
    body .poly-header-shell .site-header .header-inner,
    body .poly-header-shell .site-header .poly-header-inner {
        height: 56px !important;
        padding: 0 14px !important;
        gap: 8px !important;
    }
    body .poly-header-shell .poly-header-logo img { height: 28px !important; }
    body .poly-header-shell a.poly-header-cta {
        padding: 8px 12px !important;
        font-size: 10px !important;
    }
}

/* =========================================================================
   Mega menu — full-width nav dropdowns
   ========================================================================= */

body .poly-mega-nav { font-family: 'Plus Jakarta Sans', sans-serif !important; }
body .poly-mega-nav > ul {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body .poly-mega-item {
    position: static !important;
    margin: 0 !important;
}
body .poly-mega-item.is-active > .poly-mega-trigger,
body .poly-mega-item.is-active > .poly-mega-direct {
    color: #4ade80 !important;
    background: rgba(74,222,128,0.06) !important;
}
body .poly-mega-trigger,
body .poly-mega-direct {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 9px 14px !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    color: rgba(255,255,255,0.75) !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    transition: color .2s ease, background .2s ease, border-color .2s ease !important;
    text-decoration: none !important;
    line-height: 1 !important;
}
body .poly-mega-trigger:hover,
body .poly-mega-direct:hover,
body .mfc-nav-has-flyout.is-open .poly-mega-trigger {
    color: #fff !important;
    background: rgba(255,255,255,0.04) !important;
    border-color: rgba(255,255,255,0.06) !important;
}
body .poly-mega-trigger .poly-nav-pill {
    margin-left: 2px !important;
    padding: 1px 7px !important;
    border-radius: 999px !important;
    background: rgba(74,222,128,0.12) !important;
    color: #4ade80 !important;
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
}
body .poly-mega-caret {
    font-size: 9px !important;
    color: rgba(255,255,255,0.4) !important;
    transition: transform .25s ease, color .2s ease !important;
}
body .mfc-nav-has-flyout.is-open .poly-mega-caret {
    transform: rotate(180deg) !important;
    color: #4ade80 !important;
}

body .poly-mega {
    position: absolute !important;
    top: calc(100% + 12px) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) translateY(-6px) !important;
    width: min(720px, calc(100vw - 32px)) !important;
    max-width: calc(100vw - 32px) !important;
    background: linear-gradient(180deg, rgba(14,18,24,0.96), rgba(8,11,16,0.98)) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 16px !important;
    box-shadow: 0 32px 80px -28px rgba(0,0,0,0.7) !important;
    backdrop-filter: blur(22px) !important;
    -webkit-backdrop-filter: blur(22px) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
    transition: opacity .22s ease, transform .22s cubic-bezier(.4,0,.2,1), visibility .22s !important;
    z-index: 8500 !important;
}
body .poly-mega-wide { width: min(940px, calc(100vw - 32px)) !important; }
body .mfc-nav-has-flyout.is-open .poly-mega {
    opacity: 1 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    transform: translateX(-50%) translateY(0) !important;
}
body .poly-mega::before {
    content: "" !important;
    position: absolute;
    top: -7px;
    left: 50%;
    margin-left: -6px;
    width: 12px;
    height: 12px;
    background: rgba(14,18,24,0.96);
    border-top: 1px solid rgba(255,255,255,0.08);
    border-left: 1px solid rgba(255,255,255,0.08);
    transform: rotate(45deg);
}
body .poly-mega-inner {
    padding: 22px 22px 18px !important;
    display: flex;
    flex-direction: column;
    gap: 18px;
    color: #f0f0f3;
}

/* Predict mega: feature card + quick cols + all-sports column */
body #poly-mega-predict { width: min(960px, calc(100vw - 32px)) !important; }
body #poly-mega-predict .poly-mega-inner {
    display: grid !important;
    grid-template-columns: 1.2fr 1fr 1.2fr;
    gap: 18px;
}
.poly-mega-col-allsports .poly-mega-list-sports {
    max-height: 360px;
    overflow-y: auto;
    padding-right: 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.1) transparent;
}
.poly-mega-col-allsports .poly-mega-list-sports::-webkit-scrollbar { width: 4px; }
.poly-mega-col-allsports .poly-mega-list-sports::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 4px; }
.poly-mega-list-sports a.is-soon {
    opacity: 0.55;
    pointer-events: none;
}
.poly-mega-list-sports a.is-soon .poly-mega-sport-icon-lg {
    background: rgba(255,255,255,0.04) !important;
    border-color: rgba(255,255,255,0.05) !important;
    filter: grayscale(0.6);
}
.poly-mega-sport-pill.is-live {
    background: rgba(74,222,128,0.12) !important;
    border-color: rgba(74,222,128,0.32) !important;
    color: #4ade80 !important;
}
.poly-mega-sport-pill.is-soon {
    background: rgba(255,255,255,0.04) !important;
    border-color: rgba(255,255,255,0.06) !important;
    color: rgba(255,255,255,0.45) !important;
}
.poly-mega-feature {
    grid-column: 1 / 2;
    padding: 14px;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(74,222,128,0.06), rgba(74,222,128,0.015));
    border: 1px solid rgba(74,222,128,0.18);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.poly-mega-feature-fixture {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.poly-mega-feature-fixture img { width: 26px; height: 26px; object-fit: contain; flex-shrink: 0; }
.poly-mega-feature-pair {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-mega-feature-pair strong { color: #f4f4f7; font-weight: 700; font-size: 13px; }
.poly-mega-feature-pair em {
    font-style: normal;
    color: rgba(255,255,255,0.3);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin: 0 4px;
}
.poly-mega-feature-time {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.55);
}
.poly-mega-feature-empty {
    color: rgba(255,255,255,0.5);
    font-size: 12px;
    margin: 0;
}

.poly-mega-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
}
.poly-mega-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.6);
    animation: polyAuthPulse 1.6s ease-out infinite;
}
.poly-mega-head {
    display: flex;
    flex-direction: column;
    gap: 4px;
    grid-column: 1 / -1;
    margin: -2px 0 4px;
}
.poly-mega-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #fff;
    margin: 0;
    line-height: 1.05;
    letter-spacing: 0.005em;
}
.poly-mega-sub {
    color: rgba(255,255,255,0.5);
    font-size: 12px;
    margin: 0;
}

.poly-mega-cols { display: contents; }
.poly-mega-col { display: flex; flex-direction: column; gap: 8px; }
.poly-mega-col-label {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
}
.poly-mega-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.poly-mega-list a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 11px;
    border-radius: 9px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.04);
    color: #f0f0f3;
    text-decoration: none;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 600;
    transition: all .18s ease;
}
.poly-mega-list a:hover {
    background: rgba(255,255,255,0.04);
    border-color: rgba(74,222,128,0.3);
    transform: translateX(2px);
}
.poly-mega-list a span:first-child:not(.poly-mega-sport-icon) {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.poly-mega-list-sports a {
    grid-template-columns: auto 1fr auto;
    display: grid;
    align-items: center;
}
.poly-mega-list a em {
    font-style: normal;
    color: rgba(255,255,255,0.4);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    transition: color .15s ease, transform .15s ease;
}
.poly-mega-list a:hover em { color: #4ade80; transform: translateX(2px); }
.poly-mega-sport-icon {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: rgba(74,222,128,0.12);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    flex-shrink: 0;
}

/* Quick Views — icon + label with tone-coded left accent */
.poly-mega-list-views a {
    display: grid !important;
    grid-template-columns: auto 1fr;
    gap: 10px !important;
    border-left: 3px solid rgba(255,255,255,0.08);
    padding: 9px 11px !important;
}
.poly-mega-list-views a em { display: none !important; }
.poly-mega-list-views a[data-tone="open"]:hover { border-left-color: #4ade80; }
.poly-mega-list-views a[data-tone="picked"]:hover { border-left-color: #4ade80; }
.poly-mega-list-views a[data-tone="final"]:hover { border-left-color: #60a5fa; }
.poly-mega-list-views a[data-tone="locked"]:hover { border-left-color: #facc15; }
.poly-mega-list-icon {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: rgba(255,255,255,0.04);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.6);
    flex-shrink: 0;
    transition: background .18s ease, color .18s ease;
}
.poly-mega-list-icon svg { width: 12px; height: 12px; }
.poly-mega-list-views a[data-tone="open"]:hover .poly-mega-list-icon { background: rgba(74,222,128,0.14); color: #4ade80; }
.poly-mega-list-views a[data-tone="picked"]:hover .poly-mega-list-icon { background: rgba(74,222,128,0.14); color: #4ade80; }
.poly-mega-list-views a[data-tone="final"]:hover .poly-mega-list-icon { background: rgba(96,165,250,0.14); color: #60a5fa; }
.poly-mega-list-views a[data-tone="locked"]:hover .poly-mega-list-icon { background: rgba(250,204,21,0.14); color: #facc15; }
.poly-mega-list-label {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    color: #f4f4f7 !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 12px !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
}
.poly-mega-list a { text-transform: none !important; letter-spacing: 0 !important; }

/* Sports column tiles */
.poly-mega-list-sports a {
    display: grid !important;
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    align-items: center;
}
.poly-mega-sport-icon-lg {
    width: 32px !important;
    height: 32px !important;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(74,222,128,0.14), rgba(34,211,238,0.06)) !important;
    border: 1px solid rgba(74,222,128,0.18);
    font-size: 18px !important;
}
.poly-mega-sport-pill {
    font-style: normal !important;
    padding: 3px 9px !important;
    border-radius: 999px !important;
    background: rgba(74,222,128,0.08) !important;
    border: 1px solid rgba(74,222,128,0.22) !important;
    color: #4ade80 !important;
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    transform: none !important;
}
.poly-mega-list-sports a:hover .poly-mega-sport-icon-lg {
    background: linear-gradient(135deg, rgba(74,222,128,0.2), rgba(34,211,238,0.1)) !important;
    border-color: rgba(74,222,128,0.35);
}

/* Leagues mega: logo-tile grid, no scroll */
.poly-mega-leagues-tiles {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}
.poly-mega-league-tile {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 11px;
    background: rgba(255,255,255,0.022);
    border: 1px solid rgba(255,255,255,0.05);
    color: #f0f0f3;
    text-decoration: none;
    transition: all .18s ease;
    min-width: 0;
}
.poly-mega-league-tile:hover {
    background: rgba(74,222,128,0.05);
    border-color: rgba(74,222,128,0.32);
    transform: translateY(-2px);
}
.poly-mega-league-tile-logo {
    position: relative;
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}
.poly-mega-league-tile-logo img {
    max-width: 28px;
    max-height: 28px;
    object-fit: contain;
}
.poly-mega-league-tile-fallback {
    display: none;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    font-weight: 700;
    color: rgba(255,255,255,0.65);
    letter-spacing: 0.04em;
}
.poly-mega-league-tile-logo.is-fallback .poly-mega-league-tile-fallback {
    display: inline-flex;
    position: absolute;
    inset: 0;
    align-items: center;
    justify-content: center;
}
.poly-mega-league-tile:hover .poly-mega-league-tile-logo {
    background: rgba(74,222,128,0.06);
    border-color: rgba(74,222,128,0.2);
}
.poly-mega-league-tile-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    overflow: hidden;
}
.poly-mega-league-tile-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #f4f4f7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: 0;
    text-transform: none;
}
.poly-mega-league-tile-meta {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    color: rgba(255,255,255,0.42);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-mega-foot-leagues {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px;
}
.poly-mega-foot-meta {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
}
@media (max-width: 880px) {
    .poly-mega-leagues-tiles { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .poly-mega-leagues-tiles { grid-template-columns: 1fr; }
}

/* Legacy leagues grid (kept for any callers still using it) */
.poly-mega-leagues-grid {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-height: 60vh;
    overflow-y: auto;
    padding-right: 4px;
}
.poly-mega-leagues-grid::-webkit-scrollbar { width: 4px; }
.poly-mega-leagues-grid::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 4px; }
.poly-mega-leagues-col-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.poly-mega-leagues-col-label {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.85);
    flex: 1;
    font-weight: 700;
}
.poly-mega-leagues-col-count {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    padding: 3px 9px;
    border-radius: 999px;
    background: rgba(74,222,128,0.1);
    border: 1px solid rgba(74,222,128,0.22);
    color: #4ade80;
    font-weight: 700;
}
.poly-mega-leagues-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}
.poly-mega-leagues-list a {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    align-items: center;
    padding: 10px 12px;
    border-radius: 9px;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.05);
    color: #f0f0f3;
    text-decoration: none;
    transition: all .18s ease;
    column-gap: 12px;
    row-gap: 2px;
    text-align: left;
    min-width: 0;
}
.poly-mega-leagues-list a:hover {
    background: rgba(74,222,128,0.04);
    border-color: rgba(74,222,128,0.28);
    transform: translateY(-1px);
}
.poly-mega-leagues-name {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #f4f4f7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}
.poly-mega-leagues-meta {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    color: rgba(255,255,255,0.4);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: left;
}
.poly-mega-leagues-count {
    grid-column: 2 / 3;
    grid-row: 1 / 3;
    align-self: center;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.5);
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.05);
    flex-shrink: 0;
}
.poly-mega-leagues-list a:hover .poly-mega-leagues-count {
    color: #4ade80;
    background: rgba(74,222,128,0.08);
    border-color: rgba(74,222,128,0.22);
}
@media (min-width: 880px) {
    .poly-mega-leagues-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Leaderboard mega */
.poly-mega-leaders {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.poly-mega-leaders li {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border-radius: 9px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.04);
}
.poly-mega-leader-rank {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    font-weight: 700;
    color: rgba(255,255,255,0.5);
}
.poly-mega-leaders li:nth-child(1) .poly-mega-leader-rank { color: #facc15; }
.poly-mega-leaders li:nth-child(2) .poly-mega-leader-rank { color: #cbd5e1; }
.poly-mega-leaders li:nth-child(3) .poly-mega-leader-rank { color: #d97706; }
.poly-mega-leader-name {
    font-size: 13px;
    font-weight: 600;
    color: #f4f4f7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-mega-leader-points {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: #4ade80;
    font-weight: 700;
}
.poly-mega-leader-empty {
    color: rgba(255,255,255,0.4);
    text-align: center;
    padding: 20px 8px;
    font-size: 12px;
}
.poly-mega-leader-points em {
    font-style: normal;
    color: rgba(255,255,255,0.4);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-left: 2px;
    font-weight: 600;
}

.poly-mega-period {
    display: flex;
    gap: 6px;
    padding: 4px;
    border-radius: 10px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.05);
}
.poly-mega-period-chip {
    flex: 1;
    padding: 7px 10px;
    border-radius: 7px;
    text-decoration: none;
    color: rgba(255,255,255,0.55);
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    transition: all .18s ease;
}
.poly-mega-period-chip:hover { color: #fff; background: rgba(255,255,255,0.04); }
.poly-mega-period-chip.is-active {
    background: linear-gradient(135deg, #4ade80, #22c55e);
    color: #022;
    box-shadow: 0 4px 12px -4px rgba(74,222,128,0.4);
}

.poly-mega-you {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(74,222,128,0.06);
    border: 1px dashed rgba(74,222,128,0.32);
}
.poly-mega-you-label {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #4ade80;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(74,222,128,0.12);
    border: 1px solid rgba(74,222,128,0.3);
}
.poly-mega-you-name {
    font-size: 13px;
    color: #f4f4f7;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', sans-serif;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-mega-you-points {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 12px;
    color: #4ade80;
    font-weight: 700;
}
.poly-mega-you-points em {
    font-style: normal;
    color: rgba(74,222,128,0.55);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-left: 2px;
    font-weight: 600;
}

.poly-mega-foot {
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,0.05);
    display: flex;
    justify-content: flex-end;
}
.poly-mega-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 16px;
    border-radius: 8px;
    background: linear-gradient(135deg, #4ade80, #22c55e);
    color: #022;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    transition: filter .15s ease, transform .15s ease;
    box-shadow: 0 12px 24px -8px rgba(74,222,128,0.45);
    align-self: flex-start;
}
.poly-mega-cta:hover { filter: brightness(1.08); transform: translateY(-1px); }

@media (max-width: 880px) {
    body .poly-mega { width: calc(100vw - 24px) !important; }
    body #poly-mega-predict .poly-mega-inner { grid-template-columns: 1fr; }
    .poly-mega-feature { grid-column: auto; }
    .poly-mega-leagues-grid { grid-template-columns: 1fr; max-height: 70vh; }
}

/* =========================================================================
   PolyMarket-style social proof: consensus bars, vs-crowd, live pick tape
   ========================================================================= */

.poly-card-consensus-slot {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 14px 0;
    transition: opacity .25s ease;
}
.poly-card-consensus-slot.is-saving { opacity: .55; }

.poly-consensus {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: linear-gradient(180deg, rgba(255,255,255,0.018), rgba(255,255,255,0.005));
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 10px;
    padding: 10px 12px;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}
.poly-consensus.is-empty {
    background: transparent;
    border-style: dashed;
    border-color: rgba(255,255,255,0.07);
    color: rgba(255,255,255,0.42);
    text-align: center;
    padding: 8px 12px;
}
.poly-consensus-empty {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.poly-consensus-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.poly-consensus-eyebrow {
    color: rgba(255,255,255,0.65);
    font-weight: 600;
}
.poly-consensus-volume strong {
    color: #f8f8fa;
    font-weight: 700;
    margin-right: 3px;
}
.poly-consensus-bar {
    display: flex;
    width: 100%;
    height: 7px;
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.03);
}
.poly-consensus-seg {
    display: block;
    height: 100%;
    transition: width .4s cubic-bezier(.4,0,.2,1);
}
.poly-consensus-seg.is-home {
    background: linear-gradient(90deg, #4ade80, #22c55e);
}
.poly-consensus-seg.is-draw {
    background: linear-gradient(90deg, #facc15, #eab308);
}
.poly-consensus-seg.is-away {
    background: linear-gradient(90deg, #60a5fa, #3b82f6);
}
.poly-consensus-pcts {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.poly-consensus-pcts li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 8px;
    border-radius: 7px;
    background: rgba(255,255,255,0.025);
    font-size: 11px;
}
.poly-consensus-pcts .poly-consensus-key {
    font-weight: 700;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.42);
}
.poly-consensus-pcts .poly-consensus-val {
    color: #f0f0f3;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.poly-consensus-pcts li.is-home .poly-consensus-key { color: #4ade80; }
.poly-consensus-pcts li.is-draw .poly-consensus-key { color: #facc15; }
.poly-consensus-pcts li.is-away .poly-consensus-key { color: #60a5fa; }
.poly-consensus-top {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 4px;
    border-top: 1px dashed rgba(255,255,255,0.06);
    font-size: 11px;
    color: rgba(255,255,255,0.55);
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.poly-consensus-top span {
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 9px;
    color: rgba(255,255,255,0.42);
}
.poly-consensus-top strong {
    color: #f8f8fa;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-weight: 700;
}
.poly-consensus-top em {
    margin-left: auto;
    font-style: normal;
    color: rgba(255,255,255,0.6);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}

.poly-card-movement {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 8px;
    background: rgba(255,255,255,0.015);
    border: 1px solid rgba(255,255,255,0.04);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.05em;
    color: rgba(255,255,255,0.7);
}
.poly-card-movement.is-home { border-left: 3px solid #4ade80; }
.poly-card-movement.is-away { border-left: 3px solid #60a5fa; }
.poly-card-movement.is-draw { border-left: 3px solid #facc15; }
.poly-card-movement-arrow {
    font-weight: 700;
    color: #f4f4f7;
}
.poly-card-movement.is-home .poly-card-movement-arrow { color: #4ade80; }
.poly-card-movement.is-away .poly-card-movement-arrow { color: #60a5fa; }
.poly-card-movement.is-draw .poly-card-movement-arrow { color: #facc15; }
.poly-card-movement-rate {
    color: #fff;
    font-weight: 700;
}
.poly-card-movement-meta {
    margin-left: auto;
    color: rgba(255,255,255,0.4);
    text-transform: uppercase;
    font-size: 9px;
    letter-spacing: 0.12em;
}

.poly-vs-crowd {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 9px;
    border-radius: 999px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.poly-vs-crowd.is-with {
    background: rgba(74, 222, 128, 0.12);
    color: #4ade80;
    border: 1px solid rgba(74, 222, 128, 0.3);
}
.poly-vs-crowd.is-against {
    background: rgba(244, 114, 182, 0.12);
    color: #f472b6;
    border: 1px solid rgba(244, 114, 182, 0.32);
}

/* Right-rail crowd alignment block */
.poly-rail-crowd-stats {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.05);
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.poly-rail-crowd-stats.is-with {
    border-color: rgba(74, 222, 128, 0.25);
    background: rgba(74, 222, 128, 0.04);
}
.poly-rail-crowd-stats.is-contra {
    border-color: rgba(244, 114, 182, 0.25);
    background: rgba(244, 114, 182, 0.04);
}
.poly-rail-crowd-label {
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    margin-bottom: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.poly-rail-crowd-bar {
    width: 100%;
    height: 5px;
    border-radius: 999px;
    background: rgba(255,255,255,0.06);
    overflow: hidden;
}
.poly-rail-crowd-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #4ade80, #22c55e);
    transition: width .5s cubic-bezier(.4,0,.2,1);
}
.poly-rail-crowd-stats.is-contra .poly-rail-crowd-bar span {
    background: linear-gradient(90deg, #f472b6, #ec4899);
}
.poly-rail-crowd-meta {
    margin-top: 6px;
    font-size: 11px;
    color: rgba(255,255,255,0.6);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.poly-rail-crowd-meta strong {
    color: #fff;
}

/* Live picks tape (right rail global feed) */
.poly-rail-livefeed { position: relative; }
.poly-rail-livedot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #f472b6;
    box-shadow: 0 0 0 0 rgba(244, 114, 182, 0.6);
    animation: polyLiveDotPulse 1.6s ease-out infinite;
    margin-right: 6px;
    vertical-align: middle;
}
@keyframes polyLiveDotPulse {
    0% { box-shadow: 0 0 0 0 rgba(244,114,182,0.55); }
    70% { box-shadow: 0 0 0 8px rgba(244,114,182,0); }
    100% { box-shadow: 0 0 0 0 rgba(244,114,182,0); }
}
.poly-rail-livefeed-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 360px;
    overflow-y: auto;
}
.poly-rail-livefeed-list::-webkit-scrollbar { width: 4px; }
.poly-rail-livefeed-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 4px; }
.poly-rail-livefeed-item {
    border-left: 3px solid rgba(255,255,255,0.1);
    border-radius: 6px;
    background: rgba(255,255,255,0.018);
    transition: background .2s ease, transform .2s ease;
}
.poly-rail-livefeed-item:hover {
    background: rgba(255,255,255,0.04);
    transform: translateX(2px);
}
.poly-rail-livefeed-item.is-home { border-left-color: #4ade80; }
.poly-rail-livefeed-item.is-away { border-left-color: #60a5fa; }
.poly-rail-livefeed-item.is-draw { border-left-color: #facc15; }
.poly-rail-livefeed-link {
    display: block;
    padding: 8px 10px;
    text-decoration: none;
    color: inherit;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.poly-rail-livefeed-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 3px;
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.poly-rail-livefeed-nick {
    font-weight: 700;
    color: #f4f4f7;
    max-width: 60%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-rail-livefeed-ago {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    color: rgba(255,255,255,0.4);
    font-size: 9px;
}
.poly-rail-livefeed-pair {
    font-size: 11px;
    color: rgba(255,255,255,0.65);
    margin-bottom: 2px;
}
.poly-rail-livefeed-vs {
    font-size: 9px;
    color: rgba(255,255,255,0.3);
    margin: 0 4px;
}
.poly-rail-livefeed-pick {
    font-size: 11px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.poly-rail-livefeed-tag {
    color: rgba(255,255,255,0.4);
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.poly-rail-livefeed-pick strong {
    color: #f8f8fa;
    font-weight: 700;
}
.poly-rail-livefeed-pick em {
    margin-left: auto;
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    color: rgba(255,255,255,0.45);
    font-size: 10px;
}

@media (max-width: 768px) {
    .poly-consensus-pcts { grid-template-columns: 1fr 1fr 1fr; gap: 4px; }
    .poly-consensus-pcts li { padding: 3px 6px; font-size: 10px; }
    .poly-card-movement-meta { display: none; }
}

/* =========================================================================
   Collapsible match cards (locked + final)
   ========================================================================= */

/* =========================================================================
   Header notification bell + popover (replaces drawer-only notifications)
   ========================================================================= */

.poly-header-bell-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.poly-header-bell {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.04);
    color: rgba(245,250,247,0.78);
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.poly-header-bell svg { width: 16px; height: 16px; }
.poly-header-bell:hover,
.poly-header-bell-wrap.is-open .poly-header-bell {
    background: rgba(255,255,255,0.05);
    border-color: rgba(74,222,128,0.4);
    color: #4ade80;
}
.poly-header-bell:active { transform: scale(0.96); }
.poly-header-bell-badge {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: linear-gradient(135deg, #f472b6, #ec4899);
    color: #fff;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    border: 2px solid #0a0d12;
    box-shadow: 0 0 0 0 rgba(244, 114, 182, 0.5);
    animation: polyBellPulse 2s ease-out infinite;
    pointer-events: none;
}
.poly-header-bell-badge[hidden],
.poly-header-bell-badge.is-empty,
.poly-header-bell-badge:empty,
.poly-header-bell-badge[data-count="0"] {
    display: none !important;
}
@keyframes polyBellPulse {
    0% { box-shadow: 0 0 0 0 rgba(244,114,182,0.45); }
    65% { box-shadow: 0 0 0 6px rgba(244,114,182,0); }
    100% { box-shadow: 0 0 0 0 rgba(244,114,182,0); }
}

.poly-notif-popover {
    position: absolute;
    top: calc(100% + 12px);
    right: -8px;
    width: 380px;
    max-width: calc(100vw - 24px);
    max-height: 560px;
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, rgba(14,18,24,0.96), rgba(10,13,18,0.99));
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px;
    box-shadow: 0 24px 60px -12px rgba(0,0,0,0.6), 0 0 0 1px rgba(74,222,128,0.04);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    z-index: 9000;
    overflow: hidden;
    transform-origin: top right;
    animation: polyNotifIn .22s cubic-bezier(.4,0,.2,1) both;
}
.poly-notif-popover[hidden] { display: none; }
@keyframes polyNotifIn {
    from { opacity: 0; transform: translateY(-6px) scale(0.98); }
    to { opacity: 1; transform: none; }
}
.poly-notif-popover::before {
    content: "";
    position: absolute;
    top: -7px;
    right: 22px;
    width: 12px;
    height: 12px;
    background: rgba(14,18,24,0.96);
    border-top: 1px solid rgba(255,255,255,0.08);
    border-left: 1px solid rgba(255,255,255,0.08);
    transform: rotate(45deg);
}

.poly-notif-popover-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 10px;
    padding: 14px 16px 10px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}
.poly-notif-popover-eyebrow {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.42);
}
.poly-notif-popover-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.6);
}
.poly-notif-popover-title {
    grid-column: 1 / 3;
    grid-row: 2 / 3;
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #f8f8fa;
    letter-spacing: 0.01em;
}
.poly-notif-popover-actions {
    grid-column: 3 / 4;
    grid-row: 1 / 3;
    display: flex;
    align-items: center;
    gap: 6px;
}
.poly-notif-popover-action {
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.02);
    color: rgba(255,255,255,0.7);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 5px 9px;
    border-radius: 7px;
    cursor: pointer;
    transition: all .18s ease;
}
.poly-notif-popover-action:hover {
    background: rgba(255,255,255,0.05);
    color: #fff;
    border-color: rgba(255,255,255,0.16);
}
.poly-notif-popover-action.is-danger:hover {
    color: #f472b6;
    border-color: rgba(244,114,182,0.4);
}

.poly-notif-popover-tabs {
    display: flex;
    gap: 4px;
    padding: 8px 12px;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    overflow-x: auto;
    scrollbar-width: none;
}
.poly-notif-popover-tabs::-webkit-scrollbar { display: none; }
.poly-notif-popover-tab {
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    color: rgba(255,255,255,0.45);
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 11px;
    font-weight: 600;
    padding: 5px 10px;
    border-radius: 7px;
    cursor: pointer;
    transition: all .18s ease;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.poly-notif-popover-tab:hover { color: rgba(255,255,255,0.85); }
.poly-notif-popover-tab.is-active {
    background: rgba(74,222,128,0.12);
    color: #4ade80;
}

.poly-notif-popover-body {
    flex: 1;
    overflow-y: auto;
    padding: 6px 8px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.1) transparent;
}
.poly-notif-popover-body::-webkit-scrollbar { width: 4px; }
.poly-notif-popover-body::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.08);
    border-radius: 4px;
}
.poly-notif-popover-empty {
    padding: 36px 20px;
    text-align: center;
    color: rgba(255,255,255,0.4);
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    line-height: 1.5;
}
/* Override the legacy mfc-notif-* styles when rendered inside the popover */
.poly-notif-popover-body .mfc-notif-group {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.32);
    padding: 10px 8px 4px;
    border: 0 !important;
    background: transparent !important;
}
.poly-notif-popover-body .mfc-notif-item {
    display: flex !important;
    gap: 10px !important;
    padding: 10px !important;
    margin-bottom: 4px !important;
    border-radius: 9px !important;
    background: rgba(255,255,255,0.02) !important;
    border: 1px solid rgba(255,255,255,0.04) !important;
    transition: background .2s ease;
    position: relative;
}
.poly-notif-popover-body .mfc-notif-item:hover {
    background: rgba(255,255,255,0.04) !important;
}
.poly-notif-popover-body .mfc-notif-item.is-unread::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 6px rgba(74,222,128,0.6);
}
.poly-notif-popover-body .mfc-notif-item.is-unread {
    padding-left: 16px !important;
}
.poly-notif-popover-body .mfc-notif-icon {
    font-size: 14px;
    flex: 0 0 28px;
    height: 28px;
    border-radius: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.04) !important;
}
.poly-notif-popover-body .mfc-notif-success .mfc-notif-icon { background: rgba(74,222,128,0.16) !important; }
.poly-notif-popover-body .mfc-notif-warn .mfc-notif-icon { background: rgba(251,191,36,0.16) !important; }
.poly-notif-popover-body .mfc-notif-lock .mfc-notif-icon { background: rgba(148,163,184,0.16) !important; }
.poly-notif-popover-body .mfc-notif-info .mfc-notif-icon { background: rgba(96,165,250,0.16) !important; }
.poly-notif-popover-body .mfc-notif-body {
    flex: 1;
    min-width: 0;
}
.poly-notif-popover-body .mfc-notif-head {
    display: flex !important;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 2px;
}
.poly-notif-popover-body .mfc-notif-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #f4f4f7 !important;
}
.poly-notif-popover-body .mfc-notif-time {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    color: rgba(255,255,255,0.35) !important;
    white-space: nowrap;
}
.poly-notif-popover-body .mfc-notif-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 11px;
    color: rgba(255,255,255,0.62) !important;
    line-height: 1.4;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.poly-notif-popover-body .mfc-notif-meta {
    margin-top: 4px;
    display: flex !important;
    gap: 6px;
}
.poly-notif-popover-body .mfc-notif-category {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 4px;
    background: rgba(255,255,255,0.04) !important;
    color: rgba(255,255,255,0.5) !important;
}

.poly-notif-popover-foot {
    border-top: 1px solid rgba(255,255,255,0.05);
    padding: 10px 14px;
    text-align: right;
}
.poly-notif-popover-cta {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #4ade80;
    text-decoration: none;
    transition: color .15s ease, transform .15s ease;
}
.poly-notif-popover-cta:hover {
    color: #86efac;
    transform: translateX(2px);
}

/* =========================================================================
   Profile pill polish — clearer hierarchy
   ========================================================================= */
body .poly-header-shell .poly-header-profile-pts em {
    font-style: normal;
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
    margin-left: 3px;
    font-weight: 600;
}
body .poly-header-shell .poly-header-profile-pts {
    transition: color .3s ease, transform .3s ease;
}
body .poly-header-shell .poly-header-profile-pts.is-bumped {
    color: #4ade80;
    transform: scale(1.08);
}

/* =========================================================================
   Toast rehaul — slide-in glass cards anchored bottom-right
   ========================================================================= */
body .mfc-toast-wrap {
    position: fixed !important;
    top: auto !important;
    bottom: 24px !important;
    right: 24px !important;
    left: auto !important;
    width: 340px !important;
    max-width: calc(100vw - 32px) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    pointer-events: none;
    z-index: 9500 !important;
}
body .mfc-toast {
    pointer-events: auto;
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 12px 14px !important;
    border-radius: 12px !important;
    background: linear-gradient(180deg, rgba(14,18,24,0.96), rgba(10,13,18,0.99)) !important;
    border: 1px solid rgba(255,255,255,0.07) !important;
    border-left: 3px solid rgba(255,255,255,0.18) !important;
    box-shadow: 0 16px 40px -12px rgba(0,0,0,0.55) !important;
    color: #f0f0f3 !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    animation: polyToastSlideIn .35s cubic-bezier(.4,0,.2,1) both !important;
    position: relative;
    overflow: hidden;
}
body .mfc-toast::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    height: 2px;
    width: 100%;
    background: linear-gradient(90deg, currentColor, transparent);
    opacity: 0.4;
    transform-origin: left;
    animation: polyToastTimer 4s linear forwards;
}
@keyframes polyToastSlideIn {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: none; }
}
@keyframes polyToastTimer {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}
body .mfc-toast-success {
    border-left-color: #4ade80 !important;
    color: #d1fae5 !important;
}
body .mfc-toast-info {
    border-left-color: #60a5fa !important;
    color: #dbeafe !important;
}
body .mfc-toast-warn {
    border-left-color: #fbbf24 !important;
    color: #fef3c7 !important;
}
body .mfc-toast .mfc-toast-icon {
    font-size: 16px !important;
    line-height: 1 !important;
    flex: 0 0 auto;
}

@media (max-width: 768px) {
    /* Drop backdrop-filter on the header at mobile width so fixed-positioned
       descendants (notif popover) escape the containing-block trap. */
    body header.site-header.poly-header,
    body .poly-header-shell .site-header {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    body .mfc-toast-wrap {
        bottom: 84px !important;
        right: 8px !important;
        left: 8px !important;
        width: auto !important;
    }
    body .poly-header-shell .poly-header-profile-meta {
        display: none !important;
    }
}

/* =========================================================================
   Profile drawer rehaul (matches the new Stadium-After-Dark predictor)
   The original .mfc-profile-drawer hooks remain so existing JS keeps working;
   .poly-drawer-* gives us a clean override surface.
   ========================================================================= */

body .mfc-profile-drawer.poly-drawer {
    background: transparent !important;
}
body .poly-drawer-panel {
    background: linear-gradient(180deg, rgba(14,18,24,0.985), rgba(8,11,16,0.99)) !important;
    border-left: 1px solid rgba(255,255,255,0.06) !important;
    box-shadow: -32px 0 80px -32px rgba(0,0,0,0.7) !important;
    color: #f0f0f3 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}
body .poly-drawer-panel > * {
    padding-left: 22px !important;
    padding-right: 22px !important;
}

body .mfc-drawer-header.poly-drawer-head,
.poly-drawer-head {
    position: relative !important;
    display: block !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    padding-top: 22px !important;
    padding-right: 64px !important; /* room for absolute-positioned close button */
    padding-bottom: 18px !important;
    border-bottom: 1px solid rgba(255,255,255,0.05) !important;
    background: radial-gradient(800px 220px at 0% 0%, rgba(74,222,128,0.10), transparent 60%) !important;
}
.poly-drawer-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(74,222,128,0.08);
    border: 1px solid rgba(74,222,128,0.22);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #4ade80;
    margin-bottom: 10px;
}
.poly-drawer-head > .poly-drawer-title {
    display: block !important;
    width: 100%;
    word-break: break-word;
    overflow-wrap: anywhere;
}
.poly-drawer-head > .poly-drawer-sub {
    display: block !important;
    width: 100%;
    margin-top: 2px;
}
.poly-drawer-eyebrow-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.65);
}
body .poly-drawer-close {
    position: absolute !important;
    top: 18px !important;
    right: 18px !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 8px !important;
    border: 1px solid rgba(255,255,255,0.07) !important;
    background: rgba(255,255,255,0.025) !important;
    color: rgba(255,255,255,0.7) !important;
    font-size: 18px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transition: all .2s ease !important;
}
body .poly-drawer-close:hover {
    background: rgba(255,255,255,0.06) !important;
    color: #f472b6 !important;
    border-color: rgba(244,114,182,0.4) !important;
}
body .poly-drawer-title {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif !important;
    font-size: 30px !important;
    font-weight: 800 !important;
    color: #fff !important;
    letter-spacing: 0.005em !important;
    margin: 0 0 4px 0 !important;
    line-height: 1.05 !important;
}
.poly-drawer-sub {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 12px !important;
    color: rgba(255,255,255,0.55) !important;
}

.poly-drawer-hero {
    display: flex;
    gap: 14px;
    align-items: center;
    padding-top: 18px !important;
    padding-bottom: 14px !important;
}
body .poly-drawer-avatar {
    position: relative;
    width: 64px !important;
    height: 64px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    flex-shrink: 0;
    background: linear-gradient(135deg, #4ade80, #22c55e) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #022 !important;
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 22px !important;
    font-weight: 800 !important;
    border: 2px solid rgba(255,255,255,0.06) !important;
    box-shadow: 0 8px 22px -8px rgba(74,222,128,0.4);
}
.poly-drawer-avatar img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
.poly-drawer-avatar-ring {
    position: absolute;
    inset: -4px;
    border: 1px dashed rgba(74,222,128,0.4);
    border-radius: 50%;
    pointer-events: none;
    animation: polyAvatarRing 12s linear infinite;
}
@keyframes polyAvatarRing {
    to { transform: rotate(360deg); }
}
.poly-drawer-hero-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    flex: 1;
}
.poly-drawer-hero-stat {
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.05);
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.poly-drawer-hero-stat.is-points { border-color: rgba(74,222,128,0.18); }
.poly-drawer-hero-stat-label {
    display: block;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.42);
    margin-bottom: 4px;
}
.poly-drawer-hero-stat-value {
    display: block;
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 28px;
    font-weight: 800;
    color: #f8f8fa;
    line-height: 1;
    letter-spacing: 0.005em;
}
.poly-drawer-hero-stat.is-points .poly-drawer-hero-stat-value { color: #4ade80; }
.poly-drawer-hero-stat-meta {
    display: block;
    margin-top: 4px;
    font-size: 10px;
    color: rgba(255,255,255,0.45);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    letter-spacing: 0.04em;
}

.poly-drawer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding-top: 8px !important;
    padding-bottom: 18px !important;
}
.poly-drawer-tile {
    padding: 12px 14px;
    border-radius: 10px;
    background: rgba(255,255,255,0.022);
    border: 1px solid rgba(255,255,255,0.05);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.poly-drawer-tile-wide { grid-column: 1 / -1; }
.poly-drawer-tile.is-with { border-color: rgba(74,222,128,0.22); background: rgba(74,222,128,0.04); }
.poly-drawer-tile.is-contra { border-color: rgba(244,114,182,0.22); background: rgba(244,114,182,0.04); }
.poly-drawer-tile.is-empty { opacity: 0.7; }
.poly-drawer-tile-label {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.42);
}
.poly-drawer-tile-value {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 24px;
    font-weight: 800;
    color: #f8f8fa;
    line-height: 1.05;
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}
.poly-drawer-tile-value em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 12px;
    color: rgba(255,255,255,0.4);
    font-weight: 600;
}
.poly-drawer-tile-value-text {
    font-size: 18px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
}
.poly-drawer-tile-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    justify-content: space-between;
}
.poly-drawer-tile-bar {
    height: 5px;
    width: 100%;
    border-radius: 999px;
    background: rgba(255,255,255,0.05);
    overflow: hidden;
}
.poly-drawer-tile-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #4ade80, #22c55e);
    transition: width .5s cubic-bezier(.4,0,.2,1);
}
.poly-drawer-tile.is-contra .poly-drawer-tile-bar span {
    background: linear-gradient(90deg, #f472b6, #ec4899);
}
.poly-drawer-tile-meta {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 11px;
    color: rgba(255,255,255,0.5);
}

.poly-drawer-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    padding-bottom: 18px !important;
}
body .poly-drawer-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 12px 14px !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,0.025) !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
    color: #f0f0f3 !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: all .2s ease !important;
}
body .poly-drawer-btn:hover {
    background: rgba(255,255,255,0.05) !important;
    border-color: rgba(255,255,255,0.14) !important;
    transform: translateX(2px);
}
body .poly-drawer-btn em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    color: rgba(255,255,255,0.4);
    transition: color .2s ease, transform .2s ease;
}
body .poly-drawer-btn:hover em {
    color: #4ade80;
    transform: translateX(3px);
}
body .poly-drawer-btn.is-primary {
    background: linear-gradient(135deg, rgba(74,222,128,0.15), rgba(34,197,94,0.08)) !important;
    border-color: rgba(74,222,128,0.35) !important;
    color: #d1fae5 !important;
}
body .poly-drawer-btn.is-primary em { color: #4ade80 !important; }
body .poly-drawer-btn.is-primary:hover {
    background: linear-gradient(135deg, rgba(74,222,128,0.22), rgba(34,197,94,0.12)) !important;
    border-color: rgba(74,222,128,0.55) !important;
}

.poly-drawer-section {
    flex: 1;
    overflow-y: auto;
    padding-top: 16px !important;
    padding-bottom: 22px !important;
    border-top: 1px solid rgba(255,255,255,0.05);
    background: linear-gradient(180deg, rgba(255,255,255,0.012), transparent 80px);
}
.poly-drawer-section::-webkit-scrollbar { width: 4px; }
.poly-drawer-section::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 4px; }
.poly-drawer-section-head {
    display: flex !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    margin-bottom: 10px !important;
}
body .poly-drawer-section-title {
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 11px !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.5) !important;
}
.poly-drawer-section-actions {
    display: inline-flex;
    gap: 6px;
}
body .poly-drawer-section-btn {
    background: transparent !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
    color: rgba(255,255,255,0.55) !important;
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 9px !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 4px 8px !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    transition: all .18s ease !important;
}
body .poly-drawer-section-btn:hover {
    background: rgba(255,255,255,0.04) !important;
    color: #fff !important;
}
body .poly-drawer-section-btn.is-danger:hover {
    color: #f472b6 !important;
    border-color: rgba(244,114,182,0.3) !important;
}

/* Drawer-scoped overrides for the legacy notification rows */
.poly-drawer-notif-list .mfc-notif-group {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.32);
    padding: 8px 0 4px;
}
.poly-drawer-notif-list .mfc-notif-item {
    display: flex !important;
    gap: 10px !important;
    padding: 10px !important;
    margin-bottom: 6px !important;
    border-radius: 9px !important;
    background: rgba(255,255,255,0.022) !important;
    border: 1px solid rgba(255,255,255,0.04) !important;
}
.poly-drawer-notif-list .mfc-notif-item.is-unread {
    border-color: rgba(74,222,128,0.2) !important;
    background: rgba(74,222,128,0.04) !important;
}
.poly-drawer-notif-list .mfc-notif-icon {
    flex: 0 0 28px;
    height: 28px;
    border-radius: 7px;
    background: rgba(255,255,255,0.04) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.poly-drawer-notif-list .mfc-notif-success .mfc-notif-icon { background: rgba(74,222,128,0.16) !important; }
.poly-drawer-notif-list .mfc-notif-warn .mfc-notif-icon { background: rgba(251,191,36,0.16) !important; }
.poly-drawer-notif-list .mfc-notif-info .mfc-notif-icon { background: rgba(96,165,250,0.16) !important; }
.poly-drawer-notif-list .mfc-notif-lock .mfc-notif-icon { background: rgba(148,163,184,0.16) !important; }
.poly-drawer-notif-list .mfc-notif-title {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #f4f4f7 !important;
}
.poly-drawer-notif-list .mfc-notif-time,
.poly-drawer-notif-list .mfc-notif-meta-time {
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 9px !important;
    color: rgba(255,255,255,0.35) !important;
}
.poly-drawer-notif-list .mfc-notif-text {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 11px !important;
    color: rgba(255,255,255,0.62) !important;
    line-height: 1.4 !important;
}
.poly-drawer-notif-list .mfc-notif-category {
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 9px !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
    background: rgba(255,255,255,0.04) !important;
    color: rgba(255,255,255,0.5) !important;
}
.poly-drawer-notif-empty {
    color: rgba(255,255,255,0.35) !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 12px !important;
    text-align: center;
    padding: 28px 14px !important;
}

@media (max-width: 768px) {
    body .poly-drawer-panel > * { padding-left: 16px !important; padding-right: 16px !important; }
    .poly-drawer-hero-stats { grid-template-columns: 1fr; }
    .poly-drawer-grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   Auth (login + register) — marketing-grade split layout
   ========================================================================= */

.poly-auth-shell {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    /* Scrollable column — must NOT use align-items:center because content
       taller than the viewport gets clipped above the top edge. Use
       flex-start (and let inner frame margin-block center the SHORT case). */
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 32px 24px 48px;
    background:
        radial-gradient(ellipse at 30% 18%, rgba(74,222,128,0.10) 0%, transparent 60%),
        radial-gradient(ellipse at 78% 82%, rgba(34,211,238,0.08) 0%, transparent 60%),
        linear-gradient(180deg, #0c1420 0%, #04060c 100%);
    overflow-y: auto;
    overflow-x: hidden;
    color: #f0f0f3;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    z-index: 9999;
    -webkit-overflow-scrolling: touch;
}
/* Hide site chrome (header/footer/admin bar) when auth is on screen */
body:has(.poly-auth-shell) .poly-header-shell,
body:has(.poly-auth-shell) .site-footer,
body:has(.poly-auth-shell) #wpadminbar,
body:has(.poly-auth-shell) .nav-backdrop {
    display: none !important;
}
body:has(.poly-auth-shell) {
    margin: 0 !important;
    padding-top: 0 !important;
    overflow: hidden !important;
    background: #060a10 !important;
}
.poly-auth-shell * { box-sizing: border-box; }
.poly-auth-shell::before { content: none; }

.poly-auth-bg-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(74,222,128,0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(74,222,128,0.06) 1px, transparent 1px);
    background-size: 64px 64px;
    background-position: center;
    mask-image: radial-gradient(ellipse at 50% 30%, #000 0%, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse at 50% 30%, #000 0%, transparent 70%);
    pointer-events: none;
}
.poly-auth-bg-glow {
    position: absolute;
    width: 720px;
    height: 720px;
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.45;
    pointer-events: none;
    mix-blend-mode: screen;
}
.poly-auth-bg-glow-1 {
    background: radial-gradient(circle, #4ade80 0%, transparent 60%);
    top: -260px;
    left: -160px;
    animation: polyAuthGlow1 16s ease-in-out infinite alternate;
}
.poly-auth-bg-glow-2 {
    background: radial-gradient(circle, #f472b6 0%, transparent 60%);
    bottom: -220px;
    right: -180px;
    animation: polyAuthGlow2 18s ease-in-out infinite alternate;
}
@keyframes polyAuthGlow1 {
    from { transform: translate(0, 0) scale(1); }
    to { transform: translate(80px, 60px) scale(1.1); }
}
@keyframes polyAuthGlow2 {
    from { transform: translate(0, 0) scale(1); }
    to { transform: translate(-80px, -50px) scale(1.05); }
}
.poly-auth-bg-noise {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.06 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    opacity: 0.5;
    pointer-events: none;
    mix-blend-mode: overlay;
}

.poly-auth-frame {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1140px;
    margin: auto;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 32px;
    align-items: start;
}
/* Right-column card stays visible while marketing scrolls on desktop */
@media (min-width: 901px) {
    .poly-auth-card {
        position: sticky;
        top: 32px;
        align-self: start;
    }
}

/* ---- Marketing rail ---- */
.poly-auth-marketing {
    position: relative;
    padding: 36px 36px 32px;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,0.022), rgba(255,255,255,0.006));
    border: 1px solid rgba(255,255,255,0.07);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    display: flex;
    flex-direction: column;
    gap: 24px;
    overflow: hidden;
}
.poly-auth-marketing::before {
    content: "";
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    height: 4px;
    background: linear-gradient(90deg, #4ade80, #22d3ee, #f472b6);
    border-radius: 22px 22px 0 0;
    opacity: 0.7;
}
.poly-auth-marketing-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.poly-auth-brand {
    display: inline-flex;
    align-items: center;
}
.poly-auth-brand img {
    height: 36px;
    width: auto;
    filter: drop-shadow(0 4px 12px rgba(74,222,128,0.25));
}
.poly-auth-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(74,222,128,0.08);
    border: 1px solid rgba(74,222,128,0.22);
}
.poly-auth-eyebrow-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.7);
    animation: polyAuthPulse 1.6s ease-out infinite;
}
@keyframes polyAuthPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.55; transform: scale(0.85); }
}

.poly-auth-headline h1 {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: clamp(36px, 5vw, 56px);
    font-weight: 800;
    color: #fff;
    line-height: 1;
    letter-spacing: -0.01em;
    margin: 0 0 12px;
    text-transform: uppercase;
}
.poly-auth-headline h1 em {
    font-style: normal;
    background: linear-gradient(90deg, #4ade80, #22d3ee);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: inline-block;
}
.poly-auth-headline p {
    font-size: 15px;
    color: rgba(255,255,255,0.6);
    margin: 0;
    line-height: 1.5;
    max-width: 38ch;
}

.poly-auth-stats {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.poly-auth-stats li {
    padding: 14px 12px;
    border-radius: 12px;
    background: rgba(255,255,255,0.022);
    border: 1px solid rgba(255,255,255,0.05);
    display: flex;
    flex-direction: column;
    gap: 2px;
    transition: border-color .25s ease, transform .25s ease;
}
.poly-auth-stats li:hover {
    border-color: rgba(74,222,128,0.35);
    transform: translateY(-2px);
}
.poly-auth-stats strong {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 28px;
    font-weight: 800;
    color: #4ade80;
    line-height: 1;
    letter-spacing: 0.005em;
    font-variant-numeric: tabular-nums;
}
.poly-auth-stats span {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
}

.poly-auth-fixtures h3,
.poly-auth-leaders h3 {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.42);
    margin: 0 0 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.poly-auth-fixtures ul,
.poly-auth-leaders ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.poly-auth-fixtures li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 9px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.04);
    font-size: 12px;
}
.poly-auth-fixtures li img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    flex-shrink: 0;
}
.poly-auth-fixture-pair {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-auth-fixture-pair strong {
    color: #f4f4f7;
    font-weight: 600;
    font-size: 12px;
}
.poly-auth-fixture-pair em {
    font-style: normal;
    color: rgba(255,255,255,0.3);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin: 0 4px;
}
.poly-auth-fixture-time {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.5);
    flex-shrink: 0;
}

.poly-auth-leaders ol {
    counter-reset: poly-auth-leader;
}
.poly-auth-leaders li {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 9px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.04);
}
.poly-auth-leader-rank {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    font-weight: 700;
}
.poly-auth-leaders li:first-child .poly-auth-leader-rank { color: #facc15; }
.poly-auth-leaders li:nth-child(2) .poly-auth-leader-rank { color: #cbd5e1; }
.poly-auth-leaders li:nth-child(3) .poly-auth-leader-rank { color: #d97706; }
.poly-auth-leader-name {
    font-size: 13px;
    font-weight: 600;
    color: #f4f4f7;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-auth-leader-points {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 12px;
    font-weight: 700;
    color: #4ade80;
}

/* Auth marketing — live consensus preview block.
   Polymarket-style 3-bar split that teases the in-game data. */
.poly-auth-consensus {
    position: relative;
    padding: 16px 18px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(74,222,128,0.05), rgba(34,211,238,0.04));
    border: 1px solid rgba(74,222,128,0.18);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.poly-auth-consensus::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 14px;
    background:
        radial-gradient(360px 80px at 100% 0%, rgba(34,211,238,0.08), transparent 60%),
        radial-gradient(280px 70px at 0% 100%, rgba(74,222,128,0.08), transparent 60%);
    pointer-events: none;
    opacity: 0.9;
}
.poly-auth-consensus-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: relative;
}
.poly-auth-consensus-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #4ade80;
    font-weight: 700;
}
.poly-auth-consensus-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 12px #4ade80;
    animation: polyAuthCsPulse 1.6s ease-in-out infinite;
}
@keyframes polyAuthCsPulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.4); opacity: 0.55; }
}
.poly-auth-consensus-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: rgba(245,250,247,0.55);
    letter-spacing: 0.04em;
}
.poly-auth-consensus-fixture {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    position: relative;
    font-size: 13px;
    font-weight: 700;
    color: #f0f0f3;
}
.poly-auth-consensus-fixture em {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.4);
    font-weight: 600;
    flex: 0 0 auto;
}
.poly-auth-consensus-team {
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-auth-consensus-team:last-of-type { text-align: right; }
.poly-auth-consensus-bars {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 4px;
    position: relative;
}
.poly-auth-consensus-bar {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    height: 64px;
    border-radius: 8px;
    padding: 6px 4px;
    overflow: hidden;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.04);
}
.poly-auth-consensus-bar::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--pct, 0%);
    background: linear-gradient(180deg, rgba(74,222,128,0.32), rgba(74,222,128,0.16));
    border-radius: 0 0 8px 8px;
    transition: height .8s cubic-bezier(.4,0,.2,1);
}
.poly-auth-consensus-bar.is-home::before {
    background: linear-gradient(180deg, rgba(74,222,128,0.42), rgba(74,222,128,0.18));
}
.poly-auth-consensus-bar.is-draw::before {
    background: linear-gradient(180deg, rgba(251,191,36,0.42), rgba(251,191,36,0.18));
}
.poly-auth-consensus-bar.is-away::before {
    background: linear-gradient(180deg, rgba(244,114,182,0.42), rgba(244,114,182,0.18));
}
.poly-auth-consensus-bar em {
    position: relative;
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    font-weight: 800;
    color: #f0f0f3;
    line-height: 1;
}
.poly-auth-consensus-bar span {
    position: relative;
    margin-top: 2px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.55);
}
.poly-auth-consensus-foot {
    margin: 0;
    font-size: 12px;
    color: rgba(245,250,247,0.55);
    line-height: 1.4;
    position: relative;
}
.poly-auth-consensus-foot strong {
    color: #4ade80;
    font-weight: 700;
}

.poly-auth-trust {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.poly-auth-trust li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 999px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
    font-size: 11px;
    color: rgba(255,255,255,0.7);
}
.poly-auth-trust-icon {
    color: #4ade80;
    font-weight: 800;
}

/* ---- Form card ---- */
.poly-auth-card {
    position: relative;
    padding: 36px 36px 28px;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(14,18,24,0.92), rgba(8,11,16,0.96));
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 32px 80px -24px rgba(0,0,0,0.7);
    display: flex;
    flex-direction: column;
    gap: 18px;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.poly-auth-mode-tabs {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 12px;
    padding: 4px;
}
.poly-auth-mode-tab {
    position: relative;
    z-index: 2;
    padding: 9px 14px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-align: center;
    text-decoration: none;
    color: rgba(255,255,255,0.55);
    border-radius: 8px;
    transition: color .25s ease;
}
.poly-auth-mode-tab.is-active { color: #022; }
.poly-auth-mode-glide {
    position: absolute;
    z-index: 1;
    top: 4px;
    bottom: 4px;
    width: calc(50% - 4px);
    background: linear-gradient(135deg, #4ade80, #22c55e);
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(74,222,128,0.35);
    transition: transform .35s cubic-bezier(.4,0,.2,1);
}
.poly-auth-mode-glide[data-glide-pos="left"] { transform: translateX(0); }
.poly-auth-mode-glide[data-glide-pos="right"] { transform: translateX(calc(100% + 0px)); }

.poly-auth-card-head {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.poly-auth-card-eyebrow {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(74,222,128,0.85);
}
.poly-auth-card-head h2 {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 32px;
    font-weight: 800;
    color: #fff;
    margin: 0;
    line-height: 1.05;
    letter-spacing: 0.005em;
}
.poly-auth-card-head p {
    margin: 0;
    color: rgba(255,255,255,0.55);
    font-size: 13px;
}

.poly-auth-error {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(244, 63, 94, 0.08);
    border: 1px solid rgba(244, 63, 94, 0.32);
    color: #fda4af;
    font-size: 12px;
}
.poly-auth-error-icon {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(244, 63, 94, 0.22);
    color: #fff;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 12px;
}

.poly-auth-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.poly-auth-field { display: flex; flex-direction: column; gap: 5px; }
.poly-auth-field label {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
}
.poly-auth-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 10px;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.poly-auth-input-wrap:focus-within {
    border-color: rgba(74,222,128,0.5);
    box-shadow: 0 0 0 4px rgba(74,222,128,0.1);
    background: rgba(255,255,255,0.04);
}
.poly-auth-input-icon {
    flex-shrink: 0;
    width: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.35);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 14px;
}
.poly-auth-input-wrap input {
    flex: 1;
    background: transparent;
    border: 0;
    outline: 0;
    padding: 12px 14px 12px 0;
    color: #fff;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    min-width: 0;
}
.poly-auth-input-wrap input::placeholder { color: rgba(255,255,255,0.28); }
.poly-auth-input-toggle {
    flex-shrink: 0;
    background: transparent;
    border: 0;
    color: rgba(255,255,255,0.45);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0 14px;
    cursor: pointer;
}
.poly-auth-input-toggle:hover { color: #4ade80; }

.poly-auth-pw-meter {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    margin-top: 6px;
}
.poly-auth-pw-meter span {
    height: 3px;
    border-radius: 2px;
    background: rgba(255,255,255,0.06);
    transition: background .25s ease;
}
.poly-auth-pw-meter[data-score="1"] span:nth-child(-n+1) { background: #f87171; }
.poly-auth-pw-meter[data-score="2"] span:nth-child(-n+2) { background: #fbbf24; }
.poly-auth-pw-meter[data-score="3"] span:nth-child(-n+3) { background: #4ade80; }
.poly-auth-pw-meter[data-score="4"] span { background: #4ade80; }

.poly-auth-helper {
    margin: 4px 0 0;
    font-size: 11px;
    color: rgba(255,255,255,0.4);
}

.poly-auth-field-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: -2px;
}
.poly-auth-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    cursor: pointer;
}
.poly-auth-checkbox input { display: none; }
.poly-auth-checkbox span {
    width: 16px;
    height: 16px;
    border-radius: 4px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.12);
    position: relative;
    transition: all .18s ease;
}
.poly-auth-checkbox input:checked + span {
    background: linear-gradient(135deg, #4ade80, #22c55e);
    border-color: #4ade80;
}
.poly-auth-checkbox input:checked + span::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 1px;
    width: 5px;
    height: 9px;
    border: 2px solid #022;
    border-top: 0;
    border-left: 0;
    transform: rotate(45deg);
}
.poly-auth-helper-link {
    font-size: 12px;
    color: rgba(255,255,255,0.55);
    text-decoration: none;
}
.poly-auth-helper-link:hover { color: #4ade80; }

.poly-auth-cta {
    width: 100%;
    padding: 14px 18px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(135deg, #4ade80, #22c55e);
    color: #022;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow: 0 14px 30px -8px rgba(74,222,128,0.4);
    transition: transform .15s ease, box-shadow .25s ease, filter .25s ease;
    margin-top: 4px;
}
.poly-auth-cta em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 16px;
    transition: transform .2s ease;
}
.poly-auth-cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 20px 40px -10px rgba(74,222,128,0.55);
    filter: brightness(1.05);
}
.poly-auth-cta:hover em { transform: translateX(3px) translateY(-2px); }
.poly-auth-cta:active { transform: scale(0.98); }

.poly-auth-finetext {
    margin: 0;
    font-size: 11px;
    color: rgba(255,255,255,0.36);
    text-align: center;
}

.poly-auth-card-foot {
    margin-top: 4px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,0.05);
    text-align: center;
    font-size: 13px;
    color: rgba(255,255,255,0.55);
}
.poly-auth-card-foot a {
    color: #4ade80;
    font-weight: 700;
    text-decoration: none;
    margin-left: 4px;
}
.poly-auth-card-foot a:hover { color: #86efac; }

/* When page is in register mode: switch the cta gradient to a warmer brand */
.poly-auth-shell[data-mode="register"] .poly-auth-cta {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #1a0a02;
    box-shadow: 0 14px 30px -8px rgba(251,191,36,0.4);
}
.poly-auth-shell[data-mode="register"] .poly-auth-cta:hover {
    box-shadow: 0 20px 40px -10px rgba(251,191,36,0.6);
}
.poly-auth-shell[data-mode="register"] .poly-auth-mode-glide {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    box-shadow: 0 4px 14px rgba(251,191,36,0.35);
}
.poly-auth-shell[data-mode="register"] .poly-auth-mode-tab.is-active { color: #1a0a02; }

/* Hide the legacy mfc-auth-* shell if it ever falls through */
body .mfc-auth-layout { display: none !important; }

@media (max-width: 960px) {
    .poly-auth-frame {
        grid-template-columns: 1fr;
        max-width: 520px;
    }
    .poly-auth-marketing { padding: 28px 24px; gap: 18px; }
    .poly-auth-stats strong { font-size: 22px; }
    .poly-auth-card { padding: 28px 24px; }
}
@media (max-width: 480px) {
    .poly-auth-shell { padding: 24px 12px; }
    .poly-auth-headline h1 { font-size: 32px; }
    .poly-auth-stats { grid-template-columns: 1fr 1fr; }
    .poly-auth-stats li:last-child { display: none; }
    .poly-auth-card { padding: 22px 20px; }
}

/* =========================================================================
   Onboarding flow (post-signup, pre-predictor) — claim handle
   ========================================================================= */

.poly-onboard {
    position: relative;
    width: 100%;
    min-height: calc(100vh - 64px);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 56px 24px 80px;
    background: radial-gradient(ellipse at 50% 0%, #0c1420 0%, #060a10 60%);
    color: #f0f0f3;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    overflow: hidden;
}
.poly-onboard * { box-sizing: border-box; }

.poly-onboard-glow {
    position: absolute;
    width: 640px;
    height: 640px;
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.4;
    pointer-events: none;
    mix-blend-mode: screen;
}
.poly-onboard-glow-1 {
    background: radial-gradient(circle, #4ade80 0%, transparent 60%);
    top: -260px;
    left: -180px;
    animation: polyOnboardGlow1 14s ease-in-out infinite alternate;
}
.poly-onboard-glow-2 {
    background: radial-gradient(circle, #22d3ee 0%, transparent 60%);
    top: -180px;
    right: -200px;
    animation: polyOnboardGlow2 16s ease-in-out infinite alternate;
}
@keyframes polyOnboardGlow1 {
    from { transform: translate(0,0) scale(1); }
    to { transform: translate(60px, 40px) scale(1.08); }
}
@keyframes polyOnboardGlow2 {
    from { transform: translate(0,0) scale(1); }
    to { transform: translate(-60px, 40px) scale(1.05); }
}
.poly-onboard-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(74,222,128,0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(74,222,128,0.05) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: radial-gradient(ellipse at 50% 20%, #000 0%, transparent 65%);
    -webkit-mask-image: radial-gradient(ellipse at 50% 20%, #000 0%, transparent 65%);
    pointer-events: none;
}

.poly-onboard-frame {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 560px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.poly-onboard-head {
    text-align: center;
    margin-bottom: 6px;
}
.poly-onboard-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(74,222,128,0.08);
    border: 1px solid rgba(74,222,128,0.22);
    margin-bottom: 14px;
}
.poly-onboard-eyebrow-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.7);
    animation: polyAuthPulse 1.6s ease-out infinite;
}
.poly-onboard-title {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: clamp(34px, 5.2vw, 52px);
    font-weight: 800;
    color: #fff;
    margin: 0 0 10px;
    line-height: 1;
    letter-spacing: -0.005em;
    text-transform: uppercase;
}
.poly-onboard-title em {
    font-style: normal;
    background: linear-gradient(90deg, #4ade80, #22d3ee);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.poly-onboard-sub {
    font-size: 14px;
    color: rgba(255,255,255,0.6);
    max-width: 44ch;
    margin: 0 auto;
    line-height: 1.5;
}

.poly-onboard-message:not(:empty) {
    padding: 10px 14px;
    border-radius: 10px;
    background: rgba(74, 222, 128, 0.08);
    border: 1px solid rgba(74, 222, 128, 0.3);
    color: #d1fae5;
    font-size: 13px;
    text-align: center;
}
.poly-onboard-message.is-error {
    background: rgba(244, 63, 94, 0.08);
    border-color: rgba(244, 63, 94, 0.32);
    color: #fda4af;
}

.poly-onboard-card {
    position: relative;
    padding: 28px 28px 24px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(14,18,24,0.92), rgba(8,11,16,0.96)) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    box-shadow: 0 32px 80px -24px rgba(0,0,0,0.65);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    color: #f0f0f3 !important;
}
.poly-onboard-card::before {
    content: "";
    position: absolute;
    top: -1px;
    left: 24px;
    right: 24px;
    height: 2px;
    background: linear-gradient(90deg, transparent, #4ade80, #22d3ee, transparent);
    border-radius: 2px;
    opacity: 0.7;
}
.poly-onboard-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.poly-onboard-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.poly-onboard-field label {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
}
.poly-onboard-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 12px;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.poly-onboard-input-wrap:focus-within {
    border-color: rgba(74,222,128,0.5);
    box-shadow: 0 0 0 4px rgba(74,222,128,0.1);
    background: rgba(255,255,255,0.04);
}
.poly-onboard-input-icon {
    flex-shrink: 0;
    width: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.35);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 18px;
}
.poly-onboard-input-wrap input {
    flex: 1;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    padding: 14px 14px 14px 0 !important;
    color: #fff !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 16px !important;
    font-weight: 600;
    min-width: 0;
    box-shadow: none !important;
}
.poly-onboard-input-wrap input::placeholder {
    color: rgba(255,255,255,0.25);
    font-weight: 500;
}
.poly-onboard-input-counter {
    flex-shrink: 0;
    padding: 0 14px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.35);
    transition: color .2s ease;
}
.poly-onboard-input-counter.is-ok { color: #4ade80; }
.poly-onboard-input-counter.is-warn { color: #fbbf24; }
.poly-onboard-helper {
    margin: 0;
    font-size: 11px;
    color: rgba(255,255,255,0.42);
    letter-spacing: 0.005em;
}

.poly-onboard-cta {
    width: 100%;
    padding: 15px 18px;
    border: 0 !important;
    border-radius: 12px;
    background: linear-gradient(135deg, #4ade80, #22c55e) !important;
    color: #022 !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow: 0 14px 30px -8px rgba(74,222,128,0.45) !important;
    transition: transform .15s ease, box-shadow .25s ease, filter .25s ease !important;
    margin-top: 4px;
}
.poly-onboard-cta em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 16px;
    transition: transform .2s ease;
}
.poly-onboard-cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 20px 40px -10px rgba(74,222,128,0.6) !important;
    filter: brightness(1.05);
}
.poly-onboard-cta:hover em { transform: translateX(3px) translateY(-2px); }
.poly-onboard-cta:active { transform: scale(0.98); }
.poly-onboard-cta.is-loading { opacity: 0.7; pointer-events: none; }

.poly-onboard-perks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.poly-onboard-perks li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(255,255,255,0.022);
    border: 1px solid rgba(255,255,255,0.05);
    font-size: 12px;
    color: rgba(255,255,255,0.7);
    line-height: 1.4;
}
.poly-onboard-perks strong {
    display: block;
    color: #f4f4f7;
    font-weight: 700;
    font-size: 12px;
    margin-bottom: 2px;
}
.poly-onboard-perk-dot {
    flex-shrink: 0;
    margin-top: 4px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.6);
}

.poly-onboard-howto {
    border-radius: 12px;
    background: rgba(255,255,255,0.018) !important;
    border: 1px solid rgba(255,255,255,0.05) !important;
    overflow: hidden;
    color: #f0f0f3 !important;
}
.poly-onboard-howto summary {
    list-style: none;
    cursor: pointer;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    transition: background .2s ease;
}
.poly-onboard-howto summary::-webkit-details-marker { display: none; }
.poly-onboard-howto summary:hover { background: rgba(255,255,255,0.025); }
.poly-onboard-howto-label {
    font-size: 13px;
    font-weight: 700;
    color: #f4f4f7;
}
.poly-onboard-howto-tag {
    margin-left: auto;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(74,222,128,0.1);
    border: 1px solid rgba(74,222,128,0.25);
    color: #4ade80;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.poly-onboard-howto-caret {
    color: rgba(255,255,255,0.4);
    transition: transform .25s ease;
}
.poly-onboard-howto[open] .poly-onboard-howto-caret {
    transform: rotate(180deg);
    color: #4ade80;
}
.poly-onboard-howto-body {
    padding: 0 18px 18px;
    color: rgba(255,255,255,0.65);
    font-size: 13px;
    line-height: 1.55;
}
.poly-onboard-howto-body p { margin: 6px 0 10px; }
.poly-onboard-howto-body ol {
    margin: 0;
    padding: 0;
    counter-reset: poly-howto;
    list-style: none;
}
.poly-onboard-howto-body ol li {
    counter-increment: poly-howto;
    padding: 8px 8px 8px 32px;
    position: relative;
    border-radius: 8px;
}
.poly-onboard-howto-body ol li::before {
    content: counter(poly-howto);
    position: absolute;
    left: 8px;
    top: 6px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(74,222,128,0.12);
    color: #4ade80;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

@media (max-width: 640px) {
    .poly-onboard { padding: 32px 16px 80px; }
    .poly-onboard-card { padding: 22px 20px 20px; }
    .poly-onboard-perks { grid-template-columns: 1fr; }
    .poly-onboard-input-counter { display: none; }
}

/* =========================================================================
   Guided onboarding (6-step flow)
   ========================================================================= */

.poly-onboard-guided .poly-onboard-frame { gap: 18px; min-width: 0; }
/* Prevent intrinsic-min-content children (ticker, hero grid) from busting frame max-width */
.poly-onboard-guided .poly-onboard-form,
.poly-onboard-guided .poly-onboard-guided-form,
.poly-onboard-guided .poly-onboard-step,
.poly-onboard-guided .poly-onboard-card { min-width: 0; max-width: 100%; width: 100%; box-sizing: border-box; }
.poly-onboard-guided .poly-onboard-step > * { min-width: 0; max-width: 100%; }

/* Stepper / progress */
.poly-onboard-stepper {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 14px 18px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.05);
    border-radius: 14px;
}
.poly-onboard-stepper-bar {
    position: relative;
    height: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,0.06);
    overflow: hidden;
}
.poly-onboard-stepper-fill {
    position: absolute;
    inset: 0 auto 0 0;
    background: linear-gradient(90deg, #4ade80 0%, #22c55e 50%, #16a34a 100%);
    box-shadow: 0 0 12px rgba(74,222,128,0.5);
    transition: width .45s cubic-bezier(.4,0,.2,1);
}
.poly-onboard-stepper-dots {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 6px;
}
.poly-onboard-stepdot {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 4px 2px;
    cursor: pointer;
    user-select: none;
    transition: opacity .2s ease;
    opacity: 0.45;
}
.poly-onboard-stepdot:hover { opacity: 0.75; }
.poly-onboard-stepdot.is-active,
.poly-onboard-stepdot.is-done { opacity: 1; }
.poly-onboard-stepdot-num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.6);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .25s ease, border-color .25s ease, color .25s ease, transform .2s ease;
}
.poly-onboard-stepdot.is-active .poly-onboard-stepdot-num {
    background: linear-gradient(135deg, #4ade80, #22c55e);
    border-color: #4ade80;
    color: #022;
    transform: scale(1.08);
    box-shadow: 0 6px 18px -4px rgba(74,222,128,0.55);
}
.poly-onboard-stepdot.is-done .poly-onboard-stepdot-num {
    background: rgba(74,222,128,0.18);
    border-color: rgba(74,222,128,0.4);
    color: #4ade80;
}
.poly-onboard-stepdot-label {
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    font-family: 'Plus Jakarta Sans', sans-serif;
    text-align: center;
}
.poly-onboard-stepdot.is-active .poly-onboard-stepdot-label { color: #f4f4f7; }
.poly-onboard-stepper-meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
}
.poly-onboard-stepper-meta span:first-child { color: #4ade80; font-weight: 800; }
.poly-onboard-stepper-meta em { font-style: normal; opacity: 0.5; }

/* Step panels */
.poly-onboard-step {
    display: none;
    animation: poly-step-in .4s cubic-bezier(.4,0,.2,1);
}
.poly-onboard-step.is-active { display: flex; flex-direction: column; gap: 16px; }
@keyframes poly-step-in {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}
.poly-onboard-step-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(74,222,128,0.08);
    border: 1px solid rgba(74,222,128,0.22);
    color: #4ade80;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    align-self: flex-start;
}

/* Welcome step */
.poly-onboard-step-welcome { gap: 18px; }

/* Hero collage — 3 staggered photos with live overlays */
.poly-onboard-hero-collage {
    position: relative;
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    grid-template-rows: 140px;
    gap: 8px;
    margin: -6px 0 4px;
    border-radius: 18px;
    isolation: isolate;
}
.poly-onboard-hero-collage > * { min-width: 0; }
.poly-onboard-hero-img {
    position: relative;
    border-radius: 14px;
    background-size: cover;
    background-position: center;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06), 0 12px 28px -10px rgba(0,0,0,0.6);
    overflow: hidden;
    transition: transform .35s ease;
}
.poly-onboard-hero-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(6,10,16,0) 30%, rgba(6,10,16,0.85) 100%);
}
.poly-onboard-hero-img:hover { transform: translateY(-3px) scale(1.02); }
.poly-onboard-hero-img-1 { animation: poly-hero-float 8s ease-in-out infinite; }
.poly-onboard-hero-img-2 { animation: poly-hero-float 8s ease-in-out infinite -2.6s; }
.poly-onboard-hero-img-3 { animation: poly-hero-float 8s ease-in-out infinite -5.2s; }
@keyframes poly-hero-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}
.poly-onboard-hero-tag {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(239,68,68,0.95);
    color: #fff;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    box-shadow: 0 6px 14px -4px rgba(239,68,68,0.65);
}
.poly-onboard-hero-tag-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
    animation: poly-pulse-dot 1.4s ease-in-out infinite;
}
@keyframes poly-pulse-dot {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.3); }
}
.poly-onboard-hero-tag-meta {
    position: absolute;
    bottom: 10px;
    left: 10px;
    z-index: 2;
    padding: 5px 10px;
    border-radius: 8px;
    background: rgba(6,10,16,0.7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #f4f4f7;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    border: 1px solid rgba(255,255,255,0.08);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: calc(100% - 20px);
}
.poly-onboard-hero-glow {
    position: absolute;
    inset: -20%;
    z-index: -1;
    background: radial-gradient(ellipse at 30% 50%, rgba(74,222,128,0.2), transparent 60%),
                radial-gradient(ellipse at 80% 70%, rgba(34,211,238,0.18), transparent 60%);
    filter: blur(40px);
    pointer-events: none;
}

/* Live activity ticker */
.poly-onboard-ticker {
    width: 100%;
    min-width: 0;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(239,68,68,0.04), rgba(255,255,255,0.012));
    border: 1px solid rgba(239,68,68,0.18);
    overflow: hidden;
}
.poly-onboard-ticker-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    background: rgba(255,255,255,0.02);
}
.poly-onboard-ticker-led {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ef4444;
    box-shadow: 0 0 12px rgba(239,68,68,0.8);
    animation: poly-pulse-dot 1.2s ease-in-out infinite;
}
.poly-onboard-ticker-head strong {
    font-size: 12px;
    font-weight: 800;
    color: #f4f4f7;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.poly-onboard-ticker-head em {
    margin-left: auto;
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
}
.poly-onboard-ticker-rail {
    position: relative;
    width: 100%;
    height: 38px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.poly-onboard-ticker-list {
    list-style: none;
    margin: 0;
    padding: 0 14px;
    display: inline-flex;
    gap: 28px;
    height: 100%;
    align-items: center;
    animation: poly-ticker-scroll 38s linear infinite;
    will-change: transform;
    white-space: nowrap;
}
.poly-onboard-ticker:hover .poly-onboard-ticker-list { animation-play-state: paused; }
@keyframes poly-ticker-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.poly-onboard-ticker-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}
.poly-onboard-ticker-sport { font-size: 14px; line-height: 1; }
.poly-onboard-ticker-text { font-size: 12px; color: rgba(255,255,255,0.7); }
.poly-onboard-ticker-text strong { color: #4ade80; font-weight: 700; margin-right: 4px; }
.poly-onboard-ticker-time {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    color: rgba(255,255,255,0.35);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Online-now stat pill (FOMO) */
.poly-onboard-statpill-live {
    position: relative;
    background: rgba(239,68,68,0.08);
    border-color: rgba(239,68,68,0.28);
    padding-left: 28px;
}
.poly-onboard-statpill-live strong { color: #fca5a5; }
.poly-onboard-statpill-pulse {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ef4444;
    box-shadow: 0 0 10px rgba(239,68,68,0.8);
    animation: poly-pulse-dot 1.2s ease-in-out infinite;
}

/* Top-of-board preview row */
.poly-onboard-leaderprev {
    padding: 12px 14px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(245,158,11,0.06), rgba(74,222,128,0.04));
    border: 1px solid rgba(245,158,11,0.18);
}
.poly-onboard-leaderprev-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.poly-onboard-leaderprev-head span { font-size: 16px; }
.poly-onboard-leaderprev-head strong {
    font-size: 12px;
    font-weight: 800;
    color: #f4f4f7;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.poly-onboard-leaderprev-head em {
    margin-left: auto;
    font-style: normal;
    font-size: 11px;
    color: #fbbf24;
    font-weight: 700;
}
.poly-onboard-leaderprev-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.poly-onboard-leaderprev-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border-radius: 8px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.04);
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.poly-onboard-leaderprev-rank { font-size: 16px; line-height: 1; }
.poly-onboard-leaderprev-nick {
    flex: 1;
    font-size: 12px;
    font-weight: 700;
    color: #f4f4f7;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.poly-onboard-leaderprev-pts {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    font-weight: 800;
    color: #4ade80;
    letter-spacing: 0.04em;
}

.poly-onboard-welcome-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.poly-onboard-welcome-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 14px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015));
    border: 1px solid rgba(255,255,255,0.06);
    transition: transform .25s ease, border-color .25s ease;
    overflow: hidden;
    isolation: isolate;
    min-height: 124px;
    justify-content: flex-end;
}
.poly-onboard-welcome-card-img {
    background-size: cover;
    background-position: center;
}
.poly-onboard-welcome-card-img > .poly-onboard-welcome-icon,
.poly-onboard-welcome-card-img > .poly-onboard-welcome-meta { position: relative; z-index: 2; }
.poly-onboard-welcome-card-veil {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(6,10,16,0.35) 0%, rgba(6,10,16,0.85) 65%, rgba(6,10,16,0.96) 100%);
    transition: background .3s ease;
}
.poly-onboard-welcome-card:hover {
    transform: translateY(-2px);
    border-color: rgba(74,222,128,0.3);
}
.poly-onboard-welcome-card-img:hover .poly-onboard-welcome-card-veil {
    background: linear-gradient(180deg, rgba(6,10,16,0.18) 0%, rgba(6,10,16,0.75) 60%, rgba(6,10,16,0.93) 100%);
}
.poly-onboard-welcome-icon {
    font-size: 28px;
    line-height: 1;
    filter: drop-shadow(0 6px 12px rgba(74,222,128,0.25));
}
.poly-onboard-welcome-meta strong {
    display: block;
    font-size: 13px;
    font-weight: 800;
    color: #f4f4f7;
    margin-bottom: 2px;
}
.poly-onboard-welcome-meta span {
    font-size: 11px;
    color: rgba(255,255,255,0.55);
    line-height: 1.45;
}
.poly-onboard-welcome-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.poly-onboard-statpill {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px 14px;
    border-radius: 12px;
    background: rgba(74,222,128,0.06);
    border: 1px solid rgba(74,222,128,0.18);
}
.poly-onboard-statpill strong {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #4ade80;
    line-height: 1;
}
.poly-onboard-statpill span {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
}

/* Action rows */
.poly-onboard-actions { display: flex; gap: 10px; }
.poly-onboard-actions-split {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}
.poly-onboard-actions .poly-onboard-cta { flex: 1; max-width: none; }
.poly-onboard-actions-split .poly-onboard-cta { flex: 1 1 220px; }
.poly-onboard-back {
    padding: 12px 18px;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    background: rgba(255,255,255,0.02);
    color: rgba(255,255,255,0.7);
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.poly-onboard-back:hover {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.18);
    color: #f4f4f7;
}
.poly-onboard-back em {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-style: normal;
}
.poly-onboard-cta-ghost {
    background: rgba(255,255,255,0.025) !important;
    color: rgba(255,255,255,0.7) !important;
    box-shadow: none !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    flex: 0 0 auto !important;
    padding: 12px 20px !important;
    font-size: 12px !important;
}
.poly-onboard-cta-ghost:hover {
    background: rgba(255,255,255,0.05) !important;
    color: #f4f4f7 !important;
    border-color: rgba(255,255,255,0.18) !important;
    filter: none !important;
    box-shadow: none !important;
}

/* Nickname feedback */
.poly-onboard-nick-feedback {
    min-height: 14px;
    transition: color .2s ease;
}
.poly-onboard-nick-feedback.is-ok { color: #4ade80; }

/* Country grid */
.poly-onboard-country-search-wrap { position: relative; }
.poly-onboard-country-search {
    width: 100%;
    padding: 12px 16px;
    border-radius: 12px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    color: #f4f4f7;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    transition: border-color .2s ease;
}
.poly-onboard-country-search:focus {
    outline: none;
    border-color: rgba(74,222,128,0.4);
    box-shadow: 0 0 0 3px rgba(74,222,128,0.1);
}
.poly-onboard-country-search::placeholder { color: rgba(255,255,255,0.35); }
.poly-onboard-country-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 8px;
    max-height: 320px;
    overflow-y: auto;
    padding-right: 4px;
}
.poly-onboard-country-grid::-webkit-scrollbar { width: 6px; }
.poly-onboard-country-grid::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.1);
    border-radius: 3px;
}
.poly-onboard-country-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
    color: #f4f4f7;
    cursor: pointer;
    transition: transform .15s ease, border-color .2s ease, background .2s ease;
    text-align: left;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.poly-onboard-country-chip:hover {
    transform: translateY(-1px);
    border-color: rgba(74,222,128,0.3);
    background: rgba(74,222,128,0.04);
}
.poly-onboard-country-chip.is-active {
    border-color: #4ade80;
    background: linear-gradient(135deg, rgba(74,222,128,0.18), rgba(74,222,128,0.08));
    box-shadow: 0 6px 18px -4px rgba(74,222,128,0.4);
}
.poly-onboard-country-flag { font-size: 22px; line-height: 1; }
.poly-onboard-country-name {
    flex: 1;
    font-size: 12px;
    font-weight: 600;
    color: #f4f4f7;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.poly-onboard-country-cc {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.4);
}
.poly-onboard-country-chip.is-active .poly-onboard-country-cc { color: #4ade80; }
.poly-onboard-empty {
    margin: 0;
    padding: 12px;
    text-align: center;
    color: rgba(255,255,255,0.4);
    font-size: 12px;
}

/* =========================================================================
   Step 3 — Team picker (replaces country flag selector)
   Search-as-you-type + sport filter + scrollable grid of team chips with
   crests. Selecting a team unlocks the 2x point multiplier when that team
   is in any predicted fixture.
   ========================================================================= */
.poly-onboard-team-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 4px 0 0;
}
.poly-onboard-team-filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.025);
    color: rgba(245,250,247,0.7);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    cursor: pointer;
    transition: all .15s ease;
}
.poly-onboard-team-filter em {
    font-style: normal;
    font-size: 10px;
    color: rgba(245,250,247,0.42);
    background: rgba(0,0,0,0.25);
    padding: 1px 6px;
    border-radius: 999px;
}
.poly-onboard-team-filter:hover {
    border-color: rgba(74,222,128,0.32);
    color: #f0f0f3;
}
.poly-onboard-team-filter.is-active {
    background: rgba(74,222,128,0.12);
    border-color: rgba(74,222,128,0.5);
    color: #4ade80;
}
.poly-onboard-team-filter.is-active em { color: #4ade80; background: rgba(74,222,128,0.18); }

.poly-onboard-team-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.poly-onboard-team-search-icon {
    position: absolute;
    left: 14px;
    color: rgba(255,255,255,0.4);
    pointer-events: none;
}
.poly-onboard-team-search {
    width: 100%;
    padding: 12px 14px 12px 38px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.03);
    color: #f0f0f3;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    font-size: 14px;
    transition: border-color .15s ease, background .15s ease;
}
.poly-onboard-team-search:focus {
    outline: none;
    border-color: rgba(74,222,128,0.5);
    background: rgba(74,222,128,0.04);
}
.poly-onboard-team-search::placeholder { color: rgba(255,255,255,0.32); }

.poly-onboard-team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 8px;
    max-height: 340px;
    overflow-y: auto;
    padding: 4px;
    margin: 0 -4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(74,222,128,0.3) transparent;
}
.poly-onboard-team-grid::-webkit-scrollbar { width: 6px; }
.poly-onboard-team-grid::-webkit-scrollbar-thumb {
    background: rgba(74,222,128,0.25);
    border-radius: 999px;
}
.poly-onboard-team-chip {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.06);
    background: rgba(255,255,255,0.02);
    color: #f0f0f3;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, transform .12s ease;
    min-height: 56px;
}
.poly-onboard-team-chip:hover {
    border-color: rgba(74,222,128,0.32);
    background: rgba(74,222,128,0.04);
    transform: translateY(-1px);
}
.poly-onboard-team-chip.is-active {
    border-color: rgba(74,222,128,0.6);
    background: linear-gradient(135deg, rgba(74,222,128,0.12), rgba(34,211,238,0.06));
    box-shadow: 0 0 0 1px rgba(74,222,128,0.3), 0 8px 24px -8px rgba(74,222,128,0.4);
}
.poly-onboard-team-chip-crest {
    position: relative;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(255,255,255,0.04);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex: 0 0 36px;
}
.poly-onboard-team-chip-crest img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 4px;
}
.poly-onboard-team-chip-fallback {
    display: none;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.04em;
    color: rgba(255,255,255,0.65);
}
.poly-onboard-team-chip-crest.is-fallback .poly-onboard-team-chip-fallback {
    display: inline-flex;
}
.poly-onboard-team-chip-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.poly-onboard-team-chip-meta strong {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.15;
    color: #f0f0f3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.poly-onboard-team-chip-meta em {
    font-style: normal;
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(245,250,247,0.42);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.poly-onboard-team-chip-tick {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1.5px solid rgba(255,255,255,0.18);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    color: transparent;
    transition: all .2s ease;
}
.poly-onboard-team-chip.is-active .poly-onboard-team-chip-tick {
    border-color: #4ade80;
    background: #4ade80;
    color: #04280f;
}

/* Tiny "2x" badge accent on the Ready summary */
.poly-onboard-ready-2x {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 999px;
    background: linear-gradient(90deg, #facc15, #fbbf24);
    color: #1a0a02;
    font-style: normal;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.06em;
    vertical-align: middle;
}

/* Sports grid */
.poly-onboard-sport-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 8px;
}
.poly-onboard-sport-chip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
    color: #f4f4f7;
    cursor: pointer;
    text-align: left;
    transition: transform .15s ease, border-color .2s ease, background .2s ease;
    font-family: 'Plus Jakarta Sans', sans-serif;
    position: relative;
}
.poly-onboard-sport-chip:hover {
    transform: translateY(-1px);
    border-color: rgba(74,222,128,0.3);
    background: rgba(74,222,128,0.04);
}
.poly-onboard-sport-chip.is-active {
    border-color: #4ade80;
    background: linear-gradient(135deg, rgba(74,222,128,0.18), rgba(74,222,128,0.08));
    box-shadow: 0 8px 22px -6px rgba(74,222,128,0.45);
}
.poly-onboard-sport-icon { font-size: 24px; line-height: 1; flex-shrink: 0; }
.poly-onboard-sport-meta {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.poly-onboard-sport-meta strong {
    font-size: 13px;
    font-weight: 700;
    color: #f4f4f7;
}
.poly-onboard-sport-meta em {
    font-style: normal;
    font-size: 10px;
    color: rgba(255,255,255,0.45);
}
.poly-onboard-sport-tick {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    color: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 800;
    flex-shrink: 0;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.poly-onboard-sport-chip.is-active .poly-onboard-sport-tick {
    background: #4ade80;
    border-color: #4ade80;
    color: #022;
}

/* Scoring tiles */
.poly-onboard-score-tiles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.poly-onboard-score-tile {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.012));
    border: 1px solid rgba(255,255,255,0.06);
}
.poly-onboard-score-tile.is-margin { border-color: rgba(245,158,11,0.25); }
.poly-onboard-score-tile.is-streak { border-color: rgba(239,68,68,0.25); }
.poly-onboard-score-tile-head { display: flex; align-items: center; gap: 8px; }
.poly-onboard-score-tile-head strong {
    font-size: 13px;
    font-weight: 800;
    color: #f4f4f7;
}
.poly-onboard-score-badge {
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(74,222,128,0.18);
    color: #4ade80;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    border: 1px solid rgba(74,222,128,0.3);
}
.poly-onboard-score-badge-gold {
    background: rgba(245,158,11,0.18);
    color: #fbbf24;
    border-color: rgba(245,158,11,0.4);
}
.poly-onboard-score-badge-flame {
    background: rgba(239,68,68,0.15);
    color: #fca5a5;
    border-color: rgba(239,68,68,0.4);
}
.poly-onboard-score-tile p {
    margin: 0;
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    line-height: 1.5;
}
.poly-onboard-score-demo {
    padding: 16px 18px;
    border-radius: 14px;
    background: rgba(74,222,128,0.04);
    border: 1px solid rgba(74,222,128,0.18);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.poly-onboard-score-demo-eyebrow {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #4ade80;
}
.poly-onboard-score-demo-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 12px;
    align-items: center;
}
.poly-onboard-score-demo-team {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 14px;
    border-radius: 10px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.05);
}
.poly-onboard-score-demo-team span {
    font-size: 11px;
    color: rgba(255,255,255,0.6);
    font-weight: 600;
}
.poly-onboard-score-demo-team strong {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 26px;
    font-weight: 800;
    color: #f4f4f7;
    line-height: 1;
}
.poly-onboard-score-demo-vs {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: rgba(255,255,255,0.4);
}
.poly-onboard-score-demo-line {
    font-size: 13px;
    color: rgba(255,255,255,0.75);
    line-height: 1.5;
}
.poly-onboard-score-demo-line em { font-style: normal; color: rgba(255,255,255,0.5); }
.poly-onboard-score-demo-line .is-good { color: #4ade80; font-weight: 800; }
.poly-onboard-score-demo-line span {
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    margin-left: 4px;
}

/* Ready step */
.poly-onboard-step-ready { align-items: center; text-align: center; position: relative; overflow: hidden; }
.poly-onboard-ready-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: var(--poly-ready-bg);
    background-size: cover;
    background-position: center;
    opacity: 0.18;
    filter: blur(2px) saturate(1.15);
    pointer-events: none;
}
.poly-onboard-ready-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(6,10,16,0) 0%, rgba(6,10,16,0.6) 60%, rgba(6,10,16,0.95) 100%),
                linear-gradient(180deg, rgba(6,10,16,0.3) 0%, rgba(6,10,16,0.85) 100%);
}
.poly-onboard-step-ready > * { position: relative; z-index: 1; }
.poly-onboard-ready-trophy {
    position: relative;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: radial-gradient(circle at center, rgba(74,222,128,0.22), rgba(74,222,128,0) 70%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 4px auto;
    animation: poly-trophy-pop .65s cubic-bezier(.34,1.56,.64,1);
}
@keyframes poly-trophy-pop {
    0% { transform: scale(0.5); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}
.poly-onboard-ready-trophy-emoji {
    font-size: 60px;
    filter: drop-shadow(0 12px 24px rgba(74,222,128,0.4));
}
.poly-onboard-ready-spark {
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.8);
    animation: poly-spark 1.6s ease-in-out infinite;
}
.poly-onboard-ready-spark-1 { top: 8%; left: 12%; animation-delay: 0s; }
.poly-onboard-ready-spark-2 { top: 18%; right: 6%; animation-delay: .3s; background: #fbbf24; box-shadow: 0 0 8px rgba(251,191,36,0.7); }
.poly-onboard-ready-spark-3 { bottom: 14%; left: 6%; animation-delay: .6s; background: #fca5a5; box-shadow: 0 0 8px rgba(252,165,165,0.7); }
.poly-onboard-ready-spark-4 { bottom: 8%; right: 14%; animation-delay: .9s; }
@keyframes poly-spark {
    0%, 100% { opacity: 0.2; transform: scale(0.8); }
    50% { opacity: 1; transform: scale(1.4); }
}
.poly-onboard-step-ready .poly-onboard-title { text-align: center; }
.poly-onboard-step-ready .poly-onboard-sub { text-align: center; max-width: 440px; margin-left: auto; margin-right: auto; }
.poly-onboard-ready-summary {
    list-style: none;
    margin: 8px auto 4px;
    padding: 14px 18px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    max-width: 440px;
}
.poly-onboard-ready-summary li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    border-bottom: 1px dashed rgba(255,255,255,0.06);
}
.poly-onboard-ready-summary li:last-child { border-bottom: 0; }
.poly-onboard-ready-summary span {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
}
.poly-onboard-ready-summary strong {
    font-size: 13px;
    font-weight: 700;
    color: #f4f4f7;
    text-align: right;
}
.poly-onboard-cta-finish {
    background: linear-gradient(135deg, #4ade80, #22c55e, #16a34a) !important;
    box-shadow: 0 18px 38px -10px rgba(74,222,128,0.55), inset 0 1px 0 rgba(255,255,255,0.2) !important;
}

@media (max-width: 720px) {
    .poly-onboard-stepdot-label { display: none; }
    .poly-onboard-welcome-grid { grid-template-columns: 1fr; }
    .poly-onboard-hero-collage { grid-template-columns: 2fr 1fr; grid-template-rows: 130px 90px; }
    .poly-onboard-hero-img-1 { grid-row: span 2; }
    .poly-onboard-score-tiles { grid-template-columns: 1fr; }
    .poly-onboard-actions-split { flex-direction: column-reverse; }
    .poly-onboard-actions-split .poly-onboard-cta,
    .poly-onboard-actions-split .poly-onboard-back { width: 100%; flex: 1 1 auto; justify-content: center; }
}
@media (max-width: 640px) {
    .poly-onboard-country-grid { max-height: 280px; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
    .poly-onboard-sport-grid { grid-template-columns: 1fr; }
    .poly-onboard-score-demo-row { grid-template-columns: 1fr; gap: 6px; }
    .poly-onboard-score-demo-vs { display: none; }
    .poly-onboard-stepper-meta { display: none; }
    .poly-onboard-hero-collage { grid-template-columns: 1fr 1fr; grid-template-rows: 100px 100px; }
    .poly-onboard-hero-img-1 { grid-column: span 2; grid-row: span 1; }
    .poly-onboard-ticker-head em { display: none; }
    .poly-onboard-leaderprev-head em { display: none; }
    .poly-onboard-welcome-stats .poly-onboard-statpill { padding: 6px 12px 6px 26px; }
    .poly-onboard-welcome-stats .poly-onboard-statpill strong { font-size: 18px; }
}

/* =========================================================================
   Player profile page — full reproject
   ========================================================================= */

.poly-profile {
    position: relative;
    width: 100%;
    min-height: calc(100vh - 64px);
    padding: 40px 24px 80px;
    background: radial-gradient(ellipse at 50% 0%, #0c1420 0%, #060a10 60%);
    color: #f0f0f3;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    overflow: hidden;
}
.poly-profile * { box-sizing: border-box; }
.poly-profile-glow {
    position: absolute;
    width: 700px;
    height: 700px;
    border-radius: 50%;
    filter: blur(140px);
    opacity: 0.4;
    pointer-events: none;
    mix-blend-mode: screen;
}
.poly-profile-glow-1 {
    background: radial-gradient(circle, #4ade80 0%, transparent 60%);
    top: -260px;
    left: -200px;
    animation: polyOnboardGlow1 14s ease-in-out infinite alternate;
}
.poly-profile-glow-2 {
    background: radial-gradient(circle, #f472b6 0%, transparent 60%);
    top: 120px;
    right: -240px;
    animation: polyOnboardGlow2 18s ease-in-out infinite alternate;
}
.poly-profile-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(74,222,128,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(74,222,128,0.04) 1px, transparent 1px);
    background-size: 60px 60px;
    mask-image: radial-gradient(ellipse at 50% 20%, #000 0%, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse at 50% 20%, #000 0%, transparent 70%);
    pointer-events: none;
}

.poly-profile-frame {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Hero */
.poly-profile-hero {
    position: relative;
    padding: 28px 32px;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(14,18,24,0.92), rgba(8,11,16,0.96));
    border: 1px solid rgba(255,255,255,0.07);
    box-shadow: 0 32px 80px -28px rgba(0,0,0,0.6);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    overflow: hidden;
}
.poly-profile-hero::before {
    content: "";
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    height: 4px;
    background: linear-gradient(90deg, #4ade80, #22d3ee, #f472b6);
    border-radius: 22px 22px 0 0;
    opacity: 0.7;
}
.poly-profile-hero-id {
    display: flex;
    align-items: center;
    gap: 18px;
}
.poly-profile-avatar {
    position: relative;
    width: 84px;
    height: 84px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: linear-gradient(135deg, #4ade80, #22c55e);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #022;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 32px;
    font-weight: 800;
    border: 3px solid rgba(255,255,255,0.06);
    box-shadow: 0 14px 28px -8px rgba(74,222,128,0.45);
}
.poly-profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.poly-profile-avatar-ring {
    position: absolute;
    inset: -6px;
    border: 1px dashed rgba(74,222,128,0.45);
    border-radius: 50%;
    pointer-events: none;
    animation: polyAvatarRing 14s linear infinite;
}
.poly-profile-id-meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.poly-profile-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
    align-self: flex-start;
}
.poly-profile-eyebrow-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.7);
    animation: polyAuthPulse 1.6s ease-out infinite;
}
.poly-profile-name {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 800;
    color: #fff;
    margin: 0;
    line-height: 1;
    letter-spacing: 0.005em;
    text-transform: uppercase;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-profile-id-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    color: rgba(255,255,255,0.55);
}

.poly-profile-hero-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}
.poly-profile-hero-stat {
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
    display: flex;
    flex-direction: column;
    gap: 2px;
    transition: border-color .2s ease, transform .2s ease;
}
.poly-profile-hero-stat:hover {
    border-color: rgba(74,222,128,0.35);
    transform: translateY(-2px);
}
.poly-profile-hero-stat span {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.42);
}
.poly-profile-hero-stat strong {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 30px;
    font-weight: 800;
    color: #f8f8fa;
    line-height: 1;
    letter-spacing: 0.005em;
    font-variant-numeric: tabular-nums;
}
.poly-profile-hero-stat.is-points strong { color: #4ade80; }
.poly-profile-hero-stat.is-rank strong { color: #facc15; }
.poly-profile-hero-stat em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.45);
    margin-top: 2px;
}

.poly-profile-cta-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.poly-profile-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    border-radius: 10px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.07);
    color: #f0f0f3;
    text-decoration: none;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    transition: all .2s ease;
}
.poly-profile-cta:hover {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.16);
    transform: translateY(-1px);
}
.poly-profile-cta em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    color: rgba(255,255,255,0.5);
    transition: transform .15s ease, color .15s ease;
}
.poly-profile-cta:hover em { color: #4ade80; transform: translateX(2px); }
.poly-profile-cta.is-primary {
    background: linear-gradient(135deg, #4ade80, #22c55e);
    border-color: rgba(74,222,128,0.55);
    color: #022;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    box-shadow: 0 14px 30px -10px rgba(74,222,128,0.4);
}
.poly-profile-cta.is-primary em { color: #022; }
.poly-profile-cta.is-primary:hover {
    box-shadow: 0 18px 36px -10px rgba(74,222,128,0.55);
    filter: brightness(1.05);
}

/* Insights row */
.poly-profile-insights {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.poly-profile-insight {
    padding: 16px 16px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.008));
    border: 1px solid rgba(255,255,255,0.06);
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: border-color .2s ease, transform .2s ease;
}
.poly-profile-insight:hover {
    border-color: rgba(74,222,128,0.3);
    transform: translateY(-2px);
}
.poly-profile-insight.is-with { border-color: rgba(74,222,128,0.32); background: rgba(74,222,128,0.04); }
.poly-profile-insight.is-contra { border-color: rgba(244,114,182,0.32); background: rgba(244,114,182,0.04); }
.poly-profile-insight-label {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
}
.poly-profile-insight-value {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 36px;
    font-weight: 800;
    color: #f8f8fa;
    line-height: 1;
    letter-spacing: 0.005em;
    font-variant-numeric: tabular-nums;
}
.poly-profile-insight-value em {
    font-style: normal;
    font-size: 18px;
    color: rgba(255,255,255,0.45);
    margin-left: 2px;
    font-weight: 700;
}
.poly-profile-insight-bar {
    height: 5px;
    width: 100%;
    border-radius: 999px;
    background: rgba(255,255,255,0.05);
    overflow: hidden;
}
.poly-profile-insight-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #4ade80, #22c55e);
    transition: width .5s cubic-bezier(.4,0,.2,1);
}
.poly-profile-insight.is-contra .poly-profile-insight-bar span {
    background: linear-gradient(90deg, #f472b6, #ec4899);
}
.poly-profile-insight-meta {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 11px;
    color: rgba(255,255,255,0.45);
}

/* Two-column layout */
.poly-profile-grid-cols {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 16px;
    align-items: start;
}

.poly-profile-card {
    padding: 22px 22px 18px;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(255,255,255,0.022), rgba(255,255,255,0.008));
    border: 1px solid rgba(255,255,255,0.06);
}
.poly-profile-card-head {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 16px;
}
.poly-profile-card-eyebrow {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(74,222,128,0.85);
}
.poly-profile-card-eyebrow.is-amber { color: #fbbf24; }
.poly-profile-card-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #fff;
    margin: 0;
    letter-spacing: 0.005em;
}

.poly-profile-empty {
    text-align: center;
    padding: 28px 12px;
    color: rgba(255,255,255,0.55);
}
.poly-profile-empty p { margin: 0 0 12px; font-size: 13px; }
.poly-profile-empty-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border-radius: 999px;
    background: linear-gradient(135deg, #4ade80, #22c55e);
    color: #022;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: filter .2s ease;
}
.poly-profile-empty-cta:hover { filter: brightness(1.08); }
.poly-profile-empty-line {
    color: rgba(255,255,255,0.4);
    text-align: center;
    margin: 0;
    padding: 14px 0;
    font-size: 12px;
}

.poly-profile-history-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 720px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.1) transparent;
}
.poly-profile-history-list::-webkit-scrollbar { width: 4px; }
.poly-profile-history-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 4px; }
.poly-profile-history-item {
    display: grid;
    grid-template-columns: auto 1fr auto auto auto;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    background: rgba(255,255,255,0.015);
    border: 1px solid rgba(255,255,255,0.04);
    border-left: 3px solid rgba(255,255,255,0.1);
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    transition: background .2s ease;
}
.poly-profile-history-item:hover { background: rgba(255,255,255,0.03); }
.poly-profile-history-item.is-hit { border-left-color: #4ade80; }
.poly-profile-history-item.is-miss { border-left-color: #f87171; }
.poly-profile-history-item.is-pending { border-left-color: #facc15; }
.poly-profile-history-meta {
    flex-shrink: 0;
    min-width: 80px;
}
.poly-profile-history-time {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.45);
}
.poly-profile-history-fixture {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-profile-history-fixture strong {
    font-weight: 600;
    color: #f4f4f7;
    font-size: 13px;
}
.poly-profile-history-fixture em {
    font-style: normal;
    color: rgba(255,255,255,0.3);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.poly-profile-history-pick,
.poly-profile-history-final {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.65);
    flex-shrink: 0;
}
.poly-profile-history-pick span,
.poly-profile-history-final span {
    color: rgba(255,255,255,0.35);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-right: 4px;
}
.poly-profile-history-result {
    flex-shrink: 0;
    padding: 4px 10px;
    border-radius: 999px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.poly-profile-history-result.is-hit {
    background: rgba(74,222,128,0.14);
    color: #4ade80;
    border: 1px solid rgba(74,222,128,0.3);
}
.poly-profile-history-result.is-miss {
    background: rgba(248,113,113,0.1);
    color: #f87171;
    border: 1px solid rgba(248,113,113,0.25);
}
.poly-profile-history-result.is-pending {
    background: rgba(250,204,21,0.08);
    color: #facc15;
    border: 1px solid rgba(250,204,21,0.25);
}
.poly-profile-history-foot {
    margin: 12px 0 0;
    text-align: center;
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}

.poly-profile-side {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.poly-profile-side-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 320px;
    overflow-y: auto;
}
.poly-profile-side-list li {
    position: relative;
    padding: 10px 14px;
    border-radius: 9px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.04);
}
.poly-profile-side-title {
    font-size: 12px;
    color: #f4f4f7;
    font-weight: 600;
    margin-bottom: 2px;
    padding-right: 50px;
}
.poly-profile-side-meta {
    font-size: 11px;
    color: rgba(255,255,255,0.55);
    padding-right: 50px;
}
.poly-profile-side-meta span {
    color: rgba(255,255,255,0.35);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-right: 3px;
}
.poly-profile-side-pts {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    padding: 3px 9px;
    border-radius: 999px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    font-weight: 700;
}
.poly-profile-side-pts.is-hit {
    background: rgba(74,222,128,0.14);
    color: #4ade80;
    border: 1px solid rgba(74,222,128,0.3);
}
.poly-profile-side-pts.is-miss {
    background: rgba(255,255,255,0.04);
    color: rgba(255,255,255,0.4);
    border: 1px solid rgba(255,255,255,0.06);
}

.poly-profile-mvp-card {
    background: linear-gradient(180deg, rgba(251,191,36,0.06), rgba(251,191,36,0.015));
    border-color: rgba(251,191,36,0.18);
}
.poly-profile-mvp-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.poly-profile-mvp-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(251,191,36,0.06);
    border: 1px solid rgba(251,191,36,0.18);
}
.poly-profile-mvp-rank {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, #fbbf24, #d97706);
    color: #1a0a02;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.poly-profile-mvp-body strong {
    display: block;
    color: #fde68a;
    font-size: 12px;
    font-weight: 700;
}
.poly-profile-mvp-body span {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    color: rgba(251,191,36,0.7);
}

@media (max-width: 1024px) {
    .poly-profile-hero-stats { grid-template-columns: 1fr 1fr; }
    .poly-profile-insights { grid-template-columns: 1fr 1fr; }
    .poly-profile-grid-cols { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .poly-profile { padding: 24px 12px 60px; }
    .poly-profile-hero { padding: 22px 18px; }
    .poly-profile-hero-stats { grid-template-columns: 1fr 1fr; gap: 8px; }
    .poly-profile-insight-value { font-size: 28px; }
    .poly-profile-history-item { grid-template-columns: 1fr auto; gap: 6px; }
    .poly-profile-history-meta,
    .poly-profile-history-fixture { grid-column: 1 / -1; min-width: 0; }
    .poly-profile-mvp-list { grid-template-columns: 1fr; }
}

/* =========================================================================
   How it works — floating launcher + slide-out drawer (desktop) / sheet (mobile)
   ========================================================================= */

/* Lock body scroll when panel is open */
body.poly-howto-locked { overflow: hidden; }

/* Floating launch button (FAB) */
.poly-howto-fab {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 9300;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px 12px 14px;
    border: 1px solid rgba(74,222,128,0.45);
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(8,12,18,0.95), rgba(14,20,30,0.92));
    color: #f4f4f7;
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 18px 38px -12px rgba(0,0,0,0.6), 0 0 0 4px rgba(74,222,128,0.06);
    transition: transform .2s ease, border-color .25s ease, box-shadow .25s ease;
    isolation: isolate;
}
.poly-howto-fab:hover {
    transform: translateY(-2px);
    border-color: #4ade80;
    box-shadow: 0 22px 44px -12px rgba(0,0,0,0.7), 0 0 0 6px rgba(74,222,128,0.12);
}
.poly-howto-fab:active { transform: scale(0.98); }
.poly-howto-fab-icon {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, #4ade80, #22c55e);
    color: #022;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 6px 16px -4px rgba(74,222,128,0.5);
}
.poly-howto-fab-pulse {
    position: absolute;
    inset: -4px;
    border-radius: 999px;
    border: 2px solid rgba(74,222,128,0.55);
    animation: poly-howto-fab-pulse 2.4s ease-out infinite;
    pointer-events: none;
    z-index: -1;
}
@keyframes poly-howto-fab-pulse {
    0% { transform: scale(0.92); opacity: 0.8; }
    100% { transform: scale(1.18); opacity: 0; }
}

/* Backdrop */
.poly-howto-backdrop {
    position: fixed;
    inset: 0;
    z-index: 9400;
    background: rgba(2,4,8,0.55);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s ease;
}
.poly-howto-backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
}

/* Slide-out panel */
.poly-howto-panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 9500;
    width: min(540px, 100vw);
    max-width: 100vw;
    background: linear-gradient(180deg, rgba(14,18,24,0.98), rgba(8,11,16,0.99));
    border-left: 1px solid rgba(74,222,128,0.18);
    box-shadow: -32px 0 80px -20px rgba(0,0,0,0.7);
    color: #f0f0f3;
    font-family: 'Plus Jakarta Sans', sans-serif;
    transform: translateX(100%);
    transition: transform .4s cubic-bezier(.4,0,.2,1);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.poly-howto-panel.is-open { transform: translateX(0); }
.poly-howto-panel[hidden] { display: none; }
.poly-howto-grab {
    display: none;
}

/* Header */
.poly-howto-head {
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px 16px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    background: linear-gradient(180deg, rgba(74,222,128,0.04), transparent);
}
.poly-howto-head-left {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.poly-howto-head-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(74,222,128,0.1);
    border: 1px solid rgba(74,222,128,0.25);
    color: #4ade80;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    align-self: flex-start;
}
.poly-howto-head-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.7);
    animation: poly-pulse-dot 1.6s ease-in-out infinite;
}
.poly-howto-head-title {
    margin: 0;
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 28px;
    font-weight: 800;
    color: #fff;
    letter-spacing: 0.005em;
    text-transform: uppercase;
    line-height: 1;
}
.poly-howto-head-tag {
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.6);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    align-self: flex-start;
}
.poly-howto-close {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.025);
    color: rgba(255,255,255,0.7);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .2s ease, border-color .2s ease, color .2s ease, transform .15s ease;
}
.poly-howto-close:hover {
    background: rgba(239,68,68,0.12);
    border-color: rgba(239,68,68,0.4);
    color: #fca5a5;
    transform: rotate(90deg);
}

/* Body — single-column scrolling drawer */
.poly-howto-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 18px 22px 22px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.poly-howto-body::-webkit-scrollbar { width: 6px; }
.poly-howto-body::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 3px; }

/* Footer */
.poly-howto-foot {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 14px;
    border-top: 1px solid rgba(255,255,255,0.06);
}
.poly-howto-foot-cta {
    width: 100%;
    padding: 14px 18px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(135deg, #4ade80, #22c55e);
    color: #022;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 12px 28px -8px rgba(74,222,128,0.5);
    transition: transform .15s ease, filter .2s ease, box-shadow .2s ease;
}
.poly-howto-foot-cta:hover {
    transform: translateY(-1px);
    filter: brightness(1.05);
    box-shadow: 0 18px 36px -10px rgba(74,222,128,0.6);
}
.poly-howto-foot-cta:active { transform: scale(0.98); }

.poly-howto-hero {
    padding: 16px 18px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(74,222,128,0.08), rgba(34,211,238,0.04));
    border: 1px solid rgba(74,222,128,0.18);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.poly-howto-hero-eyebrow {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(74,222,128,0.85);
}
.poly-howto-hero-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: clamp(22px, 3vw, 28px);
    font-weight: 800;
    color: #fff;
    margin: 0;
    line-height: 1.05;
    letter-spacing: -0.005em;
    text-transform: uppercase;
}
.poly-howto-hero-sub {
    margin: 0;
    color: rgba(255,255,255,0.6);
    font-size: 13px;
}

.poly-howto-steps {
    grid-column: 1 / 2;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.poly-howto-steps li {
    display: flex;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.05);
    align-items: flex-start;
}
.poly-howto-step-num {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: linear-gradient(135deg, #4ade80, #22c55e);
    color: #022;
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 18px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.poly-howto-steps strong {
    display: block;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 3px;
}
.poly-howto-steps p {
    margin: 0;
    color: rgba(255,255,255,0.6);
    font-size: 12px;
    line-height: 1.5;
}
.poly-howto-steps em {
    font-style: normal;
    color: #4ade80;
    font-weight: 700;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
}

.poly-howto-scoring {
    grid-column: 2 / 3;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.05);
}
.poly-howto-scoring-eyebrow {
    display: block;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
    margin-bottom: 10px;
}
.poly-howto-scoring-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.poly-howto-scoring-tile {
    padding: 12px;
    border-radius: 10px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.05);
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.poly-howto-scoring-tile.is-exact { border-color: rgba(74,222,128,0.3); background: rgba(74,222,128,0.04); }
.poly-howto-scoring-tile.is-outcome { border-color: rgba(96,165,250,0.3); background: rgba(96,165,250,0.04); }
.poly-howto-scoring-tile.is-streak { border-color: rgba(251,191,36,0.3); background: rgba(251,191,36,0.04); }
.poly-howto-scoring-tile.is-mvp { border-color: rgba(244,114,182,0.3); background: rgba(244,114,182,0.04); }
.poly-howto-scoring-pts {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    color: #fff;
}
.poly-howto-scoring-tile.is-exact .poly-howto-scoring-pts { color: #4ade80; }
.poly-howto-scoring-tile.is-outcome .poly-howto-scoring-pts { color: #60a5fa; }
.poly-howto-scoring-tile.is-streak .poly-howto-scoring-pts { color: #fbbf24; }
.poly-howto-scoring-tile.is-mvp .poly-howto-scoring-pts { color: #f472b6; }
.poly-howto-scoring-tile strong {
    color: #f4f4f7;
    font-size: 13px;
    font-weight: 700;
}
.poly-howto-scoring-tile em {
    font-style: normal;
    color: rgba(255,255,255,0.5);
    font-size: 11px;
    line-height: 1.4;
}

.poly-howto-legend,
.poly-howto-tips {
    grid-column: span 1;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.05);
}
.poly-howto-legend-eyebrow,
.poly-howto-tips-eyebrow {
    display: block;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
    margin-bottom: 10px;
}
.poly-howto-legend ul,
.poly-howto-tips ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.poly-howto-legend li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: rgba(255,255,255,0.65);
}
.poly-howto-legend strong { color: #f4f4f7; font-weight: 700; }
.poly-howto-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.poly-howto-legend-dot.is-open { background: rgba(255,255,255,0.4); }
.poly-howto-legend-dot.is-picked { background: #4ade80; box-shadow: 0 0 6px rgba(74,222,128,0.6); }
.poly-howto-legend-dot.is-locked { background: #facc15; }
.poly-howto-legend-dot.is-final { background: #60a5fa; }
.poly-howto-tips li {
    padding: 8px 12px;
    border-radius: 8px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.04);
    font-size: 12px;
    color: rgba(255,255,255,0.62);
    line-height: 1.5;
}
.poly-howto-tips strong { color: #4ade80; font-weight: 700; }

.poly-howto-fine {
    grid-column: 1 / -1;
    margin: 4px 0 0;
    text-align: center;
    font-size: 11px;
    color: rgba(255,255,255,0.36);
}

@media (max-width: 880px) {
    .poly-howto-body { grid-template-columns: 1fr; }
    .poly-howto-steps,
    .poly-howto-scoring,
    .poly-howto-legend,
    .poly-howto-tips { grid-column: auto; }
    .poly-howto-scoring-tiles { grid-template-columns: 1fr; }
}

/* Hide the legacy mfc-how-basic-* classes to avoid double-rendering anywhere */
body .mfc-how-basic-panel { display: none !important; }

/* =========================================================================
   Leaderboard reproject
   ========================================================================= */

.poly-board {
    position: relative;
    width: 100%;
    min-height: calc(100vh - 64px);
    padding: 56px 24px 100px;
    background: radial-gradient(ellipse at 50% 0%, #0c1420 0%, #060a10 60%);
    color: #f0f0f3;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    overflow: hidden;
}
.poly-board * { box-sizing: border-box; }
.poly-board-glow {
    position: absolute;
    width: 700px;
    height: 700px;
    border-radius: 50%;
    filter: blur(140px);
    opacity: 0.4;
    pointer-events: none;
    mix-blend-mode: screen;
}
.poly-board-glow-1 {
    background: radial-gradient(circle, #facc15 0%, transparent 60%);
    top: -260px;
    left: -200px;
    animation: polyOnboardGlow1 16s ease-in-out infinite alternate;
}
.poly-board-glow-2 {
    background: radial-gradient(circle, #4ade80 0%, transparent 60%);
    top: 100px;
    right: -240px;
    animation: polyOnboardGlow2 18s ease-in-out infinite alternate;
}
.poly-board-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(74,222,128,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(74,222,128,0.04) 1px, transparent 1px);
    background-size: 60px 60px;
    mask-image: radial-gradient(ellipse at 50% 20%, #000 0%, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse at 50% 20%, #000 0%, transparent 70%);
    pointer-events: none;
}
.poly-board-frame {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

/* Hero */
.poly-board-hero {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
}
.poly-board-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(250,204,21,0.08);
    border: 1px solid rgba(250,204,21,0.22);
}
.poly-board-eyebrow-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #facc15;
    box-shadow: 0 0 8px rgba(250,204,21,0.7);
    animation: polyAuthPulse 1.6s ease-out infinite;
}
.poly-board-title {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: clamp(40px, 6vw, 64px);
    font-weight: 800;
    color: #fff;
    margin: 0;
    line-height: 0.95;
    letter-spacing: -0.005em;
    text-transform: uppercase;
}
.poly-board-title em {
    font-style: normal;
    background: linear-gradient(90deg, #facc15, #f59e0b);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.poly-board-sub {
    font-size: 14px;
    color: rgba(255,255,255,0.55);
    margin: 0;
    max-width: 50ch;
}

.poly-board-tabs {
    display: inline-flex;
    gap: 6px;
    margin-top: 8px;
    padding: 4px;
    border-radius: 12px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
}
.poly-board-tab {
    padding: 9px 16px;
    border-radius: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    color: rgba(255,255,255,0.55);
    transition: all .2s ease;
}
.poly-board-tab:hover { color: #fff; background: rgba(255,255,255,0.04); }
.poly-board-tab.is-active {
    background: linear-gradient(135deg, #facc15, #f59e0b);
    color: #1a0a02;
    box-shadow: 0 6px 16px -6px rgba(250,204,21,0.45);
}

/* You strip */
.poly-board-you {
    display: grid;
    grid-template-columns: auto repeat(3, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 18px 20px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(74,222,128,0.06), rgba(74,222,128,0.015));
    border: 1px solid rgba(74,222,128,0.2);
}
.poly-board-you-rank {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-right: 16px;
    border-right: 1px solid rgba(255,255,255,0.06);
}
.poly-board-you-rank-label {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #4ade80;
    font-weight: 700;
}
.poly-board-you-rank-value {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 36px;
    font-weight: 800;
    color: #fff;
    line-height: 1;
}
.poly-board-you-rank em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.45);
}
.poly-board-you-stat span {
    display: block;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
    margin-bottom: 4px;
}
.poly-board-you-stat strong {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #f4f4f7;
    line-height: 1;
}
.poly-board-you-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 11px 18px;
    border-radius: 10px;
    background: linear-gradient(135deg, #4ade80, #22c55e);
    color: #022;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: all .2s ease;
}
.poly-board-you-cta em { font-style: normal; font-family: 'JetBrains Mono', monospace; }
.poly-board-you-cta:hover { filter: brightness(1.08); transform: translateY(-1px); }

/* Podium */
.poly-board-podium {
    display: grid;
    grid-template-columns: 1fr 1.15fr 1fr;
    gap: 16px;
    align-items: end;
}
.poly-board-podium-card {
    position: relative;
    padding: 24px 20px 28px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.005));
    border: 1px solid rgba(255,255,255,0.06);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    overflow: hidden;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.poly-board-podium-card[data-rank="1"] {
    padding: 36px 20px 36px;
    transform: translateY(-12px);
}
.poly-board-podium-card.is-gold {
    background: linear-gradient(180deg, rgba(250,204,21,0.12), rgba(250,204,21,0.02));
    border-color: rgba(250,204,21,0.45);
    box-shadow: 0 24px 60px -22px rgba(250,204,21,0.4);
}
.poly-board-podium-card.is-silver {
    background: linear-gradient(180deg, rgba(203,213,225,0.08), rgba(203,213,225,0.02));
    border-color: rgba(203,213,225,0.32);
}
.poly-board-podium-card.is-bronze {
    background: linear-gradient(180deg, rgba(217,119,6,0.08), rgba(217,119,6,0.02));
    border-color: rgba(217,119,6,0.32);
}
.poly-board-podium-card::before {
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    height: 4px;
    border-radius: 18px 18px 0 0;
    background: linear-gradient(90deg, transparent, currentColor, transparent);
    opacity: 0.55;
}
.poly-board-podium-card.is-gold::before { color: #facc15; }
.poly-board-podium-card.is-silver::before { color: #cbd5e1; }
.poly-board-podium-card.is-bronze::before { color: #d97706; }
.poly-board-podium-rank {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
}
.poly-board-podium-card.is-gold .poly-board-podium-rank {
    color: #facc15;
    border-color: rgba(250,204,21,0.32);
    background: rgba(250,204,21,0.08);
}
.poly-board-podium-card.is-silver .poly-board-podium-rank {
    color: #cbd5e1;
    border-color: rgba(203,213,225,0.3);
    background: rgba(203,213,225,0.06);
}
.poly-board-podium-card.is-bronze .poly-board-podium-rank {
    color: #d97706;
    border-color: rgba(217,119,6,0.3);
    background: rgba(217,119,6,0.06);
}
.poly-board-podium-avatar {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    overflow: hidden;
    background: rgba(255,255,255,0.06);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 32px;
    font-weight: 800;
    color: rgba(255,255,255,0.85);
    border: 3px solid rgba(255,255,255,0.08);
}
.poly-board-podium-card[data-rank="1"] .poly-board-podium-avatar {
    width: 100px;
    height: 100px;
    border-color: rgba(250,204,21,0.5);
    box-shadow: 0 16px 32px -10px rgba(250,204,21,0.55);
}
.poly-board-podium-avatar img { width: 100%; height: 100%; object-fit: cover; }
.poly-board-podium-name {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #fff;
    margin: 0;
    letter-spacing: 0.005em;
    text-transform: uppercase;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.poly-board-podium-points {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.07);
}
.poly-board-podium-points strong {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 16px;
    font-weight: 800;
    color: #fff;
    letter-spacing: 0.005em;
}
.poly-board-podium-points em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.5);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}
.poly-board-podium-card.is-gold .poly-board-podium-points {
    background: rgba(250,204,21,0.1);
    border-color: rgba(250,204,21,0.32);
}
.poly-board-podium-card.is-gold .poly-board-podium-points strong { color: #facc15; }
.poly-board-podium-crown {
    position: absolute;
    top: -18px;
    font-size: 32px;
    filter: drop-shadow(0 4px 8px rgba(250,204,21,0.6));
}

/* Table */
.poly-board-table-wrap {
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(14,18,24,0.92), rgba(8,11,16,0.96));
    border: 1px solid rgba(255,255,255,0.07);
    overflow: hidden;
}
.poly-board-table-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 22px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}
.poly-board-table-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 22px;
    font-weight: 800;
    margin: 0;
    color: #fff;
    letter-spacing: 0.005em;
}
.poly-board-table-search {
    position: relative;
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 10px;
    padding: 0 4px 0 0;
    width: min(280px, 50vw);
}
.poly-board-table-search-icon {
    width: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.4);
    flex-shrink: 0;
}
.poly-board-table-search input {
    flex: 1;
    background: transparent;
    border: 0;
    outline: 0;
    padding: 9px 8px 9px 0;
    color: #fff;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    min-width: 0;
}
.poly-board-table-search:focus-within {
    border-color: rgba(250,204,21,0.4);
    box-shadow: 0 0 0 4px rgba(250,204,21,0.1);
}

.poly-board-table-shell { padding: 6px 6px 14px; }
.poly-board-table-row {
    display: grid;
    grid-template-columns: 60px 1fr auto 60px;
    gap: 16px;
    align-items: center;
    padding: 12px 16px;
    border-radius: 10px;
    transition: background .15s ease;
}
.poly-board-table-row:not(.poly-board-table-row-head):hover { background: rgba(255,255,255,0.025); }
.poly-board-table-row-head {
    padding: 10px 16px;
    background: transparent;
}
.poly-board-table-row-head span {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    font-weight: 600;
}
.poly-board-cell-rank {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: rgba(255,255,255,0.55);
    text-align: center;
}
.poly-board-table-row.is-gold .poly-board-cell-rank { color: #facc15; }
.poly-board-table-row.is-silver .poly-board-cell-rank { color: #cbd5e1; }
.poly-board-table-row.is-bronze .poly-board-cell-rank { color: #d97706; }
.poly-board-table-row.is-self {
    background: rgba(74,222,128,0.06);
    border: 1px dashed rgba(74,222,128,0.32);
}
.poly-board-cell-player {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.poly-board-player-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.08);
}
.poly-board-player-avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-weight: 700;
    color: rgba(255,255,255,0.7);
    font-size: 13px;
}
.poly-board-player-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #f4f4f7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.poly-board-self-tag {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    color: #4ade80;
    background: rgba(74,222,128,0.12);
    border: 1px solid rgba(74,222,128,0.3);
    padding: 2px 6px;
    border-radius: 4px;
}
.poly-board-cell-points {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    justify-content: flex-end;
}
.poly-board-cell-points strong {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    font-variant-numeric: tabular-nums;
}
.poly-board-cell-points em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.4);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.poly-board-cell-trend {
    text-align: center;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 14px;
    font-weight: 700;
}
.poly-board-cell-trend.trend-up { color: #4ade80; }
.poly-board-cell-trend.trend-down { color: #f87171; }
.poly-board-cell-trend.trend-flat { color: rgba(255,255,255,0.3); }
.poly-board-empty {
    padding: 40px;
    text-align: center;
    color: rgba(255,255,255,0.45);
    font-size: 13px;
}

@media (max-width: 880px) {
    .poly-board-podium { grid-template-columns: 1fr; gap: 12px; }
    .poly-board-podium-card[data-rank="1"] { transform: none; padding: 28px 20px; order: -1; }
    .poly-board-you {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    .poly-board-you-rank {
        grid-column: 1 / -1;
        padding-right: 0;
        border-right: 0;
        padding-bottom: 12px;
        border-bottom: 1px solid rgba(255,255,255,0.06);
    }
    .poly-board-you-cta { grid-column: 1 / -1; justify-content: center; }
    .poly-board-table-row { grid-template-columns: 40px 1fr auto 40px; gap: 8px; padding: 10px 12px; }
    .poly-board-cell-rank { font-size: 18px; }
}

/* =========================================================================
   Homepage — image-rich landing
   ========================================================================= */
body .poly-home {
    background: #060a10;
    color: #f0f0f3;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    overflow: hidden;
}
.poly-home * { box-sizing: border-box; }

.poly-home-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.85);
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(74,222,128,0.1);
    border: 1px solid rgba(74,222,128,0.32);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.poly-home-eyebrow-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 8px rgba(74,222,128,0.8);
    animation: polyAuthPulse 1.6s ease-out infinite;
}

.poly-home-section-eyebrow {
    display: inline-block;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #4ade80;
    margin-bottom: 8px;
    font-weight: 700;
}
.poly-home-section-eyebrow.is-pink { color: #f472b6; }
.poly-home-section-eyebrow.is-amber { color: #facc15; }
.poly-home-section-head {
    text-align: center;
    margin: 0 auto 32px;
    max-width: 720px;
}
.poly-home-section-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 800;
    color: #fff;
    margin: 0 0 8px;
    line-height: 1;
    letter-spacing: -0.005em;
    text-transform: uppercase;
}
.poly-home-section-sub {
    color: rgba(255,255,255,0.55);
    font-size: 14px;
    margin: 0;
}

/* Buttons */
.poly-home-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 22px;
    border-radius: 12px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    transition: all .2s ease;
    cursor: pointer;
}
.poly-home-btn.is-primary {
    background: linear-gradient(135deg, #4ade80, #22c55e);
    color: #022;
    box-shadow: 0 14px 30px -10px rgba(74,222,128,0.45);
}
.poly-home-btn.is-primary:hover { filter: brightness(1.08); transform: translateY(-2px); box-shadow: 0 20px 40px -12px rgba(74,222,128,0.6); }
.poly-home-btn.is-amber {
    background: linear-gradient(135deg, #facc15, #f59e0b);
    color: #1a0a02;
    box-shadow: 0 14px 30px -10px rgba(250,204,21,0.45);
}
.poly-home-btn.is-amber:hover { filter: brightness(1.08); transform: translateY(-2px); }
.poly-home-btn.is-ghost {
    background: rgba(255,255,255,0.05);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.12);
}
.poly-home-btn.is-ghost:hover { background: rgba(255,255,255,0.1); }
.poly-home-btn.is-lg { padding: 16px 30px; font-size: 14px; }
.poly-home-btn em {
    font-style: normal;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 14px;
}

/* HERO */
.poly-home-hero {
    position: relative;
    min-height: 660px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 120px 24px 80px;
    overflow: hidden;
}
.poly-home-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.poly-home-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.7) brightness(0.4);
}
.poly-home-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(6,10,16,0.4) 0%, rgba(6,10,16,0.85) 70%, #060a10 100%);
}
.poly-home-hero-grain {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence baseFrequency='0.85'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    mix-blend-mode: overlay;
    opacity: 0.5;
}
.poly-home-hero-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 980px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}
.poly-home-headline {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: clamp(48px, 8vw, 100px);
    font-weight: 800;
    color: #fff;
    margin: 0;
    line-height: 0.92;
    letter-spacing: -0.01em;
    text-transform: uppercase;
}
.poly-home-headline span {
    display: block;
    color: #fff;
}
.poly-home-headline em {
    display: block;
    font-style: normal;
    background: linear-gradient(90deg, #4ade80, #22d3ee);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.poly-home-sub {
    font-size: 16px;
    color: rgba(255,255,255,0.7);
    margin: 0;
    max-width: 60ch;
    line-height: 1.5;
}
.poly-home-hero-cta {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 6px;
}
.poly-home-hero-stats {
    list-style: none;
    margin: 24px 0 0;
    padding: 14px 22px;
    display: grid;
    grid-template-columns: repeat(4, auto);
    gap: 28px;
    border-radius: 14px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.poly-home-hero-stats li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.poly-home-hero-stats strong {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 28px;
    font-weight: 800;
    color: #4ade80;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.poly-home-hero-stats span {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
}

/* FEATURE next match */
.poly-home-feature {
    padding: 60px 24px;
    max-width: 1180px;
    margin: 0 auto;
}
.poly-home-feature-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-radius: 22px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(14,18,24,0.92), rgba(8,11,16,0.96));
    border: 1px solid rgba(255,255,255,0.07);
    box-shadow: 0 32px 80px -24px rgba(0,0,0,0.6);
}
.poly-home-feature-art {
    position: relative;
    min-height: 320px;
}
.poly-home-feature-art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    inset: 0;
}
.poly-home-feature-art-fade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 50%, rgba(14,18,24,0.92) 100%);
}
.poly-home-feature-body {
    padding: 36px 32px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    justify-content: center;
}
.poly-home-feature-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 32px;
    font-weight: 800;
    color: #fff;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.005em;
}
.poly-home-feature-fixture {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.poly-home-feature-team {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.poly-home-feature-team img { width: 36px; height: 36px; object-fit: contain; }
.poly-home-feature-team strong {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #f4f4f7;
}
.poly-home-feature-vs {
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    color: rgba(255,255,255,0.55);
}
.poly-home-feature-time {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 13px;
    color: rgba(255,255,255,0.6);
}
.poly-home-feature-cta { align-self: flex-start; margin-top: 6px; }

/* SPORTS gallery */
.poly-home-sports {
    padding: 60px 24px;
    max-width: 1180px;
    margin: 0 auto;
}
.poly-home-sports-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
.poly-home-sport-card {
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    transition: transform .35s cubic-bezier(.4,0,.2,1);
    border: 1px solid rgba(255,255,255,0.05);
}
.poly-home-sport-card.is-soon {
    cursor: default;
    pointer-events: none;
}
.poly-home-sport-card.is-soon img { filter: saturate(0.4) brightness(0.55); }
.poly-home-sport-card.is-soon::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(6,10,16,0.25);
}
.poly-home-sport-card:hover { transform: translateY(-6px); }
.poly-home-sport-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .55s cubic-bezier(.4,0,.2,1), filter .25s ease;
}
.poly-home-sport-card:hover img { transform: scale(1.06); }
.poly-home-sport-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(6,10,16,0) 30%, rgba(6,10,16,0.9) 100%);
}
.poly-home-sport-meta {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.poly-home-sport-meta h3 {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 24px;
    font-weight: 800;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.005em;
}
.poly-home-sport-meta p {
    margin: 0;
    color: rgba(255,255,255,0.65);
    font-size: 12px;
}
.poly-home-sport-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 9px;
    border-radius: 999px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
    width: fit-content;
    margin-bottom: 4px;
}
.poly-home-sport-tag.is-live { background: rgba(74,222,128,0.18); color: #4ade80; border: 1px solid rgba(74,222,128,0.32); }
.poly-home-sport-tag.is-soon { background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.55); border: 1px solid rgba(255,255,255,0.08); }

/* HOW IT WORKS */
.poly-home-howto {
    padding: 60px 24px;
    max-width: 1180px;
    margin: 0 auto;
}
.poly-home-howto-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.poly-home-howto-step {
    padding: 28px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.005));
    border: 1px solid rgba(255,255,255,0.07);
    position: relative;
    overflow: hidden;
}
.poly-home-howto-step::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(74,222,128,0.18), transparent 70%);
    transform: translate(-30%, -30%);
}
.poly-home-howto-num {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 56px;
    font-weight: 800;
    color: rgba(74,222,128,0.85);
    line-height: 1;
    display: block;
    margin-bottom: 12px;
    position: relative;
}
.poly-home-howto-step h3 {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #fff;
    margin: 0 0 8px;
    text-transform: uppercase;
    letter-spacing: 0.005em;
}
.poly-home-howto-step p {
    margin: 0;
    color: rgba(255,255,255,0.6);
    font-size: 13px;
    line-height: 1.55;
}

/* BIG IMAGE BREAK */
.poly-home-break {
    position: relative;
    padding: 120px 24px;
    margin: 60px 0;
    overflow: hidden;
}
.poly-home-break-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.poly-home-break-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.65) brightness(0.45);
}
.poly-home-break-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(244,114,182,0.18), rgba(6,10,16,0.85));
}
.poly-home-break-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}
.poly-home-break-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: clamp(36px, 5vw, 56px);
    font-weight: 800;
    color: #fff;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: -0.005em;
    line-height: 1;
}
.poly-home-break-sub {
    color: rgba(255,255,255,0.7);
    font-size: 16px;
    margin: 0;
    max-width: 50ch;
}

/* LEADERBOARD preview */
.poly-home-board-preview {
    padding: 60px 24px;
    max-width: 1180px;
    margin: 0 auto;
}
.poly-home-board-card {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    border-radius: 22px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(250,204,21,0.04), rgba(8,11,16,0.96));
    border: 1px solid rgba(250,204,21,0.18);
    box-shadow: 0 32px 80px -24px rgba(250,204,21,0.15);
}
.poly-home-board-art {
    position: relative;
    min-height: 360px;
}
.poly-home-board-art img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(1.1) brightness(0.85);
}
.poly-home-board-art::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 50%, rgba(8,11,16,0.92) 100%);
}
.poly-home-board-body {
    padding: 36px 32px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    justify-content: center;
}
.poly-home-board-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 32px;
    font-weight: 800;
    color: #fff;
    margin: 0;
    text-transform: uppercase;
}
.poly-home-board-list {
    list-style: none;
    margin: 8px 0 14px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.poly-home-board-list li {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 9px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
}
.poly-home-board-list .is-gold .poly-home-board-rank { color: #facc15; }
.poly-home-board-list .is-silver .poly-home-board-rank { color: #cbd5e1; }
.poly-home-board-list .is-bronze .poly-home-board-rank { color: #d97706; }
.poly-home-board-rank {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-weight: 700;
    font-size: 12px;
    color: rgba(255,255,255,0.5);
}
.poly-home-board-name {
    font-size: 13px;
    font-weight: 700;
    color: #f4f4f7;
}
.poly-home-board-points {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-weight: 700;
    color: #facc15;
}

/* FINAL CTA */
.poly-home-final {
    position: relative;
    padding: 140px 24px;
    overflow: hidden;
}
.poly-home-final-bg { position: absolute; inset: 0; z-index: 0; }
.poly-home-final-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.6) brightness(0.35);
}
.poly-home-final-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(6,10,16,0.6) 0%, rgba(6,10,16,0.95) 100%);
}
.poly-home-final-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
}
.poly-home-final-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: clamp(36px, 5vw, 56px);
    font-weight: 800;
    color: #fff;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: -0.005em;
    line-height: 1;
}
.poly-home-final-sub {
    color: #4ade80;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin: 0;
}

/* Hide legacy hub layout if it ever falls through */
body.home .mfc-hub-page:not(.mfc-hub-page--leaderboard) { display: none; }

@media (max-width: 1100px) {
    .poly-home-sports-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 880px) {
    .poly-home-feature-card { grid-template-columns: 1fr; }
    .poly-home-feature-art { min-height: 220px; }
    .poly-home-board-card { grid-template-columns: 1fr; }
    .poly-home-board-art { min-height: 220px; }
    .poly-home-sports-grid { grid-template-columns: repeat(2, 1fr); }
    .poly-home-howto-grid { grid-template-columns: 1fr; }
    .poly-home-hero-stats { grid-template-columns: repeat(2, 1fr); gap: 16px; padding: 16px; }
}
@media (max-width: 480px) {
    .poly-home-sports-grid { grid-template-columns: 1fr; }
    .poly-home-hero { padding: 80px 16px 60px; min-height: 540px; }
    .poly-home-headline { font-size: clamp(40px, 12vw, 64px); }
}

/* Hide mobile-only menu sections on desktop */
.poly-mobile-nav-head,
.poly-mobile-nav-profile,
.poly-mobile-nav-section-label,
.poly-mobile-nav-stats,
.poly-mobile-nav-leaders,
.poly-mobile-nav-foot { display: none; }

/* =========================================================================
   Mobile pass — comprehensive cleanup at <768px
   ========================================================================= */
@media (max-width: 768px) {
    /* HEADER: full-screen mobile menu with rich content
       Selectors avoid .poly-header-shell ancestor since JS teleports the nav
       to body.appendChild on open so position:fixed escapes any constrained
       ancestor (some legacy CSS sets top:70px / left:16px on .site-nav). */
    nav.poly-header-nav,
    body .poly-header-nav {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        inset: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        max-width: none !important;
        max-height: none !important;
        min-height: 100vh !important;
        background: linear-gradient(180deg, #0a0d12 0%, #060a10 100%) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        border: 0 !important;
        padding: 18px 18px 28px !important;
        transform: translateY(-100%) !important;
        transition: transform .35s cubic-bezier(.4,0,.2,1) !important;
        z-index: 9000 !important;
        overflow-y: auto !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        opacity: 0;
        pointer-events: none;
    }
    nav.poly-header-nav.is-mobile-open,
    body .poly-header-nav.is-mobile-open,
    body.nav-open .poly-header-nav {
        transform: translateY(0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    /* Mobile-only header (logo + close) */
    body .poly-mobile-nav-head,
    body header.poly-mobile-nav-head {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 0 0 8px !important;
        margin-bottom: 6px !important;
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
        border: 0 !important;
        box-shadow: none !important;
        position: static !important;
        width: 100% !important;
        gap: 12px;
    }
    body .poly-mobile-nav-brand,
    body .poly-mobile-nav-brand:hover,
    body .poly-mobile-nav-brand:focus {
        display: inline-flex !important;
        align-items: center !important;
        text-decoration: none !important;
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
        border: 0 !important;
        padding: 0 !important;
        box-shadow: none !important;
        max-width: calc(100% - 56px);
        min-width: 0;
    }
    body .poly-mobile-nav-brand img {
        height: 38px !important;
        width: auto !important;
        max-width: 100% !important;
        object-fit: contain !important;
        background: transparent !important;
        border: 0 !important;
        filter: drop-shadow(0 6px 18px rgba(74,222,128,0.32));
    }
    body .poly-mobile-nav-brand-text { display: none !important; }
    body .poly-mobile-nav-close {
        width: 40px;
        height: 40px;
        border-radius: 999px;
        border: 1px solid rgba(255,255,255,0.08);
        background: rgba(255,255,255,0.04);
        color: rgba(255,255,255,0.85);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }
    body .poly-mobile-nav-close:hover { background: rgba(255,255,255,0.08); }

    /* Profile chip at top of menu */
    body .poly-mobile-nav-profile {
        display: flex !important;
        align-items: center;
        gap: 12px;
        padding: 14px 14px;
        border-radius: 14px;
        background: linear-gradient(135deg, rgba(74,222,128,0.06), rgba(34,211,238,0.03));
        border: 1px solid rgba(74,222,128,0.22);
        text-decoration: none;
        color: #f0f0f3;
        margin-bottom: 6px;
    }
    body .poly-mobile-nav-profile-avatar {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        background: linear-gradient(135deg, #4ade80, #22c55e);
        color: #022;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-family: 'JetBrains Mono', ui-monospace, monospace;
        font-weight: 800;
        font-size: 18px;
        flex-shrink: 0;
        box-shadow: 0 6px 16px -6px rgba(74,222,128,0.5);
    }
    body .poly-mobile-nav-profile-meta {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 2px;
    }
    body .poly-mobile-nav-profile-meta strong {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 15px;
        font-weight: 700;
        color: #fff;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    body .poly-mobile-nav-profile-meta em {
        font-style: normal;
        font-family: 'JetBrains Mono', ui-monospace, monospace;
        font-size: 11px;
        color: #4ade80;
        letter-spacing: 0.04em;
    }
    body .poly-mobile-nav-profile-arrow {
        color: rgba(255,255,255,0.5);
        font-family: 'JetBrains Mono', ui-monospace, monospace;
        font-size: 18px;
    }

    /* Section labels */
    body .poly-mobile-nav-section-label {
        display: block !important;
        font-family: 'JetBrains Mono', ui-monospace, monospace;
        font-size: 10px;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: rgba(255,255,255,0.45);
        margin: 12px 4px 4px;
    }

    /* Mobile nav items: big tap-friendly buttons (mega panels disabled) */
    body .poly-header-shell .poly-header-nav > ul {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 6px !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }
    body .poly-header-shell .poly-mega-item {
        position: static !important;
    }
    body .poly-header-shell .poly-mega-trigger,
    body .poly-header-shell .poly-mega-direct {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 16px 18px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        letter-spacing: 0.04em !important;
        text-transform: uppercase !important;
        background: rgba(255,255,255,0.025) !important;
        border: 1px solid rgba(255,255,255,0.05) !important;
        border-radius: 12px !important;
        color: #f0f0f3 !important;
        text-decoration: none !important;
        gap: 12px !important;
        transition: all .15s ease !important;
        cursor: pointer !important;
    }
    body .poly-header-shell .poly-mega-trigger:hover,
    body .poly-header-shell .poly-mega-direct:hover,
    body .poly-header-shell .poly-mega-item.is-active .poly-mega-trigger,
    body .poly-header-shell .poly-mega-item.is-active .poly-mega-direct {
        background: rgba(74,222,128,0.06) !important;
        border-color: rgba(74,222,128,0.32) !important;
        color: #4ade80 !important;
    }
    body .poly-header-shell .poly-mega-trigger .poly-nav-text,
    body .poly-header-shell .poly-mega-direct .poly-nav-text {
        flex: 1;
        text-align: left;
    }
    body .poly-header-shell .poly-mega-caret,
    body .poly-mega-caret {
        font-size: 14px !important;
        color: rgba(255,255,255,0.45) !important;
        transition: transform .25s ease, color .2s ease !important;
    }
    body .mfc-nav-has-flyout.is-open .poly-mega-caret {
        transform: rotate(180deg) !important;
        color: #4ade80 !important;
    }

    /* Mobile mega panels render inline below their trigger inside the menu.
       Selectors don't require .poly-header-shell since the nav is teleported
       to body when open. */
    nav.poly-header-nav .poly-mega,
    body .poly-header-nav .poly-mega {
        position: static !important;
        width: 100% !important;
        max-width: none !important;
        max-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        opacity: 0 !important;
        pointer-events: none !important;
        visibility: hidden !important;
        transform: none !important;
        overflow: hidden !important;
        transition: max-height .3s ease, opacity .25s ease, margin .25s ease !important;
        display: block !important;
        z-index: auto !important;
    }
    nav.poly-header-nav .poly-mega::before,
    body .poly-header-nav .poly-mega::before { display: none !important; }
    nav.poly-header-nav .mfc-nav-has-flyout.is-open .poly-mega,
    body .poly-header-nav .mfc-nav-has-flyout.is-open .poly-mega {
        max-height: 70vh !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        visibility: visible !important;
        margin: 4px 0 8px !important;
        overflow-y: auto !important;
        transform: none !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
    }
    nav.poly-header-nav .poly-mega-inner,
    body .poly-header-nav .poly-mega-inner {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        padding: 14px !important;
        background: rgba(255,255,255,0.022) !important;
        border: 1px solid rgba(255,255,255,0.05) !important;
        border-radius: 12px !important;
    }
    nav.poly-header-nav .poly-mega-title,
    body .poly-header-nav .poly-mega-title { font-size: 16px !important; }
    nav.poly-header-nav .poly-mega-sub,
    body .poly-header-nav .poly-mega-sub { font-size: 11px !important; }
    /* Force single-column reflow + reset grid placements on mobile */
    nav.poly-header-nav .poly-mega-feature,
    body .poly-header-nav .poly-mega-feature,
    nav.poly-header-nav .poly-mega-head,
    body .poly-header-nav .poly-mega-head,
    nav.poly-header-nav .poly-mega-foot,
    body .poly-header-nav .poly-mega-foot,
    nav.poly-header-nav .poly-mega-cols,
    body .poly-header-nav .poly-mega-cols,
    nav.poly-header-nav .poly-mega-col,
    body .poly-header-nav .poly-mega-col {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
    nav.poly-header-nav .poly-mega-cols,
    body .poly-header-nav .poly-mega-cols {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
    }
    nav.poly-header-nav .poly-mega-feature,
    body .poly-header-nav .poly-mega-feature {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        padding: 12px !important;
    }
    nav.poly-header-nav .poly-mega-feature-fixture,
    body .poly-header-nav .poly-mega-feature-fixture {
        flex-wrap: wrap !important;
        gap: 6px !important;
    }
    nav.poly-header-nav .poly-mega-feature-pair,
    body .poly-header-nav .poly-mega-feature-pair {
        font-size: 11px !important;
        flex-wrap: wrap;
        white-space: normal !important;
    }
    nav.poly-header-nav .poly-mega-list a,
    body .poly-header-nav .poly-mega-list a {
        padding: 9px 11px !important;
    }
    /* Ensure no horizontal overflow on the panel itself */
    nav.poly-header-nav .poly-mega,
    body .poly-header-nav .poly-mega {
        overflow-x: hidden !important;
    }
    nav.poly-header-nav .poly-mega-inner,
    body .poly-header-nav .poly-mega-inner {
        overflow-x: hidden !important;
        max-width: 100% !important;
    }
    nav.poly-header-nav .poly-mega-col-allsports .poly-mega-list-sports,
    body .poly-header-nav .poly-mega-col-allsports .poly-mega-list-sports {
        max-height: 220px !important;
    }
    nav.poly-header-nav .poly-mega-leagues-tiles,
    body .poly-header-nav .poly-mega-leagues-tiles {
        grid-template-columns: 1fr 1fr !important;
        gap: 6px !important;
    }
    /* Force dark glass on league tiles + ensure legacy site-nav a rules can't tint them */
    nav.poly-header-nav .poly-mega-league-tile,
    body .poly-header-nav .poly-mega-league-tile {
        padding: 10px 12px !important;
        gap: 10px !important;
        background: rgba(255,255,255,0.025) !important;
        background-color: rgba(255,255,255,0.025) !important;
        background-image: none !important;
        border: 1px solid rgba(255,255,255,0.06) !important;
        border-radius: 10px !important;
        color: #f0f0f3 !important;
        text-transform: none !important;
        letter-spacing: 0 !important;
        font-size: 11px !important;
    }
    nav.poly-header-nav .poly-mega-league-tile:hover,
    body .poly-header-nav .poly-mega-league-tile:hover {
        background: rgba(74,222,128,0.06) !important;
        border-color: rgba(74,222,128,0.32) !important;
    }
    nav.poly-header-nav .poly-mega-league-tile-name,
    body .poly-header-nav .poly-mega-league-tile-name {
        font-size: 12px !important;
        color: #f4f4f7 !important;
        text-transform: none !important;
        letter-spacing: 0 !important;
    }
    nav.poly-header-nav .poly-mega-league-tile-meta,
    body .poly-header-nav .poly-mega-league-tile-meta {
        font-size: 9px !important;
        color: rgba(255,255,255,0.45) !important;
    }
    nav.poly-header-nav .poly-mega-league-tile-logo,
    body .poly-header-nav .poly-mega-league-tile-logo {
        width: 32px !important;
        height: 32px !important;
        background: rgba(255,255,255,0.06) !important;
        border: 1px solid rgba(255,255,255,0.08) !important;
    }
    /* Same dark-glass enforcement for all mega list links inside the mobile menu */
    nav.poly-header-nav .poly-mega-list a,
    body .poly-header-nav .poly-mega-list a,
    nav.poly-header-nav .poly-mega-list-views a,
    body .poly-header-nav .poly-mega-list-views a,
    nav.poly-header-nav .poly-mega-list-sports a,
    body .poly-header-nav .poly-mega-list-sports a,
    nav.poly-header-nav .poly-mega-leaders li,
    body .poly-header-nav .poly-mega-leaders li {
        background: rgba(255,255,255,0.025) !important;
        background-image: none !important;
        border: 1px solid rgba(255,255,255,0.06) !important;
        color: #f0f0f3 !important;
        text-transform: none !important;
        letter-spacing: 0 !important;
        font-weight: 600 !important;
        padding: 11px 14px !important;
    }
    nav.poly-header-nav .poly-mega-list a:hover,
    body .poly-header-nav .poly-mega-list a:hover {
        background: rgba(74,222,128,0.06) !important;
        border-color: rgba(74,222,128,0.32) !important;
    }
    nav.poly-header-nav .poly-mega-list-label,
    body .poly-header-nav .poly-mega-list-label {
        color: #f4f4f7 !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        text-transform: none !important;
        letter-spacing: 0 !important;
    }
    nav.poly-header-nav .poly-mega-list-icon,
    body .poly-header-nav .poly-mega-list-icon {
        background: rgba(255,255,255,0.05) !important;
        color: rgba(255,255,255,0.7) !important;
    }
    nav.poly-header-nav .poly-mega-sport-icon-lg,
    body .poly-header-nav .poly-mega-sport-icon-lg {
        background: linear-gradient(135deg, rgba(74,222,128,0.16), rgba(34,211,238,0.06)) !important;
        border: 1px solid rgba(74,222,128,0.22) !important;
    }
    nav.poly-header-nav .poly-mega-list-sports a.is-soon,
    body .poly-header-nav .poly-mega-list-sports a.is-soon {
        opacity: 0.6 !important;
    }
    nav.poly-header-nav .poly-mega-cta,
    body .poly-header-nav .poly-mega-cta {
        background: linear-gradient(135deg, #4ade80, #22c55e) !important;
        color: #022 !important;
        border: 0 !important;
    }
    nav.poly-header-nav .poly-mega-foot a:not(.poly-mega-cta),
    body .poly-header-nav .poly-mega-foot a:not(.poly-mega-cta) {
        background: transparent !important;
        border: 0 !important;
    }
    nav.poly-header-nav .poly-mega-period,
    body .poly-header-nav .poly-mega-period {
        flex-wrap: wrap !important;
        gap: 4px !important;
    }
    nav.poly-header-nav .poly-mega-period-chip,
    body .poly-header-nav .poly-mega-period-chip {
        flex: 1 1 auto !important;
        padding: 6px 10px !important;
        font-size: 10px !important;
    }
    nav.poly-header-nav .poly-mega-foot,
    body .poly-header-nav .poly-mega-foot {
        margin-top: 4px !important;
        padding-top: 10px !important;
    }
    nav.poly-header-nav .poly-mega-cta,
    body .poly-header-nav .poly-mega-cta {
        width: 100%;
        justify-content: center !important;
    }

    /* Live stats row */
    body .poly-mobile-nav-stats {
        display: grid !important;
        grid-template-columns: 1fr 1fr 1fr !important;
        gap: 8px !important;
        padding: 14px 12px !important;
        margin-top: 12px;
        border-radius: 12px !important;
        background: rgba(255,255,255,0.022) !important;
        border: 1px solid rgba(255,255,255,0.05) !important;
    }
    body .poly-mobile-nav-stat {
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 2px;
    }
    body .poly-mobile-nav-stat strong {
        font-family: 'Big Shoulders Display', sans-serif;
        font-size: 24px;
        font-weight: 800;
        color: #4ade80;
        line-height: 1;
    }
    body .poly-mobile-nav-stat span {
        font-family: 'JetBrains Mono', ui-monospace, monospace;
        font-size: 9px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: rgba(255,255,255,0.45);
    }

    /* Top leaders preview */
    body .poly-mobile-nav-leaders {
        list-style: none !important;
        padding: 0 !important;
        margin: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 4px !important;
    }
    body .poly-mobile-nav-leaders li {
        display: grid !important;
        grid-template-columns: auto 1fr auto !important;
        align-items: center;
        gap: 10px;
        padding: 10px 14px;
        border-radius: 10px;
        background: rgba(255,255,255,0.018);
        border: 1px solid rgba(255,255,255,0.04);
    }
    body .poly-mobile-nav-leader-rank {
        font-family: 'JetBrains Mono', ui-monospace, monospace;
        font-size: 11px;
        font-weight: 700;
        color: rgba(255,255,255,0.5);
    }
    body .poly-mobile-nav-leaders li:nth-child(1) .poly-mobile-nav-leader-rank { color: #facc15; }
    body .poly-mobile-nav-leaders li:nth-child(2) .poly-mobile-nav-leader-rank { color: #cbd5e1; }
    body .poly-mobile-nav-leaders li:nth-child(3) .poly-mobile-nav-leader-rank { color: #d97706; }
    body .poly-mobile-nav-leader-name {
        font-size: 13px;
        font-weight: 700;
        color: #f4f4f7;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    body .poly-mobile-nav-leader-pts {
        font-family: 'JetBrains Mono', ui-monospace, monospace;
        font-size: 11px;
        color: #4ade80;
        font-weight: 700;
    }

    /* Footer */
    body .poly-mobile-nav-foot {
        display: flex !important;
        flex-direction: column;
        gap: 8px;
        margin-top: auto;
        padding-top: 16px;
        border-top: 1px solid rgba(255,255,255,0.06);
    }
    body .poly-mobile-nav-foot-link {
        padding: 12px 16px;
        border-radius: 10px;
        background: rgba(255,255,255,0.025);
        border: 1px solid rgba(255,255,255,0.05);
        color: rgba(255,255,255,0.75);
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 13px;
        font-weight: 600;
        text-decoration: none;
        text-align: center;
        letter-spacing: 0.02em;
    }
    body .poly-mobile-nav-foot-link:hover {
        background: rgba(255,255,255,0.05);
        color: #fff;
    }
    body .poly-mobile-nav-foot-link.is-primary {
        background: linear-gradient(135deg, #4ade80, #22c55e);
        color: #022;
        border-color: transparent;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }

    /* Show hamburger; backdrop not needed for full-screen menu */
    body .poly-header-shell .poly-header-burger { display: inline-flex !important; }
    body .nav-backdrop.is-active { display: none !important; }

    /* Header bar tightens */
    body .poly-header-shell .poly-header-inner { padding: 0 12px !important; gap: 8px !important; }
    body .poly-header-shell .poly-header-status { display: none !important; }
    body .poly-header-shell .poly-header-search { display: none !important; }
    body .poly-header-shell a.poly-header-profile-meta-stats,
    body .poly-header-shell .poly-header-profile-meta { display: none !important; }
    body .poly-header-shell a.poly-header-profile {
        padding: 7px 10px !important;
        min-height: 40px !important;
        margin-left: 6px !important;
    }
    body .poly-header-shell a.poly-header-profile::after {
        content: "Me";
        font-family: 'JetBrains Mono', monospace;
        font-size: 11px;
        font-weight: 700;
        color: rgba(255,255,255,0.7);
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }
    body .poly-header-shell a.poly-header-cta {
        padding: 8px 12px !important;
        font-size: 10px !important;
        letter-spacing: 0.14em !important;
    }
    body .poly-header-shell a.poly-header-cta .poly-header-cta-label { display: none; }

    /* Live ticker is fine but compress padding */
    body .poly-header-shell .poly-ticker { padding: 0 12px !important; }
    body .poly-header-shell .poly-ticker-cta { display: none !important; }

    /* PREDICTOR right rail hidden on mobile (drawer covers stats) */
    body .poly-rail-right { display: none !important; }
    body .poly-game-shell { grid-template-columns: 1fr !important; }

    /* Command bar reflows */
    body .poly-cmdbar-inner {
        flex-wrap: wrap !important;
        gap: 10px !important;
        padding: 10px 14px !important;
    }
    body .poly-cmdbar-counters { display: flex !important; gap: 8px !important; }
    body .poly-cmdbar-counter { padding: 6px 8px !important; }
    body .poly-cmdbar-counter strong { font-size: 16px !important; }
    body .poly-cmdbar-quickstats { display: none !important; }

    /* Match cards: tighter */
    body .poly-card { padding: 14px !important; }
    body .poly-card-fixture { gap: 8px !important; }
    body .poly-card-team-name { font-size: 12px !important; line-height: 1.2; }
    body .poly-card-divider-vs { font-size: 11px !important; }
    body .poly-card-strip { padding: 8px 12px !important; }
    body .poly-card-strip-time-label { font-size: 11px !important; }
    body .poly-card-pickwidget { padding: 0 12px 12px !important; gap: 5px !important; }
    body .poly-card-marginrow { padding: 0 12px 12px !important; }
    body .poly-card-foot { padding: 8px 12px !important; flex-wrap: wrap !important; gap: 6px !important; }

    /* Date strip horizontal scroll */
    body .poly-matchweek-strip {
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        scrollbar-width: none;
        padding: 8px 14px !important;
    }
    body .poly-matchweek-strip::-webkit-scrollbar { display: none; }
    body .poly-matchweek-chip { flex: 0 0 auto !important; padding: 7px 10px !important; }

    /* Bell popover slides up from bottom on mobile.
       Header lost backdrop-filter at this breakpoint above, so fixed
       positioning here is now resolved against the viewport (not the header),
       which is what we want for a bottom sheet. */
    body .poly-notif-popover {
        position: fixed !important;
        inset: auto 12px 12px 12px !important;
        top: auto !important;
        right: 12px !important;
        bottom: 12px !important;
        left: 12px !important;
        width: auto !important;
        max-width: none !important;
        max-height: 75vh !important;
        transform-origin: bottom center !important;
        animation: polyNotifInMobile .26s cubic-bezier(.4,0,.2,1) both !important;
    }
    body .poly-notif-popover::before { display: none !important; }
    @keyframes polyNotifInMobile {
        from { opacity: 0; transform: translateY(20px); }
        to   { opacity: 1; transform: translateY(0); }
    }

    /* HOMEPAGE tightens */
    body .poly-home-hero { padding: 100px 16px 60px !important; min-height: 580px !important; }
    body .poly-home-headline { font-size: clamp(36px, 11vw, 56px) !important; line-height: 0.95 !important; }
    body .poly-home-hero-stats {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
        padding: 14px !important;
    }
    body .poly-home-hero-stats strong { font-size: 22px !important; }
    body .poly-home-feature,
    body .poly-home-sports,
    body .poly-home-howto,
    body .poly-home-board-preview { padding: 40px 16px !important; }
    body .poly-home-feature-card,
    body .poly-home-board-card { grid-template-columns: 1fr !important; }
    body .poly-home-feature-art,
    body .poly-home-board-art { min-height: 180px !important; }
    body .poly-home-feature-art-fade,
    body .poly-home-board-art::after {
        background: linear-gradient(180deg, transparent 60%, rgba(14,18,24,0.92) 100%) !important;
    }
    body .poly-home-feature-body,
    body .poly-home-board-body { padding: 22px 20px !important; }
    body .poly-home-sports-grid { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
    body .poly-home-sport-card { aspect-ratio: 1 / 1 !important; }
    body .poly-home-sport-meta { padding: 14px !important; }
    body .poly-home-sport-meta h3 { font-size: 18px !important; }
    body .poly-home-sport-meta p { font-size: 11px !important; }
    body .poly-home-howto-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
    body .poly-home-final { padding: 80px 16px !important; }

    /* AUTH pages (login/register) — already had mobile, polish more.
       Critical: on mobile the FORM should be visible first (no scrolling
       past the marketing rail before users can sign in). */
    body .poly-auth-shell {
        padding: 16px 10px !important;
        position: fixed !important;
        inset: 0 !important;
        align-items: flex-start !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }
    body .poly-auth-frame {
        gap: 14px !important;
        max-width: 100% !important;
        grid-template-columns: 1fr !important;
        margin: 0 auto !important;
    }
    /* Reverse stack: form above, marketing supporting it below */
    body .poly-auth-card { order: 1 !important; padding: 20px 16px !important; gap: 14px !important; }
    body .poly-auth-marketing { order: 2 !important; padding: 20px 16px !important; gap: 14px !important; }

    body .poly-auth-headline h1 { font-size: clamp(26px, 8vw, 36px) !important; }
    body .poly-auth-headline p { font-size: 13px !important; }
    body .poly-auth-stats { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
    body .poly-auth-stats li:nth-child(3) { display: none; }
    body .poly-auth-card-head h2 { font-size: 24px !important; }
    body .poly-auth-card-head p { font-size: 13px !important; }
    body .poly-auth-trust {
        flex-wrap: wrap !important;
        gap: 6px !important;
    }
    body .poly-auth-trust li { font-size: 11px !important; padding: 6px 10px !important; }

    /* Suppress decorative full-screen blur glows on mobile — they cause
       horizontal overflow and burn battery for no aesthetic gain on small
       screens. */
    body .poly-auth-bg-glow,
    body .poly-auth-bg-noise {
        display: none !important;
    }

    /* ONBOARDING (claim handle / guided welcome).
       Critical: the "Let me in →" / next-step CTA was buried at the bottom
       of a long Welcome step, forcing users to scroll past hero collage,
       headline, ticker, feature cards, stats, and leader preview before
       finding the entry point. We pin the actions row to the bottom of
       the viewport on mobile so the entry path is always one tap away. */
    body .poly-onboard { padding: 24px 14px 110px !important; min-height: auto !important; }
    body .poly-onboard-card {
        padding: 18px 14px 16px !important;
        /* Drop backdrop-filter so the fixed actions row escapes the card's
           containing-block trap and pins to viewport, not to the card. */
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    body .poly-onboard-perks { grid-template-columns: 1fr !important; }
    body .poly-onboard-input-counter { display: none !important; }
    /* Team picker mobile — single column, taller scrollable area */
    body .poly-onboard-team-grid {
        grid-template-columns: 1fr !important;
        max-height: 56vh !important;
    }
    body .poly-onboard-team-chip { min-height: 52px !important; }
    body .poly-onboard-team-filters { gap: 4px !important; }
    body .poly-onboard-team-filter { padding: 6px 10px !important; font-size: 10px !important; }

    /* Trim FOMO marketing on the welcome step so the user gets to the CTA
       quicker — keep a couple of feature cards but drop the loudest blocks. */
    body .poly-onboard-step-welcome .poly-onboard-hero-collage {
        grid-template-columns: 1fr !important;
        grid-template-rows: 140px !important;
        max-height: 140px !important;
        overflow: hidden !important;
    }
    body .poly-onboard-step-welcome .poly-onboard-hero-img-2,
    body .poly-onboard-step-welcome .poly-onboard-hero-img-3 { display: none !important; }
    body .poly-onboard-step-welcome .poly-onboard-welcome-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }
    body .poly-onboard-step-welcome .poly-onboard-welcome-card { padding: 14px 12px !important; min-height: 100px !important; }
    body .poly-onboard-step-welcome .poly-onboard-welcome-card:nth-child(3) { display: none !important; }
    body .poly-onboard-step-welcome .poly-onboard-leaderprev { display: none !important; }
    body .poly-onboard-step-welcome .poly-onboard-title { font-size: clamp(28px, 8vw, 36px) !important; line-height: 1.05 !important; }
    body .poly-onboard-step-welcome .poly-onboard-sub { font-size: 13px !important; }

    /* Sticky entry-point CTA bar — always visible, always reachable. */
    body .poly-onboard-actions {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        z-index: 50 !important;
        padding: 12px 14px calc(12px + env(safe-area-inset-bottom)) !important;
        background: linear-gradient(180deg, rgba(8,11,16,0) 0%, rgba(8,11,16,0.9) 30%, rgba(6,9,14,0.98) 100%) !important;
        backdrop-filter: blur(14px) !important;
        -webkit-backdrop-filter: blur(14px) !important;
        border-top: 1px solid rgba(255,255,255,0.06) !important;
        margin: 0 !important;
    }
    body .poly-onboard-actions .poly-onboard-cta {
        flex: 1 !important;
        min-height: 52px !important;
        font-size: 15px !important;
    }

    /* PROFILE page */
    body .poly-profile { padding: 28px 14px 60px !important; }
    body .poly-profile-hero { padding: 22px 18px !important; }
    body .poly-profile-hero-id { gap: 14px !important; }
    body .poly-profile-avatar { width: 64px !important; height: 64px !important; font-size: 24px !important; }
    body .poly-profile-name { font-size: clamp(22px, 7vw, 32px) !important; }
    body .poly-profile-hero-stats { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
    body .poly-profile-hero-stat { padding: 12px !important; }
    body .poly-profile-hero-stat strong { font-size: 22px !important; }
    body .poly-profile-cta-strip {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }
    body .poly-profile-cta {
        padding: 11px 12px !important;
        font-size: 11px !important;
        letter-spacing: 0.02em !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    body .poly-profile-cta.is-primary {
        grid-column: 1 / -1;
        justify-content: center !important;
    }
    body .poly-profile-insights { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
    body .poly-profile-insight-value { font-size: 26px !important; }
    body .poly-profile-grid-cols { grid-template-columns: 1fr !important; }
    body .poly-profile-history-item {
        grid-template-columns: 1fr auto !important;
        gap: 6px 10px !important;
        padding: 10px 12px !important;
    }
    body .poly-profile-history-meta { grid-column: 1 / -1; }
    body .poly-profile-history-fixture { grid-column: 1 / 2; }
    body .poly-profile-history-result { grid-column: 2 / 3; grid-row: 2; align-self: center; }
    body .poly-profile-history-pick,
    body .poly-profile-history-final { grid-column: 1 / -1; font-size: 10px !important; }

    /* LEADERBOARD */
    body .poly-board { padding: 32px 14px 80px !important; }
    body .poly-board-hero { gap: 8px !important; }
    body .poly-board-title { font-size: clamp(32px, 9vw, 52px) !important; }
    body .poly-board-tabs { flex-wrap: wrap !important; padding: 4px !important; }
    body .poly-board-tab { flex: 1 1 auto; padding: 8px 12px !important; font-size: 11px !important; }
    body .poly-board-you {
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        padding: 14px 16px !important;
    }
    body .poly-board-you-rank {
        grid-column: 1 / -1;
        padding-right: 0 !important;
        border-right: 0 !important;
        padding-bottom: 10px !important;
        border-bottom: 1px solid rgba(255,255,255,0.06) !important;
        flex-direction: row !important;
        align-items: baseline !important;
        gap: 8px !important;
    }
    body .poly-board-you-cta {
        grid-column: 1 / -1;
        justify-content: center !important;
        padding: 10px 14px !important;
    }
    body .poly-board-podium {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    body .poly-board-podium-card[data-rank="1"] {
        transform: none !important;
        order: -1 !important;
        padding: 24px 18px !important;
    }
    body .poly-board-podium-card { padding: 20px 16px !important; }
    body .poly-board-table-head {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
        padding: 14px 16px !important;
    }
    body .poly-board-table-search { width: 100% !important; }
    body .poly-board-table-row {
        grid-template-columns: 36px 1fr auto !important;
        gap: 10px !important;
        padding: 10px 12px !important;
    }
    body .poly-board-cell-trend { display: none !important; }
    body .poly-board-table-row-head .poly-board-cell-trend { display: none !important; }
    body .poly-board-cell-rank { font-size: 16px !important; }
    body .poly-board-player-avatar { width: 30px !important; height: 30px !important; }
    body .poly-board-player-name { font-size: 13px !important; }

    /* HOWTO panel — bottom sheet on mobile */
    body .poly-howto-fab {
        right: 14px !important;
        bottom: 14px !important;
        padding: 11px 16px 11px 12px !important;
        font-size: 12px !important;
    }
    body .poly-howto-fab-label {
        max-width: 96px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    body .poly-howto-panel {
        top: auto !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 88vh !important;
        max-height: 88dvh !important;
        border-left: 0 !important;
        border-top: 1px solid rgba(74,222,128,0.18) !important;
        border-top-left-radius: 18px !important;
        border-top-right-radius: 18px !important;
        transform: translateY(100%) !important;
        box-shadow: 0 -32px 80px -12px rgba(0,0,0,0.7) !important;
    }
    body .poly-howto-panel.is-open {
        transform: translateY(0) !important;
    }
    body .poly-howto-grab {
        display: block !important;
        position: absolute;
        top: 8px;
        left: 50%;
        transform: translateX(-50%);
        width: 44px;
        height: 4px;
        border-radius: 999px;
        background: rgba(255,255,255,0.18);
        z-index: 2;
    }
    body .poly-howto-head { padding: 24px 18px 14px !important; }
    body .poly-howto-body { padding: 14px 18px 18px !important; gap: 14px !important; }
    body .poly-howto-hero { padding: 14px 16px !important; }
    body .poly-howto-scoring-tiles { grid-template-columns: 1fr 1fr !important; }

    /* Profile drawer fills screen */
    body .mfc-profile-drawer.poly-drawer .mfc-drawer-panel,
    body .poly-drawer-panel {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Toast wrap stays bottom but full-width */
    body .mfc-toast-wrap {
        bottom: 90px !important;
        left: 8px !important;
        right: 8px !important;
        width: auto !important;
    }
}

@media (max-width: 480px) {
    body .poly-card-strip-status { gap: 4px !important; }
    body .poly-card-strip-pill { font-size: 9px !important; padding: 3px 7px !important; }
    body .poly-card-team-crest { width: 48px !important; height: 48px !important; }
    body .poly-card-team-crest .poly-crest { width: 48px !important; height: 48px !important; }
    body .poly-pick-team { display: none !important; }
    body .poly-pick { padding: 10px 4px !important; }
    body .poly-pick-label { font-size: 12px !important; }
    body .poly-card-marginpill { padding: 6px 8px !important; font-size: 11px !important; }
    /* Keep the vs separator on collapsed cards so team names don't read as one phrase */
    body .poly-card-collapsed-pair em {
        display: inline-block !important;
        margin: 0 4px !important;
        color: rgba(255,255,255,0.32) !important;
    }
    body .poly-card-collapsed-pick { display: none !important; }
    body .poly-card-collapsed-row {
        flex-wrap: wrap !important;
        gap: 6px 8px !important;
        padding: 8px 10px 10px !important;
    }
    body .poly-card-collapsed-pair {
        flex: 1 1 100%;
        font-size: 12px !important;
        white-space: normal !important;
    }
    body .poly-mega-leagues-tiles { grid-template-columns: 1fr !important; }
    body .poly-home-sports-grid { grid-template-columns: 1fr !important; }
    body .poly-home-hero-stats { grid-template-columns: 1fr 1fr !important; }
    body .poly-home-hero-stats li:last-child { display: none; }
    /* League section title shouldn't wrap aggressively */
    body .poly-league-section-title {
        font-size: 18px !important;
        line-height: 1.1 !important;
        word-break: keep-all !important;
        overflow-wrap: anywhere;
    }
    body .poly-league-section-stats {
        gap: 8px !important;
    }
    body .poly-league-section-stat strong { font-size: 18px !important; }
    body .poly-league-section-head {
        flex-wrap: wrap !important;
        gap: 10px !important;
        padding: 14px !important;
    }
    body .poly-league-section-id {
        flex: 1 1 100%;
        align-items: center;
    }
    body .poly-league-section-stats {
        flex: 1 1 100%;
    }
}

.poly-card-strip-pill.is-countdown.is-imminent {
    color: #fb7185 !important;
    border-color: rgba(251, 113, 133, 0.4) !important;
    background: rgba(251, 113, 133, 0.08) !important;
    animation: polyImminentPulse 1.4s ease-in-out infinite;
}
@keyframes polyImminentPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(251,113,133,0.0); }
    50% { box-shadow: 0 0 0 4px rgba(251,113,133,0.18); }
}

.poly-card.is-collapsible .poly-card-strip[data-card-toggle] {
    cursor: pointer;
    user-select: none;
    transition: background .2s ease;
}
.poly-card.is-collapsible .poly-card-strip[data-card-toggle]:hover {
    background: rgba(255,255,255,0.025);
}
.poly-card-strip-chevron {
    margin-left: 6px;
    color: rgba(255,255,255,0.4);
    font-size: 10px;
    transition: transform .25s cubic-bezier(.4,0,.2,1);
    display: inline-block;
}
.poly-card.is-collapsed .poly-card-strip-chevron {
    transform: rotate(-90deg);
}

/* Body shows full content; collapse hides everything below the strip and the
   summary row appears in its place. */
.poly-card-body {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: max-height .35s cubic-bezier(.4,0,.2,1), opacity .25s ease;
}
.poly-card.is-collapsible.is-collapsed .poly-card-body {
    max-height: 0;
    opacity: 0;
    pointer-events: none;
}

/* Compact row only visible while collapsed */
.poly-card-collapsed-row {
    display: none;
    align-items: center;
    gap: 12px;
    padding: 8px 14px 12px;
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
    border-top: 1px dashed rgba(255,255,255,0.05);
    transition: background .2s ease;
}
.poly-card-collapsed-row:hover {
    background: rgba(255,255,255,0.02);
}
.poly-card.is-collapsible.is-collapsed .poly-card-collapsed-row {
    display: flex;
}
.poly-card-collapsed-crests {
    display: inline-flex;
    align-items: center;
}
.poly-card-collapsed-crests .poly-crest {
    width: 26px;
    height: 26px;
}
.poly-card-collapsed-crests .poly-crest:nth-child(2) {
    margin-left: -8px;
    border: 2px solid var(--poly-bg, #0a0d12);
    border-radius: 50%;
}
.poly-card-collapsed-pair {
    font-size: 12px;
    color: rgba(255,255,255,0.85);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-card-collapsed-pair strong {
    font-weight: 700;
    color: #f4f4f7;
}
.poly-card-collapsed-pair em {
    font-style: normal;
    color: rgba(255,255,255,0.35);
    margin: 0 4px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.poly-card-collapsed-score {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 13px;
    font-weight: 700;
    color: #f8f8fa;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(255,255,255,0.05);
    letter-spacing: 0.04em;
}
.poly-card-collapsed-pick {
    font-size: 11px;
    color: rgba(255,255,255,0.6);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.poly-card-collapsed-pick span {
    color: rgba(255,255,255,0.35);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}
.poly-card-collapsed-result {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 999px;
    letter-spacing: 0.04em;
}
.poly-card-collapsed-result.is-positive {
    color: #4ade80;
    background: rgba(74,222,128,0.12);
    border: 1px solid rgba(74,222,128,0.25);
}
.poly-card-collapsed-result.is-zero {
    color: rgba(255,255,255,0.55);
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.07);
}
.poly-card-collapsed-expand {
    margin-left: auto;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.35);
    transition: color .2s ease, transform .2s ease;
}
.poly-card-collapsed-row:hover .poly-card-collapsed-expand {
    color: #4ade80;
    transform: translateX(2px);
}

/* Tone the whole collapsed card down so it visually recedes vs open ones */
.poly-card.is-collapsible.is-collapsed {
    background: rgba(255,255,255,0.012);
}
.poly-card.is-collapsible.is-collapsed .poly-card-strip {
    border-bottom: none;
}

@media (max-width: 768px) {
    .poly-card-collapsed-row { gap: 8px; padding: 6px 10px 10px; }
    .poly-card-collapsed-pair em { display: none; }
    .poly-card-collapsed-pick span { display: none; }
    .poly-card-collapsed-expand { display: none; }
}

/* =========================================================================
   Mobile touch-target enforcement
   Apple HIG / WCAG 2.5.5 require >=44x44 CSS px for tappable controls.
   This block raises every named offender from the mobile UX audit to >=44px
   without disturbing desktop layout. Use min-height and adequate padding so
   icon-only buttons remain compact while text buttons grow naturally.
   ========================================================================= */
@media (max-width: 900px) {
    /* Header nav submenu buttons (PREDICT / LEAGUES / LEADERBOARD) */
    body .poly-header-shell .poly-mega-trigger,
    body .poly-header-shell .poly-mega-direct,
    body .poly-mega-trigger,
    body .poly-mega-direct {
        min-height: 44px !important;
    }

    /* Ticker "All matches →" CTA */
    body .poly-ticker-cta {
        min-height: 44px !important;
        padding: 10px 16px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* Match list filter chips (Everything / Open / My picks / Locked / Final) */
    body .poly-rail-filter {
        min-height: 44px !important;
        padding: 10px 14px !important;
    }

    /* Date-strip / matchday tabs */
    body .poly-matchweek-chip {
        min-height: 44px !important;
        padding: 10px 12px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* Homepage CTAs ("Make this pick", "Open matches", etc.) */
    body .poly-home-btn,
    body .poly-home-feature-cta,
    body .poly-cta-pill,
    body .poly-home-cta {
        min-height: 44px !important;
        padding: 12px 18px !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 8px !important;
    }

    /* Profile / leaderboard tab strips */
    body .poly-profile-tab,
    body .poly-board-period-tab,
    body .poly-board-tab,
    body .poly-period-tab {
        min-height: 44px !important;
        padding: 10px 14px !important;
    }

    /* Header search & bell — explicit so they pass even with their square shape */
    body .poly-header-search,
    body .poly-header-bell {
        min-width: 44px !important;
        min-height: 44px !important;
    }

    /* Floating action / save bar buttons */
    body .poly-actionbar a,
    body .poly-actionbar button,
    body .poly-saveflow a,
    body .poly-saveflow button {
        min-height: 44px !important;
    }

    /* Generic safety net: any header-area control that ended up small */
    body .poly-header-shell a.poly-header-link,
    body .poly-header-shell a.poly-header-cta,
    body .poly-header-shell a.poly-header-profile {
        min-height: 44px !important;
    }
}

/* =========================================================================
   Header search button — disabled "coming soon" affordance.
   Button has [disabled] in markup but we want it visually obvious so users
   don't tap and wonder why nothing happened.
   ========================================================================= */
body .poly-header-search[disabled] {
    opacity: 0.42 !important;
    cursor: not-allowed !important;
    position: relative;
}
body .poly-header-search[disabled]::after {
    content: "soon";
    position: absolute;
    top: -3px;
    right: -3px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #0a0d12;
    background: linear-gradient(135deg, #facc15, #fbbf24);
    padding: 2px 4px;
    border-radius: 3px;
    line-height: 1;
    pointer-events: none;
    box-shadow: 0 2px 6px rgba(251,191,36,0.4);
}
body .poly-header-search[disabled]:hover {
    background: rgba(255,255,255,0.04) !important;
    border-color: rgba(255,255,255,0.08) !important;
}

/* =========================================================================
   Mini-leagues / Groups — hub + detail page styles
   Surface: [polyleagues_groups] shortcode rendered inside .mfc-shell.
   ========================================================================= */
body .poly-mega-badge-new {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 999px;
    background: linear-gradient(135deg, #4ade80, #22d3ee);
    color: #04060c;
    font-family: 'JetBrains Mono', monospace;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.4;
    vertical-align: middle;
    text-transform: uppercase;
}
body .poly-mega-badge-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 6px;
    min-width: 18px;
    height: 18px;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(74,222,128,0.16);
    color: #4ade80;
    border: 1px solid rgba(74,222,128,0.34);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
    vertical-align: middle;
}

.poly-groups {
    color: #f4f4f7;
    font-family: 'Plus Jakarta Sans', sans-serif;
    max-width: 1180px;
    margin: 0 auto;
    padding: 28px 22px 80px;
    position: relative;
}
.poly-groups-eyebrow {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #4ade80;
    margin: 0 0 8px;
}
.poly-groups-title {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: clamp(36px, 5vw, 60px);
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.02;
    margin: 0 0 14px;
}
.poly-groups-sub {
    color: rgba(244,244,247,0.72);
    font-size: 15px;
    line-height: 1.55;
    max-width: 640px;
    margin: 0 0 20px;
}
.poly-groups-meta {
    color: rgba(244,244,247,0.55);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.04em;
    margin: 12px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* HUB layout */
.poly-groups-hero { margin-bottom: 28px; }
.poly-groups-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 20px;
    margin-bottom: 36px;
}
@media (max-width: 880px) {
    .poly-groups-grid { grid-template-columns: 1fr; }
}
.poly-groups-card {
    background: linear-gradient(180deg, rgba(14,18,24,0.72), rgba(8,11,16,0.86));
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 16px;
    padding: 22px 22px 24px;
    position: relative;
    overflow: hidden;
}
.poly-groups-card::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(160deg, rgba(74,222,128,0.18), transparent 55%);
    opacity: 0.5;
    mix-blend-mode: screen;
}
.poly-groups-card-create::before {
    background: linear-gradient(160deg, rgba(74,222,128,0.22), transparent 60%);
}
.poly-groups-card-join::before {
    background: linear-gradient(160deg, rgba(34,211,238,0.20), transparent 60%);
}
.poly-groups-card > * { position: relative; z-index: 1; }
.poly-groups-card header { margin-bottom: 14px; }
.poly-groups-card-eyebrow {
    display: inline-block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.55);
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.1);
    margin-bottom: 8px;
}
.poly-groups-card h2 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 22px;
    font-weight: 800;
    margin: 6px 0;
    letter-spacing: -0.005em;
}
.poly-groups-card header p {
    color: rgba(244,244,247,0.65);
    font-size: 13px;
    margin: 0;
    line-height: 1.4;
}

/* Forms */
.poly-groups-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.poly-groups-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.poly-groups-field > span {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.12em;
    color: rgba(244,244,247,0.55);
    text-transform: uppercase;
}
.poly-groups-field > span em {
    font-style: normal;
    color: rgba(244,244,247,0.35);
    margin-left: 4px;
    text-transform: none;
    letter-spacing: 0.04em;
}
.poly-groups-field input[type="text"],
.poly-groups-field textarea,
.poly-groups-field select {
    background: rgba(0,0,0,0.45);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 10px;
    padding: 11px 13px;
    color: #f4f4f7;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.poly-groups-field textarea { resize: vertical; }
.poly-groups-field input:focus,
.poly-groups-field textarea:focus,
.poly-groups-field select:focus {
    outline: none;
    border-color: rgba(74,222,128,0.55);
    box-shadow: 0 0 0 3px rgba(74,222,128,0.18);
}
.poly-groups-field-checkbox {
    flex-direction: row;
    align-items: flex-start;
    gap: 9px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    color: rgba(244,244,247,0.72);
    cursor: pointer;
}
.poly-groups-field-checkbox input { margin-top: 2px; flex-shrink: 0; }
.poly-groups-field-checkbox span { letter-spacing: 0; text-transform: none; font-family: inherit; font-size: inherit; color: inherit; }
.poly-groups-field-checkbox em { color: rgba(244,244,247,0.4); font-style: normal; margin-left: 4px; }

.poly-groups-formstatus {
    margin: 4px 0 0;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: rgba(244,244,247,0.55);
    min-height: 14px;
}
.poly-groups-formstatus.is-error { color: #fb7185; }
.poly-groups-formstatus.is-ok    { color: #4ade80; }

/* Buttons */
.poly-groups-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    padding: 11px 18px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.poly-groups-btn[disabled] { opacity: 0.55; cursor: progress; }
.poly-groups-btn-primary {
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    color: #04060c;
    box-shadow: 0 12px 28px -10px rgba(34,214,125,0.55);
}
.poly-groups-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 16px 32px -10px rgba(34,214,125,0.7); }
.poly-groups-btn-secondary {
    background: linear-gradient(180deg, #22d3ee 0%, #0891b2 100%);
    color: #04060c;
    box-shadow: 0 12px 28px -10px rgba(34,211,238,0.5);
}
.poly-groups-btn-secondary:hover { transform: translateY(-1px); }
.poly-groups-btn-ghost {
    background: rgba(255,255,255,0.04);
    color: #f4f4f7;
    border-color: rgba(255,255,255,0.12);
}
.poly-groups-btn-ghost:hover { background: rgba(255,255,255,0.08); border-color: rgba(74,222,128,0.4); }
.poly-groups-btn-danger {
    background: rgba(244,63,94,0.08);
    color: #fb7185;
    border-color: rgba(244,63,94,0.35);
    margin-top: 10px;
}
.poly-groups-btn-danger:hover { background: rgba(244,63,94,0.18); }
.poly-groups-link-btn {
    background: transparent;
    border: none;
    color: #fb7185;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    padding: 4px 6px;
}
.poly-groups-link-btn:hover { color: #fda4af; text-decoration: underline; }

/* My leagues list */
.poly-groups-mine { margin-top: 32px; }
.poly-groups-mine-head { margin-bottom: 14px; }
.poly-groups-mine-head h2 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 22px;
    font-weight: 800;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.poly-groups-count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: #4ade80;
    background: rgba(74,222,128,0.12);
    padding: 3px 9px;
    border-radius: 999px;
    border: 1px solid rgba(74,222,128,0.3);
}
.poly-groups-mine-sub {
    color: rgba(244,244,247,0.5);
    font-size: 13px;
    margin: 4px 0 0;
}
.poly-groups-empty {
    border: 1px dashed rgba(255,255,255,0.12);
    border-radius: 14px;
    padding: 22px;
    color: rgba(244,244,247,0.6);
    background: rgba(255,255,255,0.02);
}
.poly-groups-mine-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 12px;
}
.poly-groups-mine-card {
    display: grid;
    grid-template-columns: 44px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 14px 18px;
    background: linear-gradient(180deg, rgba(14,18,24,0.72), rgba(8,11,16,0.85));
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 14px;
    text-decoration: none;
    color: #f4f4f7;
    transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.poly-groups-mine-card:hover {
    border-color: rgba(74,222,128,0.42);
    transform: translateY(-1px);
    background: linear-gradient(180deg, rgba(20,28,36,0.85), rgba(10,14,20,0.9));
}
.poly-groups-mine-icon {
    font-size: 22px;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(255,255,255,0.04);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,0.08);
}
.poly-groups-mine-body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}
.poly-groups-mine-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 15px;
    color: #f4f4f7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: flex;
    gap: 8px;
    align-items: center;
}
.poly-groups-mine-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(244,244,247,0.5);
    letter-spacing: 0.04em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-groups-mine-arrow {
    color: rgba(244,244,247,0.4);
    font-size: 18px;
    transition: transform .15s ease, color .15s ease;
}
.poly-groups-mine-card:hover .poly-groups-mine-arrow {
    color: #4ade80;
    transform: translateX(2px);
}
.poly-groups-pill {
    display: inline-block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(255,255,255,0.06);
    color: rgba(244,244,247,0.7);
    border: 1px solid rgba(255,255,255,0.1);
    line-height: 1.4;
    vertical-align: middle;
}
.poly-groups-pill.is-admin {
    background: rgba(74,222,128,0.14);
    color: #4ade80;
    border-color: rgba(74,222,128,0.34);
}
.poly-groups-pill.is-you {
    background: rgba(34,211,238,0.16);
    color: #22d3ee;
    border-color: rgba(34,211,238,0.36);
}

/* DETAIL view */
.poly-groups-back { margin: 0 0 14px; font-family: 'JetBrains Mono', monospace; font-size: 11px; }
.poly-groups-back a { color: rgba(244,244,247,0.55); text-decoration: none; }
.poly-groups-back a:hover { color: #4ade80; }

.poly-groups-detail-hero {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: flex-start;
    padding: 24px;
    border-radius: 18px;
    background: linear-gradient(160deg, rgba(14,18,24,0.85), rgba(8,11,16,0.92));
    border: 1px solid rgba(255,255,255,0.08);
    position: relative;
    overflow: hidden;
    margin-bottom: 24px;
}
.poly-groups-detail-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(140% 80% at 100% 0%, rgba(74,222,128,0.12), transparent 60%);
    pointer-events: none;
}
.poly-groups-detail-hero > * { position: relative; }
.poly-groups-detail-hero-main {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}
.poly-groups-detail-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    flex-shrink: 0;
}
.poly-groups-invite {
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    min-width: 220px;
}
.poly-groups-invite-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.55);
}
.poly-groups-invite-code {
    display: inline-block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 26px;
    font-weight: 800;
    letter-spacing: 0.32em;
    color: #f4f4f7;
    padding: 10px 18px;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(74,222,128,0.16), rgba(34,211,238,0.12));
    border: 1px solid rgba(74,222,128,0.34);
}
.poly-groups-invite-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 720px) {
    .poly-groups-detail-hero { grid-template-columns: 1fr; }
    .poly-groups-invite { text-align: left; align-items: flex-start; min-width: 0; }
    .poly-groups-invite-actions { justify-content: flex-start; }
    .poly-groups-invite-code { font-size: 22px; letter-spacing: 0.24em; padding: 9px 14px; }
}

.poly-groups-detail-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 22px;
}
@media (max-width: 980px) {
    .poly-groups-detail-grid { grid-template-columns: 1fr; }
}
.poly-groups-detail-board,
.poly-groups-section {
    background: linear-gradient(180deg, rgba(14,18,24,0.72), rgba(8,11,16,0.85));
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 16px;
    padding: 20px;
}
.poly-groups-detail-aside { display: flex; flex-direction: column; gap: 18px; }
.poly-groups-section-head { margin-bottom: 14px; }
.poly-groups-section-head h2,
.poly-groups-section-head h3 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    margin: 0 0 4px;
    letter-spacing: -0.005em;
}
.poly-groups-section-head h2 { font-size: 20px; }
.poly-groups-section-head h3 { font-size: 15px; letter-spacing: 0.02em; }
.poly-groups-section-head p {
    color: rgba(244,244,247,0.55);
    font-size: 12px;
    margin: 0;
}

/* Leaderboard rows */
.poly-groups-board-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.poly-groups-board-row {
    display: grid;
    grid-template-columns: 50px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    background: rgba(255,255,255,0.02);
    border: 1px solid transparent;
    transition: background .15s ease, border-color .15s ease;
}
.poly-groups-board-row:hover { background: rgba(255,255,255,0.04); }
.poly-groups-board-row.is-you {
    background: rgba(34,211,238,0.08);
    border-color: rgba(34,211,238,0.3);
}
.poly-groups-board-row.is-gold   { background: rgba(251,191,36,0.10); border-color: rgba(251,191,36,0.3); }
.poly-groups-board-row.is-silver { background: rgba(226,232,240,0.05); border-color: rgba(226,232,240,0.2); }
.poly-groups-board-row.is-bronze { background: rgba(217,119,6,0.08); border-color: rgba(217,119,6,0.25); }
.poly-groups-board-rank {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 700;
    color: rgba(244,244,247,0.55);
    letter-spacing: 0.04em;
}
.poly-groups-board-row.is-gold   .poly-groups-board-rank { color: #fbbf24; }
.poly-groups-board-row.is-silver .poly-groups-board-rank { color: #e2e8f0; }
.poly-groups-board-row.is-bronze .poly-groups-board-rank { color: #d97706; }
.poly-groups-board-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-groups-board-stats {
    text-align: right;
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.1;
}
.poly-groups-board-pts {
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    font-weight: 700;
    color: #4ade80;
}
.poly-groups-board-pts em { font-style: normal; font-size: 9px; letter-spacing: 0.1em; color: rgba(244,244,247,0.45); margin-left: 3px; }
.poly-groups-board-acc {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    color: rgba(244,244,247,0.5);
    letter-spacing: 0.04em;
}

/* Members list */
.poly-groups-members {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.poly-groups-members li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(255,255,255,0.02);
}
.poly-groups-member-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 7px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-groups-detail-text {
    color: rgba(244,244,247,0.65);
    font-size: 13px;
    line-height: 1.5;
    margin: 0 0 12px;
}

@media (max-width: 540px) {
    .poly-groups { padding: 22px 14px 90px; }
    .poly-groups-card { padding: 18px 16px 20px; }
    .poly-groups-detail-hero { padding: 18px 16px; }
    .poly-groups-board-row { grid-template-columns: 36px 1fr auto; padding: 9px 10px; }
    .poly-groups-board-name { font-size: 13px; }
    .poly-groups-board-pts { font-size: 13px; }
}

/* =========================================================================
   Mini-leagues optimization pass — share panel, rank pill, hub previews
   ========================================================================= */

/* Hub card "top member" preview row */
.poly-groups-mine-card {
    grid-template-rows: auto auto;
    grid-template-columns: 44px 1fr auto;
    align-items: start;
    row-gap: 6px;
}
.poly-groups-mine-icon { grid-row: 1 / span 2; }
.poly-groups-mine-arrow { grid-row: 1 / span 2; align-self: center; }
.poly-groups-mine-leader {
    grid-column: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 9px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(74,222,128,0.10), rgba(34,211,238,0.08));
    border: 1px solid rgba(74,222,128,0.22);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    line-height: 1;
    color: rgba(244,244,247,0.85);
    width: fit-content;
    max-width: 100%;
}
.poly-groups-mine-leader-icon { font-size: 12px; line-height: 1; }
.poly-groups-mine-leader-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 11px;
    color: #f4f4f7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 140px;
}
.poly-groups-mine-leader-pts { color: #4ade80; font-weight: 700; letter-spacing: 0.04em; }
.poly-groups-mine-leader-pts em { font-style: normal; font-size: 8px; color: rgba(244,244,247,0.45); margin-left: 3px; letter-spacing: 0.1em; }

/* "Your rank" pill in detail hero */
.poly-groups-rank-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(34,211,238,0.14), rgba(74,222,128,0.10));
    border: 1px solid rgba(34,211,238,0.34);
    margin-top: 14px;
    font-family: 'JetBrains Mono', monospace;
    line-height: 1;
}
.poly-groups-rank-label {
    font-size: 9px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.55);
}
.poly-groups-rank-value {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #22d3ee;
    letter-spacing: -0.01em;
}
.poly-groups-rank-value em {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    color: rgba(244,244,247,0.55);
    letter-spacing: 0.04em;
    margin-left: 2px;
}
.poly-groups-rank-pts {
    font-size: 11px;
    font-weight: 700;
    color: #4ade80;
    letter-spacing: 0.06em;
    padding-left: 10px;
    border-left: 1px solid rgba(255,255,255,0.12);
}
.poly-groups-rank-pts em { font-style: normal; font-size: 9px; color: rgba(244,244,247,0.45); margin-left: 3px; letter-spacing: 0.1em; }

/* Share panel — replaces single Copy button */
.poly-groups-share {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
    justify-content: flex-end;
}
.poly-groups-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 11px;
    min-height: 36px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,0.10);
    background: rgba(255,255,255,0.04);
    color: #f4f4f7;
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: transform .12s ease, background .15s ease, border-color .15s ease, color .15s ease;
}
.poly-groups-share-btn:hover { transform: translateY(-1px); background: rgba(255,255,255,0.08); border-color: rgba(74,222,128,0.4); }
.poly-groups-share-btn .poly-groups-share-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: rgba(244,244,247,0.85);
    transition: color .15s ease;
}
.poly-groups-share-btn:hover .poly-groups-share-icon { color: #4ade80; }
.poly-groups-share-btn.is-flashed {
    background: rgba(74,222,128,0.16) !important;
    border-color: rgba(74,222,128,0.5) !important;
    color: #4ade80 !important;
}
.poly-groups-share-btn.is-whatsapp:hover { color: #25D366; border-color: rgba(37,211,102,0.5); }
.poly-groups-share-btn.is-whatsapp:hover .poly-groups-share-icon { color: #25D366; }
.poly-groups-share-btn.is-telegram:hover { color: #229ED9; border-color: rgba(34,158,217,0.5); }
.poly-groups-share-btn.is-telegram:hover .poly-groups-share-icon { color: #229ED9; }
.poly-groups-share-btn.is-x:hover { color: #f4f4f7; border-color: rgba(244,244,247,0.5); }
.poly-groups-share-btn.is-email:hover { color: #fbbf24; border-color: rgba(251,191,36,0.5); }
.poly-groups-share-btn.is-email:hover .poly-groups-share-icon { color: #fbbf24; }
.poly-groups-share-btn.is-regen { color: rgba(244,244,247,0.55); }
.poly-groups-share-btn.is-regen:hover { color: #fb7185; border-color: rgba(244,63,94,0.5); }
.poly-groups-share-btn.is-regen:hover .poly-groups-share-icon { color: #fb7185; }

/* Mobile share panel: collapse labels, icon-only chips */
@media (max-width: 720px) {
    .poly-groups-share { justify-content: flex-start; gap: 6px; }
    .poly-groups-share-btn { padding: 0 10px; }
    .poly-groups-share-btn span:not(.poly-groups-share-icon) { display: none; }
    .poly-groups-share-btn.is-flashed span:not(.poly-groups-share-icon) {
        display: inline; font-size: 10px;
    }
    .poly-groups-rank-pill { padding: 7px 12px; gap: 8px; }
    .poly-groups-rank-value { font-size: 19px; }
}

/* =========================================================================
   Mini-leagues — copy revision pass: callout, how-it-works, invite hint
   ========================================================================= */

/* Hero headline emphasis */
.poly-groups-title em {
    font-style: normal;
    background: linear-gradient(135deg, #4ade80 0%, #22d3ee 60%, #4ade80 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: polyGroupsTitleShift 8s ease-in-out infinite;
}
@keyframes polyGroupsTitleShift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

/* Explainer callout strip — "Mini-leagues are an extra layer, not a replacement." */
.poly-groups-callout {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 14px 18px;
    margin: 0 0 26px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(34,211,238,0.08), rgba(74,222,128,0.04));
    border: 1px solid rgba(34,211,238,0.22);
    color: rgba(244,244,247,0.78);
    font-size: 13.5px;
    line-height: 1.5;
}
.poly-groups-callout-icon {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: rgba(34,211,238,0.14);
    color: #22d3ee;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: -1px;
}
.poly-groups-callout-text strong {
    color: #f4f4f7;
    font-weight: 700;
}
.poly-groups-callout-text em {
    font-style: normal;
    font-weight: 700;
    color: #4ade80;
}

/* How-it-works section */
.poly-groups-how {
    margin: 36px 0 12px;
}
.poly-groups-how-head {
    margin-bottom: 16px;
}
.poly-groups-how-head h2 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 24px;
    font-weight: 800;
    margin: 4px 0 0;
    letter-spacing: -0.005em;
}
.poly-groups-how-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
@media (max-width: 880px) {
    .poly-groups-how-grid { grid-template-columns: 1fr; }
}
.poly-groups-how-tile {
    position: relative;
    padding: 22px 22px 18px;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(14,18,24,0.6), rgba(8,11,16,0.78));
    border: 1px solid rgba(255,255,255,0.07);
    overflow: hidden;
    transition: transform .15s ease, border-color .15s ease;
}
.poly-groups-how-tile:hover {
    transform: translateY(-2px);
    border-color: rgba(74,222,128,0.32);
}
.poly-groups-how-tile::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(74,222,128,0.5), transparent);
    opacity: 0.7;
}
.poly-groups-how-num {
    position: absolute;
    top: 16px;
    right: 18px;
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: 30px;
    font-weight: 800;
    color: rgba(255,255,255,0.06);
    letter-spacing: -0.02em;
    line-height: 1;
}
.poly-groups-how-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(74,222,128,0.10);
    border: 1px solid rgba(74,222,128,0.24);
    font-size: 22px;
    margin-bottom: 12px;
}
.poly-groups-how-tile h3 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 16px;
    font-weight: 800;
    margin: 0 0 6px;
    letter-spacing: -0.005em;
    color: #f4f4f7;
}
.poly-groups-how-tile p {
    color: rgba(244,244,247,0.65);
    font-size: 13px;
    line-height: 1.5;
    margin: 0;
}

/* Invite hint paragraph below the code */
.poly-groups-invite-hint {
    font-size: 11px;
    color: rgba(244,244,247,0.5);
    margin: 0 0 4px;
    line-height: 1.4;
    max-width: 280px;
    text-align: right;
}
@media (max-width: 720px) {
    .poly-groups-invite-hint { text-align: left; max-width: none; }
}

/* Admin "deleting archives the league" fineprint */
.poly-groups-detail-fineprint {
    font-size: 11px;
    color: rgba(244,244,247,0.45);
    margin: 8px 0 0;
    line-height: 1.5;
    font-style: italic;
}

/* Members header pill alignment (count chip beside h3) */
.poly-groups-section-head h3 .poly-groups-pill {
    margin-left: 6px;
    font-size: 9px;
    padding: 1px 7px;
    vertical-align: middle;
}

/* Empty-state strong line */
.poly-groups-empty p strong {
    color: #f4f4f7;
    font-weight: 700;
    display: block;
    margin-bottom: 4px;
}

/* =========================================================================
   League detail — Standings / Activity tabs + activity feed
   ========================================================================= */
.poly-groups-tabs {
    display: flex;
    gap: 2px;
    margin: -4px -4px 16px;
    padding: 4px;
    background: rgba(0,0,0,0.32);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 14px;
    width: fit-content;
}
.poly-groups-tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border-radius: 10px;
    border: none;
    background: transparent;
    color: rgba(244,244,247,0.55);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, transform .12s ease;
}
.poly-groups-tab:hover { color: #f4f4f7; background: rgba(255,255,255,0.04); }
.poly-groups-tab.is-active {
    background: linear-gradient(180deg, rgba(74,222,128,0.16), rgba(34,211,238,0.08));
    color: #f4f4f7;
    box-shadow: inset 0 0 0 1px rgba(74,222,128,0.32);
}
.poly-groups-tab.is-active .poly-groups-tab-icon { transform: scale(1.05); }
.poly-groups-tab-icon { font-size: 13px; line-height: 1; }
.poly-groups-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    padding: 0 5px;
    height: 16px;
    border-radius: 999px;
    background: rgba(74,222,128,0.18);
    color: #4ade80;
    font-size: 9px;
    letter-spacing: 0.04em;
    line-height: 1;
}
.poly-groups-tab.is-active .poly-groups-tab-count {
    background: rgba(34,211,238,0.18);
    color: #22d3ee;
}
.poly-groups-tab-panel { animation: polyGroupsTabFade .25s ease; }
@keyframes polyGroupsTabFade {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: none; }
}

/* Activity feed list */
.poly-groups-activity {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 640px;
    overflow-y: auto;
    padding-right: 4px;
}
.poly-groups-activity::-webkit-scrollbar { width: 6px; }
.poly-groups-activity::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 999px; }

.poly-groups-activity-item {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255,255,255,0.02);
    border: 1px solid transparent;
    transition: background .15s ease, border-color .15s ease, transform .12s ease;
}
.poly-groups-activity-item:hover {
    background: rgba(255,255,255,0.04);
    transform: translateX(1px);
}
.poly-groups-activity-item.is-you {
    background: rgba(34,211,238,0.06);
    border-color: rgba(34,211,238,0.22);
}
.poly-groups-activity-item.tone-exact {
    background: linear-gradient(180deg, rgba(251,191,36,0.10), rgba(251,191,36,0.04));
    border-color: rgba(251,191,36,0.32);
}
.poly-groups-activity-item.tone-success {
    background: rgba(74,222,128,0.05);
    border-color: rgba(74,222,128,0.22);
}
.poly-groups-activity-item.tone-miss {
    opacity: 0.72;
}
.poly-groups-activity-item.tone-join {
    background: linear-gradient(180deg, rgba(34,211,238,0.06), rgba(74,222,128,0.04));
    border-color: rgba(34,211,238,0.22);
}

.poly-groups-activity-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
    font-size: 16px;
    line-height: 1;
    flex-shrink: 0;
}
.tone-exact .poly-groups-activity-icon {
    background: rgba(251,191,36,0.16);
    border-color: rgba(251,191,36,0.4);
}
.tone-success .poly-groups-activity-icon {
    background: rgba(74,222,128,0.14);
    border-color: rgba(74,222,128,0.38);
    color: #4ade80;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 14px;
}
.tone-miss .poly-groups-activity-icon {
    background: rgba(255,255,255,0.02);
    border-color: rgba(255,255,255,0.06);
    color: rgba(244,244,247,0.4);
    font-size: 22px;
}
.tone-pending .poly-groups-activity-icon {
    background: rgba(255,255,255,0.04);
    color: rgba(244,244,247,0.65);
}
.tone-join .poly-groups-activity-icon {
    background: rgba(34,211,238,0.12);
    border-color: rgba(34,211,238,0.32);
}

.poly-groups-activity-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    overflow: hidden;
}
.poly-groups-activity-line {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    line-height: 1.35;
    color: rgba(244,244,247,0.85);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-groups-activity-line strong {
    font-weight: 700;
    color: #f4f4f7;
}
.poly-groups-activity-verb {
    color: rgba(244,244,247,0.65);
    margin-left: 4px;
}
.poly-groups-activity-detail {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: rgba(244,244,247,0.55);
    letter-spacing: 0.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-groups-activity-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    color: rgba(244,244,247,0.4);
    letter-spacing: 0.04em;
}
.poly-groups-activity-pts {
    align-self: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 800;
    color: #4ade80;
    letter-spacing: 0.02em;
    flex-shrink: 0;
    padding-left: 8px;
}
.poly-groups-activity-pts em {
    font-style: normal;
    font-size: 9px;
    letter-spacing: 0.1em;
    color: rgba(244,244,247,0.45);
    margin-left: 3px;
    font-weight: 600;
}
.poly-groups-activity-pts.is-zero { color: rgba(244,244,247,0.35); font-weight: 600; }
.tone-exact .poly-groups-activity-pts { color: #fbbf24; }

@media (max-width: 540px) {
    .poly-groups-tabs { width: auto; }
    .poly-groups-tab { flex: 1; padding: 8px 10px; letter-spacing: 0.08em; }
    .poly-groups-activity-item { grid-template-columns: 32px 1fr auto; padding: 9px 10px; gap: 10px; }
    .poly-groups-activity-icon { width: 32px; height: 32px; font-size: 14px; }
    .poly-groups-activity-line { font-size: 12.5px; white-space: normal; }
    .poly-groups-activity-pts { font-size: 12px; }
}

/* Tab count chip — unread variant pulses */
.poly-groups-tab-count.is-unread {
    background: linear-gradient(135deg, #f472b6, #ec4899);
    color: #fff;
    border: 1px solid rgba(244,114,182,0.6);
    box-shadow: 0 0 0 0 rgba(244,114,182,0.45);
    animation: polyChatUnreadPulse 2.6s ease-out infinite;
}
@keyframes polyChatUnreadPulse {
    0%   { box-shadow: 0 0 0 0 rgba(244,114,182,0.45); }
    65%  { box-shadow: 0 0 0 6px rgba(244,114,182,0); }
    100% { box-shadow: 0 0 0 0 rgba(244,114,182,0); }
}

/* =========================================================================
   League chat — bubbles, composer, stream
   ========================================================================= */
.poly-groups-chat {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.poly-groups-chat-stream {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 520px;
    overflow-y: auto;
    padding: 4px 6px 10px;
    scroll-behavior: smooth;
}
.poly-groups-chat-stream::-webkit-scrollbar { width: 6px; }
.poly-groups-chat-stream::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 999px; }

.poly-groups-chat-empty {
    text-align: center;
    padding: 30px 18px;
    border: 1px dashed rgba(255,255,255,0.10);
    border-radius: 14px;
    background: rgba(255,255,255,0.015);
    color: rgba(244,244,247,0.6);
}
.poly-groups-chat-empty-icon {
    display: block;
    font-size: 32px;
    margin-bottom: 10px;
    opacity: 0.7;
}
.poly-groups-chat-empty p { margin: 0; font-size: 13px; line-height: 1.5; }
.poly-groups-chat-empty p strong { color: #f4f4f7; display: block; margin-bottom: 4px; }

.poly-groups-chat-msg {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 10px;
    align-items: flex-start;
    animation: polyChatMsgIn .25s cubic-bezier(.4,0,.2,1);
}
.poly-groups-chat-msg.is-you {
    grid-template-columns: 1fr 36px;
}
.poly-groups-chat-msg.is-you .poly-groups-chat-avatar { order: 2; }
.poly-groups-chat-msg.is-you .poly-groups-chat-bubble { order: 1; }
@keyframes polyChatMsgIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: none; }
}

.poly-groups-chat-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(74,222,128,0.22), rgba(34,211,238,0.18));
    color: #f4f4f7;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 14px;
    border: 1px solid rgba(255,255,255,0.08);
    flex-shrink: 0;
}
.poly-groups-chat-msg.is-you .poly-groups-chat-avatar {
    background: linear-gradient(135deg, rgba(34,211,238,0.32), rgba(74,222,128,0.22));
    border-color: rgba(34,211,238,0.45);
}

.poly-groups-chat-bubble {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px;
    padding: 10px 14px 11px;
    max-width: 90%;
    position: relative;
    transition: background .15s ease, border-color .15s ease;
}
.poly-groups-chat-msg.is-you .poly-groups-chat-bubble {
    background: linear-gradient(180deg, rgba(34,211,238,0.10), rgba(74,222,128,0.06));
    border-color: rgba(34,211,238,0.32);
    margin-left: auto;
}
.poly-groups-chat-bubble:hover .poly-groups-chat-del { opacity: 1; }
.poly-groups-chat-bubble-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
    font-family: 'JetBrains Mono', monospace;
}
.poly-groups-chat-bubble-head strong {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    color: #f4f4f7;
    letter-spacing: 0;
}
.poly-groups-chat-bubble-head em {
    font-style: normal;
    font-size: 9.5px;
    color: rgba(244,244,247,0.45);
    letter-spacing: 0.04em;
}
.poly-groups-chat-del {
    margin-left: auto;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.08);
    color: rgba(244,244,247,0.5);
    width: 22px;
    height: 22px;
    border-radius: 999px;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    opacity: 0;
    transition: opacity .15s ease, color .15s ease, border-color .15s ease, background .15s ease;
    padding: 0;
}
.poly-groups-chat-del:hover {
    color: #fb7185;
    border-color: rgba(244,63,94,0.45);
    background: rgba(244,63,94,0.08);
}
.poly-groups-chat-del:focus { opacity: 1; outline: none; }
.poly-groups-chat-body {
    margin: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #f4f4f7;
    word-wrap: break-word;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

/* Composer */
.poly-groups-chat-composer {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    padding: 8px;
    background: rgba(0,0,0,0.32);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.poly-groups-chat-composer:focus-within {
    border-color: rgba(74,222,128,0.45);
    box-shadow: 0 0 0 3px rgba(74,222,128,0.12);
}
.poly-groups-chat-composer textarea {
    flex: 1 1 auto;
    border: none;
    background: transparent;
    color: #f4f4f7;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    line-height: 1.5;
    resize: none;
    padding: 8px 10px;
    min-height: 40px;
    max-height: 156px;
    outline: none;
}
.poly-groups-chat-composer textarea::placeholder { color: rgba(244,244,247,0.35); }
.poly-groups-chat-send {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    border: none;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    color: #04060c;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px -6px rgba(34,214,125,0.55);
    transition: transform .12s ease, box-shadow .15s ease;
    flex-shrink: 0;
}
.poly-groups-chat-send:hover { transform: translateY(-1px); }
.poly-groups-chat-send:active { transform: translateY(0); }
.poly-groups-chat-send:disabled { opacity: 0.55; cursor: progress; }
.poly-groups-chat-send svg { transform: translate(1px, -1px); }

.poly-groups-chat-status {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: rgba(244,244,247,0.55);
    margin: 0;
    min-height: 14px;
}
.poly-groups-chat-status.is-error { color: #fb7185; }
.poly-groups-chat-fineprint {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    color: rgba(244,244,247,0.35);
    letter-spacing: 0.04em;
    margin: 0;
    line-height: 1.4;
}

@media (max-width: 540px) {
    .poly-groups-chat-stream { max-height: 60vh; padding: 0; }
    .poly-groups-chat-bubble { max-width: 88%; padding: 9px 12px 10px; }
    .poly-groups-chat-body { font-size: 13.5px; }
    .poly-groups-chat-avatar { width: 32px; height: 32px; font-size: 13px; }
    .poly-groups-chat-msg { grid-template-columns: 32px 1fr; }
    .poly-groups-chat-msg.is-you { grid-template-columns: 1fr 32px; }
    .poly-groups-chat-del { opacity: 1; }
}

/* =========================================================================
   Predictor mobile UX fixes — pick states, save bar, tab fade, rail toggle
   Source: live-gameplay audit at 390px width.
   ========================================================================= */

/* Draw button — equals glyph (replaces ambiguous "×") */
body .poly-pick-team-draw {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    color: rgba(244,244,247,0.45);
    letter-spacing: 0;
    line-height: 1;
}
body .poly-pick-draw.is-selected .poly-pick-team-draw {
    color: rgba(4,6,12,0.7);
}

/* =========================================================================
   Mobile predictor nav — sticky command-bar switcher + bottom-sheet rail
   At ≤900px the desktop rail/cmdbar collapse to:
     - a sticky 2-button toolbar at the top of the predictor
       ("League" switcher + "View" switcher with popover)
     - a bottom-sheet rail that slides UP from the bottom
   Desktop above 900px is unchanged.
   ========================================================================= */
.poly-cmdbar-mobile { display: none; }

@media (max-width: 900px) {
    /* Hide the desktop sections — the mobile switcher takes over */
    body .poly-cmdbar-breadcrumb,
    body .poly-cmdbar-counters,
    body .poly-cmdbar-quickstats { display: none !important; }

    /* Hide the floating FAB — replaced by the sticky switcher */
    body .poly-rail-toggle { display: none !important; }

    /* Make the cmdbar sticky below the global header */
    body .poly-cmdbar {
        position: sticky;
        top: 60px;
        z-index: 80;
        margin: 0 -14px 12px;
        padding: 0;
        background: rgba(4,6,12,0.92);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        border-bottom: 1px solid rgba(255,255,255,0.06);
    }
    body .poly-cmdbar-inner {
        padding: 8px 12px;
        flex-wrap: nowrap !important;
        gap: 8px !important;
    }

    body .poly-cmdbar-mobile {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        width: 100%;
        position: relative;
    }
    body .poly-cmdbar-mswitch {
        display: grid;
        grid-template-columns: 22px 1fr 12px;
        gap: 8px;
        align-items: center;
        padding: 9px 12px;
        min-height: 44px;
        background: rgba(255,255,255,0.04);
        border: 1px solid rgba(255,255,255,0.10);
        border-radius: 12px;
        color: #f4f4f7;
        font-family: 'Plus Jakarta Sans', sans-serif;
        cursor: pointer;
        text-align: left;
        transition: background .15s ease, border-color .15s ease, transform .12s ease;
        position: relative;
        overflow: hidden;
    }
    body .poly-cmdbar-mswitch:active {
        transform: scale(0.985);
        background: rgba(74,222,128,0.06);
        border-color: rgba(74,222,128,0.32);
    }
    body .poly-cmdbar-mswitch[aria-expanded="true"] {
        background: rgba(74,222,128,0.10);
        border-color: rgba(74,222,128,0.45);
    }
    body .poly-cmdbar-mswitch-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: rgba(244,244,247,0.55);
    }
    body .poly-cmdbar-mswitch-league .poly-cmdbar-mswitch-icon { color: #4ade80; }
    body .poly-cmdbar-mswitch-view .poly-cmdbar-mswitch-icon { color: #22d3ee; }
    body .poly-cmdbar-mswitch-body {
        display: flex;
        flex-direction: column;
        gap: 1px;
        min-width: 0;
    }
    body .poly-cmdbar-mswitch-label {
        font-family: 'JetBrains Mono', monospace;
        font-size: 8.5px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: rgba(244,244,247,0.4);
        line-height: 1;
    }
    body .poly-cmdbar-mswitch-value {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 13px;
        font-weight: 700;
        color: #f4f4f7;
        line-height: 1.15;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    body .poly-cmdbar-mswitch-chevron {
        font-size: 10px;
        color: rgba(244,244,247,0.5);
        line-height: 1;
        transition: transform .18s ease;
    }
    body .poly-cmdbar-mswitch[aria-expanded="true"] .poly-cmdbar-mswitch-chevron {
        transform: rotate(180deg);
    }

    /* View popover — hangs below the cmdbar, anchored to right */
    body .poly-cmdbar-viewmenu {
        position: absolute;
        top: calc(100% + 6px);
        right: 0;
        width: min(calc(100vw - 24px), 280px);
        background: linear-gradient(180deg, rgba(14,18,24,0.98), rgba(8,11,16,0.99));
        border: 1px solid rgba(255,255,255,0.08);
        border-radius: 14px;
        box-shadow: 0 24px 60px -20px rgba(0,0,0,0.7);
        overflow: hidden;
        z-index: 90;
        animation: polyCmdbarMenuRise .22s cubic-bezier(.32,.72,0,1);
    }
    @keyframes polyCmdbarMenuRise {
        from { opacity: 0; transform: translateY(-6px); }
        to   { opacity: 1; transform: none; }
    }
    body .poly-cmdbar-viewmenu[hidden] { display: none; }
    body .poly-cmdbar-viewmenu-item {
        display: flex;
        flex-direction: column;
        gap: 2px;
        align-items: flex-start;
        width: 100%;
        padding: 11px 14px;
        background: transparent;
        border: none;
        border-bottom: 1px solid rgba(255,255,255,0.04);
        color: #f4f4f7;
        text-align: left;
        cursor: pointer;
        font-family: 'Plus Jakarta Sans', sans-serif;
        transition: background .12s ease, padding .12s ease;
    }
    body .poly-cmdbar-viewmenu-item:last-child { border-bottom: none; }
    body .poly-cmdbar-viewmenu-item:active {
        background: rgba(74,222,128,0.10);
        padding-left: 18px;
    }
    body .poly-cmdbar-viewmenu-label {
        font-weight: 700;
        font-size: 13.5px;
        line-height: 1.2;
        color: #f4f4f7;
    }
    body .poly-cmdbar-viewmenu-meta {
        font-family: 'JetBrains Mono', monospace;
        font-size: 9.5px;
        letter-spacing: 0.06em;
        color: rgba(244,244,247,0.45);
    }

    /* ======================================================================
       Left rail — converted to a bottom sheet on mobile.
       ====================================================================== */
    body .poly-rail-left {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        top: auto !important;
        width: 100% !important;
        max-height: 78vh !important;
        transform: translateY(100%) !important;
        transition: transform .3s cubic-bezier(.32,.72,0,1) !important;
        background: linear-gradient(180deg, rgba(14,18,24,0.985), rgba(8,11,16,0.99)) !important;
        backdrop-filter: blur(28px) !important;
        -webkit-backdrop-filter: blur(28px) !important;
        border-radius: 22px 22px 0 0 !important;
        border: 1px solid rgba(74,222,128,0.18) !important;
        border-bottom: none !important;
        box-shadow: 0 -28px 60px -16px rgba(0,0,0,0.6) !important;
        z-index: 102 !important;
        padding: 0 !important;
        overflow: hidden;
    }
    body .poly-rail-left.is-open {
        transform: translateY(0) !important;
    }
    body .poly-rail-left::before {
        /* Pull-handle indicator at top of sheet */
        content: "";
        position: absolute;
        top: 8px;
        left: 50%;
        width: 44px;
        height: 4px;
        margin-left: -22px;
        border-radius: 999px;
        background: rgba(255,255,255,0.18);
        z-index: 2;
    }
    body .poly-rail-left .poly-rail-inner {
        padding: 22px 16px calc(20px + env(safe-area-inset-bottom, 0px)) !important;
        max-height: 78vh;
        overflow-y: auto;
        scrollbar-width: thin;
    }
    body .poly-rail-left .poly-rail-inner::-webkit-scrollbar { width: 4px; }
    body .poly-rail-left .poly-rail-inner::-webkit-scrollbar-thumb {
        background: rgba(74,222,128,0.32); border-radius: 999px;
    }

    /* Kill the previous backdrop entirely — rail is now a full-screen modal
       so no dim/overlay layer is needed. */
    html.poly-rail-sheet-open::before { display: none !important; content: none !important; }
    html.poly-rail-sheet-open { overflow: hidden; }

    /* While the rail is open, the theme header / ticker would otherwise sit
       in the page flow ABOVE the cmdbar, leaving a visible gap and letting
       the rail "slip under" them visually. Pull those elements out of flow
       so the cmdbar pins flush at viewport top:0 and the rail starts cleanly
       below it. Use position:absolute (keeps the box but removes from flow)
       instead of display:none to avoid an animation-time layout jump. */
    html.poly-rail-sheet-open .poly-header-shell,
    html.poly-rail-sheet-open header.site-header,
    html.poly-rail-sheet-open header.poly-header,
    html.poly-rail-sheet-open .poly-ticker {
        position: absolute !important;
        top: -200px !important;
        left: 0 !important;
        right: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        z-index: -1 !important;
    }
    html.poly-rail-sheet-open .poly-earliest-lock,
    html.poly-rail-sheet-open .poly-quickfilters,
    html.poly-rail-sheet-open .poly-matchweek {
        visibility: hidden !important;
        pointer-events: none !important;
    }

    /* RAIL = FULL-SCREEN MODAL when `.is-open`.
       Covers everything below the cmdbar (52px, or 98px with admin bar).
       Slides up cleanly, fully opaque, no see-through.

       NOTE: must use explicit `height: calc(100vh - 52px)` rather than
       `height: auto` because the base desktop rule `height: calc(100vh - 64px)`
       on `.poly-rail-left` (no !important but already specific) prevents `auto`
       from resolving correctly to top+bottom. With explicit height set, the
       rail correctly fills the viewport between the cmdbar and the bottom. */
    body .poly-rail-left {
        position: fixed !important;
        top: 52px !important;
        left: 0 !important;
        right: 0 !important;
        bottom: auto !important;
        width: 100% !important;
        max-height: none !important;
        height: calc(100vh - 52px) !important;
        transform: translateY(100%) !important;
        transition: transform .28s cubic-bezier(.32,.72,0,1) !important;
        background: linear-gradient(180deg, #0a0e16 0%, #06080f 100%) !important;
        border: none !important;
        border-top: 1px solid rgba(74,222,128,0.22) !important;
        border-radius: 0 !important;
        z-index: 140 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }
    body.admin-bar .poly-rail-left {
        top: 98px !important;
        height: calc(100vh - 98px) !important;
    }
    body .poly-rail-left.is-open {
        transform: translateY(0) !important;
        visibility: visible !important;
        opacity: 1 !important;
        display: block !important;
    }

    /* No pull-handle in modal mode — clean top edge */
    body .poly-rail-left::before { display: none !important; content: none !important; }

    /* Inner scroll area takes the full sheet, with a close button at top */
    body .poly-rail-left .poly-rail-inner {
        padding: 56px 18px calc(28px + env(safe-area-inset-bottom, 0px)) !important;
        max-height: none !important;
        height: 100% !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        color: #f4f4f7 !important;
    }

    /* Close button — injected via :before of the toggle button inside the rail
       (the existing hamburger toggle is repurposed as a close X). Force
       `left: auto` so the desktop hamburger rule's `left: 0` can't pin it
       to the wrong side. */
    body .poly-rail-left .poly-rail-toggle {
        position: absolute !important;
        top: 14px !important;
        right: 14px !important;
        left: auto !important;
        bottom: auto !important;
        width: 38px !important;
        height: 38px !important;
        margin: 0 !important;
        border-radius: 999px !important;
        background: rgba(255,255,255,0.06) !important;
        border: 1px solid rgba(255,255,255,0.12) !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        cursor: pointer !important;
        z-index: 10 !important;
    }
    body .poly-rail-left .poly-rail-toggle span { display: none !important; }
    body .poly-rail-left .poly-rail-toggle::before {
        content: "✕";
        font-family: 'JetBrains Mono', monospace;
        font-size: 16px;
        font-weight: 700;
        color: #f4f4f7;
        line-height: 1;
    }
    body .poly-rail-left .poly-rail-toggle:hover {
        background: rgba(248,113,113,0.14) !important;
        border-color: rgba(248,113,113,0.40) !important;
    }
    body .poly-rail-left .poly-rail-toggle:hover::before { color: #f87171; }

    /* Force-visible rail content (defensive) */
    body .poly-rail-left.is-open .poly-rail-section,
    body .poly-rail-left.is-open .poly-rail-section-title,
    body .poly-rail-left.is-open .poly-rail-sport,
    body .poly-rail-left.is-open .poly-rail-league {
        visibility: visible !important;
        opacity: 1 !important;
    }
    body .poly-rail-left.is-open .poly-rail-section-title {
        color: rgba(244,244,247,0.55) !important;
    }
    body .poly-rail-left.is-open .poly-rail-sport-label,
    body .poly-rail-left.is-open .poly-rail-league-name {
        color: #f4f4f7 !important;
    }

    /* Force the rail's own ::before to be the pull-handle (not a backdrop).
       An earlier rule in the cascade had repurposed it as a half-dim that
       overlaid the cmdbar area and visually swallowed the rail content. */
    body .poly-rail-left::before {
        content: "";
        position: absolute !important;
        inset: auto !important;
        top: 8px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        width: 44px !important;
        height: 4px !important;
        border-radius: 999px !important;
        background: rgba(255,255,255,0.18) !important;
        opacity: 1 !important;
        pointer-events: none !important;
        z-index: 2 !important;
        animation: none !important;
    }
    body .poly-rail-left.is-open::before {
        opacity: 1 !important;
    }

    /* Section titles inside the bottom sheet — friendlier on mobile */
    body .poly-rail-left .poly-rail-section-title {
        font-size: 10px;
        letter-spacing: 0.16em;
    }

    /* Sport pills — bigger tap targets in the sheet */
    body .poly-rail-left .poly-rail-sport {
        min-height: 44px;
        padding: 10px 12px !important;
    }

    /* League buttons in the sheet */
    body .poly-rail-left .poly-rail-league {
        min-height: 48px;
    }

    /* ======================================================================
       Sticky matchweek strip — keeps date filtering anchored under cmdbar
       ====================================================================== */
    body .poly-matchweek-strip {
        position: sticky;
        top: 116px; /* below the sticky cmdbar (60px header + 56px cmdbar) */
        z-index: 70;
        background: rgba(4,6,12,0.85);
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
        margin: 0 -14px 12px;
        padding: 8px 12px;
        border-bottom: 1px solid rgba(255,255,255,0.04);
    }
    body .poly-matchweek-chip { min-height: 44px; }
}

/* Tighter at <=400px */
@media (max-width: 400px) {
    body .poly-cmdbar-mswitch { padding: 8px 10px; gap: 6px; }
    body .poly-cmdbar-mswitch-value { font-size: 12px; }
    body .poly-cmdbar-mswitch-label { font-size: 8px; letter-spacing: 0.12em; }
}

/* =========================================================================
   Pass-2 audit fixes — pick-result strips, kickoff/live pills, margin pulse,
   soon-sports collapse
   ========================================================================= */

/* Pick result chip on final cards (#8) */
body .poly-card-strip-pill.is-result {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    letter-spacing: 0.06em;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 10px;
    border: 1px solid transparent;
}
body .poly-card-strip-pill.is-result.is-exact {
    background: linear-gradient(180deg, rgba(251,191,36,0.20), rgba(251,191,36,0.10));
    color: #fbbf24;
    border-color: rgba(251,191,36,0.45);
}
body .poly-card-strip-pill.is-result.is-hit {
    background: rgba(74,222,128,0.16);
    color: #4ade80;
    border-color: rgba(74,222,128,0.4);
}
body .poly-card-strip-pill.is-result.is-miss {
    background: rgba(255,255,255,0.04);
    color: rgba(244,244,247,0.45);
    border-color: rgba(255,255,255,0.08);
    text-decoration: line-through;
    text-decoration-color: rgba(244,244,247,0.25);
}

/* Kickoff time + live pill on locked cards (#11) */
body .poly-card-strip-pill.is-kickoff {
    background: rgba(255,255,255,0.04);
    color: rgba(244,244,247,0.7);
    border: 1px solid rgba(255,255,255,0.08);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.04em;
    padding: 3px 9px;
    border-radius: 999px;
}
body .poly-card-strip-pill.is-live {
    background: rgba(244,63,94,0.14);
    color: #fb7185;
    border: 1px solid rgba(244,63,94,0.45);
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 10px;
    letter-spacing: 0.1em;
    padding: 3px 9px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
body .poly-card-strip-livedot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fb7185;
    box-shadow: 0 0 0 0 rgba(244,63,94,0.5);
    animation: polyCardLiveDot 1.6s ease-out infinite;
}
@keyframes polyCardLiveDot {
    0%   { box-shadow: 0 0 0 0 rgba(244,63,94,0.55); }
    65%  { box-shadow: 0 0 0 5px rgba(244,63,94,0); }
    100% { box-shadow: 0 0 0 0 rgba(244,63,94,0); }
}

/* Margin row attention pulse on first appearance (#10) */
body .poly-card-marginrow.is-pulse {
    animation: polyMarginPulse .9s cubic-bezier(.32,.72,0,1);
}
@keyframes polyMarginPulse {
    0%   { box-shadow: inset 0 0 0 0 rgba(74,222,128,0); transform: translateY(-2px); opacity: 0.4; }
    35%  { box-shadow: inset 0 0 0 2px rgba(74,222,128,0.55); transform: none; opacity: 1; }
    100% { box-shadow: inset 0 0 0 0 rgba(74,222,128,0); }
}

/* =========================================================================
   Pass-4 desktop optimizations
   ========================================================================= */

/* #1 + #10 — Selected pick is now unmistakable. Body-prefixed + !important
   to win any specificity battles that were rendering it identical to
   unselected in the audit. */
body .poly-card .poly-pick.is-selected {
    background: linear-gradient(180deg, rgba(34,214,125,0.28) 0%, rgba(34,214,125,0.14) 100%) !important;
    border-color: #22d67d !important;
    box-shadow:
        0 14px 30px -12px rgba(34,214,125,0.6),
        inset 0 0 0 1px rgba(34,214,125,0.55) !important;
    color: #5fffba !important;
    font-weight: 700 !important;
    transform: translateY(-1px);
}
body .poly-card .poly-pick.is-selected .poly-pick-label,
body .poly-card .poly-pick.is-selected .poly-pick-team {
    color: #5fffba !important;
    font-weight: 700 !important;
}
body .poly-card .poly-pick-away.is-selected {
    background: linear-gradient(180deg, rgba(34,211,238,0.28) 0%, rgba(34,211,238,0.14) 100%) !important;
    border-color: #22d3ee !important;
    box-shadow:
        0 14px 30px -12px rgba(34,211,238,0.6),
        inset 0 0 0 1px rgba(34,211,238,0.55) !important;
    color: #5fe7ff !important;
}
body .poly-card .poly-pick-away.is-selected .poly-pick-label,
body .poly-card .poly-pick-away.is-selected .poly-pick-team { color: #5fe7ff !important; }
body .poly-card .poly-pick-draw.is-selected {
    background: linear-gradient(180deg, rgba(251,191,36,0.28) 0%, rgba(251,191,36,0.14) 100%) !important;
    border-color: #fbbf24 !important;
    border-style: solid !important;
    box-shadow:
        0 14px 30px -12px rgba(251,191,36,0.55),
        inset 0 0 0 1px rgba(251,191,36,0.55) !important;
    color: #ffd663 !important;
}
body .poly-card .poly-pick-draw.is-selected .poly-pick-label { color: #ffd663 !important; }
body .poly-card .poly-pick.is-selected::after {
    content: "✓" !important;
    color: currentColor !important;
}

/* #5 — Cap & centre the predictor frame so 4K viewports don't waste 675px */
body .mfc-shell .mfc-box,
body .poly-game-shell {
    margin-left: auto;
    margin-right: auto;
}
@media (min-width: 1601px) {
    body .mfc-shell .mfc-box { max-width: 1600px; }
}

/* #10 — Card state borders + accent left bars for clearer at-a-glance state */
body .poly-card.poly-card-open {
    border-left: 3px solid rgba(74,222,128,0.32) !important;
}
body .poly-card.poly-card-picked,
body .poly-card.has-pick {
    border-left: 3px solid #22d67d !important;
    background: linear-gradient(180deg, rgba(34,214,125,0.04), rgba(0,0,0,0)) !important;
}
body .poly-card.poly-card-locked {
    border-left: 3px solid rgba(251,191,36,0.55) !important;
}
body .poly-card.poly-card-final {
    border-left: 3px solid rgba(95,255,186,0.55) !important;
}

/* #8 — Strip kickoff time bolder + slightly taller strip */
body .poly-card-strip {
    padding: 10px 16px !important;
    min-height: 38px;
}
body .poly-card-strip-time-label {
    font-weight: 800 !important;
    font-size: 13.5px !important;
    color: #f4f4f7 !important;
    letter-spacing: 0.01em;
}

/* #9 — Margin pill min-height 44px (WCAG) + clearer active state */
body .poly-card-marginpill {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 10px 14px !important;
}
body .poly-card-marginpill.is-active {
    background: linear-gradient(180deg, rgba(251,191,36,0.22), rgba(251,191,36,0.10)) !important;
    border-color: rgba(251,191,36,0.7) !important;
    color: #ffd663 !important;
    font-weight: 700 !important;
    box-shadow: 0 8px 20px -8px rgba(251,191,36,0.5);
}

/* #25 — Earliest lock countdown banner (rendered above the match list) */
body .poly-earliest-lock {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    margin: 0 0 12px;
    border-radius: 12px;
    background: linear-gradient(160deg, rgba(251,191,36,0.10), rgba(74,222,128,0.05));
    border: 1px solid rgba(251,191,36,0.28);
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: rgba(244,244,247,0.8);
}
body .poly-earliest-lock-icon {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: rgba(251,191,36,0.2);
    color: #fbbf24;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(251,191,36,0.4);
}
body .poly-earliest-lock-icon::before {
    content: "⚡";
}
body .poly-earliest-lock strong {
    color: #fbbf24;
    font-weight: 700;
    letter-spacing: 0.04em;
}
body .poly-earliest-lock em {
    font-style: normal;
    color: rgba(244,244,247,0.5);
    margin-left: auto;
}

/* #13 — Open-count badge next to matchweek chip total */
body .poly-matchweek-chip-open {
    display: inline-block;
    margin-left: 4px;
    padding: 1px 5px;
    border-radius: 999px;
    background: rgba(74,222,128,0.16);
    color: #4ade80;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.04em;
    border: 1px solid rgba(74,222,128,0.32);
}

/* #16 — Surface filter chips above the card grid (sticky desktop bar) */
body .poly-quickfilters {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 0;
    margin: 0 0 14px;
    position: sticky;
    top: 64px;
    z-index: 50;
    background: linear-gradient(180deg, rgba(7,9,26,0.95) 0%, rgba(7,9,26,0.65) 80%, transparent);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
body .poly-quickfilter {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    min-height: 36px;
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    color: rgba(244,244,247,0.7);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease, transform .12s ease;
}
body .poly-quickfilter:hover {
    background: rgba(255,255,255,0.07);
    color: #f4f4f7;
}
body .poly-quickfilter.is-active {
    background: linear-gradient(180deg, rgba(74,222,128,0.20), rgba(34,211,238,0.10));
    color: #f4f4f7;
    border-color: rgba(74,222,128,0.45);
    box-shadow: inset 0 0 0 1px rgba(74,222,128,0.32);
}
body .poly-quickfilter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    padding: 0 6px;
    height: 18px;
    border-radius: 999px;
    background: rgba(0,0,0,0.32);
    color: rgba(244,244,247,0.6);
    font-size: 9.5px;
    letter-spacing: 0.04em;
    border: 1px solid rgba(255,255,255,0.06);
}
body .poly-quickfilter.is-active .poly-quickfilter-count {
    background: rgba(74,222,128,0.22);
    color: #4ade80;
    border-color: rgba(74,222,128,0.34);
}

/* #23, #24 — Per-card autosave shimmer + flash */
body .poly-card-consensus-slot {
    position: relative;
}
body .poly-card-consensus-slot.is-saving::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(74,222,128,0.10) 30%,
        rgba(34,211,238,0.16) 50%,
        rgba(74,222,128,0.10) 70%,
        transparent 100%);
    background-size: 200% 100%;
    animation: polyConsensusShimmer 1.4s linear infinite;
    pointer-events: none;
    z-index: 1;
}
@keyframes polyConsensusShimmer {
    from { background-position: 200% 0; }
    to   { background-position: -200% 0; }
}
body .poly-card.is-just-saved {
    animation: polyCardJustSaved 1.2s ease-out;
}
@keyframes polyCardJustSaved {
    0%   { box-shadow: 0 0 0 0 rgba(74,222,128,0.45); }
    25%  { box-shadow: 0 0 0 6px rgba(74,222,128,0.22); }
    100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); }
}
body .poly-card.is-just-saved .poly-card-strip-pill.is-saved {
    animation: polySavedPillFlash 1.2s ease-out;
}
@keyframes polySavedPillFlash {
    0%   { transform: scale(1); }
    20%  { transform: scale(1.08); background: rgba(74,222,128,0.32); }
    100% { transform: scale(1); }
}

/* =========================================================================
   Browse-all-leagues directory page (/competitions)
   ========================================================================= */
.poly-browse {
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 22px calc(72px + env(safe-area-inset-bottom, 0px));
    color: #f4f4f7;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.poly-browse-hero {
    text-align: left;
    margin-bottom: 22px;
}
.poly-browse-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #4ade80;
    margin: 0 0 8px;
}
.poly-browse-eyebrow-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 0 0 rgba(74,222,128,0.55);
    animation: polyBrowsePulse 1.8s ease-out infinite;
}
@keyframes polyBrowsePulse {
    0%   { box-shadow: 0 0 0 0 rgba(74,222,128,0.55); }
    65%  { box-shadow: 0 0 0 6px rgba(74,222,128,0); }
    100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); }
}
.poly-browse-title {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: clamp(38px, 5.5vw, 64px);
    line-height: 1;
    margin: 4px 0 14px;
    letter-spacing: -0.012em;
}
.poly-browse-title em {
    font-style: normal;
    background: linear-gradient(135deg, #4ade80 0%, #22d3ee 50%, #fbbf24 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: polyBrowseTitle 9s ease-in-out infinite;
}
@keyframes polyBrowseTitle {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}
.poly-browse-sub {
    font-size: 15px;
    line-height: 1.55;
    color: rgba(244,244,247,0.72);
    max-width: 720px;
    margin: 0 0 24px;
}
.poly-browse-sub strong { color: #f4f4f7; font-weight: 700; }

/* Toolbar — search + filter chips */
.poly-browse-toolbar {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 18px;
}
.poly-browse-search {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 14px 4px 14px;
    border-radius: 14px;
    background: rgba(0,0,0,0.32);
    border: 1px solid rgba(255,255,255,0.08);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.poly-browse-search:focus-within {
    border-color: rgba(74,222,128,0.45);
    box-shadow: 0 0 0 3px rgba(74,222,128,0.14);
}
.poly-browse-search-icon { color: rgba(244,244,247,0.5); flex-shrink: 0; display: inline-flex; }
.poly-browse-search input {
    flex: 1 1 auto;
    background: transparent;
    border: none;
    color: #f4f4f7;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    padding: 11px 0;
    outline: none;
    min-height: 44px;
}
.poly-browse-search input::placeholder { color: rgba(244,244,247,0.4); }

.poly-browse-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.poly-browse-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    min-height: 38px;
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    color: rgba(244,244,247,0.7);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease, transform .12s ease;
}
.poly-browse-chip:hover {
    background: rgba(255,255,255,0.07);
    color: #f4f4f7;
}
.poly-browse-chip:active { transform: scale(0.97); }
.poly-browse-chip.is-active {
    background: linear-gradient(180deg, rgba(74,222,128,0.20), rgba(34,211,238,0.10));
    color: #f4f4f7;
    border-color: rgba(74,222,128,0.45);
    box-shadow: inset 0 0 0 1px rgba(74,222,128,0.32);
}
.poly-browse-chip-icon { font-size: 13px; line-height: 1; }
.poly-browse-chip em {
    font-style: normal;
    font-size: 9.5px;
    color: rgba(244,244,247,0.5);
    margin-left: 2px;
    padding: 1px 6px;
    border-radius: 999px;
    background: rgba(0,0,0,0.32);
    border: 1px solid rgba(255,255,255,0.06);
}
.poly-browse-chip.is-active em {
    color: #4ade80;
    background: rgba(74,222,128,0.16);
    border-color: rgba(74,222,128,0.32);
}

.poly-browse-result-count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.5);
    margin: 0 0 12px;
}

/* Grid of league cards */
.poly-browse-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 10px;
}
.poly-browse-item { margin: 0; }
.poly-browse-card {
    display: grid;
    grid-template-columns: 52px 1fr 18px;
    gap: 14px;
    align-items: center;
    padding: 14px 16px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(14,18,24,0.72), rgba(8,11,16,0.85));
    border: 1px solid rgba(255,255,255,0.07);
    text-decoration: none;
    color: #f4f4f7;
    transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.poly-browse-card:hover {
    transform: translateY(-2px);
    border-color: rgba(74,222,128,0.42);
    background: linear-gradient(180deg, rgba(74,222,128,0.10), rgba(34,211,238,0.05));
}
.poly-browse-card:active { transform: scale(0.99); }
.poly-browse-card-logo {
    position: relative;
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}
.poly-browse-card-logo img {
    width: 38px;
    height: 38px;
    object-fit: contain;
    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.4));
}
.poly-browse-card-fallback {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 14px;
    color: #4ade80;
    letter-spacing: 0.05em;
    display: none;
}
.poly-browse-card-logo.is-fallback .poly-browse-card-fallback { display: inline-block; }
.poly-browse-card-body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}
.poly-browse-card-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 15px;
    color: #f4f4f7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: -0.005em;
}
.poly-browse-card-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(244,244,247,0.5);
    letter-spacing: 0.04em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-browse-card-stats {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
}
.poly-browse-card-pill {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #4ade80;
    background: rgba(74,222,128,0.12);
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid rgba(74,222,128,0.28);
}
.poly-browse-card-arrow {
    color: rgba(244,244,247,0.4);
    transition: transform .15s ease, color .15s ease;
}
.poly-browse-card:hover .poly-browse-card-arrow {
    color: #4ade80;
    transform: translateX(2px);
}

/* Empty state */
.poly-browse-empty {
    text-align: center;
    padding: 48px 16px;
    border: 1px dashed rgba(255,255,255,0.12);
    border-radius: 16px;
    background: rgba(255,255,255,0.015);
    color: rgba(244,244,247,0.6);
}
.poly-browse-empty-icon {
    display: block;
    font-size: 36px;
    margin-bottom: 8px;
    filter: drop-shadow(0 4px 12px rgba(74,222,128,0.25));
}
.poly-browse-empty p {
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
}
.poly-browse-empty p strong {
    color: #f4f4f7;
    display: block;
    margin-bottom: 4px;
}

/* Mobile polish */
@media (max-width: 540px) {
    .poly-browse { padding: 22px 14px calc(80px + env(safe-area-inset-bottom, 0px)); }
    .poly-browse-title { font-size: clamp(30px, 8vw, 44px); }
    .poly-browse-sub { font-size: 13.5px; margin-bottom: 18px; }
    .poly-browse-toolbar { gap: 10px; margin-bottom: 14px; }
    .poly-browse-grid { grid-template-columns: 1fr; gap: 8px; }
    .poly-browse-card { padding: 12px 14px; gap: 12px; grid-template-columns: 44px 1fr 16px; }
    .poly-browse-card-logo { width: 44px; height: 44px; border-radius: 10px; }
    .poly-browse-card-logo img { width: 32px; height: 32px; }
    .poly-browse-card-name { font-size: 14px; }
    .poly-browse-chip { padding: 7px 10px; font-size: 10px; }
}
@media (hover: none) and (pointer: coarse) {
    .poly-browse-card:active {
        background: linear-gradient(180deg, rgba(20,28,36,0.85), rgba(10,14,20,0.92));
        transform: scale(0.99);
    }
}

/* "How it works" FAB — collapse to icon-only at mobile widths (#8) */
@media (max-width: 720px) {
    body .poly-howto-fab {
        padding: 0;
        width: 48px;
        height: 48px;
        gap: 0;
        right: 14px;
        bottom: 110px;
        justify-content: center;
    }
    body .poly-howto-fab-label { display: none !important; }
    body .poly-howto-fab-icon {
        width: 32px;
        height: 32px;
    }
}

/* "Coming soon" sport-rail toggle (#12) */
body .poly-rail-sport.poly-rail-sport-soontoggle {
    border-top: 1px dashed rgba(255,255,255,0.08);
    border-radius: 0;
    margin-top: 4px;
    padding-top: 12px;
    color: rgba(244,244,247,0.5);
    cursor: pointer;
}
body .poly-rail-sport.poly-rail-sport-soontoggle:hover {
    color: #f4f4f7;
    background: rgba(255,255,255,0.03);
}
body .poly-rail-sport.poly-rail-sport-soontoggle[aria-expanded="true"] {
    color: #fbbf24;
}
body .poly-rail-sports-soon {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 2px;
    padding-left: 6px;
    border-left: 2px solid rgba(255,255,255,0.06);
    margin-left: 8px;
}
body .poly-rail-sports-soon[hidden] { display: none; }



/* Explicit "Clear pick" affordance — replaces the toggle-on-second-tap */
body .poly-card-clearpick {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 8px 0 0;
    padding: 6px 10px;
    background: transparent;
    border: 1px dashed rgba(244,114,182,0.32);
    border-radius: 999px;
    color: rgba(244,114,182,0.85);
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease, transform .12s ease;
}
body .poly-card-clearpick[hidden] { display: none; }
body .poly-card-clearpick:hover {
    background: rgba(244,114,182,0.08);
    border-color: rgba(244,114,182,0.5);
    color: #fb7185;
}
body .poly-card-clearpick:active { transform: scale(0.96); }
body .poly-card-clearpick svg {
    width: 11px;
    height: 11px;
    flex-shrink: 0;
}

/* Save bar — disabled state */
body .poly-submit-bar-cta[disabled],
body .poly-submit-bar-cta[aria-disabled="true"] {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    filter: grayscale(0.45);
    box-shadow: none !important;
    pointer-events: none;
}
body .poly-submit-bar.is-dirty .poly-submit-bar-cta[disabled] {
    /* shouldn't happen but keep CSS authoritative */
    opacity: 1 !important;
    cursor: pointer !important;
    filter: none;
    pointer-events: auto;
}
body .poly-submit-bar.is-dirty .poly-submit-bar-cta {
    animation: polySaveBarBreathe 1.6s ease-in-out infinite;
}
@keyframes polySaveBarBreathe {
    0%, 100% { box-shadow: 0 12px 28px -10px rgba(34,214,125,0.55); }
    50%      { box-shadow: 0 14px 36px -8px rgba(34,214,125,0.85); }
}

/* Margin badge on collapsed/list cards (#14) */
body .poly-card-strip-pill.is-margin {
    background: linear-gradient(180deg, rgba(251,191,36,0.16), rgba(251,191,36,0.10));
    border: 1px solid rgba(251,191,36,0.4);
    color: #fbbf24;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 10px;
}
body .poly-card-strip-pill.is-margin[hidden] { display: none; }

/* Final/locked "Show result" hint pill (#6) */
body .poly-card-strip-pill.is-expand {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.10);
    color: rgba(244,244,247,0.6);
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 999px;
}
body .poly-card.is-collapsible .poly-card-strip { cursor: pointer; }
body .poly-card.is-collapsible:not(.is-collapsed) .poly-card-strip-pill.is-expand { display: none; }
body .poly-card.is-collapsible:not(.is-collapsed) .poly-card-strip-chevron { transform: rotate(180deg); }
body .poly-card-strip-chevron { transition: transform .15s ease; }

/* Unsaved-pick indicator (#20) — green left edge accent on dirty cards */
body .poly-card.is-dirty {
    box-shadow: inset 4px 0 0 0 rgba(74,222,128,0.65);
    transition: box-shadow .15s ease;
}
body .poly-card.is-dirty .poly-card-strip-pill.is-saved {
    background: rgba(251,191,36,0.16);
    border-color: rgba(251,191,36,0.35);
    color: #fbbf24;
}
body .poly-card.is-dirty .poly-card-strip-pill.is-saved::before {
    content: "Unsaved · ";
    font-weight: 700;
}
body .poly-card.is-dirty .poly-card-strip-pill.is-saved {
    /* Replace "Pick saved" text with empty so we can prepend "Unsaved · "
       — the JS reads/writes the strong line elsewhere; here we only theme */
}

/* Matchday tabs scroll affordance (#12) — gradient fade hint at edges */
body .poly-matchweek-strip {
    position: relative;
}
body .poly-matchweek-strip::before,
body .poly-matchweek-strip::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 28px;
    pointer-events: none;
    z-index: 2;
    transition: opacity .15s ease;
}
body .poly-matchweek-strip::before {
    left: 0;
    background: linear-gradient(90deg, rgba(7,9,26,0.95), transparent);
}
body .poly-matchweek-strip::after {
    right: 0;
    background: linear-gradient(270deg, rgba(7,9,26,0.95), transparent);
}
body .poly-matchweek-strip[data-scroll-edge="start"]::before { opacity: 0; }
body .poly-matchweek-strip[data-scroll-edge="end"]::after { opacity: 0; }
body .poly-matchweek-strip[data-scroll-edge="none"]::before,
body .poly-matchweek-strip[data-scroll-edge="none"]::after { opacity: 0; }

/* Mobile rail polish — discoverability + backdrop tap-out */
@media (max-width: 880px) {
    /* Make the rail toggle unmistakably an entry point */
    body .poly-rail-toggle {
        bottom: 110px !important;
        left: 14px !important;
        width: 52px !important;
        height: 52px !important;
        box-shadow: 0 18px 36px -10px rgba(34,214,125,0.7) !important;
    }
    body .poly-rail-toggle::after {
        content: "Leagues";
        position: absolute;
        bottom: -16px;
        left: 50%;
        transform: translateX(-50%);
        font-family: 'JetBrains Mono', monospace;
        font-size: 9px;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: rgba(244,244,247,0.55);
        background: rgba(4,6,12,0.85);
        padding: 2px 6px;
        border-radius: 999px;
        white-space: nowrap;
        pointer-events: none;
    }

    /* Rail backdrop when open */
    body .poly-rail-left::before {
        content: "";
        position: fixed;
        inset: 60px 0 0 0;
        background: rgba(0,0,0,0.55);
        opacity: 0;
        pointer-events: none;
        transition: opacity .2s ease;
        z-index: -1;
    }
    body .poly-rail-left.is-open::before {
        opacity: 1;
        pointer-events: auto;
    }

    /* Match strip sized for one-handed tap */
    body .poly-matchweek-strip {
        overflow-x: auto;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
    }
    body .poly-matchweek-strip::-webkit-scrollbar { display: none; }
    body .poly-matchweek-chip { scroll-snap-align: start; flex: 0 0 auto; }
}

/* Picks tape disambiguation hint (#3) */
body .poly-rail-card-hint {
    display: block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    color: rgba(244,244,247,0.45);
    letter-spacing: 0.04em;
    line-height: 1.4;
    margin-top: 4px;
    padding: 0 2px;
}
body .poly-rail-card-hint em {
    font-style: normal;
    color: rgba(244,244,247,0.7);
}

/* =========================================================================
   Mini-leagues — comprehensive mobile polish pass
   Targets phone widths (≤540px) and tightens every typographic / spacing
   constant so the whole hub + detail flow feels native at 390px.
   ========================================================================= */
@media (max-width: 540px) {
    /* ---- Shared shell ---- */
    body .poly-groups {
        padding: 16px 14px calc(96px + env(safe-area-inset-bottom, 0px));
    }

    /* ---- Hub: hero ---- */
    body .poly-groups-hero { margin-bottom: 16px; }
    body .poly-groups-eyebrow {
        font-size: 10px;
        letter-spacing: 0.14em;
        margin-bottom: 6px;
    }
    body .poly-groups-title {
        font-size: 30px;
        line-height: 1.04;
        margin-bottom: 10px;
    }
    body .poly-groups-sub {
        font-size: 13.5px;
        line-height: 1.5;
        margin: 0 0 16px;
    }

    /* ---- Hub: callout strip ---- */
    body .poly-groups-callout {
        padding: 11px 13px;
        margin-bottom: 18px;
        font-size: 12.5px;
        line-height: 1.45;
        gap: 11px;
        border-radius: 12px;
    }
    body .poly-groups-callout-icon {
        width: 26px;
        height: 26px;
    }

    /* ---- Hub: create/join cards ---- */
    body .poly-groups-grid {
        gap: 12px;
        margin-bottom: 24px;
    }
    body .poly-groups-card {
        padding: 16px 14px 18px;
        border-radius: 14px;
    }
    body .poly-groups-card header { margin-bottom: 12px; }
    body .poly-groups-card h2 {
        font-size: 19px;
        margin: 4px 0 4px;
        letter-spacing: -0.005em;
    }
    body .poly-groups-card-eyebrow {
        font-size: 9.5px;
        padding: 2px 7px;
        margin-bottom: 6px;
    }
    body .poly-groups-card header p { font-size: 12.5px; line-height: 1.45; }

    /* Form fields — keep 44px+ touch targets */
    body .poly-groups-form { gap: 10px; }
    body .poly-groups-field > span {
        font-size: 9.5px;
        letter-spacing: 0.10em;
    }
    body .poly-groups-field input[type="text"],
    body .poly-groups-field textarea,
    body .poly-groups-field select {
        font-size: 14px;
        padding: 12px 12px;
        border-radius: 9px;
    }
    body .poly-groups-field-checkbox {
        font-size: 12.5px;
        gap: 8px;
    }
    body .poly-groups-btn {
        font-size: 11px;
        letter-spacing: 0.14em;
        padding: 11px 16px;
    }

    /* ---- Hub: how-it-works tiles ---- */
    body .poly-groups-how { margin: 22px 0 10px; }
    body .poly-groups-how-head { margin-bottom: 12px; }
    body .poly-groups-how-head h2 {
        font-size: 21px;
        margin: 4px 0 0;
    }
    body .poly-groups-how-grid { gap: 10px; }
    body .poly-groups-how-tile {
        padding: 14px 14px 14px;
        border-radius: 14px;
    }
    body .poly-groups-how-num {
        font-size: 22px;
        top: 12px;
        right: 14px;
    }
    body .poly-groups-how-icon {
        width: 38px;
        height: 38px;
        font-size: 19px;
        margin-bottom: 9px;
        border-radius: 10px;
    }
    body .poly-groups-how-tile h3 {
        font-size: 14.5px;
        margin: 0 0 5px;
    }
    body .poly-groups-how-tile p {
        font-size: 12.5px;
        line-height: 1.45;
    }

    /* ---- Hub: my leagues list ---- */
    body .poly-groups-mine { margin-top: 22px; }
    body .poly-groups-mine-head { margin-bottom: 10px; }
    body .poly-groups-mine-head h2 {
        font-size: 19px;
        gap: 9px;
    }
    body .poly-groups-count {
        font-size: 10px;
        padding: 2px 8px;
    }
    body .poly-groups-mine-sub { font-size: 12px; }
    body .poly-groups-mine-list {
        gap: 9px;
        grid-template-columns: 1fr;
    }
    body .poly-groups-mine-card {
        padding: 12px 14px;
        gap: 11px;
        grid-template-columns: 40px 1fr 18px;
        grid-template-rows: auto auto;
        border-radius: 13px;
    }
    body .poly-groups-mine-icon {
        width: 40px;
        height: 40px;
        font-size: 19px;
        border-radius: 10px;
    }
    body .poly-groups-mine-name {
        font-size: 14px;
        gap: 6px;
    }
    body .poly-groups-mine-meta {
        font-size: 9.5px;
        letter-spacing: 0.03em;
    }
    body .poly-groups-mine-leader {
        font-size: 9.5px;
        padding: 4px 8px;
        gap: 6px;
        margin-top: 4px;
    }
    body .poly-groups-mine-leader-name {
        font-size: 10.5px;
        max-width: 110px;
    }
    body .poly-groups-mine-leader-pts em { font-size: 7.5px; }
    body .poly-groups-mine-arrow { font-size: 16px; }

    body .poly-groups-empty {
        padding: 18px 16px;
        border-radius: 12px;
        font-size: 13px;
    }

    /* Pills tighter */
    body .poly-groups-pill {
        font-size: 8.5px;
        padding: 2px 6px;
    }

    /* ---- Detail: back link + hero ---- */
    body .poly-groups-back {
        font-size: 11px;
        margin-bottom: 10px;
    }
    body .poly-groups-detail-hero {
        padding: 16px 14px;
        gap: 14px;
        border-radius: 14px;
        margin-bottom: 16px;
    }
    body .poly-groups-detail-hero-main { gap: 12px; }
    body .poly-groups-detail-icon {
        width: 46px;
        height: 46px;
        font-size: 22px;
        border-radius: 12px;
    }
    body .poly-groups-meta {
        font-size: 10px;
        gap: 6px;
        margin-top: 8px;
    }

    /* Invite block */
    body .poly-groups-invite { gap: 6px; }
    body .poly-groups-invite-label {
        font-size: 9px;
        letter-spacing: 0.14em;
    }
    body .poly-groups-invite-code {
        font-size: 20px;
        padding: 9px 14px;
        letter-spacing: 0.22em;
        border-radius: 10px;
    }
    body .poly-groups-invite-hint {
        font-size: 10px;
        line-height: 1.4;
        margin: 2px 0 4px;
    }

    /* Rank pill */
    body .poly-groups-rank-pill {
        margin-top: 12px;
        padding: 7px 11px;
        gap: 8px;
    }
    body .poly-groups-rank-label { font-size: 8.5px; }
    body .poly-groups-rank-value { font-size: 19px; }
    body .poly-groups-rank-value em { font-size: 10px; }
    body .poly-groups-rank-pts { font-size: 10px; padding-left: 8px; }

    /* ---- Detail: tabs (sticky on phone for long boards) ---- */
    body .poly-groups-detail-grid { gap: 14px; }
    body .poly-groups-detail-board,
    body .poly-groups-section {
        padding: 14px 14px 16px;
        border-radius: 14px;
    }
    body .poly-groups-tabs {
        padding: 3px;
        gap: 2px;
        margin: -2px -2px 12px;
        position: sticky;
        top: 64px;
        z-index: 5;
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
    }
    body .poly-groups-tab {
        padding: 9px 8px;
        font-size: 9.5px;
        letter-spacing: 0.06em;
        gap: 6px;
        flex: 1;
        justify-content: center;
        min-width: 0;
    }
    body .poly-groups-tab > span:not(.poly-groups-tab-icon):not(.poly-groups-tab-count) {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    body .poly-groups-tab-icon { font-size: 12px; }
    body .poly-groups-tab-count {
        min-width: 16px;
        height: 14px;
        font-size: 8.5px;
        padding: 0 4px;
    }

    /* Section heads tighter */
    body .poly-groups-section-head { margin-bottom: 10px; }
    body .poly-groups-section-head h2 { font-size: 17px; }
    body .poly-groups-section-head h3 { font-size: 14px; }
    body .poly-groups-section-head p {
        font-size: 11px;
        line-height: 1.45;
    }

    /* Standings rows */
    body .poly-groups-board-list { gap: 5px; }
    body .poly-groups-board-row {
        grid-template-columns: 34px 1fr auto;
        padding: 8px 10px;
        gap: 8px;
        border-radius: 9px;
    }
    body .poly-groups-board-rank { font-size: 12px; }
    body .poly-groups-board-name {
        font-size: 12.5px;
        gap: 6px;
    }
    body .poly-groups-board-pts { font-size: 12.5px; }
    body .poly-groups-board-pts em { font-size: 8.5px; }
    body .poly-groups-board-acc { font-size: 8.5px; }

    /* Activity rows */
    body .poly-groups-activity { gap: 5px; max-height: 70vh; }
    body .poly-groups-activity-item {
        grid-template-columns: 30px 1fr auto;
        padding: 8px 10px;
        gap: 9px;
        border-radius: 9px;
    }
    body .poly-groups-activity-icon {
        width: 30px;
        height: 30px;
        font-size: 13px;
    }
    body .poly-groups-activity-line { font-size: 12px; }
    body .poly-groups-activity-detail { font-size: 10px; }
    body .poly-groups-activity-meta { font-size: 9px; }
    body .poly-groups-activity-pts { font-size: 12px; padding-left: 6px; }

    /* Chat — fill viewport more aggressively */
    body .poly-groups-chat-panel { padding-bottom: env(safe-area-inset-bottom, 0px); }
    body .poly-groups-chat { gap: 8px; }
    body .poly-groups-chat-stream {
        max-height: calc(100vh - 280px);
        min-height: 280px;
        padding: 0 2px 8px;
        gap: 8px;
    }
    body .poly-groups-chat-msg { gap: 8px; }
    body .poly-groups-chat-bubble {
        padding: 8px 11px 9px;
        max-width: 86%;
        border-radius: 12px;
    }
    body .poly-groups-chat-body {
        font-size: 13px;
        line-height: 1.45;
    }
    body .poly-groups-chat-bubble-head { gap: 6px; margin-bottom: 3px; }
    body .poly-groups-chat-bubble-head strong { font-size: 11.5px; }
    body .poly-groups-chat-bubble-head em { font-size: 9px; }
    body .poly-groups-chat-del {
        opacity: 1;
        width: 20px;
        height: 20px;
        font-size: 13px;
    }
    body .poly-groups-chat-empty { padding: 24px 14px; }

    /* Composer — sticky to bottom of chat region with safe-area padding */
    body .poly-groups-chat-composer {
        padding: 6px;
        border-radius: 12px;
        position: sticky;
        bottom: 0;
        z-index: 4;
    }
    body .poly-groups-chat-composer textarea {
        font-size: 14px;
        min-height: 38px;
        max-height: 120px;
        padding: 7px 10px;
    }
    body .poly-groups-chat-send {
        width: 38px;
        height: 38px;
        border-radius: 10px;
    }
    body .poly-groups-chat-send svg { width: 16px; height: 16px; }
    body .poly-groups-chat-fineprint { font-size: 9px; }

    /* Members list rows */
    body .poly-groups-members li {
        padding: 7px 9px;
        font-size: 12.5px;
    }
    body .poly-groups-member-name { font-size: 12.5px; gap: 6px; }
    body .poly-groups-link-btn { font-size: 10px; padding: 3px 5px; }

    /* Admin / membership panels */
    body .poly-groups-detail-text { font-size: 12.5px; }
    body .poly-groups-detail-fineprint { font-size: 10px; }
    body .poly-groups-detail-aside { gap: 12px; }
}

/* Touch / pressed feedback (no-hover devices) */
@media (hover: none) and (pointer: coarse) {
    .poly-groups-mine-card:active {
        transform: scale(0.985);
        background: linear-gradient(180deg, rgba(20,28,36,0.92), rgba(10,14,20,0.95));
        border-color: rgba(74,222,128,0.42);
    }
    .poly-groups-btn:active { transform: scale(0.97); }
    .poly-groups-share-btn:active { transform: scale(0.94); }
    .poly-groups-tab:active { transform: scale(0.96); }
    .poly-groups-chat-send:active { transform: scale(0.92); }
}

/* Detail back-link as a tap-friendly chip on mobile */
@media (max-width: 540px) {
    body .poly-groups-back a {
        display: inline-flex;
        align-items: center;
        min-height: 36px;
        padding: 6px 12px 6px 8px;
        background: rgba(255,255,255,0.04);
        border: 1px solid rgba(255,255,255,0.08);
        border-radius: 999px;
        color: rgba(244,244,247,0.78);
        font-family: 'JetBrains Mono', monospace;
        text-decoration: none;
    }
    body .poly-groups-back a:active {
        background: rgba(255,255,255,0.08);
        transform: scale(0.97);
    }
}

/* =========================================================================
   Mobile menu — redesigned (.poly-mnav)
   Active at <=900px. Hides legacy mega-list + stats + leaders + foot
   and replaces them with a hero card, primary tile grid, quick-action list,
   live stats strip, and a top-3 board preview. Designed mobile-first, not
   inherited from desktop.
   ========================================================================= */

/* Desktop: hide entirely. */
.poly-mnav { display: none; }

@media (max-width: 900px) {
    /* Hide legacy markup so the new mobile nav owns the drawer. */
    body .poly-header-shell .site-nav .poly-mobile-nav-profile,
    body .poly-header-shell .site-nav > ul,
    body .poly-header-shell .site-nav .poly-mobile-nav-section-label,
    body .poly-header-shell .site-nav .poly-mobile-nav-stats,
    body .poly-header-shell .site-nav .poly-mobile-nav-leaders,
    body .poly-header-shell .site-nav .poly-mobile-nav-foot {
        display: none !important;
    }

    /* Activate the new structure. */
    body .poly-header-shell .site-nav .poly-mnav {
        display: flex;
        flex-direction: column;
        gap: 14px;
        padding: 18px 16px calc(28px + env(safe-area-inset-bottom, 0px));
        position: relative;
    }

    /* Hero (logged in) ---------------------------------------------------- */
    body .poly-mnav-hero {
        display: grid;
        grid-template-columns: 52px 1fr 22px;
        gap: 14px;
        align-items: center;
        padding: 14px;
        border-radius: 18px;
        background:
            radial-gradient(120% 100% at 0% 0%, rgba(74,222,128,0.18), transparent 60%),
            radial-gradient(100% 100% at 100% 100%, rgba(34,211,238,0.14), transparent 60%),
            linear-gradient(180deg, rgba(14,18,24,0.92), rgba(8,11,16,0.96));
        border: 1px solid rgba(74,222,128,0.32);
        text-decoration: none;
        color: #f4f4f7;
        position: relative;
        overflow: hidden;
        transition: transform .15s ease, border-color .15s ease;
    }
    body .poly-mnav-hero::after {
        content: "";
        position: absolute;
        top: 0; left: 0; right: 0;
        height: 2px;
        background: linear-gradient(90deg, transparent, rgba(74,222,128,0.65), rgba(34,211,238,0.55), transparent);
        opacity: 0.85;
    }
    body .poly-mnav-hero:active { transform: scale(0.99); }
    body .poly-mnav-hero-avatar {
        width: 52px;
        height: 52px;
        border-radius: 16px;
        background: linear-gradient(135deg, #4ade80, #22d3ee);
        color: #04060c;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
        font-weight: 800;
        font-size: 24px;
        letter-spacing: -0.01em;
        box-shadow: 0 12px 24px -8px rgba(74,222,128,0.55);
    }
    body .poly-mnav-hero-body {
        display: flex;
        flex-direction: column;
        gap: 4px;
        min-width: 0;
    }
    body .poly-mnav-hero-name {
        font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
        font-weight: 800;
        font-size: 22px;
        letter-spacing: -0.005em;
        color: #f4f4f7;
        line-height: 1;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    body .poly-mnav-hero-stats {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        flex-wrap: wrap;
        line-height: 1;
    }
    body .poly-mnav-hero-pts {
        font-family: 'JetBrains Mono', monospace;
        font-size: 12px;
        font-weight: 700;
        color: #4ade80;
        letter-spacing: 0.03em;
    }
    body .poly-mnav-hero-pts em {
        font-style: normal;
        font-size: 8.5px;
        letter-spacing: 0.12em;
        color: rgba(244,244,247,0.4);
        margin-left: 3px;
        text-transform: uppercase;
    }
    body .poly-mnav-hero-chip {
        font-family: 'JetBrains Mono', monospace;
        font-size: 9.5px;
        font-weight: 700;
        letter-spacing: 0.04em;
        padding: 3px 7px;
        border-radius: 999px;
        background: rgba(251,191,36,0.14);
        color: #fbbf24;
        border: 1px solid rgba(251,191,36,0.32);
    }
    body .poly-mnav-hero-chip.is-cyan {
        background: rgba(34,211,238,0.14);
        color: #22d3ee;
        border-color: rgba(34,211,238,0.32);
    }
    body .poly-mnav-hero-arrow {
        color: rgba(244,244,247,0.5);
        display: inline-flex;
    }

    /* Hero (anonymous) --------------------------------------------------- */
    body .poly-mnav-anon {
        padding: 18px 16px;
        border-radius: 18px;
        background: linear-gradient(160deg, rgba(74,222,128,0.10), rgba(34,211,238,0.06));
        border: 1px solid rgba(74,222,128,0.28);
    }
    body .poly-mnav-anon-line {
        margin: 0 0 12px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 14px;
        line-height: 1.45;
        color: rgba(244,244,247,0.85);
    }
    body .poly-mnav-anon-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    body .poly-mnav-anon-cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 10px 14px;
        border-radius: 12px;
        font-family: 'JetBrains Mono', monospace;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        text-decoration: none;
        transition: transform .15s ease, box-shadow .15s ease;
    }
    body .poly-mnav-anon-cta.is-primary {
        background: linear-gradient(180deg, #22d67d, #1cb56b);
        color: #04060c;
        box-shadow: 0 12px 24px -8px rgba(34,214,125,0.55);
    }
    body .poly-mnav-anon-cta.is-ghost {
        background: rgba(255,255,255,0.04);
        color: #f4f4f7;
        border: 1px solid rgba(255,255,255,0.12);
    }
    body .poly-mnav-anon-cta:active { transform: scale(0.97); }

    /* Primary tile grid -------------------------------------------------- */
    body .poly-mnav-tiles {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    body .poly-mnav-tile {
        display: flex;
        flex-direction: column;
        gap: 6px;
        padding: 14px 14px 14px;
        min-height: 96px;
        border-radius: 16px;
        text-decoration: none;
        color: #f4f4f7;
        background: linear-gradient(180deg, rgba(14,18,24,0.85), rgba(8,11,16,0.92));
        border: 1px solid rgba(255,255,255,0.07);
        position: relative;
        overflow: hidden;
        transition: transform .15s ease, border-color .15s ease, background .15s ease;
    }
    body .poly-mnav-tile::before {
        content: "";
        position: absolute;
        inset: -1px;
        background: var(--tile-glow, transparent);
        opacity: 0.5;
        mix-blend-mode: screen;
        pointer-events: none;
    }
    body .poly-mnav-tile > * { position: relative; z-index: 1; }
    body .poly-mnav-tile:active { transform: scale(0.97); }
    body .poly-mnav-tile-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 38px;
        height: 38px;
        border-radius: 12px;
        background: rgba(255,255,255,0.06);
        border: 1px solid rgba(255,255,255,0.08);
        color: #f4f4f7;
    }
    body .poly-mnav-tile-label {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-weight: 800;
        font-size: 15px;
        letter-spacing: -0.005em;
        color: #f4f4f7;
        line-height: 1.1;
    }
    body .poly-mnav-tile-meta {
        font-family: 'JetBrains Mono', monospace;
        font-size: 9.5px;
        letter-spacing: 0.06em;
        color: rgba(244,244,247,0.55);
        text-transform: uppercase;
        line-height: 1.1;
    }
    /* Tone variants — Stadium-After-Dark palette */
    body .poly-mnav-tile.is-play {
        --tile-glow: radial-gradient(110% 90% at 0% 0%, rgba(74,222,128,0.22), transparent 60%);
        border-color: rgba(74,222,128,0.32);
    }
    body .poly-mnav-tile.is-play .poly-mnav-tile-icon {
        background: rgba(74,222,128,0.16); color: #4ade80; border-color: rgba(74,222,128,0.42);
    }
    body .poly-mnav-tile.is-play .poly-mnav-tile-meta { color: #4ade80; }
    body .poly-mnav-tile.is-leagues {
        --tile-glow: radial-gradient(110% 90% at 100% 0%, rgba(34,211,238,0.22), transparent 60%);
        border-color: rgba(34,211,238,0.32);
    }
    body .poly-mnav-tile.is-leagues .poly-mnav-tile-icon {
        background: rgba(34,211,238,0.14); color: #22d3ee; border-color: rgba(34,211,238,0.4);
    }
    body .poly-mnav-tile.is-leagues .poly-mnav-tile-meta { color: #22d3ee; }
    body .poly-mnav-tile.is-board {
        --tile-glow: radial-gradient(110% 90% at 100% 100%, rgba(251,191,36,0.18), transparent 60%);
        border-color: rgba(251,191,36,0.30);
    }
    body .poly-mnav-tile.is-board .poly-mnav-tile-icon {
        background: rgba(251,191,36,0.14); color: #fbbf24; border-color: rgba(251,191,36,0.4);
    }
    body .poly-mnav-tile.is-board .poly-mnav-tile-meta { color: #fbbf24; }
    body .poly-mnav-tile.is-profile {
        --tile-glow: radial-gradient(110% 90% at 0% 100%, rgba(244,114,182,0.18), transparent 60%);
        border-color: rgba(244,114,182,0.28);
    }
    body .poly-mnav-tile.is-profile .poly-mnav-tile-icon {
        background: rgba(244,114,182,0.14); color: #f472b6; border-color: rgba(244,114,182,0.36);
    }
    body .poly-mnav-tile.is-profile .poly-mnav-tile-meta { color: #f472b6; }
    body .poly-mnav-tile.is-active {
        background: linear-gradient(180deg, rgba(20,28,36,0.92), rgba(10,14,20,0.96));
    }
    body .poly-mnav-tile.is-active::after {
        content: "";
        position: absolute;
        right: 10px;
        top: 12px;
        width: 6px; height: 6px;
        border-radius: 50%;
        background: currentColor;
        box-shadow: 0 0 0 0 rgba(74,222,128,0.45);
        animation: polyMnavTilePulse 1.8s ease-out infinite;
        z-index: 2;
    }
    @keyframes polyMnavTilePulse {
        0%   { box-shadow: 0 0 0 0 rgba(74,222,128,0.55); }
        65%  { box-shadow: 0 0 0 8px rgba(74,222,128,0); }
        100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); }
    }

    /* Quick-actions list ------------------------------------------------- */
    body .poly-mnav-quick {
        list-style: none;
        margin: 0;
        padding: 6px;
        display: flex;
        flex-direction: column;
        gap: 2px;
        background: rgba(0,0,0,0.32);
        border: 1px solid rgba(255,255,255,0.06);
        border-radius: 14px;
    }
    body .poly-mnav-quick li { margin: 0; }
    body .poly-mnav-quick a {
        display: grid;
        grid-template-columns: 28px 1fr auto;
        align-items: center;
        gap: 12px;
        padding: 11px 10px;
        border-radius: 10px;
        text-decoration: none;
        color: rgba(244,244,247,0.85);
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 14px;
        font-weight: 600;
        transition: background .15s ease, color .15s ease, transform .12s ease;
    }
    body .poly-mnav-quick a:active {
        background: rgba(74,222,128,0.10);
        color: #f4f4f7;
        transform: scale(0.985);
    }
    body .poly-mnav-quick-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border-radius: 8px;
        background: rgba(255,255,255,0.05);
        border: 1px solid rgba(255,255,255,0.06);
        color: rgba(244,244,247,0.65);
    }
    body .poly-mnav-quick a em {
        font-style: normal;
        color: rgba(244,244,247,0.4);
        font-family: 'JetBrains Mono', monospace;
        font-size: 12px;
    }

    /* Stats strip -------------------------------------------------------- */
    body .poly-mnav-stats {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }
    body .poly-mnav-stat {
        display: flex;
        flex-direction: column;
        gap: 3px;
        padding: 11px 10px;
        border-radius: 12px;
        background: rgba(255,255,255,0.025);
        border: 1px solid rgba(255,255,255,0.06);
        text-align: center;
    }
    body .poly-mnav-stat strong {
        font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
        font-weight: 800;
        font-size: 22px;
        color: #f4f4f7;
        line-height: 1;
        letter-spacing: -0.01em;
    }
    body .poly-mnav-stat em {
        font-style: normal;
        font-family: 'JetBrains Mono', monospace;
        font-size: 9px;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: rgba(244,244,247,0.4);
    }

    /* Top-3 board preview ----------------------------------------------- */
    body .poly-mnav-board {
        padding: 14px;
        border-radius: 14px;
        background: linear-gradient(180deg, rgba(14,18,24,0.85), rgba(8,11,16,0.92));
        border: 1px solid rgba(251,191,36,0.22);
    }
    body .poly-mnav-board-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 10px;
    }
    body .poly-mnav-board-eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-family: 'JetBrains Mono', monospace;
        font-size: 9.5px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: #fbbf24;
    }
    body .poly-mnav-board-pulse {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: #fbbf24;
        box-shadow: 0 0 0 0 rgba(251,191,36,0.5);
        animation: polyMnavBoardPulse 1.8s ease-out infinite;
    }
    @keyframes polyMnavBoardPulse {
        0%   { box-shadow: 0 0 0 0 rgba(251,191,36,0.55); }
        65%  { box-shadow: 0 0 0 6px rgba(251,191,36,0); }
        100% { box-shadow: 0 0 0 0 rgba(251,191,36,0); }
    }
    body .poly-mnav-board-cta {
        font-family: 'JetBrains Mono', monospace;
        font-size: 10px;
        letter-spacing: 0.06em;
        color: rgba(244,244,247,0.55);
        text-decoration: none;
    }
    body .poly-mnav-board-cta:active { color: #4ade80; }
    body .poly-mnav-board-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 3px;
    }
    body .poly-mnav-board-list li {
        display: grid;
        grid-template-columns: 32px 1fr auto;
        gap: 10px;
        align-items: center;
        padding: 7px 8px;
        border-radius: 8px;
        background: rgba(255,255,255,0.025);
    }
    body .poly-mnav-board-list li:nth-child(1) { background: rgba(251,191,36,0.10); }
    body .poly-mnav-board-list li:nth-child(2) { background: rgba(226,232,240,0.05); }
    body .poly-mnav-board-list li:nth-child(3) { background: rgba(217,119,6,0.06); }
    body .poly-mnav-board-rank {
        font-family: 'JetBrains Mono', monospace;
        font-size: 11px;
        font-weight: 700;
        color: rgba(244,244,247,0.55);
    }
    body .poly-mnav-board-list li:nth-child(1) .poly-mnav-board-rank { color: #fbbf24; }
    body .poly-mnav-board-list li:nth-child(2) .poly-mnav-board-rank { color: #e2e8f0; }
    body .poly-mnav-board-list li:nth-child(3) .poly-mnav-board-rank { color: #d97706; }
    body .poly-mnav-board-name {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-weight: 700;
        font-size: 13px;
        color: #f4f4f7;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    body .poly-mnav-board-pts {
        font-family: 'JetBrains Mono', monospace;
        font-size: 11px;
        font-weight: 700;
        color: #4ade80;
    }
    body .poly-mnav-board-pts em {
        font-style: normal;
        font-size: 8px;
        letter-spacing: 0.1em;
        color: rgba(244,244,247,0.4);
        margin-left: 3px;
        text-transform: uppercase;
    }

    /* Sign out chip ----------------------------------------------------- */
    body .poly-mnav-signout {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 11px 16px;
        margin-top: 4px;
        border-radius: 12px;
        background: rgba(255,255,255,0.025);
        border: 1px solid rgba(255,255,255,0.07);
        color: rgba(244,244,247,0.55);
        font-family: 'JetBrains Mono', monospace;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        text-decoration: none;
        align-self: stretch;
        transition: transform .12s ease, color .15s ease, border-color .15s ease;
    }
    body .poly-mnav-signout:active {
        color: #fb7185;
        border-color: rgba(244,63,94,0.35);
        transform: scale(0.98);
    }

    /* Mobile menu drawer polish ----------------------------------------- */
    body .poly-header-shell .site-nav {
        background: rgba(4,6,12,0.985);
        backdrop-filter: blur(28px);
        -webkit-backdrop-filter: blur(28px);
        border-right: 1px solid rgba(74,222,128,0.18);
        overflow-y: auto;
        scrollbar-width: thin;
    }
    body .poly-header-shell .site-nav::-webkit-scrollbar { width: 4px; }
    body .poly-header-shell .site-nav::-webkit-scrollbar-thumb {
        background: rgba(74,222,128,0.28); border-radius: 999px;
    }

    /* Drawer head — bigger close target */
    body .poly-mobile-nav-head {
        padding: 14px 16px 12px !important;
        position: sticky;
        top: 0;
        z-index: 5;
        background: linear-gradient(180deg, rgba(4,6,12,0.98), rgba(4,6,12,0));
        backdrop-filter: blur(14px);
    }
    body .poly-mobile-nav-close {
        width: 40px;
        height: 40px;
    }
}

/* Slightly tighter at very small screens */
@media (max-width: 360px) {
    body .poly-header-shell .site-nav .poly-mnav { padding: 14px 12px 24px; gap: 12px; }
    body .poly-mnav-hero { padding: 12px; gap: 12px; grid-template-columns: 46px 1fr 18px; }
    body .poly-mnav-hero-avatar { width: 46px; height: 46px; font-size: 21px; border-radius: 14px; }
    body .poly-mnav-hero-name { font-size: 19px; }
    body .poly-mnav-tile { padding: 12px; min-height: 88px; }
    body .poly-mnav-tile-label { font-size: 14px; }
    body .poly-mnav-stat strong { font-size: 19px; }
    body .poly-mnav-quick a { padding: 10px 8px; font-size: 13.5px; }
}

/* =========================================================================
   Leaderboard redesign — bolder hero, sticky tabs/you-card on mobile,
   refined podium, premium table, mini-league cross-promo footer.
   ========================================================================= */

/* Hero — refined heading + meta line */
body .poly-board-hero {
    text-align: left;
    margin-bottom: 18px;
}
body .poly-board-title em {
    font-style: normal;
    background: linear-gradient(135deg, #4ade80 0%, #22d3ee 50%, #fbbf24 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: polyBoardTitleShift 9s ease-in-out infinite;
}
@keyframes polyBoardTitleShift {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}
body .poly-board-sub strong {
    font-weight: 700;
    color: #f4f4f7;
}

/* Tabs — subtle pill bar with animated active fill */
body .poly-board-tabs {
    margin: 0 0 18px;
    padding: 4px;
    background: rgba(0,0,0,0.32);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 14px;
    width: fit-content;
}
body .poly-board-tab {
    padding: 9px 16px;
    border-radius: 10px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.55);
    text-decoration: none;
    transition: background .15s ease, color .15s ease, transform .12s ease;
}
body .poly-board-tab:hover { color: #f4f4f7; background: rgba(255,255,255,0.04); }
body .poly-board-tab.is-active {
    background: linear-gradient(180deg, rgba(74,222,128,0.18), rgba(34,211,238,0.10));
    color: #f4f4f7;
    box-shadow: inset 0 0 0 1px rgba(74,222,128,0.32);
}

/* "Your position" — premium, prominent, with percentile chip */
body .poly-board-you-v2 {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    margin-bottom: 28px;
    border-radius: 18px;
    background:
        radial-gradient(120% 100% at 0% 0%, rgba(34,211,238,0.16), transparent 60%),
        radial-gradient(100% 100% at 100% 100%, rgba(74,222,128,0.12), transparent 60%),
        linear-gradient(180deg, rgba(14,18,24,0.88), rgba(8,11,16,0.94));
    border: 1px solid rgba(34,211,238,0.32);
    position: relative;
    overflow: hidden;
}
body .poly-board-you-v2::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(34,211,238,0.7), rgba(74,222,128,0.6), transparent);
}
body .poly-board-you-v2-main {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 100px;
}
body .poly-board-you-v2-rank {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    line-height: 1;
}
body .poly-board-you-v2-rank-hash {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 800;
    color: rgba(34,211,238,0.55);
    letter-spacing: -0.02em;
}
body .poly-board-you-v2-rank-num {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-size: 56px;
    font-weight: 800;
    color: #22d3ee;
    line-height: 0.9;
    letter-spacing: -0.02em;
}
body .poly-board-you-v2-rank-of {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: rgba(244,244,247,0.5);
    letter-spacing: 0.04em;
    margin-left: 4px;
}
body .poly-board-you-v2-meta {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
body .poly-board-you-v2-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.4);
}
body .poly-board-you-v2-percentile {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    color: #4ade80;
    letter-spacing: 0.04em;
    background: rgba(74,222,128,0.14);
    padding: 3px 9px;
    border-radius: 999px;
    border: 1px solid rgba(74,222,128,0.32);
    width: fit-content;
}
body .poly-board-you-v2-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
    gap: 10px;
}
body .poly-board-you-v2-stat {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
    line-height: 1;
}
body .poly-board-you-v2-stat em {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.4);
}
body .poly-board-you-v2-stat strong {
    font-family: 'JetBrains Mono', monospace;
    font-size: 16px;
    font-weight: 700;
    color: #f4f4f7;
    letter-spacing: 0.02em;
}
body .poly-board-you-v2-stat.is-streak strong { color: #fbbf24; }
body .poly-board-you-v2-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 12px 18px;
    border-radius: 999px;
    background: linear-gradient(180deg, #22d67d, #1cb56b);
    color: #04060c;
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    box-shadow: 0 14px 28px -10px rgba(34,214,125,0.6);
    transition: transform .15s ease, box-shadow .15s ease;
    white-space: nowrap;
}
body .poly-board-you-v2-cta:hover { transform: translateY(-1px); }

/* =========================================================================
   Podium redesign — "Stage Lights"
   No card boxes. Three floating columns aligned to a baseline; #1 elevated
   and dramatically larger; avatars get colour-coded halo glows (gold /
   silver / bronze); a single big ghost numeral sits behind each tower
   instead of the redundant medal + pill duo.
   ========================================================================= */
body .poly-board-podium {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 28px;
    padding: 56px 12px 28px;
    margin-bottom: 32px;
    background: transparent !important;
    border: none !important;
    position: relative;
}
/* Stage spotlight glow behind the podium */
body .poly-board-podium::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(50% 70% at 50% 100%, rgba(251,191,36,0.12), transparent 65%),
        radial-gradient(40% 60% at 50% 80%, rgba(74,222,128,0.06), transparent 60%);
    pointer-events: none;
    z-index: 0;
}
/* Each "tower" — bare column, no border, no card background */
body .poly-board-podium-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    z-index: 1;
    width: 200px;
    max-width: 28%;
    transition: transform .25s cubic-bezier(.32,.72,0,1);
}
body .poly-board-podium-card:hover { transform: translateY(-4px); }

/* Hide the duplicate medal — the big ghost numeral does the job */
body .poly-board-podium-medal { display: none !important; }

/* Big ghost rank numeral — sits behind everything else as a watermark */
body .poly-board-podium-rank {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 96px;
    line-height: 0.85;
    color: rgba(255,255,255,0.04);
    letter-spacing: -0.04em;
    z-index: 0;
    pointer-events: none;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    width: auto;
    height: auto;
}
body .poly-board-podium-card.is-gold   .poly-board-podium-rank { color: rgba(251,191,36,0.14); }
body .poly-board-podium-card.is-silver .poly-board-podium-rank { color: rgba(226,232,240,0.10); }
body .poly-board-podium-card.is-bronze .poly-board-podium-rank { color: rgba(217,119,6,0.12); }

/* Avatar — circular with colour-coded halo */
body .poly-board-podium-avatar {
    position: relative;
    z-index: 2;
    width: 108px;
    height: 108px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 16px;
    background: linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
    border: none !important;
}
body .poly-board-podium-avatar img,
body .poly-board-podium-avatar span {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 38px;
    color: #f4f4f7;
}
body .poly-board-podium-card.is-gold .poly-board-podium-avatar {
    box-shadow:
        0 0 0 4px rgba(251,191,36,0.7),
        0 0 0 8px rgba(251,191,36,0.18),
        0 0 36px 6px rgba(251,191,36,0.4);
}
body .poly-board-podium-card.is-silver .poly-board-podium-avatar {
    box-shadow:
        0 0 0 3px rgba(226,232,240,0.55),
        0 0 0 6px rgba(226,232,240,0.14),
        0 0 24px 4px rgba(226,232,240,0.22);
}
body .poly-board-podium-card.is-bronze .poly-board-podium-avatar {
    box-shadow:
        0 0 0 3px rgba(217,119,6,0.6),
        0 0 0 6px rgba(217,119,6,0.14),
        0 0 24px 4px rgba(217,119,6,0.24);
}

/* #1 is dramatically bigger and elevated above its siblings */
body .poly-board-podium-card[data-rank="1"] {
    width: 240px;
    transform: translateY(-18px);
}
body .poly-board-podium-card[data-rank="1"]:hover { transform: translateY(-22px); }
body .poly-board-podium-card[data-rank="1"] .poly-board-podium-rank {
    font-size: 132px;
    top: -22px;
}
body .poly-board-podium-card[data-rank="1"] .poly-board-podium-avatar {
    width: 138px;
    height: 138px;
}
/* Crown floating above #1 */
body .poly-board-podium-card[data-rank="1"]::after {
    content: "👑";
    position: absolute;
    top: -28px;
    left: 50%;
    transform: translateX(-50%) rotate(-6deg);
    font-size: 32px;
    line-height: 1;
    filter: drop-shadow(0 6px 14px rgba(251,191,36,0.55));
    z-index: 3;
    animation: polyPodiumCrown 4s ease-in-out infinite;
}
@keyframes polyPodiumCrown {
    0%, 100% { transform: translateX(-50%) rotate(-6deg) translateY(0); }
    50%      { transform: translateX(-50%) rotate(-3deg) translateY(-3px); }
}

/* Name */
body .poly-board-podium-name {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-weight: 800;
    font-size: 15px;
    color: #f4f4f7;
    margin: 0 0 8px;
    line-height: 1.25;
    letter-spacing: 0.005em;
    position: relative;
    z-index: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
body .poly-board-podium-card[data-rank="1"] .poly-board-podium-name { font-size: 18px; }

/* YOU pill keeps inline placement */
body .poly-board-podium-you {
    display: inline-flex;
    align-items: center;
    margin-left: 6px;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(34,211,238,0.18);
    color: #22d3ee;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.12em;
    border: 1px solid rgba(34,211,238,0.45);
    font-style: normal;
    vertical-align: middle;
    line-height: 1.4;
}

/* Points — stripped pill, just the number with units */
body .poly-board-podium-points {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    justify-content: center;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    position: relative;
    z-index: 2;
}
body .poly-board-podium-points strong {
    font-family: 'JetBrains Mono', monospace;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #f4f4f7;
}
body .poly-board-podium-card.is-gold   .poly-board-podium-points strong { color: #fbbf24; }
body .poly-board-podium-card.is-silver .poly-board-podium-points strong { color: #e2e8f0; }
body .poly-board-podium-card.is-bronze .poly-board-podium-points strong { color: #d97706; }
body .poly-board-podium-card[data-rank="1"] .poly-board-podium-points strong { font-size: 22px; }
body .poly-board-podium-points em {
    font-style: normal;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.4);
}

/* Viewer-is-on-podium ring upgrade — adds a cyan secondary halo */
body .poly-board-podium-card.is-you .poly-board-podium-avatar {
    box-shadow:
        0 0 0 4px rgba(34,211,238,0.65),
        0 0 0 9px rgba(34,211,238,0.22),
        0 0 36px 6px rgba(34,211,238,0.35) !important;
}

/* =========================================================================
   Standings table — drop the heavy bordered "card-in-card" feel.
   Section now blends with the page background; rows still get hover/zebra
   so structure is preserved.
   ========================================================================= */
body .poly-board-table-wrap {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    margin-top: 8px;
}
body .poly-board-table-shell {
    background: linear-gradient(180deg, rgba(14,18,24,0.55), rgba(8,11,16,0.62)) !important;
    border: 1px solid rgba(255,255,255,0.04) !important;
    border-radius: 14px !important;
    padding: 6px !important;
    overflow: hidden;
}
body .poly-board-table-row {
    background: transparent;
    border: 1px solid transparent;
}
body .poly-board-table-row:not(.poly-board-table-row-head):hover {
    background: rgba(255,255,255,0.03);
}
body .poly-board-table-row.is-self {
    background: linear-gradient(90deg, rgba(34,211,238,0.10), rgba(34,211,238,0.02)) !important;
    border-color: rgba(34,211,238,0.32) !important;
}
body .poly-board-table-row-head {
    background: rgba(0,0,0,0.18) !important;
    color: rgba(244,244,247,0.45);
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

/* Mobile: keep the vertical podium working under the new rules */
@media (max-width: 700px) {
    body .poly-board-podium {
        padding: 14px 0 8px !important;
        gap: 8px !important;
    }
    body .poly-board-podium::before { display: none; }
    body .poly-board-podium-card,
    body .poly-board-podium-card[data-rank="1"] {
        width: 100% !important;
        max-width: 100% !important;
        transform: none !important;
    }
    body .poly-board-podium-card[data-rank="1"]::after { display: none; }
    body .poly-board-podium-rank { display: none !important; }
    /* The mobile compact horizontal-row layout takes over (already set
       in the prior @media (max-width: 700px) block). */
}

/* Standings table — count chip on header */
body .poly-board-table-count {
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    padding: 2px 9px;
    border-radius: 999px;
    background: rgba(255,255,255,0.05);
    color: rgba(244,244,247,0.55);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.04em;
    border: 1px solid rgba(255,255,255,0.08);
    vertical-align: middle;
}

/* Empty state — centered with icon + CTA */
body .poly-board-empty {
    text-align: center;
    padding: 40px 20px;
}
body .poly-board-empty-icon {
    display: block;
    font-size: 36px;
    margin-bottom: 8px;
    filter: drop-shadow(0 4px 12px rgba(74,222,128,0.3));
}
body .poly-board-empty p {
    color: rgba(244,244,247,0.65);
    font-size: 14px;
    line-height: 1.5;
    margin: 0 0 14px;
}
body .poly-board-empty p strong {
    display: block;
    color: #f4f4f7;
    margin-bottom: 4px;
    font-weight: 700;
}
body .poly-board-empty-cta {
    display: inline-flex;
    align-items: center;
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(74,222,128,0.14);
    color: #4ade80;
    border: 1px solid rgba(74,222,128,0.34);
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

body .poly-board-table-foot {
    text-align: center;
    margin: 14px 0 0;
    color: rgba(244,244,247,0.5);
    font-size: 13px;
}

/* Cross-promo: private leagues */
body .poly-board-cross-promo {
    display: grid;
    grid-template-columns: 44px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 16px 18px;
    margin-top: 28px;
    border-radius: 16px;
    background: linear-gradient(160deg, rgba(34,211,238,0.10), rgba(74,222,128,0.06));
    border: 1px solid rgba(34,211,238,0.28);
}
body .poly-board-cross-promo-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(34,211,238,0.16);
    color: #22d3ee;
    border: 1px solid rgba(34,211,238,0.4);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
body .poly-board-cross-promo-body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}
body .poly-board-cross-promo-body strong {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 15px;
    color: #f4f4f7;
}
body .poly-board-cross-promo-body span {
    font-size: 13px;
    color: rgba(244,244,247,0.65);
    line-height: 1.4;
}
body .poly-board-cross-promo-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border-radius: 999px;
    background: rgba(34,211,238,0.14);
    color: #22d3ee;
    border: 1px solid rgba(34,211,238,0.4);
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: background .15s ease, transform .12s ease;
}
body .poly-board-cross-promo-cta:hover {
    background: rgba(34,211,238,0.22);
    transform: translateY(-1px);
}

/* ============================== MOBILE polish (≤700px) ============================== */
@media (max-width: 700px) {
    /* Hero shrinks */
    body .poly-board { padding: 16px 14px calc(60px + env(safe-area-inset-bottom, 0px)); }
    body .poly-board-hero { margin-bottom: 12px; }

    /* Tabs sticky on phone */
    body .poly-board-tabs {
        position: sticky;
        top: 64px;
        z-index: 10;
        width: 100%;
        display: flex;
        gap: 2px;
        margin-bottom: 14px;
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
        background: rgba(4,6,12,0.78);
    }
    body .poly-board-tab {
        flex: 1;
        text-align: center;
        padding: 9px 6px;
        font-size: 9.5px;
        letter-spacing: 0.08em;
    }
    body .poly-board-tab span { white-space: nowrap; }

    /* Your-position card stacks; sticky below tabs */
    body .poly-board-you-v2 {
        grid-template-columns: 1fr;
        padding: 14px 16px;
        margin-bottom: 18px;
        gap: 12px;
        position: sticky;
        top: 116px;
        z-index: 9;
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
        background:
            radial-gradient(120% 100% at 0% 0%, rgba(34,211,238,0.16), transparent 60%),
            linear-gradient(180deg, rgba(8,11,16,0.94), rgba(4,6,12,0.96));
    }
    body .poly-board-you-v2-main {
        display: grid;
        grid-template-columns: auto 1fr;
        align-items: center;
        gap: 12px;
        min-width: 0;
    }
    body .poly-board-you-v2-rank-num { font-size: 44px; }
    body .poly-board-you-v2-rank-hash { font-size: 22px; }
    body .poly-board-you-v2-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    body .poly-board-you-v2-stat { padding: 8px 10px; }
    body .poly-board-you-v2-stat strong { font-size: 14px; }
    body .poly-board-you-v2-cta {
        justify-content: center;
        padding: 11px 16px;
        font-size: 10.5px;
        letter-spacing: 0.12em;
    }

    /* Podium — vertical stack on phone, owner of the moment */
    body .poly-board-podium {
        display: flex !important;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 18px;
    }
    body .poly-board-podium-card {
        display: grid !important;
        grid-template-columns: 60px 1fr auto;
        gap: 14px;
        align-items: center;
        padding: 12px 14px 12px;
        text-align: left;
    }
    body .poly-board-podium-medal {
        position: static;
        transform: none;
        font-size: 28px;
        grid-row: 1;
        grid-column: 1;
    }
    body .poly-board-podium-rank { display: none; }
    body .poly-board-podium-avatar {
        display: none !important;
    }
    body .poly-board-podium-name {
        grid-column: 2;
        font-size: 16px;
        margin: 0;
        text-align: left;
    }
    body .poly-board-podium-points {
        grid-column: 3;
        text-align: right;
    }
    body .poly-board-podium-points strong { font-size: 18px; }

    /* Table — compact rows */
    body .poly-board-table-wrap { padding: 14px 12px 16px; border-radius: 14px; }
    body .poly-board-table-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        margin-bottom: 10px;
    }
    body .poly-board-table-title { font-size: 16px; }
    body .poly-board-table-search { width: 100%; }
    body .poly-board-table-search input { width: 100%; }
    body .poly-board-table-row {
        grid-template-columns: 38px 1fr auto 24px !important;
        padding: 8px 8px;
        gap: 8px;
    }
    body .poly-board-table-row-head { display: none !important; }
    body .poly-board-cell-rank { font-size: 12px; font-weight: 700; }
    body .poly-board-player-avatar { width: 28px; height: 28px; font-size: 11px; }
    body .poly-board-player-name { font-size: 13px; }
    body .poly-board-cell-points strong { font-size: 13px; }
    body .poly-board-cell-points em { font-size: 8.5px; }
    body .poly-board-cell-trend { font-size: 13px; }
    body .poly-board-self-tag { font-size: 8.5px; padding: 1px 5px; }

    /* Cross-promo collapses to 2-row layout */
    body .poly-board-cross-promo {
        grid-template-columns: 40px 1fr;
        grid-template-rows: auto auto;
        gap: 10px 12px;
        padding: 14px;
    }
    body .poly-board-cross-promo-icon { width: 40px; height: 40px; }
    body .poly-board-cross-promo-body strong { font-size: 14px; }
    body .poly-board-cross-promo-body span { font-size: 12.5px; }
    body .poly-board-cross-promo-cta {
        grid-column: 1 / -1;
        justify-content: center;
        padding: 11px 16px;
        font-size: 10.5px;
    }
}

@media (max-width: 540px) {
    body .poly-board-title { font-size: clamp(28px, 8vw, 40px); line-height: 1.05; }
    body .poly-board-sub { font-size: 13px; line-height: 1.5; }
    body .poly-board-eyebrow { font-size: 10px; letter-spacing: 0.14em; }
    body .poly-board-you-v2 { top: 108px; }
}

/* Touch press states */
@media (hover: none) and (pointer: coarse) {
    .poly-board-tab:active { transform: scale(0.97); }
    .poly-board-you-v2-cta:active { transform: scale(0.96); }
    .poly-board-cross-promo-cta:active { transform: scale(0.97); }
    .poly-board-empty-cta:active { transform: scale(0.97); }
    .poly-board-table-row:active:not(.poly-board-table-row-head) {
        background: rgba(255,255,255,0.04);
    }
}

/* =========================================================================
   League detail expansion — About panel + Matches tab
   ========================================================================= */

/* "About this league" panel below the hero */
.poly-groups-about {
    margin-bottom: 22px;
    padding: 22px;
    border-radius: 18px;
    background: linear-gradient(160deg, rgba(14,18,24,0.85), rgba(8,11,16,0.92));
    border: 1px solid rgba(255,255,255,0.07);
    position: relative;
    overflow: hidden;
}
.poly-groups-about::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(74,222,128,0.55), rgba(34,211,238,0.55), transparent);
    opacity: 0.7;
}
.poly-groups-about-head { margin-bottom: 16px; }
.poly-groups-about-eyebrow {
    display: block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #4ade80;
    margin-bottom: 6px;
}
.poly-groups-about-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 22px;
    margin: 0 0 8px;
    color: #f4f4f7;
    letter-spacing: -0.005em;
}
.poly-groups-about-desc {
    color: rgba(244,244,247,0.78);
    font-size: 14px;
    line-height: 1.55;
    margin: 0;
    max-width: 760px;
}
.poly-groups-about-desc-empty {
    color: rgba(244,244,247,0.65);
    font-style: italic;
}
.poly-groups-about-desc strong {
    color: #4ade80;
    font-style: normal;
    font-weight: 700;
}

.poly-groups-about-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
    margin: 0 0 16px;
    padding: 12px;
    border-radius: 12px;
    background: rgba(0,0,0,0.32);
    border: 1px solid rgba(255,255,255,0.06);
}
.poly-groups-about-fact { margin: 0; padding: 6px 8px; }
.poly-groups-about-fact dt {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.4);
    margin: 0 0 3px;
}
.poly-groups-about-fact dd {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 13.5px;
    color: #f4f4f7;
    margin: 0;
    line-height: 1.3;
}
.poly-groups-about-fact dd em {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(244,244,247,0.45);
    font-weight: 400;
    margin-left: 2px;
}

.poly-groups-about-stats {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}
.poly-groups-about-stat {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 12px;
    border-radius: 12px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.07);
    text-align: center;
}
.poly-groups-about-stat strong {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 26px;
    line-height: 1;
    color: #f4f4f7;
    letter-spacing: -0.01em;
}
.poly-groups-about-stat em {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.45);
}
.poly-groups-about-stat.is-tone-green strong { color: #4ade80; }
.poly-groups-about-stat.is-tone-green { border-color: rgba(74,222,128,0.22); }
.poly-groups-about-stat.is-tone-cyan strong { color: #22d3ee; }
.poly-groups-about-stat.is-tone-cyan { border-color: rgba(34,211,238,0.22); }
.poly-groups-about-stat.is-tone-amber strong { color: #fbbf24; }
.poly-groups-about-stat.is-tone-amber { border-color: rgba(251,191,36,0.22); }
.poly-groups-about-stat.is-tone-pink strong { color: #f472b6; }
.poly-groups-about-stat.is-tone-pink { border-color: rgba(244,114,182,0.22); }

@media (max-width: 720px) {
    .poly-groups-about { padding: 16px 14px; }
    .poly-groups-about-title { font-size: 19px; }
    .poly-groups-about-desc { font-size: 13px; }
    .poly-groups-about-facts {
        grid-template-columns: 1fr 1fr;
        padding: 8px;
    }
    .poly-groups-about-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    .poly-groups-about-stat strong { font-size: 22px; }
    .poly-groups-about-stat { padding: 11px 10px; }
}

/* Matches tab — section header + list */
.poly-groups-matches-section {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.5);
    margin: 14px 0 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.poly-groups-matches-section:first-of-type { margin-top: 4px; }
.poly-groups-matches-section .poly-groups-pill {
    font-size: 9px;
    padding: 1px 6px;
}

.poly-groups-matches {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.poly-groups-matches li { margin: 0; }
.poly-groups-match {
    display: grid;
    grid-template-columns: 76px 86px 1fr 120px;
    gap: 14px;
    align-items: center;
    padding: 12px 14px;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(14,18,24,0.65), rgba(8,11,16,0.82));
    border: 1px solid rgba(255,255,255,0.07);
    color: #f4f4f7;
    text-decoration: none;
    transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.poly-groups-match:hover {
    transform: translateY(-1px);
    border-color: rgba(74,222,128,0.32);
    background: linear-gradient(180deg, rgba(20,28,36,0.82), rgba(10,14,20,0.92));
}
.poly-groups-match.is-final { opacity: 0.92; }
.poly-groups-match-status {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-align: center;
    padding: 5px 8px;
    border-radius: 999px;
    border: 1px solid transparent;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    justify-content: center;
}
.poly-groups-match-status.status-live {
    background: rgba(244,63,94,0.14);
    color: #fb7185;
    border-color: rgba(244,63,94,0.4);
}
.poly-groups-match-live-dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fb7185;
    box-shadow: 0 0 0 0 rgba(244,63,94,0.5);
    animation: polyMatchLivePulse 1.6s ease-out infinite;
}
@keyframes polyMatchLivePulse {
    0%   { box-shadow: 0 0 0 0 rgba(244,63,94,0.55); }
    65%  { box-shadow: 0 0 0 5px rgba(244,63,94,0); }
    100% { box-shadow: 0 0 0 0 rgba(244,63,94,0); }
}
.poly-groups-match-status.status-locked {
    background: rgba(251,191,36,0.12);
    color: #fbbf24;
    border-color: rgba(251,191,36,0.32);
}
.poly-groups-match-status.status-upcoming {
    background: rgba(74,222,128,0.12);
    color: #4ade80;
    border-color: rgba(74,222,128,0.32);
}
.poly-groups-match-status.status-final {
    background: rgba(255,255,255,0.05);
    color: rgba(244,244,247,0.55);
    border-color: rgba(255,255,255,0.08);
}
.poly-groups-match-time {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: rgba(244,244,247,0.6);
    letter-spacing: 0.04em;
    text-align: left;
    line-height: 1.25;
}
.poly-groups-match-fixture {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.poly-groups-match-team {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 13.5px;
    color: #f4f4f7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 0;
}
.poly-groups-match-fixture .poly-groups-match-team:last-child { text-align: right; }
.poly-groups-match-vs {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    color: rgba(244,244,247,0.4);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.poly-groups-match-score {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 14px;
    color: #4ade80;
    letter-spacing: 0.04em;
    background: rgba(74,222,128,0.10);
    padding: 4px 10px;
    border-radius: 8px;
    border: 1px solid rgba(74,222,128,0.28);
    flex: 0 0 auto;
}
.poly-groups-match-picks {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: flex-end;
}
.poly-groups-match-picks-bar {
    display: block;
    width: 100%;
    height: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,0.06);
    overflow: hidden;
    position: relative;
}
.poly-groups-match-picks-bar::after {
    content: "";
    position: absolute;
    top: 0; left: 0;
    height: 100%;
    width: var(--pct, 0%);
    background: linear-gradient(90deg, #4ade80, #22d3ee);
    border-radius: 999px;
    transition: width .3s ease;
}
.poly-groups-match-picks-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    letter-spacing: 0.06em;
    color: rgba(244,244,247,0.55);
    text-transform: uppercase;
}

/* Mobile match cards: reflow to compact layout */
@media (max-width: 720px) {
    .poly-groups-match {
        grid-template-columns: auto 1fr auto;
        grid-template-rows: auto auto;
        gap: 8px 12px;
        padding: 11px 13px;
    }
    .poly-groups-match-status { grid-row: 1; grid-column: 1; }
    .poly-groups-match-time {
        grid-row: 1;
        grid-column: 2;
        text-align: left;
    }
    .poly-groups-match-fixture {
        grid-row: 2;
        grid-column: 1 / -1;
        gap: 8px;
    }
    .poly-groups-match-team { font-size: 13px; }
    .poly-groups-match-picks {
        grid-row: 1;
        grid-column: 3;
        align-items: flex-end;
        min-width: 90px;
    }
    .poly-groups-match-picks-label { font-size: 9px; }
}

/* =========================================================================
   White-logo treatment for low-contrast contexts (mobile header / menu)
   The colored logo can read poorly on solid dark backgrounds; this filter
   collapses it to pure white with a subtle drop-shadow so it pops.
   ========================================================================= */
@media (max-width: 900px) {
    body .poly-header-shell .poly-header-logo img,
    body .poly-mobile-nav-brand img {
        filter: brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0,0,0,0.5));
    }
}
/* Mobile drawer brand always white for max contrast */
body .poly-mobile-nav-brand img {
    filter: brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0,0,0,0.6));
}
/* Auth marketing rail logo — keep white version too */
body .poly-auth-marketing img.poly-auth-brand-logo,
body .poly-auth-brand img {
    filter: brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0,0,0,0.6));
}

/* =========================================================================
   Desktop mega-menu — AAA navigation pass
   Unified visual language: animated trigger underline, top-edge accent
   line on every panel, spring-eased entry, staggered content reveal,
   refined hover/active states.
   Active above 900px (desktop only).
   ========================================================================= */
@media (min-width: 901px) {
    /* TRIGGER buttons: animated green→cyan underline indicator -------- */
    body .poly-mega-trigger,
    body .poly-mega-direct {
        position: relative !important;
        padding: 11px 16px !important;
        font-size: 11.5px !important;
        letter-spacing: 0.10em !important;
        transition: color .18s ease, background .18s ease, transform .12s ease, border-color .18s ease !important;
    }
    body .poly-mega-trigger::after,
    body .poly-mega-direct::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: -2px;
        height: 2px;
        width: 0;
        border-radius: 999px;
        background: linear-gradient(90deg, #4ade80, #22d3ee);
        transition: width .25s cubic-bezier(.32,.72,0,1), left .25s cubic-bezier(.32,.72,0,1);
        opacity: 0.95;
    }
    body .poly-mega-item:hover > .poly-mega-trigger::after,
    body .poly-mega-item:hover > .poly-mega-direct::after,
    body .mfc-nav-has-flyout.is-open > .poly-mega-trigger::after,
    body .poly-mega-item.is-active > .poly-mega-trigger::after,
    body .poly-mega-item.is-active > .poly-mega-direct::after {
        width: 60%;
        left: 20%;
    }
    body .poly-mega-trigger:hover,
    body .poly-mega-direct:hover {
        background: rgba(255,255,255,0.04) !important;
        border-color: transparent !important;
        transform: translateY(-1px);
    }
    body .poly-mega-item.is-active > .poly-mega-trigger,
    body .poly-mega-item.is-active > .poly-mega-direct {
        background: transparent !important;
    }

    /* "NEW" pill variant on My Leagues trigger */
    body .poly-nav-pill.poly-nav-pill-new {
        background: linear-gradient(135deg, rgba(74,222,128,0.22), rgba(34,211,238,0.18)) !important;
        color: #4ade80 !important;
        border: 1px solid rgba(74,222,128,0.4);
        font-size: 8.5px !important;
        letter-spacing: 0.14em !important;
        padding: 1px 6px !important;
    }

    /* MEGA panel — top accent line + spring-eased entry ----------------- */
    body .poly-mega {
        top: calc(100% + 14px) !important;
        transform: translateX(-50%) translateY(-8px) scale(0.985) !important;
        transition:
            opacity .24s cubic-bezier(.32,.72,0,1),
            transform .28s cubic-bezier(.32,1.5,.4,1),
            visibility .24s !important;
        box-shadow:
            0 36px 90px -28px rgba(0,0,0,0.78),
            0 0 0 1px rgba(74,222,128,0.05) !important;
    }
    body .mfc-nav-has-flyout.is-open .poly-mega {
        transform: translateX(-50%) translateY(0) scale(1) !important;
    }
    /* Top-edge accent — same gradient bar used on About panel + leagues hero */
    body .poly-mega::after {
        content: "";
        position: absolute;
        top: 0;
        left: 18px;
        right: 18px;
        height: 2px;
        border-radius: 999px;
        background: linear-gradient(90deg, transparent, rgba(74,222,128,0.7), rgba(34,211,238,0.6), rgba(251,191,36,0.4), transparent);
        opacity: 0.9;
        pointer-events: none;
    }

    /* Staggered fade-in for mega content ------------------------------- */
    body .mfc-nav-has-flyout.is-open .poly-mega > .poly-mega-inner > * {
        animation: polyMegaContentRise .35s cubic-bezier(.32,.72,0,1) both;
    }
    body .mfc-nav-has-flyout.is-open .poly-mega > .poly-mega-inner > *:nth-child(1) { animation-delay: 0.04s; }
    body .mfc-nav-has-flyout.is-open .poly-mega > .poly-mega-inner > *:nth-child(2) { animation-delay: 0.08s; }
    body .mfc-nav-has-flyout.is-open .poly-mega > .poly-mega-inner > *:nth-child(3) { animation-delay: 0.12s; }
    body .mfc-nav-has-flyout.is-open .poly-mega > .poly-mega-inner > *:nth-child(4) { animation-delay: 0.16s; }
    @keyframes polyMegaContentRise {
        from { opacity: 0; transform: translateY(6px); }
        to   { opacity: 1; transform: none; }
    }

    /* Hero zone polish — title gradient, eyebrow with animated pulse --- */
    body .poly-mega-eyebrow {
        font-family: 'JetBrains Mono', monospace;
        font-size: 10px;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: rgba(244,244,247,0.6);
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }
    body .poly-mega-pulse {
        display: inline-block;
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: #4ade80;
        box-shadow: 0 0 0 0 rgba(74,222,128,0.55);
        animation: polyMegaPulse 1.8s ease-out infinite;
    }
    @keyframes polyMegaPulse {
        0%   { box-shadow: 0 0 0 0 rgba(74,222,128,0.55); }
        65%  { box-shadow: 0 0 0 6px rgba(74,222,128,0); }
        100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); }
    }
    body .poly-mega-title {
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        font-weight: 800 !important;
        font-size: 19px !important;
        margin: 4px 0 4px !important;
        color: #f4f4f7 !important;
        letter-spacing: -0.01em;
    }
    body .poly-mega-sub {
        font-size: 13px !important;
        color: rgba(244,244,247,0.65) !important;
        line-height: 1.5 !important;
        margin: 0 !important;
    }

    /* CTA buttons in mega panels --------------------------------------- */
    body .poly-mega-cta {
        display: inline-flex !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 10px 16px !important;
        border-radius: 999px !important;
        font-family: 'JetBrains Mono', monospace !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        letter-spacing: 0.14em !important;
        text-transform: uppercase !important;
        text-decoration: none !important;
        transition: transform .14s ease, box-shadow .15s ease, background .15s ease !important;
    }
    body .poly-mega-cta:not(.poly-mega-cta-secondary):not(.poly-mega-cta-primary) {
        background: linear-gradient(180deg, #22d67d, #1cb56b) !important;
        color: #04060c !important;
        box-shadow: 0 12px 26px -10px rgba(34,214,125,0.55);
    }
    body .poly-mega-cta-primary {
        background: linear-gradient(180deg, #22d67d, #1cb56b) !important;
        color: #04060c !important;
        box-shadow: 0 12px 26px -10px rgba(34,214,125,0.55);
    }
    body .poly-mega-cta-secondary {
        background: rgba(255,255,255,0.04) !important;
        color: #f4f4f7 !important;
        border: 1px solid rgba(255,255,255,0.12);
    }
    body .poly-mega-cta:hover { transform: translateY(-1px); }

    /* MY LEAGUES mega — group cards + empty state ---------------------- */
    body #poly-mega-mygroups { width: min(540px, calc(100vw - 32px)) !important; }
    body #poly-mega-mygroups .poly-mega-inner { gap: 16px; }
    .poly-mega-mygroups-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    .poly-mega-mygroup {
        display: grid;
        grid-template-columns: 36px 1fr auto;
        gap: 10px;
        align-items: center;
        padding: 10px 12px;
        border-radius: 12px;
        background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.008));
        border: 1px solid rgba(255,255,255,0.06);
        text-decoration: none;
        color: #f4f4f7;
        transition: transform .14s ease, border-color .15s ease, background .15s ease;
    }
    .poly-mega-mygroup:hover {
        transform: translateY(-1px);
        border-color: rgba(74,222,128,0.32);
        background: linear-gradient(180deg, rgba(74,222,128,0.10), rgba(34,211,238,0.05));
    }
    .poly-mega-mygroup-icon {
        width: 36px;
        height: 36px;
        border-radius: 10px;
        background: linear-gradient(135deg, rgba(74,222,128,0.22), rgba(34,211,238,0.18));
        color: #f4f4f7;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-family: 'JetBrains Mono', monospace;
        font-weight: 800;
        font-size: 11px;
        letter-spacing: 0.04em;
        border: 1px solid rgba(74,222,128,0.3);
    }
    .poly-mega-mygroup-body {
        display: flex;
        flex-direction: column;
        gap: 2px;
        min-width: 0;
    }
    .poly-mega-mygroup-name {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-weight: 700;
        font-size: 13px;
        color: #f4f4f7;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .poly-mega-mygroup-meta {
        font-family: 'JetBrains Mono', monospace;
        font-size: 9.5px;
        color: rgba(244,244,247,0.5);
        letter-spacing: 0.04em;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .poly-mega-mygroup-role {
        font-style: normal;
        font-family: 'JetBrains Mono', monospace;
        font-size: 8.5px;
        font-weight: 800;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        padding: 2px 6px;
        border-radius: 999px;
        background: rgba(255,255,255,0.05);
        color: rgba(244,244,247,0.6);
    }
    .poly-mega-mygroup-role.is-admin {
        background: rgba(74,222,128,0.16);
        color: #4ade80;
    }
    .poly-mega-mygroups-empty {
        text-align: center;
        padding: 18px 14px 14px;
        border: 1px dashed rgba(255,255,255,0.14);
        border-radius: 14px;
        background: rgba(255,255,255,0.02);
    }
    .poly-mega-mygroups-empty-icon {
        font-size: 28px;
        display: block;
        margin-bottom: 6px;
        filter: drop-shadow(0 4px 10px rgba(74,222,128,0.3));
    }
    .poly-mega-mygroups-empty p {
        font-size: 13px;
        color: rgba(244,244,247,0.65);
        line-height: 1.4;
        margin: 0;
    }
    .poly-mega-mygroups-empty p strong {
        color: #f4f4f7;
        display: block;
        font-weight: 700;
        margin-bottom: 3px;
    }
    .poly-mega-mygroups-foot {
        display: flex;
        gap: 8px;
        justify-content: flex-end;
        align-items: center;
        padding-top: 10px;
        border-top: 1px solid rgba(255,255,255,0.06);
    }

    /* PREDICT mega tweaks — feature card more dynamic ------------------ */
    body #poly-mega-predict .poly-mega-feature {
        position: relative;
        padding: 18px 16px;
        border-radius: 14px;
        background: linear-gradient(160deg, rgba(74,222,128,0.10), rgba(34,211,238,0.06));
        border: 1px solid rgba(74,222,128,0.24);
        overflow: hidden;
    }
    body #poly-mega-predict .poly-mega-feature::before {
        content: "";
        position: absolute;
        inset: 0;
        background: radial-gradient(60% 50% at 100% 0%, rgba(74,222,128,0.18), transparent 60%);
        pointer-events: none;
    }

    /* LEAGUES mega tile hover refinement ------------------------------ */
    body .poly-mega-league-tile {
        transition: transform .15s ease, border-color .15s ease, background .15s ease !important;
    }
    body .poly-mega-league-tile:hover {
        transform: translateY(-2px);
        border-color: rgba(74,222,128,0.4) !important;
        background: linear-gradient(180deg, rgba(74,222,128,0.08), rgba(34,211,238,0.04)) !important;
    }

    /* LEADERBOARD mega — period chips polish --------------------------- */
    body .poly-mega-period-chip.is-active {
        background: linear-gradient(180deg, rgba(74,222,128,0.18), rgba(34,211,238,0.10)) !important;
        color: #f4f4f7 !important;
        box-shadow: inset 0 0 0 1px rgba(74,222,128,0.32);
    }
    body .poly-mega-leaders li {
        transition: background .12s ease, padding .12s ease;
    }
    body .poly-mega-leaders li:hover {
        background: rgba(255,255,255,0.04);
        padding-left: 4px;
    }
    body .poly-mega-leaders li:nth-child(1) .poly-mega-leader-rank { color: #fbbf24; }
    body .poly-mega-leaders li:nth-child(2) .poly-mega-leader-rank { color: #e2e8f0; }
    body .poly-mega-leaders li:nth-child(3) .poly-mega-leader-rank { color: #d97706; }
    body .poly-mega-leader-rank {
        font-family: 'JetBrains Mono', monospace;
        font-weight: 800;
        letter-spacing: 0.04em;
    }

    /* Refined arrow / chevron rotation timing -------------------------- */
    body .poly-mega-caret {
        transition: transform .28s cubic-bezier(.32,1.5,.4,1), color .18s ease !important;
    }
}

/* =========================================================================
   Profile pill — avatar mode (final fix: no nickname overflow possible)
   Replaces the legacy meta column with a circular avatar + small pts chip.
   Overrides earlier .poly-header-profile rules.
   ========================================================================= */
body .poly-header-shell a.poly-header-profile.is-avatar-mode {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 4px 10px 4px 4px !important;
    min-height: 40px !important;
    margin-left: 10px !important;
    background: linear-gradient(135deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015)) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    text-decoration: none !important;
    transition: background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease !important;
    line-height: 1 !important;
    box-shadow: none !important;
    position: relative;
    isolation: isolate;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
}
body .poly-header-shell a.poly-header-profile.is-avatar-mode:hover {
    background: linear-gradient(135deg, rgba(74,222,128,0.10), rgba(34,211,238,0.06)) !important;
    border-color: rgba(74,222,128,0.32) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px -10px rgba(74,222,128,0.45) !important;
}
body .poly-header-shell a.poly-header-profile.is-avatar-mode:focus-visible {
    outline: 2px solid rgba(74,222,128,0.65) !important;
    outline-offset: 2px;
}
/* Hide legacy meta if any old markup re-renders */
body .poly-header-shell a.poly-header-profile.is-avatar-mode .poly-header-profile-meta,
body .poly-header-shell a.poly-header-profile.is-avatar-mode .poly-header-profile-name,
body .poly-header-shell a.poly-header-profile.is-avatar-mode .poly-header-profile-stats,
body .poly-header-shell a.poly-header-profile.is-avatar-mode .poly-header-profile-streak {
    display: none !important;
}

/* Avatar bubble */
body .poly-header-shell .poly-header-profile-bubble {
    position: relative;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background:
        radial-gradient(120% 120% at 30% 25%, hsl(var(--poly-avatar-hue, 140) 90% 62% / .95), hsl(calc(var(--poly-avatar-hue, 140) + 40) 80% 38% / .92) 70%, hsl(calc(var(--poly-avatar-hue, 140) + 80) 60% 24% / .85));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.18),
        inset 0 -6px 12px rgba(0,0,0,0.30),
        0 4px 14px -6px rgba(0,0,0,0.55);
    overflow: visible;
}
body .poly-header-shell .poly-header-profile-initials {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-weight: 800;
    font-size: 12px;
    color: #ffffff;
    letter-spacing: 0.03em;
    text-shadow: 0 1px 1px rgba(0,0,0,0.35);
    line-height: 1;
    user-select: none;
}
/* Streak ribbon — small badge top-right */
body .poly-header-shell .poly-header-profile-streakdot {
    position: absolute;
    top: -3px;
    right: -5px;
    background: linear-gradient(180deg, #fbbf24, #f59e0b);
    color: #1a0e00;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    padding: 2px 4px;
    border-radius: 999px;
    border: 2px solid #07091a;
    letter-spacing: 0.02em;
    pointer-events: none;
    box-shadow: 0 2px 6px -2px rgba(251,191,36,0.5);
}

/* Points pill on the right of avatar */
body .poly-header-shell .poly-header-profile-pill {
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
    padding: 0 4px 0 2px;
    line-height: 1;
    flex: 0 0 auto;
}
body .poly-header-shell .poly-header-profile-pill .poly-header-profile-pts {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 13px;
    color: #4ade80;
    letter-spacing: 0.02em;
    text-shadow: 0 0 16px rgba(74,222,128,0.25);
    line-height: 1;
}
body .poly-header-shell .poly-header-profile-pill .poly-header-profile-pts.is-bumped {
    animation: polyPtsBump .55s cubic-bezier(.32,1.6,.4,1);
}
@keyframes polyPtsBump {
    0%   { transform: translateY(0) scale(1); color: #4ade80; }
    35%  { transform: translateY(-2px) scale(1.18); color: #6ef79a; }
    100% { transform: translateY(0) scale(1); color: #4ade80; }
}
body .poly-header-shell .poly-header-profile-pill .poly-header-profile-ptslabel {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 600;
    font-size: 9px;
    color: rgba(255,255,255,0.55);
    text-transform: uppercase;
    letter-spacing: 0.10em;
    line-height: 1;
}

/* Mobile: keep just the avatar (no pts pill — saves space) */
@media (max-width: 900px) {
    body .poly-header-shell a.poly-header-profile.is-avatar-mode {
        padding: 4px !important;
        min-height: 40px !important;
        margin-left: 6px !important;
    }
    body .poly-header-shell a.poly-header-profile.is-avatar-mode::after { content: none !important; }
    body .poly-header-shell .poly-header-profile-pill { display: none !important; }
    body .poly-header-shell .poly-header-profile-bubble {
        width: 32px;
        height: 32px;
    }
    body .poly-header-shell .poly-header-profile-initials { font-size: 11px; }
}

/* =========================================================================
   Stats nav link in desktop mega — flat link with subtle pulse dot
   ========================================================================= */
body .poly-stats-navitem .poly-stats-navlink {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    color: rgba(255,255,255,0.78);
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    transition: color .18s ease;
}
body .poly-stats-navitem .poly-stats-navlink:hover,
body .poly-stats-navitem.is-active .poly-stats-navlink { color: #4ade80; }
body .poly-stats-navitem .poly-stats-navlink-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #22d3ee;
    box-shadow: 0 0 0 0 rgba(34,211,238,0.8);
    animation: polyStatsPulse 2.4s ease-out infinite;
}
@keyframes polyStatsPulse {
    0%   { box-shadow: 0 0 0 0 rgba(34,211,238,0.6); }
    70%  { box-shadow: 0 0 0 10px rgba(34,211,238,0); }
    100% { box-shadow: 0 0 0 0 rgba(34,211,238,0); }
}

/* =========================================================================
   STATS / INSIGHTS PAGE
   Polymarket-style platform analytics — Stadium-After-Dark aesthetic
   ========================================================================= */
.poly-stats-shell {
    --stats-bg: #04060c;
    --stats-card: rgba(255,255,255,0.025);
    --stats-card-bd: rgba(255,255,255,0.07);
    --stats-text: #f4f4f7;
    --stats-mute: rgba(244,244,247,0.55);
    --stats-green: #4ade80;
    --stats-green-glow: rgba(74,222,128,0.35);
    --stats-cyan: #22d3ee;
    --stats-amber: #fbbf24;
    --stats-pink: #f472b6;
    --stats-purple: #a78bfa;
    --stats-red: #f87171;
    max-width: 1320px;
    margin: 0 auto;
    padding: 32px 24px 80px;
    color: var(--stats-text);
    font-family: 'Plus Jakarta Sans', sans-serif;
    background:
        radial-gradient(1100px 480px at 18% 6%, rgba(74,222,128,0.06), transparent 70%),
        radial-gradient(900px 380px at 90% 0%, rgba(34,211,238,0.05), transparent 70%),
        radial-gradient(800px 480px at 50% 102%, rgba(244,114,182,0.04), transparent 70%);
}

/* Hero ----------------------------------------------------------------- */
.poly-stats-hero {
    text-align: center;
    padding: 28px 14px 38px;
    position: relative;
    isolation: isolate;
}
.poly-stats-hero::before {
    content: "";
    position: absolute;
    inset: -10% -10% auto -10%;
    height: 280px;
    background: radial-gradient(circle at 50% 30%, rgba(74,222,128,0.08), transparent 65%);
    z-index: -1;
}
.poly-stats-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.18em;
    color: var(--stats-green);
    padding: 5px 12px;
    border: 1px solid rgba(74,222,128,0.32);
    border-radius: 999px;
    background: rgba(74,222,128,0.06);
    text-transform: uppercase;
    margin-bottom: 18px;
}
.poly-stats-hero-pulse {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--stats-green);
    box-shadow: 0 0 0 0 rgba(74,222,128,0.9);
    animation: polyStatsPulse 2s ease-out infinite;
}
.poly-stats-hero-title {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 900;
    font-size: clamp(40px, 7vw, 88px);
    line-height: 0.95;
    letter-spacing: -0.02em;
    margin: 0 0 18px;
    background: linear-gradient(120deg, #ffffff 5%, #4ade80 30%, #22d3ee 60%, #ffffff 95%);
    background-size: 220% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    animation: polyStatsTitleSweep 14s ease-in-out infinite;
    text-transform: uppercase;
}
.poly-stats-hero-amp {
    color: rgba(255,255,255,0.32);
    font-weight: 700;
    margin: 0 0.18em;
    -webkit-text-fill-color: rgba(255,255,255,0.32);
}
@keyframes polyStatsTitleSweep {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}
.poly-stats-hero-lede {
    max-width: 640px;
    margin: 0 auto 22px;
    color: rgba(244,244,247,0.72);
    font-size: 16px;
    line-height: 1.55;
}
.poly-stats-hero-cta-row {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: 18px;
}
.poly-stats-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    border: 1px solid rgba(255,255,255,0.16);
    border-radius: 999px;
    color: var(--stats-text);
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: rgba(255,255,255,0.025);
    transition: all .2s ease;
}
.poly-stats-hero-cta:hover {
    border-color: rgba(255,255,255,0.35);
    background: rgba(255,255,255,0.06);
    transform: translateY(-1px);
}
.poly-stats-hero-cta.is-primary {
    background: linear-gradient(135deg, #22d67d, #4ade80);
    color: #04060c;
    border-color: transparent;
    box-shadow: 0 12px 30px -14px rgba(74,222,128,0.7), inset 0 1px 0 rgba(255,255,255,0.4);
}
.poly-stats-hero-cta.is-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 40px -14px rgba(74,222,128,0.85), inset 0 1px 0 rgba(255,255,255,0.5);
}
.poly-stats-hero-cta-arrow {
    display: inline-block;
    transition: transform .2s ease;
}
.poly-stats-hero-cta:hover .poly-stats-hero-cta-arrow {
    transform: translateX(3px);
}
.poly-stats-hero-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.35);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-top: 4px;
}

/* KPI strip ------------------------------------------------------------ */
.poly-stats-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin: 22px 0 50px;
}
.poly-stats-kpi {
    position: relative;
    padding: 22px 22px 18px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.005));
    border: 1px solid var(--stats-card-bd);
    border-radius: 16px;
    overflow: hidden;
    transition: transform .2s ease, border-color .2s ease;
    isolation: isolate;
}
.poly-stats-kpi::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--kpi-tone, rgba(74,222,128,0.06));
    opacity: 0.6;
    z-index: -1;
    transition: opacity .25s ease;
}
.poly-stats-kpi[data-tone="green"] { --kpi-tone: radial-gradient(120% 80% at 0% 0%, rgba(74,222,128,0.10), transparent 70%); }
.poly-stats-kpi[data-tone="cyan"]  { --kpi-tone: radial-gradient(120% 80% at 0% 0%, rgba(34,211,238,0.10), transparent 70%); }
.poly-stats-kpi[data-tone="amber"] { --kpi-tone: radial-gradient(120% 80% at 0% 0%, rgba(251,191,36,0.10), transparent 70%); }
.poly-stats-kpi[data-tone="pink"]  { --kpi-tone: radial-gradient(120% 80% at 0% 0%, rgba(244,114,182,0.10), transparent 70%); }
.poly-stats-kpi:hover {
    transform: translateY(-3px);
    border-color: rgba(255,255,255,0.18);
}
.poly-stats-kpi:hover::before { opacity: 1; }
.poly-stats-kpi-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.16em;
    color: rgba(255,255,255,0.5);
    text-transform: uppercase;
    margin-bottom: 8px;
}
.poly-stats-kpi-value {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 900;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1;
    letter-spacing: -0.02em;
    margin-bottom: 6px;
    color: #ffffff;
}
.poly-stats-kpi[data-tone="green"] .poly-stats-kpi-value { color: var(--stats-green); text-shadow: 0 0 30px rgba(74,222,128,0.25); }
.poly-stats-kpi[data-tone="cyan"]  .poly-stats-kpi-value { color: var(--stats-cyan);  text-shadow: 0 0 30px rgba(34,211,238,0.25); }
.poly-stats-kpi[data-tone="amber"] .poly-stats-kpi-value { color: var(--stats-amber); text-shadow: 0 0 30px rgba(251,191,36,0.25); }
.poly-stats-kpi[data-tone="pink"]  .poly-stats-kpi-value { color: var(--stats-pink);  text-shadow: 0 0 30px rgba(244,114,182,0.25); }
.poly-stats-kpi-sub {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.48);
    letter-spacing: 0.04em;
}
.poly-stats-kpi-delta {
    color: var(--stats-green);
    font-weight: 700;
    margin-right: 4px;
}

/* Section heads & sub --------------------------------------------------- */
.poly-stats-section { margin: 0 0 48px; }
.poly-stats-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.poly-stats-section-eyebrow {
    display: inline-block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    color: rgba(255,255,255,0.42);
    text-transform: uppercase;
    margin-bottom: 6px;
}
.poly-stats-section-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: clamp(22px, 3vw, 32px);
    line-height: 1.05;
    letter-spacing: -0.01em;
    margin: 0;
    text-transform: uppercase;
    color: #ffffff;
}
.poly-stats-section-sub {
    margin: 0;
    color: rgba(255,255,255,0.55);
    font-size: 13px;
    max-width: 480px;
}
.poly-stats-empty {
    padding: 28px;
    border: 1px dashed rgba(255,255,255,0.12);
    border-radius: 14px;
    text-align: center;
    color: rgba(255,255,255,0.6);
    font-size: 14px;
}
.poly-stats-empty a {
    color: var(--stats-green);
    text-decoration: none;
    font-weight: 700;
    margin-left: 6px;
}

/* Hot Right Now grid --------------------------------------------------- */
.poly-stats-hotgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
}
.poly-stats-hotcard {
    position: relative;
    padding: 16px 16px 14px;
    background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));
    border: 1px solid var(--stats-card-bd);
    border-radius: 14px;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.poly-stats-hotcard:hover {
    transform: translateY(-3px);
    border-color: rgba(74,222,128,0.32);
    box-shadow: 0 14px 30px -16px rgba(74,222,128,0.45);
}
.poly-stats-hotcard-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
}
.poly-stats-hotcard-sport { font-size: 16px; }
.poly-stats-hotcard-when { color: rgba(255,255,255,0.55); }
.poly-stats-hotcard-volume {
    margin-left: auto;
    color: var(--stats-green);
    font-weight: 700;
    padding: 3px 8px;
    background: rgba(74,222,128,0.10);
    border: 1px solid rgba(74,222,128,0.22);
    border-radius: 999px;
}
.poly-stats-hotcard-fixture {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 14px;
    line-height: 1.25;
}
.poly-stats-hotcard-team { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.poly-stats-hotcard-team.is-away { text-align: right; }
.poly-stats-hotcard-vs {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.4);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    flex-shrink: 0;
}
.poly-stats-hotcard-bar {
    display: flex;
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
    background: rgba(255,255,255,0.05);
    margin-bottom: 10px;
}
.poly-stats-hotcard-bar-seg {
    display: block;
    height: 100%;
    transition: width .5s cubic-bezier(.32,.72,0,1);
}
.poly-stats-hotcard-bar-seg.is-home { background: linear-gradient(90deg, #22d67d, #4ade80); }
.poly-stats-hotcard-bar-seg.is-draw { background: linear-gradient(90deg, #fbbf24, #f59e0b); }
.poly-stats-hotcard-bar-seg.is-away { background: linear-gradient(90deg, #22d3ee, #0ea5e9); }
.poly-stats-hotcard-legend {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
}
.poly-stats-hotcard-leg {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.poly-stats-hotcard-leg em {
    font-style: normal;
    color: rgba(255,255,255,0.45);
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.poly-stats-hotcard-leg strong { font-weight: 800; font-size: 13px; }
.poly-stats-hotcard-leg.is-home strong { color: var(--stats-green); }
.poly-stats-hotcard-leg.is-draw strong { color: var(--stats-amber); }
.poly-stats-hotcard-leg.is-away strong { color: var(--stats-cyan); }

/* Crowd Wisdom band ---------------------------------------------------- */
.poly-stats-wisdom {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.poly-stats-wisdom-bar {
    display: flex;
    height: 56px;
    border-radius: 14px;
    overflow: hidden;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--stats-card-bd);
}
.poly-stats-wisdom-seg {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    letter-spacing: 0.06em;
    color: rgba(0,0,0,0.85);
    text-transform: uppercase;
    font-weight: 700;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    transition: width .6s cubic-bezier(.32,.72,0,1);
}
.poly-stats-wisdom-seg strong {
    font-weight: 900;
    font-size: 16px;
}
.poly-stats-wisdom-seg.is-exact  { background: linear-gradient(135deg, #22d67d, #4ade80); }
.poly-stats-wisdom-seg.is-winner { background: linear-gradient(135deg, #22d3ee, #38bdf8); }
.poly-stats-wisdom-seg.is-miss   { background: linear-gradient(135deg, rgba(248,113,113,0.85), rgba(244,114,182,0.7)); }
.poly-stats-wisdom-tiles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.poly-stats-wisdom-tile {
    padding: 16px;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.005));
    border: 1px solid var(--stats-card-bd);
    border-radius: 14px;
    text-align: center;
}
.poly-stats-wisdom-tile.is-exact  { border-color: rgba(74,222,128,0.28); }
.poly-stats-wisdom-tile.is-winner { border-color: rgba(34,211,238,0.28); }
.poly-stats-wisdom-tile.is-miss   { border-color: rgba(248,113,113,0.22); }
.poly-stats-wisdom-tile-emoji { font-size: 26px; line-height: 1; margin-bottom: 6px; }
.poly-stats-wisdom-tile-pct {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 900;
    font-size: 38px;
    line-height: 1;
    margin-bottom: 4px;
}
.poly-stats-wisdom-tile.is-exact  .poly-stats-wisdom-tile-pct { color: var(--stats-green); }
.poly-stats-wisdom-tile.is-winner .poly-stats-wisdom-tile-pct { color: var(--stats-cyan); }
.poly-stats-wisdom-tile.is-miss   .poly-stats-wisdom-tile-pct { color: var(--stats-red); }
.poly-stats-wisdom-tile-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
    margin-bottom: 4px;
}
.poly-stats-wisdom-tile-note {
    margin: 0;
    font-size: 12px;
    color: rgba(255,255,255,0.5);
}

/* Most Contested grid -------------------------------------------------- */
.poly-stats-contestgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 14px;
}
.poly-stats-contestcard {
    padding: 18px;
    background:
        linear-gradient(135deg, rgba(244,114,182,0.06), rgba(255,255,255,0.005)),
        rgba(255,255,255,0.02);
    border: 1px solid rgba(244,114,182,0.18);
    border-radius: 14px;
    transition: transform .2s ease, border-color .2s ease;
}
.poly-stats-contestcard:hover {
    transform: translateY(-3px);
    border-color: rgba(244,114,182,0.45);
}
.poly-stats-contestcard-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.10em;
}
.poly-stats-contestcard-flame { color: var(--stats-amber); font-size: 14px; }
.poly-stats-contestcard-score {
    color: var(--stats-pink);
    font-weight: 800;
    padding: 3px 8px;
    border: 1px solid rgba(244,114,182,0.32);
    border-radius: 999px;
    background: rgba(244,114,182,0.10);
}
.poly-stats-contestcard-when { margin-left: auto; color: rgba(255,255,255,0.5); }
.poly-stats-contestcard-fixture {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 15px;
    margin-bottom: 14px;
    line-height: 1.3;
}
.poly-stats-contestcard-fixture em {
    font-style: normal;
    margin: 0 8px;
    color: rgba(255,255,255,0.4);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
}
.poly-stats-contestcard-splits {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin-bottom: 10px;
}
.poly-stats-contestcard-split {
    padding: 8px 6px;
    border-radius: 8px;
    text-align: center;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);
}
.poly-stats-contestcard-split strong {
    display: block;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 18px;
    line-height: 1;
    margin-bottom: 3px;
}
.poly-stats-contestcard-split em {
    font-style: normal;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
}
.poly-stats-contestcard-split.is-home strong { color: var(--stats-green); }
.poly-stats-contestcard-split.is-draw strong { color: var(--stats-amber); }
.poly-stats-contestcard-split.is-away strong { color: var(--stats-cyan); }
.poly-stats-contestcard-foot {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.45);
    text-transform: uppercase;
    letter-spacing: 0.10em;
    text-align: center;
}

/* Sport / League Pulse ------------------------------------------------- */
.poly-stats-pulse-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}
.poly-stats-pulse-col {
    background: linear-gradient(180deg, rgba(255,255,255,0.025), transparent);
    border: 1px solid var(--stats-card-bd);
    border-radius: 16px;
    padding: 20px;
}
.poly-stats-pulse-col .poly-stats-section-head { margin-bottom: 14px; padding-bottom: 10px; }
.poly-stats-bars {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.poly-stats-bar-row {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) 2fr auto;
    align-items: center;
    gap: 12px;
}
.poly-stats-bar-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 13px;
    color: rgba(255,255,255,0.85);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-stats-bar-loc {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    color: rgba(255,255,255,0.4);
    letter-spacing: 0.10em;
    text-transform: uppercase;
    margin-left: 6px;
}
.poly-stats-bar-track {
    display: block;
    height: 8px;
    background: rgba(255,255,255,0.05);
    border-radius: 4px;
    overflow: hidden;
}
.poly-stats-bar-fill {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #22d67d, #4ade80);
    border-radius: 4px;
    transition: width .6s cubic-bezier(.32,.72,0,1);
}
.poly-stats-bar-fill.is-cyan {
    background: linear-gradient(90deg, #22d3ee, #38bdf8);
}
.poly-stats-bar-value {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 12px;
    color: rgba(255,255,255,0.7);
    min-width: 48px;
    text-align: right;
    letter-spacing: 0.04em;
}

/* Top Predictors list -------------------------------------------------- */
.poly-stats-toplist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    counter-reset: pos;
}
.poly-stats-toplist-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.04);
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.poly-stats-toplist-row:hover {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.10);
    transform: translateX(2px);
}
.poly-stats-toplist-row.is-gold   { border-color: rgba(251,191,36,0.32); background: linear-gradient(90deg, rgba(251,191,36,0.10), rgba(255,255,255,0.025)); }
.poly-stats-toplist-row.is-silver { border-color: rgba(229,231,235,0.22); background: linear-gradient(90deg, rgba(229,231,235,0.07), rgba(255,255,255,0.02)); }
.poly-stats-toplist-row.is-bronze { border-color: rgba(180,83,9,0.30); background: linear-gradient(90deg, rgba(180,83,9,0.10), rgba(255,255,255,0.02)); }
.poly-stats-toplist-rank {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 13px;
    color: rgba(255,255,255,0.45);
    min-width: 32px;
}
.poly-stats-toplist-row.is-gold   .poly-stats-toplist-rank { color: #fbbf24; }
.poly-stats-toplist-row.is-silver .poly-stats-toplist-rank { color: #e5e7eb; }
.poly-stats-toplist-row.is-bronze .poly-stats-toplist-rank { color: #d97706; }
.poly-stats-toplist-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-stats-toplist-pts {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 13px;
    color: var(--stats-green);
    letter-spacing: 0.04em;
}

/* Big Calls list ------------------------------------------------------- */
.poly-stats-bigcalls {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.poly-stats-bigcall {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.05);
    transition: background .2s ease, transform .2s ease;
}
.poly-stats-bigcall:hover {
    background: rgba(74,222,128,0.06);
    transform: translateX(2px);
}
.poly-stats-bigcall-gem {
    font-size: 18px;
    flex-shrink: 0;
    filter: drop-shadow(0 0 6px rgba(74,222,128,0.6));
}
.poly-stats-bigcall-body {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    line-height: 1.35;
    color: rgba(255,255,255,0.85);
}
.poly-stats-bigcall-body strong {
    color: var(--stats-green);
    font-weight: 700;
    margin-right: 4px;
}
.poly-stats-bigcall-fixture {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: rgba(255,255,255,0.65);
}
.poly-stats-bigcall-fixture em {
    font-style: normal;
    color: var(--stats-amber);
    font-weight: 800;
    margin: 0 4px;
}
.poly-stats-bigcall-when {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.35);
    letter-spacing: 0.06em;
    flex-shrink: 0;
}

/* Footer CTA ----------------------------------------------------------- */
.poly-stats-footcta {
    margin-top: 36px;
    padding: 36px 24px;
    text-align: center;
    background:
        radial-gradient(60% 100% at 50% 0%, rgba(74,222,128,0.08), transparent 70%),
        linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.005));
    border: 1px solid var(--stats-card-bd);
    border-radius: 18px;
}
.poly-stats-footcta h3 {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 900;
    font-size: clamp(26px, 4vw, 38px);
    margin: 0 0 8px;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: #ffffff;
}
.poly-stats-footcta p {
    margin: 0 auto 18px;
    color: rgba(255,255,255,0.6);
    max-width: 540px;
    font-size: 14px;
    line-height: 1.55;
}
.poly-stats-footcta-row {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

/* Responsive ----------------------------------------------------------- */
@media (max-width: 980px) {
    .poly-stats-kpis { grid-template-columns: repeat(2, 1fr); }
    .poly-stats-pulse-row { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .poly-stats-shell { padding: 18px 14px 60px; }
    .poly-stats-kpis { gap: 10px; }
    .poly-stats-kpi { padding: 16px 14px 14px; }
    .poly-stats-hotgrid, .poly-stats-contestgrid { grid-template-columns: 1fr; }
    .poly-stats-wisdom-tiles { grid-template-columns: 1fr; }
    .poly-stats-wisdom-bar { height: 44px; }
    .poly-stats-wisdom-seg { font-size: 10px; }
    .poly-stats-wisdom-seg strong { font-size: 13px; }
    .poly-stats-bar-row { grid-template-columns: 1fr auto; gap: 6px; }
    .poly-stats-bar-row .poly-stats-bar-track { grid-column: 1 / -1; }
}

/* =========================================================================
   RANKINGS — total rehaul of the old leaderboard
   F1 grid concept · Stadium-After-Dark
   ========================================================================= */
.poly-rankings {
    --rk-bg: #04060c;
    --rk-card: rgba(255,255,255,0.025);
    --rk-bd: rgba(255,255,255,0.08);
    --rk-text: #f4f4f7;
    --rk-mute: rgba(244,244,247,0.55);
    --rk-green: #4ade80;
    --rk-cyan: #22d3ee;
    --rk-amber: #fbbf24;
    --rk-red: #f87171;
    --rk-gold: #fbbf24;
    --rk-silver: #cbd5e1;
    --rk-bronze: #d97706;
    position: relative;
    max-width: 1400px;
    margin: 0 auto;
    padding: 30px 24px 80px;
    color: var(--rk-text);
    font-family: 'Plus Jakarta Sans', sans-serif;
    isolation: isolate;
    overflow: hidden;
}
.poly-rankings-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    z-index: -2;
    pointer-events: none;
}
.poly-rankings-glow-a {
    width: 720px; height: 720px;
    top: -260px; left: -180px;
    background: radial-gradient(circle, rgba(74,222,128,0.18), transparent 60%);
    animation: rkGlowA 18s ease-in-out infinite alternate;
}
.poly-rankings-glow-b {
    width: 640px; height: 640px;
    top: 260px; right: -180px;
    background: radial-gradient(circle, rgba(34,211,238,0.14), transparent 60%);
    animation: rkGlowB 22s ease-in-out infinite alternate;
}
@keyframes rkGlowA { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(60px,40px) scale(1.08); } }
@keyframes rkGlowB { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(-50px,30px) scale(0.95); } }
.poly-rankings-grid-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
    background-size: 40px 40px;
    -webkit-mask-image: radial-gradient(ellipse 90% 60% at 50% 30%, black 30%, transparent 80%);
            mask-image: radial-gradient(ellipse 90% 60% at 50% 30%, black 30%, transparent 80%);
}
.poly-rankings-scanline {
    position: absolute;
    left: 0; right: 0;
    top: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--rk-green), transparent);
    z-index: -1;
    pointer-events: none;
    animation: rkScan 12s linear infinite;
    opacity: 0.35;
}
@keyframes rkScan { 0% { transform: translateY(0); opacity: .4; } 50% { opacity: .15; } 100% { transform: translateY(100vh); opacity: .4; } }
.poly-rankings-frame { position: relative; z-index: 1; }

/* Hero ----------------------------------------------------------------- */
.poly-rankings-hero { text-align: center; padding: 28px 8px 38px; }
.poly-rankings-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 10.5px;
    letter-spacing: 0.18em;
    color: rgba(74,222,128,0.95);
    padding: 5px 12px;
    border: 1px solid rgba(74,222,128,0.32);
    border-radius: 999px;
    background: rgba(74,222,128,0.07);
    text-transform: uppercase;
    margin-bottom: 22px;
}
.poly-rankings-eyebrow-pulse {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--rk-green);
    animation: rkPulse 2s ease-out infinite;
}
@keyframes rkPulse { 0% { box-shadow: 0 0 0 0 rgba(74,222,128,0.6); } 70% { box-shadow: 0 0 0 8px rgba(74,222,128,0); } 100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); } }
.poly-rankings-title {
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 900;
    font-size: clamp(58px, 9vw, 130px);
    line-height: 0.86;
    letter-spacing: -0.025em;
    margin: 0 0 12px;
    text-transform: uppercase;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.poly-rankings-title-fl {
    background: linear-gradient(120deg, #ffffff 5%, #4ade80 35%, #22d3ee 65%, #ffffff 95%);
    background-size: 220% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    animation: rkTitleSweep 14s ease-in-out infinite;
    position: relative;
}
.poly-rankings-title-fl::after {
    content: "";
    position: absolute;
    left: 6%; right: 6%;
    bottom: -10px;
    height: 4px;
    background: repeating-linear-gradient(90deg, var(--rk-green) 0 14px, transparent 14px 28px);
    border-radius: 2px;
    opacity: 0.7;
}
@keyframes rkTitleSweep { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.poly-rankings-title-tag {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 600;
    font-size: clamp(13px, 1.8vw, 18px);
    letter-spacing: 0.4em;
    color: rgba(255,255,255,0.45);
    text-transform: uppercase;
    margin-top: 18px;
}
.poly-rankings-lede {
    max-width: 600px;
    margin: 0 auto 26px;
    color: rgba(255,255,255,0.62);
    font-size: 15px;
    line-height: 1.55;
}
.poly-rankings-livestats {
    display: inline-flex;
    flex-wrap: wrap;
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 999px;
    padding: 4px;
    background: rgba(255,255,255,0.025);
    -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);
}
.poly-rankings-livestat {
    padding: 8px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    border-right: 1px solid rgba(255,255,255,0.06);
}
.poly-rankings-livestat:last-child { border-right: none; }
.poly-rankings-livestat em {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    color: rgba(255,255,255,0.45);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.poly-rankings-livestat strong {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 18px;
    color: #ffffff;
    line-height: 1;
}
.poly-rankings-livestat.is-pulse strong { color: var(--rk-green); animation: rkLiveBeat 1.4s ease-in-out infinite; }
@keyframes rkLiveBeat { 0%,100% { text-shadow: 0 0 0 transparent; } 50% { text-shadow: 0 0 16px rgba(74,222,128,0.55); } }

/* Period switcher ------------------------------------------------------ */
.poly-rankings-switch {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin: 0 auto 36px;
    padding: 6px;
    border-radius: 999px;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--rk-bd);
    width: -webkit-max-content;
    width: max-content;
    max-width: 100%;
}
.poly-rankings-switch-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    border-radius: 999px;
    color: rgba(255,255,255,0.58);
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: all .18s ease;
    border: 1px solid transparent;
}
.poly-rankings-switch-chip:hover { color: var(--rk-text); background: rgba(255,255,255,0.04); }
.poly-rankings-switch-chip.is-active {
    color: #04060c;
    background: linear-gradient(135deg, var(--rk-green), #22d67d);
    border-color: rgba(74,222,128,0.55);
    box-shadow: 0 6px 18px -8px rgba(74,222,128,0.55);
}
.poly-rankings-switch-glyph { font-size: 11px; opacity: 0.85; }
.poly-rankings-switch-chip.is-active .poly-rankings-switch-glyph { opacity: 1; }

/* Section heads -------------------------------------------------------- */
.poly-rankings-section-head {
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.poly-rankings-section-eyebrow {
    display: block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: rgba(255,255,255,0.45);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.poly-rankings-section-title {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: clamp(22px, 3vw, 30px);
    line-height: 1.05;
    letter-spacing: -0.01em;
    margin: 0;
    text-transform: uppercase;
    color: #ffffff;
}

/* YOUR SLOT ----------------------------------------------------------- */
.poly-rankings-slot {
    margin: 0 0 50px;
    padding: 22px;
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(74,222,128,0.07), rgba(34,211,238,0.05)),
        linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.005));
    border: 1px solid rgba(74,222,128,0.20);
    box-shadow: 0 14px 40px -16px rgba(74,222,128,0.20);
    position: relative;
    overflow: hidden;
}
.poly-rankings-slot::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(80% 100% at 0% 0%, rgba(74,222,128,0.10), transparent 60%);
    pointer-events: none;
}
.poly-rankings-slot-header {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 22px;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px dashed rgba(255,255,255,0.10);
    position: relative;
}
.poly-rankings-slot-eyebrow {
    display: block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.55);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.poly-rankings-slot-rank {
    font-family: 'Big Shoulders Display', sans-serif;
    line-height: 0.9;
    color: var(--rk-green);
    text-shadow: 0 0 30px rgba(74,222,128,0.4);
    display: flex;
    align-items: baseline;
    gap: 4px;
}
.poly-rankings-slot-rank-hash { font-size: 22px; color: rgba(74,222,128,0.6); }
.poly-rankings-slot-rank-num { font-size: clamp(48px, 6vw, 72px); font-weight: 900; }
.poly-rankings-slot-rank-of {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    letter-spacing: 0.10em;
    text-transform: uppercase;
    margin-left: 6px;
}
.poly-rankings-slot-stats { display: flex; flex-wrap: wrap; gap: 18px; }
.poly-rankings-slot-stat { display: flex; flex-direction: column; gap: 2px; }
.poly-rankings-slot-stat em {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
}
.poly-rankings-slot-stat strong {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 22px;
    line-height: 1;
    color: var(--rk-text);
}
.poly-rankings-slot-stat.is-streak strong { color: var(--rk-amber); }
.poly-rankings-slot-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--rk-green), #22d67d);
    color: #04060c;
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 11.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    box-shadow: 0 8px 22px -10px rgba(74,222,128,0.65);
    transition: all .18s ease;
    white-space: nowrap;
}
.poly-rankings-slot-cta:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -10px rgba(74,222,128,0.85); }
.poly-rankings-ladder { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.poly-rankings-ladder-row {
    display: grid;
    grid-template-columns: 60px 1fr auto auto;
    align-items: center;
    gap: 14px;
    padding: 9px 12px;
    border-radius: 8px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.04);
    font-size: 13px;
    transition: background .2s ease;
    position: relative;
}
.poly-rankings-ladder-row::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 22px;
    background: rgba(255,255,255,0.10);
    border-radius: 2px;
}
.poly-rankings-ladder-row:hover { background: rgba(255,255,255,0.04); }
.poly-rankings-ladder-row.is-you {
    background: linear-gradient(90deg, rgba(74,222,128,0.14), rgba(34,211,238,0.06));
    border-color: rgba(74,222,128,0.40);
    transform: scale(1.005);
    box-shadow: 0 6px 18px -10px rgba(74,222,128,0.45);
    z-index: 1;
}
.poly-rankings-ladder-row.is-you::before { background: var(--rk-green); }
.poly-rankings-ladder-rank {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 13px;
    color: rgba(255,255,255,0.55);
    letter-spacing: 0.04em;
}
.poly-rankings-ladder-row.is-you .poly-rankings-ladder-rank { color: var(--rk-green); }
.poly-rankings-ladder-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-rankings-ladder-pts {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    color: rgba(255,255,255,0.7);
    font-size: 12px;
}
.poly-rankings-ladder-pts em { font-style: normal; font-size: 9px; color: rgba(255,255,255,0.4); margin-left: 2px; letter-spacing: 0.08em; text-transform: uppercase; }
.poly-rankings-ladder-delta {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 11.5px;
    padding: 4px 8px;
    border-radius: 999px;
    letter-spacing: 0.04em;
    min-width: 44px;
    text-align: center;
}
.poly-rankings-ladder-delta.is-up   { color: var(--rk-green); background: rgba(74,222,128,0.10); border: 1px solid rgba(74,222,128,0.28); }
.poly-rankings-ladder-delta.is-down { color: var(--rk-red);   background: rgba(248,113,113,0.10); border: 1px solid rgba(248,113,113,0.28); }
.poly-rankings-ladder-tag {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 10px;
    color: #04060c;
    background: var(--rk-green);
    padding: 4px 10px;
    border-radius: 999px;
    letter-spacing: 0.10em;
    box-shadow: 0 4px 12px -4px rgba(74,222,128,0.6);
}

/* TOP 3 LANES --------------------------------------------------------- */
.poly-rankings-lanes { margin: 0 0 50px; }
.poly-rankings-lanes-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    align-items: end;
}
.poly-rankings-lane {
    position: relative;
    padding: 28px 20px 24px;
    text-align: center;
    border-radius: 18px;
    border: 1px solid var(--rk-bd);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.005)),
        rgba(7,9,26,0.7);
    overflow: hidden;
    transition: transform .25s cubic-bezier(.32,1.5,.4,1), border-color .2s ease, box-shadow .2s ease;
    isolation: isolate;
}
.poly-rankings-lane::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(180deg, rgba(255,255,255,0.03) 0 1px, transparent 1px 40px);
    z-index: -1;
    pointer-events: none;
}
.poly-rankings-lane::after {
    content: "";
    position: absolute;
    left: 0; right: 0;
    bottom: 0;
    height: 4px;
    background: var(--lane-tone, rgba(255,255,255,0.20));
    box-shadow: 0 0 18px var(--lane-tone-glow, transparent);
}
.poly-rankings-lane.is-pole {
    --lane-tone: linear-gradient(90deg, #fbbf24, #fde68a, #fbbf24);
    --lane-tone-glow: rgba(251,191,36,0.5);
    border-color: rgba(251,191,36,0.30);
    transform: translateY(-8px);
    box-shadow: 0 24px 60px -20px rgba(251,191,36,0.30);
    background:
        radial-gradient(60% 100% at 50% 0%, rgba(251,191,36,0.10), transparent 70%),
        linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.005));
}
.poly-rankings-lane.is-second {
    --lane-tone: linear-gradient(90deg, #cbd5e1, #f1f5f9, #cbd5e1);
    --lane-tone-glow: rgba(203,213,225,0.40);
    border-color: rgba(203,213,225,0.18);
}
.poly-rankings-lane.is-third {
    --lane-tone: linear-gradient(90deg, #d97706, #fbbf24, #d97706);
    --lane-tone-glow: rgba(217,119,6,0.40);
    border-color: rgba(217,119,6,0.20);
}
.poly-rankings-lane:hover { transform: translateY(-12px); }
.poly-rankings-lane.is-pole:hover { transform: translateY(-14px); }
.poly-rankings-lane.is-you { box-shadow: 0 0 0 2px var(--rk-green), 0 24px 60px -16px rgba(74,222,128,0.45); }
.poly-rankings-lane-position {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 900;
    line-height: 0.85;
    margin-bottom: 14px;
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}
.poly-rankings-lane.is-pole   .poly-rankings-lane-position { color: var(--rk-gold); }
.poly-rankings-lane.is-second .poly-rankings-lane-position { color: var(--rk-silver); }
.poly-rankings-lane.is-third  .poly-rankings-lane-position { color: var(--rk-bronze); }
.poly-rankings-lane-rankhash { font-size: 22px; opacity: 0.6; }
.poly-rankings-lane-ranknum { font-size: clamp(54px, 7vw, 84px); }
.poly-rankings-lane-portrait {
    position: relative;
    width: 96px;
    height: 96px;
    margin: 0 auto 16px;
    border-radius: 50%;
    overflow: visible;
}
.poly-rankings-lane-portrait img,
.poly-rankings-lane-portrait-fallback {
    display: block;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
}
.poly-rankings-lane-portrait-fallback {
    background: linear-gradient(135deg, rgba(74,222,128,0.4), rgba(34,211,238,0.4));
    color: #04060c;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 900;
    font-size: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.04em;
}
.poly-rankings-lane-portrait-ring {
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 2px solid var(--rk-bd);
    pointer-events: none;
}
.poly-rankings-lane.is-pole   .poly-rankings-lane-portrait-ring { border-color: rgba(251,191,36,0.55); box-shadow: 0 0 30px rgba(251,191,36,0.25); }
.poly-rankings-lane.is-second .poly-rankings-lane-portrait-ring { border-color: rgba(203,213,225,0.45); }
.poly-rankings-lane.is-third  .poly-rankings-lane-portrait-ring { border-color: rgba(217,119,6,0.50); }
.poly-rankings-lane-flag {
    position: absolute;
    bottom: -6px;
    right: -6px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #04060c;
    border: 2px solid rgba(255,255,255,0.10);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}
.poly-rankings-lane-you-tag {
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 9px;
    color: #04060c;
    background: var(--rk-green);
    padding: 3px 8px;
    border-radius: 999px;
    letter-spacing: 0.10em;
}
.poly-rankings-lane-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 17px;
    margin: 0 0 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-rankings-lane-points {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    font-family: 'Big Shoulders Display', sans-serif;
    margin-bottom: 8px;
}
.poly-rankings-lane-points strong { font-weight: 900; font-size: 30px; line-height: 1; color: #ffffff; }
.poly-rankings-lane.is-pole .poly-rankings-lane-points strong { color: var(--rk-gold); }
.poly-rankings-lane-points em {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 10px;
    color: rgba(255,255,255,0.5);
    text-transform: uppercase;
    letter-spacing: 0.10em;
}
.poly-rankings-lane-gap {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(255,255,255,0.5);
    letter-spacing: 0.10em;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.poly-rankings-lane-gap.is-leader { color: var(--rk-gold); font-weight: 800; text-shadow: 0 0 10px rgba(251,191,36,0.4); }
.poly-rankings-lane-bar { height: 6px; background: rgba(255,255,255,0.05); border-radius: 3px; overflow: hidden; }
.poly-rankings-lane-bar-fill {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, transparent, currentColor);
    border-radius: 3px;
    transition: width .8s cubic-bezier(.32,.72,0,1);
}
.poly-rankings-lane.is-pole   .poly-rankings-lane-bar-fill { color: var(--rk-gold); }
.poly-rankings-lane.is-second .poly-rankings-lane-bar-fill { color: var(--rk-silver); }
.poly-rankings-lane.is-third  .poly-rankings-lane-bar-fill { color: var(--rk-bronze); }

/* HEAT INDEX ---------------------------------------------------------- */
.poly-rankings-heat { margin: 0 0 50px; }
.poly-rankings-heat-strip {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 14px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}
.poly-rankings-heat-strip::-webkit-scrollbar { height: 6px; }
.poly-rankings-heat-strip::-webkit-scrollbar-track { background: rgba(255,255,255,0.03); border-radius: 3px; }
.poly-rankings-heat-strip::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.10); border-radius: 3px; }
.poly-rankings-heat-card {
    flex: 0 0 240px;
    scroll-snap-align: start;
    display: grid;
    grid-template-columns: auto auto 1fr auto;
    grid-template-rows: auto auto;
    grid-template-areas:
        "rank avatar name name"
        "rank avatar pts  flag";
    gap: 6px 10px;
    padding: 12px 14px;
    background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.005));
    border: 1px solid var(--rk-bd);
    border-radius: 12px;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
    position: relative;
    overflow: hidden;
}
.poly-rankings-heat-card::before {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--rk-amber), transparent);
}
.poly-rankings-heat-card:hover { transform: translateY(-3px); border-color: rgba(251,191,36,0.35); box-shadow: 0 12px 26px -14px rgba(251,191,36,0.45); }
.poly-rankings-heat-card.is-you { border-color: rgba(74,222,128,0.40); box-shadow: 0 8px 22px -12px rgba(74,222,128,0.55); }
.poly-rankings-heat-card.is-you::before { background: linear-gradient(90deg, transparent, var(--rk-green), transparent); }
.poly-rankings-heat-rank {
    grid-area: rank;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 14px;
    color: rgba(255,255,255,0.55);
    align-self: center;
}
.poly-rankings-heat-avatar {
    grid-area: avatar;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    background: rgba(255,255,255,0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.poly-rankings-heat-avatar img { width: 100%; height: 100%; object-fit: cover; }
.poly-rankings-heat-avatar em { font-style: normal; font-family: 'JetBrains Mono', monospace; font-weight: 800; font-size: 14px; color: rgba(255,255,255,0.7); }
.poly-rankings-heat-name {
    grid-area: name;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    align-self: end;
}
.poly-rankings-heat-pts {
    grid-area: pts;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 12px;
    color: var(--rk-amber);
    align-self: start;
}
.poly-rankings-heat-pts em { font-style: normal; font-size: 9px; color: rgba(255,255,255,0.4); margin-left: 4px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; }
.poly-rankings-heat-flag { grid-area: flag; font-size: 14px; align-self: center; }

/* FULL GRID ----------------------------------------------------------- */
.poly-rankings-grid { margin: 0 0 50px; }
.poly-rankings-grid-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
}
.poly-rankings-grid-tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.poly-rankings-search {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--rk-bd);
    transition: border-color .2s ease;
}
.poly-rankings-search:focus-within { border-color: rgba(74,222,128,0.45); box-shadow: 0 0 0 4px rgba(74,222,128,0.10); }
.poly-rankings-search span { color: rgba(255,255,255,0.5); font-size: 14px; }
.poly-rankings-search input {
    background: transparent;
    border: none;
    outline: none;
    color: var(--rk-text);
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    width: 180px;
    letter-spacing: 0.04em;
}
.poly-rankings-search input::placeholder { color: rgba(255,255,255,0.35); }
.poly-rankings-grid-jump {
    appearance: none;
    border: 1px solid var(--rk-bd);
    background: rgba(255,255,255,0.03);
    color: rgba(255,255,255,0.7);
    padding: 8px 14px;
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all .18s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.poly-rankings-grid-jump:hover { border-color: rgba(74,222,128,0.35); color: var(--rk-green); }
.poly-rankings-grid-jump[disabled] { opacity: 0.4; cursor: not-allowed; }
.poly-rankings-grid-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.poly-rankings-grid-row {
    display: grid;
    grid-template-columns: 56px 44px minmax(140px, 1.6fr) minmax(120px, 2fr) auto;
    align-items: center;
    gap: 14px;
    padding: 10px 14px;
    border-radius: 10px;
    background: rgba(255,255,255,0.018);
    border: 1px solid rgba(255,255,255,0.04);
    transition: background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
    position: relative;
}
.poly-rankings-grid-row::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px; bottom: 8px;
    width: 3px;
    background: rgba(255,255,255,0.10);
    border-radius: 2px;
    transition: background .18s ease;
}
.poly-rankings-grid-row:hover { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.10); transform: translateX(2px); }
.poly-rankings-grid-row.is-pole   { background: linear-gradient(90deg, rgba(251,191,36,0.07), transparent 60%); }
.poly-rankings-grid-row.is-pole::before   { background: var(--rk-gold); }
.poly-rankings-grid-row.is-second::before { background: var(--rk-silver); }
.poly-rankings-grid-row.is-third::before  { background: var(--rk-bronze); }
.poly-rankings-grid-row.is-self {
    background: linear-gradient(90deg, rgba(74,222,128,0.10), transparent 70%);
    border-color: rgba(74,222,128,0.30);
}
.poly-rankings-grid-row.is-self::before { background: var(--rk-green); }
.poly-rankings-grid-row.is-flash { animation: rkFlash 1.2s ease-out; }
@keyframes rkFlash { 0% { box-shadow: 0 0 0 0 rgba(74,222,128,0.7); } 50% { box-shadow: 0 0 0 14px rgba(74,222,128,0); } 100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); } }
.poly-rankings-grid-rank {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 800;
    font-size: 22px;
    line-height: 1;
    color: rgba(255,255,255,0.6);
    letter-spacing: 0.02em;
    display: inline-flex;
    align-items: baseline;
}
.poly-rankings-grid-row.is-pole   .poly-rankings-grid-rank { color: var(--rk-gold); }
.poly-rankings-grid-row.is-second .poly-rankings-grid-rank { color: var(--rk-silver); }
.poly-rankings-grid-row.is-third  .poly-rankings-grid-rank { color: var(--rk-bronze); }
.poly-rankings-grid-row.is-self   .poly-rankings-grid-rank { color: var(--rk-green); }
.poly-rankings-grid-rank-hash { font-size: 11px; color: rgba(255,255,255,0.35); margin-right: 2px; font-family: 'JetBrains Mono', monospace; font-weight: 700; }
.poly-rankings-grid-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    background: rgba(255,255,255,0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.poly-rankings-grid-avatar img { width: 100%; height: 100%; object-fit: cover; }
.poly-rankings-grid-avatar em { font-style: normal; font-family: 'JetBrains Mono', monospace; font-weight: 800; font-size: 13px; color: rgba(255,255,255,0.7); }
.poly-rankings-grid-id { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.poly-rankings-grid-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-rankings-grid-you {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 9px;
    color: #04060c;
    background: var(--rk-green);
    padding: 2px 6px;
    border-radius: 999px;
    margin-left: 6px;
    letter-spacing: 0.10em;
    vertical-align: middle;
}
.poly-rankings-grid-flag { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: rgba(255,255,255,0.5); display: inline-flex; align-items: center; gap: 4px; }
.poly-rankings-grid-flag em { font-style: normal; font-size: 9px; color: rgba(255,255,255,0.4); letter-spacing: 0.10em; }
.poly-rankings-grid-bar { height: 6px; background: rgba(255,255,255,0.04); border-radius: 3px; overflow: hidden; }
.poly-rankings-grid-bar-fill {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, rgba(34,211,238,0.4), rgba(74,222,128,0.85));
    border-radius: 3px;
    transition: width .6s cubic-bezier(.32,.72,0,1);
}
.poly-rankings-grid-row.is-pole   .poly-rankings-grid-bar-fill { background: linear-gradient(90deg, rgba(251,191,36,0.35), var(--rk-gold)); }
.poly-rankings-grid-row.is-second .poly-rankings-grid-bar-fill { background: linear-gradient(90deg, rgba(203,213,225,0.30), var(--rk-silver)); }
.poly-rankings-grid-row.is-third  .poly-rankings-grid-bar-fill { background: linear-gradient(90deg, rgba(217,119,6,0.30), var(--rk-bronze)); }
.poly-rankings-grid-pts { display: inline-flex; align-items: baseline; gap: 4px; text-align: right; }
.poly-rankings-grid-pts strong { font-family: 'JetBrains Mono', monospace; font-weight: 800; font-size: 14px; color: #ffffff; }
.poly-rankings-grid-pts em { font-style: normal; font-family: 'JetBrains Mono', monospace; font-size: 9px; color: rgba(255,255,255,0.4); letter-spacing: 0.10em; text-transform: uppercase; }

.poly-rankings-empty {
    padding: 36px 24px;
    text-align: center;
    border: 1px dashed rgba(255,255,255,0.10);
    border-radius: 14px;
    background: rgba(255,255,255,0.02);
}
.poly-rankings-empty-emoji { font-size: 44px; margin-bottom: 10px; }
.poly-rankings-empty p { color: rgba(255,255,255,0.7); margin: 0 0 14px; }
.poly-rankings-empty-cta {
    display: inline-block;
    padding: 10px 18px;
    background: linear-gradient(135deg, var(--rk-green), #22d67d);
    color: #04060c;
    text-decoration: none;
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.poly-rankings-grid-empty-search { text-align: center; color: rgba(255,255,255,0.5); font-size: 13px; margin-top: 16px; }

/* COUNTRIES ----------------------------------------------------------- */
.poly-rankings-countries { margin: 0 0 50px; }
.poly-rankings-countries-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.poly-rankings-country-row {
    display: grid;
    grid-template-columns: 50px 32px auto 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.005));
    border: 1px solid var(--rk-bd);
    transition: transform .18s ease, border-color .18s ease;
}
.poly-rankings-country-row:hover { transform: translateX(2px); border-color: rgba(34,211,238,0.32); }
.poly-rankings-country-rank { font-family: 'Big Shoulders Display', sans-serif; font-weight: 800; font-size: 22px; color: rgba(255,255,255,0.55); }
.poly-rankings-country-flag { font-size: 24px; }
.poly-rankings-country-code { font-family: 'JetBrains Mono', monospace; font-weight: 700; font-size: 12px; color: rgba(255,255,255,0.85); letter-spacing: 0.10em; text-transform: uppercase; }
.poly-rankings-country-bar { height: 8px; background: rgba(255,255,255,0.05); border-radius: 4px; overflow: hidden; }
.poly-rankings-country-bar-fill { display: block; height: 100%; background: linear-gradient(90deg, rgba(34,211,238,0.4), var(--rk-cyan)); border-radius: 4px; }
.poly-rankings-country-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.poly-rankings-country-meta strong { font-family: 'JetBrains Mono', monospace; font-weight: 800; font-size: 13px; color: var(--rk-cyan); }
.poly-rankings-country-meta em { font-style: normal; font-family: 'JetBrains Mono', monospace; font-size: 9px; color: rgba(255,255,255,0.4); letter-spacing: 0.10em; text-transform: uppercase; }

/* FOOTER CTA ---------------------------------------------------------- */
.poly-rankings-footcta {
    margin-top: 30px;
    padding: 36px 28px;
    border-radius: 22px;
    background:
        radial-gradient(60% 100% at 50% 0%, rgba(74,222,128,0.10), transparent 70%),
        linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.005));
    border: 1px solid var(--rk-bd);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.poly-rankings-footcta::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(135deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 12px);
    opacity: 0.4;
    pointer-events: none;
}
.poly-rankings-footcta-eyebrow {
    display: inline-block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: var(--rk-amber);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.poly-rankings-footcta h3 {
    font-family: 'Big Shoulders Display', sans-serif;
    font-weight: 900;
    font-size: clamp(26px, 4vw, 38px);
    margin: 0 0 8px;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: #ffffff;
}
.poly-rankings-footcta p { margin: 0 auto 18px; color: rgba(255,255,255,0.62); max-width: 540px; font-size: 14px; line-height: 1.55; }
.poly-rankings-footcta-row { display: inline-flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.poly-rankings-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    border: 1px solid rgba(255,255,255,0.16);
    border-radius: 999px;
    color: var(--rk-text);
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 12.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: rgba(255,255,255,0.025);
    transition: all .2s ease;
}
.poly-rankings-cta:hover { border-color: rgba(255,255,255,0.35); background: rgba(255,255,255,0.06); transform: translateY(-1px); }
.poly-rankings-cta.is-primary {
    background: linear-gradient(135deg, #22d67d, #4ade80);
    color: #04060c;
    border-color: transparent;
    box-shadow: 0 12px 30px -14px rgba(74,222,128,0.7), inset 0 1px 0 rgba(255,255,255,0.4);
}
.poly-rankings-cta.is-primary:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -14px rgba(74,222,128,0.85), inset 0 1px 0 rgba(255,255,255,0.5); }

/* Responsive --------------------------------------------------------- */
@media (max-width: 980px) {
    .poly-rankings-slot-header { grid-template-columns: 1fr; gap: 14px; }
    .poly-rankings-slot-stats { gap: 12px; }
    .poly-rankings-lanes-grid { grid-template-columns: 1fr; }
    .poly-rankings-lane.is-pole { transform: none; order: -1; }
    .poly-rankings-lane:hover { transform: translateY(-4px); }
    .poly-rankings-grid-head { flex-direction: column; align-items: stretch; }
    .poly-rankings-grid-tools { width: 100%; justify-content: space-between; }
    .poly-rankings-search input { width: 100%; }
}
@media (max-width: 640px) {
    .poly-rankings { padding: 18px 14px 60px; }
    .poly-rankings-livestat { padding: 6px 12px; }
    .poly-rankings-livestat strong { font-size: 14px; }
    .poly-rankings-livestat em { font-size: 8px; }
    .poly-rankings-slot { padding: 16px; }
    .poly-rankings-ladder-row { grid-template-columns: 44px 1fr auto auto; gap: 8px; padding: 8px 10px; font-size: 12px; }
    .poly-rankings-ladder-pts em { display: none; }
    .poly-rankings-grid-row {
        grid-template-columns: 38px 32px 1fr auto;
        grid-template-rows: auto auto;
        grid-template-areas:
            "rank avatar id  pts"
            "rank avatar bar bar";
        row-gap: 8px;
    }
    .poly-rankings-grid-rank { grid-area: rank; font-size: 18px; }
    .poly-rankings-grid-avatar { grid-area: avatar; width: 32px; height: 32px; }
    .poly-rankings-grid-id { grid-area: id; }
    .poly-rankings-grid-bar { grid-area: bar; }
    .poly-rankings-grid-pts { grid-area: pts; }
    .poly-rankings-country-row {
        grid-template-columns: 36px 28px auto 1fr;
        grid-template-rows: auto auto;
        grid-template-areas:
            "rank flag code meta"
            ".    .    bar  bar";
        row-gap: 8px;
    }
    .poly-rankings-country-rank { grid-area: rank; }
    .poly-rankings-country-flag { grid-area: flag; }
    .poly-rankings-country-code { grid-area: code; }
    .poly-rankings-country-bar { grid-area: bar; }
    .poly-rankings-country-meta { grid-area: meta; }
}

/* =========================================================================
   SPORT IMAGERY — atmospheric photography behind hero & CTA blocks
   Uses existing plugin assets so no new uploads are needed.
   Path: /wp-content/plugins/polyleagues/assets/...
   Layered with strong dark gradient overlays for legibility.
   ========================================================================= */

/* RANKINGS hero — night stadium, the title gradient sits on top */
.poly-rankings-hero {
    position: relative;
    isolation: isolate;
}
.poly-rankings-hero::before {
    content: "";
    position: absolute;
    inset: -40px -24px 10px;
    background-image:
        linear-gradient(180deg, rgba(4,6,12,0.55) 0%, rgba(4,6,12,0.85) 55%, rgba(4,6,12,1) 100%),
        url('/wp-content/plugins/polyleagues/assets/football/hero-stadium-night.jpg');
    background-size: cover;
    background-position: center 30%;
    border-radius: 28px;
    z-index: -1;
    pointer-events: none;
    -webkit-mask-image: radial-gradient(ellipse 90% 80% at 50% 35%, black 55%, transparent 95%);
            mask-image: radial-gradient(ellipse 90% 80% at 50% 35%, black 55%, transparent 95%);
    animation: polySportSlowZoom 38s ease-in-out infinite alternate;
}
@keyframes polySportSlowZoom {
    0%   { background-size: cover; background-position: center 30%; }
    100% { background-size: 110% auto; background-position: center 38%; }
}

/* RANKINGS footer CTA — a roar of crowd behind the call-to-action */
.poly-rankings-footcta {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.poly-rankings-footcta::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image:
        linear-gradient(180deg, rgba(4,6,12,0.78) 0%, rgba(4,6,12,0.92) 100%),
        url('/wp-content/plugins/polyleagues/assets/hero-crowd.jpg');
    background-size: cover;
    background-position: center 40%;
    opacity: 0.78;
    animation: polySportPan 42s linear infinite alternate;
}
@keyframes polySportPan {
    0%   { background-position: 0% 40%; }
    100% { background-position: 100% 40%; }
}

/* STATS hero — crowd photo, with the existing green radial glow on top */
.poly-stats-hero { position: relative; isolation: isolate; }
.poly-stats-hero::before {
    content: "";
    position: absolute;
    inset: -10% -10% auto -10%;
    height: 320px;
    z-index: -1;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 50% 30%, rgba(74,222,128,0.10), transparent 65%),
        linear-gradient(180deg, rgba(4,6,12,0.45) 0%, rgba(4,6,12,0.85) 70%, rgba(4,6,12,1) 100%),
        url('/wp-content/plugins/polyleagues/assets/stadium-crowd.jpg');
    background-size: 100% 100%, 100% 100%, cover;
    background-position: 50% 30%, 50% 50%, center 38%;
    background-repeat: no-repeat;
    -webkit-mask-image: radial-gradient(ellipse 90% 75% at 50% 30%, black 55%, transparent 90%);
            mask-image: radial-gradient(ellipse 90% 75% at 50% 30%, black 55%, transparent 90%);
}

/* STATS footer CTA — wide stadium */
.poly-stats-footcta {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.poly-stats-footcta::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image:
        linear-gradient(180deg, rgba(4,6,12,0.80) 0%, rgba(4,6,12,0.94) 100%),
        url('/wp-content/plugins/polyleagues/assets/stadium-wide.jpg');
    background-size: cover;
    background-position: center 50%;
    opacity: 0.78;
    animation: polySportPan 50s linear infinite alternate;
}

/* COMPETITIONS browse hero — stadium wide, atmospheric */
.poly-browse-hero { position: relative; isolation: isolate; }
.poly-browse-hero::before {
    content: "";
    position: absolute;
    inset: -30px -24px 0;
    z-index: -1;
    pointer-events: none;
    background-image:
        linear-gradient(180deg, rgba(4,6,12,0.55) 0%, rgba(4,6,12,0.85) 60%, rgba(4,6,12,1) 100%),
        url('/wp-content/plugins/polyleagues/assets/stadium-wide.jpg');
    background-size: cover;
    background-position: center 42%;
    border-radius: 28px;
    -webkit-mask-image: radial-gradient(ellipse 90% 80% at 50% 30%, black 55%, transparent 95%);
            mask-image: radial-gradient(ellipse 90% 80% at 50% 30%, black 55%, transparent 95%);
    animation: polySportSlowZoom 40s ease-in-out infinite alternate;
}

/* RANKINGS · pole-position lanes — subtle ball-on-grass texture
   so the top three feel grounded on a real pitch (very low opacity). */
.poly-rankings-lane.is-pole::before,
.poly-rankings-lane.is-second::before,
.poly-rankings-lane.is-third::before {
    background-image:
        repeating-linear-gradient(180deg, rgba(255,255,255,0.03) 0 1px, transparent 1px 40px),
        linear-gradient(180deg, rgba(7,9,26,0.85), rgba(7,9,26,0.5)),
        url('/wp-content/plugins/polyleagues/assets/football/grass-texture.jpg');
    background-size: auto, auto, 200% auto;
    background-position: center, center, center bottom;
    background-repeat: repeat, no-repeat, no-repeat;
    opacity: 0.55;
}

/* STATS hot-card hover — show a kiss of stadium emotion on hover only,
   so the section reads cleanly at rest but lights up on engagement. */
.poly-stats-hotcard { position: relative; isolation: isolate; overflow: hidden; }
.poly-stats-hotcard::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image:
        linear-gradient(180deg, rgba(4,6,12,0.96), rgba(4,6,12,0.88)),
        url('/wp-content/plugins/polyleagues/assets/football/crowd-night.jpg');
    background-size: cover;
    background-position: center 50%;
    opacity: 0;
    transition: opacity .35s ease;
}
.poly-stats-hotcard:hover::after { opacity: 0.55; }

/* Reduced-motion: kill the slow zoom/pan animations to be polite. */
@media (prefers-reduced-motion: reduce) {
    .poly-rankings-hero::before,
    .poly-rankings-footcta::after,
    .poly-stats-footcta::after,
    .poly-browse-hero::before { animation: none !important; }
}

/* Mobile tightening — tighter margins so the masked image still hugs nicely */
@media (max-width: 640px) {
    .poly-rankings-hero::before { inset: -20px -10px 8px; border-radius: 18px; }
    .poly-stats-hero::before { height: 240px; }
    .poly-browse-hero::before { inset: -16px -10px 0; border-radius: 18px; }
}

/* =========================================================================
   AAA FULL-BLEED SPORT IMAGERY — V2
   Override the masked-rectangle hero treatment with cinematic full-bleed
   photography that extends to viewport edges. Multi-layer gradient overlays,
   slow Ken Burns animation, accent color glow, fade-into-page edges.
   ========================================================================= */

/* Allow horizontal bleed inside the page wrappers without causing scroll.
   Replaces overflow:hidden with clip-path that extends 100vmax horizontally
   while keeping vertical clipping intact. */
.poly-rankings,
.poly-stats-shell,
.poly-browse {
    overflow: visible !important;
    clip-path: inset(0 -100vmax 0 -100vmax);
    -webkit-clip-path: inset(0 -100vmax 0 -100vmax);
}

/* Common — full-bleed hero base. Used by rankings, stats, competitions. */
.poly-rankings-hero,
.poly-stats-hero,
.poly-browse-hero {
    position: relative;
    isolation: isolate;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: -32px;
    padding: clamp(70px, 9vw, 130px) 24px clamp(56px, 7vw, 100px);
    min-height: clamp(420px, 48vw, 600px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    text-align: center;
}

/* Ensure inner hero content stays readable / centered inside a max-width column */
.poly-rankings-hero > *,
.poly-stats-hero > *,
.poly-browse-hero > * {
    position: relative;
    z-index: 2;
    max-width: 1080px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

/* Photo layer (background-image) — full-bleed cover */
.poly-rankings-hero::before,
.poly-stats-hero::before,
.poly-browse-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-size: cover;
    background-position: center 35%;
    background-repeat: no-repeat;
    transform: scale(1.06);
    transition: transform .8s ease;
    animation: polySportFullZoom 38s ease-in-out infinite alternate;
    -webkit-mask-image: none;
            mask-image: none;
    width: auto;
    height: auto;
    border-radius: 0;
    /* per-page background image set below */
}

/* Overlay layer (gradients + grain) sits between photo and content */
.poly-rankings-hero::after,
.poly-stats-hero::after,
.poly-browse-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        /* top scrim for header legibility */
        linear-gradient(180deg, rgba(4,6,12,0.55) 0%, rgba(4,6,12,0.10) 25%, rgba(4,6,12,0.10) 50%, rgba(4,6,12,0.55) 80%, rgba(4,6,12,0.95) 100%),
        /* side vignette */
        radial-gradient(120% 90% at 50% 50%, transparent 45%, rgba(4,6,12,0.55) 100%);
}

@keyframes polySportFullZoom {
    0%   { transform: scale(1.06) translate3d(0,0,0); }
    100% { transform: scale(1.14) translate3d(-1.5%, -2%, 0); }
}

/* RANKINGS hero — night stadium */
.poly-rankings-hero::before {
    background-image: url('/wp-content/plugins/polyleagues/assets/football/hero-stadium-night.jpg');
}
/* Add a green pole-position glow to the rankings hero overlay */
.poly-rankings-hero::after {
    background:
        linear-gradient(180deg, rgba(4,6,12,0.55) 0%, rgba(4,6,12,0.05) 25%, rgba(4,6,12,0.10) 55%, rgba(4,6,12,0.65) 80%, rgba(4,6,12,0.98) 100%),
        radial-gradient(60% 50% at 18% 80%, rgba(74,222,128,0.20), transparent 60%),
        radial-gradient(60% 50% at 82% 20%, rgba(34,211,238,0.15), transparent 60%),
        radial-gradient(120% 90% at 50% 50%, transparent 40%, rgba(4,6,12,0.55) 100%);
}

/* STATS hero — crowd photography */
.poly-stats-hero::before {
    background-image: url('/wp-content/plugins/polyleagues/assets/stadium-crowd.jpg');
    background-position: center 30%;
}
.poly-stats-hero::after {
    background:
        linear-gradient(180deg, rgba(4,6,12,0.45) 0%, rgba(4,6,12,0.05) 30%, rgba(4,6,12,0.30) 60%, rgba(4,6,12,0.92) 100%),
        radial-gradient(50% 60% at 50% 30%, rgba(74,222,128,0.18), transparent 60%),
        radial-gradient(120% 90% at 50% 50%, transparent 45%, rgba(4,6,12,0.50) 100%);
}

/* COMPETITIONS hero — wide stadium */
.poly-browse-hero::before {
    background-image: url('/wp-content/plugins/polyleagues/assets/stadium-wide.jpg');
    background-position: center 50%;
}
.poly-browse-hero::after {
    background:
        linear-gradient(180deg, rgba(4,6,12,0.50) 0%, rgba(4,6,12,0.10) 30%, rgba(4,6,12,0.25) 55%, rgba(4,6,12,0.92) 100%),
        radial-gradient(60% 50% at 80% 70%, rgba(34,211,238,0.20), transparent 60%),
        radial-gradient(120% 90% at 50% 50%, transparent 40%, rgba(4,6,12,0.55) 100%);
}

/* Fine grain overlay (SVG noise) — applied INSIDE the gradient ::after so it
   sits on top of the photo and is actually visible. */
.poly-rankings-hero::after,
.poly-stats-hero::after,
.poly-browse-hero::after {
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.06 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>"),
        linear-gradient(180deg, rgba(4,6,12,0.55) 0%, rgba(4,6,12,0.05) 25%, rgba(4,6,12,0.10) 50%, rgba(4,6,12,0.55) 80%, rgba(4,6,12,0.95) 100%),
        radial-gradient(120% 90% at 50% 50%, transparent 45%, rgba(4,6,12,0.55) 100%);
    background-size: 220px 220px, 100% 100%, 100% 100%;
    background-repeat: repeat, no-repeat, no-repeat;
}
/* Per-page accent overlays — re-declared here to compose with grain */
.poly-rankings-hero::after {
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.06 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>"),
        linear-gradient(180deg, rgba(4,6,12,0.55) 0%, rgba(4,6,12,0.05) 25%, rgba(4,6,12,0.10) 55%, rgba(4,6,12,0.65) 80%, rgba(4,6,12,0.98) 100%),
        radial-gradient(60% 50% at 18% 80%, rgba(74,222,128,0.20), transparent 60%),
        radial-gradient(60% 50% at 82% 20%, rgba(34,211,238,0.15), transparent 60%),
        radial-gradient(120% 90% at 50% 50%, transparent 40%, rgba(4,6,12,0.55) 100%);
    background-size: 220px 220px, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
    background-repeat: repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}
.poly-stats-hero::after {
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.06 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>"),
        linear-gradient(180deg, rgba(4,6,12,0.45) 0%, rgba(4,6,12,0.05) 30%, rgba(4,6,12,0.30) 60%, rgba(4,6,12,0.92) 100%),
        radial-gradient(50% 60% at 50% 30%, rgba(74,222,128,0.18), transparent 60%),
        radial-gradient(120% 90% at 50% 50%, transparent 45%, rgba(4,6,12,0.50) 100%);
    background-size: 220px 220px, 100% 100%, 100% 100%, 100% 100%;
    background-repeat: repeat, no-repeat, no-repeat, no-repeat;
}
.poly-browse-hero::after {
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.06 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>"),
        linear-gradient(180deg, rgba(4,6,12,0.50) 0%, rgba(4,6,12,0.10) 30%, rgba(4,6,12,0.25) 55%, rgba(4,6,12,0.92) 100%),
        radial-gradient(60% 50% at 80% 70%, rgba(34,211,238,0.20), transparent 60%),
        radial-gradient(120% 90% at 50% 50%, transparent 40%, rgba(4,6,12,0.55) 100%);
    background-size: 220px 220px, 100% 100%, 100% 100%, 100% 100%;
    background-repeat: repeat, no-repeat, no-repeat, no-repeat;
}

/* Footer CTAs — full-bleed sport-emotion treatment */
.poly-rankings-footcta,
.poly-stats-footcta {
    position: relative;
    isolation: isolate;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: clamp(50px, 7vw, 90px) 24px;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    overflow: hidden;
}
.poly-rankings-footcta::before,
.poly-stats-footcta::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background-size: cover;
    background-position: center 45%;
    transform: scale(1.05);
    animation: polySportFullZoom 46s ease-in-out infinite alternate;
}
.poly-rankings-footcta::after,
.poly-stats-footcta::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(4,6,12,0.92) 0%, rgba(4,6,12,0.78) 50%, rgba(4,6,12,0.95) 100%),
        radial-gradient(60% 60% at 50% 50%, rgba(74,222,128,0.18), transparent 60%);
    opacity: 1;
    background-size: cover;
    background-position: center;
    animation: none;
}
.poly-rankings-footcta::before {
    background-image: url('/wp-content/plugins/polyleagues/assets/hero-crowd.jpg');
}
.poly-stats-footcta::before {
    background-image: url('/wp-content/plugins/polyleagues/assets/stadium-wide.jpg');
}
.poly-rankings-footcta > *,
.poly-stats-footcta > * {
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 1;
}

/* Constrain inner sections that follow the full-bleed hero */
.poly-rankings > .poly-rankings-frame > section:not(.poly-rankings-hero):not(.poly-rankings-footcta),
.poly-rankings > .poly-rankings-frame > nav,
.poly-stats-shell > section:not(.poly-stats-hero):not(.poly-stats-footcta),
.poly-stats-shell > footer:not(.poly-stats-footcta),
.poly-browse > *:not(.poly-browse-hero):not(.poly-browse-footcta) {
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .poly-rankings-hero::before,
    .poly-stats-hero::before,
    .poly-browse-hero::before,
    .poly-rankings-footcta::before,
    .poly-stats-footcta::before {
        animation: none !important;
        transform: none !important;
    }
}

/* Mobile — preserve full-bleed but reduce hero height + simplify overlays */
@media (max-width: 900px) {
    .poly-rankings-hero,
    .poly-stats-hero,
    .poly-browse-hero {
        padding: clamp(60px, 14vw, 110px) 18px clamp(40px, 9vw, 80px);
        min-height: clamp(360px, 80vw, 460px);
        margin-top: -22px;
    }
}
@media (max-width: 640px) {
    /* Override the older rules from V1 so they don't conflict */
    .poly-rankings-hero::before,
    .poly-stats-hero::before,
    .poly-browse-hero::before {
        inset: 0;
        border-radius: 0;
        height: auto;
    }
    .poly-rankings-hero,
    .poly-stats-hero,
    .poly-browse-hero {
        min-height: 420px;
    }
    .poly-rankings-footcta,
    .poly-stats-footcta {
        padding: 48px 18px;
    }
}

/* =========================================================================
   MOBILE PREDICTOR — UI/UX FIXES
   1. Hero card: tighter vertical rhythm, prominent CTA, clearer tap targets
   2. Quickfilters: lift z-index, correct sticky offset, avoid cmdbar overlap
   3. Make-your-call CTA: full-width tappable surface, stronger visual hierarchy
   ========================================================================= */

/* The quickfilters row should sit below ANY sticky mobile bar above it.
   On mobile the cmdbar pins at top:0 and is ~52px tall; previously the
   chip row used top:64px which left it floating above content but
   stacked correctly. Bumping z-index ensures taps actually reach it
   even if the matchweek strip or earliest-lock banner overlap. */
@media (max-width: 900px) {
    body .poly-quickfilters {
        position: sticky;
        top: 56px;
        z-index: 60;
        gap: 6px;
        padding: 10px 2px 8px;
        margin: 0 -2px 12px;
        background: linear-gradient(180deg, rgba(7,9,26,0.96) 0%, rgba(7,9,26,0.85) 70%, rgba(7,9,26,0.55) 100%);
        -webkit-backdrop-filter: blur(14px);
                backdrop-filter: blur(14px);
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }
    body .poly-quickfilters::-webkit-scrollbar { display: none; }
    body .poly-quickfilter {
        flex: 0 0 auto;
        min-height: 40px;
        padding: 9px 14px;
        font-size: 11.5px;
        -webkit-tap-highlight-color: rgba(74,222,128,0.20);
    }
    body .poly-quickfilter:active {
        background: rgba(74,222,128,0.20);
        transform: scale(0.97);
    }
}

/* Hero card on mobile — tighter layout, more obvious CTA */
@media (max-width: 600px) {
    .poly-hero-card {
        padding: 16px !important;
        gap: 14px !important;
    }
    .poly-hero-card-fixture {
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;
        gap: 10px !important;
    }
    .poly-hero-card-team {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
        min-width: 0 !important;
    }
    .poly-hero-card-team-name {
        font-size: 13px !important;
        text-align: center !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        line-height: 1.15 !important;
    }
    .poly-hero-card-team-crest { width: 58px !important; height: 58px !important; }
    .poly-hero-card-vs {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 6px !important;
        margin: 0 !important;
        width: auto !important;
        min-width: 64px !important;
    }
    .poly-hero-card-vs-label {
        font-size: 9px !important;
        letter-spacing: 0.18em !important;
        opacity: 0.5;
    }
    .poly-hero-card-foot {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        padding-top: 10px !important;
    }
    .poly-hero-card-meta {
        align-items: flex-start !important;
        gap: 2px !important;
        text-align: left !important;
    }
    .poly-hero-card-meta-time { font-size: 12px !important; font-weight: 700; }
    .poly-hero-card-meta-venue { font-size: 10.5px !important; opacity: 0.65; }

    /* CTA — make it a full-width primary action so tappers don't miss it */
    .poly-hero-card-cta {
        display: flex !important;
        width: 100% !important;
        padding: 14px 18px !important;
        margin-top: 6px !important;
        font-size: 12px !important;
        letter-spacing: 0.18em !important;
        background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%) !important;
        color: #04060c !important;
        border-color: rgba(34,214,125,0.7) !important;
        box-shadow: 0 10px 24px -10px rgba(34,214,125,0.55) !important;
        position: relative;
    }
    .poly-hero-card-cta::after {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: inherit;
        background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.18) 50%, transparent 70%);
        background-size: 250% 100%;
        background-position: 100% 0;
        animation: polyHeroCtaShine 3.4s ease-in-out infinite;
        pointer-events: none;
    }
    @keyframes polyHeroCtaShine {
        0%   { background-position: 100% 0; }
        100% { background-position: -30% 0; }
    }
    .poly-hero-card-cta:active {
        transform: translateY(1px);
        box-shadow: 0 4px 10px -4px rgba(34,214,125,0.55) !important;
    }
}

/* Belt-and-suspenders: ensure interactive bars never receive pointer-events: none.
   Covers the quickfilters AND the mobile cmdbar (LEAGUE / VIEW switchers). */
.poly-quickfilters,
.poly-quickfilter,
.poly-cmdbar,
.poly-cmdbar-mobile,
.poly-cmdbar-mswitch,
.poly-cmdbar-viewmenu,
.poly-cmdbar-viewmenu-item {
    pointer-events: auto !important;
}

/* =========================================================================
   MOBILE STICKY STACK — top-of-page sticky bars properly stacked
   ---------------------------------------------------------------------------
   Theme header is `position: relative` (scrolls away). Sticky bars below it
   need top:0 (or admin-bar offset) so they don't leave a transparent gap
   that shows page content slipping behind them. Stack order:

       [ WP admin bar — fixed top:0 / 46px tall on mobile, 32px desktop ]
       [ Cmdbar — sticky, glass background, solid ]
       [ Quickfilters — sticky directly below cmdbar ]
       [ Matchweek strip / page content ]
   ========================================================================= */
@media (max-width: 900px) {
    /* Cmdbar — stick to viewport top (or under WP admin bar for logged-in admins). */
    body .poly-cmdbar {
        position: sticky !important;
        top: 0 !important;
        z-index: 100 !important;
        margin: 0 -14px 12px !important;
        padding: 0 !important;
        background: rgba(4,6,12,0.96) !important;
        -webkit-backdrop-filter: blur(20px) saturate(1.2) !important;
                backdrop-filter: blur(20px) saturate(1.2) !important;
        border-bottom: 1px solid rgba(255,255,255,0.08) !important;
        box-shadow: 0 8px 24px -16px rgba(0,0,0,0.6) !important;
    }
    body.admin-bar .poly-cmdbar { top: 46px !important; }

    body .poly-cmdbar-mobile {
        position: relative !important;
        z-index: 101 !important;
    }
    body .poly-cmdbar-mswitch {
        position: relative !important;
        z-index: 1;
    }
    body .poly-cmdbar-viewmenu { z-index: 130 !important; }

    /* Quickfilters — sticks directly below the cmdbar. ~52px is the rendered
       cmdbar inner height (44px button + 8px padding). */
    body .poly-quickfilters {
        position: sticky !important;
        top: 52px !important;
        z-index: 90 !important;
        margin: 0 -2px 12px !important;
        padding: 10px 2px 8px !important;
        background: rgba(4,6,12,0.94) !important;
        -webkit-backdrop-filter: blur(18px) !important;
                backdrop-filter: blur(18px) !important;
        border-bottom: 1px solid rgba(255,255,255,0.04);
    }
    body.admin-bar .poly-quickfilters { top: 98px !important; /* 46 admin + 52 cmdbar */ }

    /* Rail-left bottom sheet — above everything else when open */
    body .poly-rail-left { z-index: 140 !important; }

    /* Matchweek strip — needs to stack below quickfilters when sticky.
       Reset any existing sticky-top so it doesn't fight the cmdbar. */
    body .poly-matchweek {
        position: relative !important;
        top: auto !important;
        z-index: 5;
    }

    /* Earliest-lock banner — pure flow, not sticky on mobile */
    body .poly-earliest-lock {
        position: relative !important;
        top: auto !important;
        z-index: 4;
    }
}

/* Desktop admin-bar offset — when admin is logged in. */
@media (min-width: 901px) {
    body.admin-bar .poly-cmdbar { top: 32px !important; }
}

/* Card highlight after "Make your call" jumps to a match.
   Reuses .is-just-saved (already animated elsewhere) but ALSO scoped here
   so the green-ring pulse fires on the hero-to-grid scroll target. */
body .poly-card.is-just-saved {
    animation: polyCardJumpFlash 1.3s ease-out;
}
@keyframes polyCardJumpFlash {
    0%   { box-shadow: 0 0 0 0 rgba(74,222,128,0.0), 0 0 0 0 rgba(74,222,128,0.0); }
    20%  { box-shadow: 0 0 0 4px rgba(74,222,128,0.55), 0 0 30px rgba(74,222,128,0.35); }
    100% { box-shadow: 0 0 0 0 rgba(74,222,128,0.0), 0 0 0 0 rgba(74,222,128,0.0); }
}

/* =========================================================================
   LEAGUE-MODE HERO — focused header when a specific league is active.
   Replaces the generic "Make every match your call" hero with a clean,
   league-branded banner that tells the user "you are in MLS now".
   ========================================================================= */
.poly-league-mode-hero {
    position: relative;
    margin: 0 0 22px;
    padding: 0;
    border-radius: 22px;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(120% 100% at 0% 0%, rgba(74,222,128,0.14), transparent 60%),
        radial-gradient(120% 100% at 100% 100%, rgba(34,211,238,0.10), transparent 60%),
        linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%);
    border: 1px solid rgba(74,222,128,0.22);
    box-shadow: 0 18px 50px -22px rgba(74,222,128,0.30);
}
.poly-league-mode-hero[hidden] { display: none !important; }
.poly-league-mode-inner {
    position: relative;
    padding: 22px 22px 20px;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto auto;
    grid-template-areas:
        "back back"
        "id   id"
        "stats stats";
    gap: 16px 18px;
}

/* Back link — top-right */
.poly-league-mode-back {
    grid-area: back;
    justify-self: start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(244,244,247,0.7);
    text-decoration: none;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    padding: 6px 12px;
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 999px;
    background: rgba(255,255,255,0.025);
    transition: all .18s ease;
}
.poly-league-mode-back:hover {
    color: #4ade80;
    border-color: rgba(74,222,128,0.40);
    background: rgba(74,222,128,0.08);
    transform: translateX(-2px);
}

/* Identity block — crest + name + meta */
.poly-league-mode-id {
    grid-area: id;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 16px;
    min-width: 0;
}
.poly-league-mode-crest {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.10);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
    padding: 6px;
}
.poly-league-mode-crest img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.poly-league-mode-crest.no-img { background: linear-gradient(135deg, rgba(74,222,128,0.35), rgba(34,211,238,0.25)); }
.poly-league-mode-fallback {
    font-size: 30px;
    line-height: 1;
}
.poly-league-mode-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.poly-league-mode-eyebrow {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(74,222,128,0.95);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 700;
}
.poly-league-mode-name {
    margin: 2px 0 0;
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 900;
    font-size: clamp(24px, 4vw, 36px);
    line-height: 1.05;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: #f4f4f7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.poly-league-mode-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: rgba(244,244,247,0.55);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-top: 2px;
}

/* 4-up stats strip */
.poly-league-mode-stats {
    grid-area: stats;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}
.poly-league-mode-stat {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 12px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: flex-start;
    transition: border-color .18s ease, background .18s ease;
}
.poly-league-mode-stat strong {
    font-family: 'JetBrains Mono', monospace;
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
    color: #f4f4f7;
}
.poly-league-mode-stat em {
    font-style: normal;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    color: rgba(244,244,247,0.5);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-top: 1px;
}
.poly-league-mode-stat.is-open    strong { color: #4ade80; }
.poly-league-mode-stat.is-locked  strong { color: #fbbf24; }
.poly-league-mode-stat.is-final   strong { color: #22d3ee; }
.poly-league-mode-stat.is-total   strong { color: rgba(244,244,247,0.85); }
.poly-league-mode-stat.is-open    { border-color: rgba(74,222,128,0.20); }
.poly-league-mode-stat.is-locked  { border-color: rgba(251,191,36,0.20); }
.poly-league-mode-stat.is-final   { border-color: rgba(34,211,238,0.20); }

/* Primary CTA — appears on its own row when present */
.poly-league-mode-cta {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 22px;
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    color: #04060c !important;
    text-decoration: none;
    border-radius: 14px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    border: 1px solid rgba(34,214,125,0.55);
    box-shadow: 0 14px 30px -14px rgba(34,214,125,0.6);
    transition: all .18s ease;
    margin-top: 4px;
}
.poly-league-mode-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 38px -14px rgba(34,214,125,0.78);
}
.poly-league-mode-cta.is-disabled {
    background: rgba(255,255,255,0.04);
    color: rgba(244,244,247,0.55) !important;
    border-color: rgba(255,255,255,0.08);
    box-shadow: none;
    cursor: not-allowed;
}

/* HIDE the generic predictor hero when league-mode is active */
body.poly-league-mode .poly-hero-aaa,
html.poly-league-mode .poly-hero-aaa {
    display: none !important;
}

/* Mobile tightening */
@media (max-width: 700px) {
    .poly-league-mode-hero { margin: 0 0 14px; border-radius: 16px; }
    .poly-league-mode-inner { padding: 16px 16px 14px; gap: 12px 14px; }
    .poly-league-mode-crest { width: 52px; height: 52px; border-radius: 12px; }
    .poly-league-mode-name { font-size: 22px; }
    .poly-league-mode-meta { font-size: 10px; }
    .poly-league-mode-stats { grid-template-columns: repeat(4, 1fr); gap: 6px; }
    .poly-league-mode-stat { padding: 8px 10px; }
    .poly-league-mode-stat strong { font-size: 16px; }
    .poly-league-mode-stat em { font-size: 8px; }
    .poly-league-mode-cta { padding: 12px 18px; font-size: 11px; letter-spacing: 0.12em; }
}
@media (max-width: 380px) {
    .poly-league-mode-stats { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================================
   MOBILE NAV — fix the "white box bug" on the Stats nav link.
   The Stats <a> was picking up a default white background in the mobile
   drawer because it didn't match the flyout-trigger pattern other items use.
   Also align it consistently with surrounding items.
   ========================================================================= */
@media (max-width: 900px) {
    body .poly-stats-navitem {
        list-style: none !important;
        background: transparent !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 4px 0 !important;
    }
    body .poly-stats-navitem .poly-stats-navlink {
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
        color: rgba(244,244,247,0.85) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        width: 100% !important;
        padding: 12px 18px !important;
        border-radius: 12px !important;
        border: 1px solid rgba(255,255,255,0.06) !important;
        text-decoration: none !important;
        font-family: 'JetBrains Mono', monospace !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        letter-spacing: 0.10em !important;
        text-transform: uppercase !important;
        line-height: 1 !important;
        min-height: 44px !important;
        box-shadow: none !important;
        transition: background .18s ease, border-color .18s ease, color .18s ease !important;
    }
    body .poly-stats-navitem .poly-stats-navlink:hover,
    body .poly-stats-navitem.is-active .poly-stats-navlink {
        background: rgba(74,222,128,0.08) !important;
        border-color: rgba(74,222,128,0.32) !important;
        color: #4ade80 !important;
    }
    body .poly-stats-navitem .poly-stats-navlink-pulse {
        margin-left: auto !important;
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: #22d3ee;
        flex-shrink: 0;
    }
    /* Also belt-and-suspenders: prevent any nav-link from defaulting to white */
    body .poly-header-nav li > a,
    body .poly-header-nav li > button {
        background-color: transparent;
    }
}

/* =========================================================================
   APP-STYLE BOTTOM NAVIGATION
   Mobile-only sticky tab bar. Replaces the legacy save-picks submit bar
   and the floating help FAB. AAA touch — frosted backdrop, neon accent
   on active tab, generous tap targets, safe-area-inset aware.
   ========================================================================= */
.poly-appnav {
    display: none;
}

@media (max-width: 900px) {
    /* === Hide the legacy bars on mobile === */
    body .poly-submit-bar { display: none !important; }
    body .poly-howto-fab { display: none !important; }

    /* === The new app nav === */
    .poly-appnav {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 130;
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        align-items: stretch;
        gap: 0;
        padding: 6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
        background:
            linear-gradient(180deg, rgba(7,9,26,0.94) 0%, rgba(4,6,12,0.985) 100%);
        border-top: 1px solid rgba(74,222,128,0.18);
        box-shadow: 0 -16px 36px -18px rgba(0,0,0,0.75);
        /* contain layout for paint perf */
        contain: layout paint;
        will-change: transform;
    }

    .poly-appnav-tab {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        padding: 8px 2px 6px;
        background: transparent;
        border: 0;
        color: rgba(244,244,247,0.55);
        text-decoration: none;
        font-family: 'JetBrains Mono', monospace;
        font-weight: 700;
        font-size: 8.5px;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        line-height: 1;
        cursor: pointer;
        transition: color .15s ease;
        min-height: 56px;
        -webkit-tap-highlight-color: rgba(74,222,128,0.18);
    }
    .poly-appnav-tab::before {
        content: "";
        position: absolute;
        left: 50%;
        top: 2px;
        width: 28px;
        height: 3px;
        border-radius: 999px;
        background: transparent;
        transform: translateX(-50%);
        transition: background .15s ease, width .15s ease;
    }
    .poly-appnav-tab.is-active::before {
        background: linear-gradient(90deg, #22d67d, #4ade80);
        width: 36px;
        box-shadow: 0 0 12px rgba(74,222,128,0.55);
    }
    .poly-appnav-tab.is-active {
        color: #4ade80;
    }
    .poly-appnav-tab:active {
        transform: scale(0.96);
    }
    .poly-appnav-ico {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 26px;
        height: 26px;
        transition: transform .15s ease;
    }
    .poly-appnav-tab.is-active .poly-appnav-ico {
        transform: translateY(-1px);
    }
    .poly-appnav-label {
        font-size: 8.5px;
        letter-spacing: 0.04em;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .poly-appnav-help { color: rgba(34,211,238,0.7); }
    .poly-appnav-help .poly-appnav-ico { color: #22d3ee; }
    .poly-appnav-help:hover,
    .poly-appnav-help:active { color: #22d3ee; }

    /* Push main content up so it isn't covered by the nav (matches the nav's
       typical height ~62px including safe-area). */
    body {
        padding-bottom: calc(70px + env(safe-area-inset-bottom, 0px));
    }

    /* When the league rail bottom-sheet is open, the appnav would sit under
       it visually. Hide while rail is open so the user focuses on selection. */
    html.poly-rail-sheet-open .poly-appnav {
        opacity: 0;
        pointer-events: none;
    }

    /* When the how-it-works panel is open, lower appnav z so it doesn't
       overlap the panel's close button area. */
    html.poly-howto-open .poly-appnav {
        opacity: 0;
        pointer-events: none;
    }
}

/* =========================================================================
   MOBILE PERFORMANCE PASS — kill expensive effects on phones
   Mobile GPUs choke on backdrop-filter, multi-layer box-shadows, and slow
   keyframe animations on many simultaneous elements. Disabling these on
   mobile + on prefers-reduced-motion dramatically improves frame rate.
   ========================================================================= */
@media (max-width: 900px) {
    /* Strip backdrop-filter — it's the #1 mobile-Safari frame-rate killer */
    body .poly-cmdbar,
    body .poly-quickfilters,
    body .poly-rail-left,
    body .poly-appnav,
    body .poly-notif-popover,
    body .poly-header-shell .site-header,
    body .poly-mobile-nav,
    body .poly-mnav {
        -webkit-backdrop-filter: none !important;
                backdrop-filter: none !important;
    }

    /* Drop the slow Ken Burns photo zoom + panning on heroes (causes
       compositing thrash with the gradient overlays). */
    .poly-rankings-hero::before,
    .poly-stats-hero::before,
    .poly-browse-hero::before,
    .poly-rankings-footcta::before,
    .poly-stats-footcta::before {
        animation: none !important;
        transform: none !important;
    }

    /* Trim heavy multi-layer shadows down to a single subtle one */
    body .poly-card {
        box-shadow: 0 4px 14px -8px rgba(0,0,0,0.5) !important;
    }
    body .poly-card:hover {
        box-shadow: 0 8px 22px -10px rgba(0,0,0,0.6) !important;
    }

    /* Simplify the rankings glow blobs — fewer big blurred radials */
    .poly-rankings-glow-a,
    .poly-rankings-glow-b {
        animation: none !important;
        filter: blur(40px) !important;
    }

    /* Tone down infinite title shimmers — visible CPU usage on mobile */
    .poly-rankings-title-fl,
    .poly-stats-hero-title {
        animation-duration: 30s !important;
    }

    /* Disable the running scanline overlay on rankings page on mobile */
    .poly-rankings-scanline { display: none !important; }

    /* will-change hints for elements we KNOW will animate during interaction */
    .poly-rail-left,
    .poly-appnav,
    .poly-cmdbar {
        will-change: transform;
    }
}

/* Lock horizontal page scroll on mobile — full-bleed sections and the
   ticker marquee can cause body.scrollWidth to exceed viewport, which
   manifests as content "slipping left" when the user touch-scrolls or
   when momentum carries the viewport sideways. */
@media (max-width: 900px) {
    html, body {
        overflow-x: hidden !important;
        max-width: 100vw;
    }
}

/* =========================================================================
   MATCHWEEK DATE-STRIP — mobile polish
   Days chips were wrapping their internal text and the active chip was
   getting clipped at the right edge of the viewport. Force single-line
   chips, give the strip generous side-padding so chips never bump the
   edge, compact the "N open" badge, and ensure the active chip sits
   centered when scrolled into view.
   ========================================================================= */
@media (max-width: 900px) {
    body .poly-matchweek-strip {
        gap: 6px !important;
        padding: 8px 16px 12px !important;
        margin-bottom: 12px !important;
        scroll-padding-inline: 16px;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }
    /* Last-chip safety margin — guarantees the active or last chip never
       butts against the viewport edge when scrolled into view. */
    body .poly-matchweek-strip::after {
        content: "";
        flex: 0 0 12px;
    }
    body .poly-matchweek-chip {
        flex: 0 0 auto !important;
        min-height: 38px !important;
        padding: 8px 12px !important;
        gap: 6px !important;
        font-size: 10px !important;
        letter-spacing: 0.08em !important;
        white-space: nowrap !important;
        line-height: 1 !important;
        scroll-snap-align: center;
    }
    body .poly-matchweek-chip > * {
        white-space: nowrap !important;
        line-height: 1 !important;
        flex-shrink: 0;
    }
    body .poly-matchweek-chip-label {
        font-size: 10px;
        letter-spacing: 0.10em;
    }
    body .poly-matchweek-chip-count {
        font-size: 9.5px !important;
        padding: 2px 6px !important;
        line-height: 1 !important;
    }
    /* Hide the "8 open" badge on mobile — it crowds the chip and the
       count already conveys volume. Reserve "X open" for desktop. */
    body .poly-matchweek-chip-open {
        display: none !important;
    }
    /* "All" meta chip — tighten so its label+count fit on one line. */
    body .poly-matchweek-chip.is-meta {
        padding: 8px 12px !important;
    }
}

/* Strong reduced-motion override — kill ALL non-essential animations */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001s !important;
        animation-delay: 0s !important;
        transition-duration: 0.001s !important;
        transition-delay: 0s !important;
    }
    .poly-rankings-glow-a,
    .poly-rankings-glow-b,
    .poly-rankings-scanline { display: none !important; }
}

/* =========================================================================
   AGGRESSIVE MOBILE PERFORMANCE PASS V2
   Live profiling found 848 box-shadows, 28k+ transition rules, 35 infinite
   animations, and 59 filter() effects active simultaneously on mobile.
   This kills the worst offenders. Critical tap-feedback transitions are
   preserved by explicit whitelist below.
   ========================================================================= */
@media (max-width: 900px) {
    /* --- 1. Backdrop-filter — absolute disable, mobile GPU killer ----- */
    *,
    *::before,
    *::after {
        -webkit-backdrop-filter: none !important;
                backdrop-filter: none !important;
    }

    /* --- 2. Drop the always-on filter()s (drop-shadow, blur on imgs) -- */
    body img,
    body .poly-card img,
    body .poly-ticker-team-crest,
    body .poly-hero-card-team-crest img,
    body .poly-rail-league-crest img,
    body .poly-rail-sport-icon,
    body .poly-stats-bigcall-gem,
    body .poly-league-mode-crest img,
    body .poly-rankings-lane-portrait img,
    body .poly-stats-kpi-value,
    body .poly-rankings-livestat.is-pulse strong,
    body .poly-rankings-slot-rank,
    body .poly-rankings-lane.is-pole .poly-rankings-lane-portrait-ring {
        filter: none !important;
        -webkit-filter: none !important;
    }

    /* --- 3. Pause all infinite animations EXCEPT critical live signals.
            Aggressive kill list — every decorative pulse, marquee, sweep,
            shimmer, glow, and scanline. The ajax-spinner stays as it
            indicates real loading state. ------------------------------- */
    .poly-ticker-track,
    .poly-rankings-title-fl,
    .poly-rankings-glow-a,
    .poly-rankings-glow-b,
    .poly-rankings-scanline,
    .poly-stats-hero-title,
    .poly-rankings-eyebrow-pulse,
    .poly-stats-hero-pulse,
    .poly-rankings-livestat.is-pulse strong,
    .poly-mega-pulse,
    .poly-mnav-board-pulse,
    .poly-ticker-pulse,
    .poly-header-status-dot,
    .poly-stats-navlink-pulse,
    .poly-notif-popover-pulse,
    .mfc-live-pulse,
    .poly-howto-fab-pulse,
    .poly-howto-head-pulse,
    .poly-card-strip-pill.is-live .poly-card-strip-pill-dot,
    .poly-hero-card-cta::after,
    .poly-rail-league-dot,
    .poly-hero-aaa-pulse,
    .poly-hero-card-glow,
    .poly-hero-aaa-bg,
    .poly-rankings-eyebrow-pulse,
    .poly-stats-eyebrow-pulse,
    .poly-mega-period-chip.is-active,
    .poly-quickfilter.is-active,
    .poly-rankings-switch-chip.is-active,
    .poly-card-consensus-slot.is-saving,
    .poly-card-strip-pill.is-final,
    .poly-card.is-just-saved,
    .poly-rankings-grid-row.is-flash,
    [class*="-pulse"],
    [class*="-shimmer"],
    [class*="-sweep"],
    [class*="-ring"],
    [class*="-glow"] {
        animation: none !important;
    }
    /* Hide the static decorative blobs/scanline entirely on mobile so they
       aren't even composited */
    .poly-rankings-glow-a,
    .poly-rankings-glow-b,
    .poly-rankings-scanline,
    .poly-bg-glow {
        display: none !important;
    }

    /* --- 4. Trim heavy multi-layer box-shadows -------------------------- */
    body .poly-card,
    body .poly-hero-card,
    body .poly-stats-kpi,
    body .poly-stats-hotcard,
    body .poly-stats-contestcard,
    body .poly-rankings-lane,
    body .poly-rankings-heat-card,
    body .poly-rankings-grid-row,
    body .poly-league-mode-hero,
    body .poly-howto-step,
    body .poly-howto-panel {
        box-shadow: 0 2px 8px -4px rgba(0,0,0,0.45) !important;
    }
    body .poly-card:hover,
    body .poly-hero-card:hover,
    body .poly-stats-kpi:hover,
    body .poly-stats-hotcard:hover,
    body .poly-rankings-lane:hover,
    body .poly-rankings-heat-card:hover,
    body .poly-rankings-grid-row:hover {
        box-shadow: 0 4px 12px -6px rgba(0,0,0,0.55) !important;
    }

    /* --- 5. Touch devices have no hover — disable hover effects so the
            sticky-hover state on iOS doesn't paint expensive shadows --- */
    @media (hover: none) {
        body .poly-card:hover,
        body .poly-hero-card:hover,
        body .poly-rankings-lane:hover,
        body .poly-rankings-grid-row:hover,
        body .poly-stats-kpi:hover,
        body .poly-stats-hotcard:hover,
        body .poly-stats-contestcard:hover,
        body .poly-rankings-heat-card:hover,
        body .poly-cmdbar-mswitch:hover,
        body .poly-pick:hover {
            transform: none !important;
            box-shadow: 0 2px 8px -4px rgba(0,0,0,0.45) !important;
            border-color: inherit !important;
            background: inherit !important;
        }
        /* Cancel hover-pulse animations entirely */
        body *:hover { animation-play-state: paused !important; }
    }

    /* --- 6. Make all transitions cheap — use only transform+opacity
            and short durations. Long transitions on color/background
            cause layout/paint thrash. ---------------------------------- */
    body .poly-card,
    body .poly-pick,
    body .poly-rail-league,
    body .poly-rail-sport,
    body .poly-matchweek-chip,
    body .poly-appnav-tab,
    body .poly-cmdbar-mswitch {
        transition: transform .12s ease, opacity .12s ease, background-color .12s ease !important;
    }

    /* --- 7. Long lists — opt-in content-visibility for offscreen rows -- */
    body .poly-rankings-grid-list .poly-rankings-grid-row,
    body .poly-league-section .poly-card,
    body .poly-stats-bigcalls .poly-stats-bigcall,
    body .poly-rail-leagues .poly-rail-league {
        content-visibility: auto;
        contain-intrinsic-size: auto 80px;
    }

    /* --- 8. Make the ticker pause when offscreen (page is scrolled
            below it). The marquee continues animating offscreen on
            mobile, costing GPU cycles for nothing. -------------------- */
    body .poly-ticker { content-visibility: auto; contain-intrinsic-size: auto 56px; }

    /* --- 9. Prevent overzealous repaints on scrollable strips -------- */
    body .poly-matchweek-strip,
    body .poly-rankings-heat-strip,
    body .poly-stats-hotgrid {
        contain: layout style paint;
    }

    /* --- 10. Promote actively-animated UI to its own compositor layer
             so transform animations don't trigger paint of siblings. -- */
    body .poly-rail-left,
    body .poly-appnav,
    body .poly-cmdbar,
    body .poly-howto-panel {
        will-change: transform;
        transform: translateZ(0);
    }
}

/* =========================================================================
   DESKTOP LAYOUT — FULL-WIDTH BREATHING ROOM
   AAA spacious 3-pane shell. Wider rails, generous main padding, larger
   gaps between sections, and a cap that lets the layout use ultra-wide
   monitors instead of clamping to ~1500px in the centre.
   ========================================================================= */
@media (min-width: 1101px) {
    /* 1. Expand the shell — let it use the screen */
    body .poly-game-aaa {
        padding: 0;
    }
    body .poly-game-shell {
        max-width: none !important;          /* was 1920px — now full-bleed */
        grid-template-columns: minmax(300px, 320px) minmax(0, 1fr) minmax(320px, 360px) !important;
        gap: 24px !important;
        padding: 0 32px !important;
        align-items: start !important;
    }

    /* 2. Left rail — wider, more padding, calmer typography */
    body .poly-rail-left {
        padding: 26px 22px 36px !important;
        border-right: 1px solid rgba(255,255,255,0.05) !important;
        background: linear-gradient(180deg, rgba(7,9,26,0.50) 0%, rgba(4,6,12,0.30) 100%) !important;
        border-radius: 18px;
        margin-top: 20px;
    }
    body .poly-rail-section { margin-bottom: 28px; }
    body .poly-rail-section-title {
        font-size: 10px;
        letter-spacing: 0.22em;
        margin-bottom: 12px;
    }
    body .poly-rail-league {
        padding: 12px 14px !important;
        gap: 12px;
        border-radius: 12px;
    }
    body .poly-rail-league-name {
        font-size: 13.5px;
        line-height: 1.2;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    body .poly-rail-sport {
        padding: 11px 14px !important;
    }

    /* 3. Main column — significantly more breathing room */
    body .poly-game-main {
        padding: 28px 40px 80px !important;
        min-width: 0;
    }

    /* 4. Hero — generous padding, calmer typography that doesn't wrap awkwardly */
    body .poly-hero-aaa {
        padding: 44px 48px !important;
        margin-bottom: 32px !important;
        border-radius: 24px !important;
    }
    body .poly-hero-aaa-grid {
        gap: 40px !important;
    }
    body .poly-hero-aaa-title {
        font-size: clamp(40px, 4.2vw, 64px) !important;
        line-height: 1.02 !important;
        letter-spacing: -0.02em !important;
        margin: 16px 0 18px !important;
    }
    body .poly-hero-aaa-sub {
        font-size: 15px !important;
        line-height: 1.55 !important;
        max-width: 520px;
    }
    body .poly-hero-aaa-actions {
        gap: 18px !important;
        margin-top: 22px !important;
    }
    body .poly-hero-aaa-cta {
        padding: 16px 28px !important;
    }
    body .poly-hero-card {
        padding: 24px !important;
    }
    body .poly-hero-card-fixture {
        gap: 24px !important;
        margin-bottom: 24px !important;
    }
    body .poly-hero-card-team-crest {
        width: 80px;
        height: 80px;
    }

    /* 5. Earliest-lock banner + quickfilters get more space */
    body .poly-earliest-lock {
        padding: 14px 22px !important;
        margin-bottom: 20px !important;
        border-radius: 14px !important;
    }
    body .poly-quickfilters {
        gap: 10px !important;
        padding: 12px 0 18px !important;
        margin-bottom: 24px !important;
        top: 64px;
    }
    body .poly-quickfilter {
        padding: 10px 18px !important;
        min-height: 42px;
    }

    /* 6. League section header + match grid get breathing room */
    body .poly-league-section {
        margin-bottom: 36px;
    }
    body .poly-league-section-header,
    body .mfc-league-panel-header {
        padding: 20px 24px !important;
        margin-bottom: 20px !important;
        border-radius: 16px !important;
    }
    body .poly-match-list,
    body .poly-card-list,
    body .poly-league-section .poly-cards {
        gap: 18px !important;
    }
    body .poly-card {
        padding: 22px !important;
        border-radius: 18px !important;
    }
    body .poly-card-strip {
        padding: 14px 20px !important;
    }
    body .poly-card-body,
    body .poly-card-content {
        padding: 22px 24px !important;
    }
    body .poly-card-fixture {
        gap: 22px;
    }
    body .poly-card-team-crest {
        width: 76px;
        height: 76px;
    }
    body .poly-card-team-name {
        font-size: 15px;
        margin-top: 8px;
    }
    body .poly-card-picks {
        gap: 10px !important;
        margin-top: 20px !important;
    }
    body .poly-pick {
        padding: 18px 14px !important;
        min-height: 64px !important;
        border-radius: 12px !important;
    }
    body .poly-card-marginpills,
    body .poly-card-margin-row {
        gap: 8px !important;
        margin-top: 14px !important;
        padding: 14px !important;
    }
    body .poly-card-marginpill {
        min-height: 44px !important;
        padding: 10px 14px !important;
    }

    /* 7. Matchweek strip more spacious */
    body .poly-matchweek-strip {
        gap: 12px !important;
        padding: 14px 0 20px !important;
        margin-bottom: 22px !important;
    }
    body .poly-matchweek-chip {
        padding: 12px 18px !important;
        min-height: 44px;
        font-size: 12px;
    }

    /* 8. Right rail — wider, more spacious internal sections */
    body .poly-rail-right {
        padding: 26px 22px 60px !important;
        gap: 22px !important;
        background: linear-gradient(180deg, rgba(7,9,26,0.50) 0%, rgba(4,6,12,0.30) 100%);
        border-radius: 18px;
        margin-top: 20px;
        border-left: 1px solid rgba(255,255,255,0.05) !important;
    }
    body .poly-rail-right > * { margin-bottom: 4px; }
    body .poly-rail-feed-card,
    body .poly-rail-card,
    body .poly-rail-section {
        padding: 18px 16px !important;
        border-radius: 14px !important;
    }
    body .poly-rail-card-title,
    body .poly-rail-feed-title {
        font-size: 12px;
        letter-spacing: 0.18em;
        margin-bottom: 10px;
    }

    /* 9. Cmdbar — more spacious horizontally */
    body .poly-cmdbar {
        padding: 0 32px !important;
    }
    body .poly-cmdbar-inner {
        padding: 14px 0 !important;
        gap: 18px !important;
    }
    body .poly-cmdbar-breadcrumb {
        font-size: 13px;
        gap: 8px;
    }
    body .poly-cmdbar-counters {
        gap: 8px !important;
    }
    body .poly-cmdbar-counter {
        padding: 8px 14px !important;
        min-width: 64px;
    }
    body .poly-cmdbar-quickstats {
        gap: 12px !important;
    }
}

/* Ultra-wide (>1700px) — give even more space, no more cramping */
@media (min-width: 1700px) {
    body .poly-game-shell {
        grid-template-columns: minmax(320px, 360px) minmax(0, 1fr) minmax(360px, 400px) !important;
        gap: 32px !important;
        padding: 0 48px !important;
    }
    body .poly-game-main {
        padding: 32px 56px 100px !important;
    }
    body .poly-hero-aaa {
        padding: 56px 64px !important;
    }
    body .poly-rail-left,
    body .poly-rail-right {
        padding: 32px 28px 48px !important;
    }
}

/* 2K+ screens — cap the centre column so match cards don't get absurdly wide */
@media (min-width: 2100px) {
    body .poly-game-shell {
        grid-template-columns: minmax(360px, 400px) minmax(0, 1400px) minmax(380px, 440px) !important;
        justify-content: center;
    }
}

/* Hide the legacy "PICKS READY / Save picks" submit bar on all viewports.
   Picks now save automatically via JS; the bar is redundant. */
body .poly-submit-bar { display: none !important; }
/* Push the body up slightly since the submit bar was reserving ~70px of
   bottom padding on desktop. App-nav handles mobile already. */
@media (min-width: 901px) {
    body { padding-bottom: 0 !important; }
}

/* =========================================================================
   MATCH CARD WIZARD — Sliding step-by-step prediction flow
   Slide 1: Winner (Home / Draw / Away)
   Slide 2: Margin (+1 / +2 / +3 / +4) — skipped on Draw
   Slide 3: Recap (predicted score + outcome + potential points + actions)

   AAA Stadium-After-Dark aesthetic. Spring easing on transitions. Step
   indicator dots at top of stage. Coachmark for first-time users.
   ========================================================================= */
.poly-card-wizard {
    margin-top: 4px;
}

/* Step indicator dots ---------------------------------------------------- */
.poly-card-stepdots {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 16px;
    padding: 4px 2px;
}
.poly-card-stepdot {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 12px 6px 6px;
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
    color: rgba(244,244,247,0.45);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
    user-select: none;
}
.poly-card-stepdot > em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255,255,255,0.06);
    color: rgba(255,255,255,0.6);
    font-style: normal;
    font-size: 11px;
    font-weight: 800;
}
.poly-card-stepdot.is-done {
    color: rgba(74,222,128,0.85);
    border-color: rgba(74,222,128,0.20);
}
.poly-card-stepdot.is-done > em {
    background: rgba(74,222,128,0.20);
    color: #4ade80;
}
.poly-card-stepdot.is-active {
    color: #04060c;
    background: linear-gradient(135deg, #4ade80, #22d67d);
    border-color: rgba(74,222,128,0.7);
    box-shadow: 0 8px 18px -8px rgba(74,222,128,0.55);
}
.poly-card-stepdot.is-active > em {
    background: rgba(4,6,12,0.18);
    color: #04060c;
}
.poly-card-stepdot:hover { color: rgba(244,244,247,0.85); }
.poly-card-stepdot.is-active:hover,
.poly-card-stepdot.is-done:hover { color: inherit; }

/* Stage (slide container) ----------------------------------------------- */
.poly-card-stage {
    position: relative;
    min-height: 140px;
}
/* Hidden slides are taken OUT of flow (position: absolute) so they don't
   add empty space below the active slide. The active slide returns to
   normal flow and defines the stage height. Transform / opacity still
   animate normally. */
.poly-card-slide {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    transform: translateX(28px);
    pointer-events: none;
    visibility: hidden;
    transition:
        opacity .22s cubic-bezier(.32,1.5,.4,1),
        transform .28s cubic-bezier(.32,1.5,.4,1),
        visibility 0s linear .28s;
}
.poly-card[data-step="1"] .poly-card-slide.is-step-1,
.poly-card[data-step="2"] .poly-card-slide.is-step-2,
.poly-card[data-step="3"] .poly-card-slide.is-step-3 {
    position: relative;  /* active slide back in flow — defines stage height */
    opacity: 1;
    transform: none;
    pointer-events: auto;
    visibility: visible;
    transition:
        opacity .22s cubic-bezier(.32,1.5,.4,1) .04s,
        transform .28s cubic-bezier(.32,1.5,.4,1) .04s,
        visibility 0s linear 0s;
}
/* Going backward — animate from the LEFT instead of right */
.poly-card[data-step="1"] .poly-card-slide.is-step-2,
.poly-card[data-step="1"] .poly-card-slide.is-step-3,
.poly-card[data-step="2"] .poly-card-slide.is-step-3 {
    transform: translateX(28px);
}
.poly-card[data-step="2"] .poly-card-slide.is-step-1,
.poly-card[data-step="3"] .poly-card-slide.is-step-1,
.poly-card[data-step="3"] .poly-card-slide.is-step-2 {
    transform: translateX(-28px);
}

/* Slide head (eyebrow + title + help) ----------------------------------- */
.poly-card-slide-head { margin: 0 0 14px; }
.poly-card-slide-eyebrow {
    display: inline-block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(74,222,128,0.92);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 4px;
}
.poly-card-slide-title {
    margin: 0 0 4px;
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 22px;
    line-height: 1.05;
    letter-spacing: -0.01em;
    color: #f4f4f7;
    text-transform: uppercase;
}
.poly-card-slide-help {
    margin: 0;
    font-size: 12.5px;
    color: rgba(244,244,247,0.55);
    line-height: 1.4;
}

/* Slide 2 context strip (the "Your call: Home · Change" mini-bar) ------ */
.poly-card-slide-context {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px 8px 14px;
    margin: 0 0 14px;
    border-radius: 999px;
    background: rgba(74,222,128,0.07);
    border: 1px solid rgba(74,222,128,0.22);
}
.poly-card-slide-context-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    color: rgba(74,222,128,0.85);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
}
.poly-card-slide-context-value {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    color: #f4f4f7;
    font-weight: 700;
}
.poly-card-slide-back {
    appearance: none;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.04);
    color: rgba(244,244,247,0.75);
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    font-weight: 700;
    padding: 6px 10px;
    border-radius: 999px;
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.poly-card-slide-back:hover {
    color: #4ade80;
    border-color: rgba(74,222,128,0.32);
    background: rgba(74,222,128,0.08);
}

/* Slide 3 — Recap card -------------------------------------------------- */
.poly-card-recap {
    position: relative;
    padding: 22px 24px;
    border-radius: 16px;
    background:
        radial-gradient(120% 100% at 0% 0%, rgba(74,222,128,0.08), transparent 65%),
        linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.005));
    border: 1px solid rgba(74,222,128,0.22);
    overflow: hidden;
}
.poly-card-recap::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(135deg, rgba(255,255,255,0.02) 0 1px, transparent 1px 12px);
    pointer-events: none;
    opacity: 0.5;
}
.poly-card-recap-head {
    margin-bottom: 14px;
    position: relative;
}
.poly-card-recap-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #4ade80;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(74,222,128,0.10);
    border: 1px solid rgba(74,222,128,0.30);
    font-weight: 700;
    margin-bottom: 8px;
}
.poly-card-recap-eyebrow.is-locked {
    color: #fbbf24;
    background: rgba(251,191,36,0.10);
    border-color: rgba(251,191,36,0.30);
}
.poly-card-recap-eyebrow.is-final {
    color: #22d3ee;
    background: rgba(34,211,238,0.10);
    border-color: rgba(34,211,238,0.30);
}
.poly-card-recap-title {
    margin: 0;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(244,244,247,0.55);
    font-weight: 700;
}

.poly-card-recap-score {
    display: inline-flex;
    align-items: baseline;
    gap: 16px;
    margin: 6px 0 6px;
    font-family: 'Big Shoulders Display', 'Plus Jakarta Sans', sans-serif;
    font-weight: 900;
    font-size: clamp(48px, 8vw, 72px);
    line-height: 1;
    letter-spacing: -0.02em;
    color: #ffffff;
    position: relative;
}
.poly-card-recap-score > em {
    font-style: normal;
    color: rgba(244,244,247,0.35);
    font-size: 0.55em;
    font-weight: 700;
}
.poly-card-recap-outcome {
    display: inline-block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.20em;
    text-transform: uppercase;
    font-weight: 800;
    margin-bottom: 14px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.10);
    color: rgba(244,244,247,0.85);
    position: relative;
}
.poly-card-recap-outcome.is-home { color: #4ade80; background: rgba(74,222,128,0.10); border-color: rgba(74,222,128,0.30); }
.poly-card-recap-outcome.is-draw { color: #fbbf24; background: rgba(251,191,36,0.10); border-color: rgba(251,191,36,0.30); }
.poly-card-recap-outcome.is-away { color: #22d3ee; background: rgba(34,211,238,0.10); border-color: rgba(34,211,238,0.30); }

.poly-card-recap-pts {
    font-size: 12.5px;
    color: rgba(244,244,247,0.65);
    line-height: 1.4;
    margin-bottom: 10px;
    position: relative;
}
.poly-card-recap-pts strong { color: #4ade80; font-weight: 800; }

.poly-card-recap-countdown {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: rgba(251,191,36,0.85);
    font-weight: 700;
    margin-bottom: 14px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(251,191,36,0.08);
    border: 1px solid rgba(251,191,36,0.22);
    position: relative;
}

.poly-card-recap-earn {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    padding: 8px 14px;
    border-radius: 12px;
    display: inline-block;
    margin-top: 6px;
    position: relative;
}
.poly-card-recap-earn.is-positive {
    background: rgba(74,222,128,0.14);
    color: #4ade80;
    border: 1px solid rgba(74,222,128,0.32);
}
.poly-card-recap-earn.is-zero {
    background: rgba(248,113,113,0.10);
    color: #f87171;
    border: 1px solid rgba(248,113,113,0.28);
}

.poly-card-recap-actions {
    display: flex;
    gap: 8px;
    margin-top: 16px;
    flex-wrap: wrap;
    position: relative;
}
.poly-card-recap-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 10px 16px;
    border-radius: 10px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
}
.poly-card-recap-btn.is-reset {
    background: linear-gradient(180deg, #22d67d 0%, #1cb56b 100%);
    color: #04060c;
    border: 1px solid rgba(34,214,125,0.6);
    box-shadow: 0 10px 20px -10px rgba(34,214,125,0.5);
}
.poly-card-recap-btn.is-reset:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 28px -10px rgba(34,214,125,0.7);
}
.poly-card-recap-btn.is-clear {
    background: rgba(255,255,255,0.04);
    color: rgba(244,244,247,0.7);
    border: 1px solid rgba(255,255,255,0.10);
}
.poly-card-recap-btn.is-clear:hover {
    color: #f87171;
    border-color: rgba(248,113,113,0.32);
    background: rgba(248,113,113,0.06);
}

/* Hide legacy elements that are now inside slides (clear-pick + marginrow
   wrapper) — they get rendered separately by the older PHP path. The new
   wizard owns the picker UX. */
.poly-card-wizard ~ .poly-card-clearpick,
.poly-card-wizard ~ .poly-card-marginrow {
    display: none !important;
}

/* First-time coachmark — gentle attention-grab on the first unanswered card */
.poly-card.is-first-coachmark .poly-card-slide.is-step-1 {
    position: relative;
}
.poly-card.is-first-coachmark .poly-card-slide.is-step-1::after {
    content: "👇 Tap a side to start";
    position: absolute;
    top: -10px;
    right: 0;
    padding: 6px 12px;
    border-radius: 999px;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #1a0a02;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 800;
    box-shadow: 0 10px 22px -8px rgba(251,191,36,0.55);
    pointer-events: none;
    z-index: 2;
}
@media (max-width: 700px) {
    .poly-card.is-first-coachmark .poly-card-slide.is-step-1::after {
        font-size: 9.5px;
        padding: 5px 10px;
        right: 4px;
    }
}

/* Locked / final cards lock the wizard onto the recap slide and dim the
   step dots so it's clear no interaction is possible. */
.poly-card[data-state="locked"] .poly-card-stepdots,
.poly-card[data-state="final"] .poly-card-stepdots {
    display: none;
}
.poly-card[data-locked="1"] .poly-card-stage,
.poly-card[data-state="final"] .poly-card-stage {
    min-height: 0;
}

/* Mobile — tighter spacing */
@media (max-width: 700px) {
    .poly-card-stepdots {
        margin-bottom: 12px;
        gap: 4px;
    }
    .poly-card-stepdot {
        padding: 5px 10px 5px 5px;
        font-size: 9px;
        gap: 6px;
    }
    .poly-card-stepdot > em { width: 20px; height: 20px; font-size: 10px; }
    .poly-card-stepdot span { display: none; }     /* dots-only on small screens */
    .poly-card-stepdot.is-active span { display: inline; }   /* show label on active */
    .poly-card-slide-title { font-size: 18px; }
    .poly-card-recap { padding: 16px 18px; }
    .poly-card-recap-score { font-size: 44px; }
    .poly-card-recap-btn { padding: 9px 13px; font-size: 10.5px; }
}


