* {
    box-sizing: border-box;
}

/* =========================================================
   R11 · SAVED VIEWER, SCORES HUB AND COMPACT LIVE UX
========================================================= */

.viewer-gate{
    min-height:100vh;
    padding:48px 22px 32px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:#111827;
    color:#fff;
}
.viewer-gate-mark{
    width:72px;
    height:72px;
    margin-bottom:22px;
    border-radius:22px;
    display:grid;
    place-items:center;
    background:#ed2554;
    color:#fff;
    font-size:22px;
    font-weight:950;
    letter-spacing:-.04em;
    box-shadow:0 18px 40px rgba(237,37,84,.28);
}
.viewer-gate h1{margin:5px 0 10px;font-size:34px;line-height:1}
.viewer-gate p{max-width:440px;margin:0 0 24px;color:#c7d0dd;font-size:14px;line-height:1.55}
.viewer-gate label{margin-bottom:7px;color:#f3f5f8;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.viewer-gate .dropdown{margin:0 0 12px;border:0;background:#fff;color:#111827}
.viewer-enter-button{margin:0!important;width:100%}
.viewer-gate>small{min-height:22px;padding-top:7px;color:#ffbacb;font-weight:750}
.viewer-public-rules{align-self:center;margin-top:20px;padding:8px 12px;border:0;background:transparent;color:#c7d0dd;text-decoration:underline;cursor:pointer}

.viewer-context{
    margin:10px 16px 0;
    padding:10px 12px;
    border:1px solid #dce3eb;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    background:#fff;
    box-shadow:0 5px 14px rgba(17,24,39,.05);
}
.viewer-context span{display:flex;flex-direction:column;min-width:0}
.viewer-context small{color:#7b8797;font-size:8px;font-weight:900;letter-spacing:.08em}
.viewer-context strong{overflow:hidden;color:#111827;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.viewer-context button{border:0;border-radius:8px;padding:8px 11px;background:#edf1f5;color:#243246;font-size:10px;font-weight:850;cursor:pointer}
.viewer-context.other-profile{border-color:#cbd7e5;background:#f8fafc}
.home-action-tiles.registration-hidden{grid-template-columns:1fr}

.scores-header{margin-bottom:10px}
.scores-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.scores-title-row h2{margin-bottom:3px}
.scores-title-row p{margin:0;color:#69778a;font-size:11px}
.scores-week-state{flex:0 0 auto;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.scores-week-state.live{background:#fff2c7;color:#7c5700}
.scores-week-state.final{background:#dff7e9;color:#11613b}
.scores-week-state.fixture{background:#e9eef6;color:#3d4c61}
.scores-week-state.pending{background:#f2e9ff;color:#644195}
.scores-header>label{display:block;margin:18px 0 6px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.scores-state-copy{margin:9px 1px 0;color:#69778a;font-size:10px;line-height:1.45}

.scores-key-matchups{margin:0 16px 10px;border:1px solid #dce3eb;border-radius:14px;background:#fff;overflow:hidden}
.scores-key-matchups>summary{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.scores-key-matchups>summary::-webkit-details-marker{display:none}
.scores-key-matchups>summary span{display:flex;flex-direction:column}
.scores-key-matchups>summary small{color:#8b6672;font-size:7px;font-weight:900;letter-spacing:.08em}
.scores-key-matchups>summary strong{color:#111827;font-size:13px}
.scores-key-matchups>summary b{color:#5e6b7d;font-size:9px}
.scores-key-matchups>div{padding:0 8px 8px;display:grid;gap:5px}
.scores-key-matchups>div button{width:100%;padding:10px;border:0;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f5f7fa;text-align:left;cursor:pointer}
.scores-key-matchups>div button span{display:flex;align-items:center;gap:5px;min-width:0}
.scores-key-matchups>div button strong{overflow:hidden;color:#182233;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.scores-key-matchups>div button em{color:#9aa5b4;font-size:8px;font-style:normal;font-weight:800}
.scores-key-matchups>div button small{flex:0 0 auto;color:#6d7989;font-size:8px}

.scores-list-wrap{margin:0 16px 24px;border:1px solid #dce3eb;border-radius:15px;background:#fff;overflow:hidden}
.scores-list-heading{padding:9px 12px;display:flex;justify-content:space-between;background:#111827;color:#fff;font-size:8px;font-weight:900;letter-spacing:.07em}
.scores-list{display:grid}
.scores-row{width:100%;padding:10px 11px;border:0;border-bottom:1px solid #edf0f4;display:grid;grid-template-columns:minmax(0,1fr) 105px;align-items:center;gap:9px;background:#fff;text-align:left;cursor:pointer}
.scores-row:last-child{border-bottom:0}
.scores-row:hover,.scores-row:focus-visible{background:#f7f9fb}
.scores-row.viewer-row{box-shadow:inset 4px 0 #ed2554;background:#fff8fa}
.scores-row-main{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:4px;min-width:0}
.scores-person{display:flex;flex-direction:column;min-width:0}
.scores-person strong{overflow:hidden;color:#182233;font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.scores-person small{margin-top:3px;overflow:hidden;color:#8590a0;font-size:7px;font-weight:750;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}
.scores-person-right{text-align:right}
.scores-vs{color:#a3acb8;font-size:7px;font-weight:950;text-align:center}
.scores-row-outcome{display:flex;flex-direction:column;align-items:flex-end;min-width:0;text-align:right}
.scores-row-outcome>strong{color:#243246;font-size:9px;text-transform:uppercase}
.scores-row.w .scores-row-outcome>strong,.scores-row.final .scores-row-outcome>strong{color:#177248}
.scores-row.l .scores-row-outcome>strong{color:#b22143}
.scores-row.live .scores-row-outcome>strong{color:#8c6500}
.scores-row-outcome>small{margin-top:2px;color:#7c8796;font-size:7px;line-height:1.25}
.scores-market-note{margin-top:3px;color:#485972;font-size:7px;font-weight:750}
.score-detail-back-wrap{position:sticky;top:0;z-index:25;padding:10px 16px;background:rgba(245,247,250,.94);backdrop-filter:blur(8px)}
.score-detail-back{margin:0!important}
.score-detail-section{margin-top:0}
.score-detail-section .v25-prediction{margin-top:14px}

.compact-league-header{margin-bottom:10px}
.compact-league-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.compact-league-title h2{margin-bottom:3px}
.compact-league-title p{margin:0;color:#69778a;font-size:10px}
.compact-league-title .v25-league-state{position:static!important;margin:0!important;display:inline-flex!important;align-items:center;gap:6px;flex:0 0 auto}
.compact-league-title .v25-league-state-dot{display:inline-block}
.league-team-filters{margin:10px 0;border:1px solid #dce3eb;border-radius:12px;background:#f8fafc;overflow:hidden}
.league-team-filters>summary{padding:11px 12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}
.league-team-filters>summary::-webkit-details-marker{display:none}
.league-team-filters>summary span{display:flex;flex-direction:column}
.league-team-filters>summary small{color:#7a8798;font-size:7px;font-weight:900;letter-spacing:.08em}
.league-team-filters>summary strong{font-size:11px}
.league-team-filters>summary b{color:#5f6d80;font-size:9px}
.league-team-filters>p{margin:0;padding:0 12px 9px;color:#6f7b8b;font-size:9px;line-height:1.4}
.league-filter-pot{padding:9px 12px;border-top:1px solid #e6ebf1}
.league-filter-pot>span{display:block;margin-bottom:6px;color:#7c8796;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.league-filter-pot>div{display:flex;flex-wrap:wrap;gap:5px}
.league-filter-pot button{padding:6px 8px;border:1px solid #d3dae4;border-radius:999px;background:#fff;color:#26364b;font-size:8px;font-weight:800;cursor:pointer}
.league-filter-pot button.selected{border-color:#ed2554;background:#ed2554;color:#fff}
.league-filter-pot button.impossible{opacity:.28;text-decoration:line-through;cursor:not-allowed}
.league-filter-clear{margin:0 12px 12px;padding:8px 10px;border:0;border-radius:8px;background:#e9edf3;color:#37475d;font-size:9px;font-weight:850;cursor:pointer}
.compact-league-list{margin:0 16px 25px;max-height:570px;border:1px solid #dce3eb;border-radius:14px;background:#fff;overflow-y:auto;scroll-behavior:smooth}
.compact-league-row{width:100%;min-height:62px;padding:8px 10px;border:0;border-bottom:1px solid #edf0f4;display:grid;grid-template-columns:42px minmax(0,1fr) 52px;align-items:center;gap:8px;background:#fff;text-align:left;cursor:pointer}
.compact-league-row:last-child{border-bottom:0}
.compact-league-row.selected-player{box-shadow:inset 4px 0 #ed2554;background:#fff7f9}
.compact-league-position{display:grid;grid-template-columns:24px 16px;align-items:center}
.compact-league-position>strong{color:#162033;font-size:17px;text-align:center}
.compact-league-position>small{display:flex;justify-content:center;transform:scale(.72)}
.compact-league-person{display:flex;flex-direction:column;min-width:0}
.compact-league-person>strong{overflow:hidden;color:#172236;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.compact-league-person>small{margin-top:2px;overflow:hidden;color:#7c8796;font-size:7px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.compact-league-person>em{margin-top:3px;color:#4f5e72;font-size:7px;font-style:normal;font-weight:800}
.compact-league-stats{display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.compact-league-stats>strong{color:#111827;font-size:17px;line-height:1}
.compact-league-stats>small{color:#8b96a5;font-size:6px;font-weight:900}
.compact-league-stats>em{margin-top:3px;color:#4d5c70;font-size:7px;font-style:normal;font-weight:800}

.badge-history{margin-top:11px;border:1px solid #dce3eb;border-radius:12px;background:#f8fafc;overflow:hidden}
.badge-history>summary{padding:11px 12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}
.badge-history>summary::-webkit-details-marker{display:none}
.badge-history>summary span{display:flex;flex-direction:column}
.badge-history>summary small{color:#7b8797;font-size:7px;font-weight:900;letter-spacing:.08em}
.badge-history>summary strong{font-size:11px}
.badge-history>summary b{color:#536177;font-size:8px}
.badge-history-list{padding:0 8px 8px;display:grid;gap:5px}
.badge-history-list article{padding:8px;border-radius:9px;display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:7px;background:#fff}
.badge-history-list article>span{font-size:18px;text-align:center}
.badge-history-list article>div{display:flex;flex-direction:column;min-width:0}
.badge-history-list article strong{font-size:9px}
.badge-history-list article small{margin-top:2px;color:#758194;font-size:7px;line-height:1.3}
.badge-history-list article em{margin-top:3px;color:#47586e;font-size:7px;font-style:normal;font-weight:850}
.badge-history-list article>b{color:#ed2554;font-size:11px;text-align:center}
.badge-history-empty{padding:12px;color:#788598;font-size:9px;text-align:center}

.award-tracker-intro{margin:0 0 10px;color:#6d798a;font-size:10px;line-height:1.45}
.season-award-tracker-list{display:grid;gap:8px}
.season-award-tracker{border:1px solid #dce3eb;border-radius:13px;background:#fff;overflow:hidden}
.season-award-heading{padding:11px 12px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:#f7f9fb}
.season-award-heading>div{display:flex;flex-direction:column}
.season-award-heading strong{color:#172236;font-size:11px}
.season-award-heading small{margin-top:2px;color:#748093;font-size:8px;line-height:1.3}
.season-award-heading>span{border-radius:999px;padding:5px 7px;background:#111827;color:#fff;font-size:8px;font-weight:900}
.season-award-prize{padding:10px 12px;display:flex;flex-direction:column}
.season-award-prize small{color:#8792a1;font-size:7px;font-weight:900;letter-spacing:.07em}
.season-award-prize strong{margin-top:3px;color:#1c2a3e;font-size:11px}
.season-award-prize span{margin-top:2px;color:#6e7b8e;font-size:8px}
.season-award-tracker.won .season-award-prize{background:#effaf4}
.season-award-live{margin:0 10px 9px;padding:9px 10px;border-radius:9px;display:grid;grid-template-columns:minmax(0,1fr) auto;background:#fff7dc}
.season-award-live span{color:#735b0b;font-size:8px;font-weight:850}
.season-award-live strong{color:#5f4800;font-size:15px}
.season-award-live small{grid-column:1/-1;margin-top:4px;color:#7a681f;font-size:7px;line-height:1.35}
.season-award-tracker>details{border-top:1px solid #edf0f4}
.season-award-tracker>details>summary{padding:9px 12px;color:#56657a;font-size:8px;font-weight:850;cursor:pointer;list-style:none}
.season-award-tracker>details>summary::-webkit-details-marker{display:none}
.season-award-tracker>details>div{padding:0 10px 9px;display:grid;gap:4px}
.season-award-tracker>details span{padding:7px 8px;border-radius:7px;display:flex;justify-content:space-between;background:#f6f8fa;font-size:8px}
.season-award-tracker>details small{color:#728096}
.season-award-tracker>details p{margin:0;padding:8px;color:#768397;font-size:8px}

.r11-admin{padding-bottom:32px}
.r11-admin-nav{padding:8px 0;display:flex;align-items:center;justify-content:space-between;gap:8px}
.r11-admin-nav>div{display:flex;gap:5px}
.r11-admin-nav button,.r11-admin-nav label{min-height:34px;padding:8px 9px;border:0;border-radius:8px;background:#e9edf2;color:#25354b;font-size:8px;font-weight:850;cursor:pointer}
.r11-admin-hero{margin-top:8px!important;padding:18px!important}
.r11-admin-hero h1{font-size:24px!important}
.r11-admin-hero p{margin-top:4px!important;font-size:10px!important}
.r11-admin-controls{margin:9px 0;padding:10px;border:1px solid #dce3eb;border-radius:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px;background:#fff}
.r11-admin-controls label{display:flex;flex-direction:column;gap:4px}
.r11-admin-controls label span{font-size:8px;font-weight:900;text-transform:uppercase}
.r11-admin-controls select,.r11-admin-controls button{min-height:38px;border:1px solid #d2dae4;border-radius:8px;padding:7px 9px;background:#f8fafc;color:#26364b;font-size:9px;font-weight:800}
.r11-admin-controls>button:last-child{grid-column:1/-1}
.r11-admin-tabs{position:sticky;top:0;z-index:20;padding:7px 0;background:#f5f7fa}
.r11-admin-tabs button{min-height:38px!important}
.v25-admin-flash.empty{display:none}
.r11-admin-status{gap:6px!important}
.r11-admin-status>div{min-height:62px!important;padding:8px!important}
.r11-admin-bulk{display:grid!important;grid-template-columns:1fr 1fr;gap:6px!important}
.r11-admin-bulk button{min-height:36px!important;padding:7px!important;font-size:8px!important}
.r11-admin-bulk .danger{grid-column:1/-1}
.r11-admin-filter{margin:9px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.r11-admin-filter button{min-height:34px;border:1px solid #d8dfe8;border-radius:8px;background:#fff;color:#526176;font-size:8px;font-weight:850}
.r11-admin-filter button span{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:2px;border-radius:999px;background:#e9edf3}
.r11-admin-filter button.active{border-color:#111827;background:#111827;color:#fff}
.r11-admin-filter button.active span{background:rgba(255,255,255,.18)}
.r11-admin-help,.r11-club-report{margin:9px 0;border:1px solid #dce3eb;border-radius:10px;background:#fff;overflow:hidden}
.r11-admin-help summary,.r11-club-report>summary{padding:10px 11px;color:#35465c;font-size:9px;font-weight:850;cursor:pointer;list-style:none}
.r11-admin-help summary::-webkit-details-marker,.r11-club-report>summary::-webkit-details-marker{display:none}
.r11-admin-help p{margin:0;padding:0 11px 11px;color:#6e7b8d;font-size:8px;line-height:1.45}
.r11-admin-list{gap:8px!important}
.r11-match-editor{padding:11px!important;border-radius:12px!important}
.r11-match-editor>header{display:grid!important;grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr);align-items:center;gap:6px!important;text-align:center}
.r11-admin-team{display:flex;flex-direction:column;min-width:0}
.r11-admin-team small,.r11-odds-header small{color:#8b96a5;font-size:6px;font-weight:900;letter-spacing:.08em}
.r11-admin-team strong,.r11-odds-header strong{overflow:hidden;color:#172236;font-size:10px!important;text-overflow:ellipsis;white-space:nowrap}
.r11-admin-team.home{text-align:left}.r11-admin-team.away{text-align:right}
.r11-admin-score-inputs{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.r11-admin-score-inputs input{width:100%;height:42px;border:1px solid #cbd4df;border-radius:9px;background:#fff;font-size:20px;font-weight:900;text-align:center;appearance:textfield;-moz-appearance:textfield}
.r11-admin-score-inputs input::-webkit-outer-spin-button,.r11-admin-score-inputs input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.r11-match-control-row{margin-top:9px;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.r11-match-control-row label{display:flex;flex-direction:column;gap:4px;color:#6d798a;font-size:7px;font-weight:850;text-transform:uppercase}
.r11-match-control-row select{width:100%;min-height:34px;border:1px solid #d2dae4;border-radius:8px;padding:6px;background:#f7f9fb;color:#27374c;font-size:9px;font-weight:750}
.r11-match-editor>footer{margin-top:9px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px!important}
.r11-match-editor>footer small{color:#8a95a4;font-size:7px}
.r11-match-editor>footer button{min-height:30px!important;padding:6px 8px!important;font-size:8px!important}
.r11-match-editor.final{border-left:4px solid #1d9b64!important}
.r11-match-editor.postponed{border-left:4px solid #8a96a7!important}
.r11-match-editor.moved{box-shadow:inset 0 0 0 2px #d8a528}
.r11-odds-header>span{display:flex;flex-direction:column;min-width:0}.r11-odds-header>span:last-child{text-align:right}
.r11-odds-header>b{color:#9aa4b1;font-size:7px}
.r11-odds-editor .v25-odds-grid{margin-top:9px}
.r11-club-report .v25-club-report{margin:0!important;border:0!important;border-radius:0!important}

/* The team-analysis content scrolls, but its close control remains visible. */
.v25-dialog.analysis>button:first-child{
    position:sticky!important;
    top:0!important;
    z-index:30!important;
    float:right;
    width:34px;
    height:34px;
    margin:-7px -4px 0 8px;
    border-radius:999px!important;
    display:grid;
    place-items:center;
    background:#111827!important;
    color:#fff;
    box-shadow:0 5px 14px rgba(17,24,39,.22);
}

@media (min-width:700px){
    .viewer-gate{padding-left:max(32px,calc((100vw - 520px)/2));padding-right:max(32px,calc((100vw - 520px)/2))}
    .scores-row{grid-template-columns:minmax(0,1fr) 150px;padding:12px 14px}
    .scores-person strong{font-size:12px}.scores-person small{font-size:8px}
    .compact-league-row{grid-template-columns:52px minmax(0,1fr) 66px;min-height:68px;padding:10px 13px}
    .compact-league-person>strong{font-size:13px}.compact-league-person>small,.compact-league-person>em{font-size:8px}
    .r11-admin-controls{grid-template-columns:1.2fr 1fr 1fr}.r11-admin-controls>button:last-child{grid-column:auto}
    .r11-admin-bulk{grid-template-columns:repeat(3,1fr)}.r11-admin-bulk .danger{grid-column:auto}
}

@media (max-width:390px){
    .scores-row{grid-template-columns:minmax(0,1fr) 91px;padding:9px 8px;gap:6px}
    .scores-person strong{font-size:9px}.scores-person small{font-size:6px}
    .scores-row-outcome>strong{font-size:8px}.scores-row-outcome>small,.scores-market-note{font-size:6px}
    .r11-admin-nav{align-items:flex-start}.r11-admin-nav>div{display:grid;grid-template-columns:1fr 1fr}.r11-admin-nav>div button:last-child{grid-column:1/-1}
    .r11-match-editor>footer{grid-template-columns:1fr auto}.r11-match-editor>footer small{display:none}
}

/* =========================================================
   V25 LIVE DASHBOARD PROTOTYPE
========================================================= */
.v25-admin-entry button,.v25-admin-hero,.v25-toolbar,.v25-match-editor,.v25-prediction,.v25-profile-tools,.v25-reveal-summary{box-sizing:border-box}
.v25-admin-entry button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:20px;border:0;border-radius:18px;background:#101d36;color:#fff;text-align:left;cursor:pointer;box-shadow:0 12px 28px rgba(16,29,54,.18)}
.v25-admin-entry span{display:grid;gap:3px}.v25-admin-entry small,.v25-admin-entry em{font-size:11px;opacity:.72;font-style:normal}.v25-admin-entry strong{font-size:22px}
.v25-admin{max-width:1040px;margin:auto;padding:18px 18px 110px}.v25-admin-hero{margin:18px 0;padding:24px;border-radius:22px;background:linear-gradient(135deg,#142441,#214873);color:#fff;display:flex;justify-content:space-between;gap:20px;align-items:center}.v25-admin-hero h1{margin:5px 0}.v25-admin-hero p{margin:0;opacity:.75}.v25-admin-hero button,.v25-bulk button,.v25-match-editor button,.v25-toolbar button{border:1px solid #d9e1eb;background:#fff;border-radius:10px;padding:10px 13px;font-weight:700;cursor:pointer}.v25-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;background:#fff;border:1px solid #e0e5ec;border-radius:16px;position:sticky;top:8px;z-index:3;box-shadow:0 8px 20px rgba(30,45,65,.08)}.v25-toolbar label{font-size:12px;font-weight:800}.v25-toolbar select{margin-left:8px;padding:8px}.v25-toolbar .active,.v25-primary{background:#ed2554!important;border-color:#ed2554!important;color:#fff!important}.v25-bulk{display:flex;gap:8px;margin:16px 0}.v25-admin-list{display:grid;gap:12px}.v25-match-editor{background:#fff;border:1px solid #e0e5ec;border-radius:16px;padding:16px}.v25-match-editor header{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0f4;padding-bottom:11px}.v25-match-editor header span{font-size:11px;font-weight:800;color:#718096}.v25-match-editor header strong{text-align:right}.v25-match-editor header b{color:#ed2554;margin:0 5px}.v25-score-row{display:flex;align-items:end;gap:10px;padding:14px 0;flex-wrap:wrap}.v25-score-row input{width:54px;font-size:22px;text-align:center}.v25-score-row input,.v25-score-row select,.v25-odds-grid input{padding:10px;border:1px solid #cbd5e0;border-radius:9px;background:#fff}.v25-score-row label{display:grid;gap:4px;font-size:10px;font-weight:800}.v25-match-editor footer{display:flex;justify-content:flex-end;gap:8px}.v25-odds-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:14px}.v25-odds-grid label{display:grid;grid-template-columns:1fr auto;gap:5px;font-size:10px;font-weight:800}.v25-odds-grid input{grid-column:1/3;min-width:0}.v25-odds-grid span{color:#ed2554}.v25-overround{font-size:11px;color:#718096}
.v25-prediction{margin:16px 0 0;padding:14px;border:1px solid #dce4ef;border-radius:15px;background:linear-gradient(180deg,#f8fbff,#fff)}.v25-prediction.unavailable{display:grid;gap:3px;text-align:center;color:#718096}.v25-pred-head{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#66758a}.v25-pred-head b{color:#ed2554}.v25-projected{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.v25-projected div{text-align:center;padding:9px;background:#eef3f8;border-radius:10px}.v25-projected strong{display:block;font-size:21px}.v25-projected span{font-size:10px}.v25-probbar{display:flex;height:8px;overflow:hidden;border-radius:8px;background:#ddd}.v25-probbar i{background:#16a085}.v25-probbar em{background:#aab4c2}.v25-probbar b{background:#ed2554}.v25-problabel{display:flex;justify-content:space-between;gap:6px;font-size:10px;margin-top:6px}.v25-prediction>small{display:block;margin-top:10px;color:#718096;line-height:1.35}
.v25-reveal-summary{margin:14px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.v25-reveal-summary div,.v25-draw-stat{padding:14px;border-radius:14px;background:#142441;color:#fff;display:grid;gap:4px}.v25-reveal-summary span,.v25-draw-stat span{font-size:9px;letter-spacing:.08em}.v25-reveal-summary small,.v25-draw-stat small{opacity:.7}.teams-player-name em{margin-left:auto;color:#ed2554;font-size:10px;font-style:normal;font-weight:800}.v25-profile-tools{display:grid;gap:14px}.v25-draw-stat strong{font-size:28px}.v25-team-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.v25-team-buttons button{text-align:left;padding:13px;border:1px solid #dfe5ed;border-radius:12px;background:#fff;display:grid;gap:4px;cursor:pointer}.v25-team-buttons span{font-size:10px;color:#ed2554}.v25-event-probs,.v25-analysis-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.v25-event-probs div,.v25-analysis-grid div{text-align:center;padding:10px 5px;background:#eef3f8;border-radius:10px}.v25-event-probs strong,.v25-analysis-grid strong{display:block}.v25-event-probs span,.v25-analysis-grid span{font-size:9px;color:#718096}
.v25-modal{position:fixed;inset:0;background:rgba(8,18,33,.7);z-index:100;display:grid;place-items:center;padding:16px}.v25-dialog{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:24px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.35)}.v25-dialog>button:first-child{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:26px;cursor:pointer}.v25-dialog.login{max-width:370px;display:grid;gap:12px}.v25-dialog.login input{padding:13px;border:1px solid #ccd5e0;border-radius:10px;font-size:18px}.v25-dialog.login h2,.v25-dialog.login p{margin:0}.v25-dialog.analysis section{padding:12px 0;border-bottom:1px solid #edf0f4}.v25-dialog.analysis h3{margin:0 0 7px}.v25-dialog.analysis h3 small{display:block;color:#718096;font-weight:400}.v25-dialog.analysis p{font-size:13px;line-height:1.5;margin:0}.v25-strip{height:8px;background:#e8edf3;border-radius:8px;position:relative;margin:16px 6px}.v25-strip i,.v25-strip em,.v25-strip b{position:absolute;top:-4px;width:4px;height:16px;border-radius:3px}.v25-strip i{background:#16a085}.v25-strip em{background:#e3a426}.v25-strip b{background:#ed2554}
@media(max-width:640px){.v25-admin-hero{align-items:flex-start;flex-direction:column}.v25-toolbar{align-items:stretch;flex-direction:column}.v25-toolbar>div{display:grid;grid-template-columns:1fr 1fr}.v25-odds-grid{grid-template-columns:1fr}.v25-match-editor footer{flex-wrap:wrap}.v25-reveal-summary{grid-template-columns:1fr}.teams-player-name{flex-wrap:wrap}.teams-player-name em{width:100%;margin-left:34px}.v25-problabel{font-size:9px}.v25-pred-head{flex-direction:column}.v25-event-probs,.v25-analysis-grid{grid-template-columns:1fr 1fr}}
.v25-live-state{margin:16px 0 8px;padding:12px 15px;border-radius:13px;background:#eef2f7;color:#526175;display:flex;justify-content:space-between;gap:10px;align-items:center}.v25-live-state strong{font-size:11px;letter-spacing:.06em}.v25-live-state span{font-size:11px}.v25-live-state.live{background:#fff3d6;color:#855d00}.v25-live-state.locked{background:#dff7ec;color:#08754c}.v25-admin-status{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 15px}.v25-admin-status div{text-align:center;background:#fff;border:1px solid #e0e5ec;border-radius:13px;padding:12px 7px}.v25-admin-status strong,.v25-admin-status span{display:block}.v25-admin-status strong{font-size:22px}.v25-admin-status span{font-size:10px;color:#718096}.v25-lock-notice{padding:14px;border-radius:12px;background:#dff7ec;color:#08754c;font-weight:700;margin-bottom:12px}.v25-finalise{margin:16px 0;padding:16px;border:1px solid #dce3eb;border-radius:15px;background:#fff;display:grid;gap:9px}.v25-finalise button{padding:12px;border:1px solid #d9e1eb;border-radius:10px;background:#fff;font-weight:800;cursor:pointer}.v25-finalise p{margin:0;text-align:center;font-size:11px;color:#718096}.v25-match-editor button:disabled,.v25-toolbar button:disabled,.v25-bulk button:disabled,.v25-finalise button:disabled{opacity:.45;cursor:not-allowed}.v25-club-report{margin-top:18px;padding:18px;border-radius:18px;background:#101d36;color:#fff}.v25-club-report h2{margin:5px 0 13px}.v25-club-report>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.v25-club-report article{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:10px;border-radius:10px;background:rgba(255,255,255,.08)}.v25-club-report article strong{grid-row:1/3}.v25-club-report article span,.v25-club-report article b{text-align:right;font-size:10px}.v25-club-report article.pending{opacity:.48}.v25-club-report article.entered{box-shadow:inset 3px 0 #22c58b}
@media(max-width:640px){.v25-live-state{align-items:flex-start;flex-direction:column}.v25-club-report>div{grid-template-columns:1fr}}

html,
body {
    margin: 0;
    padding: 0;
    min-height: 100%;
}

body {
    background: #f5f7fa;
    color: #172033;

    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    padding-bottom: 86px;
}

button,
select {
    font-family: inherit;
}

button {
    -webkit-tap-highlight-color: transparent;
}

#app {
    width: 100%;
    max-width: 520px;
    min-height: 100vh;
    margin: 0 auto;
}

.section {
    padding: 18px 16px 0;
}

.section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 12px;
}

h2 {
    margin: 0;
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: -.3px;
}

h3 {
    margin: 0 0 4px;
    font-size: 12px;
}

p {
    margin: 4px 0 0;
    color: #737d8d;
    font-size: 10px;
    line-height: 1.45;
}

.eyebrow {
    display: block;
    margin-bottom: 6px;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #8a94a6;
}

.eyebrow.light {
    color: #aeb6c3;
}

.page-title {
    margin-bottom: 14px;
}

.page-controls {
    margin-top: 14px;
}

.page-controls label:first-child {
    margin-top: 0;
}

.bottom-nav {
    position: fixed;
    left: 50%;
    bottom: 10px;
    transform: translateX(-50%);

    z-index: 100;

    display: grid;
    grid-template-columns: repeat(4, 1fr);

    width: calc(100% - 24px);
    max-width: 496px;

    padding: 5px;

    background: rgba(255,255,255,.96);
    border: 1px solid #e3e7ec;
    border-radius: 18px;

    box-shadow:
        0 8px 30px rgba(15,23,42,.10);

    backdrop-filter: blur(12px);
}

.nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 3px;

    min-height: 48px;

    border: 0;
    border-radius: 13px;

    background: transparent;
    color: #9ca3af;

    font-size: 9px;
    font-weight: 800;

    cursor: pointer;
}

.nav-item span:first-child {
    font-size: 17px;
    line-height: 1;
}

.nav-item.active {
    background: #111827;
    color: white;
}


.app-title-banner {
    margin: 0 16px;
    padding: 18px 16px;
    background: #111827;
    border-radius: 0 0 16px 16px;
    color: white;
    font-size: 19px;
    font-weight: 900;
    letter-spacing: -.2px;
    text-align: center;
    box-shadow: 0 7px 20px rgba(15,23,42,.10);
}

/* HOME */

.home-leader-section {
    padding-top: 18px;
    margin-bottom: 0;
}

.home-leader-title {
    display: flex;
    align-items: center;

    gap: 6px;

    margin-bottom: 8px;

    font-size: 18px;
    line-height: 1.2;

    font-weight: 900;
    letter-spacing: .2px;

    color: #111827;
}

.home-leader-title-emoji {
    font-size: 17px;
    line-height: 1;
}

.leader-card {
    display: grid;

    grid-template-columns:
        40px
        1fr
        auto;

    align-items: center;

    width: 100%;
    gap: 11px;

    padding: 15px;
    margin-top: 8px;

    background: #111827;

    border: 0;
    border-radius: 17px;

    color: white;

    text-align: left;

    cursor: pointer;

    box-shadow:
        0 7px 20px rgba(15,23,42,.12);
}

.leader-badge {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    border-radius: 12px;

    background: rgba(255,255,255,.1);

    font-size: 16px;
    font-weight: 900;
}

.leader-main {
    min-width: 0;
}

.leader-main strong {
    display: block;
    font-size: 14px;
}

.leader-main span {
    display: block;

    margin-top: 4px;

    overflow: hidden;

    white-space: nowrap;
    text-overflow: ellipsis;

    font-size: 9px;
    color: #aeb6c3;
}

.leader-stats {
    text-align: right;
}

.leader-stats strong {
    display: block;
    font-size: 19px;
}

.leader-stats small {
    display: block;

    margin-top: 2px;

    font-size: 9px;
    color: #aeb6c3;
}

.update-card {
    display: flex;
    align-items: flex-start;

    gap: 12px;

    padding: 13px;
    margin-bottom: 8px;

    background: white;

    border: 1px solid #e7e9ed;
    border-radius: 14px;

    cursor: default !important;

    transform: none !important;
    transition: none !important;
}

.update-card:hover,
.update-card:active,
.update-card:focus {
    transform: none !important;
}

.update-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 38px;

    width: 38px;
    height: 38px;

    background: #f3f4f6;

    border-radius: 11px;

    font-size: 18px;
}

.update-card strong {
    display: block;
    font-size: 12px;
}

.award-card {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    padding: 14px 15px;
    margin-bottom: 8px;

    background: white;

    border: 1px solid #e7e9ed;
    border-radius: 14px;
}

.award-card strong {
    font-size: 12px;
}

.award-card span {
    font-size: 10px;
    color: #6b7280;
    text-align: right;
}


/* CONTROLS */

label {
    display: block;

    margin: 13px 0 6px;

    font-size: 9px;
    font-weight: 800;

    text-transform: uppercase;
    letter-spacing: .7px;

    color: #8a94a6;
}

.dropdown {
    width: 100%;

    padding: 12px 13px;
    margin-bottom: 3px;

    background: white;

    border: 1px solid #e1e5ea;
    border-radius: 11px;

    outline: none;

    font-size: 12px;
    color: #111827;
}


/* LEAGUE */

.league-list {
    padding: 12px 16px 0;
}

.league-row {
    display: grid;

    grid-template-columns:
        34px
        1fr
        64px;

    align-items: center;

    width: 100%;
    min-height: 82px;

    padding: 10px 18px;

    background: white;

    border: 0;
    border-bottom: 1px solid #edf0f3;

    text-align: left;

    cursor: pointer;
}

.league-row:first-child {
    border-radius: 14px 14px 0 0;
}

.league-row:last-child {
    border-radius: 0 0 14px 14px;
    border-bottom: 0;
}

.league-row.selected-player {
    background: #eef2f5;
}

.league-row.selected-player .position {
    color: #111827;
}

.position {
    font-size: 11px;
    font-weight: 800;
    color: #8a94a6;
    padding-left: 2px;
}

.league-player {
    min-width: 0;
}

.league-player > strong {
    display: block;
    font-size: 14px;
}

.league-player > small {
    display: block;

    margin-top: 4px;

    overflow: hidden;

    font-size: 10px;
    color: #8a94a6;
}

.two-line-teams {
    display: flex !important;
    flex-direction: column;
    gap: 2px;

    line-height: 1.2;

    white-space: normal !important;
    text-overflow: clip !important;
}

.two-line-teams span {
    display: block;
}

.league-record {
    display: flex;
    align-items: center;

    gap: 11px;

    margin-top: 8px;

    font-size: 10px;
    font-weight: 700;

    color: #737d8d;
}

.movement {
    display: inline-flex;
    align-items: center;

    gap: 5px;

    min-width: 36px;
    margin-right: 7px;

    font-weight: 900;
}

.movement-arrow {
    font-size: 17px;
    line-height: 10px;
    font-weight: 1000;
}

.movement.up {
    color: #16a34a;
}

.movement.down {
    color: #dc2626;
}

.movement.same {
    color: #9ca3af;
}

.record-stat {
    white-space: nowrap;
}

.league-stats {
    padding-right: 10px;
    text-align: right;
}

.league-stats strong {
    display: block;
    font-size: 18px;
}

.league-stats small {
    display: block;

    margin-top: 3px;

    font-size: 9px;
    color: #8a94a6;
}


/* FIXTURES / RESULTS MATCHUP */

.fixture-matchup,
.result-matchup {
    display: grid;

    grid-template-columns:
        1fr
        28px
        1fr;

    align-items: center;

    gap: 8px;

    margin-top: 0;
    margin-bottom: 14px;

    padding: 15px;

    background: #111827;

    border-radius: 16px;

    color: white;
}

.gameweek-header {
    margin-bottom: 12px;
}

.fixture-player {
    min-width: 0;
}

.fixture-player strong {
    display: block;
    font-size: 13px;
}

.fixture-player small {
    display: block;

    margin-top: 5px;

    overflow: hidden;

    font-size: 9px;
    color: #aeb6c3;
}

.fixture-player.opponent {
    text-align: right;
}

.fixture-vs,
.result-vs {
    font-size: 8px;
    font-weight: 900;

    text-align: center;

    color: #8d97a6;
}

.fixture-team-list {
    display: flex;

    flex-direction: column;

    gap: 2px;

    line-height: 1.2;
}

.fixture-team-list span {
    display: block;
}


.fixture-detail-section,
.result-detail-section {
    padding-top: 12px;
}

.fixture-detail-card,
.result-detail-card {
    padding: 14px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 15px;
    box-shadow: 0 4px 14px rgba(15,23,42,.04);
}

.fixture-detail-card .fixture-matchup {
    margin-bottom: 12px;
}

/* FIXTURE COLUMNS */

.fixture-grid,
.result-grid {
    display: grid;

    grid-template-columns:
        1fr
        1fr;

    gap: 8px;
}

.fixture-column {
    min-width: 0;
}

.fixture-column-title,
.result-column-title {
    display: block;

    margin-bottom: 6px;

    font-size: 8px;
    font-weight: 900;

    text-transform: uppercase;
    letter-spacing: .6px;

    color: #9ca3af;
}

.fixture-item {
    display: flex;

    flex-direction: column;

    gap: 3px;

    padding: 10px 9px;
    margin-bottom: 5px;

    border-radius: 9px;
}

.fixture-item strong {
    font-size: 10px;
}

.fixture-item span {
    font-size: 9px;
    color: #737d8d;
}

.fixture-item.my-team {
    background: #eef2f5;

    border-left:
        4px solid #111827;

    box-shadow:
        0 2px 8px rgba(15,23,42,.04);
}

.fixture-item.opponent-team {
    background: #f7f7f8;

    border-left:
        4px solid #c4c9d1;
}

.fixture-column .fixture-item {
    min-height: 42px;
}


/* EMPTY */

.empty-card {
    padding: 40px 15px;

    background: white;

    border-radius: 15px;

    text-align: center;

    color: #9ca3af;

    font-size: 12px;
}


/* LOOK AHEAD */

.upcoming-section {
    padding-top: 28px;
}

.five-week-scroll {
    display: flex;

    gap: 12px;

    overflow-x: auto;

    padding: 3px 2px 14px;

    margin-right: -16px;

    scrollbar-width: none;

    scroll-snap-type: x mandatory;
}

.five-week-scroll::-webkit-scrollbar {
    display: none;
}

.lookahead-card {
    flex: 0 0 310px;

    padding: 16px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 17px;

    box-shadow:
        0 4px 14px rgba(15,23,42,.05);

    scroll-snap-align: start;
}

.lookahead-gw {
    margin-bottom: 10px;

    font-size: 11px;
    font-weight: 900;

    letter-spacing: .8px;

    color: #8a94a6;
}

.lookahead-names {
    display: grid;

    grid-template-columns:
        1fr
        20px
        1fr;

    align-items: center;

    gap: 5px;

    padding-bottom: 14px;

    border-bottom:
        1px solid #edf0f3;

    text-align: center;
}

.lookahead-names strong {
    font-size: 12px;
}

.lookahead-names span {
    font-size: 9px;
    color: #9ca3af;
}

.lookahead-side {
    margin-top: 13px;
}

.lookahead-label {
    display: block;

    margin-bottom: 6px;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .7px;
    text-transform: uppercase;

    color: #9ca3af;
}

.lookahead-fixture {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 8px;

    padding: 8px 9px;
    margin-bottom: 5px;

    border-radius: 8px;
}

.lookahead-fixture strong {
    font-size: 10px;
}

.lookahead-fixture small {
    font-size: 9px;

    color: #737d8d;

    text-align: right;
}

.lookahead-fixture.my-team {
    background: #f1f5f9;

    border-left:
        3px solid #111827;
}

.opponent-lookahead {
    margin-top: 15px;
}

.lookahead-fixture.opponent-team {
    background: #fafafa;

    border-left:
        3px solid #d1d5db;
}

.opponent-team strong {
    color: #5f6877;
}


/* RESULTS */

.result-matchup {
    margin-top: 0;
}

.result-matchup .eyebrow {
    color: #aeb6c3;
}

.opponent-name {
    text-align: right;
}

.result-column-title {
    margin-bottom: 7px;
}

.result-team {
    padding: 10px;
    margin-bottom: 6px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 10px;

    transition: none;
}

.result-team-header {
    display: flex;

    flex-direction: column;

    gap: 3px;
}

.result-team-header strong {
    font-size: 10px;
}

.result-team-header small {
    font-size: 8px;
    color: #8a94a6;
}

.result-score {
    margin-top: 7px;

    font-size: 13px;
    font-weight: 900;
}

.result-stats {
    margin-top: 5px;

    font-size: 9px;

    color: #737d8d;
}

.result-stats span {
    margin-left: 2px;
}

.result-team.result-w {
    background: #ecfdf3;
    border-color: #bbf7d0;
}

.result-team.result-l {
    background: #fef2f2;
    border-color: #fecaca;
}

.result-team.result-d {
    background: #fffbeb;
    border-color: #fde68a;
}


/* IMPACT */

.impact-grid {
    display: grid;

    grid-template-columns:
        1fr
        1fr;

    gap: 8px;

    margin-top: 10px;
}

.impact-card {
    padding: 13px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 13px;
}

.impact-card span {
    display: block;

    margin-bottom: 7px;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .7px;

    color: #9ca3af;
}

.impact-card strong {
    display: block;

    font-size: 10px;

    line-height: 1.4;
}

.result-impact-card {
    position: relative;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #111827 0%,
            #1f2937 100%
        );

    border-color: #111827;

    color: white;

    box-shadow:
        0 5px 16px rgba(15,23,42,.12);
}

.result-impact-card::after {
    content: "↗";

    position: absolute;

    top: 9px;
    right: 11px;

    font-size: 18px;
    font-weight: 900;

    color: rgba(255,255,255,.18);
}

.result-impact-card span {
    color: #aeb6c3;
}

.result-impact-card strong {
    color: white;
    font-size: 12px;
}


/* PLAYER PROFILE */

.back-button {
    margin: 18px 16px 0;

    padding: 0;

    border: 0;

    background: none;

    color: #737d8d;

    font-size: 11px;
    font-weight: 800;

    cursor: pointer;
}

.player-header {
    margin-top: 14px;

    padding: 22px 16px 20px;

    background: #111827;

    color: white;
}

.player-header h2 {
    font-size: 24px;
}

.player-summary {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 8px;

    margin-top: 18px;
}

.player-summary > div {
    padding: 11px;

    background:
        rgba(255,255,255,.07);

    border-radius: 11px;
}

.player-summary strong {
    display: block;
    font-size: 17px;
}

.player-summary small {
    display: block;

    margin-top: 3px;

    font-size: 8px;

    color: #aeb6c3;
}

.profile-fixture-card {
    padding: 14px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 16px;

    box-shadow:
        0 4px 14px rgba(15,23,42,.05);
}

.profile-fixture-meta {
    margin-bottom: 8px;

    font-size: 9px;
    font-weight: 900;

    letter-spacing: .8px;

    color: #8a94a6;
}

.profile-fixture-card .fixture-matchup {
    margin-bottom: 12px;
}

.profile-last-result {
    padding: 14px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 15px;

    box-shadow:
        0 4px 14px rgba(15,23,42,.04);
}

.profile-last-result-heading strong {
    display: block;

    margin-top: 4px;

    font-size: 13px;
}

.profile-last-result .impact-grid {
    margin-top: 12px;
}

.profile-five-week-scroll {
    margin-right: -16px;
}

.team-list {
    display: grid;

    grid-template-columns:
        1fr
        1fr;

    gap: 8px;

    margin-top: 10px;
}

.team-card {
    padding: 13px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 12px;

    font-size: 11px;
    font-weight: 800;
}

.stat-grid {
    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 8px;

    margin-top: 10px;
}

.stat-card {
    padding: 14px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 13px;
}

.stat-card strong {
    display: block;

    font-size: 20px;
}

.stat-card span {
    display: block;

    margin-top: 4px;

    font-size: 8px;

    color: #8a94a6;
}


/* POSITION CHART */

.line-chart {
    margin-top: 10px;
    padding: 12px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
}

.position-chart-wrap {
    width: 100%;
}

.position-chart-scroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 5px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #9ca3af #eef0f3;
}

.position-chart-scroll::-webkit-scrollbar {
    height: 8px;
}

.position-chart-scroll::-webkit-scrollbar-track {
    background: #eef0f3;
    border-radius: 8px;
}

.position-chart-scroll::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border-radius: 8px;
}

.position-svg {
    display: block;
    width: auto;
    min-width: 500px;
    height: 210px;
}

.chart-grid {
    stroke: #edf0f3;
    stroke-width: 1;
}

.chart-axis {
    fill: #9ca3af;
    font-size: 9px;
}

.chart-line {
    fill: none;
    stroke: #111827;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.chart-point {
    fill: #111827;
    cursor: pointer;
    outline: none;
}

.chart-point:focus {
    stroke: #111827;
    stroke-width: 2;
    stroke-opacity: .35;
}

.chart-tooltip {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 30px;
    margin-top: 5px;
    padding: 7px 10px;
    border-radius: 9px;
    background: #f3f4f6;
    color: #6b7280;
    font-size: 9px;
    text-align: center;
}

.chart-tooltip strong {
    color: #111827;
    font-size: 10px;
}

.chart-tooltip.visible {
    background: #eef2f5;
}

.chart-empty {
    padding: 35px 10px;
    text-align: center;
    color: #9ca3af;
    font-size: 11px;
}


/* MINI LEAGUE */

.card {
    margin-top: 10px;

    background: white;

    border:
        1px solid #e5e7eb;

    border-radius: 14px;

    overflow: hidden;
}

.mini-league-row {
    display: grid;

    grid-template-columns:
        30px
        1fr
        40px
        35px;

    align-items: center;

    width: 100%;

    padding: 11px 12px;

    border: 0;

    border-bottom:
        1px solid #edf0f3;

    background: white;

    text-align: left;

    cursor: pointer;
}

.mini-league-row:last-child {
    border-bottom: 0;
}

.mini-position {
    font-size: 9px;

    color: #9ca3af;

    font-weight: 800;
}

.mini-league-row strong {
    font-size: 10px;
}

.mini-record {
    font-size: 8px;

    color: #8a94a6;
}

.mini-points {
    text-align: right;

    font-size: 10px;
    font-weight: 900;
}

.mini-league-row.current-player {
    background: #eef2f5;
}

.mini-league-row.current-player strong {
    color: #111827;
}


/* REMAINING FIXTURES */

.remaining-section {
    padding-top: 28px;
}

.remaining-list {
    margin-top: 12px;
    max-height: 286px;
    overflow-y: auto;
    overflow-x: hidden;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    scrollbar-width: thin;
    scrollbar-color: #9ca3af #eef0f3;
}

.remaining-list::-webkit-scrollbar {
    width: 8px;
}

.remaining-list::-webkit-scrollbar-track {
    background: #eef0f3;
    border-radius: 8px;
}

.remaining-list::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border-radius: 8px;
}

.remaining-row {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 12px;

    width: 100%;

    padding: 13px 14px;

    border: 0;

    border-bottom:
        1px solid #edf0f3;

    background: white;

    text-align: left;

    color: #172033;
}

.remaining-row:last-child {
    border-bottom: 0;
}

.remaining-row strong {
    min-width: 34px;

    font-size: 10px;

    color: #8a94a6;
}

.remaining-row span {
    flex: 1;

    font-size: 11px;
    font-weight: 800;
}

.remaining-row em {
    color: #9ca3af;

    font-style: normal;
    font-weight: 700;
}

.remaining-row:active {
    background: #f7f8fa;
}


/* SEASON RESULTS */

.season-results-list {
    margin-top: 12px;
    max-height: 286px;
    overflow-y: auto;
    overflow-x: hidden;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    scrollbar-width: thin;
    scrollbar-color: #9ca3af #eef0f3;
}

.season-results-list::-webkit-scrollbar {
    width: 8px;
}

.season-results-list::-webkit-scrollbar-track {
    background: #eef0f3;
    border-radius: 8px;
}

.season-results-list::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border-radius: 8px;
}

.season-result-row {
    display: grid;

    grid-template-columns:
        38px
        1fr
        30px;

    gap: 3px 8px;

    width: 100%;

    padding: 12px 14px;

    border: 0;

    border-bottom:
        1px solid #edf0f3;

    background: white;

    text-align: left;
}

.season-result-row:last-child {
    border-bottom: 0;
}

.season-result-row span {
    grid-row: 1 / span 2;

    font-size: 9px;

    font-weight: 900;

    color: #9ca3af;
}

.season-result-row strong {
    font-size: 10px;
}

.season-result-row small {
    font-size: 9px;
    color: #737d8d;
}

.season-result-row.active {
    background: #eef2f5;
}

.season-result-row strong em {
    font-style: normal;
    color: #9ca3af;
    font-weight: 700;
}

.season-result-status {
    grid-column: 3;
    grid-row: 1 / span 2;
    align-self: center;
    justify-self: end;
    font-size: 8px !important;
    font-weight: 900 !important;
    color: #9ca3af !important;
}


/* GENERAL SPACING */

.section > h2 + .page-controls {
    margin-top: 14px;
}

.section > h2 + .dropdown {
    margin-top: 14px;
}

.section > h2 + .profile-fixture-card,
.section > h2 + .five-week-scroll,
.section > h2 + .profile-last-result,
.section > h2 + .team-list,
.section > h2 + .stat-grid,
.section > h2 + .line-chart,
.section > h2 + .card {
    margin-top: 12px;
}

.upcoming-section .five-week-scroll {
    margin-top: 12px;
}

.section > h2 + .dropdown,
.section > h2 + .page-controls,
.section > h2 + label {
    margin-top: 14px;
}


/* HOME PLAYER SELECTOR */

.home-player-selector {
    padding-bottom: 0;
}

.home-player-selector .home-leader-title {
    margin-bottom: 0;
    font-size: 18px;
}

.home-player-selector .dropdown {
    margin-top: 5px;
}


/* FINAL HEADING / SPACING ALIGNMENT */

.home-leader-section {
    margin-bottom: 0;
}

.home-leader-title {
    font-size: 18px;
    line-height: 1.2;
}

.home-leader-title-emoji {
    font-size: 17px;
}

.remaining-section h2,
.upcoming-section h2 {
    margin-bottom: 0;
}


/* MOBILE */

@media (max-width: 360px) {

    .league-row {
        grid-template-columns:
            30px
            1fr
            58px;

        padding-left: 14px;
        padding-right: 14px;
    }

    .league-record {
        gap: 8px;
    }

    .leader-card {
        grid-template-columns:
            36px
            1fr
            auto;

        padding: 13px;
    }

    .leader-badge {
        width: 36px;
        height: 36px;
    }

    .lookahead-card {
        flex-basis: 290px;
    }

}


/* LARGER PHONES */

@media (min-width: 390px) {

    .fixture-column .fixture-item {
        display: grid;

        grid-template-columns:
            1fr
            1fr;

        align-items: center;

        column-gap: 6px;
    }

    .fixture-column .fixture-item span {
        text-align: right;
    }

}


/* LATEST REQUESTS */

.home-player-selector .home-leader-title,
.home-leader-section .home-leader-title {
    font-weight: 900;
}

.leader-team-list {
    white-space: normal !important;
    text-overflow: clip !important;
    overflow: visible !important;
    line-height: 1.25;
}

.leader-team-list span {
    display: block;
}

.player-selector-info {
    margin: 8px 1px 0;
    font-size: 9px;
    line-height: 1.45;
    color: #8a94a6;
}

.home-player-summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
    margin-top: 10px;
    padding: 10px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
}

.home-player-summary > div {
    min-width: 0;
    text-align: center;
}

.home-player-summary strong {
    display: block;
    font-size: 15px;
    line-height: 1.15;
}

.home-player-summary span {
    display: block;
    margin-top: 4px;
    font-size: 7px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #8a94a6;
}


/* SEASON AWARD DESCRIPTIONS */

.award-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.award-description {
    display: block;
    margin-top: 4px;
    font-size: 8px;
    line-height: 1.35;
    color: #9ca3af;
}

.award-card > span {
    flex-shrink: 0;
}


/* RESULTS TOTAL / LEAGUE IMPACT */

.result-impact-grid {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
}

.result-total-card {
    min-width: 0;
}

.total-comparison {
    display: grid;
    grid-template-columns: 1fr 20px 1fr;
    align-items: center;
    gap: 4px;
}

.total-comparison > div {
    min-width: 0;
}

.total-comparison strong {
    display: inline;
    font-size: 18px;
    line-height: 1;
}

.total-comparison small {
    display: inline;
    margin-left: 3px;
    font-size: 7px;
    font-weight: 900;
    color: #9ca3af;
}

.total-comparison em {
    display: block;
    margin-top: 5px;
    font-size: 8px;
    font-style: normal;
    font-weight: 800;
    color: #737d8d;
}

.total-vs {
    text-align: center;
    font-size: 8px;
    font-weight: 900;
    color: #9ca3af;
}

.result-impact-grid .result-impact-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 82px;
}

.result-impact-grid .result-impact-card strong {
    font-size: 14px;
}


/* =========================================================
   STAGE UPDATE — RESULT / PROFILE / HOME POLISH
========================================================= */

/* Keep the This Week emoji optically centred inside its tile. */
.update-icon {
    align-self: center;
    line-height: 1;
    text-align: center;
}

/* Home player profile action. */
.profile-button {
    display: block;
    width: 100%;
    margin-top: 9px;
    padding: 11px 13px;
    border: 1px solid #e1e5ea;
    border-radius: 11px;
    background: #111827;
    color: white;
    font-size: 10px;
    font-weight: 800;
    text-align: center;
    cursor: pointer;
}

.profile-button:active {
    transform: translateY(1px);
}

/* All eight result cards share identical dimensions. */
.result-grid > div {
    display: grid;
    grid-template-rows: auto repeat(4, minmax(74px, 1fr));
    gap: 6px;
    min-width: 0;
}

.result-grid .result-team {
    min-height: 74px;
    height: 100%;
    margin-bottom: 0;
}


.result-detail-card .result-grid {
    margin-top: 4px;
}

.result-detail-card .result-column-title {
    text-align: left;
}

.result-detail-card .result-opponent-column .result-column-title,
.result-detail-card .result-opponent-column .result-team {
    text-align: right;
}

.result-detail-card .result-opponent-column .result-team-header {
    text-align: right;
}

.result-detail-card .result-opponent-column .result-stats {
    justify-content: flex-end;
}

.result-total-opponent {
    text-align: right;
}

.result-detail-card .result-total-card {
    padding: 12px;
}

/* Two individual Total cards, followed by one full-width League Impact card. */
.result-summary-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 10px;
}

.result-summary-grid .result-total-card,
.profile-result-totals .impact-card {
    min-width: 0;
}

.result-total-card > span,
.profile-result-totals .impact-card > span {
    display: block;
    margin-bottom: 8px;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .55px;
    color: #9ca3af;
}

.result-total-card > strong,
.profile-result-totals .impact-card > strong {
    display: block;
    font-size: 17px;
    line-height: 1.1;
}

.result-total-card > small,
.profile-result-totals .impact-card > small {
    display: block;
    margin-top: 5px;
    font-size: 9px;
    font-weight: 800;
    color: #737d8d;
}

.result-impact-full {
    margin-top: 8px;
    min-height: 92px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.league-impact-result {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: center;
    gap: 0;
    margin-top: 5px;
    text-align: center;
}

.league-impact-result > strong {
    grid-column: auto;
}

.league-impact-values {
    display: contents;
}


.league-impact-result > strong {
    font-size: 18px !important;
    letter-spacing: .3px;
}

.league-impact-values span {
    color: white !important;
    font-size: 12px !important;
    font-weight: 900;
}

/* Player profile uses the same result-summary treatment. */
.profile-result-totals {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 10px;
}

.profile-last-result .result-impact-full {
    margin-top: 8px;
}

@media (max-width: 380px) {
    .league-impact-result {
        gap: 8px;
    }

    .league-impact-values {
        gap: 7px;
    }

    .league-impact-values span {
        font-size: 10px !important;
    }
}

/* V25 refinement pass */
#app.v25-admin-app{max-width:900px}
.v25-admin{max-width:900px;padding:14px 16px 80px}
.v25-admin-nav{display:flex;justify-content:space-between;align-items:center;gap:10px}
.v25-admin-nav button{border:1px solid #d7dee8;border-radius:9px;background:#fff;padding:8px 11px;font-size:11px;font-weight:800;cursor:pointer}
.v25-admin-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;margin:12px 0;padding:20px 22px}
.v25-current-week{min-width:128px;padding:12px 16px;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(255,255,255,.09);text-align:center}
.v25-current-week span,.v25-current-week strong{display:block}.v25-current-week span{font-size:9px;letter-spacing:.08em;text-transform:uppercase;opacity:.72}.v25-current-week strong{margin-top:3px;font-size:24px}
.v25-toolbar{position:static;display:grid;grid-template-columns:minmax(160px,.75fr) auto minmax(240px,1fr);gap:9px;padding:9px;box-shadow:0 5px 14px rgba(30,45,65,.06)}
.v25-toolbar label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-left:4px}.v25-toolbar label span{white-space:nowrap}.v25-toolbar select{width:70px;margin:0;padding:7px}
.v25-toolbar button,.v25-bulk button,.v25-match-editor button{padding:7px 10px;border-radius:8px;font-size:10px}
.v25-set-current.current{border-color:#16a085!important;color:#08755e!important;background:#e5f8f3!important}
.v25-admin-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px}.v25-admin-tabs button{width:100%}
.v25-bulk{display:flex;flex-wrap:wrap;align-items:center;margin:11px 0;gap:6px}.v25-bulk .danger{margin-left:auto;border-color:#f1c6cf;color:#b21e40;background:#fff7f8}
.v25-admin-help{margin:0 0 11px;padding:10px 12px;border-left:3px solid #6e89aa;border-radius:7px;background:#eef3f8;color:#55657a;font-size:10px;line-height:1.45}
.v25-admin-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.v25-match-editor{padding:12px;border-radius:13px}.v25-match-editor header{padding-bottom:8px}.v25-match-editor header strong{font-size:12px}.v25-match-editor header span{font-size:9px}
.v25-score-row{display:grid;grid-template-columns:auto minmax(115px,1fr) minmax(125px,1fr);align-items:end;gap:7px;padding:10px 0}
.v25-score-inputs{display:flex;align-items:center;gap:5px}.v25-score-row input{width:43px;padding:7px;font-size:17px}.v25-score-row select{width:100%;padding:7px;font-size:10px}.v25-score-row label{min-width:0;font-size:8px;text-transform:uppercase;letter-spacing:.04em}
.v25-match-editor footer{gap:5px}.v25-odds-grid{gap:6px;padding-top:10px}.v25-odds-grid input{padding:8px}.v25-overround{margin:8px 0;font-size:9px}
.v25-live-state{margin:11px 0 6px;padding:9px 12px}.v25-admin-status{margin:6px 0 10px}.v25-admin-status div{padding:9px 5px}.v25-admin-status strong{font-size:18px}
.v25-finalise{margin:12px 0;padding:12px}.v25-club-report{margin-top:12px;padding:15px}.v25-club-report>div{grid-template-columns:repeat(4,minmax(0,1fr))}
.v25-forecast-insights{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:11px}.v25-forecast-insights div{text-align:center;padding:8px 4px;border-radius:9px;background:#eef3f8}.v25-forecast-insights strong,.v25-forecast-insights span{display:block}.v25-forecast-insights strong{font-size:14px}.v25-forecast-insights span{margin-top:2px;color:#68778b;font-size:8px;line-height:1.2}
.v25-reveal-summary{grid-template-columns:1fr 1fr}.v25-draw-explainer{margin:0 0 14px;border:1px solid #dde4ec;border-radius:12px;background:#fff}.v25-draw-explainer summary{padding:12px 14px;font-size:10px;font-weight:900;cursor:pointer}.v25-draw-explainer p{margin:0;padding:0 14px 14px;color:#617086;font-size:10px;line-height:1.55}
.v25-header-draw{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;margin:10px 0 4px;padding:9px 12px;border:1px solid rgba(255,255,255,.2);border-radius:11px;background:rgba(255,255,255,.09)}.v25-header-draw span{font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.v25-header-draw strong{grid-row:1/3;grid-column:2;font-size:20px}.v25-header-draw small{font-size:9px;opacity:.7}
.profile-teams-section .team-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.v25-team-analysis-button{width:100%;min-height:62px;border:0;text-align:left;display:flex!important;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;cursor:pointer}.v25-team-analysis-button strong{font-size:13px}.v25-team-analysis-button span{font-size:8px;opacity:.72;text-transform:uppercase;letter-spacing:.04em}
.v25-result-state{display:flex;justify-content:space-between;gap:8px;margin:-2px 0 13px;padding:8px 10px;border-radius:9px;background:#eef3f8;color:#607087;font-size:9px}.v25-result-state.live{background:#fff3d6;color:#855d00}.v25-result-state.final{background:#dff7ec;color:#08754c}.result-pending,.result-postponed{border-color:#dce2e9!important;background:#f4f6f8!important;color:#6d7989!important}.result-live{background:#fff3d6!important;color:#855d00!important}
.v25-analysis-intro{margin:-5px 0 14px!important;color:#65748a}.v25-analysis-grid div{display:grid;align-content:center;gap:2px}.v25-analysis-grid span{font-weight:800;color:#344257}.v25-analysis-grid small{font-size:8px;color:#8290a1}.v25-analysis-pills{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0}.v25-analysis-pills span{padding:6px 8px;border-radius:8px;background:#eef3f8;color:#5c6b7e;font-size:10px}.v25-analysis-note{display:inline-block;margin:-2px 0 8px;padding:4px 7px;border-radius:6px;background:#fff3d6;color:#855d00;font-size:8px;font-weight:800;text-transform:uppercase}.v25-pairing{display:grid;grid-template-columns:1fr auto;gap:2px 8px;margin-top:7px;padding:9px;border-radius:9px;background:#e8f7f2}.v25-pairing.weak{background:#fff0f2}.v25-pairing span{font-size:9px}.v25-pairing strong{grid-row:1/3;grid-column:2}.v25-pairing small{font-size:8px;color:#6d7989}
h1,h2,h3{text-transform:capitalize}
@media(max-width:720px){#app.v25-admin-app{max-width:520px}.v25-admin-hero{grid-template-columns:1fr auto}.v25-toolbar{grid-template-columns:1fr auto}.v25-admin-tabs{grid-column:1/3}.v25-admin-list{grid-template-columns:1fr}.v25-club-report>div{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.v25-admin{padding-left:11px;padding-right:11px}.v25-admin-hero{grid-template-columns:1fr;padding:16px}.v25-current-week{min-width:0;text-align:left}.v25-current-week span,.v25-current-week strong{display:inline;margin-right:7px}.v25-admin-nav .back-button{margin:0}.v25-toolbar{grid-template-columns:1fr}.v25-toolbar label,.v25-set-current,.v25-admin-tabs{grid-column:1}.v25-score-row{grid-template-columns:auto 1fr}.v25-score-row label:last-child{grid-column:1/3}.v25-bulk .danger{margin-left:0}.v25-forecast-insights{grid-template-columns:1fr 1fr}.v25-reveal-summary{grid-template-columns:1fr 1fr}.v25-analysis-grid{grid-template-columns:1fr 1fr}}

/* =========================================================
   STAGE UPDATE — LEAGUE LAYOUT / GUIDANCE / PROFILE RETURN
========================================================= */

.page-info-text {
    margin: 6px 0 10px;
    font-size: 9px;
    line-height: 1.45;
    color: #8a94a6;
}

/* Keep the league row structure, but place the four clubs between
   the player block and the points block. */
.league-row {
    grid-template-columns: 34px minmax(118px, 1fr) minmax(132px, 1.15fr) 64px;
    column-gap: 10px;
}

.league-player {
    align-self: center;
}

.league-player > strong {
    display: block;
}

.league-record {
    margin-top: 8px;
    gap: 9px;
}

.league-teams {
    min-width: 0;
    align-self: center;
    margin: 0;
    overflow: visible;
    font-size: 9px;
    color: #8a94a6;
}

.league-teams span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* The helper copy sits close to its heading, then leaves breathing
   room before the dropdown/list/card underneath. */
.section > h2 + .page-info-text {
    margin-top: 6px;
}

.page-info-text + .dropdown,
.page-info-text + .season-results-list,
.page-info-text + .remaining-list,
.page-info-text + .card {
    margin-top: 10px;
}

/* Coming Up Next uses the same section-heading rhythm as the other
   fixture sections while keeping the whole GW detail inside its box. */
.fixture-detail-section > h2 {
    margin-bottom: 12px;
}

/* League Impact is deliberately clean: no decorative corner arrow,
   no separate label above the three evenly-spaced values. */
.result-impact-card::after {
    content: none !important;
    display: none !important;
}

.result-impact-full .league-impact-result {
    margin-top: 0;
}

/* Make the profile back control generic because it can return to
   Home, League, Fixtures or Results. */
.back-button {
    min-height: 28px;
}

@media (max-width: 430px) {
    .league-row {
        grid-template-columns: 28px minmax(96px, 1fr) minmax(105px, 1.08fr) 52px;
        column-gap: 7px;
        padding-left: 12px;
        padding-right: 12px;
    }

    .league-player > strong {
        font-size: 12px;
    }

    .league-record {
        gap: 6px;
        font-size: 9px;
    }

    .movement {
        min-width: 30px;
        margin-right: 2px;
    }

    .league-teams {
        font-size: 8px;
    }

    .league-stats strong {
        font-size: 18px;
    }
}

@media (max-width: 360px) {
    .league-row {
        grid-template-columns: 25px minmax(90px, 1fr) minmax(93px, 1fr) 48px;
        column-gap: 5px;
    }

    .league-record {
        gap: 4px;
    }

    .record-stat {
        font-size: 8px;
    }
}


/* LEAGUE IMPACT — screenshot-style three-column layout */
.result-impact-full { min-height: 102px; }
.result-impact-full .league-impact-result {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center; width: 100%; margin: 0; text-align: center;
}
.result-impact-full .league-impact-stat {
    display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0;
}
.result-impact-full .league-impact-stat strong {
    display: block; margin: 0; color: #fff; font-size: 16px !important; font-weight: 900; line-height: 1.1; letter-spacing: 0;
}
.result-impact-full .league-impact-stat small {
    display: block; margin-top: 7px; color: #aeb6c3; font-size: 8px; font-weight: 900; line-height: 1; letter-spacing: .7px; text-transform: uppercase;
}


/* =========================================================
   STAGE UPDATE - RULES / SCROLLABLE LEAGUE / PROFILE LINKS
========================================================= */

.bottom-nav.standalone-hidden {
    display: none;
}

.rules-entry-wrap {
    margin: 8px 16px 0;
}

.rules-entry-button {
    margin-top: 0;
}

.rules-page {
    padding: 14px 16px 36px;
}

.rules-back-button {
    margin-bottom: 12px;
}

.rules-hero {
    padding: 22px 18px;
    margin-bottom: 12px;
    background: #111827;
    border-radius: 16px;
    color: white;
}

.rules-hero h1 {
    margin: 0;
    font-size: 24px;
    line-height: 1.15;
    letter-spacing: -.5px;
}

.rules-hero p {
    margin-top: 8px;
    color: #c7ced8;
    font-size: 11px;
}

.rules-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
    margin-bottom: 12px;
}

.rules-summary-card {
    padding: 12px 6px;
    border: 1px solid #e1e5ea;
    border-radius: 12px;
    background: white;
    text-align: center;
}

.rules-summary-card strong {
    display: block;
    font-size: 15px;
    color: #111827;
}

.rules-summary-card span {
    display: block;
    margin-top: 3px;
    font-size: 8px;
    font-weight: 800;
    color: #8a94a6;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.rules-section-card {
    margin-top: 12px;
    padding: 16px;
    border: 1px solid #e1e5ea;
    border-radius: 14px;
    background: white;
}

.rules-section-card h2 {
    margin-bottom: 8px;
}

.rules-section-card p {
    font-size: 10.5px;
}

.rules-score-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
    margin: 12px 0;
}

.rules-score-strip > div {
    padding: 11px 8px;
    border-radius: 11px;
    background: #f5f7fa;
    text-align: center;
}

.rules-score-strip strong,
.rules-score-strip span {
    display: block;
}

.rules-score-strip strong {
    font-size: 17px;
}

.rules-score-strip span {
    margin-top: 2px;
    font-size: 8px;
    font-weight: 900;
    color: #8a94a6;
    text-transform: uppercase;
}

.rules-award-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid #edf0f3;
}

.rules-award-row:last-child {
    border-bottom: 0;
}

.rules-award-row > div {
    min-width: 0;
}

.rules-award-row strong,
.rules-award-row span {
    display: block;
}

.rules-award-row strong {
    font-size: 11px;
}

.rules-award-row span {
    margin-top: 3px;
    color: #7d8796;
    font-size: 9px;
    line-height: 1.35;
}

.rules-award-row b {
    flex: 0 0 auto;
    font-size: 12px;
}

.rules-prize-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 7px;
    margin-top: 10px;
}

.rules-prize-grid > div {
    display: flex;
    justify-content: space-between;
    padding: 9px 10px;
    border-radius: 9px;
    background: #f5f7fa;
    font-size: 10px;
}

.rules-prize-grid span {
    color: #737d8d;
    font-weight: 800;
}

.prize-fund-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 12px;
}

.prize-fund-grid > div {
    display: flex;
    min-height: 82px;
    min-width: 0;
    padding: 12px 6px 10px;
    border: 1px solid #e3e8ed;
    border-radius: 11px;
    background: #f8fafc;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.prize-fund-grid span,
.prize-fund-grid strong,
.prize-fund-grid small {
    display: block;
}

.prize-fund-grid span {
    margin-top: 5px;
    color: #667085;
    font-size: 7.8px;
    font-weight: 900;
    line-height: 1.25;
    text-transform: uppercase;
}

.prize-fund-grid strong {
    color: #111827;
    font-size: 25px;
    line-height: 1;
}

.prize-fund-grid small {
    margin-top: 3px;
    color: #8a94a6;
    font-size: 7px;
    font-weight: 800;
}

.rules-note {
    margin-top: 10px !important;
    font-style: italic;
}

.faq-item {
    border-top: 1px solid #edf0f3;
}

.faq-item:first-of-type {
    margin-top: 8px;
}

.faq-item summary {
    padding: 12px 0;
    font-size: 10.5px;
    font-weight: 850;
    color: #172033;
    cursor: pointer;
}

.faq-item p {
    margin: -3px 0 12px;
}

/* Approximately six league rows visible at a time, with an explicit scrollbar. */
.league-scroll-list {
    margin: 12px 16px 0;
    padding: 0;
    max-height: 492px;
    overflow-y: scroll;
    overflow-x: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: white;
    scrollbar-width: auto;
    scrollbar-color: #9ca3af #eef0f3;
}

.league-scroll-list::-webkit-scrollbar {
    width: 9px;
}

.league-scroll-list::-webkit-scrollbar-track {
    background: #eef0f3;
}

.league-scroll-list::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border-radius: 8px;
    border: 2px solid #eef0f3;
}

.league-scroll-list .league-row:last-child {
    border-bottom: 0;
}

/* Remaining fixtures: current position is secondary and right aligned. */
.remaining-row .remaining-player-name {
    flex: 1;
    min-width: 0;
}

.remaining-row .remaining-current-pos {
    flex: 0 0 auto;
    margin-left: auto;
    font-size: 9px;
    text-align: right;
    white-space: nowrap;
}

/* Right-aligned actions beside the profile section headings. */
.profile-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.profile-section-heading .eyebrow {
    margin-bottom: 6px;
}

.section-link-button {
    flex: 0 0 auto;
    padding: 7px 9px;
    border: 1px solid #e1e5ea;
    border-radius: 9px;
    background: white;
    color: #172033;
    font-size: 9px;
    font-weight: 850;
    cursor: pointer;
}

.section-link-button:active {
    background: #f5f7fa;
}

/* =========================================================
   NEXT STAGE - FORM / HIGHLIGHTS / RULE DETAILS / JUMP
========================================================= */
.home-example-note {
    margin: 8px 2px 0;
    color: #7d8797;
    font-size: 9px;
    line-height: 1.45;
    text-align: center;
}

.form-stream {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid #e4e8ed;
    border-radius: 14px;
    background: #fff;
}
.form-stream-label {
    color: #8a94a6;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .9px;
}
.form-stream-results {
    display: flex;
    gap: 7px;
}
.form-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    box-shadow: 0 4px 10px rgba(15,23,42,.12);
}
.form-w { background: #16a34a; }
.form-d { background: #94a3b8; }
.form-l { background: #dc2626; }
.form-stream-empty {
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px dashed #d8dde5;
    border-radius: 12px;
    color: #94a3b8;
    font-size: 9px;
    font-weight: 800;
    text-align: center;
}

.result-impact-full {
    min-height: 76px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}
.result-impact-full .league-impact-stat small {
    margin-top: 5px !important;
}
.profile-last-result .result-impact-full {
    min-height: 76px !important;
}

.highlights-scroll {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scrollbar-width: thin;
    padding: 10px 0 8px;
    scroll-snap-type: x proximity;
}
.highlights-scroll::-webkit-scrollbar { height: 7px; }
.highlights-scroll::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border-radius: 99px;
}
.highlight-result-card {
    flex: 0 0 94%;
    max-width: 455px;
    scroll-snap-align: start;
    padding: 14px;
    border: 1px solid #e2e7ed;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(15,23,42,.05);
}
.highlight-result-card.best { border-top: 3px solid #16a34a; }
.highlight-result-card.worst { border-top: 3px solid #dc2626; }
.highlight-card-top {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    margin-bottom: 10px;
}
.highlight-card-top > div {
    display: flex;
    flex-direction: column;
}
.highlight-impact-badge {
    padding: 5px 8px;
    border-radius: 999px;
    color: #fff;
    font-size: 8px;
    font-weight: 900;
}
.impact-w { background: #16a34a; }
.impact-d { background: #94a3b8; }
.impact-l { background: #dc2626; }
.highlight-matchup {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
    font-size: 10px;
}
.highlight-matchup strong:last-child { text-align: right; }
.highlight-matchup span {
    color: #9ca3af;
    font-size: 8px;
    font-weight: 900;
}
.highlight-teams-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.highlight-team-row {
    min-height: 42px;
    margin-bottom: 5px;
    padding: 7px;
    border-radius: 10px;
    background: #f6f8fb;
}
.highlight-team-row > div {
    display: flex;
    flex-direction: column;
}
.highlight-team-row strong { font-size: 8px; }
.highlight-team-row small,
.highlight-team-row span,
.highlight-team-row b { font-size: 7px; }
.highlight-team-row span,
.highlight-team-row b {
    display: inline-block;
    margin-top: 3px;
}
.highlight-team-row.right { text-align: right; }
.highlight-totals {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 7px;
}
.highlight-totals > div {
    display: grid;
    padding: 8px;
    border-radius: 10px;
    background: #eef2f7;
}
.highlight-totals > div:last-child { text-align: right; }
.highlight-totals span,
.highlight-totals small {
    color: #7c8798;
    font-size: 7px;
    font-weight: 800;
}
.highlight-totals strong { font-size: 11px; }
.highlight-impact-strip {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    margin-top: 8px;
    padding: 10px 8px;
    border-radius: 12px;
    background: #111827;
    color: #fff;
    text-align: center;
}
.highlight-impact-strip > div {
    display: flex;
    flex-direction: column;
}
.highlight-impact-strip strong { font-size: 11px; }
.highlight-impact-strip small {
    margin-top: 3px;
    color: #aeb6c3;
    font-size: 7px;
    font-weight: 900;
}
.highlight-tbc {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 150px;
    color: #94a3b8;
    font-size: 18px;
    font-weight: 900;
}

.league-jump-button { margin-top: 9px; }
.league-record {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start !important;
    gap: 3px !important;
}
.league-movement-line,
.league-wdl-line {
    display: flex;
    align-items: center;
}
.league-wdl-line { gap: 8px; }
.jump-flash { animation: jumpFlash .9s ease; }
@keyframes jumpFlash {
    0%, 100% { box-shadow: none; }
    35% { box-shadow: inset 0 0 0 2px #111827; background: #eef2ff; }
}

.rules-form-button {
    display: block;
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #fff;
    color: #111827;
    text-decoration: none;
    font-size: 10px;
    font-weight: 900;
    text-align: center;
}
.seeded-pots-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin: 12px 0;
}
.seeded-pot,
.small-print-details {
    border: 1px solid #e1e6ec;
    border-radius: 12px;
    background: #f8fafc;
    overflow: hidden;
}
.seeded-pot summary,
.small-print-details summary {
    padding: 10px 12px;
    cursor: pointer;
    list-style: none;
    font-size: 9px;
    font-weight: 900;
}
.seeded-pot summary::-webkit-details-marker,
.small-print-details summary::-webkit-details-marker { display: none; }
.seeded-pot summary::after,
.small-print-details summary::after {
    content: "＋";
    float: right;
    color: #8a94a6;
}
.seeded-pot[open] summary::after,
.small-print-details[open] summary::after { content: "−"; }
.seeded-pot-clubs {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 0 12px 11px;
}
.seeded-pot-clubs span {
    padding-top: 6px;
    border-top: 1px solid #e8ecf1;
    color: #596477;
    font-size: 9px;
}
.small-print-details { margin-top: 12px; }
.small-print-body { padding: 0 12px 10px; }
.small-print-body p { margin-top: 6px; }
.awards-small-print { margin-top: 10px; }

@media (max-width: 390px) {
    .seeded-pots-grid { grid-template-columns: 1fr; }
    .highlight-result-card { flex-basis: 96%; }
}


/* === Stage: share cards and layout refinements === */
.page-profile-button,
.share-card-button { margin-top: 10px; }

/* League: position + movement together, W/D/L under name */
.league-position-block {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 62px;
}
.league-position-block .position { padding-left: 0; }
.league-position-movement .movement { margin: 0; gap: 2px; font-size: 8px; }
.league-position-movement .movement-arrow { font-size: 10px; }
.league-player .league-record { display:block !important; margin-top:6px; }
.league-wdl-line { display:flex !important; gap:10px; }
.league-row { grid-template-columns: 68px minmax(112px,1fr) minmax(120px,1.05fr) 58px !important; }

/* Player teams: subtle seeded-card colour */
.team-card-1 { background:#eef4ff !important; border-color:#d7e4ff !important; }
.team-card-2 { background:#edf9f1 !important; border-color:#d5efdc !important; }
.team-card-3 { background:#fff6e6 !important; border-color:#f5e4bf !important; }
.team-card-4 { background:#f5efff !important; border-color:#e5d9fa !important; }

/* Highlight cards behave like the Next 5 horizontal cards */
.highlights-scroll { gap:10px; scroll-snap-type:x mandatory; padding-right:16px; }
.highlight-result-card { flex:0 0 88%; max-width:none; scroll-snap-align:start; }
.highlight-team-row.result-w { background:#e9f8ef !important; border:1px solid #cbeed6; }
.highlight-team-row.result-d { background:#fff7df !important; border:1px solid #f4e6b4; }
.highlight-team-row.result-l { background:#fdecec !important; border:1px solid #f5cece; }

/* Current leader: three centred columns distributed evenly */
.leader-card {
    grid-template-columns: 1fr 2fr 1fr !important;
    text-align:center !important;
    gap:0 !important;
}
.leader-badge { width:auto !important; justify-self:center; }
.leader-main { text-align:center !important; align-items:center !important; }
.leader-team-list { align-items:center !important; }
.leader-stats { text-align:center !important; align-items:center !important; justify-self:center; }

@media (max-width: 430px) {
    .league-row { grid-template-columns: 62px minmax(105px,1fr) minmax(105px,1fr) 54px !important; padding-left:10px !important; padding-right:10px !important; }
    .league-wdl-line { gap:7px; }
    .highlight-result-card { flex-basis:92%; }
}


/* === Stage: final polish - seeded pairs, leader badge, league position === */
.seeded-pots-grid { align-items: start; }

/* Restore the leader position as a proper square while keeping the centred 3-column layout */
.leader-badge {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px;
    border-radius: 12px;
    justify-self: center;
}

/* League: larger position with movement directly underneath */
.league-position-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 62px;
}
.league-position-block .position {
    padding-left: 0 !important;
    font-size: 18px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
}
.league-position-movement {
    display: flex;
    justify-content: center;
    min-height: 12px;
}
.league-position-movement .movement {
    margin: 0 !important;
    gap: 2px !important;
    font-size: 8px !important;
    line-height: 1 !important;
}
.league-position-movement .movement-arrow { font-size: 9px !important; }


/* === Stage: 14 Aug final UI refinements === */

/* Bottom navigation content sits a touch lower while remaining centred */
.nav-item > span { transform: translateY(1.5px); }

/* Home: primary selector and awards grouped into white cards */
.home-player-selector,
.home-awards-section {
    margin: 14px 16px 0;
    padding: 16px !important;
    background: #fff;
    border: 1px solid #e3e7ec;
    border-radius: 16px;
    box-shadow: 0 5px 16px rgba(15,23,42,.045);
}
.home-player-selector { margin-top: 16px; }
.home-awards-section .award-card:last-child { margin-bottom: 0; }

/* Player profile: clubs and performance are complete white panels */
.profile-teams-section,
.profile-performance-section {
    margin: 14px 16px 0;
    padding: 16px !important;
    background: #fff;
    border: 1px solid #e3e7ec;
    border-radius: 16px;
    box-shadow: 0 5px 16px rgba(15,23,42,.045);
}
.profile-teams-section .team-card,
.profile-performance-section .stat-card,
.profile-performance-section .form-stream {
    box-shadow: none;
}

/* All Results: around three rows visible */
.season-results-list { max-height: 178px !important; }

/* League alignment: larger visual breathing room at points edge;
   position centred vertically, movement tucked into lower-left. */
.league-row {
    grid-template-columns: 58px minmax(112px,1fr) minmax(120px,1.05fr) 64px !important;
    padding-left: 8px !important;
    padding-right: 15px !important;
}
.league-position-block {
    position: relative;
    display: block !important;
    width: 54px;
    min-width: 54px !important;
    height: 54px;
    transform: translateX(-3px);
}
.league-position-block .position {
    position: absolute;
    left: 47%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: 20px !important;
    line-height: 1 !important;
}
.league-position-movement {
    position: absolute;
    left: 0;
    bottom: 1px;
    display: block !important;
    min-height: 0 !important;
}
.league-position-movement .movement {
    font-size: 8px !important;
}
.league-stats {
    justify-self: end !important;
    padding-right: 3px;
}

@media (max-width: 430px) {
    .league-row {
        grid-template-columns: 54px minmax(102px,1fr) minmax(102px,1fr) 58px !important;
        padding-left: 7px !important;
        padding-right: 13px !important;
    }
    .league-position-block { width: 50px; min-width: 50px !important; transform: translateX(-3px); }
}

/* === Stage: dynamic profile badges + final requested polish === */

/* Profile badges live inside Current Performance and always show as three equal tiles. */
.profile-badges-block {
    margin-top: 12px;
    padding-top: 11px;
    border-top: 1px solid #edf0f3;
}
.badge-row-label {
    display: block;
    margin-bottom: 7px;
    text-align: center;
}
.profile-badges-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}
.profile-badge {
    min-width: 0;
    min-height: 58px;
    padding: 8px 5px;
    border: 1px solid #e1e6ec;
    border-radius: 12px;
    background: #f8fafc;
    color: #172033;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    cursor: pointer;
    text-align: center;
}
.profile-badge:active { transform: scale(.985); }
.profile-badge-emoji {
    font-size: 17px;
    line-height: 1;
}
.profile-badge strong {
    max-width: 100%;
    font-size: 8px;
    line-height: 1.15;
    font-weight: 900;
}

.badge-popup-overlay {
    position: fixed;
    inset: 0;
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background: rgba(15,23,42,.36);
    backdrop-filter: blur(3px);
}
.badge-popup-card {
    position: relative;
    width: min(100%, 330px);
    padding: 22px 20px 20px;
    border: 1px solid #e1e6ec;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 20px 55px rgba(15,23,42,.20);
    text-align: center;
}
.badge-popup-emoji {
    margin-bottom: 8px;
    font-size: 34px;
    line-height: 1;
}
.badge-popup-card h3 {
    margin: 0;
    color: #172033;
    font-size: 16px;
}
.badge-popup-card p {
    margin-top: 8px;
    color: #596477;
    font-size: 11px;
    line-height: 1.5;
}
.badge-popup-close {
    position: absolute;
    top: 9px;
    right: 10px;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #f1f4f7;
    color: #64748b;
    font-size: 19px;
    line-height: 1;
    cursor: pointer;
}

/* League: retain the position location, but centre the movement directly underneath it. */
.league-position-movement {
    left: 47% !important;
    bottom: 1px !important;
    transform: translateX(-50%);
    width: auto !important;
    text-align: center;
}
.league-position-movement .movement.same {
    gap: 0 !important;
    min-width: 0 !important;
}
.league-position-movement .movement.same .movement-arrow {
    display: inline-block;
    width: auto !important;
    font-size: 9px !important;
    line-height: 1 !important;
}

/* All Results: keep the compact status position, but use clear WIN / DRAW / LOSS colour pills. */
.season-result-status {
    min-width: 30px;
    padding: 4px 5px;
    border-radius: 999px;
    text-align: center;
    color: #fff !important;
    line-height: 1 !important;
}
.season-result-status.result-w { background: #16a34a; }
.season-result-status.result-d { background: #94a3b8; }
.season-result-status.result-l { background: #dc2626; }

/* Back buttons: still subtle, but now clearly actionable. */
.back-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 7px 11px !important;
    border: 1px solid #dfe4ea !important;
    border-radius: 10px;
    background: #fff !important;
    color: #4b5563 !important;
    box-shadow: 0 3px 9px rgba(15,23,42,.045);
}
.back-button:hover { background: #f8fafc !important; }

@media (max-width: 390px) {
    .profile-badges-row { gap: 5px; }
    .profile-badge { padding-left: 3px; padding-right: 3px; }
    .profile-badge strong { font-size: 7.5px; }
}


/* === League position/movement alignment polish === */
.league-position-block {
    position: relative !important;
}
.league-position-movement {
    left: 47% !important;
    right: auto !important;
    bottom: 1px !important;
    width: auto !important;
    min-width: 0 !important;
    transform: translateX(-50%) !important;
    text-align: center !important;
}
.league-position-movement .movement {
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    white-space: nowrap !important;
}
.league-position-movement .movement.same {
    width: auto !important;
    min-width: 0 !important;
    gap: 0 !important;
}
.league-position-movement .movement.same .movement-arrow {
    width: auto !important;
    min-width: 0 !important;
    font-size: 9px !important;
}


/* === Definitive league movement centring fix ===
   Span the full position column, then centre the movement inside it. */
.league-position-movement {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    transform: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    pointer-events: none;
}

.league-position-movement .movement {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    gap: 2px !important;
}

.league-position-movement .movement.same {
    width: auto !important;
    min-width: 0 !important;
    gap: 0 !important;
}

.league-position-movement .movement.same .movement-arrow {
    display: inline !important;
    width: auto !important;
    min-width: 0 !important;
    letter-spacing: 0 !important;
}


/* === Final Home consistency: Current Leader + This Week in full white panels === */
.home-leader-section,
.home-this-week-section {
    margin: 14px 16px 0;
    padding: 16px !important;
    background: #ffffff;
    border: 1px solid #e3e7ec;
    border-radius: 16px;
    box-shadow: 0 5px 16px rgba(15,23,42,.045);
}

.home-leader-section .leader-card {
    margin-top: 0;
}

.home-this-week-section .update-card:last-child {
    margin-bottom: 0;
}

.home-leader-section .section-heading,
.home-this-week-section .section-heading {
    margin-bottom: 12px;
}


/* =========================================================
   REGISTRATION LANDING PAGE
========================================================= */

.registration-page {
    padding: 12px 16px 38px;
}

.registration-example-button,
.registration-close-bottom {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    width: 100%;
    padding: 11px 14px;

    border: 1px solid #dfe4ea;
    border-radius: 13px;

    background: #ffffff;
    color: #111827;

    font-size: 11px;
    font-weight: 900;

    cursor: pointer;
}

.registration-example-button {
    margin-bottom: 10px;
}

.registration-close-bottom {
    margin-top: 12px;
}

.registration-example-button small,
.registration-close-bottom small {
    display: block;
    margin-top: 3px;

    color: #8a94a6;

    font-size: 8px;
    font-weight: 700;
}

.registration-hero {
    position: relative;

    padding: 23px 18px 19px;

    background: #111827;
    border-radius: 17px;

    color: #ffffff;

    box-shadow:
        0 8px 22px rgba(15,23,42,.12);
}

.registration-open-pill {
    display: inline-flex;
    align-items: center;

    padding: 5px 8px;
    margin-bottom: 14px;

    background: rgba(34,197,94,.14);
    border: 1px solid rgba(74,222,128,.25);
    border-radius: 999px;

    color: #86efac;

    font-size: 8px;
    font-weight: 900;
    letter-spacing: .7px;
}

.registration-hero h1 {
    margin: 0;

    font-size: 27px;
    line-height: 1.1;
    letter-spacing: -.55px;
}

.registration-hero p {
    max-width: 390px;
    margin-top: 9px;

    color: #cbd2dc;

    font-size: 10.5px;
    line-height: 1.5;
}

.registration-enter-button {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 45px;

    margin-top: 16px;
    padding: 12px 14px;

    border-radius: 12px;

    background: #ffffff;
    color: #111827;

    font-size: 11px;
    font-weight: 900;

    text-decoration: none;
}

.registration-section-card {
    margin-top: 12px;
}

.registration-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;

    margin-top: 12px;
}

.registration-steps > div {
    position: relative;

    min-width: 0;
    padding: 11px 4px;

    border: 1px solid #e2e6eb;
    border-radius: 11px;

    background: #f8fafc;

    text-align: center;
}

.registration-steps > div:not(:last-child)::after {
    content: "›";

    position: absolute;
    top: 50%;
    right: -7px;

    z-index: 2;

    transform: translateY(-50%);

    color: #a4adba;

    font-size: 14px;
    font-weight: 900;
}

.registration-steps strong {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 25px;
    height: 25px;

    margin: 0 auto 6px;

    border-radius: 8px;

    background: #111827;
    color: #ffffff;

    font-size: 10px;
}

.registration-steps span {
    display: block;

    min-height: 20px;

    color: #344054;

    font-size: 8px;
    font-weight: 900;
    line-height: 1.2;
}

.registration-summary-grid {
    margin-top: 12px;
    margin-bottom: 0;
}

.registration-club-flow {
    display: grid;
    grid-template-columns:
        1fr auto
        1fr auto
        1fr auto
        1fr;

    align-items: center;
    gap: 5px;

    margin: 12px 0;
}

.registration-club-flow span {
    padding: 10px 3px;

    border: 1px solid #e1e5ea;
    border-radius: 10px;

    background: #f8fafc;

    color: #111827;

    font-size: 8px;
    font-weight: 900;
    text-align: center;
}

.registration-club-flow b {
    color: #9aa4b2;
    font-size: 10px;
}

.registration-prize-grid {
    margin-top: 12px;
}

.registration-awards-note {
    display: flex;
    flex-direction: column;
    gap: 3px;

    margin-top: 12px;
    padding: 12px;

    border-radius: 11px;

    background: #f5f7fa;

    text-align: center;
}

.registration-awards-note strong {
    color: #111827;
    font-size: 10px;
}

.registration-awards-note span {
    color: #778294;
    font-size: 8.5px;
    line-height: 1.4;
}

.registration-final-card {
    margin-top: 12px;
    padding: 18px;

    border: 1px solid #e1e5ea;
    border-radius: 15px;

    background: #ffffff;

    text-align: center;
}

.registration-final-card .eyebrow {
    text-align: center;
}

.registration-final-card h2 {
    font-size: 18px;
}

.registration-final-card p {
    max-width: 390px;
    margin: 7px auto 0;
}

.registration-enter-bottom {
    background: #111827;
    color: #ffffff;
}

@media (max-width: 380px) {

    .registration-steps {
        gap: 4px;
    }

    .registration-steps > div {
        padding-left: 2px;
        padding-right: 2px;
    }

    .registration-steps span {
        font-size: 7.4px;
    }

    .registration-club-flow {
        gap: 3px;
    }

}


/* === Registration V2 polish === */

.registration-example-button,
.registration-close-bottom {
    min-height: 44px;
    line-height: 1.3;
}

.registration-awards-detail {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #e7e9ed;
}

.registration-awards-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.registration-awards-heading .eyebrow {
    margin: 0;
}

.registration-awards-heading > strong {
    color: #111827;
    font-size: 17px;
    font-weight: 900;
}



/* === Registration V4: make example-app CTA stand out === */
.registration-example-button,
.registration-close-bottom {
    background: #111827 !important;
    color: #ffffff !important;
    border-color: #111827 !important;
    box-shadow: 0 5px 14px rgba(15,23,42,.14);
}

.registration-example-button:hover,
.registration-close-bottom:hover {
    background: #1f2937 !important;
}



/* === Registration V5: H2H example uses the actual Results-tab components === */
.registration-h2h-example {
    margin-top: 12px;
    border: 1px solid #e1e5ea;
    border-radius: 12px;
    background: #ffffff;
    overflow: hidden;
}

.registration-h2h-example > summary {
    padding: 12px 13px;
    cursor: pointer;
    list-style: none;
    color: #111827;
    font-size: 9px;
    font-weight: 900;
}

.registration-h2h-example > summary::-webkit-details-marker {
    display: none;
}

.registration-h2h-example > summary::after {
    content: "+";
    float: right;
    color: #8a94a6;
    font-size: 13px;
    line-height: 1;
}

.registration-h2h-example[open] > summary::after {
    content: "−";
}

.registration-results-example-wrap {
    padding: 10px;
    border-top: 1px solid #eef0f3;
    background: #f5f7fa;
}

.registration-results-example-wrap .result-detail-card {
    margin: 0;
}

/* Keep the registration example compact enough for the narrower embedded area
   without changing any of the Results component styling itself. */
.registration-results-example-wrap .result-matchup h2 {
    font-size: 16px;
}


/* =========================================================
   HOME ACTIONS + TEAM ALLOCATION REVEAL
========================================================= */

.home-action-tiles {
    display: grid;
    gap: 10px;
    margin: 12px 16px 0;
}

.home-action-tile {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    padding: 17px 18px;
    border: 0;
    border-radius: 16px;
    color: #ffffff;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 7px 20px rgba(15, 23, 42, .12);
}

.registration-action-tile {
    background: linear-gradient(135deg, #111827 0%, #253247 100%);
}

.teams-action-tile {
    background: linear-gradient(135deg, #075985 0%, #0284c7 100%);
}

.home-action-tile span {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.home-action-tile small {
    color: rgba(255, 255, 255, .7);
    font-size: 7.5px;
    font-weight: 900;
    letter-spacing: .9px;
}

.home-action-tile strong {
    font-size: 16px;
    font-weight: 900;
    letter-spacing: -.2px;
}

.home-action-tile em {
    color: rgba(255, 255, 255, .76);
    font-size: 9px;
    font-style: normal;
    font-weight: 700;
}

.home-action-tile b {
    flex: 0 0 auto;
    font-size: 17px;
}

.teams-action-locked {
    cursor: not-allowed;
    filter: saturate(.72);
    opacity: .82;
}

.teams-action-locked b {
    font-size: 15px;
}

.teams-title-banner {
    margin-bottom: 0;
}

.teams-page {
    padding: 12px 16px 38px;
}

.teams-back-button {
    width: 100%;
    min-height: 42px;
    padding: 10px 14px;
    border: 1px solid #dfe4ea;
    border-radius: 12px;
    background: #ffffff;
    color: #111827;
    font-size: 10px;
    font-weight: 900;
    cursor: pointer;
}

.teams-reveal-hero {
    margin-top: 10px;
    padding: 22px 19px;
    border-radius: 17px;
    background: linear-gradient(135deg, #075985 0%, #0284c7 100%);
    color: #ffffff;
    box-shadow: 0 8px 22px rgba(2, 132, 199, .18);
}

.teams-reveal-hero h1 {
    margin: 4px 0 7px;
    font-size: 25px;
    line-height: 1.1;
}

.teams-reveal-hero p {
    max-width: 390px;
    margin: 0;
    color: rgba(255, 255, 255, .82);
    font-size: 10px;
    line-height: 1.5;
}

.teams-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
    margin-top: 10px;
}

.teams-prize-card {
    margin-top: 10px;
    padding: 16px;
    border: 1px solid #dfe5eb;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 5px 16px rgba(15, 23, 42, .045);
}

.teams-prize-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}

.teams-prize-heading h2 {
    margin: 3px 0 0;
    font-size: 18px;
}

.teams-prize-heading > span {
    color: #64748b;
    font-size: 8px;
    font-weight: 900;
    text-transform: uppercase;
}

.teams-prize-headline {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-top: 12px;
}

.teams-prize-headline > div {
    padding: 13px 10px;
    border-radius: 12px;
    background: #111827;
    color: #ffffff;
    text-align: center;
}

.teams-prize-headline > div:last-child {
    background: #eaf8ef;
    color: #17653a;
}

.teams-prize-headline strong,
.teams-prize-headline span {
    display: block;
}

.teams-prize-headline strong {
    font-size: 20px;
}

.teams-prize-headline span {
    margin-top: 2px;
    font-size: 7.5px;
    font-weight: 900;
    text-transform: uppercase;
}

.teams-prize-card h3 {
    margin: 15px 0 0;
    color: #475569;
    font-size: 8px;
    letter-spacing: .45px;
    text-transform: uppercase;
}

.teams-prize-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.teams-summary-grid > div {
    padding: 12px 4px 10px;
    border: 1px solid #e2e7ec;
    border-radius: 12px;
    background: #ffffff;
    text-align: center;
}

.teams-summary-grid strong,
.teams-summary-grid span {
    display: block;
}

.teams-summary-grid strong {
    color: #111827;
    font-size: 16px;
    font-weight: 900;
}

.teams-summary-grid span {
    margin-top: 2px;
    color: #778294;
    font-size: 7px;
    font-weight: 800;
}

.teams-section-card {
    margin-top: 12px;
    padding: 16px;
    border: 1px solid #e3e7ec;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 5px 16px rgba(15, 23, 42, .045);
}

.teams-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.teams-section-heading h2 {
    margin: 3px 0 0;
    font-size: 17px;
}

.teams-player-count {
    color: #64748b;
    font-size: 8px;
    font-weight: 800;
    white-space: nowrap;
}

.teams-player-list {
    display: grid;
    gap: 9px;
}

.teams-player-card {
    overflow: hidden;
    border: 1px solid #e4e8ed;
    border-radius: 13px;
    background: #f8fafc;
}

.teams-player-name {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 12px 8px;
}

.teams-player-name span {
    display: grid;
    place-items: center;
    width: 23px;
    height: 23px;
    border-radius: 7px;
    background: #111827;
    color: #ffffff;
    font-size: 7px;
    font-weight: 900;
}

.teams-player-name strong {
    color: #111827;
    font-size: 12px;
    font-weight: 900;
}

.teams-club-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid #e4e8ed;
    background: #ffffff;
}

.teams-club-grid > div {
    min-width: 0;
    padding: 9px 5px 10px;
    text-align: center;
}

.teams-club-grid > div + div {
    border-left: 1px solid #edf0f3;
}

.teams-club-grid small,
.teams-club-grid strong {
    display: block;
}

.teams-club-grid small {
    margin-bottom: 3px;
    color: #94a3b8;
    font-size: 6px;
    font-weight: 900;
    letter-spacing: .25px;
}

.teams-club-grid strong {
    overflow-wrap: anywhere;
    color: #1f2937;
    font-size: 8.5px;
    font-weight: 900;
    line-height: 1.2;
}

.teams-analysis-copy {
    margin: -4px 0 13px;
    color: #778294;
    font-size: 9px;
    line-height: 1.45;
}

.teams-frequency-list {
    display: grid;
    gap: 9px;
}

.teams-frequency-row {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr) 22px;
    align-items: center;
    gap: 9px;
}

.teams-frequency-row > strong {
    overflow: hidden;
    color: #1f2937;
    font-size: 8.5px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.teams-frequency-row > span {
    color: #111827;
    font-size: 9px;
    font-weight: 900;
    text-align: right;
}

.teams-frequency-track {
    height: 7px;
    overflow: hidden;
    border-radius: 99px;
    background: #e8edf2;
}

.teams-frequency-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #0284c7, #38bdf8);
}

.teams-back-bottom {
    margin-top: 12px;
}

@media (max-width: 380px) {
    .teams-page { padding-left: 12px; padding-right: 12px; }
    .teams-section-card { padding: 12px; }
    .teams-club-grid strong { font-size: 7.7px; }
    .teams-frequency-row { grid-template-columns: 72px minmax(0, 1fr) 19px; gap: 7px; }
}

/* =========================================================
   V25 R3 — LIVE FLOW, AUTOSAVE ADMIN & FORECAST ACCURACY
========================================================= */
#app.v25-admin-app{max-width:720px}
.v25-admin{max-width:680px}
.v25-admin-nav>div{display:flex;gap:6px}
.v25-admin-hero{grid-template-columns:1fr auto}
.v25-toolbar{grid-template-columns:1fr;align-items:stretch}
.v25-toolbar label{padding:0}
.v25-toolbar label span{font-size:10px}
.v25-toolbar select{width:82px}
.v25-admin-tabs{grid-column:auto}
.v25-admin-list{grid-template-columns:1fr}
.v25-score-row{grid-template-columns:1fr;align-items:stretch}
.v25-score-inputs{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8px}
.v25-score-inputs>label{display:grid;gap:5px;text-align:center}
.v25-score-inputs>label span{overflow:hidden;color:#66758a;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.v25-score-row input{width:100%;font-size:22px}
.v25-score-row select{min-height:40px;font-size:12px}
.v25-odds-grid{grid-template-columns:1fr}
.v25-odds-grid input{min-height:43px;font-size:16px}
.v25-match-editor footer{align-items:center}
.v25-saved-label{margin-right:auto;color:#6c7a8d;font-size:9px;font-weight:800}
.v25-autosave-state{display:flex;justify-content:space-between;gap:10px;margin:10px 0 6px;padding:9px 11px;border:1px solid #cce9df;border-radius:10px;background:#ecfaf5;color:#08755e}
.v25-autosave-state span{font-size:9px;font-weight:900;text-transform:uppercase}.v25-autosave-state small{font-size:9px;text-align:right}
.v25-admin-flash{margin:10px 0;padding:9px 11px;border-radius:9px;background:#142441;color:#fff;font-size:10px;font-weight:800}
.v25-forecast-insights{grid-template-columns:repeat(3,1fr)}
.v25-forecast-analysis{margin-top:12px;padding:11px;border-left:4px solid #16a085;border-radius:10px;background:#eaf8f4}
.v25-forecast-analysis.pending{border-color:#8c9aae;background:#eef2f6}.v25-forecast-analysis.miss{border-color:#e44b6f;background:#fff0f3}
.v25-forecast-analysis>div{display:flex;justify-content:space-between;gap:10px;align-items:center}.v25-forecast-analysis span{font-size:9px;font-weight:900;text-transform:uppercase}.v25-forecast-analysis strong{font-size:14px}.v25-forecast-analysis p{margin:7px 0 4px;color:#405067;font-size:10px;line-height:1.45}.v25-forecast-analysis small{display:block;color:#6b788a;font-size:9px;line-height:1.4}
.v25-header-draw strong{font-size:26px}.v25-header-draw strong i{font-size:12px;font-style:normal;opacity:.65}.v25-header-draw small{font-size:8px}
.v25-sort-controls{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:0 0 10px;padding:8px 10px;border:1px solid #e0e6ed;border-radius:10px;background:#f7f9fb}.v25-sort-controls>span{color:#66758a;font-size:9px;font-weight:900;text-transform:uppercase}.v25-sort-controls>div{display:flex;gap:5px}.v25-sort-controls button{border:1px solid #d8e0e9;border-radius:8px;background:#fff;padding:7px 10px;color:#526176;font-size:9px;font-weight:900;cursor:pointer}.v25-sort-controls button.active{border-color:#ed2554;background:#ed2554;color:#fff}
.v25-week-hub{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;margin:14px 16px;padding:15px 17px;border:1px solid #dce4ed;border-radius:16px;background:#fff}.v25-week-hub.live{border-color:#f0d28d;background:#fff8e8}.v25-week-hub.final{border-color:#bfe4d6;background:#ecfaf5}.v25-week-hub span{color:#66758a;font-size:9px;font-weight:900;letter-spacing:.05em}.v25-week-hub strong{display:block;margin:3px 0;font-size:17px}.v25-week-hub p{margin:0;color:#637186;font-size:10px;line-height:1.4}.v25-week-hub>div:last-child{display:grid;gap:6px}.v25-week-hub button,.v25-week-progress button{border:1px solid #d9e1ea;border-radius:9px;background:#fff;padding:8px 10px;color:#20304a;font-size:9px;font-weight:900;cursor:pointer}.v25-week-hub button:first-child{border-color:#ed2554;background:#ed2554;color:#fff}
.v25-week-progress>div{margin-top:12px;padding:20px;border-radius:15px;background:#eef2f6;text-align:center}.v25-week-progress>div strong{display:block;font-size:15px}.v25-week-progress>div p{margin:6px 0 12px;color:#66758a;font-size:10px}
.v25-page-flow{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 12px;padding:9px 11px;border-radius:10px;background:#eef2f6;color:#59697e}.v25-page-flow.live{background:#fff3d6;color:#855d00}.v25-page-flow.final{background:#dff7ec;color:#08754c}.v25-page-flow.next{background:#edf4ff;color:#315b90}.v25-page-flow strong{font-size:9px;text-transform:uppercase}.v25-page-flow span{font-size:9px;text-align:right}

@media(max-width:600px){
    .v25-admin{padding-left:11px;padding-right:11px}
    .v25-admin-hero{grid-template-columns:1fr;padding:16px}
    .v25-current-week{min-width:0;text-align:left}
    .v25-current-week span,.v25-current-week strong{display:inline;margin-right:7px}
    .v25-admin-nav{align-items:stretch;flex-direction:column}.v25-admin-nav>div{display:grid;grid-template-columns:1fr 1fr}.v25-admin-nav button{width:100%;margin:0}
    .v25-toolbar{grid-template-columns:1fr}.v25-toolbar label,.v25-set-current,.v25-admin-tabs{grid-column:1}
    .v25-bulk{display:grid;grid-template-columns:1fr}.v25-bulk button,.v25-bulk .danger{width:100%;margin:0}
    .v25-match-editor header{align-items:flex-start;flex-direction:column}.v25-match-editor header strong{text-align:left}
    .v25-score-row{grid-template-columns:1fr}.v25-score-row label:last-child{grid-column:auto}
    .v25-match-editor footer{justify-content:space-between}.v25-match-editor footer button{min-height:36px}
    .v25-autosave-state{align-items:flex-start;flex-direction:column}.v25-autosave-state small{text-align:left}
    .v25-week-hub{grid-template-columns:1fr;margin-left:12px;margin-right:12px}.v25-week-hub>div:last-child{grid-template-columns:1fr 1fr}
    .v25-page-flow{align-items:flex-start;flex-direction:column}.v25-page-flow span{text-align:left}
}

@media(max-width:390px){.v25-week-hub>div:last-child{grid-template-columns:1fr}.v25-sort-controls{align-items:flex-start;flex-direction:column}.v25-sort-controls>div{width:100%}.v25-sort-controls button{flex:1}.v25-forecast-analysis>div{align-items:flex-start;flex-direction:column;gap:3px}}

/* =========================================================
   V25 R4 — TWO-STATE FLOW & PROGRESSIVE PROFILE DETAIL
========================================================= */
.v25-admin-nav{display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch;gap:7px}
.v25-admin-nav button,.v25-admin-nav .back-button{width:100%;height:36px;margin:0;display:flex;align-items:center;justify-content:center;text-align:center}
.v25-admin-hero{margin:10px 0 9px;padding:17px 19px}
.v25-toolbar{grid-template-columns:1fr 1fr;align-items:stretch}
.v25-toolbar label,.v25-set-current{min-height:38px}.v25-admin-tabs{grid-column:1/-1}
.v25-score-row{gap:9px;padding:11px 0 9px}
.v25-score-inputs{grid-template-columns:1fr 1fr;gap:8px}
.v25-match-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.v25-match-controls label{display:grid;gap:4px;min-width:0;color:#536277;font-size:8px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.v25-match-controls select{width:100%;min-width:0}
.v25-admin-status span{text-transform:none}
.v25-bulk{align-items:stretch}.v25-bulk button{min-height:34px}

.rules-entry-wrap{margin-top:12px;margin-bottom:8px}.rules-entry-wrap .rules-entry-button{margin-top:0}
.v25-week-hub{display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch;margin:13px 16px;padding:15px 16px}
.v25-week-hub-head{display:flex!important;align-items:center;gap:8px}.v25-week-hub-head strong{margin:0;font-size:16px}
.v25-status-dot{width:9px;height:9px;border-radius:50%;background:#e3a426;box-shadow:0 0 0 4px rgba(227,164,38,.14)}
.v25-week-hub.final .v25-status-dot{background:#16a085;box-shadow:0 0 0 4px rgba(22,160,133,.14)}
.v25-week-hub p{font-size:10px;line-height:1.5}
.v25-week-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:7px}
.v25-week-actions button{min-height:38px}
.v25-admin-entry{padding-top:6px!important;padding-bottom:12px!important}.v25-admin-entry button{min-height:46px;padding:11px 16px;border-radius:13px}.v25-admin-entry strong{font-size:14px}.v25-admin-entry b{font-size:14px}

.v25-league-state{display:inline-flex;align-items:center;gap:5px;margin:2px 0 12px;padding:6px 9px;border-radius:8px;background:#fff3d6;color:#855d00;text-transform:uppercase}
.v25-league-state span{font-size:9px}.v25-league-state strong{font-size:9px;letter-spacing:.06em}.v25-league-state small{font-size:8px;opacity:.75}
.v25-league-state.final{background:#dff7ec;color:#08754c}

.v25-pred-head{display:block;padding-bottom:6px;border-bottom:1px solid #e2e8ef}.v25-pred-head span{font-size:9px;font-weight:900;letter-spacing:.06em}
.v25-pred-summary{display:flex;justify-content:space-between;gap:8px;align-items:baseline;padding-top:9px}.v25-pred-summary strong{font-size:14px}.v25-pred-summary span{color:#ed2554;font-size:9px;font-weight:800;text-align:right}
.v25-projected .leading{background:#e3f6ef;box-shadow:inset 0 0 0 1px #bfe7d8}.v25-projected .leading strong{color:#08755e}
.v25-projected .trailing{background:#fff0f3;box-shadow:inset 0 0 0 1px #f3cbd5}.v25-projected .trailing strong{color:#b52143}
.v25-projected .level{background:#eef3f8}.v25-forecast-insights span{font-size:7.5px;line-height:1.25}
.v25-forecast-analysis{display:grid;gap:8px;padding:10px}
.v25-analysis-verdict{display:flex;justify-content:space-between;gap:10px;align-items:center}.v25-analysis-verdict span{font-size:8px;font-weight:900;text-transform:uppercase}.v25-analysis-verdict strong{font-size:13px}
.v25-accuracy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.v25-accuracy-grid div{min-width:0;padding:7px 5px;border-radius:7px;background:rgba(255,255,255,.72);text-align:center}.v25-accuracy-grid span,.v25-accuracy-grid strong{display:block}.v25-accuracy-grid span{color:#718096;font-size:7px;text-transform:uppercase}.v25-accuracy-grid strong{margin-top:3px;overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.v25-forecast-analysis>small{margin:0;text-align:center;font-size:8px}
.v25-forecast-analysis.pending{display:block}.v25-forecast-analysis.pending>div{display:flex;justify-content:space-between;gap:8px;align-items:center}

.v25-profile-view-toggle{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:12px 16px 2px;padding:4px;border:1px solid #dce3ec;border-radius:13px;background:#e9eef4}
.v25-profile-view-toggle button{min-height:39px;border:0;border-radius:10px;background:transparent;color:#647286;font-size:10px;font-weight:900;cursor:pointer;transition:.18s ease}
.v25-profile-view-toggle button.active{background:#fff;color:#172033;box-shadow:0 4px 13px rgba(30,45,65,.13)}
.v25-profile-basic .v25-advanced-only{display:none!important}
.v25-profile-forecast-panel{margin-top:11px;overflow:hidden;border:1px solid #dce3ec;border-radius:14px;background:#fff}
.v25-profile-forecast-panel>summary,.v25-profile-forecast-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 13px;cursor:pointer;list-style:none}.v25-profile-forecast-panel>summary::-webkit-details-marker{display:none}
.v25-profile-forecast-panel>summary span,.v25-profile-forecast-heading span{font-size:11px;font-weight:900}.v25-profile-forecast-panel>summary b,.v25-profile-forecast-heading b{color:#ed2554;font-size:8px;text-transform:uppercase}
.v25-profile-forecast-panel .v25-prediction{margin:0;border:0;border-top:1px solid #e5eaf0;border-radius:0}
.v25-profile-forecast-panel.open{padding-bottom:0}.v25-profile-forecast-panel.open .v25-profile-forecast-heading{background:#f6f8fb}
.v25-profile-live-tag,.v25-profile-final-tag{justify-self:start;padding:4px 7px;border-radius:7px;font-size:8px;font-weight:900;letter-spacing:.04em}.v25-profile-live-tag{background:#fff3d6;color:#855d00}.v25-profile-final-tag{background:#dff7ec;color:#08754c}

.v25-dialog.analysis{padding:20px}.v25-analysis-header{padding:0 28px 14px 0;border-bottom:1px solid #e9edf2}.v25-analysis-header h2{margin:3px 0 5px}.v25-analysis-header p{margin:0;color:#67768a;font-size:11px;line-height:1.45}
.v25-dialog.analysis>.v25-analysis-grid{margin:13px 0}.v25-dialog.analysis>.v25-analysis-grid div{min-height:70px}
.v25-dialog.analysis>section{margin:10px 0;padding:13px;border:0;border-radius:12px;background:#f6f8fa}
.v25-analysis-section-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-end}.v25-analysis-section-title h3{margin:2px 0 0}.v25-analysis-section-title>strong{font-size:18px}
.v25-team-form-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;margin-top:12px}.v25-team-form-row>.form-stream-results{justify-content:flex-start}.v25-team-form-row>div:not(:first-child){min-width:48px;padding:7px;border-radius:8px;background:#fff;text-align:center}.v25-team-form-row>div:not(:first-child) strong,.v25-team-form-row>div:not(:first-child) span{display:block}.v25-team-form-row>div:not(:first-child) span{color:#78869a;font-size:7px;text-transform:uppercase}
.v25-position-spread .v25-strip{margin:18px 8px 15px}
.v25-analysis-details{margin-top:12px;border:1px solid #dce3eb;border-radius:13px;background:#fff}.v25-analysis-details>summary{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:13px 14px;cursor:pointer;list-style:none}.v25-analysis-details>summary::-webkit-details-marker{display:none}.v25-analysis-details>summary span{font-size:10px;font-weight:900}.v25-analysis-details>summary b{color:#ed2554;font-size:8px;text-transform:uppercase}.v25-analysis-details>div{padding:0 14px 14px}.v25-analysis-details section{padding:13px 0;border-top:1px solid #ebeff4;border-bottom:0}.v25-analysis-details section h3{margin:0 0 8px}.v25-owner-list{display:flex;flex-wrap:wrap;gap:6px}.v25-owner-list span{padding:6px 8px;border-radius:8px;background:#eef3f8;color:#536277;font-size:9px}.v25-owner-list b{color:#172033}

@media(max-width:600px){
    .v25-admin-nav{grid-template-columns:repeat(3,1fr);flex-direction:initial}.v25-admin-nav button{padding:7px 4px;font-size:9px}
    .v25-toolbar{grid-template-columns:1fr 1fr}.v25-toolbar label,.v25-set-current{grid-column:auto}.v25-admin-tabs{grid-column:1/-1}
    .v25-match-controls{grid-template-columns:1fr 1fr}.v25-score-row label:last-child{grid-column:auto}
    .v25-week-actions{grid-template-columns:1fr}.v25-week-hub{margin-left:12px;margin-right:12px}
    .v25-pred-summary{align-items:flex-start;flex-direction:column;gap:3px}.v25-pred-summary span{text-align:left}
    .v25-accuracy-grid{grid-template-columns:1fr 1fr}.v25-accuracy-grid strong{white-space:normal}
    .v25-profile-view-toggle{margin-left:12px;margin-right:12px}
    .v25-dialog.analysis{padding:17px 14px}.v25-dialog.analysis>.v25-analysis-grid{grid-template-columns:1fr 1fr}.v25-team-form-row{grid-template-columns:1fr auto auto}
}

@media(max-width:370px){.v25-match-controls{gap:6px}.v25-match-controls select{font-size:9px}.v25-team-form-row{grid-template-columns:1fr 1fr}.v25-team-form-row>.form-stream-results{grid-column:1/-1}.v25-analysis-section-title{align-items:flex-start;flex-direction:column;gap:4px}}

/* =========================================================
   V25 R5 — SPACING, FORECAST, PROFILE & ANALYSIS REFINEMENT
========================================================= */
.v25-week-hub{gap:13px}
.v25-week-hub-head{gap:12px}
.v25-week-hub p{margin:0}
.v25-week-actions{align-items:stretch}
.v25-week-actions button{height:40px;min-height:40px;padding:8px 10px}
.v25-admin-entry{margin-top:10px!important;padding-top:10px!important}

.league-scroll-list{max-height:410px}
.v25-league-state{margin-top:9px;margin-bottom:12px}
.season-result-status.result-live{border:1px solid #e3b544!important;background:#ffdc7a!important;color:#674800!important;box-shadow:0 2px 7px rgba(177,123,0,.13)}

.v25-pred-summary span{color:#526b8a}
.v25-problabel span{color:#718096}
.v25-problabel b{font-weight:900}
.v25-problabel span:first-child b{color:#07846f}
.v25-problabel span:last-child b{color:#c62b52}
.v25-forecast-insights{display:none!important}
.v25-forecast-analysis.pending{padding:8px 10px;border:0;background:#f4f6f8;color:#8792a2;text-align:center}
.v25-forecast-analysis.pending small{font-size:8px;font-weight:700}
.v25-accuracy-grid{grid-template-columns:repeat(3,1fr)}
.v25-accuracy-grid .margin-better{background:#dff6ec}
.v25-accuracy-grid .margin-better strong,.v25-accuracy-grid .margin-better small{color:#08754c}
.v25-accuracy-grid .margin-worse{background:#fff0f3}
.v25-accuracy-grid .margin-worse strong,.v25-accuracy-grid .margin-worse small{color:#b52143}
.v25-accuracy-grid .margin-level{background:#eef2f6}
.v25-accuracy-grid div>small{display:block;margin-top:2px;font-size:6.5px;line-height:1.15}

.v25-header-draw strong{display:flex;align-items:baseline;gap:2px}
.v25-header-draw strong i{font-size:10px;color:rgba(255,255,255,.48);font-style:normal}
.v25-header-draw strong em{margin-left:3px;font-size:12px;color:rgba(255,255,255,.66);font-style:normal}
.profile-performance-section{position:relative}
.v25-section-state-tag{position:absolute;top:14px;right:14px;padding:5px 8px;border-radius:999px;background:#fff3d6;color:#855d00;font-size:8px;font-weight:900;letter-spacing:.04em}
.form-p{background:#d9a323;color:#fff}
.profile-last-result{position:relative}
.profile-last-result>.v25-profile-live-tag,.profile-last-result>.v25-profile-final-tag{position:absolute;top:12px;right:12px}
.profile-last-result-heading{padding-right:74px}
.highlight-tbc{font-size:10px!important;font-weight:700!important;line-height:1.35}

.v25-dialog.login{text-align:center}
.v25-login-mark{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 2px;border-radius:22px;background:#142441;color:#fff;font-size:36px;box-shadow:0 10px 24px rgba(20,36,65,.22)}
.v25-dialog.login .eyebrow,.v25-dialog.login h2{text-align:center}
.v25-admin-hero{grid-template-columns:1fr}

.v25-dialog.analysis>.v25-analysis-grid{grid-template-columns:1fr 1fr}
.v25-dialog.analysis>.v25-analysis-grid .owner-average{grid-column:1/-1;min-height:62px}
.v25-rank-hash{margin-right:1px;color:#93a0b1;font-size:.62em;font-style:normal;font-weight:800;vertical-align:.16em}
.v25-team-performance-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.v25-performance-block{display:grid;gap:5px;min-width:0;padding:11px;border-radius:10px;background:#fff}
.v25-performance-block>span{color:#748297;font-size:8px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.v25-performance-block>strong{font-size:18px}
.v25-performance-block>small{color:#6f7d90;font-size:8px;line-height:1.35}
.v25-performance-block.recent .form-stream-results{min-height:28px;justify-content:flex-start}
.v25-current-owners{margin-top:12px!important;background:#f6f8fa!important}
.v25-current-owners .v25-owner-list{margin-top:11px}
.v25-position-spread .v25-strip em{display:none}

@media(max-width:430px){
    .league-scroll-list{max-height:405px}
    .v25-team-performance-grid{grid-template-columns:1fr}
    .v25-accuracy-grid{gap:4px}
    .v25-accuracy-grid div{padding-left:3px;padding-right:3px}
    .v25-section-state-tag{top:12px;right:12px}
}

/* =========================================================
   V25 R6 — CLEANER STATUS, FORECAST & ADMIN PRESENTATION
========================================================= */
.teams-player-name em{color:#526176}

.v25-week-hub-head{display:grid!important;grid-template-columns:12px minmax(0,1fr);column-gap:15px;align-items:center}
.v25-week-hub-head .v25-status-dot{justify-self:center}
.v25-week-hub-head strong{line-height:1.2}
.v25-week-actions button:first-child{border-color:#142441;background:#142441;color:#fff}
.v25-week-actions button:last-child{border-color:#c9d9ec;background:#edf4fb;color:#24496f}
.v25-week-actions button{border-radius:10px;box-shadow:0 2px 7px rgba(20,36,65,.07)}

.v25-league-state{display:inline-flex;align-items:center;gap:7px;margin:10px 0!important;line-height:1}
.v25-league-state-dot{width:7px;height:7px;border-radius:50%;background:#d9a323}
.v25-league-state.final .v25-league-state-dot{background:#16a085}
.v25-league-state strong,.v25-league-state small{display:inline-flex;align-items:center;line-height:1}
.v25-league-state+.page-info-text{margin-top:0!important}

.v25-problabel b,.v25-problabel span:first-child b,.v25-problabel span:last-child b{color:#142441;font-weight:900}
.v25-prediction.unavailable{margin-top:10px;padding:9px 12px;border-style:dashed;background:#f7f9fb;color:#8490a1}
.v25-prediction.unavailable strong{font-size:9px;font-weight:800}

.v25-forecast-analysis:not(.pending){margin-top:14px;padding:13px;border:1px solid #dce3eb;border-left:1px solid #dce3eb;border-radius:13px;background:#f6f8fa}
.v25-forecast-analysis:not(.pending).correct,.v25-forecast-analysis:not(.pending).miss{background:#f6f8fa}
.v25-analysis-verdict{padding:0 1px 10px;border-bottom:1px solid #dfe5ec}
.v25-analysis-verdict span{color:#65748a;font-size:8px}
.v25-analysis-verdict strong{padding:5px 8px;border-radius:7px;background:#e5f6ef;color:#08754c;font-size:10px}
.v25-forecast-analysis.miss .v25-analysis-verdict strong{background:#fff0f3;color:#b52143}
.v25-accuracy-grid{gap:8px;margin-top:2px}
.v25-accuracy-grid div{display:grid;align-content:center;min-height:70px;padding:10px 8px;border:1px solid #e2e7ed;border-radius:10px;background:#fff}
.v25-accuracy-grid span{font-size:7.5px;letter-spacing:.03em}
.v25-accuracy-grid strong{margin-top:5px;font-size:11px;line-height:1.25;white-space:normal}
.v25-accuracy-grid div>small{margin-top:4px;font-size:7px}
.v25-accuracy-grid .margin-better{border-color:#bfe4d6;background:#eaf8f3}
.v25-accuracy-grid .margin-worse{border-color:#f0cbd4;background:#fff1f4}

.v25-dialog.analysis>.v25-analysis-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px;margin-top:12px}
.v25-dialog.analysis>.v25-analysis-grid div{min-height:78px;padding:9px 5px}
.v25-dialog.analysis>.v25-analysis-grid strong{font-size:20px}
.v25-dialog.analysis>.v25-analysis-grid span{font-size:8px;line-height:1.2}
.v25-dialog.analysis>.v25-analysis-grid small{font-size:7px;line-height:1.2}
.v25-team-performance{margin-top:13px!important}
.v25-performance-block.recent .form-stream-results{margin:9px 0 4px;gap:9px}
.v25-position-spread .v25-strip em{display:block}
.v25-current-owners{margin:12px 0!important}
.v25-pairing strong{font-size:11px;line-height:1.25}

.v25-dialog.login{gap:11px}
.v25-login-submit{width:100%;min-height:42px;border:1px solid #142441!important;border-radius:10px!important;background:#142441!important;color:#fff!important;font-size:11px!important;font-weight:900!important}
.v25-admin-hero{border:1px solid #263b5c;border-radius:16px;background:#142441;box-shadow:none}
.v25-admin-nav button{border-color:#dce2e9;background:#fff;color:#34445c;box-shadow:none}
.v25-toolbar{border-radius:13px;box-shadow:0 3px 10px rgba(30,45,65,.05)}
.v25-toolbar .active{border-color:#142441!important;background:#142441!important;color:#fff!important}
.v25-bulk button{border-color:#dce2e9;background:#f8fafc;color:#34445c}
.v25-match-editor{border-radius:13px;box-shadow:0 2px 8px rgba(30,45,65,.035)}
.v25-odds-grid span{color:#526b8a}
.v25-finalise .v25-primary{border-color:#142441!important;background:#142441!important;color:#fff!important}

/* =========================================================
   V25 R7 — ALTERYX INPUTS & LIGHTER ANALYSIS
========================================================= */
.v25-forecast-analysis:not(.pending){padding:10px 12px}
.v25-forecast-analysis:not(.pending) .v25-analysis-verdict{padding:0;border-bottom:0}
.v25-pairing{align-items:center}
.v25-pairing strong{align-self:center;text-align:center}

/* =========================================================
   V25 NETLIFY DATABASE BETA — SHARED SAVE STATUS
========================================================= */
.v25-autosave-state.saving{border-color:#ecd8a6;background:#fff8e8;color:#825d09}
.v25-autosave-state.error,.v25-autosave-state.conflict{border-color:#efc6cf;background:#fff1f4;color:#a51f3d}
.v25-autosave-state.local{border-color:#d8dee6;background:#f5f7f9;color:#647286}
.v25-autosave-state.saved{border-color:#cce9df;background:#ecfaf5;color:#08755e}
.v25-autosave-state.season{border-color:#b9cef7;background:#eef4ff;color:#173f7a}
.v25-season-setup{margin-top:12px;padding:20px;border:1px solid #cbd9f2;border-radius:16px;background:linear-gradient(145deg,#f7faff,#edf4ff);text-align:center}
.v25-season-setup .eyebrow{color:#315f9d}
.v25-season-setup h2{margin:6px 0 8px;font-size:20px}
.v25-season-setup p{max-width:500px;margin:0 auto;color:#5d6b7f;font-size:10px;line-height:1.55}
.v25-season-setup button{width:100%;margin-top:14px}
.v25-import-state{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border:1px solid #dce2e9;border-radius:8px;background:#fff;color:#34445c;font-size:9px;font-weight:900;cursor:pointer}
.v25-import-state input{display:none}
.v25-admin-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
.v25-admin-nav .v25-import-state{width:100%;height:36px;margin:0;text-align:center}
@media(max-width:600px){.v25-admin-nav{grid-template-columns:1fr 1fr}.v25-admin-nav .v25-import-state{padding:7px 4px;font-size:9px}}

@media(max-width:430px){
    .v25-week-hub-head{column-gap:16px}
    .v25-accuracy-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
    .v25-accuracy-grid div{min-height:68px;padding:8px 4px}
    .v25-dialog.analysis>.v25-analysis-grid{gap:5px}
    .v25-dialog.analysis>.v25-analysis-grid strong{font-size:17px}
}

/* =========================================================
   R12 · VIEWER-FIRST UX REFINEMENT
========================================================= */

/* Welcome now uses the same width, rhythm and surfaces as every public tab. */
.r12-welcome-card{
    margin-top:18px!important;
    padding:24px 18px!important;
    border:1px solid #dfe5ec;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 24px rgba(17,24,39,.06);
}
.r12-welcome-mark{width:54px;height:54px;margin-bottom:18px;border-radius:15px;display:grid;place-items:center;background:#ed2554;color:#fff;font-size:16px;font-weight:950;letter-spacing:-.04em}
.r12-welcome-card h1{margin:5px 0 8px;color:#111827;font-size:30px;line-height:1.05}
.r12-welcome-card p{margin:0 0 22px;color:#66758a;font-size:12px;line-height:1.55}
.r12-welcome-card>label{display:block;margin:0 0 7px;color:#526177;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.r12-welcome-card .dropdown{margin-bottom:11px}
.r12-welcome-card .viewer-enter-button{width:100%;margin:0!important}
.r12-welcome-card>small{display:block;min-height:20px;padding-top:6px;color:#bd2447;font-size:9px;font-weight:750}
.r12-welcome-rules{margin:12px 16px 30px;text-align:center}
.r12-welcome-rules button{border:0;background:transparent;color:#465a74;font-size:10px;font-weight:850;cursor:pointer}

/* Personal Home sections reuse Profile cards without the badge block. */
.r12-home-clubs,.r12-home-performance{margin-top:14px!important}
.r12-home-clubs .section-heading{align-items:flex-start}
.r12-home-clubs .section-link-button{white-space:nowrap}
.r12-home-performance .form-stream{margin-bottom:0}
.r12-viewer-team-card{position:relative;border:2px solid #ed2554!important;box-shadow:0 8px 24px rgba(237,37,84,.10)!important}
.r12-your-entry{position:absolute;right:10px;top:9px;border-radius:999px;padding:4px 7px;background:#ed2554;color:#fff;font-size:7px;font-weight:950;letter-spacing:.07em}

/* Home awards are deliberately a three-column result, not an explainer. */
.r12-awards-home-list{display:grid;gap:7px}
.r12-award-home-row{width:100%;min-height:58px;padding:9px 10px;border:1px solid #dfe5ec;border-radius:11px;display:grid;grid-template-columns:1.25fr 1fr 64px;align-items:center;gap:8px;background:#f8fafc;text-align:left}
button.r12-award-home-row{cursor:pointer}
button.r12-award-home-row:disabled{cursor:default}
.r12-award-home-row.won{border-color:#c8e9d9;background:#effaf4}
.r12-award-home-row span{display:flex;flex-direction:column;min-width:0}
.r12-award-home-row span:last-child{text-align:right;align-items:flex-end}
.r12-award-home-row small{color:#8490a0;font-size:6px;font-weight:950;letter-spacing:.07em}
.r12-award-home-row strong{margin-top:3px;overflow:hidden;color:#1b293d;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.r12-awards-link{width:100%;margin:10px 0 0!important}

/* Shared subpage chrome and award tracker. */
.r12-subpage-back{position:sticky;top:0;z-index:25;padding:10px 16px;background:rgba(245,247,250,.95);backdrop-filter:blur(8px)}
.r12-subpage-back .back-button{margin:0}
.r12-profile-subpage-title,.r12-awards-header{padding-bottom:12px!important}
.r12-profile-subpage-title h1,.r12-awards-header h1{margin:4px 0 0;font-size:22px}
.r12-awards-header p{margin:5px 0 0;color:#728095;font-size:10px}
.r12-awards-page-list{margin:0 16px 28px;display:grid;gap:10px}
.r12-award-detail-card{border:1px solid #dce3eb;border-radius:15px;background:#fff;overflow:hidden}
.r12-award-detail-card>header{padding:12px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f7f9fb}
.r12-award-detail-card>header span{color:#7c899b;font-size:7px;font-weight:900;letter-spacing:.07em}
.r12-award-detail-card>header h2{margin:3px 0 0;color:#172236;font-size:15px}
.r12-award-detail-card>header>b{border-radius:999px;padding:5px 8px;background:#fff0c8;color:#765400;font-size:7px}
.r12-award-detail-card.won>header>b{background:#def5e9;color:#0e7146}
.r12-award-detail-card>p{margin:0;padding:10px 13px;color:#65748a;font-size:9px;line-height:1.45}
.r12-award-winner{margin:0 10px 10px;padding:10px;border-radius:10px;display:flex;flex-direction:column;background:#f3f6f9}
.r12-award-detail-card.won .r12-award-winner{background:#eef9f3}
.r12-award-winner>small{color:#7b899b;font-size:7px;font-weight:950;letter-spacing:.07em}
.r12-award-winner>strong{margin-top:4px;font-size:11px}.r12-award-winner>span{margin-top:2px;color:#708095;font-size:8px}
.r12-award-winner button{margin-top:4px;padding:0;border:0;display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;text-align:left;cursor:pointer}
.r12-award-winner button strong{font-size:11px}.r12-award-winner button span{color:#35614e;font-size:8px}
.r12-award-candidates,.r12-award-history{border-top:1px solid #e8edf2}
.r12-award-candidates>summary,.r12-award-history>summary{padding:10px 12px;display:flex;align-items:center;justify-content:space-between;color:#4b5d74;font-size:9px;font-weight:850;cursor:pointer;list-style:none}
.r12-award-candidates>summary::-webkit-details-marker,.r12-award-history>summary::-webkit-details-marker{display:none}
.r12-award-candidates>summary b,.r12-award-history>summary b{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:#e9eef4;color:#34465e;font-size:8px}
.r12-award-candidates>div,.r12-award-history>div{padding:0 9px 9px;display:grid;gap:5px}
.r12-award-candidates button,.r12-award-history button,.r12-second-wind-table button{width:100%;padding:8px;border:0;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f5f7fa;text-align:left;cursor:pointer}
.r12-award-candidates button>span:first-child{display:flex;flex-direction:column}.r12-award-candidates button strong,.r12-award-history button strong{font-size:9px}.r12-award-candidates button small,.r12-award-candidates button>span:last-child,.r12-award-history button span{color:#718096;font-size:7px}
.r12-award-candidates p,.r12-award-history p{margin:0;padding:8px;color:#748196;font-size:8px}
.r12-second-wind-table{padding:0 9px 9px;display:grid;gap:4px}.r12-second-wind-table button{display:grid;grid-template-columns:24px minmax(0,1fr) auto}.r12-second-wind-table button b{color:#e02b55;font-size:10px;text-align:center}.r12-second-wind-table button strong{font-size:9px}.r12-second-wind-table button span{color:#68788e;font-size:8px}

/* Profile collection pages keep the proven old cards but remove player-switching controls. */
.r12-profile-subpage-title+.results-history-section,.r12-profile-subpage-title~.upcoming-section{margin-top:0}
.r12-badge-history-note{margin:0 0 3px;padding:9px;border-radius:8px;background:#eef3f8;color:#617087;font-size:8px;line-height:1.45}
.badge-history>summary b{white-space:nowrap}
.badge-history-list{max-height:430px;overflow:auto}

/* League matches the compact profile mini-table: name and clubs breathe. */
.r12-league-header .compact-league-title{align-items:flex-start}
.r12-league-header .compact-league-title p{margin-top:3px}
.r12-league-header>label{display:block;margin:18px 0 7px;color:#65748a;font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}
.r12-league-header .league-table-dropdown{margin-bottom:11px}
.r12-league-list{max-height:530px}
.r12-league-row{min-height:50px!important;padding:6px 10px!important;grid-template-columns:42px minmax(0,1fr) 52px!important;gap:9px!important}
.r12-league-position{height:38px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.r12-league-position>strong{color:#172236;font-size:17px;line-height:1}
.r12-league-position>small{height:11px;display:flex;align-items:center;justify-content:center;transform:scale(.75);transform-origin:center}
.r12-league-position .movement{margin:0!important;line-height:1!important}
.r12-league-person{display:flex;flex-direction:column;min-width:0}
.r12-league-person strong{overflow:hidden;color:#172236;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.r12-league-person small{margin-top:3px;overflow:hidden;color:#7a8798;font-size:7px;font-weight:750;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}
.r12-league-stats{display:grid;grid-template-columns:1fr auto;align-items:end;text-align:right}
.r12-league-stats strong{grid-row:1/3;color:#111827;font-size:17px;line-height:1}.r12-league-stats small{color:#8995a5;font-size:6px;font-weight:900}.r12-league-stats em{color:#4f6075;font-size:7px;font-style:normal;font-weight:850}
.league-team-filters[open]>summary b{font-size:0}.league-team-filters[open]>summary b::after{content:"Close −";font-size:9px}

/* Scores: one row per matchup, with an outcome beside each person. */
.r12-scores-header{padding-bottom:12px!important}
.r12-scores-header .scores-title-row{align-items:center}.r12-scores-header .scores-title-row h2{margin-top:3px}
.r12-scores-header>label{margin-top:16px}
.r12-scores-list-wrap{margin:0 16px 26px;border:1px solid #dce3eb;border-radius:14px;background:#fff;overflow:hidden}
.r12-scores-list-heading{padding:8px 10px;display:flex;justify-content:space-between;background:#111827;color:#fff;font-size:7px;font-weight:900;letter-spacing:.07em}
.r12-scores-list{display:grid}
.r12-score-row{width:100%;min-height:58px;padding:8px 9px;border:0;border-bottom:1px solid #edf0f4;display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);align-items:center;gap:5px;background:#fff;text-align:left;cursor:pointer}
.r12-score-row:last-child{border-bottom:0}.r12-score-row.viewer-row{box-shadow:inset 4px 0 #ed2554;background:#fff7fa}
.r12-score-side{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;min-width:0}.r12-score-side.right{grid-template-columns:auto minmax(0,1fr);text-align:right}
.r12-score-side>span{display:flex;flex-direction:column;min-width:0}.r12-score-side strong{overflow:hidden;color:#172236;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.r12-score-side small{margin-top:3px;overflow:hidden;color:#8390a0;font-size:6px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.r12-score-result{border-radius:6px;padding:4px 5px;font-size:6px;font-weight:950}.r12-score-result.w{background:#ddf5e8;color:#0e7245}.r12-score-result.d{background:#fff0c7;color:#7e5a00}.r12-score-result.l{background:#fee8ed;color:#ac2344}
.r12-score-centre{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.r12-score-centre em{color:#a0aab7;font-size:7px;font-style:normal;font-weight:900}.r12-favourite-tag{margin-top:4px;border-radius:999px;padding:3px 5px;background:#eef2f7;color:#596b82;font-size:5.5px;font-weight:850;line-height:1.2}
.r12-key-matchups>div button small{max-width:42%;text-align:right;white-space:normal}

/* Team analysis close stays aligned and remains visible while scrolling. */
.v25-dialog.analysis>.r12-analysis-close{
    position:sticky!important;top:8px!important;right:auto!important;float:none!important;
    width:32px!important;height:32px!important;margin:0 0 -32px auto!important;padding:0!important;
    border:1px solid #d8dfe7!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;
    background:#fff!important;color:#33445a!important;font-family:Arial,sans-serif!important;font-size:22px!important;font-weight:400!important;line-height:1!important;box-shadow:0 3px 10px rgba(17,24,39,.10)!important;
}
.v25-dialog.analysis>.v25-analysis-header{padding-right:44px}

/* Admin is deliberately narrower and uses consistent horizontal lines. */
.v25-admin-app{max-width:none!important}
.r12-admin{width:min(100%,720px);max-width:720px!important;margin:0 auto!important;padding:12px 14px 38px!important}
.r12-admin-top{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:6px}
.r12-admin-top .back-button{width:100%;min-height:34px;margin:0;padding:8px 6px;display:flex;align-items:center;justify-content:center;border:1px solid #d8e0e8;border-radius:8px;background:#fff;color:#33455c;font-size:8px;font-weight:850}
.r12-admin-actions{display:contents}.r12-admin-actions button,.r12-admin-actions label{width:100%;min-height:34px;padding:8px 6px;border:1px solid #d8e0e8;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#fff;color:#33455c;font-size:8px;font-weight:850;cursor:pointer}.r12-admin-actions label input{display:none}
.r12-admin-intro{margin:10px 0;padding:14px 16px;border-radius:13px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#142441;color:#fff}.r12-admin-intro h1{margin:3px 0 0;font-size:20px}.r12-admin-intro p{margin:0;color:#cbd6e4;font-size:9px}
.r12-admin-controls{padding:9px;border:1px solid #dce3eb;border-radius:11px;display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:6px;background:#fff}.r12-admin-controls label{display:flex;flex-direction:column;gap:4px}.r12-admin-controls label span{color:#637288;font-size:7px;font-weight:900;text-transform:uppercase}.r12-admin-controls select,.r12-admin-controls button{width:100%;min-height:36px;border:1px solid #d5dde7;border-radius:8px;padding:7px;background:#f7f9fb;color:#2c3d54;font-size:8px;font-weight:850}.r12-admin-controls button.current{border-color:#a8dac7;background:#eaf8f2;color:#08744e}
.r12-admin-tabs{position:sticky;top:0;z-index:20;margin:8px 0;padding:5px;border:1px solid #dbe2ea;border-radius:10px;display:grid;grid-template-columns:1fr 1fr;gap:5px;background:rgba(245,247,250,.96);backdrop-filter:blur(8px)}.r12-admin-tabs button{min-height:36px;border:0;border-radius:7px;background:#fff;color:#536279;font-size:9px;font-weight:850}.r12-admin-tabs button.active{background:#142441;color:#fff}
.r12-admin-week-state{padding:10px 12px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff5d8;color:#6b5103}.r12-admin-week-state.locked{background:#e9f8f1;color:#0d724b}.r12-admin-week-state strong{font-size:9px}.r12-admin-week-state span{font-size:8px}
.r12-admin-status{margin:7px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.r12-admin-status>div{min-height:54px;padding:7px;border:1px solid #dfe5ec;border-radius:9px;display:grid;place-items:center;background:#fff;text-align:center}.r12-admin-status strong{font-size:17px;line-height:1}.r12-admin-status span{color:#7c899a;font-size:7px;font-weight:850}
.r12-admin-quick-actions{margin:7px 0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}.r12-admin-quick-actions.odds{grid-template-columns:1fr 1fr}.r12-admin-quick-actions button{min-height:34px;border:1px solid #d8e0e9;border-radius:8px;background:#fff;color:#34465d;font-size:8px;font-weight:850}.r12-admin-quick-actions .danger{border-color:#edcdd5;background:#fff4f6;color:#a92745}
.r12-admin-range-tools{margin:8px 0;border:1px solid #dce3eb;border-radius:10px;background:#fff;overflow:hidden}.r12-admin-range-tools>summary{padding:10px 11px;display:flex;justify-content:space-between;color:#34465d;font-size:9px;font-weight:850;cursor:pointer;list-style:none}.r12-admin-range-tools>summary::-webkit-details-marker{display:none}.r12-admin-range-tools[open]>summary b{font-size:0}.r12-admin-range-tools[open]>summary b::after{content:"Close −";font-size:8px}.r12-admin-range-selects{padding:0 10px 8px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.r12-admin-range-selects label{display:grid;gap:3px;color:#708095;font-size:7px;font-weight:850}.r12-admin-range-selects select{min-height:34px;border:1px solid #d5dde6;border-radius:8px;padding:6px;background:#f8fafc}.r12-admin-range-actions{padding:0 10px 7px;display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.r12-admin-range-actions button{min-height:34px;border:1px solid #d5dee8;border-radius:8px;background:#f7f9fb;color:#33465e;font-size:8px;font-weight:850}.r12-admin-range-actions button.primary{border-color:#142441;background:#142441;color:#fff}.r12-admin-range-tools>small{display:block;padding:0 10px 10px;color:#7a8798;font-size:7px}
.r12-admin-list{gap:7px!important}.r12-score-editor,.r12-odds-editor{padding:10px!important;border-radius:11px!important;box-shadow:none!important}
.r12-score-line{display:grid!important;grid-template-columns:minmax(0,1fr) 78px minmax(0,1fr)!important;align-items:center!important;gap:6px!important;padding-bottom:9px!important}.r12-admin-team{display:flex;flex-direction:column;min-width:0}.r12-admin-team.away{text-align:right}.r12-admin-team small,.r12-odds-teams small{color:#8490a0;font-size:6px;font-weight:950;letter-spacing:.07em}.r12-admin-team strong,.r12-odds-teams strong{overflow:hidden;color:#172236;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.r12-admin-score-inputs{display:grid;grid-template-columns:1fr 1fr;gap:5px}.r12-admin-score-inputs input{width:100%;height:39px;border:1px solid #cbd5e0;border-radius:8px;background:#fff;font-size:19px;font-weight:900;text-align:center}
.r12-match-control-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.r12-match-control-row label{display:grid;gap:4px;color:#66758a;font-size:7px;font-weight:850;text-transform:uppercase}.r12-match-control-row select{width:100%;min-height:33px;border:1px solid #d5dde7;border-radius:7px;padding:6px;background:#f8fafc;color:#2d3e54;font-size:8px;font-weight:750}
.r12-admin-card-footer{margin-top:8px!important;padding-top:8px;border-top:1px solid #edf0f4;display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center;gap:6px}.r12-admin-card-footer span{font-size:7px}.r12-admin-card-footer small{color:#8591a1;font-size:6px}.r12-admin-card-footer button{min-height:28px!important;padding:5px 8px!important;border:1px solid #d8e0e8!important;border-radius:7px!important;background:#fff!important;color:#384a61!important;font-size:7px!important}.r12-admin-card-footer.odds{display:flex!important;justify-content:flex-end!important}
.r12-odds-teams{display:grid!important;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)!important;align-items:center!important;gap:6px!important;padding-bottom:8px!important}.r12-odds-teams>span{display:flex;flex-direction:column;min-width:0}.r12-odds-teams>span:last-child{text-align:right}.r12-odds-teams>b{color:#98a3b1;font-size:7px;text-align:center}
.r12-odds-line{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.r12-odds-line label{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;align-items:center}.r12-odds-line label>span{grid-column:1/-1;color:#66758a;font-size:7px;font-weight:850}.r12-odds-line input{min-width:0;width:100%;height:34px;border:1px solid #d1dae4;border-radius:7px;padding:6px;background:#fff;font-size:10px;font-weight:800}.r12-odds-line label>b{color:#496582;font-size:7px}.r12-odds-meta{margin-top:7px;display:flex;justify-content:space-between;gap:8px;color:#7c899a;font-size:7px}.r12-odds-meta p{margin:0}.r12-odds-meta span{color:#327058;font-weight:800}.r12-finalise{margin-top:10px}

@media(max-width:520px){
    .r12-admin-controls{grid-template-columns:1fr 1fr}.r12-admin-controls>button:last-child{grid-column:1/-1}
    .r12-admin-intro{align-items:flex-start;flex-direction:column}.r12-admin-intro p{margin-top:-3px}
    .r12-admin-top .back-button,.r12-admin-actions button,.r12-admin-actions label{padding:7px 4px;font-size:7px}
}

@media(max-width:390px){
    .r12-award-home-row{grid-template-columns:1.15fr .95fr 58px;gap:5px;padding:8px 7px}
    .r12-score-row{grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);padding:8px 7px;gap:3px}.r12-score-side strong{font-size:8px}.r12-score-result{padding:4px;font-size:5.5px}.r12-favourite-tag{font-size:5px}
    .r12-admin{padding-left:10px!important;padding-right:10px!important}.r12-admin-quick-actions{grid-template-columns:1fr 1fr}.r12-admin-quick-actions .danger{grid-column:1/-1}
    .r12-admin-card-footer{grid-template-columns:minmax(0,1fr) auto!important}.r12-admin-card-footer small{display:none}
}

/* =========================================================
   V25 R13 — VIEWER-FIRST EXPERIENCE, PROFILE TABS & ADMIN
========================================================= */

/* Typographic BCM 4CC brand. It stays sharp without an image asset. */
.r13-brand{
    color:#fff;
    font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-size:20px;
    font-weight:950;
    letter-spacing:-.5px;
    line-height:1;
}
.r13-brand em{color:#c8f060;font-style:normal}
.app-title-banner.r13-app-brand{height:52px;display:flex;align-items:center;justify-content:center;background:#111827}
.app-title-banner.r13-app-brand .r13-brand{font-size:20px}

/* Simple, centred entry gate. */
.r13-viewer-gate{
    width:min(100%,520px);
    min-height:100vh;
    margin:0 auto;
    padding:28px 22px;
    justify-content:center;
    background:#111827;
}
.r13-gate-brand{margin-bottom:48px;text-align:center}
.r13-gate-brand .r13-brand{font-size:27px;letter-spacing:-.8px}
.r13-gate-copy{text-align:center}
.r13-viewer-gate h1{margin:0 0 9px;font-size:34px;letter-spacing:-1.1px}
.r13-viewer-gate p{max-width:330px;margin:0 auto 32px;color:#bfc8d5;font-size:13px;line-height:1.5}
.r13-viewer-gate>label{margin:0 0 7px;color:#dbe2eb;font-size:9px;letter-spacing:.09em}
.r13-viewer-gate .dropdown{height:48px;margin-bottom:10px;border:1px solid #dce3eb;border-radius:12px;padding:0 14px}
.r13-viewer-gate .viewer-enter-button{height:48px;border-radius:12px;background:#ed2554;font-size:12px}
.r13-viewer-gate>small{min-height:24px;text-align:center}

.r13-freshness{display:flex;align-items:center;gap:6px;color:#718095;font-size:8px;font-weight:750}
.r13-freshness i{width:7px;height:7px;border-radius:50%;background:#18a06f;box-shadow:0 0 0 3px rgba(24,160,111,.12)}
.r13-freshness.syncing i{background:#d59b22;box-shadow:0 0 0 3px rgba(213,155,34,.12)}
.r13-freshness small{margin-left:auto;color:#98a2af;font-size:7px;font-weight:700}

/* Home: the viewer's live matchup is now the first useful card. */
.r13-my-week{margin-top:12px!important;padding:0!important;overflow:hidden;border-color:#d9e1ea!important}
.r13-my-week.live{border-top:4px solid #e3a426!important}
.r13-my-week.final{border-top:4px solid #16a085!important}
.r13-my-week-heading{padding:13px 14px 8px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.r13-my-week-heading h2{margin:2px 0 0;font-size:18px}
.r13-my-week-state{border-radius:999px;padding:6px 9px;background:#fff2cb;color:#795600;font-size:7px;font-weight:950;letter-spacing:.04em}
.r13-my-week.final .r13-my-week-state{background:#e1f6eb;color:#0a7049}
.r13-my-week-match{width:calc(100% - 20px);margin:0 10px;padding:12px 10px;border:0;border-radius:12px;display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:5px;background:#f5f7fa;cursor:pointer}
.r13-my-week-match>span{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0}
.r13-my-week-match>span.right{text-align:right}
.r13-my-week-match strong,.r13-my-week-match small{grid-column:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r13-my-week-match strong{color:#182337;font-size:11px}
.r13-my-week-match small{margin-top:3px;color:#8490a0;font-size:7px;font-weight:750}
.r13-my-week-match b{grid-column:2;grid-row:1/3;margin-left:8px;color:#111827;font-size:24px;line-height:1}
.r13-my-week-match .right b{grid-column:1;grid-row:1/3;margin:0 8px 0 0}
.r13-my-week-match .right strong,.r13-my-week-match .right small{grid-column:2}
.r13-my-week-match>em{color:#9ca7b4;font-size:7px;font-style:normal;font-weight:950;text-align:center}
.r13-my-week-meta{padding:9px 14px 11px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}
.r13-my-week-meta>span{border-radius:6px;padding:4px 6px;background:#eef2f6;color:#5f6f84;font-size:7px;font-weight:900;text-transform:uppercase}
.r13-my-week-meta>span.decided{background:#def5e9;color:#0b7349}
.r13-my-week-meta>small{color:#7c8999;font-size:7px}
.r13-my-week-meta>button{padding:0;border:0;background:transparent;color:#243b59;font-size:8px;font-weight:900;cursor:pointer}
.r13-my-week .r13-freshness{padding:9px 14px;border-top:1px solid #edf0f4;background:#fbfcfd}

.r13-awards-heading{align-items:center!important}
.r13-awards-heading>button{max-width:132px;padding:5px 0;border:0;background:transparent;color:#3d536f;font-size:8px;font-weight:900;text-align:right;cursor:pointer}
.r13-awards-page-header{padding-bottom:10px!important}
[id^="r13-award-"]{scroll-margin-top:70px}

/* Rules now owns the route to the draw page. */
.r13-team-draw-entry{margin:14px 16px;padding:14px;border:1px solid #dce3eb;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff}
.r13-team-draw-entry>span{display:flex;flex-direction:column;min-width:0}
.r13-team-draw-entry small{color:#ed2554;font-size:7px;font-weight:950;letter-spacing:.08em}
.r13-team-draw-entry strong{margin-top:3px;color:#172236;font-size:13px}
.r13-team-draw-entry em{margin-top:3px;color:#718095;font-size:8px;font-style:normal}
.r13-team-draw-entry button{flex:0 0 auto;min-height:36px;border:0;border-radius:9px;padding:8px 11px;background:#111827;color:#fff;font-size:8px;font-weight:900;cursor:pointer}
.r12-viewer-team-card{border:2px solid #ed2554!important;box-shadow:0 6px 18px rgba(237,37,84,.08)!important}

/* League: six purpose-built columns, following the compact profile table. */
.r13-league-header{padding-bottom:12px!important}
.r13-league-header>label{margin-top:21px}
.r13-league-header .league-table-dropdown{margin-bottom:12px}
.r13-league-list{max-height:480px;overflow-y:auto}
.r13-league-columns,.r13-league-row{
    display:grid!important;
    grid-template-columns:32px 34px minmax(92px,1fr) 43px 30px 34px!important;
    align-items:center;
    gap:5px!important;
}
.r13-league-columns{position:sticky;top:0;z-index:5;min-height:29px;padding:7px 9px;background:#111827;color:#dce4ee;font-size:6px;font-weight:950;letter-spacing:.05em}
.r13-league-columns span:nth-child(n+4){text-align:right}
.r13-league-row{min-height:51px!important;padding:7px 9px!important}
.r13-league-position{color:#172236;font-size:14px;font-weight:950;text-align:center}
.r13-league-movement{display:flex;align-items:center;justify-content:center;min-width:0}
.r13-league-movement>.movement{margin:0!important;transform:scale(.72);transform-origin:center}
.r13-league-person{display:flex;flex-direction:column;min-width:0}
.r13-league-person strong{overflow:hidden;color:#172236;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.r13-league-person small{margin-top:3px;overflow:hidden;color:#8591a1;font-size:6.5px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.r13-league-record,.r13-league-points,.r13-league-gd{color:#26354a;font-size:9px;font-weight:850;text-align:right}
.r13-league-points{color:#111827;font-size:13px;font-weight:950}
.league-team-filters>p{display:none!important}
.league-team-filters[open] .league-filter-pot:first-of-type{border-top:1px solid #e6ebf1}

/* Scores: balanced name columns, explicit live outcomes and decided filter. */
.r13-scores-header{padding-bottom:12px!important}
.r13-scores-header .scores-title-row{align-items:flex-start}
.r13-scores-header .scores-title-row p{max-width:300px;margin-top:4px;font-size:9px;line-height:1.45}
.r13-scores-header .r13-freshness{margin-top:9px;padding:8px 9px;border-radius:8px;background:#f6f8fa}
.r13-key-matchups{margin-top:2px;margin-bottom:12px}
.r13-key-matchups>div button{align-items:flex-start;flex-direction:column;gap:4px}
.r13-key-matchups>div button small{max-width:none!important;text-align:left!important}
.r13-key-names{width:100%;display:grid!important;grid-template-columns:auto minmax(0,1fr) auto auto minmax(0,1fr);gap:5px!important}
.r13-key-names>b{color:#ed2554;font-size:7px}
.r13-key-names strong:last-child{text-align:right}
.r13-decision-filter{margin:0 16px 10px;padding:10px 11px;border:1px solid #dce3eb;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff}
.r13-decision-filter>div{display:flex;flex-direction:column}
.r13-decision-filter>div span{color:#7c899a;font-size:6px;font-weight:950;letter-spacing:.08em}
.r13-decision-filter>div strong{margin-top:3px;color:#213148;font-size:9px}
.r13-decision-filter nav{display:flex;gap:3px;padding:3px;border-radius:8px;background:#edf1f5}
.r13-decision-filter button{min-height:27px;border:0;border-radius:6px;padding:5px 7px;background:transparent;color:#657389;font-size:7px;font-weight:900;cursor:pointer}
.r13-decision-filter button.active{background:#fff;color:#172236;box-shadow:0 2px 7px rgba(17,24,39,.10)}
.r13-scores-list-wrap{margin-top:0}
.r13-score-row{grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr)!important;min-height:61px}
.r13-score-row .r12-score-side{min-width:0}
.r13-score-row .r12-score-side.right{justify-content:end}
.r13-score-row .r12-score-result.live{background:#ffdc7a;color:#694900;white-space:nowrap}
.r13-decided-tag{margin-top:3px;border-radius:5px;padding:3px 4px;background:#def5e9;color:#0b7048;font-size:5px;font-weight:950;letter-spacing:.04em}

/* Profile tabs and reliable in-profile gameweek rails. */
.player-header .v25-header-draw,.r13-profile-header .v25-header-draw{margin-top:13px!important}
.r13-profile-tabs{margin:12px 16px 4px;padding:4px;border:1px solid #d9e1e9;border-radius:13px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:#e9eef4}
.r13-profile-tabs button{min-height:40px;border:0;border-radius:9px;background:transparent;color:#68768a;font-size:9px;font-weight:900;cursor:pointer}
.r13-profile-tabs button.active{background:#fff;color:#172236;box-shadow:0 4px 12px rgba(30,45,65,.12)}
.r13-profile-back{margin:12px 16px 0!important}
.r13-profile-header{margin-top:10px}
.r13-profile-collection{padding-bottom:12px!important}
.r13-profile-collection>p{margin:3px 0 11px;color:#748196;font-size:9px}
.r13-profile-week-rail{display:flex;gap:6px;overflow-x:auto;padding:2px 1px 8px;scrollbar-width:thin;scroll-snap-type:x proximity}
.r13-profile-week-rail button{flex:0 0 68px;min-height:50px;border:1px solid #dce3eb;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f7f9fb;color:#536176;scroll-snap-align:center;cursor:pointer}
.r13-profile-week-rail button span{font-size:11px;font-weight:950}
.r13-profile-week-rail button small{margin-top:3px;font-size:6px;font-weight:900;letter-spacing:.04em}
.r13-profile-week-rail button.active{border-color:#ed2554;background:#ed2554;color:#fff;box-shadow:0 5px 14px rgba(237,37,84,.18)}
.r13-profile-match-detail>.section{margin-top:0}
.r13-profile-match-detail .score-detail-section{padding-top:0!important}
.r13-profile-match-detail .result-detail-card,.r13-profile-match-detail .fixture-detail-card{margin-top:0}
.r13-profile-tab-view #r13ProfileTabContent{padding-bottom:18px}

.r13-badge-collection .badge-history-list{max-height:500px}
.r13-badge-week{padding:0!important;border:1px solid #e5eaf0!important;display:block!important;overflow:hidden;background:#fff!important}
.r13-badge-week>header{padding:8px 9px;display:flex;align-items:center;justify-content:space-between;background:#f4f7fa}
.r13-badge-week>header strong{font-size:9px}
.r13-badge-week>header span{color:#7b8798;font-size:7px;font-weight:850}
.r13-badge-week>div{padding:7px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.r13-badge-week button{min-width:0;min-height:38px;padding:6px;border:1px solid #e6ebf1;border-radius:8px;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:5px;background:#fbfcfd;text-align:left}
.r13-badge-week button span{font-size:16px;text-align:center}
.r13-badge-week button strong{overflow:hidden;font-size:7.5px;line-height:1.2;text-overflow:ellipsis}

/* Admin: a compact operations console with consistent controls. */
#app.v25-admin-app{max-width:none!important;background:#eef2f6}
.r13-admin{width:min(100%,760px);max-width:760px!important;margin:0 auto!important;padding:12px 14px 42px!important}
.r13-admin-top-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.r13-admin-top-actions button,.r13-admin-top-actions label{min-height:42px;border:1px solid #d6dee8;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:5px;background:#fff;color:#34465e;font-size:8px;cursor:pointer}
.r13-admin-top-actions span{color:#ed2554;font-size:12px;font-weight:900}
.r13-admin-top-actions strong{font-size:8px}.r13-admin-top-actions input{display:none}
.r13-admin-hero{margin:9px 0;padding:18px;border-radius:15px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;background:linear-gradient(135deg,#111827,#1d2f4d);color:#fff;box-shadow:0 9px 24px rgba(17,24,39,.15)}
.r13-admin-hero h1{margin:3px 0 4px;font-size:23px;letter-spacing:-.5px}
.r13-admin-hero p{margin:0;color:#c5cfdd;font-size:9px}
.r13-admin-hero .r13-freshness{color:#d3dbe6}.r13-admin-hero .r13-freshness small{color:#9eacbe}
.r13-admin-workflow{padding:9px;border:1px solid #d9e1ea;border-radius:12px;display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:6px;background:#fff}
.r13-admin-workflow label{display:flex;flex-direction:column;gap:4px}.r13-admin-workflow label span{color:#6f7d91;font-size:7px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.r13-admin-workflow select,.r13-admin-workflow button{width:100%;min-height:38px;border:1px solid #d4dde7;border-radius:8px;padding:7px;background:#f7f9fb;color:#31435b;font-size:8px;font-weight:850}
.r13-admin-workflow button.current{border-color:#a8dac7;background:#e8f7f0;color:#08734d}
.r13-admin-tabs{position:sticky;top:0;z-index:20;margin:9px 0;padding:5px;border:1px solid #d7e0e9;border-radius:11px;display:grid;grid-template-columns:1fr 1fr;gap:5px;background:rgba(238,242,246,.96);backdrop-filter:blur(8px)}
.r13-admin-tabs button{min-height:40px;border:0;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:7px;background:#fff;color:#526177;font-size:9px;font-weight:900}
.r13-admin-tabs button span{color:#9aa5b3;font-size:7px}.r13-admin-tabs button.active{background:#111827;color:#fff;box-shadow:0 4px 12px rgba(17,24,39,.18)}.r13-admin-tabs button.active span{color:#c8f060}
.r13-admin .v25-autosave-state{margin:7px 0;border-radius:9px}
.r13-admin-week-state{padding:11px 13px;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff3d3;color:#705200}
.r13-admin-week-state.locked{background:#e5f7ee;color:#0c7048}
.r13-admin-week-state>div{display:flex;flex-direction:column}.r13-admin-week-state span{font-size:6px;font-weight:950;letter-spacing:.08em}.r13-admin-week-state strong{margin-top:3px;font-size:11px}.r13-admin-week-state p{margin:0;font-size:8px}.r13-admin-week-state p b{font-size:10px}
.r13-admin-status{margin:7px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.r13-admin-status>div{min-height:57px;padding:8px;border:1px solid #dce3eb;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff}.r13-admin-status strong{font-size:18px;line-height:1}.r13-admin-status span{margin-top:4px;color:#7d8999;font-size:7px;font-weight:850}
.r13-admin-toolbox{margin:8px 0;padding:10px 11px;border:1px solid #dce3eb;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff}.r13-admin-toolbox h2{margin:2px 0 0;font-size:12px}.r13-admin-toolbox nav{display:flex;gap:5px}.r13-admin-toolbox button{min-height:32px;border:1px solid #d6dfe8;border-radius:7px;padding:6px 9px;background:#f7f9fb;color:#35475e;font-size:7px;font-weight:850}.r13-admin-toolbox button.danger{border-color:#efcbd4;background:#fff2f5;color:#a92a47}
.r13-admin-help{margin:8px 0;border:1px solid #dce3eb;border-radius:10px;background:#fff;overflow:hidden}.r13-admin-help summary{padding:10px 11px;display:flex;justify-content:space-between;color:#40536b;font-size:8px;font-weight:850;cursor:pointer;list-style:none}.r13-admin-help summary::-webkit-details-marker{display:none}.r13-admin-help p{margin:0;padding:0 11px 11px;color:#6f7d90;font-size:8px;line-height:1.45}
.r13-admin-list{gap:8px!important}.r13-match-editor{padding:10px!important;border:1px solid #d9e1e9!important;border-radius:12px!important;background:#fff!important;box-shadow:0 3px 10px rgba(17,24,39,.035)!important}
.r13-score-editor.final{border-left:4px solid #18a06f!important}.r13-score-editor.postponed{border-left:4px solid #8d99a9!important}.r13-score-editor.scheduled{border-left:4px solid #e3a426!important}
.r13-score-editor>header{padding:0 0 9px!important;display:grid!important;grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr)!important;align-items:center!important;gap:7px!important}
.r13-admin-team{display:flex;flex-direction:column;min-width:0}.r13-admin-team.away{text-align:right}.r13-admin-team small,.r13-odds-editor header small{color:#8490a0;font-size:6px;font-weight:950;letter-spacing:.08em}.r13-admin-team strong,.r13-odds-editor header strong{overflow:hidden;color:#172236;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.r13-admin-score-inputs{display:grid;grid-template-columns:1fr 1fr;gap:5px}.r13-admin-score-inputs input{width:100%;height:40px;border:1px solid #cbd5e0;border-radius:8px;background:#fff;color:#111827;font-size:20px;font-weight:950;text-align:center;-moz-appearance:textfield}.r13-admin-score-inputs input::-webkit-inner-spin-button,.r13-admin-score-inputs input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.r13-match-control-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.r13-match-control-row label{display:grid;gap:4px}.r13-match-control-row label span{color:#67758a;font-size:6.5px;font-weight:900;text-transform:uppercase}.r13-match-control-row select{width:100%;min-height:34px;border:1px solid #d4dde7;border-radius:7px;padding:6px;background:#f7f9fb;color:#304259;font-size:8px;font-weight:800}
.r13-score-editor>footer{margin-top:8px!important;padding-top:8px!important;border-top:1px solid #edf0f4!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important;gap:7px!important}.r13-score-editor footer span{font-size:7px}.r13-score-editor footer small{color:#8793a2;font-size:6px}.r13-score-editor footer button{min-height:29px!important;padding:5px 8px!important;border:1px solid #d6dee8!important;border-radius:7px!important;background:#f8fafc!important;color:#34465d!important;font-size:7px!important}
.r13-odds-editor>header{padding:0 0 8px!important;display:grid!important;grid-template-columns:minmax(0,1fr) 25px minmax(0,1fr)!important;align-items:center!important;gap:6px!important}.r13-odds-editor header>span{display:flex;flex-direction:column;min-width:0}.r13-odds-editor header>span:last-child{text-align:right}.r13-odds-editor header>b{color:#9ba5b2;font-size:7px;text-align:center}
.r13-odds-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.r13-odds-grid label{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px}.r13-odds-grid label>span{grid-column:1/-1;color:#66758a;font-size:6.5px;font-weight:900}.r13-odds-grid input{min-width:0;width:100%;height:34px;border:1px solid #cfd8e3;border-radius:7px;padding:6px;background:#fff;color:#172236;font-size:10px;font-weight:850}.r13-odds-grid label>b{color:#45637f;font-size:7px}
.r13-odds-meta{margin-top:7px;display:flex;align-items:center;justify-content:space-between;gap:8px}.r13-odds-meta p{margin:0;color:#7b8797;font-size:6.5px}.r13-odds-meta span{color:#267058;font-size:6.5px;font-weight:850}.r13-odds-editor>footer{margin-top:7px!important;padding-top:7px!important;border-top:1px solid #edf0f4!important;display:flex!important;justify-content:flex-end!important;gap:5px!important}.r13-odds-editor footer button{min-height:28px!important;border:1px solid #d7dfe8!important;border-radius:7px!important;padding:5px 8px!important;background:#f8fafc!important;color:#34465d!important;font-size:7px!important}
.r13-finalise{margin-top:10px!important}

.r13-admin-login .v25-dialog.login{padding:24px 20px;text-align:left}
.r13-admin-login .r13-modal-close{position:absolute;top:10px;right:10px;width:30px;height:30px;border:0;border-radius:50%;display:grid;place-items:center;background:#eef2f6;color:#35475e;font-size:18px}
.r13-login-brand{margin:-24px -20px 20px;padding:18px;border-radius:16px 16px 0 0;background:#111827;text-align:center}
.r13-login-brand .r13-brand{font-size:24px}
.r13-admin-login h2{margin:4px 0 18px;text-align:left!important}
.r13-admin-login label{display:block;margin-bottom:6px;color:#69778a;font-size:8px;font-weight:900;letter-spacing:.07em}
.r13-admin-login input{width:100%;height:46px;border:1px solid #d3dce6;border-radius:10px;padding:0 12px;font-size:16px;text-align:center;letter-spacing:.25em}
.r13-admin-login #adminPinError{min-height:23px;padding-top:5px;color:#b52647;font-size:8px;text-align:center}
.r13-admin-login .v25-login-submit{width:100%;margin:0!important;background:#ed2554}

@media(max-width:600px){
    .r13-my-week-match{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)}
    .r13-league-columns,.r13-league-row{grid-template-columns:28px 30px minmax(76px,1fr) 38px 27px 31px!important;gap:3px!important}
    .r13-league-columns{padding-left:7px;padding-right:7px}.r13-league-row{padding-left:7px!important;padding-right:7px!important}
    .r13-league-person strong{font-size:9px}.r13-league-record,.r13-league-gd{font-size:8px}.r13-league-points{font-size:12px}
    .r13-score-row{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr)!important}
    .r13-profile-tabs{margin-left:12px;margin-right:12px}.r13-profile-back{margin-left:12px!important}
    .r13-admin{padding-left:10px!important;padding-right:10px!important}
    .r13-admin-hero{grid-template-columns:1fr;align-items:start}.r13-admin-hero .r13-freshness{margin-top:2px}
    .r13-admin-workflow{grid-template-columns:1fr 1fr}.r13-admin-workflow>button:last-child{grid-column:1/-1}
    .r13-admin-toolbox{align-items:flex-start;flex-direction:column}.r13-admin-toolbox nav{width:100%;display:grid;grid-template-columns:1fr 1fr}.r13-admin-toolbox nav .danger{grid-column:1/-1}
}

@media(max-width:390px){
    .r13-viewer-gate{padding-left:16px;padding-right:16px}
    .r13-my-week-heading{padding-left:11px;padding-right:11px}.r13-my-week-match{width:calc(100% - 16px);margin-left:8px;margin-right:8px;padding-left:7px;padding-right:7px}.r13-my-week-match strong{font-size:9px}.r13-my-week-match b{font-size:20px}
    .r13-my-week-meta{padding-left:11px;padding-right:11px;grid-template-columns:auto 1fr}.r13-my-week-meta>button{grid-column:1/-1;text-align:right}
    .r13-team-draw-entry{align-items:flex-start;flex-direction:column}.r13-team-draw-entry button{width:100%}
    .r13-league-columns,.r13-league-row{grid-template-columns:25px 27px minmax(67px,1fr) 34px 24px 27px!important;gap:2px!important}.r13-league-columns{font-size:5.3px}.r13-league-person strong{font-size:8.5px}.r13-league-person small{font-size:5.8px}.r13-league-record,.r13-league-gd{font-size:7.5px}
    .r13-decision-filter{align-items:flex-start;flex-direction:column}.r13-decision-filter nav{width:100%}.r13-decision-filter button{flex:1}
    .r13-score-row{grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr)!important;padding-left:6px!important;padding-right:6px!important}.r13-score-row .r12-score-result{padding:3px;font-size:5px}.r13-decided-tag{font-size:4.5px}
    .r13-badge-week>div{grid-template-columns:1fr}
    .r13-admin-top-actions button,.r13-admin-top-actions label{gap:3px}.r13-admin-top-actions strong{font-size:7px}
    .r13-admin-workflow{grid-template-columns:1fr}.r13-admin-workflow>button:last-child{grid-column:auto}
    .r13-score-editor>header{grid-template-columns:minmax(0,1fr) 74px minmax(0,1fr)!important}.r13-admin-team strong{font-size:9px}
    .r13-score-editor>footer{grid-template-columns:minmax(0,1fr) auto!important}.r13-score-editor footer small{display:none}
}


/* ========================================================================== 
   R14 — ALIGNMENT AND INTERACTION POLISH
============================================================================ */

/* Home hierarchy: live state, Team Draw, then the entrant's week. */
.viewer-context+.v25-week-hub{margin-top:12px}
.v25-week-hub+.rules-entry-wrap{margin-top:0;margin-bottom:0}
.v25-week-hub+.rules-entry-wrap .rules-entry-button{min-height:44px;border:1px solid #d9e1ea;border-radius:11px;background:#111827;color:#fff;box-shadow:none}
.rules-entry-wrap+.r14-my-week{margin-top:12px!important}
.r14-my-week{border:1px solid #d9e1ea!important;border-left:4px solid #e3a426!important;border-top-width:1px!important;border-radius:14px!important;background:#fff;box-shadow:none!important}
.r14-my-week.final{border-left-color:#16a085!important}
.r14-my-week-match{width:calc(100% - 24px);margin:0 12px;padding:13px 12px;border:1px solid #e3e8ee;border-radius:11px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;background:#f8fafc;cursor:pointer}
.r14-week-player{display:flex;flex-direction:column;min-width:0;text-align:left}
.r14-week-player.right{text-align:right}
.r14-week-player strong,.r14-week-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r14-week-player strong{color:#172236;font-size:11px}
.r14-week-player small{margin-top:4px;color:#7c8999;font-size:6.5px;font-weight:750}
.r14-week-score{display:grid;grid-template-columns:auto 18px auto;align-items:center;gap:4px}
.r14-week-score>b{min-width:34px;display:flex;flex-direction:column;align-items:center;color:#111827;font-size:21px;line-height:1}
.r14-week-score>b small{margin-top:4px;color:#7c8998;font-size:5.5px;font-weight:900;letter-spacing:.07em}
.r14-week-score>em{color:#9aa5b2;font-size:6px;font-style:normal;font-weight:950;text-align:center}
.r14-my-week-meta{padding:10px 13px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.r14-my-week-meta>span{border-radius:6px;padding:4px 6px;background:#eef2f6;color:#5f6f84;font-size:7px;font-weight:900;text-transform:uppercase}
.r14-my-week-meta>span.decided{background:#def5e9;color:#0b7349}
.r14-my-week-meta>small{color:#7c8999;font-size:7px;text-align:right}
.r14-my-week-actions{padding:0 12px 12px;display:grid;grid-template-columns:1fr 1fr;gap:7px}
.r14-my-week-actions button{min-height:36px;border:1px solid #d7dfe8;border-radius:8px;background:#fff;color:#2d4058;font-size:8px;font-weight:900;cursor:pointer}
.r14-my-week-actions button:first-child{border-color:#111827;background:#111827;color:#fff}

/* League controls use one rhythm; table columns share the available width. */
.r14-league-header{padding-bottom:14px!important;display:flex;flex-direction:column;gap:12px}
.r14-league-header>*{margin-top:0!important;margin-bottom:0!important}
.r14-league-header .compact-league-title{min-height:82px;align-items:flex-start}
.r14-league-gameweek{display:flex;flex-direction:column;gap:7px;color:#6e7b8e;font-size:8px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.r14-league-gameweek .league-table-dropdown{height:48px!important;margin:0!important;color:#172236;font-size:11px;font-weight:750;letter-spacing:0;text-transform:none}
.r14-league-header .league-team-filters{min-height:62px}
.r14-league-header .league-team-filters>summary{min-height:62px}
.r14-league-header .league-jump-button{min-height:52px}
.r14-league-list .r13-league-columns,.r14-league-list .r13-league-row{
    grid-template-columns:7fr 9fr 34fr 21fr 13fr 16fr!important;
    column-gap:0!important;
}
.r14-league-list .r13-league-columns{padding-left:12px;padding-right:12px}
.r14-league-list .r13-league-row{padding-left:12px!important;padding-right:12px!important}
.r14-league-list .r13-league-columns span:nth-child(1),.r14-league-list .r13-league-columns span:nth-child(2),.r14-league-list .r13-league-columns span:nth-child(n+4){text-align:center}
.r14-league-list .r13-league-position,.r14-league-list .r13-league-movement,.r14-league-list .r13-league-record,.r14-league-list .r13-league-points,.r14-league-list .r13-league-gd{text-align:center}
.r14-league-list .r13-league-gd{font-weight:500}

/* Scores controls now read as one compact, consistent control group. */
.r14-scores-header{margin-bottom:10px!important;padding-bottom:13px!important}
.r14-scores-header .scores-title-row p{max-width:390px;margin-top:5px;font-size:9px;line-height:1.45}
.r14-scores-gameweek{margin-top:12px;display:flex;flex-direction:column;gap:6px;color:#6f7d90;font-size:7px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.r14-scores-gameweek .dropdown{height:48px;margin:0;color:#172236;font-size:11px;font-weight:750;letter-spacing:0;text-transform:none}
.r14-key-matchups,.r14-decision-filter{margin:0 16px 10px!important;border:1px solid #dce3eb!important;border-radius:12px!important;background:#fff!important}
.r14-key-matchups>summary{min-height:56px;padding:10px 12px!important}
.r14-key-matchups>summary small,.r14-decision-filter>div>span{font-size:6.5px!important;letter-spacing:.07em}
.r14-key-matchups>summary strong,.r14-decision-filter>div>strong{font-size:10px!important}
.r14-key-matchups>summary>b{font-size:8px!important}
.r14-decision-filter{min-height:56px;padding:9px 11px!important}
.r14-key-matchups .r13-key-names>b{color:#5d6c80;font-size:6.5px;font-weight:900}
.r13-score-row .r12-score-result.live.w{background:#d9f3e5;color:#0b7144}
.r13-score-row .r12-score-result.live.d{background:#fff0c7;color:#7e5a00}
.r13-score-row .r12-score-result.live.l{background:#fee4ea;color:#a92040}
.r13-score-row .r12-score-side.right>span{align-items:flex-end;text-align:right}
.r13-score-row .r12-score-side.right>span:first-child:last-child{grid-column:2}

/* Profile navigation always lives outside, directly below, the navy header. */
.player-header+.r13-profile-tabs,.r13-profile-header+.r13-profile-tabs{margin-top:10px}
.r14-badge-collection .badge-history-list{max-height:500px}
.r14-badge-collection .badge-history-list article{min-height:54px;grid-template-columns:34px minmax(0,1fr) auto}
.r14-badge-collection .badge-history-list article>span{font-size:20px;text-align:center}
.r14-badge-collection .badge-history-list article>b{min-width:34px;color:#172236;font-size:12px;text-align:right}

/* Team Analysis close is a geometrically centred icon at every scroll point. */
.v25-dialog.analysis>.r12-analysis-close{font-size:0!important;line-height:0!important}
.v25-dialog.analysis>.r12-analysis-close::before{content:"×";display:block;width:100%;height:100%;color:#33445a;font-family:Arial,sans-serif;font-size:21px;font-weight:400;line-height:30px;text-align:center;transform:translateY(-1px)}

/* Admin top actions and teams now share exact alignment and typography. */
.r13-admin-top-actions button,.r13-admin-top-actions label{height:40px;min-height:40px;padding:0 8px;border:1px solid #d6dee8;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#fff;color:#34465e;font-family:inherit;font-size:8px;font-weight:850;line-height:1;text-align:center;text-transform:none!important;cursor:pointer}
.r13-admin-top-actions label input{display:none}
.r13-admin-team.home{align-items:flex-start;text-align:left!important}
.r13-admin-team.away{align-items:flex-end;text-align:right!important}
.r13-admin-team.home strong,.r13-admin-team.home small{text-align:left!important}
.r13-admin-team.away strong,.r13-admin-team.away small{text-align:right!important}
.r13-score-editor>header,.r13-odds-editor>header{width:100%}
.r13-admin-toolbox button,.r13-admin-workflow button,.r13-admin-tabs button,.r13-finalise button{font-family:inherit}

/* The awards action is now a normal bordered control, consistent with the app. */
.r13-awards-heading>button{max-width:145px;min-height:34px;padding:7px 9px;border:1px solid #d8e0e8;border-radius:8px;background:#fff;color:#33475f;text-align:center}

@media(max-width:600px){
    .r14-league-list .r13-league-columns,.r14-league-list .r13-league-row{grid-template-columns:7fr 9fr 34fr 21fr 13fr 16fr!important;column-gap:0!important}
    .r14-league-list .r13-league-columns{padding-left:7px;padding-right:7px}.r14-league-list .r13-league-row{padding-left:7px!important;padding-right:7px!important}
    .r14-league-header .compact-league-title{min-height:auto}
}

@media(max-width:390px){
    .r14-my-week-match{width:calc(100% - 16px);margin-left:8px;margin-right:8px;padding-left:7px;padding-right:7px;gap:5px}
    .r14-week-player strong{font-size:9px}.r14-week-player small{font-size:5.8px}.r14-week-score{grid-template-columns:auto 14px auto;gap:2px}.r14-week-score>b{min-width:28px;font-size:18px}
    .r14-league-list .r13-league-columns,.r14-league-list .r13-league-row{grid-template-columns:7fr 9fr 34fr 21fr 13fr 16fr!important;gap:0!important}
    .r14-league-list .r13-league-columns{font-size:5.2px}.r14-league-list .r13-league-record,.r14-league-list .r13-league-gd{font-size:7.2px}
    .r14-scores-header .scores-title-row{gap:8px}.r14-scores-header .scores-title-row p{font-size:8px}
    .r13-admin-top-actions button,.r13-admin-top-actions label{padding:0 3px;font-size:7px}
}


/* ========================================================================== 
   R15 — NAVIGATION AND SPACING POLISH
============================================================================ */

/* Home cards use the same inset width. */
.r14-my-week{
    width:calc(100% - 32px);
    margin-left:16px!important;
    margin-right:16px!important;
}

/* League controls share one compact 48px closed state and a 9px rhythm. */
.r14-league-header{gap:9px;padding-bottom:10px!important}
.r14-league-header .compact-league-title{margin-bottom:3px!important}
.r14-league-gameweek{
    position:relative;
    height:48px;
    min-height:48px;
    border:1px solid #dce3eb;
    border-radius:12px;
    display:block;
    overflow:hidden;
    background:#fff;
}
.r14-league-gameweek>span{position:absolute;z-index:1;top:7px;left:12px;color:#7a8798;font-size:6px;line-height:1;pointer-events:none}
.r14-league-gameweek .league-table-dropdown{
    height:46px!important;
    border:0!important;
    border-radius:11px!important;
    padding:17px 38px 4px 12px!important;
    background-color:transparent!important;
}
.r14-league-header .league-team-filters{min-height:48px;margin:0!important}
.r14-league-header .league-team-filters>summary{min-height:48px;padding:8px 12px}
.r14-league-header .league-jump-button{min-height:48px;height:48px;margin:0!important}

/* Scores has three equally spaced 56px controls. */
.r14-scores-header{margin-bottom:9px!important;padding-bottom:0!important}
.r14-scores-gameweek{min-height:56px;margin-top:15px;gap:8px}
.r14-scores-gameweek .dropdown{height:40px!important}
.r14-key-matchups,.r14-decision-filter{min-height:56px!important;margin-bottom:9px!important}
.r14-key-matchups>summary{min-height:56px!important}
.r15-key-names{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr) auto!important}
.r15-key-names strong:nth-of-type(2),.r15-key-names>b:last-child{text-align:right}

/* Detail cards now tuck directly beneath their sticky Back control. */
#app>.score-detail-back-wrap+.score-detail-section{padding-top:4px!important}

/* Profile navigation remains stable while changing tabs. */
.r15-profile-back{margin-bottom:0!important}
.r15-rail-guide{margin:0 0 5px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#8793a3;font-size:6px;font-weight:850;letter-spacing:.03em}
.r15-rail-guide strong{color:#536278;font-size:6.5px;text-align:center;text-transform:uppercase}
.r15-rail-guide span:last-child{text-align:right}
.r13-profile-week-rail{scrollbar-width:auto;scrollbar-color:#ed2554 #e8edf3}
.r13-profile-week-rail::-webkit-scrollbar{height:7px}
.r13-profile-week-rail::-webkit-scrollbar-track{border-radius:99px;background:#e8edf3}
.r13-profile-week-rail::-webkit-scrollbar-thumb{border-radius:99px;background:#ed2554}

/* Aggregated history keeps the weekly evidence visible without 18+ cards. */
.r15-badge-collection .badge-history-list article div em{display:block;margin-top:4px;overflow:hidden;color:#8a95a5;font-size:6px;font-style:normal;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}

/* A CSS-drawn X is geometrically centred and independent of font metrics. */
.v25-dialog.analysis>.r12-analysis-close{
    position:sticky!important;
    width:32px!important;
    height:32px!important;
    border:0!important;
    background:#111827!important;
    color:transparent!important;
    box-shadow:0 4px 12px rgba(17,24,39,.20)!important;
}
.v25-dialog.analysis>.r12-analysis-close::before,
.v25-dialog.analysis>.r12-analysis-close::after{
    content:""!important;
    position:absolute;
    top:50%;
    left:50%;
    width:13px;
    height:2px;
    border-radius:2px;
    display:block;
    background:#fff;
    transform-origin:center;
}
.v25-dialog.analysis>.r12-analysis-close::before{transform:translate(-50%,-50%) rotate(45deg)}
.v25-dialog.analysis>.r12-analysis-close::after{transform:translate(-50%,-50%) rotate(-45deg)}

/* Import is a label rather than a button, so explicitly neutralise the global
   label margin. Odds use true left/right team anchors. */
.r13-admin-top-actions{align-items:stretch}
.r13-admin-top-actions button,.r13-admin-top-actions label{margin:0!important;box-sizing:border-box}
.r13-odds-editor>header>span:last-child{align-items:flex-end!important;text-align:right!important}
.r13-odds-editor>header>span:last-child strong,.r13-odds-editor>header>span:last-child small{width:100%;text-align:right!important}

@media(max-width:600px){
    .r14-my-week{width:calc(100% - 24px);margin-left:12px!important;margin-right:12px!important}
}


/* ========================================================================== 
   R16 — FINAL POLISH
============================================================================ */

/* The weekly outcome is immediately readable without relying on the score. */
.r14-my-week.outcome-win{border-left-color:#16a06f!important}
.r14-my-week.outcome-draw{border-left-color:#d59b22!important}
.r14-my-week.outcome-loss{border-left-color:#db3157!important}
.r13-my-week-state.outcome-win{background:#def5e9!important;color:#0b7048!important}
.r13-my-week-state.outcome-draw{background:#fff0c7!important;color:#7c5700!important}
.r13-my-week-state.outcome-loss{background:#fee4ea!important;color:#a92040!important}

/* League title, three controls and table now use one 8px vertical rhythm. */
.r14-league-header{gap:8px!important;padding-bottom:0!important;margin-bottom:8px!important}
.r14-league-header .compact-league-title{min-height:0!important;margin-bottom:4px!important}

/* Matchups uses the same inset-label 48px selector as League, with a matching
   12px title-to-control gap and equally compact supporting controls. */
.r14-scores-header{margin-bottom:8px!important}
.r14-scores-gameweek{
    position:relative;
    height:48px;
    min-height:48px;
    margin-top:12px;
    border:1px solid #dce3eb;
    border-radius:12px;
    display:block;
    overflow:hidden;
    background:#fff;
}
.r14-scores-gameweek>span{position:absolute;z-index:1;top:7px;left:12px;color:#7a8798;font-size:6px;line-height:1;pointer-events:none}
.r14-scores-gameweek .dropdown{
    height:46px!important;
    border:0!important;
    border-radius:11px!important;
    padding:17px 38px 4px 12px!important;
    background-color:transparent!important;
}
.r14-key-matchups,.r14-decision-filter{min-height:48px!important;margin-bottom:8px!important}
.r14-key-matchups>summary{min-height:48px!important}
.r14-decision-filter{padding-top:5px!important;padding-bottom:5px!important}

/* Profile navigation is presented as three unmistakable segmented buttons. */
.r16-profile-header{margin-top:10px!important}
.r16-profile-tabs{gap:5px!important;padding:5px!important;background:#edf1f5!important}
.r16-profile-tabs button{border:1px solid #d8e0e8!important;background:#fff!important;color:#4e5f75!important;box-shadow:0 1px 2px rgba(17,24,39,.03)}
.r16-profile-tabs button.active{border-color:#111827!important;background:#111827!important;color:#fff!important;box-shadow:0 4px 12px rgba(17,24,39,.18)}

/* Weekly Odds has explicit two-sided anchors at every breakpoint. */
.r13-odds-editor>header>span:first-child{align-items:flex-start!important;text-align:left!important}
.r13-odds-editor>header>span:first-child strong,.r13-odds-editor>header>span:first-child small{width:100%;text-align:left!important}


/* ========================================================================== 
   R17 — PROFILE HEADER CONSISTENCY
============================================================================ */

/* Performance's legacy Back control now occupies exactly the same box as the
   Results/Fixtures Back control, so the following navy tile cannot move. */
.r17-profile-back{
    min-height:14px;
    margin:12px 16px 0!important;
    display:inline-flex;
    align-items:center;
    line-height:14px;
}
.r17-profile-back+.r17-profile-header{margin-top:10px!important}
