:root{--bg:#08111f;--panel:#101b2c;--card:#142238;--line:#24344d;--text:#eef4fb;--muted:#91a2b9;--lime:#9ee865;--blue:#6fc4ff;--gold:#ffd166;--danger:#ff7782;--ok:#74e6a5;--max:1240px}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{margin:0;background:radial-gradient(circle at 80% 0,#142744 0,transparent 34rem),var(--bg);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.topbar{min-height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - var(--max))/2));gap:24px;background:rgba(8,17,31,.92);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{font-weight:900;display:flex;align-items:center;gap:10px;letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--lime);color:#07111a}.topbar nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:14px;color:#b9c6d6}.topbar nav a:hover{color:white}.nav-cta{border:1px solid var(--lime);padding:8px 12px;border-radius:8px;color:var(--lime)!important}.shell{width:min(var(--max),calc(100% - 40px));margin:0 auto}.footer{border-top:1px solid var(--line);color:var(--muted);font-size:12px;padding:28px 0 42px;margin-top:64px}.hero{display:grid;grid-template-columns:1.08fr .92fr;gap:70px;align-items:center;padding:90px 0 72px}.eyebrow{font-size:12px;font-weight:850;letter-spacing:.16em;color:var(--lime)}h1,h2,h3,p{margin-top:0}.hero h1,.page-head h1,.dashboard-head h1{font-size:clamp(42px,7vw,82px);line-height:.96;letter-spacing:-.055em;margin:16px 0 22px}.hero h1 em{font-style:normal;color:var(--lime)}.hero p{max-width:660px;color:#a7b6c8;font-size:18px;line-height:1.65}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{border:1px solid var(--line);background:#192940;color:var(--text);padding:11px 16px;border-radius:9px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:44px}.btn.primary{background:var(--lime);color:#07111a;border-color:var(--lime)}.btn.ghost{background:transparent}.btn.small{min-height:36px;padding:7px 11px;font-size:13px}.btn:disabled{opacity:.4;cursor:not-allowed}.hero-board{background:#0d1726;border:1px solid #2d3f5b;border-radius:18px;padding:18px;box-shadow:0 30px 80px rgba(0,0,0,.24)}.score-strip,.chipline{display:flex;align-items:center;justify-content:space-between;padding:10px 8px;color:var(--muted)}.score-strip strong{font-size:28px;color:white}.pitch{height:350px;border:1px solid rgba(255,255,255,.28);background:linear-gradient(90deg,rgba(103,188,109,.1),rgba(103,188,109,.17)),repeating-linear-gradient(90deg,transparent 0 16.6%,rgba(255,255,255,.03) 16.6% 33.2%);border-radius:10px;position:relative;overflow:hidden}.pitch:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid rgba(255,255,255,.27)}.pitch:after{content:"";position:absolute;width:90px;height:90px;border:1px solid rgba(255,255,255,.27);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.player-dot{position:absolute;width:36px;height:36px;border-radius:50%;background:var(--lime);color:#061017;font-weight:900;display:grid;place-items:center;border:3px solid #d9ffbd;z-index:2}.p1{left:20%;top:12%}.p2{right:20%;top:12%}.p3{left:48%;top:28%}.p4{left:28%;top:45%}.p5{right:28%;top:45%}.p6{left:48%;top:60%}.p7{left:18%;top:72%}.p8{right:18%;top:72%}.p9{left:48%;top:84%}.chipline b{color:var(--gold)}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.feature-grid article{padding:32px 32px 34px 0}.feature-grid article+article{border-left:1px solid var(--line);padding-left:32px}.feature-grid b{color:var(--lime);font-size:12px}.feature-grid h3{font-size:22px;margin:12px 0}.feature-grid p{color:var(--muted);line-height:1.6}.flash{margin-top:18px;padding:12px 14px;border-radius:8px;border:1px solid}.flash.success{background:#0e3021;border-color:#2d8c5a}.flash.error{background:#35161c;border-color:#9c3e4d}.auth-wrap{display:grid;place-items:center;padding:70px 0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}.auth-card{width:min(480px,100%)}.auth-card h1{font-size:34px;margin:10px 0 28px}.auth-card label,.fantasy-toolbar label,.league-actions label,.player-admin label{display:grid;gap:7px;color:var(--muted);font-size:13px;margin-bottom:16px}.auth-card input,.fantasy-toolbar input,.fantasy-toolbar select,.league-actions input,.player-admin input,.score-admin input,.prediction-form input{background:#0c1625;color:white;border:1px solid var(--line);border-radius:8px;padding:11px 12px;min-height:44px}.auth-card .btn{width:100%}.demo-box{margin-top:20px;border-top:1px solid var(--line);padding-top:16px;display:grid;gap:5px;color:var(--muted);font-size:12px}.dashboard-head,.page-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;padding:54px 0 30px}.dashboard-head h1,.page-head h1{font-size:clamp(38px,5vw,64px);margin:10px 0 8px}.dashboard-head p,.page-head p{color:var(--muted);max-width:700px}.wallet{min-width:240px;border-left:3px solid var(--lime);padding:10px 0 10px 18px;display:grid}.wallet span{font-size:11px;letter-spacing:.14em;color:var(--muted)}.wallet strong{font-size:42px}.wallet small{color:var(--muted)}.wallet.compact strong{font-size:34px}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:6px 0 34px}.stat-row>div{padding:22px;display:grid;gap:7px;background:rgba(18,32,52,.65)}.stat-row>div+div{border-left:1px solid var(--line)}.stat-row span{color:var(--muted);font-size:12px}.stat-row strong{font-size:23px}.two-col{display:grid;grid-template-columns:1.45fr .75fr;gap:28px}.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:15px}.section-title h2{margin:0}.section-title a,.section-title span{font-size:13px;color:var(--muted)}.fixture-list{border-top:1px solid var(--line)}.fixture{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:18px 0}.fixture time{font-size:12px;color:var(--muted)}.fixture strong span{color:var(--muted);font-weight:500}.fixture a{color:var(--lime);font-size:13px;font-weight:800}.mini-squad{display:grid;gap:2px}.mini-squad>div{display:grid;grid-template-columns:42px 1fr auto;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);align-items:center}.mini-squad span,.mini-squad em{font-size:11px;color:var(--muted);font-style:normal}.fixture-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.match-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px}.match-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em}.match-teams{display:grid;grid-template-columns:1fr 60px 1fr;gap:10px;align-items:center;text-align:center;padding:25px 0}.match-teams>div{display:grid;gap:9px;justify-items:center}.team-badge{width:52px;height:52px;border:1px solid #38506e;border-radius:50%;display:grid;place-items:center;background:#0b1624;color:var(--blue);font-weight:900}.versus{color:var(--muted)}.prediction-form{display:grid;grid-template-columns:1fr 100px auto;gap:10px;align-items:end;border-top:1px solid var(--line);padding-top:16px}.prediction-form label{font-size:11px;color:var(--muted);display:grid;gap:5px}.score-inputs{display:flex;align-items:center;gap:8px}.score-inputs input{width:64px;text-align:center;font-size:18px;font-weight:800}.closed{border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:13px}.fantasy-meter{display:grid;text-align:right}.fantasy-meter span,.fantasy-meter small{color:var(--muted)}.fantasy-meter strong{font-size:34px}.fantasy-toolbar{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}.fantasy-toolbar label{margin:0}.player-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.player-table{width:100%;border-collapse:collapse;background:rgba(14,25,42,.85)}.player-table th,.player-table td{text-align:left;padding:13px 15px;border-bottom:1px solid var(--line);white-space:nowrap}.player-table th{position:sticky;top:71px;background:#101c2e;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.player-table td{font-size:14px}.player-check{width:20px;height:20px;accent-color:var(--lime)}.pos{font-size:10px;font-weight:900;border-radius:99px;padding:5px 8px;background:#22324a}.pos.gk{color:var(--gold)}.pos.def{color:var(--blue)}.pos.mid{color:var(--ok)}.pos.fwd{color:#ff9b83}.leaderboard,.private-league{border-top:1px solid var(--line)}.leader-row{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:10px;padding:16px 4px;border-bottom:1px solid var(--line)}.rank{color:var(--muted)}.leader-row>div{display:grid;gap:2px}.leader-row span{color:var(--muted);font-size:12px}.leader-row em{font-style:normal;font-size:20px;font-weight:900}.league-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:40px}.league-actions .panel{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.league-actions h3{grid-column:1/-1;margin-bottom:0}.league-actions label{margin:0}.private-league{margin-top:32px;padding-top:22px}.data-state{font-size:12px;border:1px solid;padding:8px 10px;border-radius:99px}.data-state.live{color:var(--ok);border-color:#316c4a}.data-state.offline{color:var(--gold);border-color:#675823}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:26px;overflow:auto}.tabs a{padding:10px 12px;color:var(--muted);font-size:13px;white-space:nowrap}.tabs a.active{color:white;border-bottom:2px solid var(--lime)}.admin-stats{grid-template-columns:repeat(4,1fr)}.admin-list{border-top:1px solid var(--line)}.admin-line{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.admin-line>div:first-child{display:grid;gap:3px}.admin-line span{color:var(--muted);font-size:12px}.fixture-admin,.player-admin{display:grid;grid-template-columns:1fr auto}.score-admin{display:flex!important;align-items:center;gap:6px}.score-admin input{width:66px}.player-admin{grid-template-columns:1fr 110px 110px auto}.player-admin label{margin:0}.player-admin input{width:100%}.sync-log{border-top:1px solid var(--line)}.sync-log>div{display:grid;grid-template-columns:90px 1fr auto;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.sync-log span,.sync-log time{color:var(--muted)}.hint{color:var(--muted);font-size:12px;margin-top:14px}code{background:#0a1422;border:1px solid var(--line);padding:2px 5px;border-radius:5px}
@media(max-width:900px){.topbar{position:static;padding:14px 20px;align-items:flex-start}.topbar nav{justify-content:flex-end}.hero{grid-template-columns:1fr;padding-top:54px}.feature-grid{grid-template-columns:1fr}.feature-grid article+article{border-left:0;border-top:1px solid var(--line);padding-left:0}.two-col{grid-template-columns:1fr}.fixture-cards{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(2,1fr)}.player-admin{grid-template-columns:1fr 90px 90px auto}.player-table th{top:0}}@media(max-width:650px){.shell{width:min(100% - 24px,var(--max))}.topbar{display:block}.brand{margin-bottom:12px}.topbar nav{justify-content:flex-start;gap:12px}.hero{gap:30px}.pitch{height:300px}.dashboard-head,.page-head{display:grid;align-items:start;padding-top:36px}.wallet{border-left:0;border-top:3px solid var(--lime);padding:14px 0 0}.stat-row{grid-template-columns:1fr}.stat-row>div+div{border-left:0;border-top:1px solid var(--line)}.fixture{grid-template-columns:1fr auto}.fixture time{grid-column:1/-1}.prediction-form{grid-template-columns:1fr 1fr}.prediction-form .btn{grid-column:1/-1}.fantasy-toolbar{grid-template-columns:1fr}.league-actions{grid-template-columns:1fr}.league-actions .panel{grid-template-columns:1fr}.player-admin,.fixture-admin{grid-template-columns:1fr}.score-admin{justify-content:flex-start}.admin-line{align-items:flex-start}.sync-log>div{grid-template-columns:1fr}.hero h1{font-size:48px}}


/* Player cards and profile */
.player-table td{padding-top:16px;padding-bottom:16px}.player-table tbody tr{transition:background .15s ease}.player-table tbody tr:hover{background:#13233a}.player-identity{display:flex;align-items:center;gap:12px;min-width:230px}.player-identity>span:last-child{display:grid;gap:3px}.player-identity strong,.player-inline-link{color:var(--text)}.player-identity small{font-size:11px;color:var(--muted)}.player-identity:hover strong,.player-inline-link:hover{color:var(--lime)}.player-avatar,.player-profile-avatar{display:grid;place-items:center;border:1px solid #3a506f;background:#0c1728;color:var(--lime);font-weight:900;letter-spacing:.04em}.player-avatar{width:42px;height:42px;border-radius:12px;flex:0 0 42px}.club-cell{display:flex;align-items:center;gap:9px}.club-crest{width:28px;height:28px;object-fit:contain;display:inline-block;vertical-align:middle}.profile-back{display:inline-flex;margin-top:34px;color:var(--muted);font-size:13px;font-weight:800}.profile-back:hover{color:var(--lime)}.player-profile-hero{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;padding:28px 0 30px;border-bottom:1px solid var(--line)}.player-profile-avatar{width:94px;height:94px;border-radius:22px;font-size:30px}.player-profile-heading h1{font-size:clamp(38px,6vw,68px);letter-spacing:-.045em;line-height:1;margin:8px 0 12px}.player-profile-heading p{display:flex;align-items:center;gap:9px;color:var(--muted);margin:0}.player-profile-heading p .club-crest{width:34px;height:34px}.player-profile-kicker{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.player-profile-points{min-width:190px;border-left:3px solid var(--lime);padding:8px 0 8px 18px;display:grid}.player-profile-points span,.player-profile-points small{color:var(--muted);font-size:11px}.player-profile-points strong{font-size:44px;line-height:1.05}.profile-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:26px 0 30px}.profile-stat-grid>div{display:grid;gap:5px;padding:18px 20px;background:rgba(18,32,52,.65)}.profile-stat-grid>div+div{border-left:1px solid var(--line)}.profile-stat-grid span,.profile-stat-grid small{font-size:11px;color:var(--muted)}.profile-stat-grid strong{font-size:22px}.profile-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px}.profile-details dl{margin:0;display:grid}.profile-details dl>div{display:grid;grid-template-columns:145px 1fr;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.profile-details dl>div:last-child{border-bottom:0}.profile-details dt{font-size:12px;color:var(--muted)}.profile-details dd{margin:0;font-weight:750}.profile-fixtures{border-top:1px solid var(--line)}.profile-fixture{display:grid;grid-template-columns:145px 1fr;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.profile-fixture time{font-size:12px;color:var(--muted)}.profile-fixture>div{display:grid;gap:3px}.profile-fixture span{font-size:11px;color:var(--muted)}.muted-panel{color:var(--muted)}
@media(max-width:800px){.player-profile-hero{grid-template-columns:auto 1fr}.player-profile-points{grid-column:1/-1;border-left:0;border-top:3px solid var(--lime);padding:14px 0 0}.profile-stat-grid{grid-template-columns:repeat(2,1fr)}.profile-stat-grid>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.profile-stat-grid>div:nth-child(4){border-top:1px solid var(--line)}.profile-layout{grid-template-columns:1fr}}
@media(max-width:520px){.player-profile-hero{grid-template-columns:1fr}.player-profile-avatar{width:76px;height:76px}.player-profile-points{grid-column:auto}.profile-stat-grid{grid-template-columns:1fr}.profile-stat-grid>div+div{border-left:0;border-top:1px solid var(--line)}.profile-details dl>div,.profile-fixture{grid-template-columns:1fr;gap:5px}.player-identity{min-width:200px}}

/* V1.0.4 season records and data capability diagnostics */
.season-record,.player-history{margin-top:24px}.season-record{padding:20px 0}.season-record .section-title,.player-history .section-title{align-items:flex-end}.coverage-pill{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border:1px solid var(--line,#2d3a50);border-radius:999px;font-size:.78rem;color:var(--muted,#9aa7bb);white-space:nowrap}.season-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.season-stat-grid>div{padding:15px 14px;border:1px solid var(--line,#2d3a50);border-radius:12px;background:rgba(255,255,255,.025)}.season-stat-grid span{display:block;color:var(--muted,#9aa7bb);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.season-stat-grid strong{display:block;margin-top:5px;font-size:1.3rem}.data-note{margin:12px 0 0;padding:11px 13px;border-left:3px solid #e3b341;background:rgba(227,179,65,.08);color:var(--muted,#b4bfd0);font-size:.9rem}.history-list{display:grid;gap:8px}.history-row{display:grid;grid-template-columns:72px minmax(160px,.8fr) 1fr;align-items:center;gap:14px;padding:13px 14px;border:1px solid var(--line,#2d3a50);border-radius:12px;background:rgba(255,255,255,.02)}.history-date,.history-match{display:flex;flex-direction:column;gap:2px}.history-date span,.history-match span{color:var(--muted,#9aa7bb);font-size:.8rem}.history-flags{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.history-flags span{display:inline-flex;align-items:center;min-height:27px;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.055);font-size:.76rem;color:var(--text,#eef4ff)}.harvest-panel{margin-top:22px}.harvest-panel code{white-space:normal;overflow-wrap:anywhere}.capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.capability-grid>div{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:12px;border:1px solid var(--line,#2d3a50);border-radius:10px}.capability-grid strong{text-transform:capitalize}.capability-grid small{grid-column:1/-1;color:var(--muted,#9aa7bb)}.capability{font-size:.72rem;font-weight:800;letter-spacing:.05em}.capability.available{color:#6fdda2}.capability.blocked{color:#ff8c8c}.capability.limited{color:#e5c66d}.footer{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
@media (max-width:760px){.season-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-row{grid-template-columns:58px 1fr}.history-flags{grid-column:1/-1;justify-content:flex-start}.capability-grid{grid-template-columns:1fr}.coverage-pill{white-space:normal}.footer{flex-direction:column}}

/* V1.0.6 season statistics centre */
.season-stats-head{align-items:end}.season-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:0 0 34px}.season-overview-grid>div{display:grid;gap:5px;padding:20px;background:rgba(18,32,52,.55)}.season-overview-grid>div+div{border-left:1px solid var(--line)}.season-overview-grid span,.season-overview-grid small{font-size:11px;color:var(--muted)}.season-overview-grid span{text-transform:uppercase;letter-spacing:.07em}.season-overview-grid strong{font-size:30px;line-height:1.1}.season-leaders-section,.season-table-section{margin-top:34px}.season-leader-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.season-leader-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:rgba(18,32,52,.42)}.leader-card-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}.leader-card-head h3{margin:0}.leader-card-head span{font-size:11px;color:var(--muted)}.stat-leader-list{display:grid}.stat-leader-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;color:var(--text);border-bottom:1px solid var(--line)}.stat-leader-row:last-child{border-bottom:0}.stat-leader-row:hover{background:rgba(255,255,255,.035)}.stat-leader-row>b{color:var(--muted);font-size:12px}.stat-leader-row>em{font-style:normal;font-size:22px;font-weight:900}.stat-player{display:flex;align-items:center;gap:10px;min-width:0}.stat-player>span:last-child{display:grid;gap:2px;min-width:0}.stat-player strong,.stat-player small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-player small{font-size:11px;color:var(--muted)}.mini-crest{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border:1px solid var(--line);border-radius:9px;font-size:9px;color:var(--muted)}.mini-crest img{max-width:25px;max-height:25px;object-fit:contain}.empty-stat{padding:18px;color:var(--muted)}.season-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}.season-table{width:100%;border-collapse:collapse;min-width:720px}.season-table th,.season-table td{padding:11px 12px;text-align:right;border-bottom:1px solid var(--line);font-size:13px}.season-table th{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:#0c1728}.season-table th:nth-child(1),.season-table td:nth-child(1){width:42px;text-align:center;color:var(--muted)}.season-table th:nth-child(2),.season-table td:nth-child(2){text-align:left}.season-table tbody tr:last-child td{border-bottom:0}.table-club{display:flex;align-items:center;gap:9px;min-width:210px}.table-club img{width:28px;height:28px;object-fit:contain}.table-club small{color:var(--muted);margin-left:auto;font-size:10px}.season-table-section .data-note{margin-top:14px}
@media(max-width:850px){.season-overview-grid{grid-template-columns:repeat(2,1fr)}.season-overview-grid>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.season-overview-grid>div:nth-child(4){border-top:1px solid var(--line)}.season-leader-grid{grid-template-columns:1fr}}
@media(max-width:520px){.season-overview-grid{grid-template-columns:1fr}.season-overview-grid>div+div{border-left:0;border-top:1px solid var(--line)}.stat-leader-row{grid-template-columns:24px minmax(0,1fr) auto;padding:11px 12px}.stat-player small{max-width:180px}}


/* Fantasy XI builder UX */
.fantasy-save-actions{display:flex;align-items:center;gap:12px;justify-content:flex-end;min-height:44px}.draft-status{font-size:12px;color:var(--muted);white-space:nowrap}.draft-status[data-state="saved"]{color:var(--ok)}.draft-status[data-state="error"]{color:#ff9b83}.draft-status[data-state="saving"],.draft-status[data-state="pending"]{color:var(--gold)}.fantasy-filters{display:grid;grid-template-columns:minmax(260px,1fr) 180px auto;gap:12px;align-items:end;background:rgba(14,25,42,.58);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px}.fantasy-filters label{display:grid;gap:6px;color:var(--muted);font-size:12px}.fantasy-filters input,.fantasy-filters select{background:#0c1625;color:white;border:1px solid var(--line);border-radius:8px;padding:11px 12px;min-height:44px}.filter-count{color:var(--muted);font-size:12px;padding:0 4px 13px}.player-row{transition:background-color .12s ease}.player-row.selected td{background:rgba(137,255,89,.055)}.player-row.selected td:first-child{box-shadow:inset 3px 0 0 var(--lime)}.no-player-results{padding:30px;text-align:center;color:var(--muted);background:rgba(14,25,42,.85)}.fantasy-toolbar .btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:800px){.fantasy-filters{grid-template-columns:1fr 1fr}.filter-count{grid-column:1/-1;padding:0}.fantasy-save-actions{justify-content:space-between}}@media(max-width:650px){.fantasy-filters{grid-template-columns:1fr}.filter-count{grid-column:auto}.fantasy-save-actions{align-items:stretch;flex-direction:column}.draft-status{white-space:normal}}

/* V1.0.8 prediction centre */
.prediction-head{padding-bottom:22px}.prediction-tabs{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);margin-bottom:24px;overflow-x:auto;padding-bottom:0}.prediction-tabs a{display:flex;align-items:center;gap:9px;padding:12px 14px;border-bottom:2px solid transparent;color:var(--muted);font-size:13px;font-weight:800;white-space:nowrap}.prediction-tabs a b{display:grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:#17263c;color:#cbd7e6;font-size:11px;padding:0 7px}.prediction-tabs a.active{color:white;border-bottom-color:var(--lime)}.prediction-tabs a.active b{background:var(--lime);color:#07111a}.prediction-intro{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 0 18px}.prediction-intro>div{display:grid;gap:4px}.prediction-intro strong{font-size:16px}.prediction-intro span{font-size:12px;color:var(--muted)}.prediction-rule{border:1px solid var(--line);border-radius:999px;padding:8px 11px;white-space:nowrap}.prediction-grid{gap:20px}.prediction-card{padding:0;overflow:hidden}.prediction-card .match-meta{padding:15px 18px;border-bottom:1px solid var(--line);background:#0d1828}.prediction-card .prediction-teams{padding:25px 18px 20px}.prediction-team{min-width:0;display:grid;justify-items:center;gap:8px}.prediction-team b{font-size:14px;line-height:1.25}.prediction-team small{font-size:10px;color:var(--muted);letter-spacing:.08em}.prediction-crest{width:58px;height:58px;object-fit:contain;display:block}.team-badge.large{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;background:#182a42;border:1px solid var(--line);font-size:12px;font-weight:900}.prediction-form.refined{padding:16px 18px 18px;background:#0d1828;grid-template-columns:minmax(180px,1fr) 110px auto}.prediction-field{display:grid;gap:6px;min-width:0}.prediction-field>span{font-size:11px;color:var(--muted);font-weight:700}.prediction-form.refined .score-inputs{display:grid;grid-template-columns:1fr auto 1fr;gap:7px;align-items:center}.prediction-form.refined .score-inputs input{width:100%;text-align:center}.prediction-list{display:grid;gap:14px}.prediction-ticket{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}.prediction-ticket.won{border-color:#2f8058}.prediction-ticket.lost{opacity:.86}.prediction-ticket-main{display:grid;grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);gap:18px;align-items:center;padding:18px 20px}.ticket-club{display:flex;align-items:center;gap:12px;min-width:0}.ticket-club.away{justify-content:flex-end;text-align:right}.ticket-club span{font-weight:800;line-height:1.25}.ticket-crest{width:42px;height:42px;object-fit:contain;flex:0 0 auto}.ticket-score{text-align:center;display:grid;justify-items:center;gap:3px}.ticket-score small,.ticket-score span{color:var(--muted);font-size:11px}.ticket-score strong{font-size:28px;letter-spacing:-.03em}.ticket-summary{border-top:1px solid var(--line);display:flex;gap:24px;align-items:center;padding:13px 20px;background:#0d1828;flex-wrap:wrap}.ticket-summary>span:not(.status-pill){display:grid;gap:2px}.ticket-summary small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.ticket-summary b{font-size:13px}.status-pill{margin-left:auto;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.status-pill.open{background:#19324c;color:#8ed0ff}.status-pill.win{background:#153825;color:#86e7ac}.status-pill.loss{background:#351c23;color:#ff9aa4}.empty-predictions{text-align:center;padding:44px 24px}.empty-predictions h2{margin-bottom:8px}.empty-predictions p{color:var(--muted);max-width:560px;margin:0 auto 18px}
@media(max-width:760px){.prediction-intro{align-items:flex-start;display:grid}.prediction-rule{justify-self:start}.prediction-form.refined{grid-template-columns:1fr 100px}.prediction-form.refined .btn{grid-column:1/-1}.prediction-ticket-main{grid-template-columns:1fr 110px 1fr;gap:10px;padding:16px 14px}.ticket-club{display:grid;justify-items:start;gap:6px}.ticket-club.away{justify-items:end}.ticket-crest{width:34px;height:34px}.ticket-score strong{font-size:22px}.ticket-summary{padding:12px 14px;gap:16px}.status-pill{margin-left:0}}
@media(max-width:480px){.prediction-card .prediction-teams{grid-template-columns:1fr 36px 1fr}.prediction-crest,.team-badge.large{width:48px;height:48px}.prediction-form.refined{grid-template-columns:1fr}.prediction-form.refined .btn{grid-column:auto}.prediction-ticket-main{grid-template-columns:1fr 86px 1fr}.ticket-club span{font-size:12px}.ticket-score strong{font-size:20px}.ticket-score span{font-size:10px}.ticket-summary>span:not(.status-pill){min-width:80px}}

/* V1.0.9 site-wide visual system ------------------------------------------------ */
html[data-theme="light"]{
  --bg:#f4f3ef;--panel:#ffffff;--card:#ffffff;--surface-subtle:#eeeee9;--surface-raised:#fafaf7;
  --line:#d8d8d1;--line-strong:#bebfb8;--text:#18201f;--muted:#68716f;
  --lime:#17694b;--accent:#17694b;--accent-hover:#11523a;--accent-soft:#e4efe9;
  --blue:#2f659a;--gold:#936a13;--danger:#b84343;--ok:#17694b;
  --nav:#17211f;--nav-text:#dce5e1;--nav-muted:#aebbb6;--table-head:#ebece7;
  --shadow:0 1px 2px rgba(20,28,26,.04);--max:1240px;
}
html[data-theme="dark"]{
  --bg:#11161d;--panel:#181f27;--card:#1b232c;--surface-subtle:#202933;--surface-raised:#151b22;
  --line:#303b46;--line-strong:#46535e;--text:#eef2f0;--muted:#9ba7a4;
  --lime:#71b994;--accent:#71b994;--accent-hover:#8ac8a8;--accent-soft:#20372e;
  --blue:#7db0dc;--gold:#d8b665;--danger:#e27d7d;--ok:#76c49d;
  --nav:#0c1116;--nav-text:#e7ecea;--nav-muted:#a2afaa;--table-head:#1d252e;
  --shadow:none;--max:1240px;
}
html{background:var(--bg);color:var(--text);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}
a{color:inherit}.shell{width:min(var(--max),calc(100% - 44px));margin:0 auto}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{background:var(--panel)!important;color:var(--text)!important;border:1px solid var(--line-strong)!important;border-radius:4px!important;box-shadow:none!important;outline:none}
input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)!important}
button,input,select,textarea{font:inherit}.player-check{accent-color:var(--accent)}

/* Header: restrained club-site / sports-desk treatment */
.site-header{position:sticky;top:0;z-index:40;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
.masthead{width:min(var(--max),calc(100% - 44px));min-height:70px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:0}.brand-mark{width:38px;height:38px;border:0;border-radius:2px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px;letter-spacing:.05em;font-weight:900}.brand-copy{display:grid;line-height:1.05}.brand-copy strong{font-size:19px;letter-spacing:-.02em}.brand-copy small{margin-top:4px;color:var(--muted);font-size:11px;font-weight:500}
.account-bar{display:flex;align-items:center;gap:20px}.account-balance{display:grid;text-align:right;line-height:1.15}.account-balance small{font-size:10px;color:var(--muted)}.account-balance strong{font-size:17px}.account-link{display:flex;align-items:center;gap:9px;border-left:1px solid var(--line);padding-left:20px}.account-link>span:last-child{display:grid;line-height:1.15}.account-link strong{font-size:13px}.account-link small{font-size:10px;color:var(--muted);margin-top:3px}.account-avatar{width:34px;height:34px;border:1px solid var(--line-strong);background:var(--surface-subtle);display:grid;place-items:center;font-size:11px;font-weight:800;border-radius:50%}.account-link:hover strong,.account-link.active strong{color:var(--accent)}
.guest-actions{display:flex;align-items:center;gap:16px;font-size:13px}
.nav-band{background:var(--nav);color:var(--nav-text);display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,calc((100vw - var(--max))/2));min-height:43px}.primary-nav{display:flex;align-items:stretch;gap:2px;overflow-x:auto}.primary-nav a,.signout-link{display:flex;align-items:center;min-height:43px;padding:0 13px;font-size:12px;font-weight:700;color:var(--nav-muted);border-bottom:3px solid transparent;white-space:nowrap}.primary-nav a:hover,.signout-link:hover{color:var(--nav-text)}.primary-nav a.active{color:#fff;border-bottom-color:var(--accent)}.signout-link{padding-right:0}

/* Typography and spacing */
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:var(--text);font-weight:700;letter-spacing:-.025em}h2{font-size:25px}h3{font-size:19px}.eyebrow{display:inline-block;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.025em;text-transform:none}.page-head,.dashboard-head{display:flex;justify-content:space-between;gap:34px;align-items:flex-end;padding:42px 0 24px;border-bottom:1px solid var(--line);margin-bottom:26px}.page-head h1,.dashboard-head h1{font-size:clamp(34px,4.2vw,48px);line-height:1.03;letter-spacing:-.035em;margin:8px 0 8px}.page-head p,.dashboard-head p{color:var(--muted);max-width:680px;margin:0}.section-title{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:12px}.section-title h2{margin:0}.section-title a{color:var(--accent);font-weight:700}.section-title span{font-size:12px;color:var(--muted)}

/* Buttons and feedback */
.btn{border:1px solid var(--line-strong);background:var(--panel);color:var(--text);padding:10px 15px;border-radius:4px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:42px;box-shadow:none}.btn:hover{border-color:var(--text)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{background:transparent}.btn.small{min-height:34px;padding:6px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}
.flash{margin-top:18px;padding:11px 13px;border-radius:3px;border:1px solid;font-size:13px}.flash.success{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--text)}.flash.error{background:color-mix(in srgb,var(--danger) 9%,var(--panel));border-color:color-mix(in srgb,var(--danger) 50%,var(--line));color:var(--text)}
.panel,.match-card,.prediction-ticket,.season-leader-card{background:var(--panel);border:1px solid var(--line);border-radius:5px;box-shadow:var(--shadow)}.panel{padding:22px}

/* Public home */
.hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:70px;align-items:center;padding:78px 0 66px}.hero-copy{max-width:720px}.hero h1{font-size:clamp(42px,5.8vw,68px);line-height:1.01;letter-spacing:-.045em;margin:11px 0 18px}.hero p{max-width:660px;color:var(--muted);font-size:18px;line-height:1.6}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.hero-board{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:0;padding:0;box-shadow:none}.hero-board-label{margin:0;padding:14px 18px 12px;font-size:12px;font-weight:800;border-bottom:1px solid var(--line)}.hero-ledger{display:grid}.hero-ledger>div{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:17px 18px;border-bottom:1px solid var(--line)}.hero-ledger span{font-size:13px;font-weight:700}.hero-ledger strong{font-size:17px}.hero-ledger small{grid-column:1/-1;color:var(--muted);font-size:11px}.hero-board-note{margin:0!important;padding:14px 18px!important;font-size:12px!important;line-height:1.45!important;color:var(--muted)!important}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:10px}.feature-grid article{padding:28px 32px 30px 0}.feature-grid article+article{border-left:1px solid var(--line);padding-left:32px}.feature-grid b{color:var(--accent);font-size:11px}.feature-grid h3{font-size:21px;margin:9px 0 8px}.feature-grid p{color:var(--muted);line-height:1.55;margin:0}

/* Auth */
.auth-wrap{display:grid;place-items:center;padding:64px 0}.auth-card{width:min(460px,100%);border-top:4px solid var(--accent)}.auth-card h1{font-size:33px;margin:8px 0 25px}.auth-card label,.fantasy-toolbar label,.league-actions label,.player-admin label{display:grid;gap:6px;color:var(--muted);font-size:12px;margin-bottom:15px}.auth-card input,.fantasy-toolbar input,.fantasy-toolbar select,.league-actions input,.player-admin input,.score-admin input,.prediction-form input{padding:10px 11px;min-height:42px}.auth-card .btn{width:100%}

/* Dashboard */
.wallet{min-width:210px;border:0;border-left:1px solid var(--line-strong);padding:3px 0 3px 22px;display:grid}.wallet span{font-size:10px;letter-spacing:0;color:var(--muted)}.wallet strong{font-family:Georgia,"Times New Roman",serif;font-size:36px;line-height:1.05}.wallet small{color:var(--muted);font-size:11px}.wallet.compact strong{font-size:30px}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:0;overflow:hidden;margin:0 0 32px;background:var(--panel)}.stat-row>div{padding:18px 20px;display:grid;gap:4px;background:transparent}.stat-row>div+div{border-left:1px solid var(--line)}.stat-row span{color:var(--muted);font-size:11px}.stat-row strong{font-family:Georgia,"Times New Roman",serif;font-size:21px}.two-col{display:grid;grid-template-columns:1.5fr .8fr;gap:34px}.fixture-list{border-top:2px solid var(--text)}.fixture{grid-template-columns:145px minmax(0,1fr) auto;border-bottom:1px solid var(--line);padding:15px 0}.fixture time{font-size:11px;color:var(--muted)}.fixture a{color:var(--accent);font-size:12px}.mini-squad>div{padding:9px 0}.mini-squad span,.mini-squad em{font-size:10px}

/* Predictions */
.prediction-head{padding-bottom:24px}.prediction-tabs,.tabs{display:flex;gap:22px;align-items:center;border-bottom:1px solid var(--line);margin-bottom:24px;overflow-x:auto}.prediction-tabs a,.tabs a{padding:10px 0;border-bottom:3px solid transparent;color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.prediction-tabs a b{display:inline-grid;place-items:center;min-width:21px;height:21px;margin-left:5px;border-radius:50%;background:var(--surface-subtle);color:var(--muted);font-size:10px;padding:0 5px}.prediction-tabs a.active,.tabs a.active{color:var(--text);border-bottom-color:var(--accent)}.prediction-tabs a.active b{background:var(--accent);color:#fff}.prediction-intro{margin-bottom:14px}.prediction-rule{border:1px solid var(--line);border-radius:3px;padding:6px 9px;background:var(--surface-raised)}.fixture-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.prediction-card{overflow:hidden;border-radius:5px}.prediction-card .match-meta{padding:12px 15px;border-bottom:1px solid var(--line);background:var(--surface-subtle);text-transform:none;letter-spacing:0}.prediction-card .prediction-teams{padding:23px 16px 19px}.prediction-team{gap:7px}.prediction-team b{font-size:13px}.prediction-team small{font-size:10px;letter-spacing:0}.prediction-crest{width:54px;height:54px}.team-badge,.team-badge.large{background:var(--surface-subtle);border:1px solid var(--line);color:var(--accent);border-radius:3px}.prediction-form.refined{padding:14px 15px 15px;background:var(--surface-raised);border-top:1px solid var(--line)}.prediction-field>span{font-size:10px}.prediction-ticket{border-radius:5px}.prediction-ticket-main{padding:17px 18px}.ticket-summary{background:var(--surface-subtle);padding:11px 18px}.ticket-summary small{text-transform:none;letter-spacing:0}.status-pill{border-radius:3px;padding:5px 8px;font-size:10px;letter-spacing:0}.status-pill.open{background:color-mix(in srgb,var(--blue) 14%,var(--panel));color:var(--blue)}.status-pill.win{background:var(--accent-soft);color:var(--accent)}.status-pill.loss{background:color-mix(in srgb,var(--danger) 12%,var(--panel));color:var(--danger)}

/* Fantasy XI */
.fantasy-meter strong{font-family:Georgia,"Times New Roman",serif;font-size:29px}.fantasy-toolbar{background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:14px}.fantasy-filters{background:var(--surface-raised);border:1px solid var(--line);border-radius:5px;padding:13px}.fantasy-filters input,.fantasy-filters select{padding:10px 11px;min-height:42px}.player-table-wrap{border:1px solid var(--line);border-radius:5px;background:var(--panel)}.player-table{background:var(--panel)}.player-table th,.player-table td{padding:12px 13px;border-bottom:1px solid var(--line)}.player-table th{top:112px;background:var(--table-head);color:var(--muted);font-size:10px;letter-spacing:.025em;text-transform:none}.player-row.selected td{background:var(--accent-soft)}.player-row.selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.player-row:hover td{background:var(--surface-raised)}.player-row.selected:hover td{background:var(--accent-soft)}.no-player-results{background:var(--surface-raised)}.player-avatar,.player-profile-avatar{border:1px solid var(--line-strong);background:var(--surface-subtle);color:var(--accent);border-radius:50%}.player-avatar{width:38px;height:38px}.pos{font-size:10px;font-weight:800;border-radius:3px;padding:4px 6px;background:var(--surface-subtle);border:1px solid var(--line)}.pos.gk{color:var(--gold)}.pos.def{color:var(--blue)}.pos.mid{color:var(--accent)}.pos.fwd{color:var(--danger)}

/* Player profile */
.profile-back{margin-top:28px;color:var(--muted);font-size:12px}.player-profile-hero{gap:22px;padding:26px 0;border-bottom:1px solid var(--line)}.player-profile-avatar{width:86px;height:86px;font-size:27px}.player-profile-heading h1{font-size:clamp(36px,5vw,54px);letter-spacing:-.035em;margin:7px 0 10px}.player-profile-kicker{text-transform:none;letter-spacing:0}.player-profile-points{border-left:1px solid var(--line-strong);padding-left:20px}.player-profile-points strong{font-family:Georgia,"Times New Roman",serif;font-size:38px}.profile-stat-grid,.season-overview-grid{border:1px solid var(--line);border-radius:0;background:var(--panel)}.profile-stat-grid>div,.season-overview-grid>div{background:transparent}.season-record{padding:18px 0}.season-stat-grid>div{background:var(--panel)!important;border-color:var(--line)!important}.history-row{border:1px solid var(--line);border-radius:4px;background:var(--panel)}.history-flags span{border-radius:3px;background:var(--surface-subtle);color:var(--text);border:1px solid var(--line)}.data-note{border-left:3px solid var(--gold);background:color-mix(in srgb,var(--gold) 8%,var(--panel));color:var(--muted)}

/* Season stats */
.season-overview-grid{border-radius:0}.season-overview-grid>div{padding:18px}.season-overview-grid span{text-transform:none;letter-spacing:0}.season-overview-grid strong{font-family:Georgia,"Times New Roman",serif;font-size:27px}.season-leader-grid{gap:16px}.season-leader-card{border-radius:5px;background:var(--panel)}.leader-card-head{padding:13px 15px}.stat-leader-row{padding:11px 14px}.stat-leader-row:hover{background:var(--surface-raised)}.mini-crest{border-radius:3px;background:var(--surface-raised)}.season-table-wrap{border:1px solid var(--line);border-radius:5px;background:var(--panel)}.season-table th{background:var(--table-head);text-transform:none;letter-spacing:0}.season-table tbody tr:hover{background:var(--surface-raised)}

/* Leaderboards, leagues, admin */
.leaderboard,.private-league,.admin-list,.sync-log{border-top:2px solid var(--text)}.leader-row{padding:14px 3px}.leader-row em{font-family:Georgia,"Times New Roman",serif;font-size:18px}.league-actions{gap:16px}.league-actions .panel{border-top:3px solid var(--accent)}.data-state{border-radius:3px}.data-state.live{color:var(--accent);border-color:var(--accent)}.data-state.offline{color:var(--gold);border-color:var(--gold)}.admin-line{padding:12px 2px}.harvest-panel{border-top:3px solid var(--accent)}.capability-grid>div{border-radius:4px;background:var(--surface-raised)}.capability.available{color:var(--accent)}.capability.blocked{color:var(--danger)}.capability.limited{color:var(--gold)}

/* Profile & settings */
.settings-head{display:flex;justify-content:space-between;align-items:end;gap:28px;padding:42px 0 24px;border-bottom:1px solid var(--line);margin-bottom:28px}.settings-head h1{font-size:clamp(34px,4.2vw,48px);margin:7px 0 7px}.settings-head p{margin:0;color:var(--muted);max-width:680px}.settings-avatar{width:72px;height:72px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface-subtle);display:grid;place-items:center;font-family:Georgia,"Times New Roman",serif;font-size:24px;font-weight:700;color:var(--accent)}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:42px}.settings-main{display:grid;gap:34px}.settings-section{border-top:2px solid var(--text);padding-top:17px}.settings-section-head{margin-bottom:20px}.settings-section-head h2{margin:0 0 5px}.settings-section-head p{margin:0;color:var(--muted);font-size:13px}.field-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:22px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.field-row>span{font-size:12px;font-weight:700}.field-row input{min-height:42px;padding:9px 11px}.field-row.static>div{display:grid;gap:3px}.field-row.static small{color:var(--muted);font-size:11px}.theme-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.theme-option{position:relative;display:grid;grid-template-columns:104px 1fr;gap:14px;align-items:center;border:1px solid var(--line);padding:12px;cursor:pointer;background:var(--panel)}.theme-option:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.theme-option input{position:absolute;opacity:0;pointer-events:none}.theme-option>span:last-child{display:grid}.theme-option strong{font-size:13px}.theme-option small{color:var(--muted);font-size:10px;margin-top:2px}.theme-preview{height:64px;border:1px solid;display:grid;grid-template-columns:27% 1fr;grid-template-rows:16px 1fr;gap:5px;padding:6px}.theme-preview i{display:block}.theme-preview i:first-child{grid-column:1/-1}.theme-preview i:nth-child(2){grid-row:2}.theme-preview.light-preview{background:#f4f3ef;border-color:#cbc9c1}.theme-preview.light-preview i{background:#fff;border:1px solid #dedcd4}.theme-preview.light-preview i:first-child{background:#17211f;border-color:#17211f}.theme-preview.dark-preview{background:#11161d;border-color:#3a4652}.theme-preview.dark-preview i{background:#1b232c;border:1px solid #303b46}.theme-preview.dark-preview i:first-child{background:#0c1116;border-color:#0c1116}.settings-actions{display:flex;justify-content:flex-end}.settings-aside{border-top:2px solid var(--text);align-self:start}.settings-aside section{display:grid;gap:3px;padding:15px 0;border-bottom:1px solid var(--line)}.settings-aside span,.settings-aside small{color:var(--muted);font-size:11px}.settings-aside strong{font-size:20px}.settings-aside>a{display:inline-block;margin-top:18px;color:var(--danger);font-size:12px;font-weight:700}

/* Footer */
.footer{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;padding:24px 0 34px;margin-top:60px}.footer strong{color:var(--text)}

/* Dark mode corrections for externally-styled legacy pieces */
html[data-theme="dark"] .club-crest,html[data-theme="dark"] .prediction-crest,html[data-theme="dark"] .ticket-crest,html[data-theme="dark"] .table-club img,html[data-theme="dark"] .mini-crest img{filter:none}

@media(max-width:900px){
  .account-balance{display:none}.two-col{grid-template-columns:1fr}.hero{grid-template-columns:1fr;gap:34px}.hero-board{max-width:620px}.settings-layout{grid-template-columns:1fr}.settings-aside{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.settings-aside>a{grid-column:1/-1}.player-table th{top:112px}
}
@media(max-width:760px){
  .masthead{width:min(var(--max),calc(100% - 28px));min-height:62px}.brand-copy small,.account-link>span:last-child{display:none}.account-link{border-left:0;padding-left:0}.nav-band{padding:0 14px}.signout-link{display:none}.shell{width:min(var(--max),calc(100% - 28px))}.page-head,.dashboard-head,.settings-head{display:grid;align-items:start;padding-top:30px}.wallet{border-left:0;border-top:1px solid var(--line);padding:12px 0 0;min-width:0}.hero{padding:50px 0 45px}.hero h1{font-size:clamp(38px,11vw,54px)}.feature-grid{grid-template-columns:1fr}.feature-grid article{padding:22px 0}.feature-grid article+article{border-left:0;border-top:1px solid var(--line);padding-left:0}.stat-row{grid-template-columns:1fr}.stat-row>div+div{border-left:0;border-top:1px solid var(--line)}.fixture-cards{grid-template-columns:1fr}.settings-avatar{display:none}.theme-options{grid-template-columns:1fr}.field-row{grid-template-columns:1fr;gap:7px}.settings-aside{grid-template-columns:1fr}.footer{flex-direction:column}
}
@media(max-width:520px){
  .masthead{gap:12px}.brand-mark{width:34px;height:34px}.guest-actions{gap:10px}.guest-actions>a:first-child{display:none}.primary-nav a{padding:0 10px}.prediction-ticket-main{grid-template-columns:1fr 82px 1fr}.player-profile-hero{grid-template-columns:1fr}.player-profile-points{border-left:0;border-top:1px solid var(--line);padding:14px 0 0}.profile-stat-grid{grid-template-columns:1fr}.profile-stat-grid>div+div{border-left:0;border-top:1px solid var(--line)}
}

/* V1.0.10 softer sports interface --------------------------------------------- */
html[data-theme="light"]{
  --bg:#f6f7f3;--panel:#ffffff;--card:#ffffff;--surface-subtle:#f0f3ed;--surface-raised:#fbfcf9;
  --line:#e3e7df;--line-strong:#cbd2c8;--text:#17211e;--muted:#69736f;
  --accent:#177553;--accent-hover:#0f5e41;--accent-soft:#e8f3ed;
  --nav:transparent;--nav-text:#17211e;--nav-muted:#65706b;--table-head:#f3f5f1;
  --shadow:0 8px 28px rgba(27,45,37,.055);--shadow-soft:0 2px 12px rgba(27,45,37,.045);
}
html[data-theme="dark"]{
  --bg:#111713;--panel:#18201c;--card:#19231e;--surface-subtle:#202b25;--surface-raised:#151d19;
  --line:#2c3832;--line-strong:#415047;--text:#edf3ef;--muted:#9aa7a0;
  --accent:#72bf98;--accent-hover:#8dcead;--accent-soft:#20372b;
  --nav:transparent;--nav-text:#edf3ef;--nav-muted:#a0ada6;--table-head:#1d2722;
  --shadow:0 9px 30px rgba(0,0,0,.16);--shadow-soft:0 2px 12px rgba(0,0,0,.12);
}
html{font-family:"Segoe UI",Arial,sans-serif}
body{background:
  radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--accent) 5%,transparent) 0,transparent 24rem),
  radial-gradient(circle at 92% 18%,color-mix(in srgb,var(--blue) 3%,transparent) 0,transparent 30rem),
  var(--bg)}
.shell{width:min(1180px,calc(100% - 48px))}

/* Header becomes one calm, flowing surface rather than two stacked bars. */
.site-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--panel) 92%,transparent);border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent);box-shadow:0 1px 0 rgba(0,0,0,.015);backdrop-filter:blur(16px)}
.header-shell{width:min(1220px,calc(100% - 48px));min-height:76px;margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:30px}
.brand{display:flex;align-items:center;gap:11px;min-width:max-content}
.brand-mark{width:40px;height:40px;border-radius:50%;background:var(--accent);color:white;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 9%,transparent);font-size:11px;letter-spacing:.06em}
.brand-copy strong{font-size:20px;font-weight:800;letter-spacing:-.025em}.brand-copy small{font-size:10px;margin-top:2px}
.primary-nav{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.primary-nav::-webkit-scrollbar{display:none}
.primary-nav a{position:relative;display:flex;align-items:center;min-height:44px;padding:0 11px;color:var(--nav-muted);font-size:12px;font-weight:650;white-space:nowrap;border:0}
.primary-nav a:hover{color:var(--text)}
.primary-nav a.active{color:var(--text)}
.primary-nav a.active::after{content:"";position:absolute;left:11px;right:11px;bottom:5px;height:3px;border-radius:99px;background:var(--accent)}
.account-bar{gap:15px}.account-balance{padding-right:2px}.account-balance small{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.account-balance strong{font-size:16px}
.account-link{border:0;padding:5px 0 5px 12px;position:relative}.account-link::before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:1px;background:var(--line)}
.account-avatar{width:36px;height:36px;border:0;background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)}
.account-link strong{font-size:12px}.account-link small{font-size:9px}.guest-actions{gap:14px}

/* Less rigid typography and page framing. */
h1,h2,h3{font-family:"Trebuchet MS","Segoe UI",Arial,sans-serif;font-weight:700;letter-spacing:-.03em}
.eyebrow{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.page-head,.dashboard-head{padding:42px 0 18px;margin-bottom:25px;border-bottom:0;align-items:center}
.page-head h1,.dashboard-head h1{font-size:clamp(34px,4.1vw,50px);line-height:1.02;margin:5px 0 8px}
.page-head p,.dashboard-head p{font-size:14px;line-height:1.6}
.wallet{border-left:0;padding:0;text-align:right;min-width:180px}.wallet span{letter-spacing:.08em}.wallet strong{font-family:"Trebuchet MS","Segoe UI",sans-serif;font-size:36px}.wallet.compact strong{font-size:31px}
.section-title{margin-bottom:14px}.section-title h2{font-size:23px}

/* Controls: softer, not pill-heavy. */
input:not([type="checkbox"]):not([type="radio"]),select,textarea{border-radius:10px!important;border-color:var(--line-strong)!important;background:color-mix(in srgb,var(--panel) 96%,var(--bg))!important}
.btn{border-radius:10px;padding:10px 15px;box-shadow:none}.btn.primary{box-shadow:0 5px 14px color-mix(in srgb,var(--accent) 15%,transparent)}.btn.ghost{background:transparent}
.flash{border-radius:12px;border:0;box-shadow:var(--shadow-soft)}

/* Surfaces: cards only where the content actually behaves like a card. */
.panel{border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--panel) 98%,var(--bg));box-shadow:var(--shadow-soft)}
.stat-row{border:0;border-radius:0;overflow:visible;margin:2px 0 38px;background:transparent}
.stat-row>div{background:transparent;padding:8px 24px 8px 0;gap:5px}.stat-row>div+div{border-left:1px solid var(--line);padding-left:24px}.stat-row strong{font-size:24px}
.two-col{gap:34px}.two-col>aside.panel{border:0;border-radius:18px;background:var(--panel);box-shadow:var(--shadow);padding:23px}
.fixture-list{border-top:0}.fixture{border-bottom:1px solid var(--line);padding:15px 6px;transition:background .15s ease,padding .15s ease}.fixture:hover{background:color-mix(in srgb,var(--accent) 4%,transparent);padding-left:12px;padding-right:12px;border-radius:10px}

/* Predictions keep a card treatment, but lose the hard-edged admin feel. */
.prediction-tabs{border-bottom:0;gap:20px;margin-bottom:25px}.prediction-tabs a{padding:9px 0 10px;border-bottom:0;position:relative;font-weight:650}.prediction-tabs a b{border-radius:8px;background:var(--surface-subtle);color:var(--muted)}.prediction-tabs a.active{color:var(--text)}.prediction-tabs a.active::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:3px;border-radius:99px;background:var(--accent)}.prediction-tabs a.active b{background:var(--accent-soft);color:var(--accent)}
.prediction-rule{border:0;border-radius:8px;background:var(--surface-subtle)}
.fixture-cards{gap:22px}.match-card,.prediction-ticket{border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow-soft)}
.prediction-card .match-meta{background:transparent;border-bottom:0;padding:17px 19px 3px}.prediction-card .prediction-teams{padding:20px 19px 22px}.prediction-form.refined{background:color-mix(in srgb,var(--surface-subtle) 60%,var(--panel));border-top:0;padding:17px 19px;border-radius:0 0 18px 18px}
.ticket-summary{background:color-mix(in srgb,var(--surface-subtle) 64%,var(--panel));border-top:0}.status-pill{border-radius:8px;text-transform:none;letter-spacing:0}

/* Fantasy and tables. */
.fantasy-toolbar,.fantasy-filters{border:0;border-radius:16px;box-shadow:var(--shadow-soft);background:var(--panel);padding:15px}
.player-table-wrap,.season-table-wrap{border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft);overflow:auto;background:var(--panel)}
.player-table th{top:76px;background:color-mix(in srgb,var(--table-head) 96%,transparent)}
.player-row.selected td:first-child{box-shadow:inset 4px 0 0 var(--accent)}
.pos{border-radius:7px;border:0;background:var(--surface-subtle)}

/* Player / season pages use open editorial sections rather than bordered boxes. */
.player-profile-hero{border-bottom:0;padding:35px 0 26px}.player-profile-avatar{border:0;box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 7%,transparent)}
.player-profile-points{border-left:0;background:var(--accent-soft);padding:13px 17px;border-radius:14px}.player-profile-points strong{font-family:"Trebuchet MS","Segoe UI",sans-serif}
.profile-stat-grid,.season-overview-grid{border:0;border-radius:18px;box-shadow:var(--shadow-soft);overflow:hidden;background:var(--panel)}
.profile-stat-grid>div,.season-overview-grid>div{background:transparent}.season-overview-grid>div+div{border-left:1px solid var(--line)}
.season-leader-grid{gap:22px}.season-leader-card{border:0;border-radius:18px;background:var(--panel);box-shadow:var(--shadow-soft);overflow:hidden}.leader-card-head{border-bottom:1px solid var(--line)}
.history-row{border:0;border-radius:14px;box-shadow:var(--shadow-soft);background:var(--panel)}

/* Leaderboards, leagues and admin: lighter separators, fewer black rules. */
.leaderboard,.private-league,.admin-list,.sync-log{border-top:1px solid var(--line)}
.leader-row{padding:15px 8px}.leader-row:hover{background:color-mix(in srgb,var(--accent) 4%,transparent);border-radius:10px}
.league-actions .panel,.harvest-panel{border-top:0}.capability-grid>div{border-radius:12px}
.tabs{gap:18px;border-bottom:1px solid var(--line)}.tabs a{padding:10px 0;position:relative}.tabs a.active{border-bottom-color:transparent}.tabs a.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:99px;background:var(--accent)}

/* Settings should feel like a profile page, not a control panel. */
.settings-head{padding:42px 0 21px;border-bottom:0;margin-bottom:20px}.settings-avatar{border:0;box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 7%,transparent)}
.settings-layout{gap:50px}.settings-section{border-top:1px solid var(--line);padding-top:20px}.settings-aside{border-top:1px solid var(--line)}
.field-row{border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent)}
.theme-option{border:1px solid var(--line);border-radius:14px;padding:13px;box-shadow:var(--shadow-soft)}.theme-option:has(input:checked){border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 9%,transparent)}.theme-preview{border-radius:9px;overflow:hidden}

.footer{border-top:1px solid var(--line);padding-top:26px}

@media(max-width:1040px){
  .header-shell{grid-template-columns:auto 1fr auto;gap:18px}.brand-copy small{display:none}.primary-nav a{padding:0 8px;font-size:11px}.account-link>span:last-child{display:none}.account-link{padding-left:10px}.account-balance{display:none}
}
@media(max-width:820px){
  .header-shell{width:min(100% - 28px,1180px);grid-template-columns:auto auto;min-height:64px;padding-top:3px}.primary-nav{grid-column:1/-1;justify-content:flex-start;border-top:1px solid var(--line);margin-top:-2px;padding:3px 0 4px}.primary-nav a{min-height:38px}.primary-nav a.active::after{bottom:2px}.site-header{position:sticky}.player-table th{top:105px}.shell{width:min(100% - 28px,1180px)}
  .page-head,.dashboard-head{padding-top:30px}.wallet{text-align:left}.stat-row{grid-template-columns:1fr 1fr 1fr}.stat-row>div{padding-right:12px}.stat-row>div+div{padding-left:12px}
}
@media(max-width:620px){
  .header-shell{gap:12px}.brand-mark{width:36px;height:36px}.brand-copy strong{font-size:18px}.primary-nav{gap:2px}.primary-nav a{padding:0 9px}
  .page-head,.dashboard-head{display:grid;gap:18px}.stat-row{grid-template-columns:1fr}.stat-row>div{padding:10px 0}.stat-row>div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}.wallet{border-top:0}.prediction-tabs{gap:16px}.season-overview-grid>div+div{border-left:0;border-top:1px solid var(--line)}
}


/* V1.0.11 — club pages + global player fantasy scoring */
.team-inline-link{color:inherit;text-decoration:none}.team-inline-link:hover{color:var(--accent)}
.fantasy-feature{grid-column:1/-1}.compact-note{margin:0;padding:12px 16px;border-top:1px solid var(--line);font-size:11px}
.team-profile-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:24px;align-items:center;padding:34px 0 24px}
.team-profile-crest{width:92px;height:92px;display:grid;place-items:center;border-radius:20px;background:var(--panel);box-shadow:var(--shadow-soft);border:1px solid var(--line)}.team-profile-crest img{max-width:68px;max-height:68px;object-fit:contain}.team-profile-crest span{font-weight:800;color:var(--accent)}
.team-profile-heading h1{margin:5px 0 7px;font-size:clamp(34px,4.2vw,54px)}.team-profile-heading p{margin:0;color:var(--muted)}
.team-points{text-align:right;display:grid;gap:2px}.team-points span,.team-points small{color:var(--muted);font-size:11px}.team-points strong{font-size:38px}
.team-season-strip{display:grid;grid-template-columns:repeat(7,1fr);background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft);overflow:hidden;margin-bottom:34px}.team-season-strip>div{padding:15px 16px;display:grid;gap:4px}.team-season-strip>div+div{border-left:1px solid var(--line)}.team-season-strip span{font-size:10px;color:var(--muted)}.team-season-strip strong{font-size:22px}
.team-form-section{margin:8px 0 38px}.form-five{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.form-result{min-height:102px;padding:14px;border-radius:14px;background:var(--panel);border:1px solid var(--line);display:grid;align-content:space-between;gap:6px;box-shadow:var(--shadow-soft)}.form-result strong{font-size:24px}.form-result small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-result span{font-size:12px;font-weight:700}.form-result.w strong{color:var(--ok)}.form-result.l strong{color:var(--danger)}.form-result.d strong{color:var(--gold)}.form-result.n-a{opacity:.58}.form-result.n-a strong{font-size:17px;color:var(--muted)}
.team-two-col{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:38px}.team-fixture-list{display:grid;border-top:1px solid var(--line)}.team-fixture-row{display:grid;grid-template-columns:55px 38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 4px;border-bottom:1px solid var(--line)}.team-fixture-row time{font-size:11px;color:var(--muted)}.team-fixture-row>div{display:grid;gap:2px}.team-fixture-row small{font-size:10px;color:var(--muted)}.team-fixture-row>b{font-size:18px}.result-badge{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;font-size:11px;font-weight:800;background:var(--surface-subtle)}.result-badge.w{color:var(--ok)}.result-badge.d{color:var(--gold)}.result-badge.l{color:var(--danger)}.result-badge.neutral{color:var(--muted)}
.team-squad-section{margin-top:34px}.team-squad-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.team-player-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 14px;border-radius:13px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-soft)}.team-player-card:hover{border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}.team-player-card>span:nth-child(2){display:grid;gap:2px;min-width:0}.team-player-card strong,.team-player-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-player-card small{color:var(--muted);font-size:10px}.team-player-card em{font-style:normal;font-weight:800;font-size:16px}
@media(max-width:760px){.team-profile-hero{grid-template-columns:auto 1fr}.team-points{grid-column:1/-1;text-align:left}.team-season-strip{grid-template-columns:repeat(4,1fr)}.team-season-strip>div+div{border-left:0}.team-season-strip>div{border-bottom:1px solid var(--line)}.form-five{grid-template-columns:repeat(5,minmax(96px,1fr));overflow-x:auto;padding-bottom:4px}.team-two-col{grid-template-columns:1fr}.team-squad-grid{grid-template-columns:1fr}.fantasy-feature{grid-column:auto}}

/* V1.1.0 — 15-player fantasy squad, matchday pitch and Boost Coins */
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(520px,.95fr);gap:34px;align-items:start}.squad-dashboard{min-width:0}.lineup-card{display:grid;grid-template-columns:minmax(230px,.78fr) minmax(300px,1fr);gap:18px;align-items:stretch}.lineup-list{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft);padding:15px}.lineup-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px 10px;border-bottom:1px solid var(--line)}.lineup-title span{font-size:11px;color:var(--muted)}.lineup-title strong{font-size:13px}.lineup-name{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 2px;border-bottom:1px solid var(--line);color:inherit}.lineup-name:last-child{border-bottom:0}.lineup-name>span{font-size:9px;color:var(--muted)}.lineup-name b{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.lineup-name i{font-style:normal;color:var(--accent)}.lineup-name em{font-style:normal;font-size:10px;color:var(--muted)}
.football-pitch{position:relative;min-height:430px;border-radius:20px;overflow:hidden;background:linear-gradient(90deg,rgba(255,255,255,.06) 50%,rgba(255,255,255,.01) 50%),linear-gradient(180deg,#2f8754,#2a774b);background-size:90px 100%,100% 100%;border:4px solid rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),var(--shadow-soft)}.football-pitch::before{content:"";position:absolute;inset:12px;border:2px solid rgba(255,255,255,.72);pointer-events:none}.pitch-line.halfway{position:absolute;left:12px;right:12px;top:50%;border-top:2px solid rgba(255,255,255,.72);z-index:1}.pitch-circle{position:absolute;width:88px;height:88px;border:2px solid rgba(255,255,255,.72);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1}.pitch-box{position:absolute;left:50%;width:45%;height:70px;border:2px solid rgba(255,255,255,.72);transform:translateX(-50%);z-index:1}.pitch-box.top{top:12px;border-top:0}.pitch-box.bottom{bottom:12px;border-bottom:0}.pitch-row{position:absolute;left:8%;right:8%;display:flex;justify-content:space-evenly;align-items:center;gap:8px;z-index:3}.pitch-row.pos-fwd{top:10%}.pitch-row.pos-mid{top:34%}.pitch-row.pos-def{top:62%}.pitch-row.pos-gk{top:83%}.pitch-player{display:grid;justify-items:center;gap:4px;color:white;text-align:center;min-width:60px}.pitch-player>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f7f7f3;color:#183323;font-weight:900;border:3px solid rgba(255,255,255,.75);box-shadow:0 3px 8px rgba(0,0,0,.2)}.pitch-player.captain>span{box-shadow:0 0 0 3px #f3c54a,0 3px 8px rgba(0,0,0,.25)}.pitch-player small{max-width:88px;font-size:9px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lineup-bench{display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr));gap:8px;align-items:center;margin-top:10px}.lineup-bench>a{display:grid;gap:2px;padding:9px 10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:inherit}.lineup-bench b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lineup-bench small,.bench-label{font-size:9px;color:var(--muted)}.empty-lineup{padding:26px;background:var(--panel);border:1px solid var(--line);border-radius:16px}
.gameweek-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:28px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft);overflow:hidden}.gameweek-bar>div{display:grid;gap:3px;padding:15px 18px}.gameweek-bar>div+div{border-left:1px solid var(--line)}.gameweek-bar span,.gameweek-bar small{font-size:10px;color:var(--muted)}.gameweek-bar strong{font-size:20px}.boost-section{margin:0 0 28px}.boost-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.boost-card{display:grid;gap:12px;align-content:space-between;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-soft)}.boost-card.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 8%,transparent)}.boost-card>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.boost-card>div>span:last-child{display:grid;gap:3px}.boost-card strong{font-size:12px}.boost-card small{font-size:10px;line-height:1.35;color:var(--muted)}.boost-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:900}.boost-card form{margin:0}.boost-state{font-size:10px;color:var(--accent);font-weight:800}.boost-state.used{color:var(--muted)}
.fantasy-head{align-items:end}.fantasy-toolbar{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:end;margin-bottom:12px}.fantasy-toolbar label{margin:0}.squad-builder-grid{display:grid;grid-template-columns:minmax(520px,1.15fr) minmax(450px,.85fr);gap:18px;align-items:start}.squad-composer{position:sticky;top:86px;display:grid;gap:14px;padding:17px;background:var(--panel);border-radius:18px;box-shadow:var(--shadow-soft);border:1px solid var(--line)}.composer-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.composer-head h2{margin:3px 0 5px}.composer-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.4}.coverage-pill[data-state="ok"]{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}.builder-lineup{display:grid;grid-template-columns:minmax(190px,.78fr) minmax(240px,1fr);gap:12px}.builder-roster{min-width:0}.builder-roster-row{display:grid;grid-template-columns:24px 31px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.lineup-no,.lineup-pos{font-size:9px;color:var(--muted)}.lineup-player-copy{display:grid;gap:1px;min-width:0}.lineup-player-copy strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lineup-player-copy small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lineup-toggle{border:0;background:var(--surface-subtle);color:var(--muted);border-radius:8px;padding:5px 7px;font:inherit;font-size:9px;cursor:pointer}.lineup-toggle:hover{color:var(--text);background:var(--accent-soft)}.builder-pitch{min-height:390px}.builder-pitch .pitch-dynamic{position:absolute;inset:0}.builder-bench{display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr));gap:8px;align-items:stretch}.builder-bench-player{display:grid;gap:7px;padding:9px;border:1px solid var(--line);border-radius:11px;background:var(--surface-subtle);min-width:0}.builder-bench-player>.lineup-pos{display:none}.bench-actions{display:flex;align-items:end;justify-content:space-between;gap:5px}.bench-actions label{display:grid;gap:2px;font-size:8px;color:var(--muted);margin:0}.bench-actions select{min-height:30px;padding:3px 6px}.bench-priority{font-size:8px;color:var(--muted);align-self:center}.composer-empty,.composer-hint{font-size:10px;color:var(--muted);line-height:1.45}.composer-hint{margin:0}.player-table td:nth-child(5){font-weight:800}.player-table td:nth-child(5),.player-table th:nth-child(5){white-space:nowrap}
.data-note code{white-space:nowrap}.team-player-card small{line-height:1.25}
@media(max-width:1180px){.dashboard-grid{grid-template-columns:1fr}.squad-builder-grid{grid-template-columns:1fr}.squad-composer{position:static}.boost-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.lineup-card,.builder-lineup{grid-template-columns:1fr}.football-pitch{min-height:430px}.builder-pitch{min-height:390px}.lineup-bench,.builder-bench{grid-template-columns:1fr 1fr}.bench-label{grid-column:1/-1}.fantasy-toolbar{grid-template-columns:1fr 1fr}.fantasy-save-actions{grid-column:1/-1}.gameweek-bar{grid-template-columns:1fr}.gameweek-bar>div+div{border-left:0;border-top:1px solid var(--line)}}
@media(max-width:600px){.boost-grid{grid-template-columns:1fr}.fantasy-toolbar{grid-template-columns:1fr}.fantasy-save-actions{grid-column:auto}.football-pitch,.builder-pitch{min-height:360px}.pitch-player>span{width:34px;height:34px}.pitch-player small{max-width:70px;font-size:8px}.lineup-bench,.builder-bench{grid-template-columns:1fr}.squad-composer{padding:13px}.composer-head{display:grid}.builder-roster-row{grid-template-columns:20px 28px minmax(0,1fr) auto}}

/* V1.1.1 — public rules and explainer */
.rules-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:36px;align-items:end;padding:34px 0 28px;border-bottom:1px solid var(--line)}.rules-hero h1{font-size:clamp(34px,5vw,62px);letter-spacing:-.05em;margin:7px 0 12px;max-width:720px}.rules-hero>div:first-child>p{max-width:760px;color:var(--muted);font-size:14px;line-height:1.65;margin:0}.rules-currency-split{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rules-currency-split article{padding:17px;border-radius:16px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow-soft)}.rules-currency-split article:first-child{border-top:3px solid var(--gold)}.rules-currency-split article:last-child{border-top:3px solid var(--accent)}.rules-currency-split span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:800}.rules-currency-split strong{display:block;font-size:21px;margin:4px 0 7px}.rules-currency-split p{font-size:10px;line-height:1.45;color:var(--muted);margin:0}
.rules-jump{display:flex;gap:6px;flex-wrap:wrap;padding:18px 0 26px;position:sticky;top:72px;z-index:8;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px)}.rules-jump a{padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:10px;font-weight:800;color:var(--muted)}.rules-jump a:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.rules-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:42px;align-items:start}.rules-main{min-width:0}.rules-section{scroll-margin-top:135px;display:grid;grid-template-columns:46px minmax(0,1fr);gap:18px;padding:30px 0;border-top:1px solid var(--line)}.rules-section:first-child{border-top:0;padding-top:6px}.rules-kicker{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--surface-subtle);border:1px solid var(--line);font-size:9px;font-weight:900;color:var(--muted)}.rules-section h2{font-size:25px;letter-spacing:-.025em;margin:1px 0 11px}.rules-section p{color:var(--muted);line-height:1.65;margin:0 0 14px;font-size:12px}.rules-steps{margin:0;padding:0;list-style:none;display:grid;gap:8px}.rules-steps li{display:grid;grid-template-columns:minmax(150px,.34fr) minmax(0,1fr);gap:18px;padding:11px 0;border-bottom:1px solid var(--line)}.rules-steps strong{font-size:11px}.rules-steps span{font-size:11px;color:var(--muted);line-height:1.45}.rule-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.rule-stat-grid>div{display:grid;gap:1px;padding:13px;background:var(--surface-subtle);border-radius:11px}.rule-stat-grid strong{font-size:23px}.rule-stat-grid span{font-size:9px;color:var(--muted)}.rules-list{padding-left:18px;margin:14px 0 0;display:grid;gap:8px;color:var(--muted);font-size:11px;line-height:1.5}.rules-list.compact{gap:5px}.rules-list strong{color:var(--text)}.rule-callout{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:7px 12px;align-items:center;padding:13px 14px;margin:13px 0;background:var(--accent-soft);border-radius:12px}.rule-callout strong{font-size:10px;color:var(--accent)}.rule-callout span{font-size:10px;color:var(--muted)}.rules-note{padding:12px 14px!important;border-left:3px solid var(--accent);background:var(--surface-subtle);border-radius:0 10px 10px 0;margin-top:15px!important}.rule-example{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.rule-example strong{font-size:10px}.rule-example p{margin:5px 0 0;font-size:10px}
.boost-explainer-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}.boost-explainer-grid article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.boost-explainer-grid b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:9px}.boost-explainer-grid article>div{display:grid;gap:2px}.boost-explainer-grid strong{font-size:10px}.boost-explainer-grid span{font-size:9px;line-height:1.4;color:var(--muted)}
.rules-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:13px;background:var(--panel);margin:14px 0}.rules-table{width:100%;border-collapse:collapse;min-width:520px}.rules-table th,.rules-table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);font-size:10px}.rules-table th{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--surface-subtle)}.rules-table th:last-child,.rules-table td:last-child{text-align:right;font-weight:900}.rules-table tr:last-child td{border-bottom:0}.prediction-rules{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.prediction-rules>div{display:grid;gap:2px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.prediction-rules span,.prediction-rules small{font-size:8px;color:var(--muted)}.prediction-rules strong{font-size:19px}
.rules-side{position:sticky;top:132px;display:grid;gap:12px}.rules-side-card{padding:17px;border:1px solid var(--line);border-radius:15px;background:var(--panel);box-shadow:var(--shadow-soft)}.rules-side-card h3{margin:5px 0 10px;font-size:15px}.rules-side-card p{font-size:10px;line-height:1.5;color:var(--muted);margin:0 0 12px}.rules-side-card dl{display:grid;margin:0}.rules-side-card dl>div{display:grid;gap:2px;padding:9px 0;border-top:1px solid var(--line)}.rules-side-card dt{font-size:10px;font-weight:850}.rules-side-card dd{margin:0;font-size:9px;color:var(--muted)}.footer a{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media(max-width:1040px){.rules-hero{grid-template-columns:1fr}.rules-layout{grid-template-columns:1fr}.rules-side{position:static;grid-template-columns:1fr 1fr}.rules-jump{position:static;background:none;backdrop-filter:none}}
@media(max-width:700px){.rules-currency-split,.boost-explainer-grid,.rules-side{grid-template-columns:1fr}.rules-section{grid-template-columns:1fr;gap:8px}.rules-kicker{width:30px;height:30px}.rules-steps li{grid-template-columns:1fr;gap:4px}.rule-stat-grid,.prediction-rules{grid-template-columns:1fr 1fr}.rule-callout{grid-template-columns:1fr 1fr}.rules-jump{overflow-x:auto;flex-wrap:nowrap;padding-bottom:10px}.rules-jump a{white-space:nowrap}}

/* V1.1.3 — clearer squad rules, bench flow and roomier fantasy builder */
.squad-guide{display:grid;grid-template-columns:minmax(280px,1.15fr) minmax(420px,1fr);gap:22px;align-items:start;margin:0 0 24px;padding:20px 22px;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-soft)}
.squad-guide-copy h2{margin:5px 0 7px;font-size:24px}.squad-guide-copy p{margin:0;max-width:720px;color:var(--muted);font-size:12px;line-height:1.55}
.squad-quota-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.squad-quota{display:grid;gap:2px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle)}.squad-quota span,.squad-quota small{font-size:9px;color:var(--muted)}.squad-quota strong{font-size:19px}.squad-quota[data-state="complete"]{border-color:color-mix(in srgb,var(--ok) 42%,var(--line));background:color-mix(in srgb,var(--ok) 7%,var(--surface-subtle))}.squad-quota[data-state="complete"] strong{color:var(--ok)}.squad-quota[data-state="over"]{border-color:color-mix(in srgb,var(--danger) 55%,var(--line))}.squad-quota[data-state="over"] strong{color:var(--danger)}
.squad-rule-strip{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;padding-top:2px}.squad-rule-strip>span{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-subtle);font-size:9px;color:var(--muted)}.squad-rule-strip>span[data-state="ok"]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 34%,var(--line))}.squad-rule-strip>span[data-state="limit"]{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 44%,var(--line))}.squad-rule-strip>span[data-state="error"]{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 46%,var(--line))}
.squad-builder-grid{grid-template-columns:1fr;gap:28px}.player-pool-section{min-width:0}.player-pool-title{margin-bottom:11px}.player-pool-title h2{font-size:22px}.player-pool-title span{display:block;max-width:820px;line-height:1.45}.player-table-wrap{max-height:620px}.player-table th{top:0}.pick-availability{color:var(--danger)!important}.pick-availability:empty{display:none}.player-row.selection-blocked:not(.selected) td{opacity:.48}.player-row.selection-blocked:not(.selected){cursor:not-allowed}.player-row.selection-blocked:not(.selected) .player-check{cursor:not-allowed}.player-row.selection-blocked:not(.selected) .pick-availability{opacity:1}
.squad-composer{position:static;gap:20px;padding:22px 24px;border-radius:18px}.composer-head{align-items:start}.composer-head>div{max-width:850px}.composer-head h2{font-size:26px}.composer-head p{font-size:12px;line-height:1.55}.builder-lineup{grid-template-columns:minmax(320px,.8fr) minmax(500px,1.2fr);gap:28px;align-items:start}.builder-roster-row{grid-template-columns:28px 38px minmax(0,1fr) auto;gap:9px;padding:9px 0}.lineup-no,.lineup-pos{font-size:10px}.lineup-player-copy strong{font-size:13px}.lineup-player-copy small{font-size:10px}.lineup-toggle{padding:7px 9px;font-size:10px;white-space:nowrap}.builder-pitch{min-height:520px}.builder-pitch .pitch-dynamic{position:absolute;inset:0}.builder-bench{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.builder-bench>.bench-label{grid-column:1/-1;font-size:10px;font-weight:800;color:var(--text);text-transform:uppercase;letter-spacing:.08em}.builder-bench-player{padding:12px;border-radius:12px}.bench-actions{align-items:end}.bench-actions label{font-size:9px}.bench-actions select{min-height:34px}.bench-priority{font-size:9px}.bench-slot-empty{border-style:dashed;background:transparent;align-content:center;min-height:104px}.bench-slot-empty strong{font-size:13px}.bench-slot-empty small{font-size:9px;line-height:1.35;color:var(--muted)}.bench-slot-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.composer-hint{font-size:11px}

@media(max-width:1100px){.squad-guide{grid-template-columns:1fr}.squad-rule-strip{grid-column:auto}.builder-lineup{grid-template-columns:1fr}.builder-pitch{min-height:500px}}
@media(max-width:760px){.squad-guide{padding:16px}.squad-quota-grid{grid-template-columns:repeat(2,1fr)}.builder-bench{grid-template-columns:1fr 1fr}.squad-composer{padding:16px}.builder-pitch{min-height:420px}.player-table-wrap{max-height:540px}}
@media(max-width:520px){.squad-quota-grid{grid-template-columns:1fr 1fr}.builder-bench{grid-template-columns:1fr}.builder-roster-row{grid-template-columns:22px 32px minmax(0,1fr)}.builder-roster-row .lineup-toggle{grid-column:2/-1;justify-self:start}.builder-pitch{min-height:380px}}


/* V1.1.4 — explicit formation selection and collision-free dashboard lineup */
.formation-picker{display:grid;grid-template-columns:minmax(210px,.55fr) minmax(0,1fr);gap:18px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-subtle)}
.formation-picker-copy{display:grid;gap:3px}.formation-picker-copy strong{font-size:12px}.formation-picker-copy span{font-size:10px;line-height:1.4;color:var(--muted)}
.formation-options{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.formation-option{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;min-height:34px;padding:6px 11px;font:inherit;font-size:10px;font-weight:850;cursor:pointer}.formation-option:hover:not(:disabled){color:var(--text);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.formation-option.active{background:var(--accent);border-color:var(--accent);color:white}.formation-option:disabled{opacity:.42;cursor:not-allowed}
.squad-dashboard .football-pitch{min-height:430px}.squad-dashboard .pitch-row{left:5%;right:5%;gap:2px}.squad-dashboard .pitch-player{min-width:0;flex:1}.squad-dashboard .pitch-player small{display:none}.squad-dashboard .pitch-player>span{width:40px;height:40px}.squad-dashboard .pitch-player.captain>span{position:relative}
.squad-dashboard .pitch-player.captain>span::after{content:"C";position:absolute;right:-6px;top:-7px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:#f3c54a;color:#183323;font-size:8px;font-weight:900;border:2px solid white}
@media(max-width:900px){.formation-picker{grid-template-columns:1fr}.formation-options{justify-content:flex-start}}
@media(max-width:600px){.formation-options{display:grid;grid-template-columns:repeat(4,1fr)}.formation-option{padding:6px 4px}.squad-dashboard .pitch-player>span{width:36px;height:36px}}


/* V1.1.5 — dashboard squad takes priority above fixtures */
.dashboard-squad-section{margin-bottom:34px}.dashboard-squad-section .section-title{margin-bottom:14px}.dashboard-squad-section .lineup-card{grid-template-columns:minmax(330px,.62fr) minmax(560px,1.38fr);gap:28px}.dashboard-squad-section .lineup-list{padding:18px 20px}.dashboard-squad-section .lineup-name{grid-template-columns:32px minmax(0,1fr) auto;gap:10px;padding:10px 2px}.dashboard-squad-section .lineup-name b{font-size:13px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}.dashboard-squad-section .lineup-name em{font-size:11px}.dashboard-squad-section .football-pitch{min-height:500px}.dashboard-fixtures-section{margin-top:6px}.dashboard-fixtures-section .fixture-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-fixtures-section .fixture{margin:0}.dashboard-squad-section .lineup-bench{margin-top:12px}
@media(max-width:1050px){.dashboard-squad-section .lineup-card{grid-template-columns:1fr}.dashboard-squad-section .football-pitch{min-height:500px}.dashboard-fixtures-section .fixture-list{grid-template-columns:1fr}}
@media(max-width:600px){.dashboard-squad-section{margin-bottom:24px}.dashboard-squad-section .lineup-list{padding:14px}.dashboard-squad-section .lineup-name b{font-size:12px}.dashboard-squad-section .football-pitch{min-height:380px}}

/* V1.3.2 — match centre and club crests */
.team-fixture-row{color:inherit;text-decoration:none;transition:background .15s ease,padding .15s ease}.team-fixture-row:hover{background:color-mix(in srgb,var(--accent) 5%,transparent);padding-left:9px;padding-right:9px;border-radius:10px}.team-fixture-opponent{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px;min-width:0}.team-fixture-opponent>img{width:30px;height:30px;object-fit:contain;flex:0 0 auto}.team-fixture-opponent>span{display:grid;gap:2px;min-width:0}.team-fixture-opponent strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-fixture{color:inherit;text-decoration:none}.profile-fixture:hover{background:color-mix(in srgb,var(--accent) 5%,var(--panel))}.fixture-link{color:inherit;text-decoration:none}.fixture-clubs{display:flex;align-items:center;gap:8px;min-width:0}.fixture-clubs img{width:25px;height:25px;object-fit:contain;flex:0 0 auto}.fixture-clubs span{min-width:0}.fixture-clubs em{font-style:normal;color:var(--muted);font-weight:500}.fixture-view{color:var(--accent);font-size:12px;font-weight:700;white-space:nowrap}
.match-centre-hero{padding:26px 0 22px;border-bottom:1px solid var(--line)}.match-centre-meta{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-bottom:24px}.match-centre-meta strong{color:var(--text)}.match-centre-scoreboard{display:grid;grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);align-items:center;gap:28px;max-width:900px;margin:0 auto}.match-centre-team{display:grid;justify-items:center;gap:8px;color:inherit;text-decoration:none;text-align:center}.match-centre-team img{width:92px;height:92px;object-fit:contain}.match-centre-team strong{font-size:20px}.match-centre-team small{color:var(--muted)}.match-crest-fallback{width:92px;height:92px;border:1px solid var(--line);background:var(--panel);border-radius:20px;display:grid;place-items:center;font-size:20px;font-weight:900;color:var(--accent)}.match-centre-score{text-align:center;display:grid;justify-items:center;gap:8px}.match-centre-score>strong{font-family:Georgia,"Times New Roman",serif;font-size:52px;line-height:1}.match-centre-score>span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.match-centre-score>span.live{color:var(--danger)}.match-facts-strip{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);margin-bottom:30px}.match-facts-strip>div{padding:16px 14px;display:grid;gap:4px;text-align:center}.match-facts-strip>div+div{border-left:1px solid var(--line)}.match-facts-strip span{color:var(--muted);font-size:10px}.match-facts-strip strong{font-size:13px}.match-detail-section{margin-bottom:44px}.match-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.match-team-detail{border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden}.match-team-detail>header{display:flex;align-items:center;gap:10px;padding:15px 17px;border-bottom:1px solid var(--line);background:var(--surface-subtle)}.match-team-detail>header img{width:34px;height:34px;object-fit:contain}.mini-crest-fallback{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;font-size:10px;font-weight:900;color:var(--accent)}.match-player-list{display:grid}.match-player-row{display:grid;grid-template-columns:minmax(135px,.55fr) minmax(0,1fr);gap:14px;align-items:center;padding:12px 16px}.match-player-row+.match-player-row{border-top:1px solid var(--line)}.match-player-name{display:grid;gap:2px;min-width:0}.match-player-name a,.match-player-name strong{font-size:12px;font-weight:800;color:var(--text);text-decoration:none}.match-player-name a:hover{color:var(--accent)}.match-player-name small{font-size:10px;color:var(--muted)}.match-stat-pills{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.match-stat-pills>span{display:grid;grid-template-columns:auto auto;align-items:center;gap:5px;padding:5px 7px;border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px}.match-stat-pills small{font-size:9px;color:var(--muted)}.match-stat-pills b{font-size:10px}.match-detail-empty{padding:18px;color:var(--muted);margin:0}
@media(max-width:760px){.match-centre-scoreboard{grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);gap:10px}.match-centre-team img,.match-crest-fallback{width:64px;height:64px}.match-centre-team strong{font-size:14px}.match-centre-score>strong{font-size:34px}.match-facts-strip{grid-template-columns:repeat(2,1fr)}.match-facts-strip>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.match-facts-strip>div:nth-child(4){border-top:1px solid var(--line)}.match-detail-columns{grid-template-columns:1fr}.match-player-row{grid-template-columns:1fr}.match-stat-pills{justify-content:flex-start}.team-fixture-row{grid-template-columns:48px 34px minmax(0,1fr) auto}.team-fixture-opponent>img{width:26px;height:26px}.fixture-clubs{gap:5px}.fixture-clubs img{width:20px;height:20px}.fixture-view{display:none}}

/* V1.3.3 Match Centre */
.match-facts-expanded{grid-template-columns:repeat(6,1fr)}
.match-centre-section{margin:0 0 34px}.match-empty-state{margin:24px 0 40px}.match-empty-state h2{margin-top:0}
.match-timeline{display:grid;border-top:1px solid var(--line)}.match-event{display:grid;grid-template-columns:58px 34px minmax(0,1fr);align-items:center;gap:10px;padding:12px 6px;border-bottom:1px solid var(--line)}.match-event time{font-size:12px;font-weight:900;color:var(--text);text-align:right}.match-event-icon{font-size:18px;text-align:center}.match-event>div{display:grid;gap:2px}.match-event strong,.match-event a{font-size:13px;color:var(--text);text-decoration:none}.match-event a:hover{color:var(--accent)}.match-event small{font-size:10px;color:var(--muted)}
.match-lineup-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.match-lineup-card{border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden}.match-lineup-card>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--surface-subtle)}.match-lineup-card>header>div{display:flex;align-items:center;gap:10px}.match-lineup-card>header img{width:36px;height:36px;object-fit:contain}.match-lineup-card>header>span{font-size:11px;font-weight:800;color:var(--muted)}.match-lineup-card h3{margin:16px 16px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.lineup-list{list-style:none;padding:0 16px 12px;margin:0;display:grid}.lineup-list li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;align-items:center;padding:8px 0}.lineup-list li+li{border-top:1px solid var(--line)}.shirt-number{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;font-size:10px;font-weight:900;background:var(--surface-subtle)}.lineup-list li>div{display:grid;gap:1px}.lineup-list a,.lineup-list strong{font-size:12px;font-weight:800;color:var(--text);text-decoration:none}.lineup-list a:hover{color:var(--accent)}.lineup-list small{font-size:9px;color:var(--muted)}.lineup-list.substitutes{padding-bottom:18px}
.match-officials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}.match-officials>div{padding:13px 15px;display:grid;gap:3px}.match-officials>div+div{border-left:1px solid var(--line)}.match-officials span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.match-officials strong{font-size:12px}
.match-stat-table{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}.match-stat-head,.match-stat-row{display:grid;grid-template-columns:1fr minmax(130px,.8fr) 1fr;align-items:center;text-align:center;padding:10px 14px}.match-stat-head{background:var(--surface-subtle);font-size:11px}.match-stat-head span{color:var(--muted)}.match-stat-row+.match-stat-row{border-top:1px solid var(--line)}.match-stat-row strong{font-size:13px}.match-stat-row span{font-size:10px;color:var(--muted)}
@media(max-width:900px){.match-facts-expanded{grid-template-columns:repeat(3,1fr)}.match-facts-expanded>div:nth-child(4){border-left:0;border-top:1px solid var(--line)}.match-facts-expanded>div:nth-child(5),.match-facts-expanded>div:nth-child(6){border-top:1px solid var(--line)}.match-lineup-grid{grid-template-columns:1fr}.match-officials{grid-template-columns:repeat(2,minmax(0,1fr))}.match-officials>div:nth-child(odd){border-left:0}.match-officials>div:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:560px){.match-facts-expanded{grid-template-columns:repeat(2,1fr)}.match-facts-expanded>div:nth-child(odd){border-left:0}.match-facts-expanded>div:nth-child(n+3){border-top:1px solid var(--line)}.match-event{grid-template-columns:46px 30px minmax(0,1fr)}.match-officials{grid-template-columns:1fr}.match-officials>div+div{border-left:0;border-top:1px solid var(--line)}.match-stat-head,.match-stat-row{grid-template-columns:70px minmax(110px,1fr) 70px;padding-left:8px;padding-right:8px}}

.admin-sync-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.admin-sync-actions form{margin:0}

.history-row{text-decoration:none;color:inherit}
.history-row:hover{border-color:var(--line-strong)}

/* 1.4.1 player availability and form */
.player-card-readiness{display:flex!important;align-items:center;gap:5px}.availability-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:0 0 auto;background:var(--muted)}.availability-dot.ok{background:var(--ok)}.availability-dot.warn{background:var(--gold)}.availability-dot.danger{background:var(--danger)}.availability-dot.neutral{background:var(--muted)}
.availability-text.ok{color:var(--ok)}.availability-text.warn{color:var(--gold)}.availability-text.danger{color:var(--danger)}.availability-text.neutral{color:var(--muted)}
.player-readiness-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0 34px}.player-readiness-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:17px 18px;display:grid;gap:6px;box-shadow:var(--shadow-soft)}.readiness-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px}.readiness-head strong{font-size:11px;color:var(--text)}.readiness-value{font-family:Georgia,"Times New Roman",serif;font-size:30px;line-height:1.05}.player-readiness-card>small{color:var(--muted);font-size:10px}.player-readiness-card>p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.availability-badge{padding:4px 7px;border:1px solid var(--line);border-radius:999px}.availability-badge.ok{color:var(--ok)}.availability-badge.warn{color:var(--gold)}.availability-badge.danger{color:var(--danger)}.availability-badge.neutral{color:var(--muted)}.availability-meter{height:6px;border-radius:999px;background:var(--surface-subtle);overflow:hidden;margin-top:3px}.availability-meter>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.form-gameweeks{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.form-gameweeks span{border:1px solid var(--line);border-radius:7px;background:var(--surface-subtle);padding:5px 7px;color:var(--muted);font-size:9px}.form-gameweeks b{color:var(--text);margin-left:3px}.player-health-note{display:flex!important;align-items:center;gap:5px}.player-health-note.ok{color:var(--muted)!important}.player-health-note.warn{color:var(--gold)!important}.player-health-note.danger{color:var(--danger)!important}.player-health-note.neutral{color:var(--muted)!important}.lineup-readiness{font-size:9px!important}.lineup-readiness.ok{color:var(--muted)!important}.lineup-readiness.warn{color:var(--gold)!important}.lineup-readiness.danger{color:var(--danger)!important}
@media(max-width:720px){.player-readiness-grid{grid-template-columns:1fr}}

/* V1.4.2 match attribution + player identity corrections */
.match-goal-summary{display:grid;grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);gap:28px;max-width:900px;margin:18px auto 0;align-items:start;font-size:12px}.match-goal-side{display:grid;gap:5px}.match-goal-side>div{display:flex;gap:6px;align-items:baseline;min-width:0}.match-goal-side.home>div{justify-content:flex-end;text-align:right}.match-goal-side.away>div{justify-content:flex-start;text-align:left}.match-goal-side span{font-weight:750;min-width:0}.match-goal-side a{text-decoration:none}.match-goal-side a:hover{color:var(--accent)}.match-goal-side b{font-size:11px;color:var(--muted);font-weight:650;white-space:nowrap}.match-goal-side small{font-size:9px;color:var(--muted);font-weight:800}.scoring-reconciliation-note{border:1px solid var(--line);border-left:3px solid var(--gold);background:var(--surface-subtle);padding:12px 14px;margin:0 0 18px;display:grid;gap:4px;font-size:12px}.scoring-reconciliation-note>span,.scoring-reconciliation-note>small{color:var(--muted)}.scoring-reconciliation-note a{font-weight:800;text-decoration:underline;text-underline-offset:2px}.player-admin-v2{grid-template-columns:minmax(210px,1fr) 92px 92px minmax(150px,auto) auto;align-items:center}.player-admin-v2 .player-admin-identity{min-width:0}.player-admin-v2 .player-link-editor{min-width:150px}.player-link-editor summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--text);padding:8px 10px;border:1px solid var(--line);border-radius:7px;list-style-position:inside}.player-link-editor[open]{grid-column:1/-1;margin:4px 0 8px}.player-link-fields{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px 14px;margin-top:10px;padding:14px;border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px}.player-link-fields label{margin:0!important}.player-link-fields input,.player-link-fields select{width:100%;background:var(--surface-raised);color:var(--text);border:1px solid var(--line);border-radius:7px;padding:9px 10px;min-height:40px}.player-link-fields .check-label{display:flex!important;align-items:center;gap:8px;align-self:end;min-height:40px}.player-link-fields .check-label input{width:18px;height:18px;min-height:0}.player-link-fields .wide{grid-column:span 2}
@media(max-width:900px){.player-admin-v2{grid-template-columns:1fr 84px 84px auto}.player-admin-v2 .player-link-editor{grid-column:1/-1}.player-link-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.match-goal-summary{grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);gap:10px}}
@media(max-width:650px){.match-goal-summary{grid-template-columns:1fr 1fr;gap:18px}.match-goal-spacer{display:none}.match-goal-side.home>div,.match-goal-side.away>div{justify-content:flex-start;text-align:left}.player-admin-v2{grid-template-columns:1fr}.player-link-fields{grid-template-columns:1fr}.player-link-fields .wide{grid-column:auto}}
.player-link-issues{margin-bottom:22px}.player-link-issues>p{color:var(--muted);font-size:12px;line-height:1.6}.player-link-issue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.player-link-issue-grid>div{display:grid;gap:2px;padding:10px 11px;border:1px solid var(--line);background:var(--surface-subtle);border-radius:7px}.player-link-issue-grid strong{font-size:12px}.player-link-issue-grid span{font-size:10px;color:var(--muted)}@media(max-width:900px){.player-link-issue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.player-link-issue-grid{grid-template-columns:1fr}}

/* Touchline 1.4.3 resumable competition sync */
.competition-sync-main{min-width:0;flex:1}.sync-job-card{margin-top:.75rem;padding:.8rem;border:1px solid var(--line);border-radius:8px;background:rgba(8,17,31,.42);display:grid;gap:.55rem}.sync-job-head,.sync-job-meta{display:flex;justify-content:space-between;gap:1rem;align-items:center;font-size:12px}.sync-job-head span,.sync-job-meta span{color:var(--muted)}.sync-job-status{color:var(--text)}.sync-progress-track{height:7px;background:#08111f;border:1px solid var(--line);border-radius:999px;overflow:hidden}.sync-progress-bar{display:block;height:100%;background:var(--lime);transition:width .2s ease}.sync-position-diagnostics{display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr));gap:.45rem .8rem;align-items:center;padding-top:.35rem;border-top:1px solid var(--line);font-size:11px}.sync-position-diagnostics>b{color:var(--muted)}.sync-position-diagnostics>span{color:var(--muted);white-space:nowrap}.sync-position-diagnostics>span strong{color:var(--text);margin-right:.2rem}.sync-job-error{margin:0;color:var(--danger);font-size:12px;line-height:1.45}.sync-retry-form{margin:0}.competition-sync-row{align-items:flex-start}.competition-sync-row>.admin-sync-actions{padding-top:.1rem}@media(max-width:900px){.sync-position-diagnostics{grid-template-columns:1fr 1fr}.sync-position-diagnostics>b{grid-column:1/-1}}@media(max-width:650px){.competition-sync-row{display:grid}.sync-position-diagnostics{grid-template-columns:1fr}.sync-position-diagnostics>b{grid-column:auto}.admin-sync-actions{width:100%}}

/* Touchline 1.4.4 sync progress presentation */
.sync-job-card{min-width:0;height:auto;overflow:visible}
.sync-position-diagnostics{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;min-width:0;padding-top:.5rem;border-top:1px solid var(--line);font-size:11px}
.sync-position-diagnostics-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;flex-wrap:wrap;min-width:0}
.sync-position-diagnostics-head>b{color:var(--text);font-size:11px}
.sync-position-diagnostics-head>span{color:var(--muted);font-size:10px;white-space:normal}
.sync-position-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:.45rem;min-width:0}
.sync-position-card{min-width:0;padding:.5rem .55rem;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.025)}
.sync-position-name{display:block;margin-bottom:.4rem;color:var(--text);font-size:11px;letter-spacing:.04em}
.sync-position-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem;min-width:0}
.sync-position-values>span{display:grid;gap:.08rem;min-width:0;color:var(--muted);white-space:normal}
.sync-position-values b{color:var(--text);font-size:12px;line-height:1.1}
.sync-position-values small{overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:8px;line-height:1.2;text-transform:uppercase;letter-spacing:.03em}
@media(max-width:900px){.sync-position-diagnostics{grid-template-columns:minmax(0,1fr)}.sync-position-diagnostics>b{grid-column:auto}.sync-position-grid{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}}
@media(max-width:650px){.sync-position-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sync-position-values small{font-size:7px}}
@media(max-width:390px){.sync-position-grid{grid-template-columns:1fr}}

/* Touchline 1.4.5 - richer Match Centre and position-aware player statistics */
.match-goal-summary{position:relative;max-width:960px;margin:20px auto 0;padding:13px 18px;grid-template-columns:minmax(0,1fr) 86px minmax(0,1fr);gap:16px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface-raised) 92%,var(--accent) 8%);box-shadow:0 10px 28px rgba(0,0,0,.08)}
.match-goal-spacer{display:grid;place-items:center;align-self:stretch;border-left:1px solid var(--line);border-right:1px solid var(--line);color:var(--muted)}
.match-goal-spacer span{font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg)}
.match-goal-side{align-content:center;gap:7px}.match-goal-side>div.match-goal-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;min-height:24px}.match-goal-side.home>div.match-goal-line{grid-template-columns:auto minmax(0,1fr) auto;text-align:right}.match-goal-side.home .goal-ball{order:3}.match-goal-side.home .goal-scorer{order:2}.match-goal-side.home b{order:1}.goal-ball{font-size:12px;line-height:1}.goal-scorer{font-weight:800}.goal-scorer small{display:inline-flex;padding:1px 4px;border:1px solid var(--line);border-radius:3px;font-size:8px;line-height:1.35}.match-goal-side b{font-variant-numeric:tabular-nums;color:var(--text);opacity:.75}
.match-player-row{align-items:start}.match-player-row.goalkeeper{position:relative;background:color-mix(in srgb,var(--accent) 6%,var(--panel));border-left:3px solid color-mix(in srgb,var(--accent) 72%,transparent)}.match-player-row.goalkeeper .match-player-name small{display:inline-flex;width:max-content;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:800}.match-player-stat-groups{display:grid;gap:8px}.match-stat-group{display:grid;grid-template-columns:84px minmax(0,1fr);gap:8px;align-items:start}.match-stat-group>em{padding-top:5px;font-size:9px;line-height:1.2;font-style:normal;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.match-stat-pills{justify-content:flex-start}.match-stat-pills>span{min-width:72px;grid-template-columns:1fr;text-align:center;gap:2px}.match-stat-pills small{line-height:1.1}.match-player-row.goalkeeper .match-stat-pills>span{background:color-mix(in srgb,var(--accent) 7%,var(--surface-subtle))}
.player-advanced-stats{margin:24px 0 30px;padding:22px;border:1px solid var(--line);background:var(--panel)}.player-advanced-stats.goalkeeper{border-top:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 3%,var(--panel))}.advanced-stat-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.advanced-stat-group{border:1px solid var(--line);background:var(--surface-subtle)}.advanced-stat-group header{padding:10px 12px;border-bottom:1px solid var(--line)}.advanced-stat-group h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.advanced-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.advanced-stat-grid>div{padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.advanced-stat-grid>div:nth-child(3n){border-right:0}.advanced-stat-grid span{display:block;min-height:26px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.04em}.advanced-stat-grid strong{display:block;margin-top:4px;font-size:20px;font-variant-numeric:tabular-nums}.player-advanced-stats.goalkeeper .advanced-stat-grid strong{color:var(--accent)}
@media(max-width:900px){.match-goal-summary{grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr)}.match-stat-group{grid-template-columns:1fr}.match-stat-group>em{padding-top:0}.advanced-stat-groups{grid-template-columns:1fr}}
@media(max-width:650px){.match-goal-summary{grid-template-columns:1fr;gap:10px;padding:12px}.match-goal-spacer{display:none}.match-goal-side.home>div.match-goal-line,.match-goal-side.away>div.match-goal-line{grid-template-columns:auto minmax(0,1fr) auto;text-align:left}.match-goal-side.home .goal-ball,.match-goal-side.home .goal-scorer,.match-goal-side.home b{order:initial}.match-player-row{padding:14px}.advanced-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.advanced-stat-grid>div:nth-child(3n){border-right:1px solid var(--line)}.advanced-stat-grid>div:nth-child(2n){border-right:0}}
.match-centre-score .match-half-time{margin-top:-4px;padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.04em;background:var(--surface-subtle)}

/* Touchline 1.4.7 - event-quality snapshot, discipline and substitution pairs */
.match-snapshot-summary{max-width:960px;margin:20px auto 0;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface-raised) 92%,var(--accent) 8%);box-shadow:0 10px 28px rgba(0,0,0,.08);overflow:hidden}
.match-summary-row{display:grid;grid-template-columns:minmax(0,1fr) 86px minmax(0,1fr);gap:16px;padding:13px 18px;align-items:center}
.match-summary-row+.match-summary-row{border-top:1px solid var(--line)}
.match-summary-label{display:grid;place-items:center;align-self:stretch;border-left:1px solid var(--line);border-right:1px solid var(--line);color:var(--muted)}
.match-summary-label span{font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg)}
.match-card-side{display:grid;gap:6px;align-content:center}.match-card-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;min-height:22px;font-size:12px}.match-card-side.home .match-card-line{text-align:right}.match-card-side.home .card-icon{order:3}.match-card-side.home .card-player{order:2}.match-card-side.home b{order:1}.match-card-line a{color:inherit;text-decoration:none}.match-card-line a:hover{color:var(--accent)}.match-card-line b{font-size:11px;color:var(--text);opacity:.75;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.card-icon{font-size:11px;line-height:1;white-space:nowrap}.card-player{font-weight:800;min-width:0}
.substitution-pair{display:flex!important;align-items:center;gap:7px;flex-wrap:wrap}.substitution-pair .sub-off,.substitution-pair .sub-on{display:inline-flex;align-items:center;gap:3px}.substitution-pair .sub-off{color:color-mix(in srgb,var(--text) 76%,#b23b3b 24%)}.substitution-pair .sub-on{color:color-mix(in srgb,var(--text) 76%,#1b7b46 24%)}.substitution-pair .sub-arrow{color:var(--muted);font-weight:900}
@media(max-width:900px){.match-summary-row{grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr);gap:10px}}
@media(max-width:650px){.match-summary-row{grid-template-columns:1fr 1fr;gap:14px;padding:12px}.match-summary-label{display:none}.match-card-side.home .match-card-line,.match-card-side.away .match-card-line{grid-template-columns:auto minmax(0,1fr) auto;text-align:left}.match-card-side.home .card-icon,.match-card-side.home .card-player,.match-card-side.home b{order:initial}.match-summary-row+.match-summary-row{padding-top:14px}.substitution-pair{align-items:flex-start}.substitution-pair .sub-arrow{display:none}.substitution-pair .sub-off,.substitution-pair .sub-on{width:100%}}

/* Touchline 1.4.13 - compact Match Centre workspace */
.match-profile-back{margin-bottom:6px}
.match-centre-redesign{padding-top:6px;border-bottom:0}
.match-competition-heading{display:flex;justify-content:center;align-items:center;position:relative;min-height:34px;margin-bottom:10px}.match-competition-heading>div{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:12px}.match-competition-heading>div i{width:1px;height:17px;background:var(--line)}.match-competition-heading strong{color:var(--text);font-size:14px}.match-status-pill{position:absolute;right:0;top:0;padding:7px 12px;border-radius:10px;background:var(--surface-subtle);font-size:10px;font-weight:850;color:var(--muted)}.match-status-pill.finished{background:color-mix(in srgb,#24a05a 12%,var(--surface-subtle));color:#18743f}.match-status-pill.live{background:color-mix(in srgb,var(--danger) 12%,var(--surface-subtle));color:var(--danger)}
.match-quick-facts{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;width:max-content;max-width:100%;margin:0 auto 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}.match-quick-facts>div{display:flex;align-items:center;gap:7px;padding:10px 15px;min-height:42px}.match-quick-facts>div+div{border-left:1px solid var(--line)}.match-quick-facts strong{font-size:11px;font-weight:700;white-space:nowrap}.match-fact-icon{display:inline-grid;place-items:center;width:18px;color:var(--muted);font-size:14px}
.match-centre-redesign .match-centre-scoreboard{max-width:820px;grid-template-columns:minmax(0,1fr) 170px minmax(0,1fr);gap:24px}.match-centre-redesign .match-centre-team img,.match-centre-redesign .match-crest-fallback{width:82px;height:82px}.match-centre-redesign .match-centre-team strong{font-size:18px}.match-centre-redesign .match-centre-score>strong{font-size:48px}.match-centre-redesign .match-snapshot-summary{margin-top:18px}
.match-overview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:14px;margin:16px 0 14px}.match-overview-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;box-shadow:0 6px 22px rgba(0,0,0,.035)}.match-overview-card>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;cursor:pointer;list-style:none}.match-overview-card>summary::-webkit-details-marker{display:none}.match-overview-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:850}.match-overview-title>b{font-size:13px;color:var(--text);letter-spacing:-.12em}.match-overview-chevron{font-size:14px;color:var(--muted);transition:transform .18s ease}.match-overview-card[open] .match-overview-chevron{transform:rotate(180deg)}
.match-officials-inline{display:flex;flex-wrap:wrap;gap:7px 0;padding:0 15px 14px;font-size:10px;color:var(--muted)}.match-officials-inline span{display:inline-flex;gap:4px;align-items:baseline;padding-right:10px;margin-right:10px;border-right:1px solid var(--line)}.match-officials-inline span:last-child{border-right:0}.match-officials-inline b{color:var(--muted);font-weight:700}.match-officials-inline span{color:var(--text)}
.match-stat-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}.match-stat-feature{padding:10px 12px;min-width:0}.match-stat-feature+.match-stat-feature{border-left:1px solid var(--line)}.match-stat-feature>span{display:block;margin-bottom:4px;color:var(--muted);font-size:9px}.match-stat-feature>div:not(.match-stat-bars){display:flex;justify-content:space-between;gap:8px}.match-stat-feature strong{font-size:13px}.match-stat-bars{display:grid;grid-template-columns:1fr 1fr;gap:5px;align-items:center;margin-top:5px}.match-stat-bars:before,.match-stat-bars:after{content:"";display:block;grid-row:1;background:var(--surface-subtle);height:5px;border-radius:999px}.match-stat-bars i{display:block;grid-row:1;height:5px;border-radius:999px;background:var(--accent);z-index:1}.match-stat-bars i:first-of-type{grid-column:1;justify-self:start}.match-stat-bars i:last-of-type{grid-column:2;justify-self:end;opacity:.38}.match-stat-compact-line{display:flex;gap:10px 16px;flex-wrap:wrap;padding:9px 12px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}.match-stat-compact-line b{color:var(--text);font-weight:750}.match-stat-full-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}.match-stat-full-table:empty{display:none}.match-stat-full-table>div{display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;padding:7px 12px;font-size:9px}.match-stat-full-table>div:nth-child(even){border-left:1px solid var(--line)}.match-stat-full-table span{text-align:center;color:var(--muted)}
.match-section-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}.match-section-tabs button{border:0;border-radius:0;background:transparent;color:var(--muted);font:inherit;font-size:11px;font-weight:700;padding:10px 12px;cursor:pointer}.match-section-tabs button+button{border-left:1px solid var(--line)}.match-section-tabs button.active{background:var(--accent);color:#fff}.match-tab-panel[hidden]{display:none!important}.match-tab-panel{margin-bottom:30px}
.match-events-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.85fr);gap:14px;align-items:start}.match-events-sidebar{display:grid;gap:14px}.match-section-card,.match-side-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}.match-section-card-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line)}.match-section-card-head h2{margin:0;font-size:18px}.match-section-card-head span{display:block;margin-top:3px;color:var(--muted);font-size:10px}.match-event-filters{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.match-event-filters button{border:1px solid var(--line);border-radius:999px;background:var(--surface-subtle);padding:6px 9px;color:var(--muted);font:inherit;font-size:9px;font-weight:750;cursor:pointer}.match-event-filters button.active{background:var(--text);color:var(--panel);border-color:var(--text)}
.match-timeline-redesign{border-top:0}.match-timeline-redesign .match-event{padding:10px 14px;grid-template-columns:48px 26px minmax(0,1fr)}.match-timeline-redesign .match-event time{font-size:11px}.match-timeline-redesign .match-event-icon{font-size:15px}.match-timeline-redesign .match-event strong,.match-timeline-redesign .match-event a{font-size:12px}.match-timeline-redesign .match-event small{font-size:9px}.match-half-divider{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 14px;background:var(--surface-subtle);border-bottom:1px solid var(--line);font-size:10px}.match-half-divider strong{text-align:right;font-size:11px}.match-half-divider span{color:var(--muted)}.match-half-divider b{font-weight:700}
.match-side-card{padding:14px}.match-side-card-title{display:flex;align-items:center;gap:8px;margin-bottom:11px}.match-side-card-title>span{font-size:18px}.match-side-card-title h3{margin:0;font-size:14px}.match-key-moments{display:grid}.match-key-moments>div{display:grid;grid-template-columns:43px 48px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:10px}.match-key-moments time{padding:4px 6px;border:1px solid var(--line);border-radius:999px;text-align:center;font-weight:750}.match-key-moments strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-key-moments b{font-size:10px}.moment-type{padding:4px 6px;border-radius:999px;text-align:center;background:color-mix(in srgb,#2ca25f 13%,var(--surface-subtle));color:#17753f;font-size:8px;font-weight:800}.moment-type.og{background:color-mix(in srgb,#dd4b4b 13%,var(--surface-subtle));color:#a42929}
.formation-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.formation-preview-team header{display:flex;justify-content:space-between;gap:6px;align-items:center;margin-bottom:6px}.formation-preview-team header strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.formation-preview-team header span{font-size:9px;color:var(--muted);font-weight:800}.mini-pitch{min-height:120px;padding:8px 5px;display:flex;flex-direction:column;justify-content:space-between;border-radius:7px;background:color-mix(in srgb,#7fbc67 27%,var(--surface-subtle));border:1px solid color-mix(in srgb,#73aa5f 30%,var(--line));position:relative;overflow:hidden}.mini-pitch:before{content:"";position:absolute;inset:50% 0 auto;border-top:1px solid rgba(255,255,255,.55)}.mini-pitch:after{content:"";position:absolute;width:34px;height:34px;border:1px solid rgba(255,255,255,.55);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.pitch-row{display:flex;justify-content:space-around;gap:3px;position:relative;z-index:1}.pitch-row i{width:12px;height:12px;border:1px solid var(--text);border-radius:50%;background:var(--panel);box-shadow:0 1px 2px rgba(0,0,0,.12)}.pitch-row.keeper{justify-content:center}.pitch-unavailable{position:relative;z-index:1;margin:auto;color:var(--muted);font-size:8px}.match-side-link{display:block;width:100%;margin-top:9px;border:0;background:transparent;color:var(--text);text-align:right;font:inherit;font-size:9px;font-weight:750;cursor:pointer}.match-side-link:hover{color:var(--accent)}
.match-lineup-grid-tab{padding:14px}.match-player-stats-card .match-detail-columns{padding:14px}.match-player-stats-card .scoring-reconciliation-note{margin:14px}

@media(max-width:980px){.match-overview-grid{grid-template-columns:1fr}.match-events-layout{grid-template-columns:1fr}.match-events-sidebar{grid-template-columns:1fr 1fr}.match-stat-full-table{grid-template-columns:1fr}.match-stat-full-table>div:nth-child(even){border-left:0}.match-centre-redesign .match-centre-scoreboard{grid-template-columns:minmax(0,1fr) 130px minmax(0,1fr)}}
@media(max-width:700px){.match-competition-heading{justify-content:flex-start}.match-competition-heading>div{justify-content:flex-start}.match-status-pill{position:static;margin-left:auto}.match-quick-facts{width:100%;display:grid;grid-template-columns:1fr 1fr}.match-quick-facts>div{padding:8px 10px}.match-quick-facts>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.match-quick-facts>div:nth-child(4){border-top:1px solid var(--line)}.match-quick-facts strong{white-space:normal}.match-overview-grid{gap:10px}.match-stat-feature-grid{grid-template-columns:1fr}.match-stat-feature+.match-stat-feature{border-left:0;border-top:1px solid var(--line)}.match-stat-compact-line{display:grid;grid-template-columns:1fr 1fr}.match-events-sidebar{grid-template-columns:1fr}.match-section-card-head{align-items:flex-start;flex-direction:column}.match-event-filters{justify-content:flex-start}.match-section-tabs{position:sticky;top:0;z-index:10}.match-centre-redesign .match-centre-scoreboard{grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);gap:8px}.match-centre-redesign .match-centre-team img,.match-centre-redesign .match-crest-fallback{width:62px;height:62px}.match-centre-redesign .match-centre-team strong{font-size:14px}.match-centre-redesign .match-centre-score>strong{font-size:34px}.match-centre-redesign .match-centre-team small{font-size:9px}.match-centre-redesign .match-snapshot-summary{margin-top:14px}.match-officials-inline span{border-right:0;width:100%;padding-right:0;margin-right:0}.match-lineup-grid-tab{padding:10px}}
@media(max-width:480px){.match-quick-facts{grid-template-columns:1fr}.match-quick-facts>div+div{border-left:0;border-top:1px solid var(--line)}.match-stat-compact-line{grid-template-columns:1fr}.match-section-tabs button{font-size:10px;padding:9px 6px}.formation-preview-grid{grid-template-columns:1fr}.match-key-moments>div{grid-template-columns:40px 44px minmax(0,1fr) auto}.match-timeline-redesign .match-event{padding-left:8px;padding-right:8px}.match-competition-heading{align-items:flex-start;gap:8px;flex-wrap:wrap}.match-status-pill{margin-left:0}}

/* Touchline 1.4.14 - Match Centre interaction and presentation polish */
.match-event.is-filtered-out,.match-half-divider.is-filtered-out{display:none!important}
.match-event-filters button[aria-pressed="true"]{background:var(--text);color:var(--panel);border-color:var(--text)}

.formation-preview-team{min-width:0}.mini-pitch{display:flex;flex-direction:column;justify-content:space-evenly;align-items:stretch;min-height:126px;padding:8px 7px}.mini-pitch>.pitch-row{width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:center;justify-items:center;gap:0}.mini-pitch>.pitch-row i{justify-self:center}.mini-pitch>.pitch-unavailable{align-self:center;justify-self:center;margin:auto}.formation-preview-team:nth-child(2) .mini-pitch{transform:none}

.match-potm-card{position:relative}.match-potm-card .match-side-card-title{margin-bottom:12px}.match-potm-card .match-side-card-title>span:first-child{font-size:16px}.potm-status{margin-left:auto;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,var(--surface-subtle));color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.04em}.match-potm-person,.match-potm-ghost{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center}.match-potm-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,var(--surface-subtle));color:var(--accent);font-size:13px;font-weight:900;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line))}.match-potm-copy{display:grid;gap:2px}.match-potm-copy a,.match-potm-copy strong{color:var(--text);font-size:12px;font-weight:850;text-decoration:none}.match-potm-copy a:hover{color:var(--accent)}.match-potm-copy small,.match-potm-ghost small{color:var(--muted);font-size:9px;line-height:1.4}.match-potm-metrics{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.match-potm-metrics span{padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle);font-size:9px;color:var(--muted)}.match-potm-metrics b{color:var(--text)}.match-potm-card.ghosted{opacity:.62}.match-potm-card.ghosted .match-potm-avatar{background:var(--surface-subtle);color:var(--muted);border-style:dashed}.match-potm-ghost>div{display:grid;gap:3px}.match-potm-ghost strong{font-size:11px}

.lineup-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 16px 7px}.lineup-section-heading h3{margin:0}.lineup-section-heading span{font-size:9px;color:var(--muted);font-weight:700}.lineup-list.starting-xi{padding-bottom:14px}.lineup-bench-section{margin-top:4px;padding-top:4px;border-top:2px solid var(--line);background:color-mix(in srgb,var(--surface-subtle) 55%,var(--panel))}.lineup-bench-section .lineup-section-heading{margin-top:12px}.lineup-list.substitutes{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding-bottom:14px}.lineup-list.substitutes li{padding:6px 0}.lineup-list.substitutes .shirt-number{width:24px;height:24px;border-radius:7px;font-size:9px}.lineup-list.substitutes a,.lineup-list.substitutes strong{font-size:10px}.lineup-list.substitutes small{font-size:8px}

.match-player-list.compact .match-player-row{grid-template-columns:minmax(120px,.42fr) minmax(0,1fr);gap:10px;padding:9px 12px}.match-player-list.compact .match-player-row.goalkeeper{background:var(--panel);border-left:0}.match-player-list.compact .match-player-name small{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.player-position-chip.goalkeeper,.player-role-chip{display:inline-flex;width:max-content;padding:2px 5px;border-radius:999px;font-size:8px;font-weight:850}.player-position-chip.goalkeeper{background:color-mix(in srgb,var(--accent) 10%,var(--surface-subtle));color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line))}.player-role-chip{background:var(--surface-subtle);color:var(--muted);border:1px solid var(--line)}.match-player-list.compact .match-player-stat-groups{gap:5px}.match-player-list.compact .match-stat-group{grid-template-columns:70px minmax(0,1fr);gap:6px}.match-player-list.compact .match-stat-group>em{font-size:8px;padding-top:4px}.match-player-list.compact .match-stat-pills{gap:4px}.match-player-list.compact .match-stat-pills>span{min-width:58px;padding:4px 5px;border-radius:7px}.match-player-list.compact .match-stat-pills small{font-size:8px}.match-player-list.compact .match-stat-pills b{font-size:9px}.match-player-list.compact .match-player-row.goalkeeper .match-stat-pills>span{background:var(--surface-subtle)}.match-unused-bench{padding:11px 12px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-subtle) 60%,var(--panel));display:grid;gap:8px}.match-unused-bench>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.match-unused-bench strong{font-size:10px}.match-unused-bench small{font-size:8px;color:var(--muted)}.unused-bench-players{display:flex;flex-wrap:wrap;gap:5px}.unused-bench-players a,.unused-bench-players span{padding:4px 6px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);text-decoration:none;font-size:8px;font-weight:700}.unused-bench-players a:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}

@media(max-width:1100px){.lineup-list.substitutes{grid-template-columns:1fr}.match-player-list.compact .match-player-row{grid-template-columns:1fr}.match-player-list.compact .match-stat-group{grid-template-columns:68px minmax(0,1fr)}}
@media(max-width:700px){.match-potm-card{min-height:auto}.lineup-section-heading{margin-left:12px;margin-right:12px}.lineup-list.substitutes{padding-left:12px;padding-right:12px}.match-player-list.compact .match-stat-group{grid-template-columns:1fr}.match-player-list.compact .match-stat-group>em{padding-top:0}.match-unused-bench>div:first-child{display:grid}}


/* Touchline 1.4.15 - Match Centre micro-polish */
/* Keep the full statistic name: there is enough room in the compact card. */
.match-stat-feature>span{white-space:normal;line-height:1.25}

/* Centre each formation line around the actual pitch centre. The 1.4.14
   grid used a full-width implicit track for every line, which could visually
   bias the dots away from the centre-circle on compact pitches. */
.mini-pitch{box-sizing:border-box}
.mini-pitch>.pitch-row{
  box-sizing:border-box;
  width:clamp(22%,calc(var(--line-count,1) * 18%),92%);
  align-self:center;
  display:grid;
  grid-template-columns:repeat(var(--line-count,1),minmax(0,1fr));
  align-items:center;
  justify-items:center;
  gap:0;
}
.mini-pitch>.pitch-row.keeper{
  --line-count:1;
  width:22%;
  grid-template-columns:1fr;
}

/* Touchline 1.4.16 - POTM source diagnostics */
.sync-potm-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px;padding-top:9px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}
.sync-potm-summary b{color:var(--text);font-size:9px;letter-spacing:.06em;text-transform:uppercase}

/* Touchline 1.4.18 - Player of the Match review workflow */
.tab-count{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:8px;font-weight:900;vertical-align:middle}
.potm-admin-panel{display:grid;gap:16px}.potm-admin-head{align-items:flex-start}.potm-admin-head p{max-width:820px;color:var(--muted);font-size:11px;line-height:1.55}.potm-admin-counts{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.potm-admin-counts span{display:flex;gap:4px;align-items:baseline;padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface-subtle);color:var(--muted);font-size:9px}.potm-admin-counts b{color:var(--text);font-size:10px}.potm-review-list{display:grid;gap:8px}.potm-review-row{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(145px,.55fr) minmax(260px,1fr) auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}.potm-review-row.is-published{grid-template-columns:minmax(220px,1fr) minmax(180px,.6fr) auto}.potm-review-fixture,.potm-review-state{display:grid;gap:3px;min-width:0}.potm-review-fixture strong{font-size:12px}.potm-review-fixture span,.potm-review-state small{color:var(--muted);font-size:9px}.potm-review-state strong{font-size:11px}.potm-admin-status{width:max-content;padding:3px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface-subtle);font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.potm-admin-status.status-published{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,var(--line))}.potm-admin-status.status-pending{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 35%,var(--line))}.potm-admin-status.status-unresolved,.potm-admin-status.status-error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,var(--line))}.potm-review-approve{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin:0}.potm-review-approve label{display:grid;gap:4px;margin:0;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.potm-review-approve select{width:100%;min-height:36px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);color:var(--text)}.potm-review-recheck{margin:0}.potm-review-row .btn{white-space:nowrap}
@media(max-width:1050px){.potm-review-row,.potm-review-row.is-published{grid-template-columns:1fr 1fr}.potm-review-approve{grid-column:1/-1}.potm-review-recheck{justify-self:end}.potm-review-row.is-published>.btn{justify-self:end}}
@media(max-width:650px){.potm-admin-counts{justify-content:flex-start}.potm-review-row,.potm-review-row.is-published{grid-template-columns:1fr}.potm-review-approve{grid-column:auto;grid-template-columns:1fr}.potm-review-recheck,.potm-review-row.is-published>.btn{justify-self:start}}

/* Touchline 1.4.19 - POTM badge and formation preview alignment */
/* The generic title icon rule is intentionally larger; explicitly override it
   for the compact POTM status badge so the badge reads as metadata, not a CTA. */
.match-potm-card .match-side-card-title .potm-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:0;
  margin-left:auto;
  padding:2px 6px;
  border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));
  border-radius:999px;
  background:color-mix(in srgb,var(--accent) 9%,var(--surface-subtle));
  color:var(--accent);
  font-size:7px;
  line-height:1.2;
  font-weight:850;
  letter-spacing:.025em;
  text-transform:uppercase;
}

/* `.pitch-row` is also used by the full-size fantasy pitch and carries
   left/right offsets. Those offsets were leaking into the miniature Match
   Centre pitch even after the row width was centred, shifting every tactical
   line to the right of the painted centre circle. Reset them here. */
.mini-pitch>.pitch-row{
  position:relative;
  left:auto;
  right:auto;
  margin-inline:auto;
  transform:none;
}

/* v1.4.21 Match Centre fantasy/performance split */
.match-section-tabs{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.match-performance-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.match-performance-team{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}.match-performance-team-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:color-mix(in srgb,var(--surface-subtle) 72%,var(--panel));border-bottom:1px solid var(--line)}.match-performance-team-head>div{display:flex;align-items:center;gap:10px;min-width:0}.match-performance-team-head img{width:32px;height:32px;object-fit:contain}.match-performance-team-head span{display:grid;gap:2px;min-width:0}.match-performance-team-head strong{font-size:13px;color:var(--text)}.match-performance-team-head small{font-size:9px;color:var(--muted)}.match-performance-team-head small b{color:var(--accent)}
.match-stat-table-wrap{width:100%;overflow-x:auto}.match-stat-table{width:100%;border-collapse:collapse;min-width:0;font-size:10px}.match-stat-table th,.match-stat-table td{padding:8px 9px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}.match-stat-table th{font-size:8px;font-weight:800;letter-spacing:.02em;color:var(--muted);background:color-mix(in srgb,var(--surface-subtle) 65%,var(--panel));position:sticky;top:0;z-index:1}.match-stat-table th:first-child,.match-stat-table td:first-child{text-align:left}.match-stat-table tbody tr:last-child td{border-bottom:0}.match-stat-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}.stat-player-name{min-width:118px}.stat-player-name a,.stat-player-name strong{color:var(--text);font-weight:800;text-decoration:none}.stat-player-name a:hover{color:var(--accent)}.stat-player-name small{display:inline-flex;margin-left:5px;padding:2px 5px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:7px;font-weight:800}.fantasy-points-value{font-weight:900;color:var(--accent)}
.match-position-chip{display:inline-flex;align-items:center;justify-content:center;min-width:34px;padding:3px 6px;border-radius:6px;font-size:8px;font-weight:900;line-height:1;border:1px solid transparent}.match-position-chip.gk{color:#dff7e8;background:#197447;border-color:#24895a}.match-position-chip.def{color:#e7f3ff;background:#176aa2;border-color:#2580bd}.match-position-chip.mid{color:#fff1dd;background:#a95a08;border-color:#c56d0d}.match-position-chip.fwd{color:#ffe9e9;background:#ad3036;border-color:#c94249}.match-position-chip.player{color:var(--muted);background:var(--surface-subtle);border-color:var(--line)}
.match-table-unused-bench{border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-subtle) 48%,var(--panel))}.match-table-unused-bench>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;cursor:pointer;color:var(--text);font-size:9px;font-weight:800}.match-table-unused-bench>summary::-webkit-details-marker{display:none}.match-table-unused-bench>summary:before{content:'⌄';color:var(--muted);margin-right:4px}.match-table-unused-bench[open]>summary:before{content:'⌃'}.match-table-unused-bench>summary span{margin-left:auto;color:var(--muted);font-weight:600}.compact-bench-table{min-width:360px}.unused-bench-chip-list{display:flex;flex-wrap:wrap;gap:7px;padding:0 12px 12px}.unused-bench-chip-list>span{display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:8px;color:var(--muted)}.unused-bench-chip-list a{color:var(--text);font-weight:750;text-decoration:none}.unused-bench-chip-list a:hover{color:var(--accent)}.unused-bench-chip-list .match-position-chip{min-width:29px;padding:2px 4px;font-size:7px}
.match-player-stat-category-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 14px}.match-player-stat-category-tabs button{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:9px;padding:7px 13px;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.match-player-stat-category-tabs button:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--text)}.match-player-stat-category-tabs button.active{background:color-mix(in srgb,var(--accent) 16%,var(--panel));border-color:color-mix(in srgb,var(--accent) 48%,var(--line));color:var(--accent)}.match-player-stat-category-panel[hidden]{display:none!important}.match-player-stat-category-panel{margin-top:2px}.player-performance-table{min-width:520px}.match-position-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:8px}.match-position-legend span{display:flex;align-items:center;gap:6px}.match-position-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.match-position-legend .gk{background:#24895a}.match-position-legend .def{background:#2580bd}.match-position-legend .mid{background:#c56d0d}.match-position-legend .fwd{background:#c94249}
.match-fantasy-points-card .match-section-card-head,.match-performance-stats-card .match-section-card-head{margin-bottom:13px}.match-fantasy-points-card .scoring-reconciliation-note{margin-bottom:13px}
@media(max-width:1050px){.match-performance-grid{grid-template-columns:1fr}.match-stat-table{min-width:620px}}
@media(max-width:700px){.match-section-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.match-section-tabs button:nth-child(3){border-left:0;border-top:1px solid var(--line)}.match-section-tabs button:nth-child(4){border-top:1px solid var(--line)}.match-player-stat-category-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.match-player-stat-category-tabs button{padding:7px 5px}.match-performance-team-head{padding:11px}.match-stat-table th,.match-stat-table td{padding:7px 8px}}

/* v1.4.22 live Match Centre */
.match-live-freshness{width:max-content;margin:8px auto 0;padding:4px 8px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--accent);font-size:8px;font-weight:800;letter-spacing:.02em}.match-live-freshness.delayed{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 35%,var(--line));background:color-mix(in srgb,var(--gold) 7%,transparent)}.match-event.live-arrival{animation:match-live-arrival 1.8s ease-out}@keyframes match-live-arrival{0%{background:color-mix(in srgb,var(--accent) 18%,transparent)}100%{background:transparent}}@media(prefers-reduced-motion:reduce){.match-event.live-arrival{animation:none}}
.match-centre-page-head{align-items:flex-end}.match-centre-board{display:grid;gap:24px}.match-centre-lane{display:grid;gap:10px}.match-centre-list{display:grid;gap:8px}.centre-fixture{display:grid;grid-template-columns:72px minmax(160px,1fr) 74px minmax(160px,1fr) 90px;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-decoration:none}.centre-fixture:hover{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:color-mix(in srgb,var(--accent) 3%,var(--panel))}.centre-fixture.live{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));box-shadow:inset 3px 0 0 var(--accent)}.centre-clock{font-size:10px;font-weight:900;color:var(--muted)}.centre-fixture.live .centre-clock,.centre-fixture.live>em{color:var(--accent)}.centre-team{display:flex;align-items:center;gap:9px;min-width:0}.centre-team.away{justify-content:flex-end;text-align:right}.centre-team img{width:30px;height:30px;object-fit:contain}.centre-team b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.centre-score{text-align:center;font-size:17px}.centre-fixture>em,.centre-fixture>small{justify-self:end;font-style:normal;font-size:8px;font-weight:850;color:var(--muted)}.match-centre-empty{padding:16px;color:var(--muted)}
.dashboard-match-centre{display:grid;gap:12px}.dashboard-live-list{display:grid;gap:7px}.dashboard-live-fixture{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--accent) 6%,var(--panel));color:var(--text);text-decoration:none}.dashboard-live-fixture>span{color:var(--accent);font-size:9px;font-weight:900}.dashboard-live-fixture strong{font-size:11px}.dashboard-live-fixture strong b{padding:3px 7px;border-radius:7px;background:var(--surface-subtle);font-size:13px}.dashboard-live-empty{padding:9px 11px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:9px}.compact-upcoming{margin-top:2px}
.live-sync-admin{display:grid;gap:16px}.live-worker-command{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-subtle)}.live-worker-command>span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.live-worker-command code{font-size:10px;color:var(--text)}.live-worker-command small{grid-column:2;color:var(--muted);font-size:8px;line-height:1.5}.live-sync-admin-list{display:grid;gap:8px}.live-sync-admin-row{display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(240px,.8fr);gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.live-sync-admin-row>div:first-child{display:grid;gap:3px}.live-sync-admin-row>div:first-child span{font-size:8px;color:var(--muted)}.live-sync-admin-row>div:nth-child(2){display:flex;gap:8px;align-items:center}.live-sync-state{padding:3px 7px;border:1px solid var(--line);border-radius:999px;font-size:8px;font-weight:850;text-transform:uppercase}.live-sync-state.monitoring{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.live-sync-state.error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.live-sync-state.complete{color:var(--ok)}.live-sync-timing{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;color:var(--muted);font-size:8px}.live-sync-error{grid-column:1/-1;color:var(--danger);font-size:8px}
@media(max-width:820px){.centre-fixture{grid-template-columns:48px minmax(0,1fr) auto minmax(0,1fr);gap:8px}.centre-fixture>em,.centre-fixture>small{grid-column:2/-1;justify-self:end}.centre-team img{width:24px;height:24px}.centre-score{font-size:14px}.live-sync-admin-row{grid-template-columns:1fr auto}.live-sync-timing{grid-column:1/-1;justify-content:flex-start}.live-worker-command{grid-template-columns:1fr}.live-worker-command small{grid-column:auto}}@media(max-width:560px){.centre-fixture{grid-template-columns:42px 1fr auto}.centre-team.away{grid-column:2}.centre-score{grid-row:1/3;grid-column:3}.centre-fixture>em,.centre-fixture>small{grid-column:2/-1}.dashboard-live-fixture{align-items:flex-start;flex-direction:column;gap:5px}}

/* v1.4.23 shared-host live scheduler and extended play events */
.live-sync-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-subtle)}.live-sync-settings label{display:grid;gap:5px;color:var(--muted);font-size:8px;font-weight:800}.live-sync-settings select{min-height:34px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:6px 8px;font:inherit}.live-sync-settings .check-label{display:flex;align-items:center;gap:7px;min-height:34px}.live-sync-settings .check-label input{width:15px;height:15px}.live-runtime-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.live-runtime-grid article{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.live-runtime-grid span{color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.live-runtime-grid strong{font-size:13px}.live-runtime-grid small{color:var(--muted);font-size:8px}.live-event-health{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--line)}.live-event-health span{display:inline-flex;align-items:baseline;gap:4px;padding:4px 7px;border:1px solid var(--line);border-radius:7px;background:var(--surface-subtle);color:var(--muted);font-size:8px}.live-event-health b{color:var(--text);font-size:10px}.live-sync-warning{grid-column:1/-1;padding:8px 10px;border:1px solid color-mix(in srgb,var(--gold) 35%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--gold) 7%,transparent);color:var(--gold);font-size:8px;line-height:1.5}.match-event.incident .match-event-icon{font-size:14px;color:var(--muted);font-weight:900}.match-event.neutral{opacity:.86}.match-event.is-filtered-out,.match-half-divider.is-filtered-out{display:none!important}
@media(max-width:1000px){.live-sync-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.live-sync-settings>button{justify-self:start}.live-runtime-grid{grid-template-columns:1fr}}@media(max-width:600px){.live-sync-settings{grid-template-columns:1fr}}
/* Touchline 1.4.25 - live timer and cadence controls */
.match-centre-score>span.live{font-size:14px;font-variant-numeric:tabular-nums;letter-spacing:.02em;text-transform:none;min-width:54px}
.live-sync-settings{grid-template-columns:repeat(3,minmax(150px,1fr)) auto}.live-sync-settings label>small{font-size:7px;line-height:1.35;font-weight:500;color:var(--muted)}
@media(max-width:1100px){.live-sync-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.live-sync-settings>button{justify-self:start}}
@media(max-width:600px){.live-sync-settings{grid-template-columns:1fr}}

/* v1.4.27 Fantasy points centre */
.fantasy-points-centre{display:grid;gap:14px;margin:0 0 26px}.fantasy-score-summary{display:grid;grid-template-columns:1.15fr repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-soft);overflow:hidden}.fantasy-score-summary>div{display:grid;gap:3px;padding:16px 18px;align-content:center}.fantasy-score-summary>div+div{border-left:1px solid var(--line)}.fantasy-score-summary span,.fantasy-score-summary small{font-size:9px;color:var(--muted)}.fantasy-score-summary strong{font-size:24px;line-height:1.05}.fantasy-score-summary .fantasy-score-total{background:color-mix(in srgb,var(--accent) 7%,var(--panel))}.fantasy-score-summary .fantasy-score-total strong{font-size:36px;color:var(--accent)}.fantasy-points-title{margin:4px 0 0}.fantasy-points-empty{margin:0}.fantasy-gameweek-history{display:grid;gap:9px}.fantasy-gameweek-card{border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:var(--shadow-soft);overflow:hidden}.fantasy-gameweek-card.current{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}.fantasy-gameweek-card>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 15px;cursor:pointer}.fantasy-gameweek-card>summary::-webkit-details-marker{display:none}.fantasy-gameweek-card>summary>span{display:flex;align-items:center;gap:11px;min-width:0}.fantasy-gameweek-card>summary>span>b{display:grid;place-items:center;min-width:42px;height:34px;padding:0 7px;border-radius:9px;background:var(--surface-subtle);color:var(--accent);font-size:10px}.fantasy-gameweek-card>summary>span>span{display:grid;gap:2px;min-width:0}.fantasy-gameweek-card>summary strong{font-size:11px;color:var(--text)}.fantasy-gameweek-card>summary small{font-size:8px;color:var(--muted)}.fantasy-gameweek-card>summary em{font-style:normal;font-size:15px;font-weight:900;color:var(--text);white-space:nowrap}.fantasy-gameweek-body{border-top:1px solid var(--line)}.fantasy-score-reconcile{padding:9px 13px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--gold) 8%,var(--panel));color:var(--gold);font-size:8px;line-height:1.45}.fantasy-player-points{display:grid}.fantasy-player-point-row{display:grid;grid-template-columns:minmax(190px,.9fr) minmax(250px,1.5fr) 70px;gap:12px;align-items:center;padding:10px 13px;border-bottom:1px solid var(--line)}.fantasy-player-point-row:last-child{border-bottom:0}.fantasy-player-point-row.not-counted{opacity:.62;background:color-mix(in srgb,var(--surface-subtle) 45%,transparent)}.fantasy-point-player{display:flex;align-items:center;gap:9px;min-width:0}.player-avatar.small{width:28px;height:28px;font-size:8px;flex:0 0 auto}.fantasy-point-player>span:last-child{display:grid;gap:2px;min-width:0}.fantasy-point-player a{color:var(--text);font-size:10px;font-weight:850;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fantasy-point-player a:hover{color:var(--accent)}.fantasy-point-player small{font-size:8px;color:var(--muted)}.fantasy-point-components{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.fantasy-point-components>span{padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface-subtle);font-size:8px;color:var(--text)}.fantasy-point-components>small{width:100%;font-size:7px;color:var(--muted)}.fantasy-point-total{text-align:right;font-size:12px}.fantasy-player-point-row.transfer-deduction{background:color-mix(in srgb,var(--danger) 4%,var(--panel))}.fantasy-player-point-row.transfer-deduction>div{display:grid;gap:2px}.fantasy-player-point-row.transfer-deduction small{font-size:8px;color:var(--muted)}.fantasy-player-point-row.transfer-deduction .fantasy-point-total{color:var(--danger)}.league-points-link{font-style:normal;font-weight:900;color:var(--accent);text-decoration:none}.league-points-link:hover{text-decoration:underline}
@media(max-width:900px){.fantasy-score-summary{grid-template-columns:1fr 1fr}.fantasy-score-summary>div+div{border-left:0}.fantasy-score-summary>div:nth-child(even){border-left:1px solid var(--line)}.fantasy-score-summary>div:nth-child(n+3){border-top:1px solid var(--line)}.fantasy-player-point-row{grid-template-columns:minmax(170px,1fr) minmax(200px,1.2fr) 62px}}
@media(max-width:650px){.fantasy-score-summary{grid-template-columns:1fr 1fr}.fantasy-score-summary>div{padding:13px}.fantasy-score-summary strong{font-size:19px}.fantasy-score-summary .fantasy-score-total strong{font-size:28px}.fantasy-player-point-row{grid-template-columns:1fr auto;gap:7px}.fantasy-point-components{grid-column:1/-1}.fantasy-point-total{grid-column:2;grid-row:1}.fantasy-gameweek-card>summary{padding:11px}.fantasy-gameweek-card>summary>span>b{min-width:38px}.fantasy-gameweek-card>summary em{font-size:13px}}


/* 1.4.29 local player portrait cache */
.player-avatar,.player-profile-avatar{overflow:hidden}.player-avatar img,.player-profile-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:inherit}.player-avatar.has-photo,.player-profile-avatar.has-photo{padding:0;background:var(--surface-subtle)}
.player-photo-cache-panel{display:grid;gap:16px;margin-bottom:22px}.player-photo-cache-panel code{font-size:11px;color:var(--accent)}.player-photo-cache-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);background:var(--surface-subtle)}.player-photo-cache-grid>div{display:grid;gap:3px;padding:12px 14px}.player-photo-cache-grid>div+div{border-left:1px solid var(--line)}.player-photo-cache-grid span,.player-photo-cache-note,.player-photo-cache-actions>span{font-size:9px;color:var(--muted)}.player-photo-cache-grid strong{font-size:20px}.player-photo-cache-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.player-photo-cache-actions>span{margin-left:auto}.player-photo-progress{height:5px;background:var(--surface-subtle);border:1px solid var(--line);overflow:hidden}.player-photo-progress>span{display:block;height:100%;width:0;background:var(--accent);transition:width .2s ease}.player-photo-cache-panel.syncing .player-photo-progress>span{min-width:3%}.player-photo-cache-note{line-height:1.5}
@media(max-width:700px){.player-photo-cache-grid{grid-template-columns:1fr}.player-photo-cache-grid>div+div{border-left:0;border-top:1px solid var(--line)}.player-photo-cache-actions>span{width:100%;margin-left:0}}

/* V1.4.31 — richer club / team profile --------------------------------------- */
.team-page-v2{--team-radius:14px;display:grid;gap:0;padding-top:2px}
.team-back-link{display:inline-flex;align-items:center;width:max-content;margin:24px 0 18px;font-weight:700;color:var(--muted)}
.team-back-link:hover{color:var(--accent)}
.team-profile-hero-v2{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:26px;align-items:center;min-height:190px;margin:0 0 18px;padding:28px 30px;border:1px solid var(--line);border-radius:var(--team-radius);background:linear-gradient(105deg,color-mix(in srgb,var(--accent) 9%,var(--panel)) 0%,var(--panel) 45%,color-mix(in srgb,var(--blue) 12%,var(--panel)) 100%);box-shadow:0 12px 32px rgba(24,36,32,.07)}
.team-profile-hero-v2::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(120deg,transparent 0 68%,color-mix(in srgb,var(--accent) 13%,transparent) 68% 84%,color-mix(in srgb,var(--gold) 17%,transparent) 84% 88%,transparent 88%);pointer-events:none}
.team-hero-watermark{position:absolute;right:125px;top:50%;z-index:-1;width:250px;height:250px;object-fit:contain;transform:translateY(-50%) rotate(-6deg);opacity:.055;filter:grayscale(.2);pointer-events:none}
.team-profile-crest-v2{width:108px;height:108px;border-radius:18px;background:color-mix(in srgb,var(--panel) 90%,transparent);box-shadow:0 12px 30px rgba(15,32,26,.09);border:1px solid color-mix(in srgb,var(--line-strong) 75%,transparent)}
.team-profile-crest-v2 img{max-width:80px;max-height:80px}
.team-profile-heading-v2{min-width:0}.team-profile-heading-v2 .eyebrow{display:block;color:var(--accent);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.team-profile-heading-v2 h1{margin:5px 0 8px;font-size:clamp(42px,5vw,66px);line-height:.98;letter-spacing:-.045em}.team-hero-meta{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.team-hero-meta i{width:3px;height:3px;border-radius:50%;background:var(--line-strong)}
.team-points-v2{min-width:138px;padding:18px 20px;text-align:center;border:1px solid color-mix(in srgb,var(--line-strong) 75%,transparent);border-radius:12px;background:color-mix(in srgb,var(--panel) 90%,transparent);box-shadow:0 8px 24px rgba(15,32,26,.06);backdrop-filter:blur(8px)}.team-points-v2 span{font-size:10px;text-transform:uppercase;letter-spacing:.06em}.team-points-v2 strong{font-family:Georgia,"Times New Roman",serif;font-size:45px;line-height:1.05;color:var(--text)}.team-points-v2 small{font-size:10px}
.team-season-strip-v2{gap:10px;margin:0 0 18px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}.team-season-strip-v2>div{min-height:82px;padding:13px 15px;border:1px solid var(--line)!important;border-radius:10px;background:var(--panel);box-shadow:var(--shadow-soft);align-content:center}.team-season-strip-v2 span{font-size:10px;text-transform:none;letter-spacing:0}.team-season-strip-v2 strong{font-family:Georgia,"Times New Roman",serif;font-size:25px;line-height:1.05}
.team-section-card,.team-list-panel{border:1px solid var(--line);border-radius:var(--team-radius);background:var(--panel);box-shadow:var(--shadow-soft)}
.team-form-section.team-section-card{margin:0 0 18px;padding:20px}
.team-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:15px}.team-section-heading h2{margin:2px 0 2px;font-size:20px;letter-spacing:-.025em}.team-section-heading p{margin:0;color:var(--muted);font-size:11px}.team-section-kicker{display:block;color:var(--accent);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.team-section-heading.compact{padding:18px 19px 13px;margin:0;border-bottom:1px solid var(--line)}.team-section-heading.compact h2{font-size:19px}.squad-heading{margin-bottom:14px}.team-count-pill{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--muted);font-size:10px!important;background:var(--surface-raised)}
.form-five-v2{gap:10px}.form-result-v2{min-height:118px;padding:12px 13px;border-radius:10px;box-shadow:none;text-decoration:none;color:inherit;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.form-result-v2[href]:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));box-shadow:0 8px 20px rgba(20,36,31,.07)}.form-result-top{display:flex;justify-content:space-between;align-items:center}.form-result-top>small{font-size:9px;color:var(--muted)}.form-status{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900;background:var(--surface-subtle);color:var(--muted)}.form-result-v2.w .form-status{background:color-mix(in srgb,var(--ok) 18%,var(--panel));color:var(--ok)}.form-result-v2.d .form-status{background:color-mix(in srgb,var(--gold) 16%,var(--panel));color:var(--gold)}.form-result-v2.l .form-status{background:color-mix(in srgb,var(--danger) 14%,var(--panel));color:var(--danger)}.form-result-v2.n-a .form-status{background:var(--surface-subtle);color:var(--muted)}.form-opponent{display:flex;align-items:center;gap:8px;min-width:0}.form-opponent>img{width:29px;height:29px;object-fit:contain;flex:0 0 auto}.form-opponent>span{display:grid;min-width:0}.form-opponent small{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.form-opponent strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-result-v2>b{font-size:17px;line-height:1}.form-result-v2.n-a .form-opponent{opacity:.65}
.team-two-col-v2{gap:16px;margin:0 0 28px}.team-list-panel{overflow:hidden;min-width:0}.team-fixture-list-v2{border-top:0;padding:0 18px 7px}.team-fixture-row-v2{grid-template-columns:50px 30px minmax(0,1fr) auto 28px;gap:10px;padding:11px 2px;color:inherit}.team-fixture-row-v2.upcoming{grid-template-columns:50px 30px minmax(0,1fr) auto}.team-fixture-row-v2:hover{padding-left:7px;padding-right:7px;background:var(--surface-raised);border-radius:7px}.team-fixture-row-v2 time{font-size:10px}.team-fixture-row-v2 .team-fixture-opponent>img{width:27px;height:27px}.team-fixture-row-v2 .team-fixture-opponent strong{font-size:12px}.team-fixture-row-v2 .team-fixture-opponent small{font-size:9px}.venue-badge{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:var(--surface-subtle);color:var(--muted);font-size:9px;font-weight:800}.fixture-score-pill{min-width:52px;padding:6px 9px;border-radius:8px;background:var(--surface-subtle);font-size:13px;font-weight:800;text-align:center}.fixture-time{font-size:11px}.team-fixture-row-v2 .result-badge{width:26px;height:26px;border-radius:7px;font-size:10px}.team-empty-state{padding:26px 20px;color:var(--muted);font-size:12px}
.team-squad-section-v2{margin-top:0}.team-squad-grid-v2{gap:8px}.team-player-card-v2{min-height:68px;padding:9px 11px;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;box-shadow:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.team-player-card-v2:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 38%,var(--line));box-shadow:0 7px 18px rgba(20,36,31,.065)}.team-player-avatar-wrap{width:44px;height:44px;display:grid;place-items:center}.team-player-avatar-wrap .player-avatar{width:42px;height:42px}.team-player-copy{display:grid;gap:5px!important;min-width:0}.team-player-copy>strong{font-size:12px}.team-player-meta{display:flex!important;align-items:center;gap:7px;min-width:0}.team-player-meta .pos{padding:3px 5px;border-radius:4px;font-size:8px}.team-player-meta small{font-size:9px!important;color:var(--muted)}.team-player-meta .availability-dot{display:inline-block;margin-right:4px}.team-player-points{display:grid!important;justify-items:end;gap:1px;text-align:right;min-width:64px}.team-player-points small{font-size:8px!important;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.team-player-points strong{font-family:Georgia,"Times New Roman",serif;font-size:16px;white-space:nowrap}.team-player-points em{font-size:8px!important;color:var(--accent);font-style:normal;font-weight:700}
html[data-theme="dark"] .team-profile-hero-v2{box-shadow:none;background:linear-gradient(105deg,color-mix(in srgb,var(--accent) 8%,var(--panel)) 0%,var(--panel) 45%,color-mix(in srgb,var(--blue) 8%,var(--panel)) 100%)}
html[data-theme="dark"] .team-profile-crest-v2,html[data-theme="dark"] .team-points-v2{box-shadow:none;background:color-mix(in srgb,var(--panel) 94%,transparent)}
html[data-theme="dark"] .team-hero-watermark{opacity:.08}
@media(max-width:900px){.team-profile-hero-v2{grid-template-columns:auto minmax(0,1fr);padding:24px}.team-points-v2{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left}.team-points-v2 strong{grid-row:1/3;grid-column:2;font-size:38px}.team-season-strip-v2{grid-template-columns:repeat(4,1fr)}.team-two-col-v2{grid-template-columns:1fr}}
@media(max-width:760px){.team-page-v2{display:block}.team-profile-hero-v2{grid-template-columns:76px minmax(0,1fr);gap:16px;min-height:0;padding:20px}.team-profile-crest-v2{width:76px;height:76px}.team-profile-crest-v2 img{max-width:58px;max-height:58px}.team-profile-heading-v2 h1{font-size:clamp(34px,10vw,48px)}.team-hero-watermark{right:18px;width:180px;height:180px}.team-points-v2{margin-top:4px}.team-season-strip-v2{grid-template-columns:repeat(2,1fr);gap:8px}.team-season-strip-v2>div{min-height:68px}.team-form-section.team-section-card{padding:17px}.form-five-v2{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto;padding:2px 2px 9px}.form-result-v2{min-height:112px}.team-fixture-list-v2{padding:0 12px 6px}.team-fixture-row-v2{grid-template-columns:42px 26px minmax(0,1fr) auto 25px}.team-fixture-row-v2.upcoming{grid-template-columns:42px 26px minmax(0,1fr) auto}.team-squad-grid-v2{grid-template-columns:1fr}.team-section-heading.squad-heading{align-items:flex-start}.team-count-pill{margin-top:2px}}
@media(max-width:480px){.team-profile-hero-v2{grid-template-columns:62px minmax(0,1fr);padding:16px}.team-profile-crest-v2{width:62px;height:62px;border-radius:13px}.team-profile-crest-v2 img{max-width:48px;max-height:48px}.team-profile-heading-v2 .eyebrow{font-size:8px}.team-profile-heading-v2 h1{font-size:34px}.team-hero-meta{font-size:10px}.team-points-v2{padding:13px 14px}.team-points-v2 strong{font-size:32px}.team-season-strip-v2>div{padding:11px 12px}.team-season-strip-v2 strong{font-size:22px}.team-section-heading{display:block}.team-count-pill{display:inline-flex;margin-top:9px}.team-fixture-row-v2{grid-template-columns:39px 24px minmax(0,1fr) auto}.team-fixture-row-v2 .result-badge{display:none}.team-fixture-row-v2.upcoming{grid-template-columns:39px 24px minmax(0,1fr) auto}.fixture-score-pill{min-width:46px;padding:5px 7px}.team-player-points{min-width:58px}}

/* Touchline 1.4.32 - player profile visual refresh */
.player-page-v2{--player-radius:16px;display:block}.player-back-v2{display:inline-flex;align-items:center;margin:24px 0 12px;font-weight:750;color:var(--muted)}.player-back-v2:hover{color:var(--accent)}
.player-profile-hero-v2{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;margin:0 0 14px;padding:24px;border:1px solid var(--line);border-radius:var(--player-radius);background:linear-gradient(105deg,color-mix(in srgb,var(--accent) 8%,var(--panel)) 0%,var(--panel) 58%,color-mix(in srgb,var(--blue) 7%,var(--panel)) 100%);box-shadow:var(--shadow-soft);overflow:hidden}.player-profile-hero-v2:after{content:"";position:absolute;right:-42px;bottom:-72px;width:250px;height:250px;border-radius:50%;background:color-mix(in srgb,var(--accent) 8%,transparent);pointer-events:none}.player-hero-avatar-wrap{position:relative;z-index:1}.player-profile-avatar-v2{width:108px;height:108px;font-size:30px;border:0;box-shadow:0 0 0 7px color-mix(in srgb,var(--panel) 75%,transparent),0 12px 28px rgba(18,42,33,.12)}.player-profile-heading-v2{position:relative;z-index:1;min-width:0}.player-profile-heading-v2>.eyebrow{font-size:9px;letter-spacing:.09em;text-transform:uppercase}.player-profile-heading-v2 h1{margin:4px 0 10px;font-size:clamp(38px,5vw,60px);line-height:.98;letter-spacing:-.045em}.player-hero-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:11px}.player-club-meta{display:inline-flex;align-items:center;gap:7px;color:var(--text)}.player-club-meta:hover{color:var(--accent)}.player-club-meta img{width:28px;height:28px;object-fit:contain}.player-hero-meta>.pos{padding:4px 7px}.player-profile-points-v2{position:relative;z-index:1;min-width:150px;display:grid;gap:4px;padding:17px 20px;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--accent) 9%,var(--panel));text-align:left}.player-profile-points-v2 span{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.player-profile-points-v2 strong{font-family:Georgia,"Times New Roman",serif;font-size:42px;line-height:1}.player-profile-points-v2 small{font-size:9px;color:var(--muted)}
.player-summary-grid-v2{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:0 0 18px}.player-summary-grid-v2>article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;min-height:88px;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:var(--shadow-soft);min-width:0}.player-summary-grid-v2 article>div{display:grid;gap:2px;min-width:0}.player-summary-grid-v2 small{font-size:9px;color:var(--muted)}.player-summary-grid-v2 strong{font-size:17px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-summary-grid-v2 em{font-style:normal;font-size:8px;color:var(--muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-summary-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--accent) 10%,var(--surface-subtle));color:var(--accent);font-size:12px;font-weight:900}.player-summary-icon.warn{color:var(--gold)}.player-summary-icon.danger{color:var(--danger)}.player-summary-icon.neutral{color:var(--muted)}
.player-section-card-v2{margin:0 0 18px;padding:20px;border:1px solid var(--line);border-radius:var(--player-radius);background:var(--panel);box-shadow:var(--shadow-soft);min-width:0}.player-section-head-v2{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.player-section-head-v2.compact{align-items:center}.player-section-head-v2 .eyebrow{display:block;margin-bottom:3px;font-size:8px;letter-spacing:.08em;text-transform:uppercase}.player-section-head-v2 h2{margin:0;font-size:20px;letter-spacing:-.025em}.player-section-head-v2 p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.player-season-record-v2{padding-bottom:18px}.season-stat-grid-v2{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.season-stat-grid-v2>div{min-height:72px;padding:12px 13px!important;border-radius:9px!important;background:var(--surface-raised)!important;display:grid;align-content:center}.season-stat-grid-v2 span{min-height:0;font-size:8px;text-transform:none;letter-spacing:0}.season-stat-grid-v2 strong{margin-top:4px;font-family:Georgia,"Times New Roman",serif;font-size:21px}.player-season-record-v2 .data-note{margin-top:14px;border-radius:0 7px 7px 0;font-size:9px}.player-season-record-v2 .stat-source{margin:8px 0 0;color:var(--muted);font-size:8px}
.player-advanced-stats-v2{padding:20px!important;background:var(--panel)!important;border:1px solid var(--line)!important}.player-advanced-stats-v2.goalkeeper{border-top:1px solid var(--line)!important}.player-stat-tabs-v2{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));margin:0 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-subtle);overflow:hidden}.player-stat-tabs-v2 button{min-height:42px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font:inherit;font-size:9px;font-weight:800;cursor:pointer}.player-stat-tabs-v2 button:last-child{border-right:0}.player-stat-tabs-v2 button:hover{color:var(--text);background:color-mix(in srgb,var(--accent) 4%,transparent)}.player-stat-tabs-v2 button.active{position:relative;color:var(--accent);background:var(--panel)}.player-stat-tabs-v2 button.active:after{content:"";position:absolute;left:16%;right:16%;bottom:0;height:2px;border-radius:999px;background:var(--accent)}.player-stat-panel-v2[hidden]{display:none!important}.player-stat-panel-v2{min-width:0}.player-stat-tab-grid-v2{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}.player-stat-tab-grid-v2>div{display:grid;gap:5px;align-content:center;min-height:78px;padding:13px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.player-stat-tab-grid-v2>div:last-child{border-right:0}.player-stat-tab-grid-v2 span{font-size:8px;color:var(--muted);line-height:1.25;overflow-wrap:anywhere}.player-stat-tab-grid-v2 strong{font-family:Georgia,"Times New Roman",serif;font-size:22px;line-height:1;color:var(--text)}
.profile-layout-v2{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:16px;margin:0 0 18px}.profile-layout-v2>.player-section-card-v2{margin:0}.profile-details-v2 dl{margin:0}.profile-details-v2 dl>div{display:grid;grid-template-columns:minmax(105px,.42fr) minmax(0,1fr);gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.profile-details-v2 dl>div:last-child{border-bottom:0}.profile-details-v2 dt{font-size:9px;color:var(--muted)}.profile-details-v2 dd{margin:0;font-size:11px;font-weight:700;min-width:0}.profile-club-link{display:inline-flex;align-items:center;gap:8px}.profile-club-link img{width:25px;height:25px;object-fit:contain}.profile-club-link:hover{color:var(--accent)}.profile-fixtures-v2{display:grid;border-top:1px solid var(--line)}.profile-fixture-v2{display:grid;grid-template-columns:78px 28px 28px minmax(0,1fr) 14px;align-items:center;gap:9px;padding:10px 2px;border-bottom:1px solid var(--line);color:inherit}.profile-fixture-v2:hover{background:var(--surface-raised);padding-inline:7px;border-radius:7px}.profile-fixture-v2 time{display:grid;gap:2px;font-size:9px;color:var(--muted)}.profile-fixture-v2 time small{font-size:9px;color:var(--text);font-weight:700}.profile-fixture-v2>img{width:26px;height:26px;object-fit:contain}.profile-fixture-v2>div{display:grid;gap:2px;min-width:0}.profile-fixture-v2>div strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-fixture-v2>div span{font-size:8px;color:var(--muted)}.profile-fixture-v2>b{color:var(--muted);font-size:15px}.fixture-side-pill{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;font-size:8px;font-weight:900}.fixture-side-pill.home{background:color-mix(in srgb,var(--blue) 13%,var(--panel));color:var(--blue)}.fixture-side-pill.away{background:color-mix(in srgb,var(--danger) 10%,var(--panel));color:var(--danger)}
.player-history-v2{margin-top:0;padding-bottom:13px}.player-history-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.player-history-table-v2{width:100%;border-collapse:collapse;min-width:760px}.player-history-table-v2 th,.player-history-table-v2 td{padding:10px 11px;border-bottom:1px solid var(--line);font-size:9px;text-align:center;white-space:nowrap}.player-history-table-v2 th{background:var(--surface-subtle);color:var(--muted);font-size:8px;font-weight:800}.player-history-table-v2 th:first-child,.player-history-table-v2 td:first-child,.player-history-table-v2 th:nth-child(2),.player-history-table-v2 td:nth-child(2){text-align:left}.player-history-table-v2 tbody tr:last-child td{border-bottom:0}.player-history-table-v2 tbody tr:hover{background:var(--surface-raised)}.history-opponent-v2{display:inline-flex;align-items:center;gap:8px}.history-opponent-v2 img{width:25px;height:25px;object-fit:contain}.history-result-v2,.history-role-v2{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:4px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface-subtle);font-size:8px;font-weight:800}.history-result-v2.w{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 28%,var(--line));background:color-mix(in srgb,var(--ok) 9%,var(--panel))}.history-result-v2.l{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 25%,var(--line));background:color-mix(in srgb,var(--danger) 8%,var(--panel))}.history-result-v2.d{color:var(--muted)}
html[data-theme="dark"] .player-profile-hero-v2,html[data-theme="dark"] .player-section-card-v2,html[data-theme="dark"] .player-summary-grid-v2>article{box-shadow:none}
@media(max-width:1050px){.player-summary-grid-v2{grid-template-columns:repeat(3,minmax(0,1fr))}.season-stat-grid-v2{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:820px){.player-profile-hero-v2{grid-template-columns:auto minmax(0,1fr)}.player-profile-points-v2{grid-column:1/-1;grid-template-columns:1fr auto;align-items:center}.player-profile-points-v2 strong{grid-row:1/3;grid-column:2}.season-stat-grid-v2{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-layout-v2{grid-template-columns:1fr}.player-stat-tabs-v2{display:flex;overflow-x:auto}.player-stat-tabs-v2 button{flex:1 0 120px}}
@media(max-width:620px){.player-page-v2{--player-radius:13px}.player-profile-hero-v2{grid-template-columns:76px minmax(0,1fr);gap:15px;padding:18px}.player-profile-avatar-v2{width:76px;height:76px;box-shadow:0 0 0 5px color-mix(in srgb,var(--panel) 75%,transparent)}.player-profile-heading-v2 h1{font-size:34px}.player-hero-meta{gap:7px}.player-club-meta img{width:23px;height:23px}.player-profile-points-v2{padding:13px 15px}.player-profile-points-v2 strong{font-size:34px}.player-summary-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.player-summary-grid-v2>article{min-height:78px}.player-section-card-v2{padding:16px}.player-section-head-v2{align-items:flex-start}.season-stat-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.player-stat-tab-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-details-v2 dl>div{grid-template-columns:90px minmax(0,1fr)}.profile-fixture-v2{grid-template-columns:68px 26px 26px minmax(0,1fr) 12px}.coverage-pill{white-space:normal}}
@media(max-width:430px){.player-profile-hero-v2{grid-template-columns:64px minmax(0,1fr);padding:15px}.player-profile-avatar-v2{width:64px;height:64px}.player-profile-heading-v2 h1{font-size:30px}.player-profile-heading-v2>.eyebrow{display:none}.player-profile-points-v2{grid-column:1/-1}.player-summary-grid-v2{grid-template-columns:1fr}.season-stat-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.player-stat-tab-grid-v2{grid-template-columns:1fr}.profile-details-v2 dl>div{grid-template-columns:1fr;gap:4px}.profile-fixture-v2{grid-template-columns:62px 25px 24px minmax(0,1fr)}.profile-fixture-v2>b{display:none}}

/* v1.4.33 — Season statistics redesign */
.season-stats-v3-head{align-items:center;padding-bottom:20px}.season-title-lockup{display:flex;align-items:flex-start;gap:16px}.season-title-icon{display:flex;align-items:end;gap:4px;width:34px;height:38px;padding:5px 4px 4px}.season-title-icon i{display:block;width:6px;border-radius:4px;background:var(--accent)}.season-title-icon i:nth-child(1){height:16px}.season-title-icon i:nth-child(2){height:26px}.season-title-icon i:nth-child(3){height:34px}.season-stats-v3-head h1{margin:4px 0 6px;font-size:clamp(35px,4.5vw,54px);letter-spacing:-.035em}.season-stats-v3-head p{margin:0;color:var(--muted);max-width:700px}.season-head-actions{display:grid;justify-items:end;gap:8px}.season-head-actions small{color:var(--muted);font-size:10px}.season-pill{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:var(--shadow-soft);font-weight:800;font-size:11px;white-space:nowrap}
.season-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);margin:2px 0 24px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-soft);overflow:hidden}.season-kpi-strip>div{display:grid;gap:4px;padding:14px 17px;min-width:0}.season-kpi-strip>div+div{border-left:1px solid var(--line)}.season-kpi-strip span,.season-kpi-strip small{color:var(--muted);font-size:9px}.season-kpi-strip strong{font-family:Georgia,"Times New Roman",serif;font-size:23px;line-height:1}.season-kpi-strip small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.season-leaders-v3,.season-table-card-v3{margin:0 0 28px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow-soft)}.season-section-head-v3,.season-table-head-v3{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.season-section-head-v3>div,.season-table-head-v3>div:first-child{display:flex;align-items:center;gap:11px}.season-section-head-v3 h2,.season-table-head-v3 h2{margin:0 0 3px;font-size:20px}.season-section-head-v3 p,.season-table-head-v3 p{margin:0;color:var(--muted);font-size:10px}.section-icon-v3{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-weight:900}.section-icon-v3.bars{display:flex;align-items:end;justify-content:center;gap:3px;padding:7px}.section-icon-v3.bars i{display:block;width:4px;border-radius:3px;background:currentColor}.section-icon-v3.bars i:nth-child(1){height:8px}.section-icon-v3.bars i:nth-child(2){height:13px}.section-icon-v3.bars i:nth-child(3){height:18px}
.season-leader-grid-v3{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.season-leader-card-v3{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}.season-leader-card-v3>header{display:flex;align-items:center;gap:8px;padding:13px 13px 7px}.season-leader-card-v3 h3{margin:0;font-size:10px;line-height:1.2}.leader-icon-v3{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:900;flex:0 0 auto}.leader-feature-v3{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 13px 12px;color:inherit;text-decoration:none}.leader-feature-v3:hover .leader-feature-copy-v3 strong{color:var(--accent)}.leader-avatar-v3{width:45px;height:45px;display:grid;place-items:center;border-radius:50%;overflow:hidden;background:var(--surface-subtle);color:var(--muted);font-weight:900;font-size:12px;flex:0 0 auto}.leader-avatar-v3 img{width:100%;height:100%;object-fit:cover}.leader-feature-copy-v3{display:grid;gap:4px;min-width:0}.leader-feature-copy-v3 strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-feature-copy-v3 small{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-feature-copy-v3 small img{width:15px;height:15px;object-fit:contain}.leader-feature-value-v3{display:grid;justify-items:end;align-content:center;gap:1px}.leader-feature-value-v3 b{font-family:Georgia,"Times New Roman",serif;font-size:22px;color:var(--accent);line-height:1}.leader-feature-value-v3 small{font-size:7px;color:var(--muted)}.leader-runners-v3{border-top:1px solid var(--line);padding:5px 8px 8px}.leader-runners-v3 a{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:5px;padding:5px 4px;color:inherit;text-decoration:none;font-size:8px}.leader-runners-v3 a:hover{color:var(--accent)}.leader-runners-v3 a>span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-rank-v3{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:var(--surface-subtle);color:var(--muted);font-weight:800}.leader-runners-v3 strong{font-size:8px}.leader-empty-v3{min-height:122px;display:grid;place-items:center;padding:14px;color:var(--muted);font-size:9px;text-align:center}
.qualification-key{display:flex!important;align-items:center!important;justify-content:flex-end;flex-wrap:wrap;gap:13px!important}.qualification-key span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:8px;white-space:nowrap}.qualification-key i{width:14px;height:14px;border-radius:50%;display:block;border:1px solid color-mix(in srgb,var(--line) 75%,transparent)}.qualification-key .key-ucl i{background:color-mix(in srgb,#41c983 33%,var(--panel))}.qualification-key .key-uel i{background:color-mix(in srgb,#54a8ff 31%,var(--panel))}.qualification-key .key-rel i{background:color-mix(in srgb,#ff626d 30%,var(--panel))}
.season-table-wrap-v3{overflow:auto;border:1px solid var(--line);border-radius:13px}.season-table-v3{width:100%;border-collapse:collapse;min-width:850px;font-size:9px}.season-table-v3 th{padding:10px 11px;background:var(--table-head);color:var(--muted);font-size:7px;text-transform:uppercase;letter-spacing:.08em;text-align:center;position:sticky;top:76px;z-index:2}.season-table-v3 th:nth-child(1),.season-table-v3 th:nth-child(2){text-align:left}.season-table-v3 td{padding:8px 11px;border-top:1px solid color-mix(in srgb,var(--line) 76%,transparent);text-align:center;vertical-align:middle}.season-table-v3 tbody tr:first-child td{border-top:0}.season-table-v3 tbody tr:hover td{background:color-mix(in srgb,var(--accent) 3.5%,transparent)}.season-table-v3 tbody tr.qualification-ucl td{background:color-mix(in srgb,#41c983 9%,var(--panel))}.season-table-v3 tbody tr.qualification-uel td{background:color-mix(in srgb,#54a8ff 9%,var(--panel))}.season-table-v3 tbody tr.qualification-rel td{background:color-mix(in srgb,#ff626d 9%,var(--panel))}.season-table-v3 tbody tr.qualification-ucl td:first-child{box-shadow:inset 3px 0 0 #41c983}.season-table-v3 tbody tr.qualification-uel td:first-child{box-shadow:inset 3px 0 0 #54a8ff}.season-table-v3 tbody tr.qualification-rel td:first-child{box-shadow:inset 3px 0 0 #ff626d}.season-table-v3 tbody tr.table-half-divider td{border-top:3px solid color-mix(in srgb,var(--text) 82%,transparent)}.table-position-v3 span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;font-weight:850}.table-club-v3{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;min-width:180px}.table-club-v3:hover strong{color:var(--accent)}.table-club-v3 img{width:28px;height:28px;object-fit:contain;flex:0 0 auto}.table-club-v3>span{display:grid;gap:1px;text-align:left;min-width:0}.table-club-v3 strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-club-v3 small{font-size:7px;color:var(--muted)}.table-points-v3{font-weight:900!important;font-size:10px}.table-form-v3{display:flex;justify-content:flex-end;gap:4px;min-width:108px}.table-form-v3 span{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;font-size:7px;font-weight:900}.table-form-v3 .form-w{background:color-mix(in srgb,#24b874 87%,var(--panel));color:#fff}.table-form-v3 .form-d{background:color-mix(in srgb,var(--muted) 55%,var(--panel));color:#fff}.table-form-v3 .form-l{background:color-mix(in srgb,#ec4f5b 90%,var(--panel));color:#fff}.table-form-v3 .form-empty-v3{width:auto;background:transparent;color:var(--muted)}.season-table-foot-v3{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:11px 2px 0;color:var(--muted);font-size:8px}.season-table-foot-v3 p{margin:0;max-width:760px}.season-table-foot-v3 span{text-align:right;max-width:330px}

@media(max-width:1100px){.season-leader-grid-v3{grid-template-columns:repeat(3,minmax(0,1fr))}.season-leader-card-v3:nth-child(4),.season-leader-card-v3:nth-child(5){grid-column:span 1}.qualification-key{justify-content:flex-start!important}.season-table-head-v3{display:grid}.season-table-head-v3>div:first-child{align-items:flex-start}}
@media(max-width:820px){.season-kpi-strip{grid-template-columns:1fr 1fr}.season-kpi-strip>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.season-kpi-strip>div:nth-child(4){border-top:1px solid var(--line)}.season-leader-grid-v3{grid-template-columns:1fr 1fr}.season-leader-card-v3:last-child{grid-column:1/-1}.season-table-v3 th{top:105px}.season-table-foot-v3{display:grid}.season-table-foot-v3 span{text-align:left;max-width:none}}
@media(max-width:620px){.season-title-lockup{gap:10px}.season-title-icon{display:none}.season-head-actions{justify-items:start}.season-kpi-strip{grid-template-columns:1fr 1fr}.season-leaders-v3,.season-table-card-v3{padding:14px;border-radius:15px}.season-leader-grid-v3{grid-template-columns:1fr}.season-leader-card-v3:last-child{grid-column:auto}.qualification-key{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}.season-table-v3 th:nth-child(n+7):not(:last-child),.season-table-v3 td:nth-child(n+7):not(:last-child){display:none}.season-table-v3{min-width:610px}.season-table-foot-v3{font-size:8px}}

/* v1.4.34 - Season statistics table header correction.
   The v1.4.33 sticky header used a page-level top offset inside an overflow
   wrapper, allowing it to float over league rows during normal page scroll.
   Keep this table header in document flow; horizontal scrolling remains on
   the wrapper and the header always stays directly above position 1. */
.season-table-v3 thead{position:static}
.season-table-v3 th{position:static;top:auto;z-index:auto;background:var(--table-head);box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--line) 90%,transparent)}
@media(max-width:820px){.season-table-v3 th{position:static;top:auto}}

/* v1.4.35 - full player statistics explorer */
.season-all-stats-link{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-subtle);color:var(--accent);font-size:9px;font-weight:850;text-decoration:none;white-space:nowrap}.season-all-stats-link:hover{background:var(--accent-soft)}.season-all-stats-link span{font-size:12px}
.player-stats-page{display:grid;gap:0}.stats-back-link{display:inline-flex;width:max-content;margin:22px 0 14px;color:var(--muted);font-weight:750}.stats-back-link:hover{color:var(--accent)}.player-stats-head{align-items:flex-end}.player-stats-head-meta{display:grid;justify-items:end;gap:2px;padding:12px 14px;min-width:145px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:var(--shadow-soft)}.player-stats-head-meta strong{font-size:26px;color:var(--accent);line-height:1}.player-stats-head-meta span,.player-stats-head-meta small{font-size:8px;color:var(--muted)}
.player-stats-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:13px 15px;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--accent) 5%,var(--panel))}.player-stats-intro>div{display:grid;gap:3px}.player-stats-intro strong{font-size:10px}.player-stats-intro span{font-size:9px;color:var(--muted)}
.player-stats-controls{margin:0 0 12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow-soft)}.player-stats-filter-form{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(120px,.8fr)) auto;gap:9px;align-items:end}.player-stats-filter-form label{display:grid;gap:5px;min-width:0}.player-stats-filter-form label>span{font-size:8px;color:var(--muted);font-weight:800}.player-stats-filter-form input,.player-stats-filter-form select{width:100%;min-height:36px;border:1px solid var(--line);border-radius:9px;background:var(--surface-subtle);color:var(--text);padding:7px 9px;font:inherit;font-size:9px}.player-stats-filter-form .btn{min-height:36px}
.player-stat-category-tabs{display:flex;gap:6px;overflow:auto;margin:0 0 12px;padding:3px 0 5px;scrollbar-width:thin}.player-stat-category-tabs a{flex:0 0 auto;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);font-size:8px;font-weight:850;text-decoration:none}.player-stat-category-tabs a:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 28%,var(--line))}.player-stat-category-tabs a.active{background:var(--accent);border-color:var(--accent);color:#fff}
.player-stat-table-card{margin:0 0 22px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-soft);overflow:hidden}.player-stat-table-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 16px;border-bottom:1px solid var(--line)}.player-stat-table-head>div:first-child{display:flex;align-items:center;gap:10px}.player-stat-table-head h2{margin:0 0 2px;font-size:17px}.player-stat-table-head p{margin:0;color:var(--muted);font-size:8px}.stats-mode-note{padding:6px 9px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:7px;font-weight:900;letter-spacing:.07em}.player-stat-table-wrap{overflow:auto}.player-stat-table{width:100%;min-width:1040px;border-collapse:collapse;font-size:8px}.player-stat-table th{padding:9px 10px;background:var(--table-head);color:var(--muted);text-align:right;font-size:7px;text-transform:uppercase;letter-spacing:.05em}.player-stat-table th:nth-child(1),.player-stat-table th:nth-child(2),.player-stat-table th:nth-child(3),.player-stat-table th:nth-child(4){text-align:left}.player-stat-table td{padding:8px 10px;border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);text-align:right;vertical-align:middle}.player-stat-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 3%,transparent)}.stat-sort-link{display:inline-flex;align-items:center;gap:3px;color:inherit;text-decoration:none}.stat-sort-link:hover,.stat-sort-link.active{color:var(--accent)}.stat-rank{width:36px;text-align:left!important;color:var(--muted);font-weight:800}.stats-player-cell{display:flex;align-items:center;gap:8px;min-width:190px;color:inherit;text-decoration:none;text-align:left}.stats-player-cell:hover strong{color:var(--accent)}.stats-player-avatar{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;overflow:hidden;background:var(--surface-subtle);font-size:8px;font-weight:900;flex:0 0 auto}.stats-player-avatar img{width:100%;height:100%;object-fit:cover}.stats-player-cell>span{display:grid;gap:2px;min-width:0}.stats-player-cell strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-player-cell small{font-size:7px;color:var(--muted);white-space:nowrap}.stats-team-cell{display:inline-flex;align-items:center;gap:6px;min-width:74px;color:inherit;text-decoration:none}.stats-team-cell:hover{color:var(--accent)}.stats-team-cell img{width:22px;height:22px;object-fit:contain}.stats-team-cell span{font-size:8px;font-weight:800}.stat-minutes{color:var(--muted)}.stat-value{font-variant-numeric:tabular-nums}.stat-value.sorted{font-weight:900;color:var(--accent);background:color-mix(in srgb,var(--accent) 4%,transparent)}.player-stats-empty{margin:14px}
.player-data-sources{margin:0 0 28px;padding:17px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-soft)}.player-data-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.player-data-source-grid article{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-subtle)}.player-data-source-grid span{font-size:9px;font-weight:900;color:var(--accent)}.player-data-source-grid p{margin:0;color:var(--muted);font-size:8px;line-height:1.55}.stats-new-data-note{margin-top:10px;padding:10px 12px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 5%,transparent);font-size:8px;line-height:1.55;color:var(--muted)}.stats-new-data-note strong{color:var(--text)}
@media(max-width:1100px){.player-stats-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}.player-stats-filter-form .stats-search{grid-column:span 2}.player-data-source-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.player-stats-head{display:grid}.player-stats-head-meta{justify-items:start}.player-stats-intro{display:grid}.player-stats-filter-form{grid-template-columns:1fr 1fr}.player-stats-filter-form .stats-search{grid-column:1/-1}.player-stat-table-head{align-items:flex-start}.player-data-source-grid{grid-template-columns:1fr}.season-section-head-v3{display:grid}.season-all-stats-link{justify-self:start}}
@media(max-width:520px){.player-stats-filter-form{grid-template-columns:1fr}.player-stats-filter-form .stats-search{grid-column:auto}.player-stat-table-card{border-radius:13px}.player-stat-table-head{padding:12px}.player-stat-table{min-width:940px}}


/* v1.4.36 - admin historical fantasy scoring */
.fantasy-history-panel{overflow:hidden}
.fantasy-history-head{align-items:flex-start;gap:18px}
.fantasy-history-form{display:grid;grid-template-columns:minmax(260px,1.7fr) minmax(190px,.8fr) auto;gap:14px;align-items:end;margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft,#f7faf8)}
.fantasy-history-form label{display:grid;gap:7px;font-size:.78rem;font-weight:800;color:var(--muted);letter-spacing:.02em}
.fantasy-history-form select{width:100%;min-height:43px}
.fantasy-history-form .btn{min-height:43px;white-space:nowrap}
.fantasy-history-explainer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.fantasy-history-explainer>div{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.fantasy-history-explainer strong{font-size:.83rem}
.fantasy-history-explainer span{font-size:.76rem;line-height:1.45;color:var(--muted)}
.fantasy-history-list{display:grid;gap:8px}
.fantasy-history-row{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(120px,.6fr));gap:12px;align-items:center;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.fantasy-history-row>div{display:grid;gap:2px}
.fantasy-history-row>div:not(:first-child){text-align:right}
.fantasy-history-row span,.fantasy-history-row small{font-size:.72rem;color:var(--muted)}
.fantasy-history-row strong{font-size:.9rem}
@media(max-width:900px){.fantasy-history-form{grid-template-columns:1fr 1fr}.fantasy-history-form .btn{grid-column:1/-1}.fantasy-history-explainer{grid-template-columns:1fr 1fr}.fantasy-history-row{grid-template-columns:1.5fr 1fr 1fr}.fantasy-history-row>div:last-child{grid-column:3}.fantasy-history-row>div:not(:first-child){text-align:left}}
@media(max-width:620px){.fantasy-history-form,.fantasy-history-explainer,.fantasy-history-row{grid-template-columns:1fr}.fantasy-history-form .btn,.fantasy-history-row>div:last-child{grid-column:auto}.fantasy-history-row>div:not(:first-child){text-align:left}}

/* v1.4.37 - canonical player directory + supporter club preference */
.account-avatar{position:relative;overflow:visible}.account-support-crest{position:absolute;right:-5px;bottom:-4px;width:17px;height:17px;padding:2px;border:2px solid var(--panel);border-radius:50%;background:var(--panel);object-fit:contain;box-shadow:0 2px 5px rgba(0,0,0,.12)}
.supporter-settings-section{min-width:0}.support-club-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.support-club-option{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;min-height:62px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:pointer;transition:border-color .15s ease,transform .15s ease,background .15s ease}.support-club-option:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}.support-club-option:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--panel));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 9%,transparent)}.support-club-option input{position:absolute;opacity:0;pointer-events:none}.support-club-option>span:last-child{display:grid;gap:2px;min-width:0}.support-club-option strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.support-club-option small{font-size:8px;color:var(--muted);letter-spacing:.04em}.support-club-crest{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:var(--surface-subtle);overflow:hidden}.support-club-crest img{width:30px;height:30px;object-fit:contain}.support-club-crest.empty{font-size:9px;font-weight:900;color:var(--accent)}.settings-support-card{gap:8px!important}.settings-support-club{display:flex;align-items:center;gap:9px}.settings-support-club img{width:34px;height:34px;object-fit:contain}.settings-support-club strong{font-size:14px!important;line-height:1.2}
.player-directory-head{margin-bottom:16px;overflow:hidden}.player-directory-title{align-items:flex-start}.player-directory-title .eyebrow{display:block;margin-bottom:4px}.player-team-tabs{display:flex;gap:7px;margin-top:14px;padding:2px 0 7px;overflow-x:auto;scrollbar-width:thin}.player-team-tab{flex:0 0 auto;display:grid;grid-template-columns:34px auto;align-items:center;gap:8px;min-width:150px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:var(--surface-subtle);color:var(--text);text-decoration:none}.player-team-tab:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.player-team-tab.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 8%,transparent)}.player-team-tab>span:last-child{display:grid;gap:1px;min-width:0}.player-team-tab strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-team-tab small{font-size:7px;color:var(--muted)}.player-team-tab-crest{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--panel)}.player-team-tab-crest img{width:27px;height:27px;object-fit:contain}.player-team-tab-crest b,.player-team-tab-crest.generic{font-size:7px;color:var(--muted);font-weight:900}
.player-directory-section{margin:0 0 18px}.player-directory-club-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:11px;padding:15px 17px;border:1px solid var(--line);border-radius:15px;background:var(--panel);box-shadow:var(--shadow-soft)}.player-directory-club-copy{display:flex;align-items:center;gap:12px;min-width:0}.player-directory-club-copy h2{margin:2px 0 3px;font-size:18px}.player-directory-club-copy p{margin:0;color:var(--muted);font-size:9px}.player-directory-club-crest{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:var(--surface-subtle)}.player-directory-club-crest img{width:40px;height:40px;object-fit:contain}.player-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.player-directory-card{display:block;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow-soft);overflow:hidden}.player-directory-card-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 13px 9px}.player-directory-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;overflow:hidden;background:var(--surface-subtle);font-size:11px;font-weight:900}.player-directory-avatar img{width:100%;height:100%;object-fit:cover}.player-directory-identity{display:grid;gap:3px;min-width:0}.player-directory-identity strong{font-size:11px}.player-directory-identity strong a{color:inherit}.player-directory-identity strong a:hover{color:var(--accent)}.player-directory-identity>span{font-size:8px;color:var(--muted)}.player-record-state{padding:4px 7px;border-radius:999px;font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.player-record-state.active{background:color-mix(in srgb,var(--ok) 12%,var(--panel));color:var(--ok)}.player-record-state.inactive{background:color-mix(in srgb,var(--muted) 12%,var(--panel));color:var(--muted)}.player-directory-quickstats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-subtle)}.player-directory-quickstats>div{display:grid;gap:2px;padding:8px 12px}.player-directory-quickstats>div+div{border-left:1px solid var(--line)}.player-directory-quickstats span,.player-directory-quickstats small{font-size:7px;color:var(--muted)}.player-directory-quickstats strong{font-size:11px}.player-admin-editor>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px;cursor:pointer}.player-admin-editor>summary::-webkit-details-marker{display:none}.player-admin-editor>summary>span{display:grid;gap:1px}.player-admin-editor>summary strong{font-size:9px}.player-admin-editor>summary small{font-size:7px;color:var(--muted)}.player-admin-editor>summary>b{font-size:15px;color:var(--muted);transition:transform .15s ease}.player-admin-editor[open]>summary>b{transform:rotate(45deg);color:var(--accent)}.player-admin-editor-body{display:grid;gap:10px;padding:0 13px 13px;border-top:1px solid var(--line)}.player-admin-editor-body fieldset{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:11px 0 0;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-subtle)}.player-admin-editor-body legend{padding:0 5px;font-size:8px;font-weight:900;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.player-admin-editor-body label{display:grid;gap:4px;font-size:8px;font-weight:750;color:var(--muted)}.player-admin-editor-body input,.player-admin-editor-body select{width:100%;min-height:36px;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;font-size:9px}.player-admin-editor-body label small{font-size:7px;font-weight:500;line-height:1.35}.player-admin-editor-body .check-label{display:flex;align-items:center;gap:7px;min-height:34px;color:var(--text);font-weight:600}.player-admin-editor-body .check-label input{width:15px;min-height:15px}.player-admin-editor-body .wide{grid-column:1/-1}.player-admin-actions{display:flex;justify-content:flex-end;gap:8px}.player-maintenance-panel{margin:18px 0 24px;overflow:hidden}.player-maintenance-panel>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer}.player-maintenance-panel>summary::-webkit-details-marker{display:none}.player-maintenance-panel>summary>span:first-child{display:grid;gap:2px}.player-maintenance-panel>summary strong{font-size:11px}.player-maintenance-panel>summary small{font-size:8px;color:var(--muted)}.player-maintenance-body{display:grid;gap:13px;padding:0 16px 16px;border-top:1px solid var(--line)}.player-maintenance-body>p{margin:13px 0 0;color:var(--muted);font-size:9px}.player-maintenance-body code{color:var(--accent)}.player-maintenance-panel.syncing .player-photo-progress>span{min-width:3%}
html[data-theme="dark"] .player-directory-card,html[data-theme="dark"] .player-directory-club-head,html[data-theme="dark"] .player-team-tab{box-shadow:none}
@media(max-width:1050px){.support-club-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.player-directory-grid{grid-template-columns:1fr}}
@media(max-width:760px){.support-club-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.player-directory-club-head{align-items:flex-start}.player-directory-card-head{grid-template-columns:46px minmax(0,1fr)}.player-record-state{grid-column:2;justify-self:start}.player-admin-editor-body fieldset{grid-template-columns:1fr}.player-admin-editor-body .wide{grid-column:auto}}
@media(max-width:520px){.support-club-grid{grid-template-columns:1fr}.player-directory-club-head{display:grid}.player-team-tab{min-width:138px}.player-directory-quickstats>div{padding:8px}.player-admin-actions{display:grid;grid-template-columns:1fr 1fr}.player-maintenance-panel>summary{align-items:flex-start}.account-support-crest{width:15px;height:15px}}

/* v1.4.38 - structured player identity */
.player-directory-full-name{font-size:7px;color:var(--muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-identity-fieldset{align-items:start}
.player-provider-identity{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:9px;border:1px dashed var(--line);border-radius:9px;background:var(--panel)}
.player-provider-identity>div{display:grid;gap:2px;min-width:0}
.player-provider-identity span{font-size:7px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:800}
.player-provider-identity strong{font-size:9px;line-height:1.35;overflow-wrap:anywhere}
@media(max-width:760px){.player-provider-identity{grid-template-columns:1fr}}

/* Touchline 1.4.39 - private leagues, public leaderboard and community privacy */
.btn.danger{background:color-mix(in srgb,var(--danger) 14%,var(--panel));border-color:color-mix(in srgb,var(--danger) 42%,var(--line));color:var(--danger)}
.community-page-head{align-items:center}.community-page-head h1{margin-bottom:10px}.community-page-head p{max-width:820px}
.public-board-note{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-4px 0 18px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--surface-subtle)}.public-board-note>div{display:grid;gap:3px}.public-board-note strong{font-size:10px}.public-board-note span,.public-board-note a{font-size:8px;color:var(--muted)}.public-board-note a{color:var(--accent);font-weight:850}.privacy-state.enabled{display:inline-flex;padding:5px 8px;border:1px solid color-mix(in srgb,var(--ok) 42%,var(--line));border-radius:999px;color:var(--ok)}
.community-empty{display:flex;align-items:center;gap:16px;min-height:120px}.community-empty-mark{width:52px;height:52px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:var(--surface-subtle);color:var(--accent);font-size:20px;font-weight:950}.community-empty h1,.community-empty h2{margin:0 0 5px;font-size:20px}.community-empty p{margin:0 0 12px;color:var(--muted);font-size:9px}
.public-leaderboard-card{border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-soft);overflow:hidden}.community-table-head,.community-leader-row{display:grid;grid-template-columns:70px minmax(260px,1fr) 130px 150px;align-items:center}.community-table-head{min-height:42px;padding:0 16px;background:var(--surface-subtle);border-bottom:1px solid var(--line);color:var(--muted);font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.community-leader-row{min-height:70px;padding:10px 16px;border-bottom:1px solid var(--line)}.community-leader-row:last-child{border-bottom:0}.community-leader-row:hover{background:color-mix(in srgb,var(--accent) 2.5%,var(--panel))}.community-rank{font-size:11px;color:var(--muted)}.community-manager{display:flex;align-items:center;gap:10px;min-width:0}.community-avatar{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:color-mix(in srgb,var(--accent) 10%,var(--surface-subtle));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));font-size:9px;font-weight:950}.community-avatar.small{width:30px;height:30px;font-size:7px}.community-manager-copy{display:grid;gap:3px;min-width:0}.community-manager-copy>b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.community-manager-copy>small{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:7px}.community-manager-copy img{width:14px;height:14px;object-fit:contain}.community-gw{display:grid;gap:2px}.community-gw b{font-size:10px}.community-gw small{font-size:7px;color:var(--muted)}.community-points{font-size:15px;text-align:right}.community-points small{font-size:7px;color:var(--muted);font-weight:700}
.privacy-settings-section{display:grid;gap:9px}.privacy-option{display:grid!important;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px!important;margin:0!important;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-subtle);cursor:pointer}.privacy-option input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--accent)}.privacy-option>span{display:grid;gap:3px}.privacy-option strong{font-size:10px;color:var(--text)}.privacy-option small{font-size:8px;line-height:1.45;color:var(--muted)}.privacy-option.compact{padding:9px 10px}.privacy-option.compact strong{font-size:9px}.privacy-option.compact small{font-size:7px}
.league-actions-v2{gap:12px}.league-actions-v2 .panel{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:end;gap:10px;padding:15px}.league-actions-v2 .panel>div{align-self:center}.league-actions-v2 h3{grid-column:auto;margin:0 0 2px;font-size:12px}.league-actions-v2 p{margin:0;color:var(--muted);font-size:8px}.league-actions-v2 label{min-width:210px}.league-action-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--accent) 9%,var(--surface-subtle));color:var(--accent);font-size:16px;font-weight:950}
.private-league-stack{display:grid;gap:18px}.private-league-card{border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-soft);overflow:hidden}.private-league-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 18px;border-bottom:1px solid var(--line)}.private-league-head h2{margin:3px 0 4px;font-size:18px}.private-league-head p{margin:0;color:var(--muted);font-size:8px}.league-head-actions{display:flex;align-items:center;gap:8px}.league-owner-badge{padding:5px 8px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 6%,var(--surface-subtle));color:var(--accent);font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.league-standings-head,.league-standing-row{display:grid;grid-template-columns:54px minmax(230px,1fr) 110px 115px 110px;align-items:center}.league-standings-head{min-height:36px;padding:0 16px;background:var(--surface-subtle);border-bottom:1px solid var(--line);color:var(--muted);font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.league-standing-row{min-height:64px;padding:9px 16px;border-bottom:1px solid var(--line)}.league-standing-row:last-child{border-bottom:0}.league-standing-row.is-you{background:color-mix(in srgb,var(--accent) 4%,var(--panel))}.league-standing-row .community-points{text-align:left}.league-row-actions{display:flex;justify-content:flex-end}.profile-private{font-size:7px;color:var(--muted)}
.league-management{border-top:1px solid var(--line);background:var(--surface-subtle)}.league-management>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;cursor:pointer}.league-management>summary::-webkit-details-marker{display:none}.league-management>summary>span{display:grid;gap:2px}.league-management>summary strong{font-size:9px}.league-management>summary small{font-size:7px;color:var(--muted)}.league-management>summary>b{font-size:15px;color:var(--muted);transition:transform .15s ease}.league-management[open]>summary>b{transform:rotate(45deg);color:var(--accent)}.league-management-body{display:grid;gap:12px;padding:0 18px 18px}.league-manage-section{padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}.league-manage-head h3{margin:0 0 3px;font-size:11px}.league-manage-head p{margin:0 0 12px;color:var(--muted);font-size:8px;line-height:1.5}.league-settings-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr) minmax(260px,1fr) auto;align-items:end;gap:9px}.league-settings-form>label:not(.privacy-option),.invite-create-form label{display:grid;gap:5px;color:var(--muted);font-size:8px}.league-settings-form input,.invite-create-form input,.invite-create-form select{width:100%;min-height:38px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle);color:var(--text);font:inherit;font-size:9px}
.primary-invite-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--accent) 4%,var(--surface-subtle))}.primary-invite-card>div{display:grid;gap:2px}.primary-invite-card span,.primary-invite-card small{font-size:7px;color:var(--muted)}.primary-invite-card strong{font:900 14px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--accent)}.invite-create-form{display:grid;grid-template-columns:minmax(160px,.9fr) minmax(220px,1.2fr) 150px auto;align-items:end;gap:9px;margin-bottom:11px}.invite-list{display:grid;border-top:1px solid var(--line)}.invite-row{display:grid;grid-template-columns:minmax(200px,1.2fr) 90px minmax(180px,1fr) 80px;gap:10px;align-items:center;min-height:50px;border-bottom:1px solid var(--line)}.invite-row>div{display:grid;gap:2px}.invite-row code{width:max-content;font-size:9px;font-weight:900}.invite-row span,.invite-row small{font-size:7px;color:var(--muted)}.invite-row strong{font-size:8px}.invite-row.revoked{opacity:.58}.league-member-admin-list{display:grid;border-top:1px solid var(--line)}.league-member-admin-list>div{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--line)}.league-member-admin-list strong{font-size:9px}.league-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px;border:1px solid color-mix(in srgb,var(--danger) 30%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--danger) 4%,var(--panel))}.league-danger-zone h3{margin:0 0 3px;font-size:10px;color:var(--danger)}.league-danger-zone p{margin:0;color:var(--muted);font-size:8px}
.league-profile-hero{padding:38px 0 20px}.league-profile-hero .back-link{display:inline-block;margin-bottom:15px;font-size:8px;color:var(--muted)}.league-profile-identity{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:17px}.league-profile-avatar{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--accent) 11%,var(--surface-subtle));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));font-size:20px;font-weight:950}.league-profile-identity h1{margin:4px 0 4px;font-size:34px;letter-spacing:-.035em}.league-profile-identity p{margin:0;color:var(--muted);font-size:8px}.league-profile-support{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.league-profile-support img{width:34px;height:34px;object-fit:contain}.league-profile-support span{display:grid;gap:2px}.league-profile-support small{font-size:7px;color:var(--muted)}.league-profile-support strong{font-size:9px}.league-profile-summary{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}.league-profile-summary>div{display:grid;gap:3px;padding:14px}.league-profile-summary>div+div{border-left:1px solid var(--line)}.league-profile-summary span,.league-profile-summary small{font-size:7px;color:var(--muted)}.league-profile-summary strong{font-size:17px}.league-profile-privacy-note{margin-bottom:19px;padding:12px 14px}.league-profile-privacy-note strong{font-size:9px}.league-profile-privacy-note p{margin:3px 0 0;color:var(--muted);font-size:8px}.league-weekly-history{margin-top:18px}.league-week-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.league-week-grid article{display:grid;gap:3px;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.league-week-grid span,.league-week-grid small{font-size:7px;color:var(--muted)}.league-week-grid strong{font-size:11px}
html[data-theme="dark"] .public-leaderboard-card,html[data-theme="dark"] .private-league-card{box-shadow:none}
@media(max-width:1080px){.league-actions-v2 .panel{grid-template-columns:40px 1fr}.league-actions-v2 .panel label,.league-actions-v2 .panel button{grid-column:2}.league-settings-form{grid-template-columns:1fr 1fr}.league-settings-form>div{grid-column:1/-1}.invite-create-form{grid-template-columns:1fr 1fr}.invite-create-form button{grid-column:2}.league-week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:820px){.community-table-head{display:none}.community-leader-row{grid-template-columns:46px minmax(0,1fr) 95px 95px}.league-standings-head{display:none}.league-standing-row{grid-template-columns:46px minmax(0,1fr) 90px 85px}.league-row-actions{grid-column:2/-1;justify-content:flex-start;margin-top:3px}.league-settings-form,.invite-create-form{grid-template-columns:1fr}.league-settings-form>div,.invite-create-form button{grid-column:auto}.invite-row{grid-template-columns:1fr 70px}.invite-row>div:nth-child(3),.invite-row>div:nth-child(4){grid-column:auto}.league-profile-identity{grid-template-columns:64px 1fr}.league-profile-avatar{width:60px;height:60px}.league-profile-support{grid-column:2}.league-profile-summary{grid-template-columns:1fr 1fr}.league-profile-summary>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.league-profile-summary>div:nth-child(4){border-top:1px solid var(--line)}.league-week-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.public-board-note,.private-league-head,.league-danger-zone{align-items:flex-start;display:grid}.community-leader-row{grid-template-columns:40px 1fr 70px}.community-leader-row .community-points{grid-column:2/-1;text-align:left;margin-left:48px}.league-actions-v2{grid-template-columns:1fr}.league-actions-v2 .panel{grid-template-columns:36px 1fr}.league-actions-v2 .panel label,.league-actions-v2 .panel button{grid-column:1/-1}.league-standing-row{grid-template-columns:40px 1fr 70px}.league-standing-row .community-points{grid-column:2;text-align:left}.league-row-actions{grid-column:3;grid-row:2}.invite-row{grid-template-columns:1fr}.league-member-admin-list>div{grid-template-columns:30px 1fr}.league-member-admin-list form{grid-column:2}.league-profile-identity{grid-template-columns:54px 1fr}.league-profile-avatar{width:52px;height:52px;font-size:15px}.league-profile-identity h1{font-size:26px}.league-profile-support{grid-column:1/-1}.league-profile-summary{grid-template-columns:1fr}.league-profile-summary>div+div{border-left:0;border-top:1px solid var(--line)}.league-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Touchline 1.4.40 - registered user directory */
.registered-users-head{margin-bottom:14px}.registered-users-title{align-items:flex-start}.registered-users-title h2{margin:2px 0 5px}.registered-users-title p{margin:0;max-width:720px;color:var(--muted);font-size:9px;line-height:1.5}.registered-user-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle)}.registered-user-summary>div{display:grid;gap:3px;padding:12px 14px}.registered-user-summary>div+div{border-left:1px solid var(--line)}.registered-user-summary span{font-size:7px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.registered-user-summary strong{font-size:18px}.registered-users-panel{padding:0;overflow:hidden}.registered-users-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:16px 17px;border-bottom:1px solid var(--line)}.registered-users-toolbar h2{margin:0 0 3px;font-size:16px}.registered-users-toolbar p{margin:0;color:var(--muted);font-size:8px}.registered-user-search{display:grid;gap:4px;min-width:250px}.registered-user-search span{font-size:7px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.registered-user-search input{width:100%;min-height:35px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle);color:var(--text);font:inherit;font-size:9px}.registered-user-list{display:grid}.registered-user-row{display:grid;grid-template-columns:minmax(210px,1.35fr) minmax(120px,.72fr) minmax(180px,1fr) 100px minmax(190px,.9fr);gap:14px;align-items:center;padding:11px 17px;border-bottom:1px solid var(--line);min-width:900px}.registered-user-row:last-of-type{border-bottom:0}.registered-user-row-head{min-height:34px;padding-top:8px;padding-bottom:8px;background:var(--surface-subtle);color:var(--muted);font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.registered-user-person{display:flex;align-items:center;gap:9px;min-width:0}.registered-user-avatar{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,var(--surface-subtle));color:var(--accent);font-size:9px;font-weight:900}.registered-user-person>span:last-child,.registered-user-account,.registered-user-football,.registered-user-leagues,.registered-user-privacy{display:grid;gap:3px;min-width:0}.registered-user-person strong,.registered-user-football strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.registered-user-person small,.registered-user-account small,.registered-user-football small,.registered-user-leagues small{font-size:7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.registered-user-football strong.muted{color:var(--muted);font-weight:700}.account-role{width:max-content;padding:3px 6px;border-radius:999px;background:var(--surface-subtle);color:var(--muted);font-size:7px;font-weight:900;text-transform:uppercase}.account-role.admin{background:color-mix(in srgb,var(--accent) 13%,var(--surface-subtle));color:var(--accent)}.registered-user-club{display:flex;align-items:center;gap:5px;min-width:0}.registered-user-club img{width:15px;height:15px;object-fit:contain;flex:0 0 auto}.registered-user-leagues strong{font-size:13px}.registered-user-leagues span{font-size:7px;color:var(--accent);font-weight:800}.privacy-state{width:max-content;max-width:100%;padding:3px 6px;border-radius:999px;font-size:7px;font-weight:800;white-space:nowrap}.privacy-state.on{background:color-mix(in srgb,var(--ok) 12%,var(--surface-subtle));color:var(--ok)}.privacy-state.off{background:var(--surface-subtle);color:var(--muted)}.registered-user-empty{padding:18px;text-align:center;color:var(--muted);font-size:9px}.registered-users-panel{overflow-x:auto}
@media(max-width:760px){.registered-user-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.registered-user-summary>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.registered-user-summary>div:nth-child(4){border-top:1px solid var(--line)}.registered-users-toolbar{align-items:stretch;display:grid}.registered-user-search{min-width:0;width:100%}}
@media(max-width:480px){.registered-user-summary{grid-template-columns:1fr}.registered-user-summary>div+div{border-left:0;border-top:1px solid var(--line)}}

/* Touchline 1.4.41 - compact club support selector */
.support-club-current{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--accent) 4%,var(--panel));max-width:520px}.support-club-current-crest{width:52px;height:52px;display:grid;place-items:center;flex:0 0 auto;border-radius:13px;background:var(--surface-subtle);overflow:hidden}.support-club-current-crest img{width:44px;height:44px;object-fit:contain}.support-club-current-crest b{font-size:11px;color:var(--accent)}.support-club-current-copy{display:grid;gap:2px;min-width:0}.support-club-current-copy>small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.support-club-current-copy>strong{font-size:16px;line-height:1.15}.support-club-current-copy>span{font-size:10px;color:var(--muted)}.support-club-change{margin-top:10px}.support-club-change>summary{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:11px;font-weight:800;cursor:pointer;list-style:none;user-select:none}.support-club-change>summary::-webkit-details-marker{display:none}.support-club-change>summary:hover{border-color:color-mix(in srgb,var(--accent) 34%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--panel))}.support-club-change[open]>summary{border-color:var(--accent);color:var(--accent)}.support-club-change-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.support-club-change-panel>p{margin:0 0 10px;color:var(--muted);font-size:10px;line-height:1.5}
@media(max-width:520px){.support-club-current{max-width:none}.support-club-current-crest{width:46px;height:46px}.support-club-current-crest img{width:38px;height:38px}.support-club-change>summary{width:100%}}

/* Touchline 1.4.44 - competition sync status layout */
.competition-sync-row-v2{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:16px!important}
.competition-sync-header-v2{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;min-width:0}
.competition-sync-title-v2{display:grid;gap:3px;min-width:0}
.competition-sync-title-v2>strong{font-size:15px}
.competition-sync-title-v2>span{color:var(--muted);font-size:11px;line-height:1.45}
.competition-sync-header-v2 .admin-sync-actions{justify-content:flex-end;flex:0 0 auto}
.sync-job-card-v2{margin-top:0;width:100%;padding:14px;gap:10px;background:var(--surface-subtle)}
.sync-job-card-v2 .sync-position-diagnostics{grid-template-columns:minmax(0,1fr);gap:8px;padding-top:10px}
.sync-job-card-v2 .sync-position-grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}
.sync-job-card-v2 .sync-position-card{padding:9px 10px;background:var(--panel)}
.sync-health-grid-v2{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:2px;padding-top:10px;border-top:1px solid var(--line)}
.sync-health-grid-v2>article{display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.sync-health-grid-v2 b{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sync-health-grid-v2 strong{font-size:17px;line-height:1;color:var(--text)}
.sync-health-grid-v2 span{grid-column:1/-1;color:var(--muted);font-size:9px;line-height:1.4;overflow-wrap:anywhere}
@media(max-width:980px){.competition-sync-header-v2{display:grid}.competition-sync-header-v2 .admin-sync-actions{justify-content:flex-start}.sync-job-card-v2 .sync-position-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.competition-sync-header-v2 .admin-sync-actions{display:grid;grid-template-columns:1fr;width:100%}.competition-sync-header-v2 .admin-sync-actions form,.competition-sync-header-v2 .admin-sync-actions .btn{width:100%}.sync-job-card-v2 .sync-position-grid{grid-template-columns:1fr}.sync-health-grid-v2{grid-template-columns:1fr}}

/* Touchline 1.4.46 - pre-match checkpoints + operator documentation */
.live-sync-admin-row-v2{grid-template-columns:minmax(220px,1.2fr) auto minmax(180px,.8fr);gap:10px 14px}.live-sync-fixture{display:grid;gap:3px;min-width:0}.prematch-checkpoints{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding-top:2px}.prematch-checkpoints>span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface-subtle);color:var(--muted);font-size:8px;font-weight:800}.prematch-checkpoints>span.done{background:color-mix(in srgb,var(--ok) 10%,var(--surface-subtle));border-color:color-mix(in srgb,var(--ok) 30%,var(--line));color:var(--ok)}.prematch-checkpoints b{font-size:9px}.live-sync-admin-row-v2 .live-event-health{grid-column:1/-1}
.admin-help-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}.admin-help-hero h2{margin:3px 0 5px}.admin-help-hero p{max-width:850px;margin:0;color:var(--muted);font-size:10px;line-height:1.55}.admin-help-hero code,.admin-help-card code,.admin-help-reference code,.admin-help-troubleshoot code{padding:2px 5px;border-radius:5px;background:var(--surface-subtle);font-size:.92em}.admin-help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.admin-help-card{margin:0}.admin-help-card h3{margin:0 0 7px;font-size:15px}.admin-help-card p{margin:0;color:var(--muted);font-size:9px;line-height:1.6}.admin-help-card dl{display:grid;grid-template-columns:90px 1fr;gap:7px 10px;margin:0;font-size:9px}.admin-help-card dt{font-weight:900;color:var(--text)}.admin-help-card dd{margin:0;color:var(--muted);line-height:1.5}.help-timeline{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}.help-timeline span{display:grid;gap:1px;min-width:70px;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:var(--surface-subtle);font-size:7px;color:var(--muted)}.help-timeline span b{font-size:10px;color:var(--accent)}.help-timeline i{font-style:normal;color:var(--muted)}.admin-help-reference,.admin-help-troubleshoot{margin-bottom:14px}.help-reference-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.help-reference-list>div{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-subtle)}.help-reference-list strong{font-size:9px}.help-reference-list span{font-size:8px;color:var(--muted);line-height:1.5}.admin-help-troubleshoot details{border-top:1px solid var(--line);padding:10px 0}.admin-help-troubleshoot details:first-of-type{border-top:0}.admin-help-troubleshoot summary{cursor:pointer;font-size:9px;font-weight:850}.admin-help-troubleshoot p{margin:7px 0 0;color:var(--muted);font-size:9px;line-height:1.55}
@media(max-width:860px){.live-sync-admin-row-v2{grid-template-columns:1fr auto}.live-sync-admin-row-v2 .live-sync-timing{grid-column:1/-1}.admin-help-grid,.help-reference-list{grid-template-columns:1fr}}
@media(max-width:560px){.admin-help-hero{display:grid}.live-sync-admin-row-v2{grid-template-columns:1fr}.live-sync-admin-row-v2>div:nth-child(2){justify-self:start}.help-timeline i{display:none}.help-timeline span{flex:1 1 80px}.admin-help-card dl{grid-template-columns:1fr}}

/* Touchline 1.4.47 - personalised dashboard + in-app notifications */
.notification-bell{position:relative;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--muted);background:transparent;transition:background .15s ease,color .15s ease}.notification-bell:hover,.notification-bell.active{background:var(--surface-subtle);color:var(--text)}.notification-bell svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.notification-bell>span{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;padding:0 4px;border:2px solid var(--panel);border-radius:99px;display:grid;place-items:center;background:var(--danger);color:#fff;font-size:8px;font-weight:900;line-height:1}
.notification-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:42px 0 20px}.notification-page-head h1{font-size:clamp(34px,4.1vw,50px);line-height:1.02;margin:5px 0 8px}.notification-page-head p{margin:0;color:var(--muted);font-size:14px}.notification-page-actions{display:flex;align-items:center;gap:12px;padding-bottom:4px}.notification-page-actions>span{display:grid;text-align:right;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.notification-page-actions strong{font-size:20px;line-height:1;color:var(--text);letter-spacing:0}.notification-page-actions form{margin:0}
.notification-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:30px;align-items:start;margin-bottom:38px}.notification-feed{min-width:0;border-top:1px solid var(--line)}.notification-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:15px;padding:17px 6px;border-bottom:1px solid var(--line);transition:background .15s ease,padding .15s ease}.notification-row.unread{background:color-mix(in srgb,var(--accent) 4%,transparent);box-shadow:inset 3px 0 0 var(--accent);padding-left:12px;padding-right:10px}.notification-row.read{opacity:.86}.notification-type-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--surface-subtle);color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.04em}.notification-row.unread .notification-type-mark{background:var(--accent-soft);color:var(--accent)}.notification-row.type-goal .notification-type-mark{background:color-mix(in srgb,var(--ok) 14%,var(--panel));color:var(--ok)}.notification-row.type-full_time .notification-type-mark{background:color-mix(in srgb,var(--text) 8%,var(--panel));color:var(--text)}.notification-row.type-fantasy .notification-type-mark{background:color-mix(in srgb,var(--blue) 13%,var(--panel));color:var(--blue)}.notification-row-copy{min-width:0}.notification-row-copy>div{display:flex;align-items:center;gap:8px}.notification-row-copy strong{font-size:13px}.notification-row-copy i{padding:2px 5px;border-radius:5px;background:var(--accent);color:#fff;font-size:8px;font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.notification-row-copy p{margin:4px 0 5px;color:var(--muted);font-size:12px;line-height:1.45}.notification-row-copy small{color:var(--muted);font-size:9px}.notification-row form{margin:0}.notification-empty{text-align:center;padding:46px 26px}.notification-empty-mark{width:46px;height:46px;margin:0 auto 13px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:20px;font-weight:800}.notification-empty h2{margin-bottom:7px}.notification-empty p{max-width:480px;margin:0 auto;color:var(--muted);font-size:13px}
.notification-side{display:grid;gap:12px}.notification-side>section{padding:17px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow-soft)}.notification-side>section>span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em}.notification-side>section>strong{display:block;margin:5px 0 4px;font-size:19px}.notification-side small{display:block;color:var(--muted);font-size:10px;line-height:1.5}.notification-side a{display:inline-block;margin-top:11px;color:var(--accent);font-size:11px;font-weight:750}.notification-support-club{display:flex;align-items:center;gap:9px;margin:9px 0}.notification-support-club img{width:32px;height:32px;object-fit:contain}.notification-support-club strong{font-size:12px}
.notification-preferences-section .settings-section-head>a{align-self:flex-start;color:var(--accent);font-size:11px;font-weight:750;white-space:nowrap}.notification-master{margin-bottom:12px!important;background:color-mix(in srgb,var(--accent) 5%,var(--panel));border-color:color-mix(in srgb,var(--accent) 22%,var(--line))!important}.notification-preference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.notification-preference-grid .privacy-option{margin:0;min-height:86px;align-items:flex-start}
.dashboard-head.personalised{align-items:center}.dashboard-welcome{display:flex;align-items:center;gap:17px;min-width:0}.dashboard-welcome>div{min-width:0}.dashboard-support-crest{width:62px;height:62px;object-fit:contain;flex:0 0 auto;padding:6px;border-radius:16px;background:var(--panel);box-shadow:var(--shadow-soft)}
.dashboard-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:22px}.dashboard-stat-grid>div{min-width:0;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow-soft)}.dashboard-stat-grid span,.dashboard-stat-grid small{display:block;color:var(--muted);font-size:9px}.dashboard-stat-grid span{text-transform:uppercase;letter-spacing:.055em}.dashboard-stat-grid strong{display:block;margin:4px 0 3px;font-size:22px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-stat-grid small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-personal-grid{display:grid;grid-template-columns:1.08fr .92fr 1fr;gap:16px;margin-bottom:30px}.dashboard-personal-card{min-width:0;min-height:290px;padding:19px;border:1px solid var(--line);border-radius:17px;background:var(--panel);box-shadow:var(--shadow-soft);display:flex;flex-direction:column}.dashboard-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:15px}.dashboard-card-head h2{margin:2px 0 0;font-size:20px}.dashboard-card-head>img{width:48px;height:48px;object-fit:contain}.dashboard-card-number,.dashboard-unread-count{display:grid;place-items:center;min-width:34px;height:30px;padding:0 8px;border-radius:9px;background:var(--surface-subtle);font-size:11px;font-weight:800;color:var(--muted)}.dashboard-unread-count{background:var(--accent-soft);color:var(--accent)}.dashboard-card-placeholder{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:900}.dashboard-card-empty-copy{color:var(--muted);font-size:12px;line-height:1.55}.dashboard-card-link{display:block;margin-top:auto;padding-top:13px;border-top:1px solid var(--line);color:var(--accent);font-size:11px;font-weight:750}
.supporter-dashboard-summary{display:grid;grid-template-columns:1fr 1.35fr;gap:8px;margin-bottom:9px}.supporter-dashboard-summary>div{padding:10px 11px;border-radius:10px;background:var(--surface-subtle)}.supporter-dashboard-summary span,.supporter-dashboard-summary small{display:block;color:var(--muted);font-size:8px}.supporter-dashboard-summary strong{display:block;margin:3px 0;font-size:17px}.supporter-form{display:flex!important;gap:4px;align-items:center;min-height:20px}.supporter-form i{width:20px;height:20px;display:grid;place-items:center;border-radius:6px;font-size:8px;font-style:normal;font-weight:900}.supporter-form i.w{background:color-mix(in srgb,var(--ok) 16%,var(--panel));color:var(--ok)}.supporter-form i.d{background:color-mix(in srgb,var(--gold) 17%,var(--panel));color:var(--gold)}.supporter-form i.l{background:color-mix(in srgb,var(--danger) 13%,var(--panel));color:var(--danger)}
.supporter-next-match{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 7px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;color:inherit}.supporter-next-match:hover{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:color-mix(in srgb,var(--accent) 3%,transparent)}.supporter-next-match>span{display:grid;min-width:0}.supporter-next-match small{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.04em}.supporter-next-match strong{margin:2px 0;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.supporter-next-match em{color:var(--muted);font-size:9px;font-style:normal}.supporter-next-match img{width:31px;height:31px;object-fit:contain;flex:0 0 auto}.supporter-next-match.empty{color:var(--muted)}.supporter-last-result{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:7px;padding:6px 2px 11px;color:var(--muted);font-size:9px}.supporter-last-result strong{width:20px;height:20px;display:grid;place-items:center;border-radius:6px;font-size:8px}.supporter-last-result strong.w{background:color-mix(in srgb,var(--ok) 16%,var(--panel));color:var(--ok)}.supporter-last-result strong.d{background:color-mix(in srgb,var(--gold) 17%,var(--panel));color:var(--gold)}.supporter-last-result strong.l{background:color-mix(in srgb,var(--danger) 13%,var(--panel));color:var(--danger)}.supporter-last-result b{color:var(--text);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-league-list{display:grid;border-top:1px solid var(--line)}.dashboard-league-list>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 2px;border-bottom:1px solid var(--line);color:inherit}.dashboard-league-list>a:hover strong{color:var(--accent)}.dashboard-league-list span{display:grid;min-width:0}.dashboard-league-list strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-league-list small{margin-top:2px;color:var(--muted);font-size:8px}.dashboard-league-list b{font-size:17px}.dashboard-update-list{display:grid}.dashboard-update-list>a{display:grid;grid-template-columns:7px minmax(0,1fr) auto;gap:9px;align-items:start;padding:9px 0;border-bottom:1px solid var(--line);color:inherit}.dashboard-update-list>a:last-child{border-bottom:0}.dashboard-update-dot{width:6px;height:6px;margin-top:5px;border-radius:50%;background:var(--line-strong)}.dashboard-update-list>a.unread .dashboard-update-dot{background:var(--accent)}.dashboard-update-list>a>span:nth-child(2){display:grid;min-width:0}.dashboard-update-list strong{font-size:10px}.dashboard-update-list small{margin-top:2px;color:var(--muted);font-size:8px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dashboard-update-list time{color:var(--muted);font-size:8px;white-space:nowrap}
html[data-theme="dark"] .notification-bell>span{border-color:var(--panel)}
@media(max-width:1100px){.dashboard-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-personal-grid{grid-template-columns:1fr 1fr}.dashboard-personal-card.updates-card{grid-column:1/-1;min-height:0}.notification-page-layout{grid-template-columns:minmax(0,1fr) 235px}}
@media(max-width:820px){.notification-page-head{padding-top:30px}.notification-page-layout{grid-template-columns:1fr}.notification-side{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-personal-grid{grid-template-columns:1fr}.dashboard-personal-card.updates-card{grid-column:auto}.notification-preference-grid{grid-template-columns:1fr}.dashboard-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.notification-bell{width:34px;height:34px}.notification-page-head{display:grid;align-items:start;gap:14px}.notification-page-actions{justify-content:space-between}.notification-page-actions>span{text-align:left}.notification-row{grid-template-columns:40px minmax(0,1fr);gap:11px;padding:14px 2px}.notification-row.unread{padding-left:8px}.notification-row form{grid-column:2}.notification-row form .btn{width:100%}.notification-type-mark{width:34px;height:34px}.notification-side{grid-template-columns:1fr}.dashboard-welcome{align-items:flex-start}.dashboard-support-crest{width:50px;height:50px}.dashboard-stat-grid{grid-template-columns:1fr 1fr}.dashboard-stat-grid>div{padding:12px}.dashboard-stat-grid strong{font-size:19px}.supporter-dashboard-summary{grid-template-columns:1fr}.dashboard-update-list>a{grid-template-columns:7px minmax(0,1fr)}.dashboard-update-list time{grid-column:2}.account-bar{gap:8px}}
@media(max-width:420px){.dashboard-stat-grid{grid-template-columns:1fr}.dashboard-welcome{gap:11px}.dashboard-support-crest{width:44px;height:44px}.notification-bell>span{right:-2px;top:-3px}}
.notification-bell>[hidden]{display:none!important}

/* Touchline 1.4.48 - Fantasy XI portrait pitch */
.lineup-name{grid-template-columns:24px 38px minmax(0,1fr) auto;gap:10px}
.lineup-name>.lineup-order{font-size:9px;color:var(--muted);align-self:center}
.lineup-player-avatar,.pitch-player-avatar,.bench-player-avatar{position:relative;display:grid;place-items:center;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--line-strong) 75%,transparent);background:var(--surface-subtle);color:var(--accent);font-weight:900;overflow:visible}
.lineup-player-avatar{width:34px;height:34px;border-radius:50%}
.bench-player-avatar{width:32px;height:32px;border-radius:50%}
.pitch-player-avatar{width:52px;height:52px;border-radius:50%;border:3px solid rgba(255,255,255,.9);box-shadow:0 4px 11px rgba(0,0,0,.24)}
.fantasy-player-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:inherit;background:var(--surface-subtle)}
.fantasy-player-initials{font-size:10px;line-height:1;color:inherit}
.pitch-player-avatar>.fantasy-player-initials{font-size:13px;color:#183323}
.fantasy-player-club-crest{position:absolute;right:-5px;bottom:-4px;width:18px;height:18px;padding:2px;border:2px solid var(--panel);border-radius:50%;background:var(--panel);object-fit:contain;box-shadow:0 2px 5px rgba(0,0,0,.22);z-index:3}
.pitch-player-avatar>.fantasy-player-club-crest{right:-6px;bottom:-5px;width:20px;height:20px;border-color:#fff;background:#fff}
.lineup-name:hover .lineup-player-avatar{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}

/* The miniature Match Centre formation also uses `.pitch-row`. Its later
   relative-position rule was leaking back into the full Fantasy pitch. Scope
   the full-size rows explicitly so all four lines, including GK, are anchored
   to the painted pitch and centred on its vertical axis. */
.football-pitch.squad-pitch>.pitch-row{position:absolute;left:5%;right:5%;width:auto;margin:0;transform:none;display:flex;align-items:center;justify-content:space-evenly;gap:8px;z-index:3}
.football-pitch.squad-pitch>.pitch-row.pos-fwd{top:7%}
.football-pitch.squad-pitch>.pitch-row.pos-mid{top:32%}
.football-pitch.squad-pitch>.pitch-row.pos-def{top:58%}
.football-pitch.squad-pitch>.pitch-row.pos-gk{top:auto;bottom:5%}
.football-pitch.squad-pitch .pitch-player{display:grid;justify-items:center;align-content:center;gap:5px;min-width:0;flex:1;color:#fff;text-align:center}
.football-pitch.squad-pitch .pitch-player>.pitch-player-avatar{width:52px;height:52px;border-radius:50%;background:#f7f7f3;color:#183323}
.football-pitch.squad-pitch .pitch-player.captain>.pitch-player-avatar{box-shadow:0 0 0 3px #f3c54a,0 4px 11px rgba(0,0,0,.27)}
.football-pitch.squad-pitch .pitch-player.captain>.pitch-player-avatar::after,.football-pitch.squad-pitch .pitch-player.vice-captain>.pitch-player-avatar::after{position:absolute;right:-7px;top:-8px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;border:2px solid #fff;font-size:8px;font-weight:950;line-height:1;z-index:4}
.football-pitch.squad-pitch .pitch-player.captain>.pitch-player-avatar::after{content:"C";background:#f3c54a;color:#183323}
.football-pitch.squad-pitch .pitch-player.vice-captain:not(.captain)>.pitch-player-avatar::after{content:"VC";background:#dce9f7;color:#17324b;font-size:6px}
.football-pitch.squad-pitch .pitch-player small,.squad-dashboard .pitch-player small{display:block;max-width:104px;padding:2px 5px;border-radius:6px;background:rgba(4,20,12,.42);font-size:9px;font-weight:850;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.lineup-bench>a{grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px}
.lineup-bench>a>span:last-child{display:grid;gap:2px;min-width:0}
.lineup-bench .fantasy-player-club-crest{width:15px;height:15px;right:-4px;bottom:-3px}

@media(max-width:600px){
  .lineup-name{grid-template-columns:20px 34px minmax(0,1fr) auto;gap:8px}
  .lineup-player-avatar{width:32px;height:32px}
  .football-pitch.squad-pitch>.pitch-row{left:2%;right:2%;gap:2px}
  .football-pitch.squad-pitch .pitch-player>.pitch-player-avatar{width:43px;height:43px}
  .pitch-player-avatar>.fantasy-player-club-crest{width:17px;height:17px;right:-5px;bottom:-4px}
  .football-pitch.squad-pitch .pitch-player small,.squad-dashboard .pitch-player small{max-width:68px;font-size:7px;padding:2px 3px}
}

/* v1.4.48 - Fantasy squad builder portrait parity */
.builder-player-identity{display:flex;align-items:center;gap:8px;min-width:0}
.builder-player-avatar{position:relative;width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border:1px solid color-mix(in srgb,var(--line-strong) 75%,transparent);border-radius:50%;background:var(--surface-subtle);color:var(--accent);font-weight:900;overflow:visible}
.builder-player-avatar .fantasy-player-club-crest{width:15px;height:15px;right:-4px;bottom:-3px}
.builder-roster-row{grid-template-columns:28px 38px minmax(0,1fr) auto}
.builder-roster-row>.builder-player-identity{min-width:0}
.builder-bench-player>.builder-player-identity{min-width:0}

/* Keep the editable squad-builder pitch independent from miniature Match
   Centre `.pitch-row` rules as well. */
.builder-pitch .pitch-dynamic>.pitch-row{position:absolute;left:5%;right:5%;width:auto;margin:0;transform:none;display:flex;align-items:center;justify-content:space-evenly;gap:8px;z-index:3}
.builder-pitch .pitch-dynamic>.pitch-row.pos-fwd{top:7%}
.builder-pitch .pitch-dynamic>.pitch-row.pos-mid{top:32%}
.builder-pitch .pitch-dynamic>.pitch-row.pos-def{top:58%}
.builder-pitch .pitch-dynamic>.pitch-row.pos-gk{top:auto;bottom:5%}
.builder-pitch .pitch-player{display:grid;justify-items:center;align-content:center;gap:5px;min-width:0;flex:1;color:#fff;text-align:center}
.builder-pitch .pitch-player>.pitch-player-avatar{width:52px;height:52px;border-radius:50%;background:#f7f7f3;color:#183323}
.builder-pitch .pitch-player.captain>.pitch-player-avatar{box-shadow:0 0 0 3px #f3c54a,0 4px 11px rgba(0,0,0,.27)}
.builder-pitch .pitch-player.captain>.pitch-player-avatar::after,.builder-pitch .pitch-player.vice-captain>.pitch-player-avatar::after{position:absolute;right:-7px;top:-8px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;border:2px solid #fff;font-size:8px;font-weight:950;line-height:1;z-index:4}
.builder-pitch .pitch-player.captain>.pitch-player-avatar::after{content:"C";background:#f3c54a;color:#183323}
.builder-pitch .pitch-player.vice-captain:not(.captain)>.pitch-player-avatar::after{content:"VC";background:#dce9f7;color:#17324b;font-size:6px}
.builder-pitch .pitch-player small{display:block;max-width:104px;padding:2px 5px;border-radius:6px;background:rgba(4,20,12,.42);font-size:9px;font-weight:850;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:600px){
  .builder-player-avatar{width:30px;height:30px;flex-basis:30px}
  .builder-roster-row{grid-template-columns:22px 32px minmax(0,1fr)}
  .builder-pitch .pitch-dynamic>.pitch-row{left:2%;right:2%;gap:2px}
  .builder-pitch .pitch-player>.pitch-player-avatar{width:43px;height:43px}
  .builder-pitch .pitch-player small{max-width:68px;font-size:7px;padding:2px 3px}
}

/* Touchline 1.4.49 - compact Fantasy formation board */
/* The dashboard XI used to inherit the generic Match Centre `.lineup-list`
   grid and then stretch to the pitch height. Keep the Fantasy roster compact
   and deliberately arrange the XI across two short columns on wider screens. */
.dashboard-squad-section .lineup-card{align-items:start;grid-template-columns:minmax(300px,.74fr) minmax(500px,1.26fr);gap:22px}
.dashboard-squad-section .lineup-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto repeat(6,auto);grid-auto-flow:column;align-content:start;align-self:start;gap:0 14px;padding:14px 16px}
.dashboard-squad-section .lineup-title{grid-column:1/-1;grid-row:1;margin-bottom:2px;padding-bottom:9px}
.dashboard-squad-section .lineup-name{grid-template-columns:20px 30px minmax(0,1fr) auto;gap:7px;min-height:42px;padding:5px 2px}
.dashboard-squad-section .lineup-player-avatar{width:30px;height:30px}
.dashboard-squad-section .lineup-name b{font-size:11px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-squad-section .lineup-name em{font-size:9px}
.dashboard-squad-section .lineup-player-avatar .fantasy-player-club-crest{width:13px;height:13px;right:-3px;bottom:-3px;border-width:1px}

/* A single XI reads better as a tactical half-pitch than as a full empty
   match pitch. Keep the goal/penalty area, use a clipped centre-circle at the
   top as the halfway reference, and compress the four formation bands. */
.dashboard-squad-section .football-pitch.squad-pitch,
.builder-pitch{min-height:0;height:clamp(330px,34vw,390px)}
.dashboard-squad-section .football-pitch.squad-pitch .pitch-box.top,
.builder-pitch .pitch-box.top{display:none}
.dashboard-squad-section .football-pitch.squad-pitch .pitch-line.halfway,
.builder-pitch .pitch-line.halfway{top:12px}
.dashboard-squad-section .football-pitch.squad-pitch .pitch-circle,
.builder-pitch .pitch-circle{top:12px;width:82px;height:82px}
.dashboard-squad-section .football-pitch.squad-pitch .pitch-box.bottom,
.builder-pitch .pitch-box.bottom{width:42%;height:72px}

.dashboard-squad-section .football-pitch.squad-pitch>.pitch-row.pos-fwd,
.builder-pitch .pitch-dynamic>.pitch-row.pos-fwd{top:11%}
.dashboard-squad-section .football-pitch.squad-pitch>.pitch-row.pos-mid,
.builder-pitch .pitch-dynamic>.pitch-row.pos-mid{top:34%}
.dashboard-squad-section .football-pitch.squad-pitch>.pitch-row.pos-def,
.builder-pitch .pitch-dynamic>.pitch-row.pos-def{top:58%}
.dashboard-squad-section .football-pitch.squad-pitch>.pitch-row.pos-gk,
.builder-pitch .pitch-dynamic>.pitch-row.pos-gk{top:auto;bottom:5%}
.dashboard-squad-section .football-pitch.squad-pitch .pitch-player>.pitch-player-avatar,
.builder-pitch .pitch-player>.pitch-player-avatar{width:46px;height:46px}
.dashboard-squad-section .football-pitch.squad-pitch .pitch-player small,
.builder-pitch .pitch-player small{max-width:92px;font-size:8px}
.dashboard-squad-section .football-pitch.squad-pitch .pitch-player-avatar>.fantasy-player-club-crest,
.builder-pitch .pitch-player-avatar>.fantasy-player-club-crest{width:18px;height:18px;right:-5px;bottom:-4px}

@media(max-width:1050px){
  .dashboard-squad-section .lineup-card{grid-template-columns:1fr;gap:14px}
  .dashboard-squad-section .football-pitch.squad-pitch{height:360px;min-height:0}
}
@media(max-width:700px){
  .dashboard-squad-section .lineup-list{grid-template-columns:1fr;grid-template-rows:auto;grid-auto-flow:row;padding:12px 14px}
  .dashboard-squad-section .lineup-title{grid-column:1;grid-row:auto}
  .dashboard-squad-section .lineup-name{min-height:40px}
  .dashboard-squad-section .football-pitch.squad-pitch,.builder-pitch{height:330px;min-height:0}
}
@media(max-width:520px){
  .dashboard-squad-section .football-pitch.squad-pitch,.builder-pitch{height:310px}
  .dashboard-squad-section .football-pitch.squad-pitch .pitch-player>.pitch-player-avatar,
  .builder-pitch .pitch-player>.pitch-player-avatar{width:40px;height:40px}
  .dashboard-squad-section .football-pitch.squad-pitch .pitch-player small,
  .builder-pitch .pitch-player small{max-width:64px;font-size:7px}
}

/* Touchline 1.4.50 - watchlists, player comparison, data quality and season archives */
.watchlist-head,.compare-head,.season-archive-head{align-items:flex-end;gap:18px}
.watchlist-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-subtle)}
.watchlist-toolbar>div{display:grid;gap:2px;min-width:0}
.watchlist-toolbar strong{font-size:13px}
.watchlist-toolbar span{font-size:11px;color:var(--muted)}
.watchlist-empty{display:grid;justify-items:center;text-align:center;gap:9px;padding:44px 24px}
.watchlist-empty h2,.watchlist-empty p{margin:0}
.watchlist-empty p{max-width:590px;color:var(--muted)}
.watchlist-empty-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:28px;font-weight:900}
.watchlist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.watchlist-card{position:relative;display:grid;grid-template-rows:1fr auto;min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden;box-shadow:0 6px 18px rgba(18,42,29,.04)}
.watchlist-card:hover{border-color:var(--line-strong)}
.watchlist-player-link{display:grid;gap:14px;padding:17px;color:inherit;text-decoration:none}
.watchlist-player-top{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:12px;min-width:0}
.watchlist-player-top h2{margin:3px 0 2px;font-size:16px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.watchlist-player-top small{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;min-width:0}
.watchlist-player-top small img{width:16px;height:16px;object-fit:contain;flex:none}
.watchlist-avatar,.compare-avatar{position:relative;display:grid;place-items:center;overflow:visible;border-radius:50%;background:var(--surface-raised);border:1px solid var(--line);color:var(--text);font-weight:900;flex:none}
.watchlist-avatar{width:52px;height:52px}
.compare-avatar{width:58px;height:58px}
.watchlist-avatar>.fantasy-player-photo,.compare-avatar>.fantasy-player-photo{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.watchlist-avatar>.fantasy-player-initials,.compare-avatar>.fantasy-player-initials{display:grid;place-items:center;width:100%;height:100%;font-size:14px}
.watchlist-avatar>.fantasy-player-club-crest,.compare-avatar>.fantasy-player-club-crest{position:absolute;right:-4px;bottom:-3px;width:20px;height:20px;padding:2px;border-radius:50%;object-fit:contain;background:var(--panel);border:1px solid var(--line);box-shadow:0 2px 7px rgba(0,0,0,.14)}
.watchlist-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.watchlist-stats>div{display:grid;gap:1px;padding:8px 9px;border-radius:10px;background:var(--surface-subtle);min-width:0}
.watchlist-stats span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.watchlist-stats strong{font-size:12px;white-space:nowrap}
.watchlist-status{display:flex;align-items:center;gap:6px;min-height:18px;color:var(--muted);font-size:10px}
.watchlist-status strong{color:var(--text);font-size:10px}
.watchlist-status small{margin-left:auto;white-space:nowrap}
.watchlist-compare-check{position:absolute;right:11px;top:11px;z-index:3;display:flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:9px;font-weight:800;cursor:pointer}
.watchlist-compare-check input{margin:0;accent-color:var(--accent)}
.watchlist-remove-form{border-top:1px solid var(--line);padding:8px 16px;text-align:right;background:var(--surface-subtle)}
.link-button{appearance:none;border:0;background:none;padding:3px 0;color:var(--muted);font:inherit;font-size:10px;font-weight:750;cursor:pointer}
.link-button:hover{color:var(--danger)}
.player-profile-actions-v1450{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0 18px}
.btn.watching{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

.compare-picker{margin-bottom:14px}
.compare-picker form{display:grid;gap:12px}
.compare-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.compare-picker-grid label{display:grid;gap:5px;min-width:0}
.compare-picker-grid label>span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:850}
.compare-picker-grid select{width:100%;min-width:0}
.compare-picker-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.compare-player-heads,.compare-table{--compare-count:2;display:grid;grid-template-columns:minmax(130px,.72fr) repeat(var(--compare-count),minmax(125px,1fr));min-width:calc(130px + (var(--compare-count) * 125px))}
.compare-player-heads{margin:0 0 10px;padding:0 14px;align-items:end}
.compare-player-head{display:grid;justify-items:center;gap:5px;padding:8px;color:inherit;text-decoration:none;text-align:center;min-width:0}
.compare-player-head strong{font-size:12px;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compare-player-head small{font-size:9px;color:var(--muted);max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compare-section{padding:0;overflow-x:auto;margin-bottom:12px}
.compare-section h2{position:sticky;left:0;margin:0;padding:13px 16px;border-bottom:1px solid var(--line);font-size:13px;background:var(--panel);z-index:2}
.compare-row{display:grid;grid-template-columns:subgrid;grid-column:1/-1;align-items:center;border-bottom:1px solid var(--line)}
.compare-row:last-child{border-bottom:0}
.compare-row>*{padding:10px 12px;min-width:0}
.compare-row>strong{text-align:center;font-size:12px;border-left:1px solid var(--line)}
.compare-label{position:sticky;left:0;background:var(--panel);z-index:1;color:var(--muted);font-size:10px;font-weight:800}
.compare-note{margin-top:4px}

.season-history-menu{position:relative;display:inline-block}
.season-history-menu>summary{list-style:none;cursor:pointer}
.season-history-menu>summary::-webkit-details-marker{display:none}
.season-history-menu[open]>summary{border-color:var(--accent);color:var(--accent)}
.season-history-menu>div{position:absolute;right:0;top:calc(100% + 7px);z-index:25;min-width:190px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 12px 28px rgba(0,0,0,.14)}
.season-history-menu>div a{display:flex;justify-content:space-between;gap:12px;padding:8px 9px;border-radius:8px;color:inherit;text-decoration:none;font-size:11px}
.season-history-menu>div a:hover{background:var(--surface-subtle)}
.season-archive-head{margin-bottom:14px}
.season-archive-meta{display:grid;justify-items:end;gap:4px;color:var(--muted);font-size:10px}
.season-archive-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:14px;margin-top:14px}
.archive-table-wrap{overflow-x:auto}
.archive-club{display:flex;align-items:center;gap:8px;min-width:0}
.archive-club img{width:22px;height:22px;object-fit:contain;flex:none}
.archive-ranking-list,.archive-award-list,.season-archive-admin-list{display:grid;gap:7px}
.archive-ranking-list>div,.archive-award-list>div{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 9px;border-radius:10px;background:var(--surface-subtle)}
.archive-ranking-list small,.archive-award-list small{color:var(--muted)}
.archive-leader-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.archive-leader-groups>div{padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle)}
.archive-leader-groups h3{margin:0 0 8px;font-size:11px}
.archive-leader-groups ol{margin:0;padding-left:19px;display:grid;gap:5px;font-size:10px}
.archive-league-list{display:grid;gap:12px}
.archive-league-list>section{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.archive-league-list h3{margin:0;padding:10px 12px;border-bottom:1px solid var(--line);font-size:11px;background:var(--surface-subtle)}
.archive-league-list ol{margin:0;padding:8px 12px 8px 34px;display:grid;gap:6px;font-size:10px}
.season-archive-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

.quality-centre-head,.season-management-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.quality-centre-summary,.season-management-current{display:grid;justify-items:end;gap:2px;flex:none;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle)}
.quality-centre-summary span,.season-management-current span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:850}
.quality-centre-summary strong,.season-management-current strong{font-size:20px;line-height:1}
.quality-centre-summary small,.season-management-current small{font-size:9px;color:var(--muted)}
.quality-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quality-card{padding:0;overflow:hidden;border-left-width:4px}
.quality-card.ok{border-left-color:var(--ok)}
.quality-card.info{border-left-color:var(--blue)}
.quality-card.warning{border-left-color:var(--gold)}
.quality-card.danger{border-left-color:var(--danger)}
.quality-card-head{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:start;padding:14px 14px 11px}
.quality-card-head h3{margin:0 0 3px;font-size:13px}
.quality-card-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.45}
.quality-card-head>strong{font-size:20px;line-height:1}
.quality-status-dot{width:9px;height:9px;margin-top:3px;border-radius:50%;background:var(--muted)}
.quality-card.ok .quality-status-dot{background:var(--ok)}
.quality-card.info .quality-status-dot{background:var(--blue)}
.quality-card.warning .quality-status-dot{background:var(--gold)}
.quality-card.danger .quality-status-dot{background:var(--danger)}
.quality-samples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:0 14px 12px}
.quality-samples span{display:grid;gap:1px;min-width:0;padding:7px 8px;border-radius:9px;background:var(--surface-subtle)}
.quality-samples b,.quality-samples small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quality-samples b{font-size:10px}
.quality-samples small{font-size:8px;color:var(--muted)}
.quality-clean{margin:0 14px 12px;padding:8px 9px;border-radius:9px;background:var(--surface-subtle);color:var(--ok);font-size:10px;font-weight:800}
.quality-action{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 14px;border-top:1px solid var(--line);background:var(--surface-subtle);color:inherit;text-decoration:none;font-size:10px;font-weight:800}
.quality-action:hover{color:var(--accent)}
.quality-guidance{margin-top:12px}
.quality-guidance p{margin-bottom:0;color:var(--muted)}

.season-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.season-lifecycle-card{display:flex;flex-direction:column;gap:12px;min-width:0}
.season-lifecycle-card .section-title{margin:0}
.season-readiness-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.season-readiness-grid>div{display:grid;gap:2px;padding:10px;border-radius:11px;background:var(--surface-subtle)}
.season-readiness-grid span{font-size:9px;color:var(--muted)}
.season-readiness-grid strong{font-size:18px}
.planned-season{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:12px;border:1px solid var(--accent);border-radius:12px;background:var(--accent-soft)}
.planned-season.empty{border-color:var(--line);background:var(--surface-subtle)}
.planned-season span{grid-row:1/3;padding:5px 7px;border-radius:999px;background:var(--panel);font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:850}
.planned-season strong{font-size:18px}
.planned-season small{color:var(--muted);font-size:9px}
.season-safety-note{margin-top:auto;padding:10px 11px;border-radius:10px;background:var(--surface-subtle);color:var(--muted);font-size:10px;line-height:1.5}
.season-archive-list{margin-top:14px}
.season-archive-admin-list a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 11px;border:1px solid var(--line);border-radius:11px;color:inherit;text-decoration:none}
.season-archive-admin-list a:hover{border-color:var(--accent)}
.season-archive-admin-list a>span{display:grid;gap:2px}
.season-archive-admin-list small{color:var(--muted);font-size:9px}
.season-archive-admin-list b{font-size:10px;color:var(--accent);white-space:nowrap}

@media(max-width:1100px){
  .watchlist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compare-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
  .season-archive-grid,.season-management-grid{grid-template-columns:1fr}
  .quality-grid{grid-template-columns:1fr}
  .quality-centre-head,.season-management-head{align-items:flex-start;flex-direction:column}
  .quality-centre-summary,.season-management-current{justify-items:start}
  .archive-leader-groups{grid-template-columns:1fr}
}
@media(max-width:650px){
  .watchlist-head,.compare-head,.season-archive-head{align-items:flex-start}
  .watchlist-toolbar{align-items:flex-start;flex-direction:column}
  .watchlist-grid{grid-template-columns:1fr}
  .watchlist-status{flex-wrap:wrap}
  .watchlist-status small{margin-left:0;width:100%;padding-left:15px}
  .compare-picker-grid{grid-template-columns:1fr}
  .compare-player-heads,.compare-table{grid-template-columns:minmax(105px,.8fr) repeat(var(--compare-count),minmax(105px,1fr));min-width:calc(105px + (var(--compare-count) * 105px))}
  .compare-player-heads{overflow-x:auto;padding:0 8px}
  .compare-avatar{width:48px;height:48px}
  .compare-row>*{padding:9px 8px}
  .quality-samples{grid-template-columns:1fr}
  .season-readiness-grid{grid-template-columns:1fr}
  .season-history-menu>div{left:0;right:auto}
}
.archive-leader-groups>div>strong{display:block;margin-bottom:8px;font-size:11px}
.archive-leader-groups>div>span{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:6px;padding:5px 0;border-top:1px solid var(--line);font-size:10px}
.archive-leader-groups>div>span b{color:var(--muted);font-size:9px}
.archive-leader-groups>div>span em{font-style:normal;font-weight:850}
.archive-leader-groups>div>small{color:var(--muted);font-size:9px}
.archive-league-list details{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}
.archive-league-list summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;cursor:pointer;background:var(--surface-subtle);font-size:10px}
.archive-league-list summary span{color:var(--muted);font-size:9px}
.archive-league-list details>div{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 12px;border-top:1px solid var(--line);font-size:10px}
.archive-league-list details>div>span{color:var(--muted)}
/* Keep the comparison header scroll contained to its own row on narrow screens. */
.compare-player-heads{min-width:0;overflow-x:auto}
@media(max-width:650px){.compare-player-heads{min-width:0}}

/* Touchline 1.4.51 - compact navigation, followed matches, match flow, supporter hubs and league competitions */
.header-shell{min-height:62px;gap:20px}
.brand-mark{width:36px;height:36px}
.brand-copy strong{font-size:18px}
.compact-nav{overflow:visible;gap:3px;justify-content:center}
.compact-nav .nav-direct,.nav-cluster>summary{position:relative;display:flex;align-items:center;min-height:38px;padding:0 10px;border:0;border-radius:9px;color:var(--nav-muted);font-size:11px;font-weight:750;white-space:nowrap;text-decoration:none;cursor:pointer;list-style:none}
.nav-cluster>summary::-webkit-details-marker{display:none}.nav-cluster>summary::marker{display:none}
.compact-nav .nav-direct:hover,.nav-cluster>summary:hover,.nav-cluster.active>summary,.nav-cluster[open]>summary{color:var(--text);background:var(--surface-subtle)}
.compact-nav .nav-direct.active::after,.nav-cluster.active>summary::after{content:"";position:absolute;left:10px;right:10px;bottom:2px;height:2px;border-radius:99px;background:var(--accent)}
.nav-cluster{position:relative}
.nav-popover{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);z-index:80;display:grid;min-width:188px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 16px 36px rgba(15,28,21,.16)}
.nav-popover a{display:flex;align-items:center;min-height:34px;padding:7px 9px!important;border-radius:8px;color:var(--text)!important;font-size:10px!important;font-weight:700;text-decoration:none}
.nav-popover a:hover,.nav-popover a.active{background:var(--surface-subtle);color:var(--accent)!important}
.nav-popover a::after{display:none!important}
.account-bar{gap:10px}.account-link{padding-left:12px}.notification-bell{flex:none}

.match-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.match-follow-btn,.centre-follow-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);padding:7px 10px;font:inherit;font-size:9px;font-weight:850;cursor:pointer;white-space:nowrap}
.match-follow-btn:hover,.centre-follow-btn:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent)}
.match-follow-btn.following,.centre-follow-btn.following{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--accent-soft);color:var(--accent)}
.match-follow-btn.compact{padding:6px 9px}
.followed-match-panel{margin:0 0 22px;padding:14px 15px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}
.followed-match-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.followed-match-card{display:grid;gap:3px;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-subtle);color:inherit;text-decoration:none}
.followed-match-card>span{font-size:8px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.followed-match-card>strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.followed-match-card>strong b{color:var(--accent)}
.followed-match-card.live{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:inset 3px 0 0 var(--accent)}
.centre-fixture-wrap{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid transparent;border-radius:12px}
.centre-fixture-wrap .centre-fixture{border-radius:12px 0 0 12px;border-right:0;min-width:0}
.centre-follow-form{align-self:stretch;display:flex}.centre-follow-btn{height:100%;min-width:82px;border-radius:0 12px 12px 0;background:var(--panel)}
.centre-fixture-wrap.live .centre-follow-btn{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}

.match-flow-map{position:relative;margin:14px 16px 4px;padding:23px 12px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle);overflow:hidden}
.match-flow-axis{position:absolute;left:12px;right:12px;top:6px;display:flex;justify-content:space-between;color:var(--muted);font-size:7px;font-weight:800;pointer-events:none}
.match-flow-lane{position:relative;height:28px;margin:0 5px}.match-flow-lane.home{border-bottom:1px solid color-mix(in srgb,var(--line-strong) 75%,transparent)}
.match-flow-lane.away{border-top:1px solid color-mix(in srgb,var(--line-strong) 75%,transparent)}
.match-flow-midline{height:5px}
.match-flow-marker{position:absolute;left:var(--event-x);top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:17px;height:17px;border:1px solid var(--line-strong);border-radius:50%;background:var(--panel);color:var(--text);font-size:8px;font-weight:900;box-shadow:0 2px 6px rgba(0,0,0,.08);z-index:2}
.match-flow-marker.goals{width:21px;height:21px;font-size:10px;border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.match-flow-marker.cards{border-radius:4px}.match-flow-marker.shots{font-size:7px}.match-flow-marker.set-pieces{border-radius:5px}.match-flow-marker.discipline{color:var(--danger)}
.match-event[data-event-group].is-filtered-out{display:none}

.supporter-hub-panel{margin:0 0 18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 4%,var(--panel)),var(--panel));box-shadow:var(--shadow-soft)}
.supporter-hub-panel.is-supported{border-color:color-mix(in srgb,var(--accent) 25%,var(--line))}
.supporter-hub-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.supporter-hub-head h2{margin:2px 0 3px;font-size:20px}.supporter-hub-head p{margin:0;color:var(--muted);font-size:10px}.supporter-hub-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.supporter-count,.supported-club-pill{display:inline-flex;align-items:center;min-height:29px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:8px;font-weight:850;color:var(--muted)}.supported-club-pill{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-soft);color:var(--accent)}
.supporter-hub-grid{display:grid;grid-template-columns:1.05fr 1.2fr .85fr;gap:10px}.supporter-hub-grid>article{min-width:0;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.supporter-hub-label{display:block;margin-bottom:9px;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.supporter-hub-fixture{display:flex;align-items:center;justify-content:space-between;gap:10px;color:inherit;text-decoration:none;margin-bottom:9px}.supporter-hub-fixture>span{display:grid;min-width:0}.supporter-hub-fixture small{color:var(--muted);font-size:8px}.supporter-hub-fixture strong{margin-top:3px;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.supporter-hub-fixture img{width:42px;height:42px;object-fit:contain;flex:none}
.supporter-performer-list,.supporter-availability-list{display:grid;gap:6px}.supporter-performer-list>a{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:4px 0;color:inherit;text-decoration:none}.supporter-player-avatar>.player-avatar{width:32px;height:32px}.supporter-performer-list>a>span:last-child{display:grid;min-width:0}.supporter-performer-list strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.supporter-performer-list small{font-size:8px;color:var(--muted)}
.supporter-availability-list>a{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 0;color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}.supporter-availability-list>a:last-child{border-bottom:0}.supporter-availability-list strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.supporter-availability-list small{font-size:8px;color:var(--muted)}.supporter-all-clear{display:grid;gap:3px;padding:12px 0}.supporter-all-clear strong{font-size:13px}.supporter-all-clear small{color:var(--muted);font-size:9px}

.league-competitions{border-top:1px solid var(--line)}.league-competitions>summary,.league-management>summary{list-style:none;cursor:pointer}.league-competitions>summary::-webkit-details-marker{display:none}.league-competitions>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;background:var(--surface-subtle)}.league-competitions>summary>span{display:grid;gap:2px}.league-competitions>summary strong{font-size:11px}.league-competitions>summary small{font-size:8px;color:var(--muted)}.league-competitions>summary>b{font-size:18px;color:var(--muted);transition:.18s}.league-competitions[open]>summary>b{transform:rotate(45deg)}
.league-competitions-body{display:grid;gap:18px;padding:18px}.league-competition-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:10px}.league-competition-head h3{margin:2px 0 2px;font-size:14px}.league-competition-head p{margin:0;color:var(--muted);font-size:8px}
.league-award-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.league-award-grid article{display:grid;gap:2px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-subtle)}.league-award-grid span,.league-award-grid small{font-size:8px;color:var(--muted)}.league-award-grid strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.league-competition-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:12px}.league-side-competition,.league-cups-section{min-width:0;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.h2h-table{overflow-x:auto}.h2h-row{display:grid;grid-template-columns:28px minmax(130px,1fr) repeat(6,38px);align-items:center;min-width:405px;border-bottom:1px solid var(--line);font-size:8px}.h2h-row>*{padding:7px 4px;text-align:center}.h2h-row>strong{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.h2h-row.head{color:var(--muted);font-weight:850}.h2h-row.is-you{background:var(--accent-soft)}
.h2h-recent{display:grid;gap:5px;margin-top:12px}.league-comp-subtitle{font-size:8px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.h2h-recent>div{display:grid;grid-template-columns:40px minmax(0,1fr);gap:7px;align-items:center}.h2h-recent small{font-size:8px;color:var(--muted)}.h2h-recent strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.h2h-recent strong b{color:var(--accent)}
.monthly-champion-list{display:grid;gap:6px}.monthly-champion-list>div{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.monthly-champion-list>div:last-child{border-bottom:0}.monthly-champion-list span,.monthly-champion-list b{font-size:8px;color:var(--muted)}.monthly-champion-list strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monthly-champion-list b{color:var(--accent)}
.league-cup-create{display:grid;grid-template-columns:minmax(160px,1fr) 125px auto;gap:8px;align-items:end;margin-bottom:12px;padding:10px;border-radius:10px;background:var(--surface-subtle)}.league-cup-create label{display:grid;gap:4px}.league-cup-create label span{font-size:8px;color:var(--muted);font-weight:800}.league-cup-create input{min-width:0}.league-comp-empty{padding:11px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:9px;text-align:center}
.league-cup-list{display:grid;gap:8px}.league-cup-card{border:1px solid var(--line);border-radius:10px;overflow:hidden}.league-cup-card>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;cursor:pointer;list-style:none}.league-cup-card>summary::-webkit-details-marker{display:none}.league-cup-card>summary>span{display:grid;gap:2px}.league-cup-card>summary strong{font-size:10px}.league-cup-card>summary small{font-size:8px;color:var(--muted)}.cup-status{font-style:normal;padding:4px 6px;border-radius:999px;background:var(--surface-subtle);font-size:7px;font-weight:900;text-transform:uppercase}.cup-status.complete{background:var(--accent-soft);color:var(--accent)}
.cup-rounds{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(170px,1fr);gap:8px;padding:10px;border-top:1px solid var(--line);overflow-x:auto;background:var(--surface-subtle)}.cup-rounds>section{display:grid;align-content:start;gap:6px}.cup-rounds header{display:flex;justify-content:space-between;font-size:8px}.cup-rounds header span{color:var(--muted)}.cup-tie{display:grid;gap:3px;padding:7px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.cup-tie>span{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;font-size:8px}.cup-tie>span strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cup-tie>span.winner strong,.cup-tie>span.winner b{color:var(--accent)}.cup-tie>small{font-size:7px;color:var(--muted)}.league-cup-card>footer{padding:8px 11px;border-top:1px solid var(--line);font-size:8px}.league-cup-card>footer strong{color:var(--accent)}

@media(max-width:1000px){.followed-match-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.supporter-hub-grid{grid-template-columns:1fr 1fr}.supporter-hub-availability{grid-column:1/-1}.league-award-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.league-competition-grid{grid-template-columns:1fr}}
@media(max-width:820px){.header-shell{grid-template-columns:auto minmax(0,1fr) auto!important;min-height:58px!important;padding-top:0!important;gap:10px!important}.primary-nav.compact-nav{grid-column:auto!important;border-top:0!important;margin-top:0!important;padding:0!important;justify-content:center;overflow:visible}.brand-copy small{display:none}.account-balance{display:none}.account-link>span:last-child{display:none}.nav-popover{left:0;transform:none}.nav-cluster:last-of-type .nav-popover{left:auto;right:0}.centre-fixture-wrap{grid-template-columns:minmax(0,1fr) 70px}.centre-follow-btn{min-width:70px;padding:6px}.centre-follow-btn>span:last-child{display:none}}
@media(max-width:680px){.compact-nav .nav-direct:first-child{display:none}.brand-copy{display:none}.header-shell{width:min(100% - 20px,1180px)!important}.compact-nav .nav-direct,.nav-cluster>summary{padding:0 7px;font-size:10px}.account-bar{gap:5px}.account-link{padding-left:5px;border-left:0}.followed-match-strip{grid-template-columns:1fr}.supporter-hub-head{display:grid;align-items:start}.supporter-hub-actions{justify-content:flex-start}.supporter-hub-grid{grid-template-columns:1fr}.supporter-hub-availability{grid-column:auto}.league-award-grid{grid-template-columns:1fr 1fr}.league-cup-create{grid-template-columns:1fr}.match-flow-map{margin-left:10px;margin-right:10px}.match-event-filters{overflow-x:auto;flex-wrap:nowrap;max-width:100%;padding-bottom:3px}.match-event-filters button{flex:none}}
@media(max-width:520px){.compact-nav .nav-direct[href*="page=admin"]{font-size:0;padding:0 7px}.compact-nav .nav-direct[href*="page=admin"]::before{content:"A";font-size:10px}.centre-fixture-wrap{grid-template-columns:minmax(0,1fr) 48px}.centre-follow-btn{min-width:48px}.league-award-grid{grid-template-columns:1fr}.monthly-champion-list>div{grid-template-columns:68px minmax(0,1fr)}.monthly-champion-list b{grid-column:2}.h2h-row{grid-template-columns:26px minmax(120px,1fr) repeat(6,34px)}}
.dashboard-followed-section{margin:20px 0}.dashboard-followed-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.dashboard-followed-card{display:grid;gap:7px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:inherit;text-decoration:none}.dashboard-followed-card>span{font-size:8px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.dashboard-followed-card>div{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:7px;align-items:center}.dashboard-followed-card strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-followed-card strong:last-child{text-align:right}.dashboard-followed-card b{font-size:13px;color:var(--accent)}.dashboard-followed-card.live{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:inset 3px 0 0 var(--accent)}
@media(max-width:800px){.dashboard-followed-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.dashboard-followed-grid{grid-template-columns:1fr}}


/* Touchline 1.4.52 - review, sandbox, search, operations, accessibility */
.skip-link{position:fixed;left:12px;top:10px;z-index:9999;transform:translateY(-180%);padding:10px 14px;border-radius:8px;background:var(--text);color:var(--surface);font-weight:800}.skip-link:focus{transform:none}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:where(a,button,input,select,summary,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 72%,white);outline-offset:3px}
.global-search-form{display:flex;align-items:center;min-width:170px;max-width:240px;border:1px solid var(--border);border-radius:999px;background:var(--surface);overflow:hidden}.global-search-form input{min-width:0;width:100%;border:0!important;background:transparent!important;padding:8px 4px 8px 12px!important;box-shadow:none!important}.global-search-form button{border:0;background:transparent;color:var(--muted);font-size:20px;line-height:1;padding:7px 10px;cursor:pointer}
.search-page-form{max-width:780px;margin:0 0 18px}.search-page-form>label{font-weight:800;display:block;margin-bottom:7px}.search-page-form>div{display:flex;gap:8px}.search-page-form input{flex:1}.search-summary{display:flex;align-items:baseline;gap:8px;margin:12px 0 16px}.search-summary strong{font-size:28px}.search-summary span{color:var(--muted)}.search-result-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.search-result-sections .panel{min-width:0}.search-result-list{display:grid;gap:4px}.search-result-list>a{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;border-radius:10px;text-decoration:none;color:inherit}.search-result-list>a:hover{background:var(--surface-2)}.search-result-list span strong,.search-result-list span small{display:block}.search-result-list span small{color:var(--muted);margin-top:2px}.search-result-list>a>b{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.search-avatar,.search-type-mark{width:36px;height:36px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--surface-2);font-weight:900}.search-avatar.crest{object-fit:contain;padding:4px}.search-fixture-crests{display:flex;width:40px}.search-fixture-crests img{width:26px;height:26px;object-fit:contain}.search-fixture-crests img+img{margin-left:-10px}
.gw-review-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.gw-review-stats>div,.system-health-card{padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.gw-review-stats span,.system-health-card span{display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.gw-review-stats strong,.system-health-card strong{display:block;font-size:25px;margin:5px 0 2px}.gw-review-stats small,.system-health-card small{color:var(--muted)}.gw-best-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.gw-best-player{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid var(--border);border-radius:12px;padding:8px;text-decoration:none;color:inherit}.gw-best-player span strong,.gw-best-player span small{display:block}.gw-best-player span small{color:var(--muted)}.gw-best-player>b{font-size:13px}.gw-review-columns{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin:14px 0}.gw-leader-list{display:grid}.gw-leader-list>a{display:grid;grid-template-columns:24px 38px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);color:inherit;text-decoration:none}.gw-leader-list a:last-child{border-bottom:0}.gw-leader-list small{display:block;color:var(--muted)}.gw-leader-list em{font-style:normal;font-weight:900}.gw-category{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.gw-category:last-child{border:0}.gw-category span{color:var(--muted)}.gw-personal-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.gw-personal-picks>div{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;padding:7px}.gw-personal-picks small{display:block;color:var(--muted)}
.sandbox-form{display:grid;gap:12px}.sandbox-controls{display:flex;align-items:end;gap:12px;position:sticky;top:72px;z-index:20}.sandbox-controls label{display:grid;gap:5px;min-width:150px}.sandbox-controls label:nth-child(2){flex:1}.sandbox-controls>[data-sandbox-count]{font-weight:900;white-space:nowrap}.sandbox-result{border-radius:14px;padding:14px 16px}.sandbox-result.ok{background:color-mix(in srgb,var(--success) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--success) 35%,var(--border))}.sandbox-result.error{background:color-mix(in srgb,#c43 10%,var(--surface));border:1px solid color-mix(in srgb,#c43 35%,var(--border))}.sandbox-result span,.sandbox-result small{display:block}.sandbox-result strong{font-size:26px}.sandbox-player-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.sandbox-player{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}.sandbox-player-select{display:grid;grid-template-columns:20px 42px minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px;cursor:pointer}.sandbox-player-select span strong,.sandbox-player-select span small{display:block}.sandbox-player-select span small{color:var(--muted)}.sandbox-player-select>b{font-size:12px}.sandbox-captain{height:100%;display:grid;place-items:center;border-left:1px solid var(--border);font-weight:900;cursor:pointer}.sandbox-player:has(.sandbox-player-select>input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.activity-timeline{display:grid}.activity-timeline article{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:11px;align-items:start;padding:12px 2px;border-bottom:1px solid var(--border)}.activity-timeline article:last-child{border-bottom:0}.activity-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);margin-top:5px}.activity-timeline strong,.activity-timeline small{display:block}.activity-timeline small,.activity-timeline time{color:var(--muted);font-size:12px}
.followed-club-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.followed-club-option{display:grid;grid-template-columns:20px 34px minmax(0,1fr);align-items:center;gap:8px;border:1px solid var(--border);border-radius:11px;padding:8px;cursor:pointer}.followed-club-option img{width:32px;height:32px;object-fit:contain}.followed-club-option span strong,.followed-club-option span small{display:block}.followed-club-option span small{color:var(--muted)}.followed-club-option.official{opacity:.72}.followed-club-option:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.system-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.system-health-card.ok strong{color:var(--success)}.system-health-card.danger strong{color:#c44}.operations-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}.health-detail-list{margin:0}.health-detail-list>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.health-detail-list dt{font-weight:800}.health-detail-list dd{margin:0;color:var(--muted)}.health-links{display:flex;gap:7px;margin-top:12px}.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.export-grid a{border:1px solid var(--border);border-radius:11px;padding:10px;color:inherit;text-decoration:none}.export-grid strong,.export-grid small{display:block}.export-grid small{color:var(--muted);margin-top:3px}.admin-audit{margin-top:14px}.admin-audit-list{display:grid}.admin-audit-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.admin-audit-list span strong,.admin-audit-list span small{display:block}.admin-audit-list span small,.admin-audit-list time{color:var(--muted);font-size:12px}.admin-audit-list code{font-size:11px}
@media(max-width:1100px){.global-search-form{max-width:190px}.gw-best-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sandbox-player-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.system-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.global-search-form{order:4;max-width:none;width:100%;margin-top:4px}.header-shell{flex-wrap:wrap}.search-result-sections,.gw-review-columns,.operations-layout{grid-template-columns:1fr}.gw-review-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.gw-best-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gw-personal-picks{grid-template-columns:repeat(2,minmax(0,1fr))}.followed-club-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sandbox-controls{top:4px;flex-wrap:wrap}.sandbox-controls label:nth-child(2){min-width:220px}}
@media(max-width:560px){.search-page-form>div{display:grid}.sandbox-player-grid,.gw-best-grid,.gw-personal-picks,.followed-club-grid,.system-health-grid,.export-grid{grid-template-columns:1fr}.gw-review-stats{grid-template-columns:1fr 1fr}.sandbox-player-select{grid-template-columns:18px 38px minmax(0,1fr) auto}.activity-timeline article{grid-template-columns:12px minmax(0,1fr)}.activity-timeline time{grid-column:2}.admin-audit-list>div{grid-template-columns:1fr auto}.admin-audit-list time{grid-column:1/-1}.health-detail-list>div{grid-template-columns:1fr;gap:3px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media(pointer:coarse){.btn,button,.primary-nav a,.nav-cluster>summary,.account-link,.notification-bell{min-height:44px}.tabs a{min-height:42px;display:inline-flex;align-items:center}}

.account-avatar-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}.settings-avatar{overflow:hidden}.settings-avatar img{width:100%;height:100%;object-fit:cover}.avatar-upload-row>div{display:grid;gap:8px}.profile-avatar-preview{width:74px;height:74px;object-fit:cover;border-radius:50%;border:1px solid var(--border)}

/* Touchline 1.4.54 - header grid correction after global search */
@media (min-width:821px){
  .header-shell{
    grid-template-columns:auto minmax(250px,1fr) minmax(170px,230px) auto!important;
    gap:18px!important;
    min-height:62px!important;
  }
  .primary-nav.compact-nav{min-width:0;justify-content:center;overflow:visible}
  .global-search-form{width:100%;min-width:0;max-width:230px;justify-self:end;margin:0!important}
  .account-bar{min-width:max-content;justify-self:end;white-space:nowrap}
}
@media (min-width:821px) and (max-width:1100px){
  .header-shell{
    grid-template-columns:auto minmax(210px,1fr) minmax(145px,190px) auto!important;
    gap:10px!important;
  }
  .global-search-form{max-width:190px}
  .compact-nav .nav-direct,.nav-cluster>summary{padding-left:7px;padding-right:7px;font-size:10px}
}
@media (max-width:820px){
  .header-shell{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    grid-template-areas:
      "brand nav account"
      "search search search";
    gap:5px 10px!important;
    min-height:0!important;
    padding:7px 0 8px!important;
  }
  .header-shell>.brand{grid-area:brand}
  .header-shell>.primary-nav{grid-area:nav!important;grid-column:auto!important;border-top:0!important;margin:0!important;padding:0!important;justify-content:center;min-width:0;overflow:visible}
  .header-shell>.global-search-form{grid-area:search;order:initial!important;width:100%;max-width:none;margin:0!important;min-height:36px}
  .header-shell>.account-bar{grid-area:account;justify-self:end;min-width:max-content}
  .global-search-form input{padding-top:7px!important;padding-bottom:7px!important}
  .player-table th{top:102px}
}
@media (max-width:680px){
  .header-shell{grid-template-columns:auto minmax(0,1fr) auto!important;gap:5px 6px!important}
  .compact-nav{justify-content:flex-start!important}
  .compact-nav .nav-direct,.nav-cluster>summary{padding-left:6px;padding-right:6px;font-size:10px}
  .account-bar{gap:4px}
  .notification-bell{width:36px;height:36px}
  .account-avatar{width:34px;height:34px}
}

/* Touchline 1.4.55 - search result portrait containment */
.search-result-list .search-avatar{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  min-height:36px!important;
  max-width:36px!important;
  max-height:36px!important;
  overflow:hidden;
  border-radius:50%;
  align-self:center;
}
.search-result-list .search-avatar.has-photo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:cover!important;
  object-position:center top;
  border-radius:inherit;
}
.search-result-list>a{min-width:0;overflow:hidden}
.search-result-list>a>span:not(.search-avatar):not(.search-fixture-crests):not(.search-type-mark){min-width:0}
.search-result-list>a>span>strong,.search-result-list>a>span>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Touchline 1.4.56 - dedicated Gameweek leader portrait containment */
.gw-leader-list>a{grid-template-columns:24px 36px minmax(0,1fr) auto;min-width:0;overflow:hidden}
.gw-leader-list>a>.gw-leader-avatar{
  position:relative!important;
  display:grid!important;
  place-items:center;
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  min-height:36px!important;
  max-width:36px!important;
  max-height:36px!important;
  overflow:hidden!important;
  clip-path:circle(50% at 50% 50%);
  border-radius:50%!important;
  background:var(--surface-2);
  font-size:10px;
  font-weight:900;
  align-self:center;
  contain:layout paint;
  isolation:isolate;
}
.gw-leader-list>a>.gw-leader-avatar.has-photo>img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  min-height:36px!important;
  max-width:36px!important;
  max-height:36px!important;
  margin:0!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center top!important;
  transform:none!important;
  border-radius:50%!important;
}
.gw-leader-list>a>.gw-leader-avatar+span{min-width:0}
.gw-leader-list>a>.gw-leader-avatar+span>strong,.gw-leader-list>a>.gw-leader-avatar+span>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}


/* Touchline 1.4.61 - competition-first player directory. */
.player-directory-filters{display:grid;gap:12px;margin-top:14px}.player-competition-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.player-competition-tab{display:grid;gap:3px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-subtle);color:var(--text);text-decoration:none}.player-competition-tab span{font-size:10px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-competition-tab small{font-size:7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-competition-tab:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.player-competition-tab.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 8%,transparent)}.player-team-picker{display:flex;align-items:end;gap:9px;max-width:560px}.player-team-picker label{display:grid;gap:5px;flex:1;min-width:0}.player-team-picker label>span{font-size:8px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.player-team-picker select{width:100%;min-height:40px;padding:8px 34px 8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);font:inherit;font-size:10px}.player-team-picker .btn{min-height:40px}.player-directory-club-crest b{font-size:10px;color:var(--muted)}
@media(max-width:900px){.player-competition-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.player-competition-tab:last-child{grid-column:1/-1}}
@media(max-width:520px){.player-competition-tabs{grid-template-columns:1fr}.player-competition-tab:last-child{grid-column:auto}.player-team-picker{display:grid;grid-template-columns:1fr}.player-team-picker .btn{width:100%}}

/* Touchline 1.4.62 - lighter admin navigation, visual competition/club pickers and refined team directory. */
.player-competition-tab{grid-template-columns:38px minmax(0,1fr);align-items:center;gap:9px;min-height:58px}.player-competition-tab>.competition-tab-mark{grid-row:1;grid-column:1;width:34px;height:34px;min-width:34px;border-radius:9px;object-fit:contain;background:#fff;border:1px solid color-mix(in srgb,var(--line) 88%,transparent);padding:3px}.player-competition-tab>.competition-tab-mark.fallback,.player-competition-tab>.competition-tab-mark.all{display:grid;place-items:center;padding:0;background:var(--panel);color:var(--muted);font-size:8px;font-weight:950;letter-spacing:.04em}.player-competition-tab>.competition-tab-copy{grid-column:2;display:grid;gap:3px;min-width:0}.player-competition-tab>.competition-tab-copy b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-competition-tab>.competition-tab-copy small{font-size:7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-competition-tab>span:not(.competition-tab-mark):not(.competition-tab-copy){font-size:inherit}
.player-club-browser{display:grid;gap:9px}.player-club-browser-head{display:flex;align-items:end;justify-content:space-between;gap:12px}.player-club-browser-head>div{display:grid;gap:2px}.player-club-browser-head>div>span{font-size:8px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.player-club-browser-head>div>strong{font-size:11px}.player-club-search{width:min(280px,100%)}.player-club-search input,.team-directory-search input{width:100%;min-height:38px;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);font:inherit;font-size:10px}.player-club-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.player-club-card{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-subtle);color:inherit;text-decoration:none}.player-club-card:hover{border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}.player-club-card.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}.player-club-card>span:last-child{display:grid;gap:2px;min-width:0}.player-club-card strong{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-club-card small{font-size:7px;color:var(--muted)}.player-club-crest,.player-club-crest-fallback{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;background:var(--panel);overflow:hidden}.player-club-crest img{width:25px;height:25px;object-fit:contain}.player-club-crest b,.player-club-crest-fallback{font-size:7px;font-weight:950;color:var(--muted)}.player-club-empty{margin:0;color:var(--muted);font-size:9px}
.team-directory-head{margin-bottom:14px}.team-directory-head .section-title{align-items:flex-start}.team-competition-tabs{margin-top:12px}.team-directory-search{display:block;width:min(320px,100%);margin-top:12px}.team-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.team-admin-card{display:grid;grid-template-rows:auto auto 1fr;border:1px solid var(--line);border-radius:13px;background:var(--panel);overflow:hidden;min-width:0}.team-admin-card-main{display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px;align-items:center;padding:12px}.team-admin-card-main>span:last-child{display:grid;gap:2px;min-width:0}.team-admin-card-main strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-admin-card-main small{font-size:7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-admin-crest{width:44px;height:44px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;background:var(--surface-subtle);overflow:hidden}.team-admin-crest img{width:35px;height:35px;object-fit:contain}.team-admin-crest b{font-size:9px;color:var(--muted)}.team-admin-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-subtle)}.team-admin-meta>span:first-child{font-size:7px;color:var(--muted)}.team-admin-meta>span:first-child b{font-size:10px;color:var(--text);margin-right:3px}.team-admin-meta .coverage-pill{font-size:7px;padding:4px 7px}.team-admin-action{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;font-size:8px;font-weight:900;color:var(--accent)}.team-admin-action:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}.team-directory-empty{grid-column:1/-1}
@media(max-width:1100px){.player-club-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.team-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.player-club-browser-head{display:grid}.player-club-search{width:100%}.player-club-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.player-club-grid,.team-admin-grid{grid-template-columns:1fr}.player-competition-tab{grid-template-columns:34px minmax(0,1fr)}.player-competition-tab>.competition-tab-mark{width:30px;height:30px;min-width:30px}}

/* Touchline 1.4.63 - competition-scoped fixtures, provider-owned results and explicit manual overrides. */
.fixture-directory-head{margin-bottom:14px}.fixture-directory-head .section-title{align-items:flex-start}.fixture-competition-tabs{margin-top:12px}.fixture-admin-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.fixture-view-tabs{display:flex;flex-wrap:wrap;gap:6px}.fixture-view-tabs a{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-subtle);color:var(--muted);font-size:8px;font-weight:900;text-decoration:none}.fixture-view-tabs a.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel));color:var(--text)}.competition-logo-refresh{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.competition-logo-refresh small{max-width:330px;color:var(--muted);font-size:7px;line-height:1.35;text-align:right}.fixture-admin-list-v2{display:grid;gap:9px}.fixture-admin-card-v2{display:grid;grid-template-columns:minmax(175px,.72fr) minmax(360px,1.5fr) minmax(260px,1fr);align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.fixture-admin-card-v2.has-override{border-color:color-mix(in srgb,var(--gold) 45%,var(--line));background:color-mix(in srgb,var(--gold) 3%,var(--panel))}.fixture-admin-context{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;min-width:0}.fixture-admin-context>img{width:30px;height:30px;object-fit:contain}.fixture-admin-context>span:nth-child(2){display:grid;gap:2px;min-width:0}.fixture-admin-context b{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fixture-admin-context small{font-size:7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fixture-source-state{grid-column:1/-1;justify-self:start;padding:3px 6px;border-radius:999px;font-size:6px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.fixture-source-state.provider{background:color-mix(in srgb,var(--accent) 8%,var(--surface-subtle));color:var(--accent)}.fixture-source-state.override{background:color-mix(in srgb,var(--gold) 12%,var(--surface-subtle));color:var(--gold)}.fixture-admin-matchline{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;min-width:0}.fixture-admin-team{display:flex;align-items:center;gap:8px;min-width:0}.fixture-admin-team.away{justify-content:flex-end;text-align:right}.fixture-admin-team img,.fixture-admin-team>span{width:32px;height:32px;min-width:32px;object-fit:contain}.fixture-admin-team>span{display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle);font-size:7px;font-weight:950;color:var(--muted)}.fixture-admin-team strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fixture-admin-score{display:grid;gap:1px;min-width:62px;text-align:center}.fixture-admin-score strong{font-size:16px;letter-spacing:-.02em}.fixture-admin-score small{font-size:6px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.fixture-admin-actions-v2{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0;flex-wrap:wrap}.fixture-admin-actions-v2 .btn{white-space:nowrap}.fixture-override-note{max-width:180px;color:var(--muted);font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fixture-result-override{position:relative}.fixture-result-override>summary{list-style:none;cursor:pointer;min-height:34px;display:inline-flex;align-items:center;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-subtle);font-size:8px;font-weight:900}.fixture-result-override>summary::-webkit-details-marker{display:none}.fixture-result-override[open]>summary{border-color:var(--accent)}.fixture-result-override form{position:absolute;z-index:30;right:0;top:calc(100% + 6px);display:grid;grid-template-columns:minmax(90px,1fr) auto minmax(90px,1fr) auto;align-items:end;gap:8px;width:min(520px,80vw);padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:0 16px 36px rgba(0,0,0,.15)}.fixture-result-override label{display:grid;gap:4px}.fixture-result-override label>span{font-size:7px;color:var(--muted)}.fixture-result-override input{width:100%;min-height:36px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle);color:var(--text);font:inherit;font-size:9px}.fixture-result-override .fixture-override-reason{grid-column:1/4}.fixture-result-override .fixture-override-reason input{min-width:220px}
@media(max-width:1050px){.fixture-admin-card-v2{grid-template-columns:minmax(150px,.65fr) minmax(330px,1.35fr)}.fixture-admin-actions-v2{grid-column:1/-1;justify-content:flex-start;border-top:1px solid var(--line);padding-top:9px}.fixture-admin-toolbar{display:grid}.competition-logo-refresh{justify-content:flex-start}.competition-logo-refresh small{text-align:left}}
@media(max-width:700px){.fixture-admin-card-v2{grid-template-columns:1fr}.fixture-admin-context{grid-template-columns:30px minmax(0,1fr) auto}.fixture-source-state{grid-column:3;grid-row:1}.fixture-admin-actions-v2{grid-column:auto}.fixture-admin-matchline{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:7px}.fixture-admin-team strong{font-size:8px}.fixture-result-override form{position:static;width:100%;margin-top:7px;grid-template-columns:1fr auto 1fr}.fixture-result-override .fixture-override-reason{grid-column:1/-1}.fixture-result-override form>.btn{grid-column:1/-1}.competition-logo-refresh{display:grid;justify-items:start}.competition-logo-refresh small{max-width:none}}
.team-directory-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.team-directory-tools .team-directory-search{margin-top:0}.team-directory-tools form{flex:0 0 auto}@media(max-width:620px){.team-directory-tools{display:grid}.team-directory-tools .team-directory-search{width:100%}.team-directory-tools .btn{width:100%}}
.fixture-admin-pager{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 0 2px}.fixture-admin-pager>span{font-size:8px;color:var(--muted)}

/* 1.4.65 public competition browsing */
.match-competition-tabs{margin:0 0 16px}.centre-fixture{position:relative}.centre-competition{position:absolute;left:14px;bottom:6px;font-size:6px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.player-avatar.club-fallback img,.player-profile-avatar.club-fallback img{object-fit:contain;padding:8%;background:var(--surface-subtle)}
@media(max-width:700px){.match-competition-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.match-competition-tabs .player-competition-tab:last-child{grid-column:1/-1}.centre-competition{display:none}}


/* 1.4.67 EFL user-facing visibility switch */
.efl-user-visibility{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;margin:1rem 0 1.1rem;padding:1.1rem 1.2rem;border:1px solid var(--line,#d7ddd6);border-radius:16px;background:var(--panel-soft,#f3f6f1)}
.efl-user-visibility.is-visible{box-shadow:inset 4px 0 0 #177d5b}
.efl-user-visibility.is-hidden{box-shadow:inset 4px 0 0 #9a6d10}
.efl-user-visibility h3{margin:.15rem 0 .3rem;font-size:1.15rem}
.efl-user-visibility p{margin:0;max-width:760px;color:var(--muted,#68736c)}
.efl-user-visibility-button{min-width:220px;min-height:52px;font-size:1rem;font-weight:800;white-space:nowrap}
@media (max-width:720px){.efl-user-visibility{align-items:stretch;flex-direction:column}.efl-user-visibility form,.efl-user-visibility-button{width:100%}}

/* Staged-sync diagnostics */
.sync-diagnostic-callout{display:grid;gap:.2rem;margin:.1rem 0 .2rem;padding:.58rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle);font-size:12px;line-height:1.4}.sync-diagnostic-callout[hidden]{display:none}.sync-diagnostic-callout.info{border-color:var(--line);background:transparent}.sync-diagnostic-callout.info .sync-diagnostic-title{color:var(--muted);font-weight:700}.sync-diagnostic-callout.info .sync-diagnostic-message{color:var(--text)}.sync-diagnostic-callout.error{padding:.72rem .8rem;border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--panel))}.sync-diagnostic-title{color:var(--text)}.sync-diagnostic-callout.error .sync-diagnostic-title,.sync-diagnostic-callout.error .sync-diagnostic-message{color:var(--danger)}.sync-diagnostic-message{overflow-wrap:anywhere}.sync-diagnostic-meta{color:var(--muted)}

/* 1.4.78: competition-aware Fantasy selector. Hidden entirely when only one
   supported competition is visible, so the single-competition layout remains
   the normal Fantasy page rather than looking like an empty tab strip. */
.fantasy-competition-switcher{display:flex;gap:10px;margin:-8px 0 24px;overflow-x:auto;padding:2px 1px 8px;scrollbar-width:thin}
.fantasy-competition-switcher>a{display:flex;align-items:center;gap:10px;min-width:190px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--muted);transition:border-color .15s ease,background .15s ease,color .15s ease}
.fantasy-competition-switcher>a:hover{color:var(--text);border-color:color-mix(in srgb,var(--lime) 35%,var(--line))}
.fantasy-competition-switcher>a.active{color:var(--text);border-color:color-mix(in srgb,var(--lime) 65%,var(--line));background:color-mix(in srgb,var(--lime) 8%,var(--panel))}
.fantasy-competition-switcher img{width:30px;height:30px;object-fit:contain;flex:0 0 auto}
.fantasy-competition-switcher span{display:grid;gap:2px;min-width:0}
.fantasy-competition-switcher strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fantasy-competition-switcher small{font-size:10px;color:var(--muted);white-space:nowrap}
.fantasy-competition-context{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:0 0 20px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 88%,transparent)}
.fantasy-competition-context>div{display:grid;gap:3px}.fantasy-competition-context strong{font-size:15px}.fantasy-competition-context small,.fantasy-competition-context p{color:var(--muted);font-size:11px}.fantasy-competition-context p{max-width:650px;margin:0;line-height:1.5}
@media(max-width:760px){.fantasy-competition-switcher>a{min-width:170px}.fantasy-competition-context{align-items:flex-start;flex-direction:column;gap:8px}}

/* Private leagues: competition-scoped creation and standings */
.league-actions-v2 .panel{grid-template-columns:40px minmax(0,1fr) minmax(190px,240px) minmax(180px,220px) auto}
.league-actions-v2 label{display:grid;gap:5px;color:var(--muted);font-size:8px}
.league-actions-v2 input,.league-actions-v2 select{width:100%;min-height:38px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle);color:var(--text);font:inherit;font-size:9px}
.league-actions-v2 button:disabled{opacity:.5;cursor:not-allowed}
.league-competition-unavailable{margin-top:12px;padding:12px 14px}.league-competition-unavailable strong{font-size:9px}.league-competition-unavailable p{margin:3px 0 0;color:var(--muted);font-size:8px}
.league-competition-meta{display:flex;align-items:center;gap:6px;margin-top:7px}.league-competition-chip,.league-competition-hidden{display:inline-flex;align-items:center;width:max-content;padding:4px 7px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 5%,var(--surface-subtle));color:var(--accent);font-size:7px;font-weight:900;letter-spacing:.035em}.league-competition-hidden{border-color:var(--line);background:var(--surface-subtle);color:var(--muted)}
.community-points.pending{color:var(--muted)}
.league-scoring-pending{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 18px;border-top:1px solid var(--line);background:var(--surface-subtle)}.league-scoring-pending strong{font-size:9px}.league-scoring-pending span{max-width:760px;color:var(--muted);font-size:8px;line-height:1.45;text-align:right}
.league-manage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
@media(max-width:1080px){.league-actions-v2 .panel{grid-template-columns:40px 1fr}.league-actions-v2 .panel label,.league-actions-v2 .panel button{grid-column:2}}
@media(max-width:620px){.league-scoring-pending{align-items:flex-start;display:grid}.league-scoring-pending span{text-align:left}}
