/* C-010: new club/season areas only; broadcast, log and MATCH selectors remain with their owner. */
/* League entry and the full-time handoff (F-014, finished per docs/04 #league-journey-finish). The frame,
   crest tiles, CTA buttons and the champion stage are shared from journey.css. */
.show-league-home .watch-layout,.show-league-home #seasonStrip{display:none}
.league-home{display:grid;gap:var(--sp-5)}
.home-frame{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:var(--sp-7);align-items:center;padding:56px 56px 52px;min-height:420px}
.home-frame.is-solo{grid-template-columns:minmax(0,1fr)}
.home-frame[hidden],.home-champion[hidden],.ticket[hidden],.home-progress[hidden]{display:none}
.home-copy{display:grid;gap:var(--sp-4);align-content:center;min-width:0}
.home-kicker{display:flex;align-items:center;gap:var(--sp-3);font:400 var(--fs-13)/1 var(--font-display);letter-spacing:.14em;color:var(--color-accent-dark)}
.home-kicker i{width:8px;height:8px;border-radius:50%;background:var(--color-signal);box-shadow:0 0 0 4px #ff3c2e2e}
.league-home h1{margin:0;font:700 clamp(30px,3.6vw,48px)/1.22 var(--font-emphasis);letter-spacing:var(--ls-tight);text-wrap:balance;overflow-wrap:anywhere;color:#fff}
.home-intro{margin:0;max-width:32em;color:var(--color-stage-muted);font-size:var(--fs-16);line-height:var(--lh-read)}
.home-progress{font-size:var(--fs-13);line-height:var(--lh-ui);color:var(--color-stage-ink);overflow-wrap:anywhere}
.home-progress.is-alert{padding:var(--sp-3) var(--sp-4);background:#ff3c2e1f;border:1px solid #ff3c2e59;border-radius:var(--r-2)}
.home-cta{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-2)}
.home-cta .journey-primary{min-height:52px;padding-inline:var(--sp-6);font-size:var(--fs-16)}
.home-cta .journey-secondary{min-height:52px}

/* 오른쪽 방송 카드: 다음 대진 / 고를 수 있는 구단 + 내 구단 만들기 */
.ticket{position:relative;display:grid;gap:var(--sp-4);padding:var(--sp-5);min-width:0;background:#0b1326d9;border:1px solid var(--color-stage-line);border-radius:var(--r-3);backdrop-filter:blur(6px);box-shadow:0 20px 50px #00000059}
.ticket-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap}
.ticket-head b{font:400 var(--fs-13)/1 var(--font-display);letter-spacing:.1em;color:#fff}
.ticket-head span{font-size:var(--fs-12);color:var(--color-stage-muted)}
.ticket-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--sp-3)}
.ticket-club{display:grid;grid-template-rows:auto minmax(2.6em,auto) auto;align-content:start;justify-items:center;gap:var(--sp-2);text-align:center;min-width:0}
.ticket-club .crest-tile{width:72px;height:72px}
.ticket-club b{align-self:center;font:700 var(--fs-16)/1.3 var(--font-emphasis);color:#fff;overflow-wrap:anywhere}
.ticket-club i{display:block;width:44px;height:4px;border-radius:2px;background:var(--club,var(--color-stage-line))}
.ticket-vs{font:400 var(--fs-23)/1 var(--font-display);color:var(--color-stage-muted)}
.ticket-foot{display:grid;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--color-stage-line)}
.ticket-foot p{margin:0;display:flex;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-12);color:var(--color-stage-muted)}
.ticket-foot p b{color:#fff;font-weight:600;white-space:nowrap}
.ticket-segs{display:grid;grid-template-columns:repeat(21,1fr) 1.6fr 2.2fr;gap:3px;height:8px;margin:0;padding:0;list-style:none}
.ticket-segs li{border-radius:2px;background:#ffffff1f}
.ticket-segs li.done{background:var(--color-stage-ink)}
.ticket-segs li.next{background:var(--color-accent);box-shadow:0 0 10px var(--color-accent)}
.roster{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--sp-3) var(--sp-2)}
.roster figure{margin:0;display:grid;justify-items:center;gap:6px;min-width:0}
.roster .crest-tile{width:52px;height:52px;font-size:var(--fs-19)}
.roster figcaption{max-width:100%;font-size:var(--fs-11);line-height:1.3;color:var(--color-stage-muted);text-align:center;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.roster-new{grid-column:span 2;display:grid;place-content:center;justify-items:center;gap:2px;min-height:76px;padding:var(--sp-2);border:1.5px dashed #9fb4ff80;border-radius:var(--r-3);background:#1f3dff1f;color:#fff;text-decoration:none;text-align:center;transition:background var(--dur-1),border-color var(--dur-1)}
.roster-new:hover{background:#1f3dff40;border-color:var(--color-accent-dark)}
.roster-new span{font:400 var(--fs-23)/1 var(--font-display);color:var(--color-accent-dark)}
.roster-new b{font-size:var(--fs-13)}
.roster-new small{font-size:var(--fs-11);color:var(--color-stage-muted)}
.roster-note{margin:0;font-size:var(--fs-12);color:var(--color-stage-muted)}

/* 진행 순서 띠: 실제 순서라 번호를 쓰고, 지금 단계는 옅은 파랑 */
.home-route{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-3);box-shadow:var(--shadow-soft);overflow:hidden}
.home-route li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px var(--sp-3);padding:var(--sp-5) var(--sp-6)}
.home-route li+li{border-left:1px solid var(--color-line)}
.home-route li+li:before{content:'';position:absolute;left:-7px;top:50%;width:12px;height:12px;translate:0 -50%;rotate:45deg;background:var(--color-surface);border-top:1px solid var(--color-line);border-right:1px solid var(--color-line)}
.home-route em{grid-row:span 2;font:400 var(--fs-23)/1 var(--font-display);font-style:normal;color:var(--color-accent)}
.home-route b{font:700 var(--fs-16)/1.3 var(--font-emphasis)}
.home-route p{margin:0;color:var(--color-muted);font-size:var(--fs-13);line-height:var(--lh-ui)}
.home-route li.is-here{background:var(--color-accent-soft)}
.home-route[hidden]{display:none}
.home-utilities{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-5);padding:0 var(--sp-2);font-size:var(--fs-13);color:var(--color-muted)}
.home-utilities a,.home-utilities button{padding:var(--sp-2) 0;background:none;border:0;border-radius:0;color:var(--color-ink-2);font:600 var(--fs-13)/1.4 var(--font-ui);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:0}
.home-utilities button:hover:not(:disabled){background:none;color:var(--color-accent)}
.home-utilities span{margin-left:auto}

/* 경기 종료: 두 구단·점수판 → 승리 칩 → 다음 대진 → 버튼 */
.result-overlay.is-fulltime{padding:var(--sp-6);overflow:auto;align-content:center;justify-items:center;gap:var(--sp-4);background:#0b132699}
.result-overlay.is-fulltime #resultWord,.result-overlay.is-fulltime #resultCaption{display:none}
.result-overlay.is-fulltime .decision-kicker{display:flex;align-items:center;gap:var(--sp-3);margin:0;font-size:var(--fs-13);letter-spacing:.2em;color:#fff}
.result-overlay.is-fulltime .decision-kicker em{font-style:normal;font:400 var(--fs-12)/1.4 var(--font-ui);letter-spacing:0;color:var(--color-stage-muted)}
.result-overlay.is-final .decision-kicker{color:var(--color-cast)}
.result-overlay span.crest-tile{display:grid;margin:0;padding:0;border-radius:22%;background:var(--club,var(--color-portrait));color:var(--team-ink);font-weight:700}
.fulltime-board{pointer-events:auto;display:grid;justify-items:center;gap:var(--sp-4);width:min(760px,100%)}
.fulltime-board[hidden],.fulltime-actions[hidden]{display:none}
.ft-score-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--sp-6);width:100%}
.ft-club{display:flex;align-items:center;gap:var(--sp-4);min-width:0}
.ft-club.away{flex-direction:row-reverse}
.ft-club .crest-tile{width:76px;height:76px}
.ft-club div{display:grid;gap:8px;min-width:0;text-align:left}
.ft-club.away div{text-align:right;justify-items:end}
.ft-club strong{font:700 var(--fs-23)/1.25 var(--font-emphasis);color:#fff;overflow-wrap:anywhere}
.ft-club i{display:block;width:56px;height:5px;border-radius:3px;background:var(--club)}
.ft-club.is-loser{opacity:.62}
.ft-score{display:flex;align-items:center;gap:var(--sp-3);font:400 clamp(48px,6vw,76px)/1 var(--font-display);color:#fff;font-variant-numeric:tabular-nums}
.ft-score i{font-style:normal;color:var(--color-stage-muted);font-size:.6em}
.ft-verdict{display:inline-flex;align-items:center;gap:var(--sp-2);padding:6px 16px 6px 6px;border-radius:var(--r-pill);background:var(--club);color:var(--team-ink);font:700 var(--fs-14)/1.2 var(--font-ui)}
.ft-verdict small{padding:4px 10px;border-radius:var(--r-pill);background:var(--team-ink);color:#fff;font:400 var(--fs-11)/1 var(--font-display);letter-spacing:.08em}
.ft-verdict.is-draw{padding:6px 16px;background:var(--color-stage-2);color:#fff;border:1px solid var(--color-stage-line)}
.ft-line{margin:0;font-size:var(--fs-13);font-style:italic;color:var(--color-stage-muted)}
.fulltime-actions{pointer-events:auto;display:grid;justify-items:center;gap:var(--sp-4);width:min(560px,100%)}
.fulltime-next{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--sp-1) var(--sp-4);width:100%;padding:var(--sp-3) var(--sp-4);text-align:left;background:#ffffff0d;border:1px solid var(--color-stage-line);border-radius:var(--r-2)}
.fulltime-next small{grid-row:span 2;font:400 var(--fs-11)/1 var(--font-display);letter-spacing:.14em;color:var(--color-accent-dark)}
.fulltime-next p{margin:0;font-size:var(--fs-13);line-height:1.5;color:var(--color-stage-ink)}
.fulltime-next p+p{font-size:var(--fs-12);color:var(--color-stage-muted)}
.fulltime-next p[hidden]{display:none}
.fulltime-next .mini{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--color-stage-ink)}
.fulltime-next .mini .crest-tile{width:22px;height:22px;font-size:var(--fs-10);box-shadow:none;filter:none}
.fulltime-next .mini span.crest-tile{border-radius:5px}
.result-overlay.is-final .fulltime-next{border-color:#ffd66b66}
.result-overlay.is-final .fulltime-next small{color:var(--color-cast)}
.fulltime-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-3)}
.fulltime-cta .journey-primary{min-height:50px;padding-inline:var(--sp-7);box-shadow:0 10px 30px #1f3dff66}
.fulltime-cta .journey-secondary{min-height:50px;background:#0b132699;color:var(--color-stage-ink);border-color:#ffffff38}
@media(prefers-reduced-motion:no-preference){
  .result-overlay.is-fulltime .ft-score-row{animation:ft-rise .5s var(--ease-out) both}
  .result-overlay.is-fulltime .ft-verdict{animation:ft-rise .5s var(--ease-out) .25s both}
  .result-overlay.is-fulltime .fulltime-actions{animation:ft-rise .5s var(--ease-out) .45s both}
}
@keyframes ft-rise{from{opacity:0;translate:0 14px}}

@media(max-width:1100px){.home-frame{grid-template-columns:minmax(0,1fr);gap:var(--sp-6);padding:var(--sp-7)}}
@media(max-width:600px){
  .home-frame{padding:28px 20px 24px;min-height:0}
  .home-frame.onair:after{width:260px;height:260px;right:-60px;top:62%}
  .league-home h1{font-size:28px}
  .home-intro{font-size:var(--fs-14)}
  .home-cta>*{flex:1 1 100%}
  .ticket{padding:var(--sp-4)}
  .ticket-club .crest-tile{width:56px;height:56px}
  .roster{grid-template-columns:repeat(4,minmax(0,1fr))}
  .roster .crest-tile{width:44px;height:44px}
  .home-route{grid-template-columns:minmax(0,1fr)}
  .home-route li{padding:var(--sp-4)}
  .home-route li+li{border-left:0;border-top:1px solid var(--color-line)}
  .home-route li+li:before{left:24px;top:-7px;translate:none;rotate:135deg}
  .home-utilities span{margin-left:0}
  .result-overlay.is-fulltime{padding:var(--sp-4);gap:var(--sp-3)}
  .ft-score-row{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-2)}
  .ft-club,.ft-club.away{flex-direction:row-reverse;justify-content:space-between}
  .ft-club.away div{text-align:left;justify-items:start}
  .ft-club .crest-tile{width:44px;height:44px}
  .ft-club strong{font-size:var(--fs-16)}
  .ft-score{justify-content:center;font-size:44px}
  .ft-line{display:none}
  .fulltime-cta{width:100%}
  .fulltime-cta>*{flex:1 1 100%}
}
.league-entry{margin-left:auto;flex-shrink:0;font-size:var(--fs-12);padding:var(--sp-2) var(--sp-3)}
.season-strip{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-4);margin-bottom:var(--sp-5);background:var(--color-surface);border:1px solid var(--color-line);border-left:3px solid var(--color-accent)}
.season-strip div{display:grid;gap:var(--sp-1);min-width:0}.season-strip b{overflow-wrap:anywhere}.season-strip span{color:var(--color-muted);font-size:var(--fs-12)}.season-strip button{flex-shrink:0}
#leagueDialog{color:var(--color-ink);background:var(--color-bg);border:1px solid var(--color-line-strong);border-radius:var(--r-frame);width:min(1160px,calc(100% - 32px));max-width:none;height:min(880px,90dvh);max-height:90dvh;padding:0;box-shadow:var(--shadow-frame)}
#leagueDialog::backdrop{background:#000b;backdrop-filter:blur(4px)}
.league-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--color-line);background:var(--color-surface)}
.league-head small{color:var(--color-accent);font-size:var(--fs-10);letter-spacing:var(--ls-label)}.league-head h2{font-family:var(--font-emphasis);font-size:var(--fs-23);margin:0}.league-head button{flex-shrink:0}
.league-tabs{display:flex;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);border-bottom:1px solid var(--color-line)}.league-tabs [aria-pressed=true]{color:var(--color-accent);border-color:var(--color-accent)}#leagueRefresh{margin-left:auto}
.league-content{padding:var(--sp-5) var(--sp-6)}.league-notice{margin:var(--sp-3) var(--sp-6);padding:var(--sp-3);background:var(--color-surface-2);border-left:3px solid var(--color-signal);overflow-wrap:anywhere}.league-notice p{margin:0 0 var(--sp-2)}
.league-club-layout{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2.5fr);gap:var(--sp-5)}.league-season-layout{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,3fr);gap:var(--sp-5)}
.league-card{min-width:0;padding:var(--sp-4);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-2);margin-bottom:var(--sp-4)}.league-card h3,.league-card h4{margin:0 0 var(--sp-2);overflow-wrap:anywhere}.league-card h3{font:700 var(--fs-19)/var(--lh-ui) var(--font-emphasis)}.league-card h4{font-size:var(--fs-14)}
.league-card fieldset{border:0;padding:0;margin:0;min-width:0}.league-card legend{font-weight:700;font-size:var(--fs-19);margin-bottom:var(--sp-2)}.league-card label{display:grid;gap:var(--sp-1);font-size:var(--fs-13);margin-bottom:var(--sp-3)}
.league-card input:not([type=checkbox]),.league-card textarea,.league-card select{width:100%;min-width:0;padding:var(--sp-2) var(--sp-3);font:inherit;color:var(--color-ink);background:var(--color-surface-2);border:1px solid var(--color-line-strong);border-radius:var(--r-2)}.league-card textarea{resize:vertical}.league-card input{min-height:44px}.league-card input[type=checkbox]{accent-color:var(--color-accent);width:20px;min-height:20px;flex-shrink:0}.league-muted{font-size:var(--fs-12);color:var(--color-muted);margin:var(--sp-2) 0 var(--sp-3);overflow-wrap:anywhere}
.league-actors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3);margin-top:var(--sp-5)}.league-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-3) 0}.league-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink);font-weight:700}.league-primary:hover:not(:disabled){background:var(--color-accent);color:var(--color-accent-ink);filter:brightness(.9)}
.league-link-primary{display:inline-block;background:var(--color-accent);color:var(--color-accent-ink);font:700 var(--fs-12) var(--font-emphasis);text-decoration:none;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-2);margin-top:var(--sp-1)}.league-link-primary:hover{filter:brightness(1.08)}
.league-club{padding:var(--sp-3) 0;border-bottom:1px solid var(--color-line);overflow-wrap:anywhere}.league-club b,.league-club small{display:block}.league-club small{color:var(--color-muted)}.league-club:last-of-type{margin-bottom:var(--sp-4)}
.league-select-clubs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2);margin:var(--sp-3) 0}.league-select-clubs label{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);margin:0;border:1px solid var(--color-line);overflow-wrap:anywhere}.league-select-clubs label:has(:checked){border-color:var(--color-accent)}.league-select-clubs small{display:block;color:var(--color-muted)}
.league-season-link{display:block;width:100%;margin-bottom:var(--sp-2);text-align:left;overflow-wrap:anywhere}.league-season-link[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent)}.league-current{border-top:3px solid var(--color-accent)}.league-current>small{color:var(--color-muted)}.league-champion{color:var(--color-accent);padding:var(--sp-4) 0}
.league-table-wrap{max-width:100%;overflow:auto;margin:var(--sp-3) 0}.league-table-wrap table{width:100%;border-collapse:collapse;font-size:var(--fs-12)}.league-table-wrap caption{text-align:left;color:var(--color-muted);margin-bottom:var(--sp-2)}.league-table-wrap th,.league-table-wrap td{padding:var(--sp-2);text-align:left;border-bottom:1px solid var(--color-line);vertical-align:top;min-width:40px}.league-table-wrap th{white-space:nowrap;color:var(--color-muted)}.league-table-wrap td{overflow-wrap:anywhere}.league-table-wrap td:last-child{min-width:150px}.league-table-wrap small{display:block;color:var(--color-muted)}
.league-table-wrap td:nth-child(2){min-width:90px}.league-table-wrap summary{font-weight:400;font-size:var(--fs-11);color:var(--color-muted)}
.league-card summary{cursor:pointer;font-weight:700;padding:var(--sp-2) 0}.league-fixtures{list-style:none;padding:0;margin:0}.league-fixtures li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);border-bottom:1px solid var(--color-line);padding:var(--sp-3) 0}.league-fixtures li div{display:grid;overflow-wrap:anywhere}.league-fixtures small,.league-fixtures span{color:var(--color-muted);font-size:var(--fs-12)}.league-fixtures button{flex-shrink:0}
@media(max-width:760px){#leagueDialog{width:calc(100% - 16px);height:94dvh;max-height:94dvh}.league-head,.league-content{padding:var(--sp-4)}.league-tabs{padding:var(--sp-2) var(--sp-4)}.league-notice{margin:var(--sp-3) var(--sp-4)}.league-head h2{font-size:var(--fs-19)}.league-head button{font-size:var(--fs-12);padding:var(--sp-2)}.league-club-layout,.league-season-layout{grid-template-columns:minmax(0,1fr)}.league-actors,.league-select-clubs{grid-template-columns:minmax(0,1fr)}.season-strip{align-items:flex-start}.season-strip button{font-size:var(--fs-12);padding:var(--sp-2)}}
a.league-season-link{display:flex;align-items:center;min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);color:var(--color-ink);text-decoration:none;font-size:var(--fs-13)}a.league-season-link:hover{border-color:var(--color-line-strong);background:var(--color-surface-2)}a.league-season-link[aria-current=true]{border-color:var(--color-ink-2)}a.league-season-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
