*{box-sizing:border-box}html{background:#06131f}body{margin:0;background:radial-gradient(circle at 80% 0,#0d3455 0,#06131f 38%,#05111c 100%);color:#edf6ff;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.fh2-app{min-height:100vh}.fh2-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:26px;padding:15px 28px;background:rgba(5,17,28,.94);backdrop-filter:blur(12px);border-bottom:1px solid #1b3d58}.brand{text-decoration:none;color:#fff;display:flex;flex-direction:column}.brand span,.eyebrow{font-size:10px;letter-spacing:.15em;font-weight:900;color:#ffd700}.brand b{font-size:19px}.fh2-top nav{display:flex;gap:8px;margin-left:auto}.fh2-top nav a,.feature-nav a{color:#dbe9f5;text-decoration:none;padding:9px 12px;border-radius:10px;font-size:13px;font-weight:800}.fh2-top nav a:hover{background:#0d2b44}.private{font-size:10px;font-weight:900;letter-spacing:.1em;border:1px solid #6d5b11;color:#ffd700;padding:8px 10px;border-radius:999px}.fh2-main{max-width:1480px;margin:auto;padding:26px}.mega,.page-hero,.team-hero,.match-hero{border:1px solid #234663;border-radius:28px;background:linear-gradient(135deg,#071d33,#0d3455);box-shadow:0 24px 80px rgba(0,0,0,.22)}.mega{display:grid;grid-template-columns:1.6fr .6fr;gap:30px;padding:48px}.mega h1,.page-hero h1,.team-hero h1{font-size:clamp(42px,6vw,78px);line-height:.94;margin:9px 0 16px;letter-spacing:-.045em}.mega h1 em{font-style:normal;color:#ffd700}.mega p,.page-hero p{max-width:790px;color:#bcd0e1;font-size:18px;line-height:1.6}.actions{display:flex;gap:10px;margin-top:24px}.btn{display:inline-flex;text-decoration:none;color:#fff;border:1px solid #3b5870;border-radius:12px;padding:13px 18px;font-weight:900}.btn.gold{background:#ffd700;color:#071d33;border-color:#ffd700}.hero-card{align-self:stretch;border-radius:22px;background:linear-gradient(145deg,#0a2843,#061827);border:1px solid #315572;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px}.hero-badge{width:94px;height:94px;object-fit:contain}.hero-card span{margin-top:12px;font-weight:900}.hero-card strong{font-size:72px;color:#ffd700;line-height:1}.hero-card small{color:#9db5c8}.home-grid{display:grid;grid-template-columns:1.1fr 1fr .7fr;gap:18px;margin-top:18px}.panel{background:linear-gradient(180deg,#092239,#071a2c);border:1px solid #22445f;border-radius:20px;padding:22px;box-shadow:0 12px 30px rgba(0,0,0,.15)}.panel h2{margin:6px 0 18px;font-size:27px}.panel h3{margin:22px 0 10px}.muted{color:#9fb5c7}.fixture-big{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:18px 0}.fixture-big div{text-align:center}.fixture-big b{display:block;margin-top:6px}.fixture-badge{width:58px;height:58px;object-fit:contain}.text-link{color:#ffd700;font-weight:900;text-decoration:none}.mini-table{list-style:none;padding:0;margin:10px 0}.mini-table li{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #17364e}.mini-table li span{display:flex;align-items:center;gap:8px}.mini-table a{color:#fff;text-decoration:none}.tiny-badge{width:22px;height:22px;object-fit:contain}.status-good{font-size:54px;font-weight:950;color:#5ce08d;margin-top:8px}.page-hero{padding:38px}.page-hero h1{font-size:58px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.tabs span{padding:10px 14px;border:1px solid #294b66;border-radius:999px;color:#94acc0;font-size:12px;font-weight:800}.tabs .active{background:#ffd700;color:#061827;border-color:#ffd700}.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,.72fr);gap:18px}.side-stack{display:grid;gap:18px}.panel-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.pill{font-size:11px;color:#b9d0e3;background:#102d46;border:1px solid #244864;padding:7px 10px;border-radius:999px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:11px 9px;border-bottom:1px solid #17364e;text-align:center}th{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8fa9be}.club-cell{text-align:left}.club-cell a{display:inline-flex;align-items:center;color:#fff;text-decoration:none;font-weight:850}.table-badge{width:28px;height:28px;object-fit:contain;vertical-align:middle;margin-right:9px}.southend-row{background:rgba(255,215,0,.08)}.southend-row .club-cell a{color:#ffd700}.leaders{list-style:none;padding:0;margin:0}.leaders li{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #17364e}.leaders li>span{display:flex;align-items:center;gap:9px}.leaders small{display:block;color:#8ca5ba}.leaders strong{font-size:24px;color:#ffd700}.club-links{display:grid;grid-template-columns:1fr 1fr;gap:7px}.club-links a{display:flex;align-items:center;gap:8px;padding:8px;border-radius:10px;background:#081a2b;color:#e8f2fa;text-decoration:none;font-size:12px}.team-page{--club:#003087;--club2:#ffd700}.team-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:26px;padding:32px 38px;position:relative;overflow:hidden}.team-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,var(--club) 0,transparent 54%);opacity:.42;pointer-events:none}.team-hero>*{position:relative;z-index:1}.team-hero.premium{box-shadow:inset 0 0 0 1px rgba(255,215,0,.12),0 24px 80px rgba(0,0,0,.25)}.team-crest{width:112px;height:112px;object-fit:contain}.crest-wrap{width:144px;height:144px;border-radius:26px;display:grid;place-items:center;background:rgba(255,255,255,.96);box-shadow:0 16px 40px rgba(0,0,0,.25)}.team-hero h1{font-size:58px}.rank{text-align:right}.rank span,.rank small{display:block;color:#a8bfd2}.rank strong{font-size:84px;line-height:.95;color:var(--club2)}.form-line{display:flex;gap:8px;align-items:center}.form-line i,.result{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;font-style:normal;font-size:11px;font-weight:950}.form-w,.result.w{background:#218a55}.form-d,.result.d{background:#6b7b88}.form-l,.result.l{background:#b84148}.form-line span{margin-left:8px;color:#c2d3e1}.feature-nav{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.feature-nav>*{padding:10px 13px;border-radius:11px;background:#0b2942;border:1px solid #254b68;color:#bcd0e1;font-size:12px}.stat-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:14px 0}.stat-strip div{background:#091e32;border:1px solid #22445f;border-radius:15px;padding:15px}.stat-strip span{display:block;color:#8fa9bd;font-size:11px;text-transform:uppercase}.stat-strip b{font-size:29px}.team-grid{display:grid;grid-template-columns:1.1fr .7fr;gap:18px}.matches-panel,.players-panel{grid-column:1/-1}.pos-graph{width:100%;height:190px;background:#061725;border-radius:14px;padding:7px}.pos-graph line{stroke:#24465f;stroke-width:1}.pos-graph polyline{fill:none;stroke:var(--club2);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.pos-graph text{fill:#87a0b5;font-size:12px}.bars{display:grid;gap:11px;margin-top:12px}.bars div{display:grid;grid-template-columns:90px 1fr 55px;gap:10px;align-items:center;font-size:12px}.bars div:before{content:"";grid-column:2;grid-row:1;background:#102e47;height:8px;border-radius:8px}.bars b{grid-column:2;grid-row:1;height:8px;display:block;background:var(--club2);border-radius:8px;z-index:1}.bars em{font-style:normal;text-align:right;color:#adc1d2}.big-metric{padding:13px 0;border-bottom:1px solid #17364e}.big-metric span,.big-metric small{display:block;color:#8fa9bd}.big-metric strong{font-size:40px}.match-list a{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:12px 0;border-bottom:1px solid #17364e;text-decoration:none;color:#fff}.match-list small,.match-list em{display:block;color:#89a3b8;font-style:normal}.match-list b{display:block;margin:3px 0}.players td:first-child{text-align:left}.match-hero{text-align:center;padding:34px}.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:center;max-width:850px;margin:22px auto}.match-crest{width:100px;height:100px;object-fit:contain}.scoreboard>strong{display:grid;grid-template-columns:auto auto auto;gap:8px;align-items:center;font-size:60px}.scoreboard>strong small{grid-column:1/-1;font-size:12px;color:#9db4c7}.scoreboard h2{margin:8px 0}.match-grid{display:grid;grid-template-columns:1fr .72fr;gap:18px;margin-top:18px}.lineup{grid-column:auto}.events div{display:grid;grid-template-columns:55px 1fr auto;gap:10px;padding:9px 0;border-bottom:1px solid #17364e}.events b{color:#ffd700}.events small{color:#8ba5b9}.facts{display:grid;grid-template-columns:1fr 1fr;margin:0}.facts dt,.facts dd{padding:10px 0;border-bottom:1px solid #17364e}.facts dt{color:#8da6ba}.facts dd{text-align:right;margin:0;font-weight:800}.lineup ol{list-style:none;padding:0}.lineup li{display:grid;grid-template-columns:28px 1fr auto;gap:9px;padding:8px 0;border-bottom:1px solid #17364e}.lineup li>b{color:#ffd700}.lineup li small{color:#8da6ba}.bench{display:flex;flex-wrap:wrap;gap:7px}.bench span{font-size:11px;background:#0d2941;border:1px solid #24455f;border-radius:999px;padding:6px 8px}.fh2-foot{max-width:1480px;margin:10px auto 0;padding:20px 26px 34px;color:#718ca2;font-size:11px}.compact{font-size:13px}@media(max-width:1050px){.mega{grid-template-columns:1fr}.home-grid,.split,.team-grid,.match-grid{grid-template-columns:1fr}.stat-strip{grid-template-columns:repeat(3,1fr)}.players-panel,.matches-panel{grid-column:auto}.team-hero{grid-template-columns:auto 1fr}.rank{grid-column:1/-1;text-align:left}.club-links{grid-template-columns:1fr 1fr}.scoreboard{grid-template-columns:1fr auto 1fr}}@media(max-width:720px){.fh2-top{padding:12px 14px;flex-wrap:wrap}.fh2-top nav{order:3;width:100%;overflow:auto;margin-left:0}.private{margin-left:auto}.fh2-main{padding:14px}.mega,.page-hero,.team-hero,.match-hero{padding:22px;border-radius:20px}.mega h1,.page-hero h1,.team-hero h1{font-size:38px}.home-grid{grid-template-columns:1fr}.stat-strip{grid-template-columns:repeat(2,1fr)}.team-hero{grid-template-columns:1fr;text-align:center}.crest-wrap{margin:auto}.rank{text-align:center}.form-line{justify-content:center}.club-links{grid-template-columns:1fr}.scoreboard{gap:8px}.match-crest{width:66px;height:66px}.scoreboard h2{font-size:15px}.scoreboard>strong{font-size:38px}.panel{padding:16px}.feature-nav{display:grid}.table-wrap{margin:0 -8px}.match-list a{grid-template-columns:auto 1fr}.match-list a>strong{display:none}}

.club-nav{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.club-nav a{color:#d9e8f4;text-decoration:none;background:#0b2942;border:1px solid #254b68;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:850}.league-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.stat-list{display:grid;gap:0}.stat-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #17364e}.stat-list small{display:block;color:#8ca5ba}.stat-list strong{color:#ffd700}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:10px 0 16px}.summary-cards>div,.performance-grid>div,.record-grid>div,.run-grid>div,.record-split>div{background:#081a2b;border:1px solid #1f415b;border-radius:13px;padding:13px}.summary-cards span,.performance-grid span,.record-grid span,.run-grid span,.record-split span{display:block;color:#8da6ba;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.summary-cards b,.performance-grid b,.record-grid b,.run-grid b,.record-split b{display:block;font-size:22px;margin-top:3px}.left{text-align:left!important}.compact-table table{min-width:560px}.points-graph{width:100%;height:230px;background:#061725;border-radius:14px;padding:10px}.points-graph line{stroke:#24465f;stroke-width:1}.points-graph polyline{fill:none;stroke:var(--club2);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.performance-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.record-split{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.record-split small{display:block;color:#7e99af;margin-top:4px}.attendance-bars{height:210px;display:flex;align-items:flex-end;gap:12px;padding:15px 5px 0}.attendance-bars>div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:48px}.attendance-bars i{width:70%;min-height:4px;background:var(--club2);border-radius:8px 8px 2px 2px;position:relative}.attendance-bars i b{position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap}.attendance-bars span{font-size:10px;color:#8da6ba;text-align:center;margin-top:7px}.month-bars{height:220px;display:flex;align-items:flex-end;gap:24px;padding:12px}.month-bars>div{flex:1;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:flex-end}.month-bars>div>div{height:170px;display:flex;align-items:flex-end;justify-content:center;gap:7px}.month-bars i{width:28px;min-height:3px;border-radius:8px 8px 2px 2px;position:relative}.month-bars i.for{background:var(--club2)}.month-bars i.against{background:#b84148}.month-bars i b{position:absolute;top:-19px;left:50%;transform:translateX(-50%);font-size:10px}.month-bars span{font-size:11px;color:#a8bfd2;margin-top:7px}.goal-key{display:flex;gap:16px;color:#9db4c7;font-size:11px}.goal-key span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--club2);margin-right:6px}.goal-key span+span:before{background:#b84148}.run-grid,.record-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.run-grid small{display:block;color:#7f9aae;margin-top:5px;line-height:1.35}.team-grid>#crowds,.team-grid>#away-support,.team-grid>#trends,.team-grid>#runs,.team-grid>#players,.team-grid>#referees,.team-grid>#records,.team-grid>#opponents{grid-column:1/-1}@media(max-width:1050px){.league-stat-grid{grid-template-columns:1fr}.performance-grid{grid-template-columns:repeat(3,1fr)}.run-grid,.record-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.summary-cards,.performance-grid,.record-split,.run-grid,.record-grid{grid-template-columns:1fr 1fr}.club-nav{overflow:auto;flex-wrap:nowrap;padding-bottom:3px}.club-nav a{white-space:nowrap}.attendance-bars{overflow-x:auto}.month-bars{overflow-x:auto}.month-bars>div{min-width:70px}}
.league-overview{grid-template-columns:repeat(4,1fr);margin:18px 0}.league-overview small{display:block;color:#7893aa;margin-top:4px}.leader-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.leader-columns>div{background:#081a2b;border:1px solid #1f415b;border-radius:13px;padding:13px}.leader-columns h3{margin:0 0 9px}.leader-columns p{display:flex;justify-content:space-between;gap:8px;margin:0;padding:8px 0;border-bottom:1px solid #17364e;font-size:12px}.leader-columns p b{color:#ffd700}.leader-columns p:last-child{border-bottom:0}@media(max-width:900px){.league-overview{grid-template-columns:repeat(2,1fr)}.leader-columns{grid-template-columns:1fr}}@media(max-width:520px){.league-overview{grid-template-columns:1fr}}

/* dev6 readability + interaction */
.points-graph .grid,.pos-graph .grid{stroke:#1d3e57;stroke-width:1}.points-graph text,.pos-graph text{fill:#8fa9bd;font-size:11px}.points-graph .axis-y,.pos-graph .axis-y{text-anchor:end}.points-graph .axis-x,.pos-graph .axis-x{text-anchor:middle}.points-graph .axis-title,.pos-graph .axis-title{fill:#5f829d;font-size:9px;font-weight:800;letter-spacing:.08em}.points-graph circle,.pos-graph circle{fill:var(--club2);stroke:#071a2c;stroke-width:2}.points-graph polyline,.pos-graph polyline{filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}
.support-summary{grid-template-columns:repeat(4,1fr)}.support-summary small{display:block;color:#718ea5;font-size:10px;margin-top:4px}.support-share{position:relative;min-width:96px;height:22px;background:#102e47;border-radius:999px;overflow:hidden}.support-share span{display:block;height:100%;background:var(--club2);opacity:.85}.support-share b{position:absolute;inset:0;display:grid;place-items:center;font-size:10px;color:#fff;text-shadow:0 1px 2px #000}
.sequence-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sequence-card{background:#081a2b;border:1px solid #1f415b;border-radius:15px;padding:14px}.sequence-card h3{margin:0 0 8px;color:var(--club2)}.sequence-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #17364e}.sequence-row:last-child{border-bottom:0}.sequence-row span{color:#9bb2c5;font-size:12px}.sequence-row b{font-size:13px}
.sortable-table th{cursor:pointer;user-select:none;white-space:nowrap}.sortable-table th:hover{color:#ffd700;background:#0d2941}.sortable-table th:after{content:' ↕';opacity:.35;font-size:9px}.sortable-table th.sort-asc:after{content:' ↑';opacity:1;color:#ffd700}.sortable-table th.sort-desc:after{content:' ↓';opacity:1;color:#ffd700}.sortable-table th:focus{outline:2px solid #ffd700;outline-offset:-2px}
@media(max-width:900px){.support-summary{grid-template-columns:repeat(2,1fr)}.sequence-grid{grid-template-columns:1fr}}
/* dev7: National League Hub root + latest round */
.league-tabs a{color:inherit;text-decoration:none}
.latest-round{margin-bottom:18px}
.latest-results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.latest-result{display:block;background:#071c2d;border:1px solid #1c4665;border-radius:12px;padding:12px 14px;color:#fff;text-decoration:none;transition:.15s ease}
.latest-result:hover{transform:translateY(-1px);border-color:#ffd500}
.latest-result>small{display:block;color:#80b9dd;margin-bottom:8px;text-transform:uppercase;font-size:10px;letter-spacing:.08em}
.latest-result>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 0}
.latest-result>div span{display:flex;align-items:center;gap:8px;min-width:0;font-weight:700}
.latest-result>div b{font-size:18px;color:#ffd500}
.latest-result>em{display:block;margin-top:7px;color:#7fb0cd;font-style:normal;font-size:11px}
.away-league-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin:12px 0 16px}
@media(max-width:900px){.latest-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.away-league-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.latest-results-grid{grid-template-columns:1fr}.away-league-summary{grid-template-columns:1fr 1fr}}
/* dev9: database-rich National League front page */
.db-showcase{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin:18px 0}.record-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.record-tile{background:linear-gradient(145deg,#09233a,#071a2b);border:1px solid #22506f;border-radius:15px;padding:14px;color:#fff;text-decoration:none;min-height:162px;display:flex;flex-direction:column;justify-content:flex-start}.record-tile:hover{border-color:#ffd500;transform:translateY(-1px)}.record-tile>span{color:#89a8bd;text-transform:uppercase;font-size:9px;letter-spacing:.08em;font-weight:800}.record-tile>div{display:flex;gap:4px;align-items:center;margin:13px 0 10px;min-height:42px}.record-badge{width:38px;height:38px;object-fit:contain}.record-tile>b{font-size:15px;line-height:1.25}.record-tile>small{color:#7fa2ba;margin-top:5px}.pattern-ring-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.pattern-ring-row>div{background:#071a2b;border:1px solid #204863;border-radius:14px;text-align:center;padding:15px 8px}.pattern-ring-row b{display:block;font-size:27px;color:#ffd500}.pattern-ring-row span{font-size:10px;color:#8ea8bc;text-transform:uppercase}.mini-metrics p{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #17364e;padding:10px 0;margin:0}.mini-metrics span{color:#95acbd}.mini-metrics b{color:#fff}.goal-timing{margin:18px 0}.timing-bars{height:240px;display:grid;grid-template-columns:repeat(6,1fr);gap:16px;align-items:end;padding:20px 20px 5px;background:linear-gradient(180deg,#081b2d 0,#061725 100%);border-radius:14px}.timing-bars>div{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.timing-bars i{display:block;width:min(58px,70%);background:linear-gradient(180deg,#ffd500,#dba900);border-radius:10px 10px 3px 3px;box-shadow:0 0 20px rgba(255,213,0,.08)}.timing-bars b{color:#fff;font-size:14px}.timing-bars span{color:#89a8bd;font-size:10px}.stat-person,.badge-name{display:flex!important;align-items:center;gap:8px}.venue-power{margin:18px 0}.venue-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.venue-columns>div{background:#071b2c;border:1px solid #1f465f;border-radius:15px;padding:14px}.venue-columns h3{margin:0 0 8px}.venue-columns a{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;color:#fff;text-decoration:none;padding:10px 0;border-bottom:1px solid #17364e}.venue-columns a:last-child{border-bottom:0}.venue-columns a>span{display:flex;align-items:center;gap:8px}.venue-columns em{font-style:normal;color:#6f93aa;width:16px}.venue-columns strong{color:#ffd500}.venue-columns small{grid-column:1/-1;color:#7697ad;padding-left:46px}.match-badged{display:flex!important;align-items:center;gap:7px}.league-stat-grid .panel,.venue-power,.goal-timing,.db-showcase .panel{background:linear-gradient(145deg,#0b2a44 0%,#082137 58%,#071c2e 100%)}.league-stat-grid .panel:hover,.venue-power:hover,.goal-timing:hover{border-color:#285774}.stat-list>div:nth-child(-n+3){background:rgba(255,213,0,.025)}
@media(max-width:1050px){.db-showcase{grid-template-columns:1fr}.record-tiles{grid-template-columns:repeat(2,1fr)}.venue-columns{grid-template-columns:1fr}}
@media(max-width:620px){.record-tiles{grid-template-columns:1fr 1fr}.timing-bars{gap:6px;padding-left:8px;padding-right:8px}.timing-bars i{width:70%}}

/* dev10 final National League Hub polish */
.card-counts{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}.card-chip{display:inline-block;width:12px;height:16px;border-radius:2px;font-size:0;box-shadow:0 0 0 1px rgba(255,255,255,.14)}.card-chip.yellow-card{background:#ffd500}.card-chip.red-card{background:#e13b3b}.card-counts .card-chip+span{margin-left:5px}
.leader-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.leader-columns>div{padding:16px}.leader-columns h3{font-size:18px;margin-bottom:12px}.leader-columns p{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:9px;padding:11px 0;font-size:13px}.leader-columns p>em{font-style:normal;color:#6f93aa;font-weight:900;text-align:center}.leader-columns .badge-name{min-width:0}.leader-columns .badge-name a{color:#fff;text-decoration:none;font-weight:800;line-height:1.2}.leader-columns .badge-name a:hover{color:#ffd500}.leader-columns p>b{display:flex;flex-direction:column;align-items:flex-end;font-size:15px;line-height:1.05;white-space:nowrap}.leader-columns p>b small{color:#7f9bb0;font-size:9px;text-transform:uppercase;letter-spacing:.06em;margin-top:3px}
.venue-columns a small{display:flex;gap:12px;align-items:center;padding-left:46px}.venue-columns a small b{color:#a9c2d3}.venue-columns a small span{color:#7898ad}
.league-crowd-panel,.league-away-panel{overflow:hidden}.league-crowd-panel .summary-cards,.league-away-panel .summary-cards{gap:10px}.league-crowd-panel .summary-cards>div,.league-away-panel .summary-cards>div{background:linear-gradient(145deg,#09233a,#071a2b);min-height:84px;display:flex;flex-direction:column;justify-content:center}.league-crowd-panel .compact-table,.league-away-panel .compact-table{border:1px solid #1d445f;border-radius:14px;overflow:auto;background:#071a2b}.league-crowd-panel table,.league-away-panel table{margin:0}.league-crowd-panel tbody tr:nth-child(-n+3),.league-away-panel tbody tr:nth-child(-n+3){background:rgba(255,213,0,.025)}.league-crowd-panel td,.league-away-panel td{padding-top:11px;padding-bottom:11px}.league-crowd-panel .match-badged{gap:8px}.league-away-panel .club-cell{min-width:165px}.league-away-panel .club-cell a{font-weight:800;color:#fff;text-decoration:none}.league-away-panel .club-cell a:hover{color:#ffd500}
@media(max-width:1100px){.leader-columns{grid-template-columns:1fr}.leader-columns p{grid-template-columns:22px minmax(0,1fr) auto}}


/* v1.3 club identity system: verified club palettes with contrast-safe derived surfaces. */
.team-page{position:relative;color:var(--club-text);isolation:isolate}
.team-page:before{content:"";position:absolute;z-index:-1;inset:-26px;border-radius:30px;background:radial-gradient(circle at 15% 0,color-mix(in srgb,var(--club-primary) 32%,transparent) 0,transparent 34%),radial-gradient(circle at 95% 34%,color-mix(in srgb,var(--club-secondary) 12%,transparent) 0,transparent 30%);pointer-events:none}
.team-page .team-hero{background:linear-gradient(120deg,var(--club-panel) 0%,var(--club-panel2) 70%);border-color:var(--club-line)}
.team-page .team-hero:after{background:linear-gradient(105deg,var(--club-primary) 0,color-mix(in srgb,var(--club-primary) 50%,transparent) 28%,transparent 64%);opacity:.68}
.team-page .team-hero.premium{box-shadow:inset 0 4px 0 var(--club-accent),0 24px 80px rgba(0,0,0,.25)}
.team-page .rank strong,.team-page .eyebrow,.team-page .text-link{color:var(--club-accent)}
.team-page .crest-wrap{border:2px solid color-mix(in srgb,var(--club-accent) 50%,transparent);box-shadow:0 16px 40px rgba(0,0,0,.3),0 0 0 6px color-mix(in srgb,var(--club-primary) 18%,transparent)}
.team-page .feature-nav>*{background:var(--club-soft);border-color:var(--club-line);color:var(--club-text)}
.team-page .feature-nav>*:hover{background:color-mix(in srgb,var(--club-primary) 42%,#081a2b);border-color:var(--club-accent)}
.team-page .stat-strip div,.team-page .summary-cards>div,.team-page .performance-grid>div,.team-page .record-grid>div,.team-page .record-split>div{background:linear-gradient(145deg,var(--club-soft),var(--club-panel2));border-color:var(--club-line)}
.team-page .panel{background:linear-gradient(180deg,var(--club-panel),var(--club-panel2));border-color:var(--club-line);box-shadow:0 16px 42px rgba(0,0,0,.18)}
.team-page .panel h2,.team-page .panel h3,.team-page .panel b,.team-page .players td:first-child{color:var(--club-text)}
.team-page .muted,.team-page .panel small,.team-page .summary-cards span,.team-page .performance-grid span,.team-page .record-grid span,.team-page .record-split span{color:var(--club-muted)}
.team-page .matches-panel{background:linear-gradient(180deg,color-mix(in srgb,var(--club-primary) 34%,#071a2c),var(--club-panel2));box-shadow:inset 0 4px 0 var(--club-accent),0 16px 42px rgba(0,0,0,.2)}
.team-page .match-list a{border-bottom-color:var(--club-line);border-radius:10px;padding-left:8px;padding-right:8px}
.team-page .match-list a:hover{background:color-mix(in srgb,var(--club-primary) 24%,transparent)}
.team-page table th{color:var(--club-muted);border-bottom-color:var(--club-line)}
.team-page table td{border-bottom-color:color-mix(in srgb,var(--club-line) 76%,transparent)}
.team-page .players tbody tr:hover,.team-page .compact-table tbody tr:hover{background:color-mix(in srgb,var(--club-primary) 18%,transparent)}
.team-page .points-graph,.team-page .pos-graph{background:var(--club-graph);border:1px solid color-mix(in srgb,var(--club-line) 75%,transparent)}
.team-page .points-graph .grid,.team-page .pos-graph .grid{stroke:color-mix(in srgb,var(--club-line) 75%,transparent)}
.team-page .points-graph text,.team-page .pos-graph text{fill:var(--club-muted)}
.team-page .points-graph .axis-title,.team-page .pos-graph .axis-title{fill:var(--club-accent)}
.team-page .points-graph polyline,.team-page .pos-graph polyline{stroke:var(--club-accent)!important;filter:drop-shadow(0 2px 4px color-mix(in srgb,var(--club-accent) 28%,transparent))}
.team-page .points-graph circle,.team-page .pos-graph circle{fill:var(--club-accent)!important;stroke:var(--club-graph)!important}
.team-page .attendance-bars i,.team-page .month-bars i.for,.team-page .bars b,.team-page .support-share span{background:var(--club-accent)}
.team-page .month-bars i.against{background:#df5963}
.team-page .goal-key span:before{background:var(--club-accent)}
.team-page .goal-key span+span:before{background:#df5963}
.team-page .sequence-card{background:linear-gradient(145deg,var(--club-soft),var(--club-panel2));border-color:var(--club-line)}
.team-page .sequence-card h3{color:var(--club-accent)!important}
.team-page .sequence-row{border-bottom-color:var(--club-line)}
.team-page .sequence-row span{color:var(--club-muted)}
.team-page .pill{background:var(--club-soft);border-color:var(--club-line);color:var(--club-text)}
.team-page .big-metric,.team-page .leaders li,.team-page .mini-table li{border-bottom-color:var(--club-line)}
.team-page .big-metric span,.team-page .big-metric small{color:var(--club-muted)}
.team-page .big-metric strong,.team-page .leaders strong{color:var(--club-accent)}
.team-page .support-share{background:var(--club-graph)}
.team-page .run-grid>div,.team-page .record-grid>div{position:relative;overflow:hidden}
.team-page .run-grid>div:before,.team-page .record-grid>div:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--club-accent)}
.team-page #crowds,.team-page #away-support{background:linear-gradient(145deg,color-mix(in srgb,var(--club-primary) 25%,#071a2c),var(--club-panel2))}
@media(max-width:720px){.team-page:before{inset:-14px;border-radius:20px}}


/* v2.0 live navigation polish */
.team-page .club-nav{gap:9px;margin:16px 0 19px;padding:10px;border:1px solid var(--club-line);border-radius:18px;background:color-mix(in srgb,var(--club-panel2) 88%,transparent);box-shadow:0 10px 30px rgba(0,0,0,.12)}
.team-page .club-nav a{background:color-mix(in srgb,var(--club-primary) 18%,var(--club-soft));border:1px solid color-mix(in srgb,var(--club-accent) 28%,var(--club-line));color:var(--club-text);padding:9px 13px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:.18s ease}
.team-page .club-nav a:hover,.team-page .club-nav a:focus{background:var(--club-accent);border-color:var(--club-accent);color:#06131f;transform:translateY(-2px);box-shadow:0 8px 22px color-mix(in srgb,var(--club-primary) 32%,transparent);outline:none}
.league-tabs{padding:10px;border:1px solid #234663;border-radius:18px;background:linear-gradient(180deg,#092239,#071a2c);box-shadow:0 10px 30px rgba(0,0,0,.12)}
.league-tabs a{padding:9px 13px;border:1px solid #31536c;border-radius:999px;background:#0a2942;color:#eaf5fd!important;font-size:11px;font-weight:900;transition:.18s ease}
.league-tabs a:hover,.league-tabs a:focus,.league-tabs a.active{background:#ffd700;color:#071d33!important;border-color:#ffd700;transform:translateY(-2px);box-shadow:0 8px 20px rgba(255,215,0,.14);outline:none}
.fh2-top nav a{transition:.18s ease}.fh2-top nav a:hover{background:#ffd700;color:#071d33;transform:translateY(-1px)}
@media(max-width:720px){.league-tabs{flex-wrap:nowrap;overflow:auto}.league-tabs a{white-space:nowrap}.team-page .club-nav{border-radius:14px;padding:8px}}

/* v2.0.0-rc7 — normal mobile flow; only wide data components scroll */
.fh2-app{width:100%;max-width:100%;overflow:visible}
.fh2-main{width:100%;max-width:1480px;margin-left:auto;margin-right:auto}
.fh2-main>*,.team-page>*,.panel,.page-hero,.team-hero,.match-hero{min-width:0}
.fh2-scroll-x,.table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.fh2-scroll-x>table,.table-wrap>table{width:max-content;min-width:100%}
.fh2-scroll-x::-webkit-scrollbar,.table-wrap::-webkit-scrollbar{height:7px}
.fh2-scroll-x::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb{background:#31536c;border-radius:999px}

@media(max-width:900px){
 .fh2-main{padding:16px}
 .home-grid,.split,.team-grid,.match-grid,.db-showcase,.leader-columns,.venue-columns{grid-template-columns:1fr}
 .matches-panel,.players-panel{grid-column:auto}
 .stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
 .record-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
 .latest-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .team-hero{grid-template-columns:auto minmax(0,1fr);gap:18px}
 .rank{grid-column:1/-1;text-align:left}
 .feature-nav,.club-nav,.league-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}
 .feature-nav::-webkit-scrollbar,.club-nav::-webkit-scrollbar,.league-tabs::-webkit-scrollbar{display:none}
 .feature-nav>* ,.club-nav a,.league-tabs a{flex:0 0 auto;white-space:nowrap}
 .attendance-bars,.month-bars{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

@media(max-width:640px){
 .fh2-top{position:relative;top:auto;padding:11px 14px;display:grid;grid-template-columns:1fr auto;gap:10px 12px}
 .fh2-top .brand{min-width:0}.fh2-top .brand b{font-size:17px}
 .fh2-top nav{grid-column:1/-1;width:100%;margin:0;display:flex;overflow-x:auto;overflow-y:hidden;gap:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
 .fh2-top nav::-webkit-scrollbar{display:none}.fh2-top nav a{flex:0 0 auto;padding:8px 10px;font-size:11px}
 .fh2-main{padding:12px}
 .panel,.page-hero,.team-hero,.match-hero{padding:16px;border-radius:17px}
 .team-hero{grid-template-columns:1fr;text-align:center}
 .crest-wrap{margin:0 auto;width:104px;height:104px}.team-crest{width:84px;height:84px}
 .team-hero h1{font-size:34px;line-height:1.02;margin:9px 0 13px}
 .form-line{justify-content:center;flex-wrap:wrap}
 .rank{grid-column:auto;text-align:center}.rank strong{font-size:50px}
 .stat-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat-strip div{padding:14px}.stat-strip b{font-size:25px}
 .summary-cards,.support-summary,.league-overview,.away-league-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .record-tiles,.latest-results-grid,.run-grid,.record-grid,.sequence-grid,.club-links{grid-template-columns:1fr}
 .panel-head{flex-direction:column;gap:8px}.panel h2{font-size:24px}
 .scoreboard{grid-template-columns:1fr;gap:10px}.scoreboard>strong{order:2;margin:0 auto;font-size:38px}.scoreboard>div:first-child{order:1}.scoreboard>div:last-child{order:3}.match-crest{width:76px;height:76px}
 .facts{grid-template-columns:1fr}.facts dd{text-align:left;padding-top:0}.facts dt{border-bottom:0;padding-bottom:3px}
 .fixture-big{gap:8px}.fixture-badge{width:46px;height:46px}
 .events div{grid-template-columns:42px minmax(0,1fr);gap:8px}.events div>*:last-child{grid-column:2}
 .lineup li{grid-template-columns:24px minmax(0,1fr)}
 .bars div{grid-template-columns:72px minmax(120px,1fr) 48px}
 .fh2-foot{padding:16px 12px 28px}
}

@media(max-width:430px){
 .fh2-main{padding:10px}
 .panel,.page-hero,.team-hero,.match-hero{padding:14px;border-radius:15px}
 .team-hero h1{font-size:30px}.crest-wrap{width:94px;height:94px}.team-crest{width:76px;height:76px}.rank strong{font-size:44px}
 .stat-strip,.summary-cards,.support-summary,.league-overview,.away-league-summary{grid-template-columns:1fr 1fr}
 .stat-strip span{font-size:9px}.stat-strip b{font-size:23px}
 .feature-nav>* ,.club-nav a,.league-tabs a{padding:9px 11px;font-size:11px}
}

/* rc8: full fixtures + National League Cup */
.next-fixture-card{margin:14px 0 18px;padding:18px 20px;border:1px solid var(--club-line,#244b68);border-radius:18px;background:linear-gradient(135deg,var(--club-panel,#0b2942),var(--club-panel2,#071b2c));display:grid;grid-template-columns:minmax(170px,.8fr) 2fr;gap:18px;align-items:center;color:var(--club-text,#fff)}
.next-fixture-card .fixture-meta{display:flex;flex-direction:column;gap:4px}.next-fixture-card .fixture-meta b{font-size:16px}.next-fixture-card .fixture-meta small,.rollover-note{color:var(--club-muted,#8db3d1)}
.fixture-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}.fixture-teams>div{display:flex;align-items:center;gap:10px;min-width:0}.fixture-teams>div:last-child{justify-content:flex-end;text-align:right}.fixture-teams>span{font-weight:900;color:var(--club-accent,#ffd400)}.fixture-badge{width:44px;height:44px;object-fit:contain;flex:0 0 44px}.rollover-note{grid-column:1/-1;font-size:12px}
.upcoming-panel{margin-top:18px}.fixture-list{display:flex;flex-direction:column}.fixture-row{display:grid;grid-template-columns:165px 1fr;gap:16px;align-items:center;padding:12px 0;border-top:1px solid rgba(130,180,210,.18)}.fixture-row:first-child{border-top:0}.fixture-row time{font-size:12px;color:var(--club-muted,#8db3d1);font-weight:700}.fixture-row>div{display:flex;align-items:center;gap:8px;min-width:0}.fixture-row>div>b{white-space:nowrap}.fixture-row>div>span{color:var(--club-muted,#8db3d1)}
.cup-team-panel{margin-top:18px;border-color:color-mix(in srgb,var(--club-accent,#ffd400) 55%,transparent)}.cup-link{text-decoration:none}.cup-record,.cup-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.cup-record>div,.cup-summary>div{padding:14px;border:1px solid rgba(130,180,210,.2);border-radius:12px;background:rgba(4,17,28,.28);display:flex;flex-direction:column;gap:4px}.cup-record span,.cup-summary span{text-transform:uppercase;font-size:10px;letter-spacing:.08em;color:var(--club-muted,#8db3d1)}.cup-record b,.cup-summary b{font-size:22px}.cup-team-games>div{display:grid;grid-template-columns:90px 1fr auto;gap:12px;padding:11px 0;border-top:1px solid rgba(130,180,210,.18);align-items:center}.cup-team-games small{grid-column:2/-1;color:var(--club-muted,#8db3d1)}
.cup-hub{--cup-gold:#ffd400;--cup-purple:#37205f}.cup-hero{background:radial-gradient(circle at 85% 20%,rgba(255,212,0,.18),transparent 30%),linear-gradient(135deg,#102f4e,#24123f);border-color:#7556a9}.cup-summary{margin:16px 0}.cup-summary>div{background:linear-gradient(145deg,#0d2941,#17132c);border-color:#3b4f70}.cup-summary b{color:var(--cup-gold)}
.cup-next{margin-bottom:18px}.cup-next-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cup-next-grid>div{display:grid;grid-template-columns:52px 30px 1fr auto 1fr 30px;gap:8px;align-items:center;padding:11px 12px;border:1px solid #244b68;border-radius:12px;background:#081e31}.cup-next-grid time{color:#ffd400;font-weight:900}.cup-next-grid .tiny-badge{width:26px;height:26px}
.cup-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.cup-group{min-width:0}.cup-group tr.qualifying{background:rgba(255,212,0,.06)}.cup-group tr.qualifying td:first-child{color:#ffd400;font-weight:900}.cup-u21-badge{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:8px;font-weight:900;background:#29364b;color:#fff;border:1px solid #59667a;object-fit:initial!important}.cup-results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cup-results-grid>div{padding:13px;border:1px solid #244b68;border-radius:12px;background:#081e31}.cup-results-grid small{display:block;color:#8db3d1;margin-bottom:8px}.cup-results-grid span{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:5px 0}.cup-results-grid strong{color:#ffd400;font-size:18px}.cup-results-grid em{display:block;margin-top:7px;font-size:11px;color:#cbb5ff}.group-chip{display:inline-flex!important;align-items:center;justify-content:center;background:#38245a;color:#fff!important;border-radius:999px;padding:3px 6px;font-size:10px;font-weight:900}

@media(max-width:760px){
 .next-fixture-card{grid-template-columns:1fr;padding:15px}.fixture-teams{gap:8px}.fixture-badge{width:36px;height:36px;flex-basis:36px}.fixture-teams>div{flex-direction:column;text-align:center}.fixture-teams>div:last-child{justify-content:center;text-align:center}.rollover-note{grid-column:auto}
 .fixture-row{grid-template-columns:1fr;gap:5px}.fixture-row>div{overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.fixture-row>div::-webkit-scrollbar{display:none}.fixture-row>div>b{font-size:13px}
 .cup-record,.cup-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cup-team-games>div{grid-template-columns:68px 1fr auto;font-size:12px}.cup-groups{grid-template-columns:1fr}.cup-results-grid{grid-template-columns:1fr}.cup-next-grid{grid-template-columns:1fr}.cup-next-grid>div{grid-template-columns:44px 24px 1fr auto 1fr 24px;font-size:11px}.cup-next-grid .tiny-badge{width:22px;height:22px}
}

/* rc9 brain/live state */
.next-fixture-card.fixture-state-live,.next-fixture-card.fixture-state-second_half{box-shadow:inset 0 0 0 1px rgba(78,224,143,.45)}
.next-fixture-card.fixture-state-half_time{box-shadow:inset 0 0 0 1px rgba(255,215,0,.45)}
.next-fixture-card.fixture-state-full_time{box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.next-fixture-card .live-score{font-size:1.6rem;letter-spacing:.02em;white-space:nowrap}
.next-fixture-card .live-link{display:block;text-align:center;margin-top:10px}

/* rc11: clearer pre-match state and visible league fixture round */
.next-fixture-card.fixture-state-upcoming .fixture-teams>span{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border:1px solid var(--club-line,#315875);border-radius:999px;background:rgba(255,255,255,.04);font-size:.9rem;text-transform:lowercase}
.next-league-round{margin-top:18px}.fixture-grid .upcoming-result{cursor:default}.fixture-grid .upcoming-result>div{margin-top:5px}.fixture-grid .upcoming-result .upcoming-v{justify-content:center;color:#ffd400}.fixture-grid .upcoming-result .upcoming-v b{font-size:.8rem;text-transform:lowercase;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:2px 9px}.fixture-grid .upcoming-result>div:nth-of-type(3){margin-top:2px}

/* rc12 dedicated All Clubs collection */
.clubs-collection{margin-top:18px}.all-clubs-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.all-club-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px;border-radius:15px;background:#081a2b;border:1px solid #24455f;color:#fff;text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}.all-club-card:hover{transform:translateY(-2px);border-color:#ffd700;background:#0b2942}.all-club-card strong,.all-club-card small{display:block}.all-club-card small{color:#8fa9bd;margin-top:3px}.all-club-card>b{font-size:24px;color:#ffd700}.club-crest-box{width:42px;height:42px;border-radius:11px;background:#fff;display:grid;place-items:center}.club-crest-box img{width:30px;height:30px;object-fit:contain}@media(max-width:1050px){.all-clubs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.all-clubs-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.all-clubs-grid{grid-template-columns:1fr}}

/* rc16: schedule-aware season forecast */
.forecast-panel{margin:18px 0;background:radial-gradient(circle at 90% 5%,color-mix(in srgb,var(--club-accent,#ffd700) 14%,transparent),transparent 34%),linear-gradient(135deg,var(--club-panel,#0b2942),var(--club-panel2,#071b2c));border-color:color-mix(in srgb,var(--club-accent,#ffd700) 40%,var(--club-line,#244b68))}
.forecast-lead{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 18px}.forecast-lead>div{padding:15px;border:1px solid color-mix(in srgb,var(--club-line,#315875) 70%,transparent);border-radius:14px;background:rgba(4,17,28,.28);display:flex;flex-direction:column;gap:4px}.forecast-lead span{text-transform:uppercase;font-size:9px;letter-spacing:.09em;color:var(--club-muted,#8db3d1);font-weight:800}.forecast-lead b{font-size:28px;color:var(--club-accent,#ffd700)}.forecast-lead small{color:var(--club-muted,#8db3d1)}
.forecast-probs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.forecast-prob{padding:12px 14px;border:1px solid color-mix(in srgb,var(--club-line,#315875) 70%,transparent);border-radius:13px;background:rgba(4,17,28,.22)}.forecast-prob>span{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px}.forecast-prob>span strong{color:var(--club-accent,#ffd700);font-size:15px}.forecast-prob>i{display:block;height:8px;margin-top:9px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.forecast-prob>i>em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--club-primary,#0b5d98),var(--club-accent,#ffd700))}.forecast-note,.forecast-intro{font-size:12px;line-height:1.65;color:var(--club-muted,#91acc0);margin:14px 0 0}.forecast-note strong{color:var(--club-text,#fff)}
.league-forecast{margin:18px 0}.league-forecast .forecast-intro{max-width:900px;margin:0 0 14px}.forecast-table td,.forecast-table th{white-space:nowrap}.forecast-table tr:nth-child(1) td:first-child{color:#ffd700}.forecast-table tr:nth-child(n+2):nth-child(-n+7) td:first-child{color:#65d68a}.forecast-table tr:nth-child(n+21) td:first-child{color:#ff7474}.forecast-table .club-cell a{font-weight:800}
@media(max-width:760px){.forecast-lead{grid-template-columns:1fr}.forecast-probs{grid-template-columns:1fr}.forecast-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.forecast-table{min-width:760px}}
/* rc20: forecast is deliberately prominent at the top of every club page. */
.forecast-summary{margin:18px 0 20px;padding:20px 22px;border:2px solid var(--club-accent,#FFD700);border-radius:18px;background:linear-gradient(135deg,var(--club-panel,#fff),var(--club-soft,#f4f7fb));display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 10px 30px rgba(7,29,51,.10)}
.forecast-summary h2{margin:4px 0 6px;font-size:clamp(1.2rem,2.2vw,1.65rem)}
.forecast-summary p{margin:0;max-width:850px}.forecast-summary .btn{white-space:nowrap}
@media(max-width:700px){.forecast-summary{display:block;padding:17px}.forecast-summary .btn{display:inline-flex;margin-top:14px}}

/* rc27: Southend United all-time player archive */
.players-archive-hero{background:radial-gradient(circle at 88% 12%,rgba(255,215,0,.2),transparent 31%),linear-gradient(135deg,#061a31,#003087);border-color:#315d91}.players-archive-actions{display:grid;grid-template-columns:auto minmax(220px,520px) auto;gap:12px;align-items:center;margin-top:22px}.players-archive-actions label{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.players-archive-actions input{width:100%;padding:14px 16px;border-radius:12px;border:1px solid #5279a0;background:#fff;color:#071d33;font:inherit}.players-archive-actions span{font-weight:800;color:#ffd700;white-space:nowrap}.player-az{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}.player-az button{width:34px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:#fff;font-weight:900;cursor:pointer}.player-az button:hover,.player-az button.active{background:#ffd700;color:#071d33;border-color:#ffd700}.players-directory{margin-top:18px}.archive-table{min-width:790px}.archive-table tr[hidden]{display:none}.player-name-cell>a{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.player-name-cell>a:hover b{color:#ffd700}.player-name-cell small{display:block;color:#8db3d1;font-size:10px;margin-top:2px}.player-monogram{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#003087,#071d33);border:1px solid #466f95;color:#ffd700;font-weight:900}.player-empty{text-align:center;padding:25px}.archive-source{font-size:11px;color:#8db3d1;margin:15px 0 0}.archive-source a{color:#ffd700}.player-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:2px 0 14px;font-size:12px}.player-breadcrumb a{color:#8db3d1}.player-profile-hero{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;padding:30px;border:1px solid #315d91;border-radius:22px;background:radial-gradient(circle at 88% 12%,rgba(255,215,0,.18),transparent 30%),linear-gradient(135deg,#061a31,#003087);color:#fff}.profile-monogram{display:grid;place-items:center;width:105px;height:105px;border-radius:26px;background:#fff;color:#003087;font-size:54px;font-weight:950;box-shadow:0 15px 34px rgba(0,0,0,.25)}.player-profile-hero h1{margin:5px 0;font-size:clamp(32px,5vw,58px);line-height:1}.player-profile-hero p{margin:8px 0 0;color:#c5d8e8}.profile-total{text-align:right}.profile-total span,.profile-total small{display:block;color:#c5d8e8}.profile-total strong{display:block;font-size:56px;color:#ffd700;line-height:1.05}.profile-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.profile-facts>div{padding:15px;border:1px solid #244b68;border-radius:13px;background:#081e31;color:#fff}.profile-facts span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#8db3d1;margin-bottom:5px}.profile-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:18px}.player-career-table .career-total{background:rgba(255,215,0,.08)}.player-career-table .career-total td{border-color:rgba(255,215,0,.25)}.profile-summary>div{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-top:1px solid rgba(130,180,210,.18)}.profile-summary>div b{font-size:20px;color:#ffd700}.profile-source{margin-top:18px}.southend-archive-panel{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:18px;background:radial-gradient(circle at 85% 15%,rgba(255,215,0,.16),transparent 32%),linear-gradient(135deg,#071d33,#003087);color:#fff}.southend-archive-panel h2{margin:4px 0}.southend-archive-panel p{margin:0;color:#c5d8e8}.southend-archive-panel .btn{white-space:nowrap}
@media(max-width:760px){.players-archive-actions{grid-template-columns:1fr}.players-archive-actions span{justify-self:start}.player-profile-hero{grid-template-columns:1fr;text-align:center;padding:22px}.profile-monogram{margin:auto}.profile-total{text-align:center}.profile-facts{grid-template-columns:1fr 1fr}.profile-grid{grid-template-columns:1fr}.southend-archive-panel{display:block}.southend-archive-panel .btn{display:inline-flex;margin-top:15px}}

/* rc30: completed Southend season centre */
.season-archive-page{--club:#003087;--club2:#ffd700;--club-line:#315875}.season-archive-page .team-grid{margin-top:18px}.season-archive-page .match-list>div{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:center;padding:12px 8px;border-bottom:1px solid var(--club-line);border-radius:10px}.season-archive-page .match-list>div:hover{background:rgba(0,48,135,.2)}.season-archive-page .match-list small,.season-archive-page .match-list em{display:block;color:#89a3b8;font-style:normal}.season-archive-page .match-list b{display:block;margin:3px 0}.season-archive-page tr.focus{background:rgba(255,215,0,.09)}.season-archive-page tr.focus td:first-child,.season-archive-page tr.focus td:last-child{color:#ffd700}.season-archive-page .players a{color:#fff;text-decoration:none}.season-archive-page .players a:hover{color:#ffd700}
