/* Championship screens (championship-ui.js): save slots, season hub, round summary and awards. TV tokens from styles.css. */
.front-menu[data-screen^=championship] .fm-content{min-width:0}
.ch-card{position:relative;min-width:0;padding:16px;border:1px solid var(--edge);border-top:3px solid var(--red);border-radius:var(--r-sm);background:var(--panel-grad);box-shadow:var(--shadow-2),inset 0 1px 0 #ffffff0d}
.ch-heading{display:flex;align-items:center;gap:9px;margin:0 0 12px;font:700 15px/1.1 var(--tv-font);letter-spacing:1.2px;text-transform:uppercase;color:var(--ink)}
.ch-heading::before{content:"";flex:none;width:14px;height:4px;background:var(--red)}
h3.ch-heading{font-size:13px}
.ch-card .fm-eyebrow{display:block;margin-bottom:8px;text-transform:uppercase}
.front-menu .ch-card .fm-crest,.front-menu .ch-club .fm-crest,.front-menu .ch-player .fm-crest{width:22px;height:22px}
.ch-club{display:inline-flex;align-items:center;gap:7px;min-width:0}
.ch-club>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-name-short{display:none}
.ch-person{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

/* Form guide: V / E / D squares. */
.ch-form{display:inline-flex;gap:3px;vertical-align:middle}
.ch-form-item{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:var(--r-xs);background:#5b606c;color:#fff;font:700 10px/1 var(--tv-font);font-style:normal}
.ch-form-item[data-result=W]{background:#1f9d61}
.ch-form-item[data-result=L]{background:var(--red)}
.ch-form small{color:var(--muted);font-size:11px}

/* Hub header */
.ch-hub-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 16px;margin-bottom:14px;padding-bottom:14px}
.front-menu .ch-hub-head>.fm-crest{width:52px;height:52px}
.ch-hub-title{display:flex;flex-direction:column;gap:5px;min-width:0}
.ch-hub-title>strong{font:700 24px/1 var(--tv-font);letter-spacing:.4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-hub-meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:12px}
.ch-hub-meta>span+span::before{content:"·";margin-right:12px;color:var(--red)}
.ch-hub-numbers{display:flex;gap:18px}
.ch-hub-stat{display:flex;flex-direction:column;align-items:center;min-width:48px}
.ch-hub-stat b{font:700 26px/1 var(--tv-font);color:var(--gold)}
.ch-hub-stat small{margin-top:4px;color:var(--muted);font:700 10px/1 var(--tv-font);letter-spacing:1.2px;text-transform:uppercase}
.ch-progress{grid-column:1/-1;height:4px;border-radius:2px;background:#ffffff14;overflow:hidden}
.ch-progress::before{content:"";display:block;width:var(--ch-progress,0%);height:100%;background:linear-gradient(90deg,var(--red),var(--gold))}

/* Tabs (LB/RB change them) */
.ch-tabs{display:flex;max-width:100%;overflow-x:auto;scrollbar-width:none;margin-bottom:14px}
.ch-tabs::-webkit-scrollbar{display:none}
.ch-tabs>button{flex:1 0 auto}
.ch-panel{min-width:0}
.ch-overview{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start}
.ch-col{display:grid;gap:14px;min-width:0}
.ch-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ch-two .ch-card{padding:0;border:0;background:none;box-shadow:none}
.ch-leaders-mini>.ch-heading{margin-bottom:6px}

/* Next match card */
.ch-next{border-top-color:var(--gold);background:radial-gradient(ellipse 80% 70% at 50% 0,#e5173a26,transparent 70%),var(--panel-grad)}
.ch-next-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ch-next-round{font:700 12px/1 var(--tv-font);letter-spacing:1.4px;color:var(--gold)}
.ch-next-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;margin:10px 0 6px}
.ch-next-side{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;text-align:center}
.front-menu .ch-next-side .ch-next-crest{width:72px;height:72px;filter:drop-shadow(0 6px 14px #000a)}
.ch-next-side>strong{max-width:100%;font:700 18px/1.1 var(--tv-font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-next-meta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px}
.ch-next-pos{font:700 14px/1 var(--tv-font);color:var(--gold)}
.ch-next-vs{display:flex;flex-direction:column;align-items:center;gap:8px}
.ch-vs{font:italic 900 30px/1 var(--tv-font);color:var(--red)}
.ch-kickoff{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.8px}
.ch-kickoff b{color:var(--ink);font:700 15px/1 var(--tv-font)}
.ch-venue,.ch-first-leg{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 8px;margin:8px 0 0;color:var(--muted);font-size:12px}
.ch-venue b{color:var(--ink);font:700 12px/1 var(--tv-font);letter-spacing:1px;text-transform:uppercase}
.ch-venue[data-home=true] b{color:var(--gold)}
.front-menu .ch-venue .fm-crest{width:18px;height:18px}
.ch-first-leg b{color:var(--gold);font-family:var(--tv-font)}
.ch-champion{flex-wrap:wrap}
.front-menu .ch-champion .fm-crest{width:44px;height:44px}

/* Tables */
.ch-table-scroll{max-width:100%;overflow-x:auto}
.ch-table td,.ch-table th{text-align:center}
.front-menu .ch-table td:nth-child(2),.front-menu .ch-table th:nth-child(2){text-align:center}
.front-menu .ch-table td:nth-child(3){color:var(--ink);font-family:inherit;font-weight:600;text-align:left}
.front-menu .ch-table th[data-col=club]{text-align:left}
.ch-table td[data-col=pts]{color:var(--gold);font:700 13px/1 var(--tv-font)}
.ch-table td[data-col=pos]{font-family:var(--tv-font);font-weight:700;box-shadow:inset 3px 0 0 transparent}
.ch-table tr[data-zone=title] td[data-col=pos]{box-shadow:inset 3px 0 0 var(--gold)}
.ch-table tr[data-zone=continental] td[data-col=pos]{box-shadow:inset 3px 0 0 #3aa0ff}
.ch-table tr[data-zone=cup] td[data-col=pos]{box-shadow:inset 3px 0 0 #1f9d61}
.ch-table tr[data-zone=relegation] td[data-col=pos]{box-shadow:inset 3px 0 0 var(--red)}
.ch-table td[data-col=club]{max-width:210px}
.ch-table .ch-club{max-width:100%}
.ch-move{width:14px;padding-left:0!important;padding-right:0!important;font-size:9px;color:#5b606c}
.ch-move[data-move=up]{color:#3fd08a}.ch-move[data-move=down]{color:var(--red)}
.ch-table.is-compact th[data-col=won],.ch-table.is-compact td[data-col=won],.ch-table.is-compact th[data-col=drawn],.ch-table.is-compact td[data-col=drawn],.ch-table.is-compact th[data-col=lost],.ch-table.is-compact td[data-col=lost],
.ch-table.is-compact th[data-col=for],.ch-table.is-compact td[data-col=for],.ch-table.is-compact th[data-col=against],.ch-table.is-compact td[data-col=against]{display:none}
.ch-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;color:var(--muted);font-size:11px}
.ch-legend-item{display:inline-flex;align-items:center;gap:6px}
.ch-legend-item i{width:10px;height:10px;border-radius:2px;background:var(--gold)}
.ch-legend-item[data-zone=continental] i{background:#3aa0ff}.ch-legend-item[data-zone=cup] i{background:#1f9d61}.ch-legend-item[data-zone=relegation] i{background:var(--red)}

/* Fixtures and goals */
.ch-fixture{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:4px 12px;padding:9px 6px;border-bottom:1px solid var(--edge)}
.ch-fixture:last-child{border-bottom:0}
.ch-fixture.is-your-club{background:linear-gradient(90deg,#e5173a1f,#e5173a05);box-shadow:inset 3px 0 0 var(--red)}
.ch-fixture .ch-home{justify-content:flex-end;text-align:right}
.ch-fixture .ch-home .fm-crest{order:2}
.ch-score{min-width:54px;text-align:center;color:var(--gold);font:700 16px/1 var(--tv-font);letter-spacing:1px}
.ch-fixture-goals{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:4px 20px}
.ch-goals{margin:0;padding:0;list-style:none;display:grid;gap:2px;font-size:11px;color:var(--ink-2)}
.ch-goals[data-side],.ch-fixture-goals>.ch-goals:first-child{text-align:right}
.ch-goals li{display:flex;flex-wrap:wrap;gap:0 5px;align-items:baseline;min-width:0}
.ch-fixture-goals>.ch-goals:first-child li{justify-content:flex-end}
.ch-goals b{color:var(--gold);font-family:var(--tv-font)}
.ch-goals small{color:var(--muted)}
.ch-round-stepper{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;padding:6px;border:1px solid var(--edge);border-radius:var(--r-sm);background:var(--well)}
.ch-round-stepper:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.ch-round-label{font:700 16px/1 var(--tv-font);letter-spacing:1px;text-transform:uppercase}
.ch-step{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--btn);color:var(--ink);font-size:14px;cursor:pointer}
.ch-step:disabled{opacity:.35;cursor:default}

/* Player lists, team of the round */
.ch-player-list{margin:0;padding:0;list-style:none;display:grid;gap:2px;counter-reset:ch}
.ch-player{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:7px 4px;border-bottom:1px solid #ffffff0f;font-size:13px}
.ch-player::before{counter-increment:ch;content:counter(ch);min-width:16px;color:var(--muted);font:700 11px/1 var(--tv-font);text-align:right}
.ch-months .ch-player{grid-template-columns:auto auto minmax(0,1fr) auto auto}
.ch-months .ch-player::before{display:none}
.ch-month{min-width:70px;color:var(--gold);font:700 11px/1 var(--tv-font);letter-spacing:1px;text-transform:uppercase}
.ch-pos-tag{color:var(--muted);font:700 9px/1 var(--tv-font);letter-spacing:1px}
.ch-stat{display:inline-flex;align-items:baseline;gap:4px;margin:0}
.ch-stat b{color:var(--gold);font:700 17px/1 var(--tv-font)}
.ch-stat small{color:var(--muted);font-size:10px}
.ch-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ch-pitch{display:grid;gap:10px;padding:14px 8px;border-radius:var(--r-sm);background:repeating-linear-gradient(0deg,#173826 0 22px,#143220 22px 44px);box-shadow:inset 0 0 0 2px #ffffff1a}
.ch-pitch-line{display:flex;justify-content:space-around;gap:6px}
.ch-pitch-player{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;flex:1;max-width:120px;text-align:center;font-size:11px;text-shadow:0 1px 2px #000}
.ch-pitch-player>.ch-person{max-width:100%}
.ch-rating{padding:2px 5px;border-radius:var(--r-xs);background:var(--gold);color:var(--gold-ink);font:700 10px/1 var(--tv-font)}

/* Save slots and new season */
.ch-slots{margin:10px 0 18px}
.ch-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ch-slot{display:flex;flex-direction:column;gap:8px;border-top-color:var(--line)}
.ch-slot.is-selected{border-top-color:var(--red)}
.ch-slot[data-empty=true]{background:linear-gradient(160deg,#16191ff0,#0e1015f5)}
.ch-slot-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ch-slot-top .fm-eyebrow{margin:0}
.ch-slot-badge{background:var(--red);color:#fff}
.ch-slot-club{display:flex;align-items:center;gap:10px;min-width:0}
.front-menu .ch-slot-club .fm-crest{width:40px;height:40px}
.ch-slot-club>div{display:flex;flex-direction:column;min-width:0}
.ch-slot-name{font:700 18px/1.1 var(--tv-font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-slot-league{color:var(--muted);font-size:12px}
.ch-slot-progress{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0;color:var(--ink-2);font-size:12px}
.ch-slot-position b{margin-right:6px;color:var(--gold);font:700 18px/1 var(--tv-font)}
.ch-slot-actions{display:flex;gap:8px;margin-top:auto}
.ch-slot-actions .fm-button{flex:1;min-width:0}
.ch-delete[data-confirm]{border-color:var(--red);background:linear-gradient(180deg,#5a0b19,#2c060d);color:#fff}
.ch-slot .fm-button.is-current{border-color:var(--red)}
.ch-config{display:flex;flex-direction:column;gap:12px}
.ch-config>.ch-heading{margin:0}
.ch-choice{display:grid;gap:6px}
.ch-choice-label{color:var(--muted);font:700 11px/1 var(--tv-font);letter-spacing:1.4px;text-transform:uppercase}
.ch-seg{display:grid;width:100%}
.ch-seg>button{white-space:normal;line-height:1.15;font:700 12px/1.15 var(--tv-font);letter-spacing:.8px;text-transform:uppercase}
.ch-tabs>button{font-family:var(--tv-font);font-weight:700;letter-spacing:1px}
.ch-replace{margin:0;color:var(--warn)}

/* Round summary */
.ch-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ch-summary-match{grid-column:1/-1;text-align:center;border-top-color:var(--gold)}
.ch-summary-match[data-outcome=W]{border-top-color:#1f9d61}.ch-summary-match[data-outcome=L]{border-top-color:var(--red)}
.ch-summary-score{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;margin-bottom:10px}
.ch-summary-team{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.front-menu .ch-summary-team .fm-crest{width:78px;height:78px}
.ch-summary-team strong{max-width:100%;font:700 20px/1.1 var(--tv-font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-summary .fm-big-score{font-size:64px}
.ch-move-line{display:flex;align-items:center;gap:14px;font:700 40px/1 var(--tv-font)}
.ch-move-from{color:var(--muted)}
.ch-move-arrow{font-size:24px;color:var(--muted)}
.ch-move-line[data-move=up] .ch-move-arrow,.ch-move-line[data-move=up] .ch-move-to{color:#3fd08a}
.ch-move-line[data-move=down] .ch-move-arrow,.ch-move-line[data-move=down] .ch-move-to{color:var(--red-hi)}
.ch-move-points{display:flex;align-items:baseline;gap:6px;margin:10px 0 8px}
.ch-move-points b{color:var(--gold);font:700 22px/1 var(--tv-font)}
.ch-move-points span{color:var(--muted);text-transform:uppercase;font-size:11px}
.ch-highlight-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.ch-highlight-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px}
.ch-highlight-list .ch-fixture{flex:1 1 100%;padding:4px 0;border:0}
.ch-highlight-tag{padding:4px 7px 3px;border-radius:var(--r-xs);background:var(--red);color:#fff;font:700 10px/1 var(--tv-font);letter-spacing:1px;text-transform:uppercase}
.ch-highlight-list li[data-kind=leader] .ch-highlight-tag,.ch-highlight-list li[data-kind=hat-trick] .ch-highlight-tag{background:var(--gold);color:var(--gold-ink)}
.ch-highlight-list b{color:var(--gold);font-family:var(--tv-font)}

/* Awards night */
.ch-awards{display:grid;gap:14px}
.ch-trophy{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:26px 16px 22px;overflow:hidden;border:1px solid #d7b7677d;border-radius:var(--r-sm);background:radial-gradient(ellipse 60% 70% at 50% 35%,#ffc42e33,transparent 70%),linear-gradient(160deg,#2b2718f2,#15130df5);text-align:center}
.ch-trophy-glow{position:absolute;inset:-40%;background:conic-gradient(from 0deg,#ffc42e00,#ffc42e22,#ffc42e00 25%,#ffc42e22 50%,#ffc42e00 75%);animation:ch-rays 18s linear infinite;pointer-events:none}
.ch-trophy>*:not(.ch-trophy-glow){position:relative}
.front-menu .ch-trophy .ch-trophy-cup{width:110px;height:110px;color:var(--gold);stroke:var(--gold);fill:none;stroke-width:1.4;filter:drop-shadow(0 0 24px #ffc42e80);animation:ch-rise .9s var(--ease-snap) both}
.front-menu .ch-trophy .ch-trophy-crest{width:64px;height:64px;margin-top:-6px}
.ch-trophy-title{font:900 30px/1.1 var(--tv-font);letter-spacing:.5px;color:var(--gold)}
.ch-campaign-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.front-menu .ch-campaign-line .fm-crest{width:40px;height:40px}
.ch-campaign-pos{color:var(--gold);font:700 34px/1 var(--tv-font)}
.ch-campaign-line strong{font:700 18px/1.1 var(--tv-font)}
.ch-campaign[data-outcome=relegation] .ch-campaign-pos{color:var(--red-hi)}
.ch-campaign-record{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0}
.ch-campaign-record span{display:inline-flex;align-items:baseline;gap:5px}
.ch-campaign-record b{font:700 18px/1 var(--tv-font)}
.ch-campaign-record small{color:var(--muted);font:700 10px/1 var(--tv-font);letter-spacing:1px}
.ch-award-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ch-award{border-top-color:var(--gold);display:flex;flex-direction:column;gap:8px}
.ch-award-who{display:flex;align-items:center;gap:8px;min-width:0}
.ch-award-name{font:700 16px/1.1 var(--tv-font)}
@keyframes ch-rays{to{transform:rotate(1turn)}}
@keyframes ch-rise{from{opacity:0;transform:translateY(24px) scale(.8)}to{opacity:1;transform:none}}

/* The main action stays reachable at the bottom of long championship screens. */
.front-menu[data-screen^=championship] .ch-hub-head~.fm-actions,.front-menu:is([data-screen=championship-round],[data-screen=championship-awards]) .fm-content>.fm-actions{position:sticky;bottom:0;z-index:3;margin-top:8px;padding:18px 0 max(12px,env(safe-area-inset-bottom));background:linear-gradient(0deg,var(--bg) 45%,#07080b00)}
.front-menu:is([data-screen=championship],[data-screen=championship-round],[data-screen=championship-awards]){scroll-padding-bottom:100px}

@media(max-width:1100px){.ch-award-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .ch-overview,.ch-stats,.ch-summary{grid-template-columns:minmax(0,1fr)}
  .ch-slot-grid{grid-template-columns:minmax(0,1fr)}
  .ch-slot{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .ch-slot>*{grid-column:1/-1}
}
@media(max-width:700px){
  .ch-table th[data-col=won],.ch-table td[data-col=won],.ch-table th[data-col=drawn],.ch-table td[data-col=drawn],.ch-table th[data-col=lost],.ch-table td[data-col=lost],
  .ch-table th[data-col=for],.ch-table td[data-col=for],.ch-table th[data-col=against],.ch-table td[data-col=against]{display:none}
  .ch-hub-head{grid-template-columns:auto minmax(0,1fr)}
  .ch-hub-numbers{grid-column:1/-1;justify-content:space-around}
}
@media(max-width:600px){
  .ch-name-full{display:none}.ch-name-short{display:inline}
  .ch-hub-title>strong{font-size:20px}
  .front-menu .ch-hub-head>.fm-crest{width:40px;height:40px}
  .ch-card{padding:12px}
  .ch-two{grid-template-columns:minmax(0,1fr)}
  .ch-fixture{gap:4px 8px;padding:8px 2px}
  .ch-score{min-width:44px;font-size:15px}
  .front-menu .ch-next-side .ch-next-crest{width:54px;height:54px}
  .ch-next-side>strong{font-size:15px}
  .ch-vs{font-size:22px}
  .ch-summary .fm-big-score{font-size:44px}
  .front-menu .ch-summary-team .fm-crest{width:56px;height:56px}
  .ch-summary-team strong{font-size:15px}
  .ch-award-grid{grid-template-columns:minmax(0,1fr)}
  .ch-trophy-title{font-size:23px}
  .ch-form-item{width:15px;height:15px;font-size:9px}
  .ch-table td[data-col=club]{max-width:96px}
  .ch-tabs>button{padding:0 11px;font-size:12px}
  .ch-pitch-player{font-size:10px}
  .ch-seg>button{padding:4px 6px;font-size:11px;letter-spacing:.4px}
}
@media(max-width:600px){
  .ch-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);overflow:visible}
  .ch-tabs>button{min-width:0;padding:0 3px;font-size:10px;letter-spacing:.2px;white-space:normal;overflow-wrap:anywhere;line-height:1.1}
  .front-menu[data-screen^=championship] .fm-content>.fm-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:14px}
  .front-menu[data-screen^=championship] .fm-content>.fm-actions .fm-button{min-height:46px;padding:8px 10px;font-size:11px}
  .front-menu[data-screen^=championship] .fm-content>.fm-actions .fm-primary{grid-column:1/-1}
  .front-menu[data-screen=championship] .ch-hub-head~.fm-actions{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
  .front-menu[data-screen=championship] .ch-hub-head~.fm-actions .fm-primary{grid-column:auto}
}
@media(max-height:500px){.front-menu[data-screen^=championship] .fm-content>.fm-actions{padding-top:10px}.front-menu[data-screen^=championship] .fm-content>.fm-actions .fm-button{min-height:44px;padding-top:6px;padding-bottom:6px}}
@media(max-width:360px){.ch-table th[data-col=form],.ch-table td[data-col=form]{display:none}}
@media(prefers-reduced-motion:reduce){.ch-trophy-glow,.ch-trophy-cup{animation:none}}
