/* ==========================================================
   코리안유로파 화면 스타일
   색·글꼴·글자 크기·여백·모서리는 tokens.css의 변수만 쓴다.
   ========================================================== */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--ink);font-family:var(--f-ui);font-size:var(--fs-4);line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}
img,svg{max-width:100%}
button,input,textarea{font:inherit;color:inherit}
a{color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ── 상단 바 ── */
.top :focus-visible{outline-color:var(--brand-accent)}   /* 짙은 맨 위 바 위에서 키보드 이동 테두리가 보이게(밝게/어둡게 단추 포함 — 11-01 독립 리뷰) */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--brand);color:var(--on-brand)}
.gnb{max-width:var(--page-max);margin:0 auto;padding-inline:var(--sp-8);height:56px;display:flex;align-items:center;gap:var(--sp-9)}
.logo{flex:none;display:flex;align-items:center;gap:var(--sp-4);margin:0;font-family:var(--f-logo);font-weight:900;font-size:var(--fs-logo);line-height:1;letter-spacing:-.03em;white-space:nowrap;color:var(--on-brand)}
.nav{display:flex;align-self:stretch;flex:1;justify-content:space-evenly;max-width:var(--nav-max);margin-inline:auto;gap:var(--sp-1)}
.nav a{display:flex;align-items:center;padding:0 var(--nav-pad);color:var(--on-brand-muted);font-size:var(--fs-nav);font-weight:500;text-decoration:none;border-bottom:3px solid transparent;border-top:3px solid transparent;white-space:nowrap}
.nav a:hover{color:var(--on-brand)}
@media (max-width:1279px){.nav a{padding-inline:var(--nav-pad-m)}} /* PC 폭이 좁을 때(1100~1279px) 메뉴가 검색창을 밀어내지 않게 */
.nav a[aria-current="page"]{color:var(--on-brand);border-bottom-color:var(--brand-accent);font-weight:700}
.gnb-r{display:flex;align-items:center;gap:var(--sp-4)}
.search{position:relative;width:250px}
.search input{width:100%;height:36px;border-radius:var(--rad-4);border:1px solid var(--on-brand-line);background:var(--on-brand-hover);color:var(--on-brand);padding:0 var(--sp-6) 0 calc(var(--sp-11) + var(--sp-1));font-size:var(--fs-bar)}
.search input::placeholder{color:var(--on-brand-placeholder)}
.search .ico{position:absolute;left:var(--sp-6);top:50%;transform:translateY(-50%);color:var(--on-brand-icon);pointer-events:none}
.btn-ghost{height:34px;padding:0 var(--sp-6);border-radius:var(--rad-4);border:1px solid var(--on-brand-border);background:transparent;color:var(--on-brand);font-weight:600;font-size:var(--fs-bar);cursor:pointer;white-space:nowrap}
.btn-ghost:hover{background:var(--on-brand-hover)}
.icon-btn{display:none;width:36px;height:36px;border-radius:var(--rad-4);border:0;background:transparent;color:var(--on-brand);cursor:pointer;place-items:center}
/* 밝게/어둡게 단추(js/theme.js): PC·휴대폰 모두 보임(검색 단추는 휴대폰만). 밝은 화면엔 달, 어두운 화면엔 해 */
.theme-btn{display:grid}
.theme-btn:hover{background:var(--on-brand-hover)}
.theme-btn .i-sun,:root[data-theme="dark"] .theme-btn .i-moon{display:none}
:root[data-theme="dark"] .theme-btn .i-sun{display:block}
.tabs{display:none;border-top:1px solid var(--on-brand-divider)}
.tabs-in{display:flex;overflow-x:auto;scrollbar-width:none;padding-inline:var(--sp-4)}
.tabs-in::-webkit-scrollbar{display:none}
.tabs a{flex:1 0 auto;text-align:center;padding:var(--sp-5) var(--nav-pad-m);color:var(--on-brand-muted);font-size:var(--fs-nav);font-weight:500;text-decoration:none;border-bottom:3px solid transparent}
.tabs a[aria-current="page"]{color:var(--on-brand);font-weight:700;border-bottom-color:var(--brand-accent)}
.msearch{display:none;padding:var(--sp-4) var(--sp-6) var(--sp-5)}
.msearch .search{width:100%}
@media (max-width:1099px){ /* 메뉴·검색·제보하기가 한 줄에 들어가려면 1070px 필요 → 본문 1단 기준(1100px)과 맞춤 */
  .nav,.gnb-r .search{display:none}
  .gnb-r{margin-left:auto}
  .icon-btn{display:grid}
  .tabs{display:block}
  .msearch.open{display:block}
  .gnb{gap:var(--sp-5)}
}
/* PC 상단 바: 높이 72px · 메뉴 18px(글자 크기는 tokens.css 'PC 상단 바' — 2026-11-01 웅찬). 휴대폰은 위 기본값 그대로 */
@media (min-width:1100px){
  .gnb{height:72px}
  .logo svg{width:26px;height:26px}
  .search input{height:42px}
  .btn-ghost{height:40px;padding:0 var(--sp-7)}
}
.qres{position:absolute;top:calc(100% + var(--sp-3));left:0;right:0;z-index:40;list-style:none;margin:0;padding:var(--sp-2);background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--rad-5);box-shadow:0 12px 30px var(--shadow);max-height:340px;overflow:auto;min-width:260px}
.qres button{display:flex;align-items:center;gap:var(--sp-4);width:100%;text-align:left;background:none;border:0;border-radius:var(--rad-3);padding:var(--sp-4) var(--sp-4);cursor:pointer;font-size:var(--fs-4)}
.qres button:hover,.qres button:focus-visible{background:var(--soft)}
.qres .pc{color:var(--muted);font-size:var(--fs-2)}
.qres .empty{padding:var(--sp-4);border:0;color:var(--muted);font-size:var(--fs-3)}

/* ── 최근 경기 띠 ── */
.ticker{background:var(--card);border-bottom:1px solid var(--line)}
.ticker-in{max-width:var(--page-max);margin:0 auto;padding:var(--sp-4) var(--sp-8);display:flex;align-items:center;gap:var(--sp-6)}
.ticker-label{flex:none;font-size:var(--fs-2);font-weight:700;color:var(--muted)}
.ticker-list{display:flex;gap:var(--sp-4);overflow:hidden;scrollbar-width:none;min-width:0;flex:1}
.tk-track{display:flex;width:max-content;animation:tk-run calc(var(--tk-n,10) * var(--tk-per)) linear infinite}
.tk-set{display:flex;gap:var(--sp-4);padding-right:var(--sp-4)}
.ticker-list:hover .tk-track,.ticker-list:focus-within .tk-track{animation-play-state:paused}
@keyframes tk-run{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){ /* 움직임 줄이기: 흐르지 않고 손으로 옆으로 밀어서 봄 */
  .ticker-list{overflow-x:auto}
  .tk-track{animation:none}
  .tk-set[aria-hidden="true"]{display:none}
}
.ticker-list::-webkit-scrollbar{display:none}
.tk{flex:none;display:inline-flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-5) var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--rad-4);background:var(--soft);font-size:var(--fs-3);cursor:pointer;white-space:nowrap}
.tk:hover{border-color:var(--blue)}
.tk b{font-weight:700}
.tk .st{color:var(--red);font-weight:700}
.tk .st.plain{color:var(--muted);font-weight:500}
.tk .tres{color:var(--muted);font-variant-numeric:tabular-nums}

/* ── 본문 격자 ── */
.wrap{max-width:var(--page-max);margin:0 auto;padding:var(--sp-6) var(--sp-8) var(--sp-12)}
/* 불러오는 중·불러오기 실패 안내 */
.loadmsg{margin:var(--sp-11) auto;max-width:520px;padding:var(--sp-9) var(--sp-8);text-align:center;font-size:var(--fs-4);color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:var(--rad-6)}
.loadmsg.err{color:var(--ink);border-color:var(--red)}
/* 늦어짐 안내 한 줄(6시간 넘게 갱신 없음 — config.js staleHours) */
.stale{margin:0 0 var(--sp-6);padding:var(--sp-4) var(--sp-8);text-align:center;font-size:var(--fs-3);color:var(--ink);background:var(--card);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:var(--rad-4)}
.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-7);max-width:720px;margin:0 auto}
.col{display:contents}
@media (min-width:1100px){
  .grid{grid-template-columns:240px minmax(0,1fr) 300px;max-width:none;align-items:start}
  .col{display:flex;flex-direction:column;gap:var(--sp-7);min-width:0}
}
.o1{order:10}.o2{order:20}.o3{order:30}.o4{order:40}.o5{order:50}.o6{order:60}.o7{order:70}.o8{order:80}.o9{order:90}

/* ── 카드 ── */
.card{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--strip);border-radius:var(--rad-6);min-width:0;overflow:hidden}   /* 칸 맨 위 굵은 띠(전광판 디자인 — 그림자 대신) */
.card-h{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-6) var(--sp-8) var(--sp-5)}
.card-h h2{margin:0;font-size:var(--fs-5);font-weight:800;letter-spacing:-.01em}
.card-h .aside{margin-left:auto;font-size:var(--fs-3);color:var(--muted)}
.tag-soon{font-size:var(--fs-1);font-weight:700;color:var(--muted);border:1px dashed var(--muted);border-radius:var(--rad-pill);padding:0 var(--sp-4)}
.note{margin:0;padding:var(--sp-5) var(--sp-8) var(--sp-7);font-size:var(--fs-2);color:var(--muted);border-top:1px solid var(--line)}

/* ── 가운데: 지도 ── */
.hero{scroll-margin-top:var(--header-offset);color:var(--ink)}   /* 지도 칸(색은 tokens.css — 밝은 화면 하늘색 바다, 어두운 화면 전광판) — 칸 안 글자가 칸 색을 따르게 */
.hero-h{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--sp-5) var(--sp-8);padding:var(--sp-8) var(--sp-8) var(--sp-2)}
.hero-title{margin:0;display:flex;flex-direction:column;flex-wrap:wrap;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-7);font-weight:600;letter-spacing:-.01em}
#heroLabel{font-size:var(--fs-5);font-weight:700;color:var(--muted)}
.hero-n{display:inline-flex;align-items:baseline;gap:var(--sp-3);white-space:nowrap}   /* 숫자와 '명'은 한 덩어리(휴대폰에서 '명'만 떨어지지 않게 — 2026-10-27) */
.hero-title strong{font-family:var(--f-num);font-size:var(--fs-hero);font-weight:900;line-height:.8;letter-spacing:0;color:var(--blue);font-variant-numeric:tabular-nums}   /* 큰 숫자 = 지도 점 색(밝은 화면 파랑 · 어두운 화면 전구색 — tokens.css, 2026-11-03) */
.hero-n>span{font-size:var(--fs-8);font-weight:800}
.hero-meta{margin:var(--sp-5) 0 0;display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6);font-size:var(--fs-3);color:var(--muted)}
.hero-meta .date,#heroScope,#phScope{color:var(--ink);font-weight:700}   /* 기준일과 범위는 진하게 — 옆 링크보다 먼저 눈에 들어오게(2026-11-08 웅찬) */
@media (max-width:699px){.hero .hero-meta .date{flex-basis:100%}}   /* 휴대폰: 날짜는 늘 한 줄 따로 — '10대 리그'로 바꿔 범위 글씨가 길어져도 줄 수가 같아 단추·지도가 안 밀림(2026-11-04 웅찬) */
.seg{display:inline-flex;padding:var(--sp-1);border-radius:var(--rad-4);background:var(--soft);border:1px solid var(--line)}
.seg button{border:0;background:none;border-radius:var(--rad-3);padding:var(--sp-3) var(--sp-6);font-size:var(--fs-3);font-weight:600;color:var(--muted);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--card);box-shadow:none}   /* 고른 단추는 색을 뒤집음 */
.map-wrap{padding:var(--sp-4) var(--sp-8) var(--sp-1)}
.dotmap{position:relative;max-width:var(--map-max);margin:0 auto}
.dotmap>svg{display:block;width:100%;height:auto;cursor:pointer;touch-action:manipulation}
.dotmap circle{fill:var(--dot0);transition:fill .12s,transform .12s;transform-box:fill-box;transform-origin:center}
.dotmap{--ramp:var(--blue)}
.dotmap .d-x circle,.dotmap .d-bg circle{fill:var(--dot-bg)}  /* 러시아·UEFA 밖 땅: 가장 옅게(누를 수 없음) */
.dotmap .d-l1 circle{fill:color-mix(in srgb,var(--ramp) var(--ramp-1),var(--dot0))}
.dotmap .d-l2 circle{fill:color-mix(in srgb,var(--ramp) var(--ramp-2),var(--dot0))}
.dotmap .d-l3 circle{fill:color-mix(in srgb,var(--ramp) var(--ramp-3),var(--dot0))}
.dotmap .d-l4 circle{fill:var(--ramp)}
.dotmap g.hov circle{transform:scale(1.3)}
.dotmap g.hov:not(.d-0) circle{fill:var(--ramp)}
.dotmap g.on circle,.dotmap g.on.hov circle{fill:var(--ink)}
.mk{position:absolute;transform:translate(-50%,-50%);min-width:clamp(17px,3.8vw,23px);height:clamp(17px,3.8vw,23px);border-radius:var(--rad-pill);white-space:nowrap;overflow-wrap:normal;border:1.5px solid var(--ramp);background:var(--card);color:var(--ink);font-size:clamp(var(--fs-1),2.5vw,var(--fs-3));font-weight:700;line-height:1;display:grid;place-items:center;padding:0 var(--sp-1);cursor:pointer;box-shadow:0 1px 4px var(--shadow);font-variant-numeric:tabular-nums;transition:transform .12s}   /* 한 자리는 동그라미, 두 자리 이상은 옆으로 늘어남 — 숫자 사이에서 줄이 바뀌지 않게(2026-10-27 웅찬 휴대폰에서 '10'이 1·0으로 갈라짐) */
.mk.hov{transform:translate(-50%,-50%) scale(1.18);border-width:2px;z-index:3}
.mk[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--card);z-index:2}
.maptip{position:absolute;z-index:4;pointer-events:none;min-width:150px;padding:var(--sp-4) var(--sp-5);border:1px solid var(--line);border-radius:var(--rad-4);background:var(--card);box-shadow:0 8px 22px var(--shadow);font-size:var(--fs-3);line-height:1.4}
.maptip .tt{display:flex;align-items:center;gap:var(--sp-3);font-weight:700;font-size:var(--fs-4)}
.maptip .ts{color:var(--muted)}
.seg .c{font-family:var(--f-num);font-weight:800;font-size:var(--fs-5);margin-left:var(--sp-1);font-variant-numeric:tabular-nums}
.map-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3) var(--sp-8);padding:var(--sp-4) var(--sp-8) var(--sp-7);font-size:var(--fs-2);color:var(--muted)}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-6)}
.legend>span{display:inline-flex;align-items:center;gap:var(--sp-3)}
.legend i{width:8px;height:8px;border-radius:50%;display:inline-block}
.legend .ramp{display:inline-flex;gap:var(--sp-1)}
.r0{background:var(--dot0)}
.legend{--ramp:var(--blue)}
.r1{background:color-mix(in srgb,var(--ramp) var(--ramp-1),var(--dot0))}
.r2{background:color-mix(in srgb,var(--ramp) var(--ramp-2),var(--dot0))}
.r3{background:color-mix(in srgb,var(--ramp) var(--ramp-3),var(--dot0))}
.r4{background:var(--ramp)}
.rs{background:var(--ink)}
.drill{border-top:1px solid var(--line);padding:var(--sp-7) var(--sp-8) var(--sp-8);background:var(--soft)}
.drill-h{display:flex;align-items:center;gap:var(--sp-5)}
.drill-h h3{margin:0;font-size:var(--fs-6)}
.drill-h h3 .tag{margin-left:var(--sp-3);vertical-align:middle}
.drill-h .meta{font-size:var(--fs-2);color:var(--muted)}
.drill-h .n{margin-left:auto;font-size:var(--fs-9);line-height:1;font-variant-numeric:tabular-nums}
.drill-h .n small{font-size:var(--fs-3);font-weight:500;color:var(--muted);margin-left:var(--sp-1)}
.drill-x{width:30px;height:30px;border:1px solid var(--line);border-radius:var(--rad-4);background:var(--card);cursor:pointer;font-size:var(--fs-6);line-height:1}
.tier{margin-top:var(--sp-6)}
.tier-h{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-3);font-weight:700}
.tier-chip{font-size:var(--fs-1);font-weight:700;background:var(--ink);color:var(--card);border-radius:var(--rad-2);padding:0 var(--sp-3)}
.clubrow{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:var(--sp-2) var(--sp-5);padding:var(--sp-4) 0;border-bottom:1px dashed var(--line)}
.clubrow:last-child{border-bottom:0}
.clubrow .cn{font-size:var(--fs-4);font-weight:700}
.clubrow .chips{grid-column:2;margin-top:0}

/* ── 공통 목록 조각 ── */
.flag{width:auto;height:14px;aspect-ratio:4/3;border-radius:var(--rad-1);box-shadow:0 0 0 1px var(--flag-edge);flex:none;display:block}   /* 국기 원본 그림(site/flags/)의 비율 4:3 그대로 — 자르거나 늘이지 않음(2026-11-11) */
.flag.inl{display:inline-block;vertical-align:-2px}
.badge{display:block;flex:none}
.grp{margin-top:var(--sp-6)}
.grp:first-child{margin-top:0}
.grp-h{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-3);font-weight:700;color:var(--muted)}
.grp-h .n{margin-left:auto;font-variant-numeric:tabular-nums}
/* 창 맨 위 풀이 한 줄(홈 '10대 리그 말고' 창 — 2026-11-08) */
.sh-lead{margin:0;font-size:var(--fs-3);color:var(--muted)}
.gnote{margin:var(--sp-8) 0 0;padding-top:var(--sp-5);border-top:1px solid var(--line);font-size:var(--fs-2);color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-3)}
.pchip{display:inline-flex;align-items:center;gap:var(--sp-3);max-width:100%;border:1px solid var(--line);background:var(--card);border-radius:var(--rad-4);padding:var(--sp-1) var(--sp-5) var(--sp-1) var(--sp-3);cursor:pointer;font-size:var(--fs-4);text-align:left}
.pchip:hover{border-color:var(--blue)}
.pchip .club{color:var(--muted);font-size:var(--fs-2)}
.tag{display:inline-block;font-size:var(--fs-1);font-weight:700;line-height:1.5;border-radius:var(--rad-2);padding:0 var(--sp-3);border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.tag.loan{color:var(--blue);border-color:currentColor}
.tag.b{color:var(--ink);border-color:var(--ink)}
.avatar{position:relative;flex:none;width:36px;height:36px;border-radius:var(--rad-4);overflow:hidden;background:var(--c1);color:var(--tx);display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--avatar-edge)}
.avatar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22%;background:var(--c2);opacity:.95}
.avatar .no{position:relative;z-index:1;font-weight:700;font-size:var(--fs-6);line-height:1;margin-top:calc(-1 * var(--sp-1));font-variant-numeric:tabular-nums}
.avatar.lg{width:64px;height:64px;border-radius:var(--rad-6)}
.avatar.lg .no{font-size:var(--fs-9)}
/* 숫자 = 전광판 글씨(숫자 글꼴 --f-num). 목록 숫자(범위별 집계·리그별·순위표·명단 표)는 크기도 같게.
   색 --num-ink: 밝은 화면은 둘레 글자색 그대로, 어두운 화면은 전구색(tokens.css) */
.lrow .lc,.crow .n,.tbl td.num,.drill-h .n,.ph-num b,.statgrid b,.presult .n{font-family:var(--f-num);font-weight:800;color:var(--num-ink)}
.lrow .lc,.crow .n,.tbl td.num{font-size:var(--fs-num);line-height:1}

/* ── 가운데: 라운드업 ── */
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4) var(--sp-6);padding:0 var(--sp-8) var(--sp-6)}
.datenav{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--rad-4);overflow:hidden}
.datenav button{width:32px;height:32px;border:0;background:var(--card);cursor:pointer;font-size:var(--fs-5);color:var(--muted)}
.datenav span{padding:0 var(--sp-5);font-size:var(--fs-3);font-weight:700;border-inline:1px solid var(--line);line-height:32px;white-space:nowrap}
.pills{display:flex;gap:var(--sp-3);overflow-x:auto;scrollbar-width:none;min-width:0}
.pills::-webkit-scrollbar{display:none}
.pill{flex:none;border:1px solid var(--line);background:var(--card);border-radius:var(--rad-pill);padding:var(--sp-2) var(--sp-6);font-size:var(--fs-3);font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}
.pill[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--card)}
/* 라운드업: 기간 안에 경기가 없어 마지막 경기일을 보일 때 맨 위 한 줄(2026-11-08) */
.round-quiet{margin:0;padding:var(--sp-4) var(--sp-8);border-top:1px solid var(--line);font-size:var(--fs-2);color:var(--muted)}
.rg-h{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-8);background:var(--soft);border-top:1px solid var(--line);font-size:var(--fs-3);font-weight:700}
.rg-h .rd{margin-left:auto;font-size:var(--fs-2);font-weight:500;color:var(--muted)}
.uefa{width:21px;height:14px;flex:none;display:block}
.rr{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:var(--sp-5);width:100%;padding:var(--sp-5) var(--sp-8);background:none;border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;font-size:var(--fs-4)}
.rg-h+.rr{border-top:0}
.rr:hover{background:var(--soft)}
.rr .dt{font-size:var(--fs-2);color:var(--muted);line-height:1.25;font-variant-numeric:tabular-nums}
.rr .who{display:flex;align-items:center;gap:var(--sp-4);min-width:0}
.rr .who-t{display:grid;min-width:0}
.rr .nm{font-weight:700;display:flex;align-items:center;gap:var(--sp-3)}
.rr .cl{font-size:var(--fs-3);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr .rt{display:grid;justify-items:end;gap:var(--sp-2)}
.res{font-size:var(--fs-3);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.res .o{margin-left:var(--sp-2);font-size:var(--fs-2)}
.o-W{color:var(--blue)}
.o-D,.o-L{color:var(--muted)}
.sc{font-size:var(--fs-2);font-weight:700;border-radius:var(--rad-2);padding:var(--sp-0) var(--sp-3);line-height:1.5}
.sc.g{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.sc.m{color:var(--muted);font-weight:500;padding-inline:var(--sp-1)}
.empty{padding:var(--sp-9) var(--sp-8);text-align:center;color:var(--muted);font-size:var(--fs-3);border-top:1px solid var(--line)}
.nextm{border-top:1px solid var(--line);padding:var(--sp-6) var(--sp-8) var(--sp-7)}
.nextm h3{margin:0 0 var(--sp-3);font-size:var(--fs-3)}
.nextm ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-3)}
.nextm li{display:grid;grid-template-columns:7.2rem minmax(0,1fr);gap:var(--sp-4);font-size:var(--fs-3)}
.nextm .when{color:var(--muted);font-variant-numeric:tabular-nums}

/* ── 가운데: 10대 리그 밖 ── */
.far-lead{margin:0;padding:0 var(--sp-8) var(--sp-6);font-size:var(--fs-4);color:var(--muted)}
.far-row{display:flex;gap:var(--sp-5);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--sp-8);padding:0 var(--sp-8) var(--sp-7);scrollbar-width:thin}
.fcw{flex:none;display:flex;scroll-snap-align:start}
.fc{flex:none;width:170px;display:grid;gap:var(--sp-4);align-content:start;padding:var(--sp-6);border:1px solid var(--line);border-radius:var(--rad-5);background:var(--card);text-align:left;cursor:pointer}
.fc:hover{border-color:var(--red)}
.fc .lg{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-2);color:var(--muted);min-width:0}
.fc .lg span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc .pl{display:flex;align-items:center;gap:var(--sp-4);min-width:0}
.fc .pl-t{min-width:0}
.fc .nm{font-weight:700;font-size:var(--fs-5)}
.fc .cl{display:block;font-size:var(--fs-2);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}
.fc .st{font-size:var(--fs-3);font-weight:700}
.fc .st.none{font-weight:500;color:var(--muted)}
/* 카드 아래 '마지막 출전'(피드 스위치가 켜졌을 때만 — js/home.js lastLine). 시즌 합계와 다른 이야기라 가는 줄로 나눔 */
.fc .lp{display:grid;gap:var(--sp-1);padding-top:var(--sp-4);border-top:1px solid var(--line);font-size:var(--fs-2);color:var(--muted)}
.fc .lp-h{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.fc .lp-p{white-space:nowrap}
/* PC: 옆으로 넘기지 않고 3장씩 두 줄(앞 6장만 — 2026-10-30 웅찬). 휴대폰은 위처럼 12장을 옆으로 넘김 */
@media (min-width:1100px){
  .far-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;scroll-snap-type:none}
  .fcw:nth-child(n+7){display:none}
  .fc{width:100%}
  .fc .cl{max-width:none}
}

/* ── 왼쪽: 범위별 집계 ── */
.lrow{display:grid;grid-template-columns:86px minmax(0,1fr) 30px;align-items:center;gap:var(--sp-5);width:100%;padding:var(--sp-4) var(--sp-8);background:none;border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;font-size:var(--fs-4)}
.lrow:hover{background:var(--soft)}
.lrow .ln{font-weight:600}
.lbar{display:flex;height:10px;background:var(--track);border-radius:0;overflow:hidden}
.lbar .in{background:var(--blue)}
.lbar .out{background:var(--red)}
.lrow .lc{text-align:right;font-variant-numeric:tabular-nums}
.lsum{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-6);padding:var(--sp-5) var(--sp-8);border-top:1px solid var(--line);font-size:var(--fs-2);color:var(--muted)}
.lsum i{display:inline-block;width:8px;height:8px;border-radius:var(--rad-1);margin-right:var(--sp-2);vertical-align:0}
.lsum .in{background:var(--blue)}
.lsum .out{background:var(--red)}
.lsum strong{color:var(--red)}
.btn-line{width:calc(100% - var(--sp-11));margin:0 var(--sp-8) var(--sp-7);height:34px;border:1px solid var(--line);border-radius:var(--rad-4);background:var(--card);font-size:var(--fs-3);font-weight:600;cursor:pointer}
.btn-line:hover{border-color:var(--blue);color:var(--blue)}
.crow{display:grid;grid-template-columns:21px minmax(0,1fr) auto;align-items:center;gap:var(--sp-5);width:100%;padding:var(--sp-4) var(--sp-8);background:none;border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;font-size:var(--fs-4)}
.crow:hover{background:var(--soft)}
.crow .sub{display:block;font-size:var(--fs-2);color:var(--muted)}
.crow .lgn{white-space:nowrap}
.crow .n{font-variant-numeric:tabular-nums}
.crow[aria-pressed="true"]{background:color-mix(in srgb,var(--red) 9%,var(--card))}
.crow[aria-pressed="true"] .n{color:var(--red)}

/* ── 오른쪽 ── */
.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-4)}
.tbl th{padding:var(--sp-3) var(--sp-8);border-bottom:1px solid var(--line);font-size:var(--fs-2);font-weight:600;color:var(--muted);text-align:left}
.tbl td{padding:var(--sp-5) var(--sp-8);border-bottom:1px solid var(--line);vertical-align:middle}   /* 순위표 줄을 조금 넉넉히(세 열 높이 맞춤) */
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover{background:var(--soft)}
.tbl .rk{width:30px;padding-right:0;color:var(--muted);font-variant-numeric:tabular-nums}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl th.num{font-weight:600}
.tbl .mark,.fc .mark{margin-left:var(--sp-1);color:var(--muted);font-weight:500}
.tbl .num .mark{position:absolute}   /* 숫자 칸의 * 는 자리를 차지하지 않고 숫자 뒤에 걸침 — * 있는 줄도 숫자 끝이 맞게(웅찬 2026-10-29) */
.tbl tbody tr.more{cursor:default}
.tbl tbody tr.more:hover{background:none}
.tbl tr.more td{color:var(--muted);font-size:var(--fs-3)}
.pcell{display:flex;align-items:center;gap:var(--sp-4);min-width:0}
.pcell button{background:none;border:0;padding:0;font-weight:700;cursor:pointer;text-align:left}
.pcell .lg{display:block;font-size:var(--fs-2);color:var(--muted)}
.seg.sm{margin-left:auto}
.card-h.stack{flex-wrap:wrap;row-gap:var(--sp-4)}          /* 제목 아래 줄에 고르기 단추(시즌 기록 순위) */
.card-h.stack .seg{margin-left:0;width:100%}
.card-h.stack .seg button{flex:1;white-space:nowrap;padding-inline:var(--sp-2)}
.seg.sm button{padding:var(--sp-1) var(--sp-4);font-size:var(--fs-2)}
.chg{display:grid;grid-template-columns:34px auto minmax(0,1fr);align-items:baseline;gap:var(--sp-4);padding:var(--sp-4) var(--sp-8);border-top:1px solid var(--line);font-size:var(--fs-3)}
.chg .d{font-size:var(--fs-2);color:var(--muted);font-variant-numeric:tabular-nums}
.kind{font-size:var(--fs-1);font-weight:700;border-radius:var(--rad-2);padding:0 var(--sp-3);border:1px solid currentColor;white-space:nowrap}
.k-add{color:var(--blue)}
.k-loan,.k-move{color:var(--muted)}
.k-out{color:var(--muted);border-style:dashed}
.cta{padding:0 var(--sp-8) var(--sp-8)}
.cta p{margin:0 0 var(--sp-6);font-size:var(--fs-3);color:var(--muted)}
.btn-primary{width:100%;height:38px;border:0;border-radius:var(--rad-4);background:var(--btn);color:var(--btn-ink);font-weight:700;cursor:pointer}
.btn-primary:hover{filter:brightness(1.1)}

/* ── v2 표시 · 링크·SNS ──
   .lnk .lbl·.sico·.fc .fsns(아래 .links·.lnk도)는 지금 안 씀 — 선수 팝업의 링크·SNS 칸을 채우는 '링크·SNS 장'에서 쓴다(2026-10-26 웅찬: 지우지 않고 둠) */
.v2{margin-left:var(--sp-2);padding:0 var(--sp-2);border-radius:var(--rad-1);background:var(--on-brand-chip);color:var(--on-brand);font-size:var(--fs-1);font-weight:700;vertical-align:1px}
.lnk .lbl{display:inline-flex;align-items:center;gap:var(--sp-4)}
.sico{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;border-radius:var(--rad-3);background:var(--ink);color:var(--card);font-size:var(--fs-1);font-weight:700;letter-spacing:.02em}
.sico.club{background:var(--soft);color:var(--ink);border:1px solid var(--line)}
.fc .fsns{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.fc .fsns span{font-size:var(--fs-1);font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:var(--rad-2);padding:0 var(--sp-3)}

/* ── 광고 자리 ── */
.ad{position:relative;display:grid;place-items:center;align-content:center;gap:var(--sp-1);width:100%;min-width:0;border:1px dashed color-mix(in srgb,var(--muted) 60%,transparent);border-radius:var(--rad-6);background:repeating-linear-gradient(135deg,var(--soft) 0 10px,var(--card) 10px 20px);color:var(--muted);font-size:var(--fs-2);text-align:center}
.ad .adl{position:absolute;top:var(--sp-3);left:var(--sp-4);padding:0 var(--sp-2);border:1px solid currentColor;border-radius:var(--rad-1);font-size:var(--fs-1);font-weight:700}
.ad b{color:var(--ink);font-size:var(--fs-4);font-weight:700;font-variant-numeric:tabular-nums}
.ad-rect{height:250px;max-width:300px;justify-self:center;align-self:center}
.ad-mid{display:none}
.ad-end{height:100px;max-width:320px;justify-self:center;align-self:center}
.ad .ad-d{display:none}
@media (min-width:1100px){
  .ad .ad-d{display:block}.ad .ad-m{display:none}
  .ad-mid{display:grid;height:90px}
  .ad-rect{max-width:none}
  .rcol{align-self:stretch}
  .ad-end{height:600px;max-width:none;position:sticky;top:var(--sticky-offset)}
}

/* ── 선수 명단·리그별 페이지(가운데 한 단) ── */
.logo-a{display:flex;align-items:center;gap:var(--sp-4);color:inherit;text-decoration:none}
.wrap.sub{max-width:var(--sub-max)}
.page{display:grid;gap:var(--sp-7)}
/* 맨 위 칸(밝은 화면 흰 칸 · 어두운 화면 작은 전광판 — 색은 tokens.css, 2026-11-01 웅찬 설계 질문 2 · 2026-11-03 낮/밤) */
.ph{padding:var(--sp-9) var(--sp-8) var(--sp-8);background:var(--card);color:var(--ink);border-top:3px solid var(--strip);border-radius:var(--rad-6)}
.ph-title{margin:0;font-size:var(--fs-8);font-weight:700;letter-spacing:-.02em}
.ph-num{margin:var(--sp-4) 0 0;font-size:var(--fs-5);color:var(--muted);line-height:1.4}
.ph-num b{margin-right:var(--sp-1);font-size:var(--fs-board);line-height:.85;color:var(--blue);font-variant-numeric:tabular-nums}   /* 홈 큰 숫자와 같은 색 */
.ph .hero-meta{margin-top:var(--sp-4)}
/* 범위 단추: 좁으면 단추 줄만 옆으로 밀어 봄(페이지는 안 밀림) */
.ranges-wrap{padding:var(--sp-6) var(--sp-8) var(--sp-5);overflow-x:auto;scrollbar-width:none}
.ranges-wrap::-webkit-scrollbar{display:none}
.seg.ranges{display:flex;width:max-content;min-width:100%}
.seg.ranges button{flex:1 0 auto;white-space:nowrap}
/* 명단 표 */
.roster th .sort{display:inline-flex;align-items:center;justify-content:flex-end;min-width:var(--sp-11);min-height:var(--sp-10);border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;white-space:nowrap}   /* 누르는 자리 32×24 이상 */
.roster th[aria-sort] .sort{color:var(--ink)}
.roster th[aria-sort] .sort::after{content:'▾';margin-left:var(--sp-1)}
.roster .pn-in{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3)}
.roster .pname{background:none;border:0;padding:0;font-weight:700;cursor:pointer;text-align:left}
.roster .pt-m,.roster .lg-m{display:none}
.roster .lg-full{display:flex;align-items:center;gap:var(--sp-4)}
.roster .lg-full .sub{display:block;font-size:var(--fs-2);color:var(--muted)}
.roster td.ns{text-align:center;color:var(--muted);font-size:var(--fs-3)}
/* 휴대폰: 소속팀·리그는 이름 아래 두 줄로, 소속팀·리그 칸은 숨김. 출전 시간 칸은 보임(기본 순서라서 — 2026-11-06) */
@media (max-width:699px){
  .roster .col-team,.roster .col-lg{display:none}
  .roster .pt-m,.roster .lg-m{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);font-size:var(--fs-2);color:var(--muted)}
  .roster th,.roster td{padding-inline:var(--sp-3)}
  .roster th:first-child,.roster td:first-child{padding-left:var(--sp-6)}
  .roster th:last-child,.roster td:last-child{padding-right:var(--sp-6)}
  .roster td.ns{font-size:var(--fs-2)}
  .roster td.num{font-size:var(--fs-6)}   /* 숫자 칸이 넷이라 조금 작게 — * 가 옆 숫자에 붙지 않게(2026-11-06, 360폭에서 잼) */
}

/* 리그별 페이지: 나라마다 카드 하나(머리는 홈 지도 펼침 칸과 같은 모양) */
.nations{display:grid;gap:var(--sp-5)}
.nation{padding:var(--sp-7) var(--sp-8) var(--sp-6)}
.nation h3{scroll-margin-top:calc(var(--header-offset) + var(--sp-7))}   /* UEFA 리그 순위 등에서 leagues#n-코드로 올 때 카드 머리가 상단 바에 가리지 않게(2026-11-11) */
.page-note{margin:0;padding:0 var(--sp-1);font-size:var(--fs-2);color:var(--muted)}
/* 다른 페이지로 가는 링크(홈 '리그별' 칸 아래, 명단 창 바닥) */
.more-link{display:flex;align-items:center;justify-content:center;min-height:36px;padding:0 var(--sp-6);border:1px solid var(--line);border-radius:var(--rad-4);background:var(--card);color:var(--blue);font-size:var(--fs-3);font-weight:600;text-decoration:none}
.more-link:hover{border-color:var(--blue)}
.card .more-link{margin:0 var(--sp-8) var(--sp-7)}
.sh-body .more-link{margin-top:var(--sp-6)}

/* ── 사이트 안내·개인정보처리방침(2026-11-08 — 가운데 한 단, 머리 칸 + 칸들) ── */
.doc{scroll-margin-top:var(--header-offset)}   /* 바닥 링크로 칸에 뛸 때 상단 바에 가리지 않게 */
.ph-lead{margin:var(--sp-5) 0 0;font-size:var(--fs-5);line-height:1.65;text-wrap:pretty}
.ph-lead+.ph-lead{margin-top:var(--sp-1)}
.jump{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin:var(--sp-8) 0 0;padding:0;list-style:none}
.jump a{display:inline-flex;align-items:center;min-height:32px;padding:0 var(--sp-6);border:1px solid var(--line);border-radius:var(--rad-4);color:var(--blue);font-size:var(--fs-3);font-weight:600;text-decoration:none}
.jump a:hover{border-color:var(--blue)}
.rules{margin:0;padding:0 var(--sp-8) var(--sp-3)}   /* 이름(왼쪽) + 설명(오른쪽) 두 칸 목록 — 휴대폰은 위아래 */
.rules>div{display:grid;grid-template-columns:8.5em 1fr;gap:var(--sp-8);padding:var(--sp-6) 0;border-top:1px solid var(--line)}
.rules dt{font-weight:700}
.rules dd{margin:0;line-height:1.65}
@media (max-width:699px){.rules>div{grid-template-columns:1fr;gap:var(--sp-1)}}
.doc-list{margin:0;padding:var(--sp-2) var(--sp-8) var(--sp-7) calc(var(--sp-8) + 1.1em);line-height:1.65}
.doc-list li+li{margin-top:var(--sp-3)}
.doc-p{margin:0;padding:var(--sp-2) var(--sp-8) var(--sp-7);line-height:1.65}
.doc-p a,.rules a,.note a{color:var(--blue);font-weight:600}   /* 글 안 링크(문의 메일·홈 계단 칸 '집계 기준') */
.hero-meta a{color:inherit;font-weight:400;text-underline-offset:2px}   /* 머리 칸 '공식 경기 명단에 든 선수' — 둘레 글씨색 + 밑줄만(기준일·범위를 밀어내지 않게, 2026-11-08 웅찬 '다') */
.policy h3{margin:0;padding:var(--sp-9) var(--sp-8) var(--sp-4);font-size:var(--fs-5);font-weight:800;border-top:1px solid var(--line)}
.policy h3:first-child{border-top:0}
.policy .rules>div:first-child{border-top:0}

/* ── 바닥 ── */
.foot{border-top:1px solid var(--line);background:var(--card)}
.foot-in{max-width:var(--page-max);margin:0 auto;padding:var(--sp-9) var(--sp-8) var(--sp-11);display:grid;gap:var(--sp-3);font-size:var(--fs-3);color:var(--muted);text-align:center;text-wrap:pretty}   /* 바닥 글씨는 모든 페이지에서 가운데 정렬, 두 줄로 넘어갈 땐 마지막 줄에 낱말 하나만 남지 않게(2026-11-08 웅찬) */
.foot-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2) var(--sp-8);margin-bottom:var(--sp-2)}
.foot-links a{color:var(--ink);text-decoration:none;font-weight:600}

/* ── 팝업 ── */
.scrim{position:fixed;inset:0;z-index:50;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center}
.sheet{position:relative;width:100%;max-width:560px;max-height:88vh;overflow:auto;background:var(--card);color:var(--ink);border-radius:var(--rad-7) var(--rad-7) 0 0;box-shadow:0 -12px 40px var(--shadow);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (min-width:700px){.scrim{align-items:center;padding:var(--sp-10)}.sheet{border-radius:var(--rad-7)}}
.sh-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-7) var(--sp-8);background:var(--card);border-bottom:1px solid var(--line)}
.sh-head h2{margin:0;font-size:var(--fs-6)}
.x{margin-left:auto;width:34px;height:34px;border:0;border-radius:var(--rad-4);background:var(--soft);cursor:pointer;font-size:var(--fs-7);line-height:1}
.sh-body{padding:var(--sp-8)}
.sh-top{display:flex;align-items:center;gap:var(--sp-7)}
.sh-name{margin:0;font-size:var(--fs-8);line-height:1.25}
.sh-pos{margin:var(--sp-1) 0 0;font-size:var(--fs-3);color:var(--muted)}
.sh-club{display:flex;align-items:center;gap:var(--sp-5);margin-top:var(--sp-7);padding:var(--sp-5) var(--sp-6);border:1px solid var(--line);border-radius:var(--rad-5)}
.sh-club .cn{font-weight:700}
.sh-club .lg{font-size:var(--fs-3);color:var(--muted)}
.sh-tags{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-5)}
.sh-sec{margin-top:var(--sp-8)}
.sh-sec h3{margin:0 0 var(--sp-4);font-size:var(--fs-3);color:var(--muted)}
.statgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--rad-5);overflow:hidden}
.statgrid div{display:grid;gap:var(--sp-1);padding:var(--sp-5) var(--sp-6);border-left:1px solid var(--line)}
.statgrid div:first-child{border-left:0}
.statgrid b{font-size:var(--fs-8);line-height:1.1;font-variant-numeric:tabular-nums}
.statgrid span{font-size:var(--fs-2);color:var(--muted)}
.sh-cap{margin-left:var(--sp-4);font-weight:500;color:var(--muted)}
.sh-sub{margin:var(--sp-7) 0 var(--sp-3);font-size:var(--fs-3);color:var(--muted)}
.sh-fine{margin:var(--sp-4) 0 0;font-size:var(--fs-2);color:var(--muted)}
.stbl{width:100%;margin-top:var(--sp-5);border-collapse:collapse;font-size:var(--fs-3);font-variant-numeric:tabular-nums}
.stbl th{padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--line);font-size:var(--fs-2);font-weight:600;color:var(--muted);text-align:left}
.stbl td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line)}
.stbl .num{text-align:right;width:3.6rem}
.stbl tfoot td{font-weight:700;border-bottom:0}
.recent{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.recent li{display:grid;grid-template-columns:5.2rem minmax(0,1fr) auto;align-items:center;gap:var(--sp-5);padding:var(--sp-4) 0;border-bottom:1px solid var(--line);font-size:var(--fs-3)}
.recent .d{color:var(--muted);font-variant-numeric:tabular-nums}
.recent .vs{min-width:0}
.recent .vs .c{display:block;font-size:var(--fs-2);color:var(--muted)}
.thin{margin:0;padding:var(--sp-6);border:1px dashed var(--line);border-radius:var(--rad-5);font-size:var(--fs-3);color:var(--muted)}
.thin strong{display:block;color:var(--ink);font-weight:600}
/* 선수 팝업 링크·SNS — 링크·SNS 장에서 씀(지금은 비워 둔 칸) */
.links{display:grid;gap:var(--sp-3)}
.lnk{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);width:100%;padding:var(--sp-5) var(--sp-6);border:1px solid var(--line);border-radius:var(--rad-4);background:var(--soft);text-align:left;cursor:pointer;font-size:var(--fs-4)}
.lnk.primary{border-color:var(--blue);font-weight:700}
.lnk .why{font-size:var(--fs-2);font-weight:400;color:var(--muted)}
.lnk[disabled]{opacity:.6;cursor:not-allowed}
.sh-actions{margin-top:var(--sp-8)}
.sh-actions .btn-line{width:100%;margin:0}
.plist{list-style:none;margin:var(--sp-6) 0 0;padding:0;border-top:1px solid var(--line)}
.prow{display:grid;grid-template-columns:1.5rem 21px minmax(0,1fr);align-items:center;gap:var(--sp-2) var(--sp-5);padding:var(--sp-4) 0;border-bottom:1px solid var(--line)}
.prank{font-weight:700;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.pname{font-weight:700;font-size:var(--fs-4)}
.ptiers{grid-column:3;display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-7);font-size:var(--fs-3)}
.ptiers label{display:inline-flex;align-items:center;gap:var(--sp-3);cursor:pointer}
.ptiers input{width:16px;height:16px;margin:0;accent-color:var(--blue)}
.ptiers .c{color:var(--muted)}
.presets{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
.presult{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);margin:0 calc(-1 * var(--sp-8)) calc(-1 * var(--sp-8));padding:var(--sp-6) var(--sp-8);background:var(--card);border-top:1px solid var(--line)}
.presult .n{font-size:var(--fs-9);font-variant-numeric:tabular-nums}
.presult .lbl{font-size:var(--fs-3);color:var(--muted);margin-left:var(--sp-2)}
.anon{margin:0;font-size:var(--fs-3);color:var(--muted)}
.toast{position:fixed;left:50%;bottom:calc(var(--sp-9) + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:60;max-width:calc(100% - var(--sp-11));padding:var(--sp-5) var(--sp-7);border-radius:var(--rad-4);background:var(--ink);color:var(--card);font-size:var(--fs-4);box-shadow:0 8px 24px var(--shadow)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ── 배지·국기·UEFA·로고 그리기용 (색은 tokens.css 변수) ── */
.badge .b-ol{fill:none;stroke:var(--badge-outline);stroke-width:1.2}
.badge .b-tx{font-family:var(--f-badge);font-weight:800;text-anchor:middle;letter-spacing:.3px;paint-order:stroke;stroke:var(--badge-halo-on-light-text);stroke-width:2.6px}
.badge .b-tx.dark{stroke:var(--badge-halo-on-dark-text)}
/* 팀 목록에 없는 팀: 중립 배지·아바타(색은 tokens.css) */
.badge .bn1{fill:var(--badge-neutral)}
.badge .bn2{fill:var(--badge-neutral-2)}
.badge.neutral .b-tx{fill:var(--badge-neutral-tx)}
.avatar.n{--c1:var(--badge-neutral);--c2:var(--badge-neutral-2);--tx:var(--badge-neutral-tx)}
.uefa .u-bg{fill:var(--uefa-bg)}
.uefa .u-st{fill:var(--uefa-star)}
.logo .ld{fill:var(--on-brand-dot)}
.logo .ld.r{fill:var(--logo-red)}
.logo .ld.b{fill:var(--logo-blue)}

/* ── 작은 조정용 ── */
.mt-gap{margin-top:var(--sp-5)}
.btn-line.compact{width:auto;margin:0;padding:0 var(--sp-7)}
.comp-sub{font-weight:500;color:var(--muted)}

/* ── UEFA 리그 순위(2026-11-11 — 가운데 한 단, 맨 위 칸 + 표 한 장: 순위 · 나라 · 지난 네 시즌 끝 순위) ── */
.tbl.rank tbody tr{cursor:default}
.tbl.rank tbody tr:hover{background:none}
.tbl.rank td{padding-block:var(--sp-4)}
.tbl.rank .rk-n{width:44px;padding-right:0}
.rk-c{display:inline-grid;place-items:center;min-width:28px;height:24px;padding:0 var(--sp-2);border-radius:var(--rad-4);font-family:var(--f-num);font-weight:800;font-size:var(--fs-6);line-height:1;font-variant-numeric:tabular-nums;color:var(--muted)}
.z5 .rk-c{background:var(--blue);color:var(--card)}   /* 1~5위: 진한 10대 리그 색 · 글자 = 칸 바탕색(어두운 화면의 밝은 파랑 위에서도 읽히게) — 지난 시즌 칸도 그 시즌 순위로 */
.z10 .rk-c{background:var(--zone-soft);color:var(--blue)}   /* 6~10위 */
.rk-who{display:flex;align-items:center;gap:var(--sp-5);min-width:0}
.rk-t{display:grid;min-width:0;font-weight:600}
.rk-a{color:inherit;text-decoration:underline;text-decoration-color:var(--muted);text-decoration-thickness:1px;text-underline-offset:3px}   /* 한국 선수가 뛰는 나라 → 리그별 페이지 */
.rk-a:hover{color:var(--blue);text-decoration-color:var(--blue)}
.tbl.rank .yr{text-align:center;white-space:nowrap;color:var(--muted)}   /* 지난 시즌 칸(가운데) — 빈칸 '–'도 흐리게 */
.tbl.rank th.yr{font-size:var(--fs-2)}
@media (min-width:700px){.tbl.rank .rk-nm{width:260px}}   /* PC: 나라 칸 폭을 정해 남는 폭을 시즌 칸이 고르게 나눔(가운데가 비지 않게 — 웅찬 11-11) */
/* 5대·10대 경계: 5위·10위 줄 아래 파란 선(꼬리표는 뺌 — 웅찬 11-11) */
.tbl.rank tr.cut td{border-bottom:2px solid var(--blue)}
.page-note a,.gnote a{color:var(--blue);font-weight:600}   /* 글 안 링크(UEFA 공식 사이트 · 'UEFA 국가(협회) 계수 순위' → 이 페이지) */
@media (max-width:699px){
  .tbl.rank th,.tbl.rank td{padding-inline:var(--sp-3)}
  .tbl.rank th:first-child,.tbl.rank td:first-child{padding-left:var(--sp-6)}
  .tbl.rank th:last-child,.tbl.rank td:last-child{padding-right:var(--sp-6)}
  .tbl.rank .rk-n{width:40px}
  .tbl.rank .yr{width:38px;padding-inline:var(--sp-1)}   /* 순위 칸 40 · 시즌 칸 38 — 360폭에서 가장 긴 나라 이름(여섯 글자)도 한 줄에 */
  .tbl.rank th.yr{font-size:var(--fs-1)}
  .tbl.rank th.yr .y2{display:none}   /* '2024/25' → '24/25' */
}
