/* Parchment, club green and tactile gold, adapted from Betcomm's CoC theme.
   Menus use light surfaces; the pitch keeps its dark, high-contrast play area. */
:root{--bg:#e8dcc8;--panel:#f5edd8;--cream:#2c1810;--muted:#655441;--line:#c8b898;--lime:#2d5a27;--blue:#326792;--club:#2d5a27;--gold:#dabb5c;--goldEdge:#8b7333;--paper:#f8f2e4}
body{background:var(--bg);background-image:url("data:image/svg+xml,%3Csvg width='180' height='180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E")}
header{max-width:none;background:var(--club);color:#f5edd8;border-bottom:3px solid #163c1c;box-shadow:inset 0 -1px #6b8a4c;padding:14px max(20px,calc((100vw - 920px)/2));gap:12px}
.brand{display:flex;align-items:center;gap:9px;letter-spacing:-.5px;line-height:1;white-space:normal;color:#f5edd8;font-size:28px;min-width:0}
.brand .brandName{color:inherit;margin:0;display:block;max-width:180px}.brandCrest{width:32px;height:38px;flex-shrink:0}
#profileBtn{border-radius:7px;background:#f5edd8;color:var(--club);padding:11px 14px;border:1px solid #c8b898;box-shadow:0 2px 0 #163c1c;font-size:12px}
header .soundToggle{color:#f5edd8;border-color:#76956b;border-radius:7px;min-height:40px}header .soundToggle[aria-pressed=true]{color:#f0d484;border-color:#c8a84e}header .icon{color:#f5edd8;border-color:#76956b;min-width:36px;min-height:36px;border-radius:7px}
main{max-width:800px;padding:28px 24px 24px}h1,h2{letter-spacing:-.5px}h1{font-size:clamp(48px,8vw,76px);text-transform:none;line-height:.98;margin:18px 0}h1 em{color:var(--club)}.eyebrow{font-size:10px;letter-spacing:1.5px}.intro{font-size:14px;max-width:430px}.textbtn{color:var(--lime);font-size:12px;font-weight:700;min-height:44px;text-align:left}.textbtn:hover{text-decoration:underline}
.primary,.secondary{min-height:48px;border:2px solid var(--goldEdge);border-radius:9px;padding:15px 18px;letter-spacing:.2px;background:linear-gradient(#e6cf83,#dabb5c);color:#2c1810;font-weight:800;font-size:14px;box-shadow:0 3px 0 var(--goldEdge),inset 0 1px #fff5;transition:transform .1s,box-shadow .1s}.primary:active,.secondary:active{transform:translateY(2px);box-shadow:0 1px 0 var(--goldEdge)}.secondary{width:100%;background:var(--panel);border-color:var(--club);box-shadow:0 3px 0 #20461f;color:var(--club)}
.home{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:0 26px}.home>.eyebrow,.home>h1,.home>.intro{grid-column:1}.heroClock{position:static;grid-column:2;grid-row:1/5;align-self:center;width:auto;padding:22px 18px;transform:none;background:var(--club);border:2px solid #163c1c;border-radius:12px;box-shadow:0 4px 0 #b7a380,inset 0 1px #fff2;color:#f5edd8}.heroClock>span,.heroClock small{color:#e1dcc7}.heroClock strong{font-size:34px;letter-spacing:-2px}.heroClock strong span{color:var(--gold)}.heroClock .clockline{background:linear-gradient(to right,#6a815c 65%,var(--gold) 65% 70%,#6a815c 70%)}
.setup{grid-column:1/-1;max-width:none;margin-top:20px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:0 3px 0 #c8b898,inset 0 1px #fff8}.setupTitle{font-size:24px;text-transform:none;margin:0 0 16px}.mode{gap:8px}.mode button{background:var(--paper);border:1px solid var(--line);border-radius:7px;font-size:12px;min-height:66px;padding:14px 12px;color:var(--cream)}.mode button.selected{background:#d4e6c8;color:var(--club);border:2px solid #4a7c3f;padding:13px 11px;box-shadow:inset 0 1px #fff8}.mode button span{font-size:11px}.mode button[data-mode=online]{border-color:var(--line)}.mode button[data-mode=online].selected{border-color:#4a7c3f}
.names label,.onlineLabel{font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted)}input:not([type=checkbox]),select{background:var(--paper);color:var(--cream);border:1px solid var(--line);border-radius:7px;padding:12px;min-height:46px}input:not([type=checkbox]){margin-top:6px}select{max-width:100%;font-size:13px}.durationLabel{margin:18px 0 24px;font-size:13px}.hint{text-align:left;font-size:12px;line-height:1.5}.savedHistory,#leaguesBtn{grid-column:1/-1}.savedHistory{margin:26px 0 0}.savedHistory summary{min-height:44px;line-height:44px}.homebottom{display:none}
#profilePanel,#leaguePanel{max-width:660px;margin:auto}.playerHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:22px 24px;background:var(--club);border:2px solid #163c1c;border-radius:12px 12px 0 0;box-shadow:inset 0 1px #fff2;color:#f5edd8}.playerHeader .eyebrow{color:#ead083}.playerHeader .eyebrow span{display:block;font:12px 'DM Sans',sans-serif;letter-spacing:0;margin-top:6px;color:#d4e6c8}#profilePanel .playerHeader h2{font-size:42px;text-transform:none;margin:8px 0 0;overflow-wrap:anywhere}.playerHeader .textbtn{color:#f5edd8;white-space:nowrap;border:1px solid #76956b;border-radius:7px;padding:10px 12px}
.personalStats{gap:0;margin:0 0 26px;background:var(--panel);border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;padding:12px 4px;box-shadow:0 3px 0 #c8b898}.personalStats>div{background:none;border-radius:0;padding:4px 6px;font-size:11px;border-right:1px solid var(--line)}.personalStats>div:last-child{border-right:0}.personalStats b{color:var(--club);font:700 28px var(--font-display);margin-bottom:3px}.sectionHeading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:22px 0 6px}#profilePanel .sectionHeading h3{margin:0;font-size:18px}.sectionHeading .textbtn{white-space:nowrap;padding:8px 0}
.nextFixture{border:2px solid var(--goldEdge);border-radius:10px;background:var(--panel);padding:20px;box-shadow:0 3px 0 #baa570}.nextFixture .personalMatch{border:0;padding:0;align-items:flex-start}.nextFixture .personalMatch strong{font:700 26px var(--font-display);display:block;line-height:1.15}.nextFixture .personalMatch strong span{font:13px 'DM Sans',sans-serif;color:var(--muted)}.nextFixture .personalMatch small{font-size:12px;line-height:1.6}.nextFixture .textbtn{background:var(--club);color:#f5edd8;border:1px solid #163c1c;border-radius:7px;padding:12px;box-shadow:0 2px 0 #163c1c;min-width:92px;text-align:center}.futureFixture{border-color:var(--line);box-shadow:0 3px 0 #c8b898}.expiredFixture{border-color:#a8622e}.quietState{border-left:3px solid var(--club);padding:10px 18px;margin:12px 0}.quietState strong{font-size:14px}.quietState p{font-size:12px;color:var(--muted);margin:5px 0}
.upcomingList{margin-top:14px}.upcomingList summary,.personalHistory summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--line);color:var(--club);font-weight:700}.upcomingList summary:before,.personalHistory summary:before{content:'+';font-size:20px;margin-right:10px}.upcomingList[open] summary:before,.personalHistory[open] summary:before{content:'−'}.upcomingList summary span,.personalHistory summary span{margin-left:auto;font-weight:400;color:var(--muted)}.personalMatch{padding:16px 2px;min-width:0}.personalMatch>div{min-width:0;overflow-wrap:anywhere}.personalMatch small{line-height:1.5;font-size:12px}.personalMatch strong{font-size:14px}.personalMatch .textbtn{flex-shrink:0}
.completedLeagueFilter{font-size:12px;margin:4px 0 14px;justify-content:flex-end;gap:8px}.completedLeagueFilter input{appearance:none;-webkit-appearance:none;width:32px;height:19px;background:#c8b898;border:1px solid #9e8b6d;border-radius:12px;margin:0;position:relative;cursor:pointer}.completedLeagueFilter input:before{content:'';position:absolute;left:2px;top:2px;width:13px;height:13px;border-radius:50%;background:var(--paper)}.completedLeagueFilter input:checked{background:var(--club);border-color:var(--club)}.completedLeagueFilter input:checked:before{left:15px}
.personalLeagues{gap:10px;margin:10px 0 24px}.personalLeague{display:flex;align-items:center;gap:14px;min-width:0;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 0 #c8b898;transition:border-color .15s}.personalLeague:hover{border-color:var(--club)}.leagueCrest{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:48px;clip-path:polygon(0 0,100% 0,100% 66%,50% 100%,0 66%);background:var(--club);color:var(--gold);font:700 18px var(--font-display);padding-bottom:5px}.leagueCardBody{flex:1;min-width:0}.personalLeague strong{display:block;font-size:16px;overflow-wrap:anywhere}.personalLeague small{font-size:12px;line-height:1.4;margin:4px 0}.leagueProgress{font-size:11px;color:var(--club)}.leagueArrow{font-size:28px;color:var(--club);flex-shrink:0}.personalActions{justify-content:flex-start;margin:16px 0}.personalActions .textbtn{color:var(--muted)}
.championshipBanner{background:var(--club);color:#f5edd8;border:2px solid #163c1c;border-radius:10px;box-shadow:0 3px 0 #b7a380}.championshipBanner span,.championshipBanner small{color:#e0e7cf}.championshipBanner strong{color:#f0d484}.finishedChampionship{border-color:var(--goldEdge)}.leagueTable{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:6px 12px}.leagueTable td,.leagueTable th{font-size:12px}.leagueTable tbody tr:last-child td{border-bottom:0}.leagueFixture{padding:18px 0}.fixtureActions{gap:12px;flex-wrap:wrap}.fixtureActions [data-fixture]{background:var(--club);color:#f5edd8;border-radius:7px;padding:10px 14px;border:1px solid #163c1c;box-shadow:0 2px 0 #163c1c}.overdueFixture small{color:#8c4b1c}.renamePlayer summary{text-decoration:none;min-height:44px;line-height:44px}.deadlineActions select{background:var(--paper);color:var(--cream)}.joinRow input{font-size:18px;letter-spacing:2px}.joinRow button{flex-shrink:0}
footer{max-width:800px;margin:12px auto;padding:18px 24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:11px}#appUpdateButton{margin-left:auto;color:var(--muted)}dialog{box-shadow:0 16px 60px #0004}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #326792;outline-offset:3px}
body:has(#match:not([hidden])){--bg:#111b18;--panel:#1b2923;--cream:#f5edd8;--muted:#b2bdae;--line:#465544;--lime:#e7c56b;--blue:#a3ccec;background:#111b18}#match .primary{font-size:13px}#match .scoreboard{background:#1b2923;border:1px solid #465544;border-radius:10px;padding:14px 16px;margin-bottom:12px}#match .scoreboard strong{font-size:54px}#match #stage{border-radius:10px}#match .choice{border-radius:7px;min-height:76px}#match .timer{border-radius:8px}#match .textbtn{color:var(--muted)}
@media(max-width:600px){header{padding:12px 16px;gap:8px;flex-wrap:wrap}.brand{font-size:23px;flex:1}.brand .brandName{display:block!important;max-width:none}.brandCrest{width:27px;height:32px}#profileBtn{font-size:11px;padding:10px;margin-left:0}.soundToggle{margin-left:auto}main{padding:22px 16px}.home{grid-template-columns:1fr}.home>.eyebrow,.home>h1,.home>.intro,.heroClock{grid-column:1}.heroClock{grid-row:auto;display:none}.home h1{font-size:52px}.setup{padding:18px;margin-top:16px}.mode button{flex:1 1 100%;display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:12px}.mode button.selected{padding:11px}.mode button span{margin:0 0 0 8px;font-size:11px;text-align:right}.playerHeader{padding:18px}#profilePanel .playerHeader h2{font-size:36px}.nextFixture{padding:18px}.nextFixture .personalMatch{flex-direction:column;gap:14px}.nextFixture .textbtn{width:100%}.sectionHeading .textbtn{font-size:11px}.personalLeague{padding:14px;gap:12px}footer{padding:16px}#match .scoreboard{padding:12px 8px}#match .scoreboard strong{font-size:46px}#match .scoreboard i{margin:0 6px}#leaguePanel>.eyebrow{line-height:1.6}}
@media(prefers-reduced-motion:reduce){button,.primary,.secondary{transition:none}.primary:active,.secondary:active{transform:none}}

.clubLinks{background:var(--club);padding:0 24px 8px;border-left:2px solid #163c1c;border-right:2px solid #163c1c}.clubLinks .textbtn{color:#f5edd8}.requestBadge{display:inline-block;background:var(--gold);color:#2c1810;padding:3px 7px;border-radius:5px;font-size:11px;margin-left:6px}.friendRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.friendRow small,.friendPick small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.friendActions{display:flex;gap:6px;flex-shrink:0}.friendRow strong{overflow-wrap:anywhere}.friendRow>div:first-child{min-width:0}.leagueFriends{margin:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-bottom:10px}.friendPick{display:flex;align-items:center;gap:12px;padding:12px 0;cursor:pointer}.friendPick input{width:22px;height:22px;accent-color:var(--club);margin:0;flex-shrink:0}.friendPick strong{font-size:14px}.friendPick span{min-width:0;overflow-wrap:anywhere}#friendRequestForm{background:var(--panel);border:1px solid var(--line);padding:18px;border-radius:10px}#friendRequestForm .onlineLabel{margin:0 0 16px}@media(max-width:420px){.friendRow{flex-wrap:wrap}.friendActions{margin-left:auto}.clubLinks{padding:0 18px 8px}}

.googleAuth{margin:20px 0;padding-bottom:20px;border-bottom:1px solid var(--line)}.googleAuth #googleButton{min-height:44px}.googleAuth .hint{margin-bottom:0}

/* Admission is the first action on an invitation, above sharing and standings. */
.leagueAdmission,.leagueCodeEntry{background:#f8f2e4;color:#2c1810;border:2px solid #8b7333;border-radius:12px;padding:22px;margin:20px 0 26px;box-shadow:0 3px 0 #c8b898}.leagueAdmission h3,.leagueCodeEntry h2{font-size:26px;margin:10px 0 12px;line-height:1.15}.leagueAdmission>p,.leagueCodeEntry>p{font-size:14px;line-height:1.5;margin:0 0 20px}.leagueAdmission label,.leagueCodeEntry label{display:block;font-size:15px;font-weight:700;color:#2c1810;margin-bottom:8px}#leagueJoinName,#leagueCode{display:block;width:100%;min-height:56px;background:#fffdf6;color:#261d14;border:2px solid #8b7958;padding:14px;font-size:18px;border-radius:8px}#leagueJoinName::placeholder,#leagueCode::placeholder{color:#71614d;opacity:1}#leagueJoinName:focus,#leagueCode:focus{border-color:#2d5a27;outline:3px solid #2d5a272b;outline-offset:2px}#leagueJoinName[aria-invalid=true]{border-color:#a43425}.leagueAdmission .hint{color:#655441;font-size:12px;margin:10px 0}.leagueJoinStatus{font-size:14px;color:#8b291b;margin:8px 0;line-height:1.5}.leagueJoinStatus:empty{display:none}.leagueAdmission .primary{margin-top:12px;min-height:54px;font-size:14px}.leagueAdmissionClosed{border-color:#b5a27b;box-shadow:none}.leagueCodeEntry{border-color:#b5a27b;box-shadow:none}.leagueCodeEntry .joinRow{margin:0;align-items:stretch}.leagueCodeEntry .joinRow input{margin:0}.leagueCodeEntry .joinRow button{width:146px;min-height:56px;padding:14px;font-size:12px}.leagueCodeEntry #leagueCode{font-size:18px;letter-spacing:2px}#leaguePanel .leagueAdmission~.leagueTable{margin-top:18px}@media(max-width:480px){.leagueAdmission,.leagueCodeEntry{padding:18px}.leagueCodeEntry .joinRow{flex-direction:column}.leagueCodeEntry .joinRow button{width:100%}.leagueAdmission h3,.leagueCodeEntry h2{font-size:25px}}
