/* ScoreDeck 스타일 v3 — 라이트 기본 + 다크 전환, 살짝 둥근 카드, 노랑 포인트
   색은 아래 변수만 바꾸면 전체에 반영됩니다. --r: 버튼·칩, --rc: 카드·패널 */
:root {
  --bg: #F1F2F4;
  --panel: #FFFFFF;
  --panel-2: #F7F8FA;     /* 머리줄·보조 배경 */
  --hover: #F2F4F7;
  --line: #E2E5EA;
  --line-soft: #ECEEF1;
  --text: #121417;
  --text-2: #3E4550;
  --muted: #78808B;
  --topbar: #FFFFFF;
  --accent: #FFC21A;        /* 노랑 포인트 (면·밑줄·막대) */
  --accent-text: #9A6700;   /* 흰 바탕 위 노랑 글자 (읽히도록 진하게) */
  --accent-ink: #15171A;    /* 노랑 면 위 글자 */
  --accent-soft: rgba(255, 194, 26, .16);
  --live: var(--accent);
  --live-text: var(--accent-text);
  --live-grad: rgba(255, 194, 26, .26);
  --yellow: #F5B400;
  --red: #E5484D;
  --fav-off: #A3AAB3;
  --flag-edge: rgba(0, 0, 0, .12);
  --shadow: 0 1px 2px rgba(16, 24, 40, .05);
  --win: #22B566; --draw: #8A929C; --lose: #E5484D;
  --z-ucl: #3B82F6; --z-uel: #F59E0B; --z-rel: #E5484D;
  --r: 6px;
  --rc: 10px;
  --font: 'Pretendard Variable', Pretendard, 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  color-scheme: light;
}
:root[data-theme="dark"] {
  --bg: #0E0F11;
  --panel: #1B1C1F;
  --panel-2: #151619;
  --hover: #24262A;
  --line: #2A2C31;
  --line-soft: #232529;
  --text: #F2F3F5;
  --text-2: #BCC2CA;
  --muted: #828A95;
  --topbar: #0E0F11;
  --accent: #FFC21A;
  --accent-text: #FFC93C;
  --accent-soft: rgba(255, 194, 26, .12);
  --live-grad: rgba(255, 194, 26, .20);
  --yellow: #FFC21A;
  --fav-off: #5E6670;
  --flag-edge: rgba(255, 255, 255, .14);
  --shadow: none;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font); font-size: 14px; line-height: 1.4; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; border-radius: 0; }
h1, h2, h3, h4, h5 { margin: 0; letter-spacing: -0.01em; }
p { margin: 0; }
.container { width: 100%; max-width: 1228px; /* 메뉴 252 + 간격 12 + 목록 620 + 간격 12 + 광고 300 + 좌우 여백 32 */ margin: 0 auto; padding: 0 16px; }
.muted { color: var(--muted); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.ic { flex: none; display: block; }

/* ── 상단바 ── */
.topbar { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30; background: var(--topbar); border-bottom: 1px solid var(--line); }
.topbar-inner { display: flex; align-items: center; gap: 32px; height: 56px; }
.brand { display: flex; align-items: center; flex: none; }
.brand img { display: block; }
.main-nav { display: flex; height: 100%; }
.main-nav a { display: flex; align-items: center; height: 100%; padding: 0 16px; font-weight: 700; font-size: 14px; color: var(--muted); border-bottom: 2px solid transparent; border-top: 2px solid transparent; }
.main-nav a:hover { color: var(--text); background: var(--hover); }
.main-nav a.active { color: var(--text); border-bottom-color: var(--accent); }
.top-actions { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.sample-badge { font-size: 11.5px; font-weight: 700; color: var(--accent-text); border: 1px solid var(--accent); padding: 3px 8px; border-radius: var(--r); white-space: nowrap; }
.lang-btn { font-size: 12px; font-weight: 800; letter-spacing: .06em; height: 30px; padding: 0 10px; border: 1px solid var(--line); border-radius: var(--r); color: var(--text-2); }
.lang-btn:hover { border-color: var(--muted); color: var(--text); }
.icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--r); color: var(--text-2); }
.icon-btn:hover { background: var(--hover); color: var(--text); }
.only-mobile { display: none; }

/* ── 종목 바 ── */
.sport-tabs-wrap { background: var(--panel); border-bottom: 1px solid var(--line); }
.sport-tabs { display: flex; overflow-x: auto; scrollbar-width: none; }
.sport-tabs::-webkit-scrollbar { display: none; }
.sport-pill { flex: none; display: inline-flex; align-items: center; gap: 7px; height: 46px; padding: 0 14px; color: var(--muted); font-weight: 700; font-size: 13.5px; white-space: nowrap; border-bottom: 2px solid transparent; border-top: 2px solid transparent; }
.sport-pill:hover { color: var(--text); background: var(--hover); }
.sport-pill.active { color: var(--text); border-bottom-color: var(--accent); }
.sport-pill.active .slot { color: var(--accent-text); }

/* ── 레이아웃 ── */
.layout { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 12px; padding-top: 12px; padding-bottom: 40px; align-items: start; }
body.no-side .layout { grid-template-columns: minmax(0, 1fr); max-width: 820px; }
body.no-side .sidebar { display: none; }
.view { min-width: 0; outline: none; display: flex; flex-direction: column; gap: 12px; }

/* ── 왼쪽 메뉴 ── */
/* 왼쪽 메뉴는 따로 스크롤하지 않고 페이지와 함께 내려감 */
.sidebar { position: static; }
.side-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); overflow: hidden; box-shadow: var(--shadow); }
.side-search, .search-page { position: relative; display: block; }
.side-search { border-bottom: 1px solid var(--line); }
.ss-ic { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.side-search input, .search-page input { width: 100%; height: 42px; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 13.5px; padding: 0 12px 0 38px; outline: none; }
.side-search input::placeholder, .search-page input::placeholder { color: var(--muted); }
.search-page { background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); overflow: hidden; }
.search-page input { height: 48px; font-size: 15px; }
.search-page:focus-within, .side-search:focus-within { box-shadow: inset 0 -2px 0 var(--accent); }
.side-body { padding: 0 0 6px; }
.side-loading { color: var(--muted); padding: 14px 12px; font-size: 13px; }
.side-sec .side-title { font-size: 11px; font-weight: 800; color: var(--muted); letter-spacing: .08em; text-transform: uppercase; padding: 9px 12px; background: var(--panel-2); border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); margin-top: -1px; }
.side-sec ul { list-style: none; margin: 0; padding: 0; }
.side-sec a { display: flex; align-items: center; gap: 10px; padding: 7px 12px; border-bottom: 1px solid var(--line-soft); }
.side-sec li:last-child a { border-bottom: 0; }
.side-sec a:hover { background: var(--hover); }
.si-text { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.25; }
.si-text b { font-weight: 600; font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.si-text small { color: var(--muted); font-size: 11.5px; }

/* ── 패널(카드) ── */
.panel, .card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); overflow: hidden; box-shadow: var(--shadow); min-width: 0; }
.card-head { display: flex; align-items: center; justify-content: space-between; height: 38px; padding: 0 12px; background: var(--panel-2); border-bottom: 1px solid var(--line); }
.card-head h3 { font-size: 12.5px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; color: var(--text-2); }
.more-link { display: inline-flex; align-items: center; gap: 2px; font-size: 12px; color: var(--muted); font-weight: 600; }
.more-link:hover { color: var(--accent-text); }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.span-2 { grid-column: span 2; }
.page-head { padding: 4px 0 0; }
.page-head h1 { font-size: 20px; font-weight: 800; }

/* ── 배너 ── */
.banner { overflow: hidden; border-radius: var(--rc); border: 1px solid var(--line); aspect-ratio: 1280 / 200; /* PC·모바일 공용 비율 (640×100과 같음) */ background: var(--panel-2); }
.banner.slot img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ── 경기 목록 도구줄 (필터 + 날짜) ── */
.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; }
.chip { height: 30px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--r); font-size: 12px; font-weight: 800; letter-spacing: .03em; color: var(--text-2); display: inline-flex; align-items: center; gap: 6px; }
.chip:hover { border-color: var(--muted); color: var(--text); }
.chip.active { background: var(--text); border-color: var(--text); color: var(--bg); }
.chip-live.active { background: var(--live); border-color: var(--live); color: var(--accent-ink); }
.chip-n { min-width: 16px; height: 16px; padding: 0 4px; border-radius: var(--r); background: var(--live); color: var(--accent-ink); font-size: 10.5px; display: inline-flex; align-items: center; justify-content: center; }
.chip-live.active .chip-n { background: var(--accent-ink); color: var(--accent); }
.date-nav { display: flex; align-items: stretch; height: 30px; }
.dn-btn { width: 30px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); color: var(--text-2); }
.dn-btn:first-child { border-radius: var(--r) 0 0 var(--r); } .dn-btn:last-child { border-radius: 0 var(--r) var(--r) 0; }
.dn-btn:hover { background: var(--hover); color: var(--text); }
.dn-date { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 0 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--text-2); cursor: pointer; min-width: 150px; justify-content: center; }
.dn-date:hover { background: var(--hover); }
.dn-date span { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.dn-date b { font-size: 13px; color: var(--text); }
.dn-date small { font-size: 11.5px; color: var(--muted); }
.dn-date input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.dn-date input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; }

/* ── 리그 묶음 (리그 로고 + 리그명, 아래 국가명) ── */
.league-block + .league-block { border-top: 1px solid var(--line); }
.league-head { display: flex; align-items: center; gap: 4px; min-height: 56px; padding: 0 4px 0 12px; background: var(--panel-2); border-bottom: 1px solid var(--line); }
.lh-main { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1; padding: 8px 0; }
.lh-main:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.lh-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.lh-text strong, .lh-text .lh-title { margin: 0; font-size: 14.5px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lh-text small { color: var(--muted); font-size: 12.5px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lh-actions { display: flex; align-items: center; flex: none; height: 40px; }
.lh-link { flex: none; font-size: 12px; color: var(--muted); font-weight: 700; padding: 0 8px; }
.lh-link:hover { color: var(--text); }
.league-head .fav { width: 36px; height: 100%; }
.league-head .fav svg { width: 17px; height: 17px; }
.lh-chev { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 100%; color: var(--text-2); }
.lh-chev:hover { color: var(--text); }
.rows { display: flex; flex-direction: column; }

/* ── 경기 한 줄 ── */
.match-row { position: relative; display: flex; align-items: stretch; background: var(--panel); border-bottom: 1px solid var(--line-soft); }
.rows > .match-row:last-child { border-bottom: 0; }
.match-row:hover { background: var(--hover); }
.match-row.is-live::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--live); }
.mr-link { flex: 1; display: flex; align-items: center; min-width: 0; padding: 7px 0; }
.mr-status { flex: none; width: 70px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 0 4px; text-align: center; }
.mr-st { font-weight: 600; font-size: 12.5px; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; letter-spacing: -0.01em; }
.match-row:not(.is-ft):not(.is-live) .mr-st { color: var(--text-2); }
.is-live .mr-st { color: var(--live-text); font-weight: 800; }
.mr-date { font-size: 11px; color: var(--muted); }
.mr-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; padding: 0 12px 0 8px; border-left: 1px solid var(--line-soft); }
.mr-league { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--muted); }
.mr-team { display: flex; align-items: center; gap: 8px; min-width: 0; height: 22px; }
.mr-name { flex: 1; min-width: 0; font-size: 14px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mr-team.win .mr-name { font-weight: 800; }
.mr-team.lose .mr-name { color: var(--text-2); }
.mr-score { flex: none; min-width: 24px; text-align: right; font-weight: 800; font-size: 14px; font-variant-numeric: tabular-nums; }
.mr-score.lose { color: var(--muted); }
.is-live .mr-score { color: var(--text); }
.mr-sub { font-size: 11.5px; color: var(--muted); }
.mr-race { display: flex; flex-direction: column; }
.mr-race strong { font-size: 14px; }
.mr-race span { font-size: 12px; color: var(--muted); }
.mr-leader { flex: none; display: flex; align-items: center; gap: 6px; padding-right: 4px; font-weight: 800; font-size: 13px; }
.mr-leader small { color: var(--muted); font-weight: 500; font-size: 11.5px; }
.fav { flex: none; width: 42px; display: flex; align-items: center; justify-content: center; color: var(--fav-off); }
.fav svg { width: 18px; height: 18px; }
.fav:hover { color: var(--text); }
.fav.on { color: var(--yellow); }
.fav.on svg { fill: var(--yellow); }

/* ── 탭 (밑줄형) ── */
.tabs { display: flex; background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); overflow-x: auto; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tab { flex: none; padding: 0 16px; height: 44px; display: inline-flex; align-items: center; color: var(--muted); font-weight: 700; font-size: 13.5px; white-space: nowrap; border-bottom: 2px solid transparent; border-top: 2px solid transparent; }
.tab:hover { color: var(--text); background: var(--hover); }
.tab.active { color: var(--text); border-bottom-color: var(--accent); }
.tab-body { display: flex; flex-direction: column; gap: 12px; }

/* ── 경기 상세 머리 ── */
.match-head { position: relative; }
.crumb { display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 12px; background: var(--panel-2); border-bottom: 1px solid var(--line); color: var(--text-2); }
.crumb:hover b { text-decoration: underline; text-underline-offset: 3px; }
.crumb span { display: flex; align-items: baseline; gap: 8px; min-width: 0; white-space: nowrap; overflow: hidden; }
.crumb b { font-size: 13px; color: var(--text); }
.crumb small { font-size: 12px; color: var(--muted); }
.crumb .ic { color: var(--muted); }
.scoreboard { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; padding: 22px 12px 20px; }
.sb-team { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; font-weight: 800; font-size: 15px; padding: 6px; }
.sb-team:hover span { text-decoration: underline; text-underline-offset: 3px; }
.sb-center { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 140px; }
.sb-score { font-size: 38px; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; display: flex; gap: 10px; align-items: center; line-height: 1.1; }
.sb-score i { font-style: normal; color: var(--muted); font-weight: 400; }
.sb-time { font-size: 30px; font-weight: 800; font-variant-numeric: tabular-nums; }
.sb-state { font-size: 12.5px; font-weight: 800; color: var(--text-2); text-transform: uppercase; letter-spacing: .03em; }
.sb-state.live { color: var(--live-text); display: inline-flex; align-items: center; gap: 6px; }
.sb-state.live::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--live); animation: pulse 1.4s infinite; }
.sb-sub { font-size: 12px; color: var(--muted); }
.mh-fav { position: absolute; top: 0; right: 0; height: 38px; display: flex; }
.race-head { display: flex; align-items: center; gap: 16px; padding: 18px 12px; }
.race-head > div { flex: 1; }
.race-head h1 { font-size: 22px; font-weight: 800; }
.race-head p { font-size: 13px; margin-top: 4px; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }

/* ── 타임라인 ── */
.timeline { padding: 4px 0; display: flex; flex-direction: column; }
.tl-row { display: grid; grid-template-columns: 1fr 52px 1fr; align-items: center; min-height: 44px; border-bottom: 1px solid var(--line-soft); padding: 0 12px; }
.tl-min { grid-column: 2; grid-row: 1; text-align: center; font-weight: 800; color: var(--text-2); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.tl-home { grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 10px; justify-content: flex-start; text-align: right; flex-direction: row-reverse; }
.tl-away { grid-column: 3; grid-row: 1; display: flex; align-items: center; gap: 10px; }
.tl-home:empty, .tl-away:empty { visibility: hidden; }
.ev-text { display: flex; flex-direction: column; line-height: 1.25; }
.ev-text b { font-weight: 700; font-size: 13.5px; }
.ev-text small { color: var(--muted); font-size: 11.5px; }
.ev-text small.out { color: var(--red); }
.ev-ic { flex: none; width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; color: var(--text-2); }
.ev-goal { color: var(--accent-text); }
.card-y, .card-r { display: block; width: 10px; height: 14px; border-radius: 1px; background: var(--yellow); }
.card-r { background: var(--red); }
.ev-score { flex: none; font-weight: 800; font-size: 12px; border: 1px solid var(--line); padding: 1px 6px; font-variant-numeric: tabular-nums; }
.tl-div { display: flex; align-items: center; justify-content: space-between; height: 32px; padding: 0 12px; background: var(--panel-2); border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; margin-top: -1px; }
.tl-div b { color: var(--text); font-variant-numeric: tabular-nums; }

/* ── 표 ── */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }
.table th { color: var(--muted); font-weight: 700; font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; padding: 0 8px; height: 32px; border-bottom: 1px solid var(--line); white-space: nowrap; background: var(--panel); }
.table td { padding: 0 8px; height: 36px; border-bottom: 1px solid var(--line-soft); white-space: nowrap; }
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover td { background: var(--hover); }
.table tr.hl td { background: var(--accent-soft); }
.table th:first-child, .table td:first-child { padding-left: 12px; }
.table th:last-child, .table td:last-child { padding-right: 12px; }
.table .num { text-align: center; width: 1%; }
.table .left { text-align: left; }
.table .strong { font-weight: 800; }
.cell-team { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.cell-team span { overflow: hidden; text-overflow: ellipsis; }
a.cell-team:hover span { text-decoration: underline; text-underline-offset: 3px; }
.cell-team.sm { font-size: 12px; color: var(--muted); gap: 5px; }
.cell-player { display: flex; flex-direction: column; gap: 1px; padding: 4px 0; }
.pos { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 20px; border-radius: var(--r); font-weight: 800; font-size: 11.5px; }
.pos.z-ucl { background: var(--z-ucl); color: #fff; }
.pos.z-uel { background: var(--z-uel); color: #111; }
.pos.z-rel { background: var(--z-rel); color: #fff; }
.pos.podium.p1 { background: #E9C46A; color: #111; } .pos.podium.p2 { background: #C0C6CF; color: #111; } .pos.podium.p3 { background: #C98B5A; color: #111; }
.form { display: inline-flex; gap: 2px; }
.form i { font-style: normal; width: 18px; height: 18px; border-radius: var(--r); display: inline-flex; align-items: center; justify-content: center; font-size: 10.5px; font-weight: 800; color: #0F1115; }
.form .f-W { background: var(--win); } .form .f-D { background: var(--draw); } .form .f-L { background: var(--lose); color: #fff; }
.legend { display: flex; flex-wrap: wrap; gap: 14px; padding: 10px 12px; font-size: 12px; color: var(--muted); border-top: 1px solid var(--line); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend i { width: 10px; height: 10px; }
.legend .z-ucl { background: var(--z-ucl); } .legend .z-uel { background: var(--z-uel); } .legend .z-rel { background: var(--z-rel); }
.line-score .cell-team { max-width: 220px; }

/* ── 정보·통계 ── */
.info-list { margin: 0; }
.info-list > div { display: flex; justify-content: space-between; gap: 16px; padding: 0 12px; height: 40px; align-items: center; border-bottom: 1px solid var(--line-soft); }
.info-list > div:last-child { border-bottom: 0; }
.info-list dt { color: var(--muted); font-size: 13px; }
.info-list dd { margin: 0; font-weight: 700; text-align: right; font-size: 13.5px; }
.info-list dd a { color: var(--accent-text); }
.stats { padding: 6px 0; display: flex; flex-direction: column; }
.stat { padding: 9px 12px; border-bottom: 1px solid var(--line-soft); }
.stat:last-child { border-bottom: 0; }
.stat-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; font-variant-numeric: tabular-nums; }
.stat-top span { color: var(--text-2); font-size: 12.5px; }
.stat-top b { font-weight: 800; min-width: 44px; font-size: 13.5px; }
.stat-top b:last-child { text-align: right; }
.stat-top b.lead { color: var(--accent-text); }
.stat-bars { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.bar { height: 5px; background: var(--hover); overflow: hidden; display: flex; }
.bar.home { justify-content: flex-end; }
.bar i { display: block; height: 100%; background: var(--muted); }
.bar.lead i { background: var(--accent); }

/* ── 라인업 ── */
.lu-head { display: flex; justify-content: space-between; align-items: center; height: 40px; padding: 0 12px; gap: 8px; background: var(--panel-2); border-bottom: 1px solid var(--line); }
.lu-head .cell-team { flex: 1; min-width: 0; }
.lu-head .cell-team.rev { justify-content: flex-end; }
.lu-head .cell-team b { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.lu-head .cell-team small { color: var(--muted); font-weight: 800; white-space: nowrap; flex: none; }
.pitch { position: relative; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; background: repeating-linear-gradient(90deg, #1C5A38 0 9.09%, #195233 9.09% 18.18%); min-height: 380px; }
.pitch-half { display: flex; padding: 12px 6px; z-index: 1; }
.pitch-half.home { flex-direction: row; }
.pitch-half.away { flex-direction: row-reverse; }
.pitch-line { flex: 1; display: flex; flex-direction: column; justify-content: space-around; align-items: center; gap: 4px; }
.pitch-mid { position: absolute; left: 50%; top: 0; bottom: 0; border-left: 2px solid rgba(255,255,255,.3); }
.pitch-circle { position: absolute; left: 50%; top: 50%; width: 90px; height: 90px; transform: translate(-50%,-50%); border: 2px solid rgba(255,255,255,.3); border-radius: 50%; }
.pl-chip { display: flex; flex-direction: column; align-items: center; gap: 3px; max-width: 76px; }
.pl-num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #fff; color: #111; font-weight: 800; font-size: 12.5px; box-shadow: 0 1px 4px rgba(0,0,0,.4); flex: none; }
.pitch-half.away .pl-num { background: #111; color: #fff; box-shadow: 0 0 0 2px #fff; }
.pl-num.sm { width: 24px; height: 22px; font-size: 11.5px; border-radius: var(--r); background: var(--hover); color: var(--text); box-shadow: none; }
.pl-name { font-size: 11px; font-weight: 700; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.7); text-align: center; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 76px; }
.lu-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lu-list { background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); overflow: hidden; }
.lu-list h4 { font-size: 12.5px; font-weight: 800; height: 38px; display: flex; align-items: center; padding: 0 12px; background: var(--panel-2); border-bottom: 1px solid var(--line); text-transform: uppercase; letter-spacing: .02em; color: var(--text-2); }
.lu-list ul, .squad { list-style: none; margin: 0; padding: 0; }
.lu-list li, .squad li { display: flex; align-items: center; gap: 10px; padding: 0 12px; height: 36px; border-bottom: 1px solid var(--line-soft); }
.lu-list li:last-child, .squad li:last-child { border-bottom: 0; }
.lu-list li span:nth-child(2), .squad li b { flex: 1; font-weight: 600; font-size: 13.5px; }
.lu-list li small, .squad li small { color: var(--muted); font-size: 11.5px; font-weight: 700; }

/* ── 상대 전적 ── */
.h2h-sum { display: flex; justify-content: space-around; padding: 16px 12px; border-bottom: 1px solid var(--line); }
.h2h-sum > div { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.h2h-sum b { font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; }
.h2h-sum span { color: var(--muted); font-size: 12px; font-weight: 700; }
.h2h-list { display: flex; flex-direction: column; }
.h2h-row { display: grid; grid-template-columns: 110px 1fr auto 1fr; align-items: center; gap: 10px; padding: 0 12px; height: 40px; border-bottom: 1px solid var(--line-soft); font-size: 13.5px; }
.h2h-row:last-child { border-bottom: 0; }
.h2h-row:hover { background: var(--hover); }
.h2h-date { color: var(--muted); font-size: 12px; }
.h2h-t { display: flex; align-items: center; gap: 8px; min-width: 0; }
.h2h-t.right { justify-content: flex-end; text-align: right; }
.h2h-s { font-variant-numeric: tabular-nums; padding: 1px 8px; border: 1px solid var(--line); font-weight: 800; }

/* ── MMA 비교 ── */
.tale-row { display: grid; grid-template-columns: 1fr auto 1fr; padding: 0 12px; height: 40px; border-bottom: 1px solid var(--line-soft); align-items: center; font-size: 13.5px; }
.tale-row:last-child { border-bottom: 0; }
.tale-row span { color: var(--muted); font-size: 12px; padding: 0 16px; text-transform: uppercase; letter-spacing: .03em; }
.tale-row b:last-child { text-align: right; }

/* ── 리그·팀 머리 ── */
.entity-head { display: flex; align-items: center; gap: 16px; padding: 16px 0 16px 16px; }
.eh-text { flex: 1; min-width: 0; }
.eh-text h1 { font-size: 22px; font-weight: 800; }
.eh-text p { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); margin-top: 6px; font-size: 13px; }
.eh-text .dot { opacity: .5; }
.entity-head .fav { width: 52px; height: 52px; }

/* ── 즐겨찾기·검색 목록 ── */
.fav-item { display: flex; align-items: center; border-bottom: 1px solid var(--line-soft); }
.fav-item:last-child { border-bottom: 0; }
.fav-item > a, a.fav-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; min-width: 0; }
.fav-item > a { flex: 1; }
.fav-item:hover, a.fav-item:hover { background: var(--hover); }
.fav-item .ic { color: var(--muted); }

/* ── 설정 ── */
.set-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px; border-bottom: 1px solid var(--line-soft); }
.set-row:last-child { border-bottom: 0; }
.set-row b { font-size: 14px; }
.set-row p { color: var(--muted); font-size: 12.5px; margin-top: 4px; max-width: 520px; }
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; flex: none; }
.seg button { padding: 0 14px; height: 32px; font-weight: 700; font-size: 13px; color: var(--muted); }
.seg button + button { border-left: 1px solid var(--line); }
.seg button.on { background: var(--text); color: var(--bg); }
select { background: var(--panel-2); color: var(--text); border: 1px solid var(--line); border-radius: var(--r); height: 34px; padding: 0 10px; font: inherit; font-size: 13px; flex: none; max-width: 220px; }
.switch { position: relative; width: 44px; height: 24px; border-radius: 12px; background: var(--hover); border: 1px solid var(--line); flex: none; }
.switch i { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--muted); transition: transform .15s, background .15s; }
.switch.on { background: var(--accent-soft); border-color: var(--accent); }
.switch.on i { transform: translateX(20px); background: var(--accent); }

/* ── 상태 표시 ── */
.state { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 44px 16px; color: var(--muted); text-align: center; background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); font-size: 13.5px; }
.panel .state, .card .state, .state.empty { border: 0; background: transparent; padding: 32px 16px; }
.state .big { font-size: 44px; font-weight: 800; color: var(--text); }
.spinner { width: 24px; height: 24px; border-radius: 50%; border: 3px solid var(--hover); border-top-color: var(--accent); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.btn { display: inline-flex; align-items: center; justify-content: center; height: 34px; padding: 0 16px; border-radius: var(--r); background: var(--accent); color: var(--accent-ink); font-weight: 800; font-size: 13px; }
.btn.ghost { background: transparent; color: var(--text); border: 1px solid var(--line); flex: none; }
.btn:hover { filter: brightness(1.1); }
.sk-row { display: flex; align-items: center; gap: 14px; padding: 0 12px; height: 52px; border-bottom: 1px solid var(--line-soft); }
.sk { display: block; height: 10px; background: linear-gradient(90deg, var(--panel-2), var(--hover), var(--panel-2)); background-size: 200% 100%; animation: shimmer 1.3s infinite; }
.sk-s { width: 40px; } .sk-c { flex: 1; max-width: 240px; } .sk-l { width: 70%; height: 12px; }
@keyframes shimmer { to { background-position: -200% 0; } }
.notice { padding: 16px; border-left: 3px solid var(--accent); }
.notice b { display: block; font-size: 14.5px; margin-bottom: 4px; }
.notice p { color: var(--muted); font-size: 13px; }

/* ── 뉴스 자리 ── */
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.news-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); overflow: hidden; }
.news-img { aspect-ratio: 16 / 9; display: flex !important; align-items: center; justify-content: center; background: var(--panel-2); color: var(--line); font-size: 36px; font-weight: 800; }
.news-text { padding: 12px; display: flex; flex-direction: column; gap: 8px; }

/* ── 이미지 자리 ── */
.slot { display: inline-flex; align-items: center; justify-content: center; flex: none; position: relative; line-height: 0; }
.slot img { width: var(--s); height: var(--s); object-fit: contain; display: block; }
.slot-logo img { width: auto; height: 30px; }
/* 다크 화면에서 검정 계열 로고가 묻히지 않도록 아주 옅은 테두리 빛만 */
:root[data-theme="dark"] .slot img.logo-img { filter: drop-shadow(0 0 1px rgba(255,255,255,.45)); }
.slot-flag svg, .slot-flag img { box-shadow: 0 0 0 1px var(--flag-edge); border-radius: 2px; }
body.show-slots .slot { outline: 1px dashed #F2C230; outline-offset: 1px; }
body.show-slots .slot::after { content: attr(data-label); position: absolute; left: 50%; bottom: 100%; transform: translate(-50%, -4px); white-space: nowrap; background: #F2C230; color: #111; font-size: 10px; font-weight: 800; line-height: 1.3; padding: 1px 5px; pointer-events: none; z-index: 5; opacity: 0; transition: opacity .15s; }
body.show-slots .slot:hover::after, body.show-slots .banner.slot::after, body.show-slots .news-img.slot::after, body.show-slots .slot-logo::after { opacity: 1; }
body.show-slots .banner.slot::after, body.show-slots .news-img.slot::after { bottom: auto; top: 8px; left: 8px; transform: none; font-size: 11px; padding: 2px 7px; }
.banner.slot, .news-img.slot { display: block; line-height: normal; }

/* ── 모바일 메뉴 ── */
.drawer-dim { display: none; }

@media (max-width: 1080px) {
  .layout { grid-template-columns: 232px minmax(0, 1fr); }
  .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .only-mobile { display: inline-flex; }
  .topbar-inner { gap: 10px; height: 52px; }
  .main-nav a { padding: 0 10px; font-size: 13.5px; }
  .layout { grid-template-columns: minmax(0, 1fr); padding-top: 10px; }
  .sidebar { position: fixed; top: 0; left: 0; bottom: 0; width: min(300px, 86vw); max-height: none; overflow-y: auto; z-index: 50; background: var(--bg); transform: translateX(-105%); transition: transform .2s ease; }
  body.no-side .sidebar { display: block; }
  body.drawer-open .sidebar { transform: none; }
  body.drawer-open .drawer-dim { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.6); z-index: 40; }
  .grid-2 { grid-template-columns: minmax(0, 1fr); }
  .span-2 { grid-column: auto; }
}
@media (max-width: 640px) {
  .container { padding: 0 10px; }
  .sport-tabs-wrap .container { padding: 0; }
  .brand .slot-logo img { height: 24px; }
  .main-nav { display: none; }
  .sample-badge { display: none; }
  .sport-pill { height: 42px; padding: 0 12px; font-size: 13px; }
  .toolbar { padding: 8px 12px; }
  .date-nav { width: 100%; }
  .dn-date { flex: 1; min-width: 0; }
  .mr-status { width: 58px; }
  .mr-st { font-size: 12px; }
  .mr-name { font-size: 13.5px; }
  .mr-body { padding: 0 8px; }
  .fav { width: 38px; }
  .hide-sm { display: none; }
  .scoreboard { gap: 4px; padding: 16px 4px; }
  .sb-team { font-size: 13.5px; }
  .sb-team svg { width: 44px; height: 44px; }
  .sb-center { min-width: 92px; }
  .sb-score { font-size: 28px; gap: 6px; }
  .sb-time { font-size: 22px; }
  .tab { padding: 0 12px; font-size: 13px; }
  .pitch { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; min-height: 620px; background: repeating-linear-gradient(180deg, #1C5A38 0 9.09%, #195233 9.09% 18.18%); }
  .pitch-half.home { flex-direction: column; }
  .pitch-half.away { flex-direction: column-reverse; }
  .pitch-line { flex-direction: row; justify-content: space-around; }
  .pitch-mid { left: 0; right: 0; top: 50%; bottom: auto; border-left: 0; border-top: 2px solid rgba(255,255,255,.3); }
  .lu-cols { grid-template-columns: minmax(0, 1fr); }
  .h2h-row { grid-template-columns: 1fr auto 1fr; height: auto; padding: 8px 12px; row-gap: 4px; }
  .h2h-date { grid-column: 1 / -1; }
  .entity-head { padding: 12px 0 12px 12px; gap: 12px; }
  .entity-head svg { width: 48px; height: 48px; }
  .eh-text h1 { font-size: 18px; }
  .set-row { flex-direction: column; align-items: flex-start; }
  .news-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* 무료 플랜·시즌 안내 줄 */
.season-note { font-size: 12px; color: var(--muted); padding: 8px 12px; background: var(--panel-2); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: var(--r); }
.card > .season-note, .panel > .season-note { border-width: 0 0 1px 3px; border-radius: 0; }

/* 즐겨찾기 묶음 (경기 목록 맨 위) */
.fav-block + .league-block { border-top: 2px solid var(--line); }
.mr-sport { font-size: 10.5px; font-weight: 800; color: var(--bg); background: var(--text-2); padding: 0 5px; border-radius: var(--r); }

/* ════ v3 메인 경기 목록: 리그 머리줄은 바탕 위, 경기는 한 장씩 카드 ════ */

.panel.scores-panel { background: transparent; border: 0; box-shadow: none; overflow: visible; }
.scores-panel #toolbar { background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); box-shadow: var(--shadow); }
.scores-panel .toolbar { border-bottom: 0; }
.match-list > .season-note { margin-top: 12px; border-width: 1px 1px 1px 3px; border-radius: var(--r); }
.match-list .league-block, .match-list .league-block + .league-block { border: 0; margin-top: 10px; }
.match-list .league-head { background: transparent; border: 0; min-height: 42px; padding: 0 0 0 4px; }
.match-list .lh-main { padding: 4px 0; }
.match-list .rows { gap: 5px; }
.match-list .match-row { border: 1px solid var(--line); border-radius: var(--rc); overflow: hidden; box-shadow: var(--shadow); }
.match-list .rows > .match-row:last-child { border-bottom: 1px solid var(--line); }
.match-list .match-row .mr-link { padding: 7px 0; }
.match-list .mr-status { width: 78px; }
.match-list .mr-st { font-size: 13.5px; font-weight: 700; }
.match-list .mr-team { height: 26px; gap: 10px; }
.match-list .mr-name { font-size: 15px; }
.match-list .mr-score { font-size: 16px; min-width: 28px; }
.match-list .mr-body { gap: 4px; padding: 0 14px 0 14px; border-left: 1px solid var(--line); margin: 4px 0; }
.match-list .mr-league { margin-bottom: 2px; }
/* 진행 중: 왼쪽 노랑 막대 + 왼쪽에서 번지는 노랑 그라데이션 */
.match-row.is-live::before { width: 4px; background: var(--live); z-index: 1; }
.match-list .match-row.is-live { background: linear-gradient(90deg, var(--live-grad) 0, transparent 150px), var(--panel); }
.match-list .match-row.is-live:hover { background: linear-gradient(90deg, var(--live-grad) 0, transparent 150px), var(--hover); }

/* 즐겨찾기 묶음 머리줄 */
.fav-head { padding-left: 12px; background: var(--accent-soft); border-bottom-color: var(--accent); }
.match-list .fav-head { background: transparent; }
.fav-head .lh-text { flex-direction: row; align-items: center; gap: 8px; flex: 1; }
.fh-star { color: var(--accent); display: inline-flex; }
.fh-star svg { fill: var(--accent); }
.fh-count { font-size: 11.5px; font-weight: 800; color: var(--accent-ink); background: var(--accent); padding: 1px 7px; border-radius: 10px; }

/* 상단 라이트/다크 전환 버튼 */
.theme-btn { border: 1px solid var(--line); width: 32px; height: 30px; border-radius: var(--r); }
.brand .slot-logo svg { display: block; }

@media (max-width: 640px) {
  .match-list .mr-status { width: 62px; }
  .match-list .mr-name { font-size: 14px; }
  .match-list .mr-body { padding: 0 10px; }
  .match-list .league-block { margin-top: 12px; }
}
.match-list > .state { background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); margin-top: 12px; }
.match-list .mr-team .slot { --s: 22px; }
.match-list .mr-team .slot svg, .match-list .mr-team .slot img { width: 22px; height: 22px; }
.sidebar { display: flex; flex-direction: column; gap: 12px; }
.side-card[hidden] { display: none; }


/* 모바일: 헤더(로고 줄)는 위에 고정, 종목 메뉴는 스크롤되어 올라가고, 상단 배너는 헤더 바로 아래에 붙어서 따라 내려옴 */
@media (max-width: 900px) {
}

/* 모바일 배너: 상단은 640×100 띠로 낮추고, 하단에 같은 크기 띠를 고정 */
.m-anchor { display: none; }
@media (max-width: 900px) {
  .m-anchor { display: flex; justify-content: center; position: fixed; left: 0; right: 0; bottom: 0; z-index: 35; padding: 6px 10px calc(6px + env(safe-area-inset-bottom, 0px)); background: var(--panel); border-top: 1px solid var(--line); box-shadow: 0 -6px 14px -8px rgba(0, 0, 0, .25); }
  .m-anchor-x { position: absolute; top: -12px; right: 8px; width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--panel); border: 1px solid var(--line); color: var(--text-2); }
  body.has-anchor { padding-bottom: calc(66px + env(safe-area-inset-bottom, 0px)); } /* 320×50 + 위아래 여백 */
}

/* 모바일 서랍 메뉴: 맨 위에 상단 메뉴, 세로 배너는 숨김 */
.drawer-menu { display: none; }
@media (max-width: 900px) {
  .sidebar { padding: 12px; }
}
@media (max-width: 640px) {
  .drawer-menu { display: block; }
  .drawer-menu a { display: flex; align-items: center; justify-content: space-between; padding: 0 14px; height: 46px; font-weight: 700; font-size: 15px; border-bottom: 1px solid var(--line-soft); }
  .drawer-menu a:last-child { border-bottom: 0; }
  .drawer-menu a .ic { color: var(--muted); }
  .drawer-menu a:hover { background: var(--hover); }
}

/* ════ 광고 자리 (표준 크기) ════ */
.ad { display: block; flex: none; width: var(--aw); height: var(--ah); max-width: 100%; border-radius: var(--r); overflow: hidden; background: var(--panel-2); line-height: 0; }
.ad img, .ad a { display: block; width: 100%; height: 100%; }
.ad img { object-fit: cover; }
.ad-tag { font-size: 10.5px; font-weight: 700; color: var(--muted); letter-spacing: .02em; }
/* 맨 위 가로 띠: 970×90 → 작은 PC·태블릿 728×90 → 모바일 숨김 */
.lb-wrap { padding: 10px 0; background: var(--panel-2); border-bottom: 1px solid var(--line); } /* 헤더 위 가로 띠 */
.ad-lb { display: flex; justify-content: center; }
@media (max-width: 900px) { .lb-wrap { display: none; } }
/* 목록 사이 300×250: 둥근 카드 안 가운데 + '광고' 표시 */
.ad-infeed { position: relative; margin-top: 10px; display: flex; justify-content: center; padding: 24px 12px 14px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); box-shadow: var(--shadow); }
.ad-infeed .ad-tag { position: absolute; top: 6px; left: 12px; }
/* 스코어 위 네이티브 카드 */
.ad-native { position: relative; background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); box-shadow: var(--shadow); }
.nv-body { display: flex; align-items: center; gap: 12px; padding: 14px 40px 14px 12px; }
.nv-mark { flex: none; width: 50px; height: 50px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; color: #15171A; }
.nv-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; line-height: 1.3; }
.nv-text b { font-size: 15px; font-weight: 800; }
.nv-text small { font-size: 13px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nv-x { position: absolute; top: 8px; right: 8px; width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--muted); font-size: 12px; }
.nv-x:hover { background: var(--hover); color: var(--text); }
.ad-native .ad-tag { position: absolute; right: 12px; bottom: 8px; }
/* 왼쪽 메뉴 160×600, 모바일 하단 320×50 */
.m-anchor .ad { width: 320px; height: 50px; }

/* ════ 전체 배치 (모든 화면 공통) ════
   1440px 이상 : [세로 160] [메뉴 252] [본문 620] [광고 300]
   1181~1439px : [메뉴 252] [본문 620] [광고 300]
   901~1180px  : [메뉴 252] [본문]            — 오른쪽 광고 숨김, 맨 위 띠 728×90
   900px 이하  : [본문] + ☰ 서랍 메뉴         — 맨 위 띠·사이드 광고 숨김, 모바일 띠 배너 사용 */
.sky-col, .ad-rail { display: none; }
.ad-rail { flex-direction: column; gap: 12px; align-self: stretch; }
.ad-rail .ad-follow, .sky-col .ad { position: sticky; top: 68px; } /* 스크롤하면 헤더 아래에 붙어서 따라 내려옴 */
@media (min-width: 1181px) {
  body:not(.no-side) .layout { grid-template-columns: 252px minmax(0, 620px) 300px; justify-content: center; }
  body:not(.no-side) .ad-rail { display: flex; }
}
@media (min-width: 1440px) {
  .container { max-width: 1400px; } /* 160 + 252 + 620 + 300 + 간격 36 + 좌우 여백 32 */
  body:not(.no-side) .layout { grid-template-columns: 160px 252px minmax(0, 620px) 300px; }
  body:not(.no-side) .sky-col { display: block; align-self: stretch; }
}

/* 본문 칸이 좁을 때(PC 620px 등) 2열 카드는 1열로 */
.view { container-type: inline-size; }
@container (max-width: 700px) {
  .grid-2 { grid-template-columns: minmax(0, 1fr); }
  .span-2 { grid-column: auto; }
}

/* ════ 뉴스 ════
   좌우 광고 자리는 모든 화면에서 같은 위치. 뉴스는 왼쪽 메뉴 자리까지 본문으로 사용 (252 + 12 + 620 = 884px) */
:root { --serif: var(--font); }
@media (min-width: 901px) { body.news-mode .sidebar { display: none !important; } }
body.news-mode .layout { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1181px) { body.news-mode:not(.no-side) .layout { grid-template-columns: minmax(0, 884px) 300px; } }
@media (min-width: 1440px) { body.news-mode:not(.no-side) .layout { grid-template-columns: 160px minmax(0, 884px) 300px; } }

/* 분류 메뉴: 사이트 공통 밑줄 탭 */
.nw-tabs .tab { height: 48px; font-size: 14.5px; }
.nw-headrow { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; padding: 4px 2px 0; }
.nw-h1 { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; }
.nw-note { font-size: 12px; color: var(--muted); }

/* 헤드라인: 대표 기사(왼쪽) + 주요 기사 3개(오른쪽) */
.nw-top { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 12px; }
.nw-side { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 12px; }
.nw-card { display: flex; background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); overflow: hidden; box-shadow: var(--shadow); min-width: 0; }
.nw-card:hover .nw-title, .nw-row:hover .nw-title { text-decoration: underline; text-underline-offset: 3px; }
.nw-card-lead { flex-direction: column; }
.nw-img { display: flex !important; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--panel-2), var(--hover)); color: var(--muted); font-size: 11px; font-weight: 700; flex: none; }
.nw-img-lead { width: 100%; aspect-ratio: 16 / 9; }
.nw-img-sq { width: 116px; align-self: stretch; }
.nw-cbody { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; min-width: 0; flex: 1; }
.nw-card-lead .nw-cbody { padding: 16px 18px 18px; }
.nw-title { font-size: 15px; font-weight: 700; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nw-card-lead .nw-title { font-size: 21px; font-weight: 800; line-height: 1.4; }
.nw-sum { font-size: 13.5px; color: var(--text-2); line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nw-meta { margin-top: auto; display: flex; gap: 12px; font-size: 12px; color: var(--muted); }
.nw-tag { font-size: 12.5px; font-weight: 800; color: var(--accent-text); }

/* 전체 기사: 네이버 뉴스식 줄 목록 (오른쪽 썸네일) */
.nw-list { display: flex; flex-direction: column; }
.nw-row { display: flex; gap: 18px; align-items: stretch; padding: 16px 18px; border-bottom: 1px solid var(--line-soft); }
.nw-row:last-child { border-bottom: 0; }
.nw-row:hover { background: var(--hover); }
.nw-rbody { display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1; }
.nw-rbody .nw-title { font-size: 16.5px; }
.nw-img-row { width: 176px; aspect-ratio: 16 / 9; border-radius: var(--r); }
.nw-list .ad-infeed { margin: 0; border-width: 0 0 1px; border-radius: 0; box-shadow: none; background: var(--panel-2); }

/* 기사 */
.nw-article { display: flex; flex-direction: column; padding: 26px 32px 14px; }
.nw-article > * { max-width: 760px; margin-left: auto; margin-right: auto; width: 100%; }
.nw-img-hero { aspect-ratio: 16 / 9; border-radius: var(--rc); margin-top: 4px; }
.nw-crumb { font-size: 13px; font-weight: 700; color: var(--muted); }
.nw-crumb:hover { color: var(--text); }
.nw-crumb-sep { color: var(--muted); margin: 0 6px; }
.nw-ahead h1 { font-size: 30px; font-weight: 800; line-height: 1.35; letter-spacing: -0.02em; margin: 10px 0 12px; }
.nw-byline { display: flex; gap: 12px; font-size: 13.5px; color: var(--muted); padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.nw-byline b { color: var(--text); }
.nw-body p { font-size: 17px; line-height: 1.85; margin: 20px 0; color: var(--text); }
.nw-body .ad-infeed { margin: 24px 0; box-shadow: none; background: var(--panel-2); }

@media (max-width: 640px) {
  .nw-h1 { font-size: 22px; }
  .nw-top { grid-template-columns: minmax(0, 1fr); }
  .nw-side { grid-template-rows: none; }
  .nw-card:not(.nw-card-lead) { min-height: 100px; }
  .nw-img-sq { width: 100px; }
  .nw-row { gap: 12px; padding: 14px; }
  .nw-img-row { width: 104px; aspect-ratio: 1; }
  .nw-rbody .nw-sum { display: none; }
  .nw-article { padding: 18px 16px 6px; }
  .nw-ahead h1 { font-size: 22px; }
  .nw-body p { font-size: 16px; }
}

/* 광고 관리 페이지 */
.adm-size { font-weight: 600; font-size: 12px; color: var(--muted); margin-left: 6px; }
.adm-all { display: flex; gap: 6px; }
.adm-all .btn { height: 28px; padding: 0 10px; font-size: 12px; }
.adm-input { height: 34px; border: 1px solid var(--line); border-radius: var(--r); background: var(--panel-2); color: var(--text); padding: 0 10px; font: inherit; font-size: 13.5px; width: 200px; flex: none; }
.adm-num { width: 90px; }
.adm-msg.err { color: var(--red); }
.notice code { font-size: 12px; background: var(--panel-2); padding: 1px 5px; border-radius: 4px; }

/* ════ 편집국 (데스크·작성자·바이라인) ════ */
/* 글 종류 표시 */
.nr-type { display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 4px; font-size: 11px; font-weight: 800; letter-spacing: .02em; background: var(--panel-2); color: var(--text-2); border: 1px solid var(--line); }
.nr-type-preview { background: rgba(217, 119, 6, .1); color: #B45309; border-color: rgba(217, 119, 6, .25); }
.nr-type-review { background: rgba(37, 99, 235, .08); color: #1D4ED8; border-color: rgba(37, 99, 235, .2); }
.nr-type-analysis, .nr-type-series { background: rgba(124, 58, 237, .08); color: #6D28D9; border-color: rgba(124, 58, 237, .2); }
:root[data-theme="dark"] .nr-type-preview { color: #FBBF24; } :root[data-theme="dark"] .nr-type-review { color: #93C5FD; } :root[data-theme="dark"] .nr-type-analysis, :root[data-theme="dark"] .nr-type-series { color: #C4B5FD; }
.nw-kicker { display: flex; align-items: center; gap: 8px; }
/* 데스크 표시: 색 점 + 이름 */
.nr-desk { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px 0 8px; border-radius: 12px; font-size: 12.5px; font-weight: 800; color: var(--text); background: color-mix(in srgb, var(--c) 10%, transparent); border: 1px solid color-mix(in srgb, var(--c) 30%, transparent); }
.nr-desk i, .nw-mdesk i { width: 7px; height: 7px; border-radius: 50%; background: var(--c); flex: none; }
a.nr-desk:hover { background: color-mix(in srgb, var(--c) 18%, transparent); }
.nw-mdesk { display: inline-flex; align-items: center; gap: 5px; font-weight: 700; color: var(--text-2); }
/* 프로필 사진 (없으면 첫 글자) */
.nr-avatar { border-radius: 50%; object-fit: cover; flex: none; display: inline-block; }
.nr-avatar-txt { display: inline-flex; align-items: center; justify-content: center; font-weight: 800; color: #fff; background: linear-gradient(140deg, var(--c), color-mix(in srgb, var(--c) 60%, #000)); letter-spacing: -0.02em; }

/* 기사 머리: 경로 · 제목 · 부제 · 바이라인 */
.nw-crumbs { display: flex; align-items: center; gap: 6px; }
.nw-crumbs .nr-type { margin-left: 8px; }
.nw-dek { font-size: 17px; line-height: 1.6; color: var(--text-2); margin: -2px 0 18px; }
.nw-byline { display: flex; align-items: center; gap: 12px; padding: 14px 0 18px; border-top: 1px solid var(--line); border-bottom: 0; margin-top: 4px; }
.nw-bl-person { display: inline-flex; }
.nw-bl-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nw-bl-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nw-bl-sep { width: 1px; height: 12px; background: var(--line); }
.nw-bl-name { font-weight: 800; font-size: 14px; }
.nw-bl-name:hover { text-decoration: underline; text-underline-offset: 3px; }
.nw-bl-role { font-size: 12.5px; color: var(--muted); }
.nw-bl-time { font-size: 12.5px; color: var(--muted); font-variant-numeric: tabular-nums; }
.nw-body h2 { font-size: 21px; font-weight: 800; letter-spacing: -0.01em; margin: 34px 0 6px; }
.nw-body h3 { font-size: 17.5px; font-weight: 800; margin: 24px 0 4px; }
.nw-body blockquote { margin: 22px 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--accent); color: var(--text-2); font-size: 17px; line-height: 1.8; }
.nw-body a { color: var(--accent-text); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.nw-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 관련 태그 */
.nw-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 18px 0 4px; border-top: 1px solid var(--line); margin-top: 8px; }
.nw-tags > span { font-size: 12px; font-weight: 800; color: var(--muted); margin-right: 4px; }
.nr-tagchip { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 15px; border: 1px solid var(--line); background: var(--panel); font-size: 13px; font-weight: 700; color: var(--text-2); }
.nr-tagchip:hover { border-color: var(--text-2); color: var(--text); }
/* 기사 끝: 데스크 카드 + 작성자 카드 */
.nr-sign { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 18px 0 18px; }
.nr-sign > a { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border-radius: var(--rc); border: 1px solid var(--line); background: var(--panel-2); min-width: 0; }
.nr-sign > a:hover { border-color: var(--muted); }
.nr-sign span { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nr-sign b { font-size: 15px; font-weight: 800; display: flex; gap: 8px; align-items: baseline; }
.nr-sign b i { font-style: normal; font-weight: 600; font-size: 12px; color: var(--muted); }
.nr-sign small { font-size: 12.5px; color: var(--text-2); line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nr-sign em { font-style: normal; font-size: 12.5px; font-weight: 800; color: var(--accent-text); margin-top: 4px; }
.nr-dicon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; flex: none; color: var(--c); background: color-mix(in srgb, var(--c) 12%, transparent); }
.nr-dicon-lg { width: 64px; height: 64px; border-radius: 16px; }

/* 소개 페이지 머리 */
.nr-hero { padding: 10px 2px 2px; }
.nr-eyebrow { display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: .08em; color: var(--accent-text); text-transform: uppercase; }
.nr-hero h1 { font-size: 34px; font-weight: 800; letter-spacing: -0.03em; margin: 6px 0 8px; }
.nr-hero p { font-size: 16px; color: var(--text-2); line-height: 1.6; max-width: 640px; }
.nr-stats { display: flex; align-items: center; gap: 36px; padding: 18px 22px; }
.nr-stats div { display: flex; flex-direction: column; gap: 2px; }
.nr-stats b { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.nr-stats span { font-size: 12px; color: var(--muted); font-weight: 700; }
.nr-stats .more-link { margin-left: auto; }
.nr-sec { display: flex; flex-direction: column; gap: 12px; }
.nr-h2 { font-size: 13px; font-weight: 800; color: var(--muted); letter-spacing: .06em; text-transform: uppercase; padding: 6px 2px 0; }
/* 발행인 카드 */
.nr-lead { display: flex; align-items: center; gap: 22px; padding: 24px; }
.nr-lead:hover { border-color: var(--muted); }
.nr-lead-body { display: flex; flex-direction: column; gap: 8px; flex: 1; min-width: 0; }
.nr-lead-name { display: flex; align-items: baseline; gap: 10px; }
.nr-lead-name b { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
.nr-lead-name i { font-style: normal; font-size: 13px; font-weight: 700; color: var(--accent-text); }
.nr-lead-body small { font-size: 14px; color: var(--text-2); line-height: 1.6; }
.nr-lead-desks { display: flex; flex-wrap: wrap; gap: 6px; }
.nr-lead-n { display: flex; flex-direction: column; align-items: center; font-size: 12px; color: var(--muted); font-weight: 700; padding-left: 22px; border-left: 1px solid var(--line); }
.nr-lead-n b { font-size: 28px; color: var(--text); font-weight: 800; }
.nr-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.nr-pcard { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 18px 12px; text-align: center; }
.nr-pcard b { font-size: 15px; } .nr-pcard i { font-style: normal; font-size: 12px; color: var(--muted); } .nr-pcard span { font-size: 12px; color: var(--text-2); }
/* 데스크 카드 */
.nr-desks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.nr-deskcard { position: relative; display: flex; flex-direction: column; background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); box-shadow: var(--shadow); overflow: hidden; }
.nr-deskcard::before { content: ''; height: 3px; background: var(--c); }
.nr-dc-head { display: flex; align-items: center; gap: 12px; padding: 16px 16px 10px; }
.nr-dc-head > span:nth-child(2) { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.nr-dc-head b { font-size: 17px; font-weight: 800; letter-spacing: -0.01em; }
.nr-dc-head small { font-size: 12px; color: var(--muted); font-weight: 600; }
.nr-dc-head:hover b { text-decoration: underline; text-underline-offset: 3px; }
.nr-dc-n { display: flex; flex-direction: column; align-items: flex-end; font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }
.nr-dc-n i { font-style: normal; font-size: 11px; font-weight: 700; color: var(--muted); }
.nr-dc-intro { font-size: 13px; color: var(--text-2); line-height: 1.55; padding: 0 16px 12px; }
.nr-dc-latest { list-style: none; margin: 0; padding: 0 16px; border-top: 1px solid var(--line-soft); }
.nr-dc-latest li { border-bottom: 1px solid var(--line-soft); }
.nr-dc-latest a { display: flex; align-items: center; gap: 8px; height: 40px; font-size: 13px; }
.nr-dc-latest a > span:not(.nr-type) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.nr-dc-latest a:hover > span:not(.nr-type) { text-decoration: underline; text-underline-offset: 3px; }
.nr-dc-latest time { font-size: 11.5px; color: var(--muted); flex: none; }
.nr-dc-empty { font-size: 12.5px; color: var(--muted); padding: 12px 0; }
.nr-dc-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 16px; margin-top: auto; }
.nr-dc-members { display: flex; gap: 10px; flex-wrap: wrap; }
.nr-dc-members a { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: var(--text-2); }
/* 모집 */
.nr-recruit { padding: 26px; border-style: dashed; border-width: 1.5px; background: var(--panel); display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.nr-recruit h3 { font-size: 20px; font-weight: 800; letter-spacing: -0.02em; }
.nr-recruit p { font-size: 14px; color: var(--text-2); line-height: 1.6; }
.nr-roles { display: flex; flex-wrap: wrap; gap: 8px; margin: 2px 0 6px; }
.nr-roles span { height: 30px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 15px; background: var(--panel-2); border: 1px solid var(--line); font-size: 13px; font-weight: 700; }
/* 소개·원칙·제보 */
.nr-prose { padding: 22px 24px; }
.nr-prose p { font-size: 15.5px; line-height: 1.8; color: var(--text); }
.nr-prose h3 { font-size: 16px; font-weight: 800; margin-bottom: 12px; }
.nr-prose ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; line-height: 1.6; color: var(--text-2); }
.nr-prose a, .nr-mail a { color: var(--accent-text); font-weight: 700; }
.nr-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.nr-linkcard { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 18px 18px 18px; }
.nr-linkcard b { font-size: 16px; font-weight: 800; } .nr-linkcard small { font-size: 12.5px; color: var(--muted); }
.nr-linkcard span { position: absolute; right: 16px; top: 16px; color: var(--muted); }
.nr-linkcard:hover { border-color: var(--muted); }
.info-wrap .info-list { padding: 0 4px; }
.nr-principles { list-style: none; margin: 0; padding: 6px 24px; }
.nr-principles li { display: flex; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--line-soft); font-size: 15px; line-height: 1.7; color: var(--text-2); }
.nr-principles li:last-child { border-bottom: 0; }
.nr-principles b { display: block; color: var(--text); font-size: 16px; margin-bottom: 2px; }
.nr-pn { flex: none; font-size: 13px; font-weight: 800; color: var(--accent-text); font-variant-numeric: tabular-nums; padding-top: 3px; }
.nr-typelist { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.nr-typelist div { display: flex; gap: 14px; align-items: baseline; }
.nr-typelist dt { flex: none; width: 56px; } .nr-typelist dd { margin: 0; font-size: 14px; color: var(--text-2); }
.nr-mail { display: flex; align-items: center; gap: 16px; padding: 20px 24px; font-size: 18px; }
.nr-mail span { font-size: 12px; font-weight: 800; color: var(--muted); }
.nr-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
/* 데스크·작성자 페이지 머리 */
.nr-dhead, .nr-phead { padding: 20px 24px; display: flex; flex-direction: column; gap: 14px; position: relative; overflow: hidden; }
.nr-dhead::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--c); }
.nr-dhead-main, .nr-phead-main { display: flex; gap: 20px; align-items: flex-start; }
.nr-dhead h1, .nr-phead h1 { font-size: 28px; font-weight: 800; letter-spacing: -0.03em; }
.nr-dhead p, .nr-phead p { font-size: 14.5px; color: var(--text-2); line-height: 1.65; margin-top: 6px; max-width: 560px; }
.nr-scope { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.nr-scope span { font-size: 12px; font-weight: 700; height: 24px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 12px; background: var(--panel-2); border: 1px solid var(--line); color: var(--text-2); }
.nr-dhead-members { display: flex; align-items: center; gap: 16px; padding-top: 14px; border-top: 1px solid var(--line-soft); flex-wrap: wrap; }
.nr-dhead-members > span { font-size: 12px; font-weight: 800; color: var(--muted); }
.nr-dhead-members a { display: inline-flex; align-items: center; gap: 8px; }
.nr-dhead-members b { font-size: 14px; } .nr-dhead-members i { font-style: normal; font-size: 12px; color: var(--muted); }
.nr-role { display: inline-block; font-size: 13px; font-weight: 800; color: var(--accent-text); margin-top: 4px; }
.nr-phead-main > div:nth-child(2) { flex: 1; min-width: 0; }
.nr-phead-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; align-items: center; }
.nr-mailto { font-size: 12.5px; font-weight: 700; color: var(--text-2); text-decoration: underline; text-underline-offset: 3px; }
.nr-phead-n { display: flex; flex-direction: column; align-items: center; padding-left: 22px; border-left: 1px solid var(--line); font-size: 12px; color: var(--muted); font-weight: 700; }
.nr-phead-n b { font-size: 30px; font-weight: 800; color: var(--text); }
.nr-list .nr-tabs { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.nr-count { margin-left: 6px; font-size: 11px; font-weight: 800; color: var(--muted); }
.tab.active .nr-count { color: var(--accent-text); }

@media (max-width: 640px) {
  .nr-hero h1 { font-size: 26px; }
  .nr-stats { gap: 20px; padding: 14px 16px; flex-wrap: wrap; }
  .nr-stats .more-link { margin-left: 0; width: 100%; }
  .nr-lead { flex-direction: column; align-items: flex-start; padding: 18px; gap: 14px; }
  .nr-lead-n { flex-direction: row; gap: 6px; align-items: baseline; padding: 0; border: 0; }
  .nr-desks, .nr-links, .nr-two, .nr-sign { grid-template-columns: minmax(0, 1fr); }
  .nr-dhead-main, .nr-phead-main { flex-direction: column; gap: 12px; }
  .nr-phead-n { flex-direction: row; gap: 6px; align-items: baseline; padding: 0; border: 0; }
  .nr-dhead h1, .nr-phead h1 { font-size: 24px; }
  .nr-prose, .nr-principles { padding-left: 16px; padding-right: 16px; }
  .nw-dek { font-size: 15.5px; }
}

/* ───── 관리 화면 (/admin/…) — 넓은 한 칸, 광고·왼쪽 메뉴 없음 ───── */
body.admin-mode .layout { grid-template-columns: minmax(0, 1fr) !important; max-width: 1180px; }
body.admin-mode .sidebar, body.admin-mode .ad-rail, body.admin-mode .sky-col, body.admin-mode #leaderboard, body.admin-mode .m-anchor, body.admin-mode .m-topad { display: none !important; }
.adm-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 4px 0 16px; }
.adm-head h1 { font-size: 24px; letter-spacing: -.02em; margin-top: 4px; }
.adm-login { max-width: 420px; margin: 40px auto; padding: 28px; }
.adm-login h1 { font-size: 22px; margin: 6px 0 6px; }
.adm-login p { color: var(--muted); font-size: 13px; }
.adm-login form { display: flex; gap: 8px; margin-top: 16px; }
.adm-login .af-in { flex: 1; }
.adm-err { color: var(--red) !important; margin-top: 10px; }

/* 입력칸 */
.af { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin-bottom: 14px; }
.af-label { font-size: 12px; font-weight: 800; color: var(--text-2); letter-spacing: .01em; }
.af-hint { font-size: 11.5px; color: var(--muted); line-height: 1.45; }
.af-hint code, .adm-lead code { font-size: 11px; background: var(--panel-2); border: 1px solid var(--line-soft); border-radius: 4px; padding: 0 4px; }
.af-in { width: 100%; min-height: 38px; border: 1px solid var(--line); border-radius: var(--r); background: var(--panel); color: var(--text); padding: 8px 11px; font: inherit; font-size: 14px; transition: border-color .12s, box-shadow .12s; }
.af-in:hover { border-color: color-mix(in srgb, var(--muted) 45%, var(--line)); }
.af-in:focus { outline: 0; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.af-in[readonly] { background: var(--panel-2); color: var(--muted); }
textarea.af-in { resize: vertical; line-height: 1.6; }
select.af-in { appearance: none; padding-right: 30px; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 15px) 50%, calc(100% - 10px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.af-in[data-big] { font-size: 19px; font-weight: 800; letter-spacing: -.01em; min-height: 46px; }
.adm-form textarea[data-path="a.body"] { font-size: 15px; line-height: 1.75; min-height: 380px; }
.af-row2, .af-row3 { display: grid; gap: 0 14px; }
.af-row2 { grid-template-columns: 1fr 1fr; }
.af-row3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.af-checks { display: flex; flex-wrap: wrap; gap: 6px; }
.af-check { position: relative; cursor: pointer; }
.af-check input { position: absolute; opacity: 0; pointer-events: none; }
.af-check span { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border: 1px solid var(--line); border-radius: 15px; font-size: 12.5px; font-weight: 700; color: var(--text-2); background: var(--panel); transition: all .12s; }
.af-check span::before { content: ''; width: 0; height: 6px; margin-right: 0; border-radius: 50%; background: var(--accent); transition: all .12s; }
.af-check input:checked + span { border-color: var(--accent); background: var(--accent-soft); color: var(--text); }
.af-check input:checked + span::before { width: 6px; margin-right: 6px; }
.af-check input:focus-visible + span { outline: 2px solid var(--accent); }

/* 버튼 변형 */
.btn.sm { height: 28px; padding: 0 10px; font-size: 12px; }
.btn.danger { background: var(--red); color: #fff; }
.btn.ghost.danger { background: transparent; color: var(--red); border-color: color-mix(in srgb, var(--red) 35%, var(--line)); }
.btn:disabled { opacity: .45; pointer-events: none; }
a.btn.ghost:hover, button.btn.ghost:hover { background: var(--hover); filter: none; }

/* 알림 */
.adm-toast { position: fixed; left: 50%; top: 18px; z-index: 200; transform: translate(-50%, -12px); opacity: 0; pointer-events: none; background: var(--text); color: var(--bg); font-weight: 700; font-size: 13.5px; padding: 11px 18px; border-radius: 999px; box-shadow: 0 8px 28px rgba(0, 0, 0, .18); transition: opacity .18s, transform .18s; }
.adm-toast::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); margin-right: 9px; vertical-align: 1px; }
.adm-toast.err::before { background: var(--red); }
.adm-toast.show { opacity: 1; transform: translate(-50%, 0); }

/* 기사 목록 */
.adm-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.adm-toolbar .btn { margin-left: auto; height: 38px; }
.adm-seg { display: inline-flex; padding: 3px; background: var(--panel); border: 1px solid var(--line); border-radius: calc(var(--r) + 3px); }
.adm-seg button { height: 30px; padding: 0 12px; border-radius: var(--r); font-weight: 700; font-size: 13px; color: var(--muted); }
.adm-seg button em { font-style: normal; font-size: 11px; margin-left: 6px; color: var(--muted); font-variant-numeric: tabular-nums; }
.adm-seg button.on { background: var(--text); color: var(--bg); }
.adm-seg button.on em { color: var(--accent); }
.adm-fcat { width: 150px; }
.adm-fq { width: 220px; }
.adm-row { display: grid; grid-template-columns: 76px minmax(0, 1fr) 190px 120px; align-items: center; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--line-soft); }
.adm-row:last-child { border-bottom: 0; }
.adm-row:hover { background: var(--hover); }
.adm-r-main { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.adm-r-main b { font-size: 14.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adm-r-kick { display: flex; align-items: center; gap: 6px; }
.adm-r-by { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.adm-r-by small { color: var(--muted); font-size: 12px; }
.adm-r-time { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; text-align: right; }
.adm-pill { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 8px; border-radius: 11px; font-size: 11px; font-weight: 800; border: 1px solid var(--line); color: var(--muted); }
.adm-pill::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.adm-pill.pub { color: #15803D; border-color: rgba(22, 163, 74, .3); background: rgba(22, 163, 74, .07); }
.adm-pill.sched { color: var(--accent-text); border-color: var(--accent); background: var(--accent-soft); }

/* 기사 쓰기: 왼쪽 입력, 오른쪽 미리보기 */
.adm-edit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.adm-sec { padding: 20px 20px 6px; margin-bottom: 14px; }
.adm-actions { position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; gap: 8px; padding: 12px 0; background: linear-gradient(transparent, var(--bg) 30%); }
.adm-spacer { flex: 1; }
.adm-confirm { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: var(--red); }
.adm-preview { position: sticky; top: 72px; max-height: calc(100vh - 90px); overflow: auto; border-radius: var(--rc); }
.adm-pv-label { font-size: 11px; font-weight: 800; letter-spacing: .1em; color: var(--muted); text-transform: uppercase; margin: 2px 0 8px; }
.adm-pv { margin: 0; }
.adm-pv h1 { font-size: 24px !important; }
.adm-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.adm-tags:empty { display: none; }
.adm-tag { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 6px 0 10px; border: 1px solid var(--line); border-radius: 15px; font-size: 12.5px; font-weight: 700; background: var(--panel-2); }
.adm-tag small { color: var(--muted); font-weight: 600; font-size: 11px; }
.adm-tag button { width: 20px; height: 20px; border-radius: 50%; color: var(--muted); font-size: 15px; line-height: 1; }
.adm-tag button:hover { background: var(--hover); color: var(--red); }
.adm-tagsearch { position: relative; }
.adm-tagres { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 20; background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); box-shadow: 0 12px 32px rgba(16, 24, 40, .14); max-height: 300px; overflow: auto; padding: 4px; }
.adm-tagres button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 10px; border-radius: var(--r); text-align: left; }
.adm-tagres button:hover { background: var(--hover); }
.adm-tagres small { margin-left: auto; color: var(--muted); font-size: 11.5px; }
.adm-tagres p { padding: 12px; color: var(--muted); font-size: 13px; }

/* 데스크·사람 */
.adm-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.adm-sechead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.adm-sechead h2 { font-size: 17px; letter-spacing: -.01em; }
.adm-sechead h2 em { font-style: normal; color: var(--muted); font-size: 14px; margin-left: 4px; }
.adm-lead { color: var(--muted); font-size: 12.5px; line-height: 1.55; margin-bottom: 14px; }
.adm-item { padding: 18px 18px 4px; margin-bottom: 12px; border-top: 3px solid var(--c, var(--line)); }
.adm-item-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.adm-item-head > div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.adm-item-head b { font-size: 15.5px; }
.adm-item-head small { color: var(--muted); font-size: 12px; }
.adm-item-tools { display: flex; gap: 6px; }
.adm-dicon { width: 44px; height: 44px; }
.adm-swatches, .adm-icons { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.adm-sw { width: 24px; height: 24px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 2px var(--panel); border: 2px solid transparent; }
.adm-sw.on { border-color: var(--c); }
.adm-swatches input[type=color] { width: 28px; height: 28px; padding: 0; border: 1px dashed var(--line); border-radius: 50%; background: none; cursor: pointer; }
.adm-swatches input[type=color]::-webkit-color-swatch-wrapper { padding: 3px; }
.adm-swatches input[type=color]::-webkit-color-swatch { border: 0; border-radius: 50%; }
.adm-ic { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: var(--r); color: var(--muted); background: var(--panel); }
.adm-ic:hover { color: var(--text); }
.adm-ic.on { border-color: var(--c); color: var(--c); background: color-mix(in srgb, var(--c) 9%, var(--panel)); }
.adm-savebar { position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 14px 0; background: linear-gradient(transparent, var(--bg) 35%); }
.adm-savebar .btn { height: 40px; padding: 0 24px; }
.adm-dirty { margin-right: auto; font-size: 12.5px; font-weight: 700; color: var(--accent-text); }
.adm-dirty::before { content: '●'; margin-right: 6px; font-size: 9px; vertical-align: 2px; }

/* 사이트 정보 */
.adm-narrow { max-width: none; }
.adm-narrow .adm-sechead { margin-bottom: 16px; }
.adm-where { font-size: 12.5px; font-weight: 700; color: var(--muted); }
.adm-where:hover { color: var(--text); }
.adm-toggle { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 14px; border: 1px solid var(--line-soft); border-radius: var(--rc); background: var(--panel-2); cursor: pointer; }
.adm-toggle input { position: absolute; opacity: 0; }
.adm-toggle > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.adm-toggle small { color: var(--muted); font-size: 12px; }
.switch-ui { position: relative; width: 44px; height: 24px; border-radius: 12px; background: var(--hover); border: 1px solid var(--line); flex: none; }
.switch-ui i { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--muted); transition: transform .15s, background .15s; }
.adm-toggle input:checked + .switch-ui { background: var(--accent-soft); border-color: var(--accent); }
.adm-toggle input:checked + .switch-ui i { transform: translateX(20px); background: var(--accent); }
.adm-toggle input:focus-visible + .switch-ui { outline: 2px solid var(--accent); }

@media (max-width: 1100px) {
  .adm-edit, .adm-split { grid-template-columns: minmax(0, 1fr); }
  .adm-preview { position: static; max-height: none; }
  .adm-row { grid-template-columns: 70px minmax(0, 1fr) 110px; }
  .adm-r-by { display: none; }
}
@media (max-width: 640px) {
  .af-row2, .af-row3 { grid-template-columns: minmax(0, 1fr); }
  .adm-toolbar .btn { margin-left: 0; width: 100%; }
  .adm-fcat, .adm-fq { flex: 1; width: auto; }
  .adm-row { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 12px 14px; }
  .adm-r-time { text-align: left; }
  .adm-actions { flex-wrap: wrap; }
  .adm-head { flex-direction: column; align-items: flex-start; }
}
.adm-r-by { align-items: flex-start; }
.adm-state { display: flex; align-items: center; min-height: 38px; }

/* ───── 푸터 (bsc.news 구성: 로고·소개·소셜 | 소식 · 주제 · 스코어 · 회사 | 하단 줄) ───── */
.footer { background: var(--panel); border-top: 4px solid var(--text); margin-top: 8px; }
.f-main { display: grid; grid-template-columns: minmax(200px, 260px) minmax(0, 1fr); gap: 40px; padding-top: 44px; padding-bottom: 40px; }
.f-logo { display: inline-flex; }
.f-brand p { margin-top: 12px; max-width: 280px; font-size: 13px; line-height: 1.65; color: var(--muted); }
.f-socials { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.f-socials[hidden] { display: none; }
.f-soc { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: var(--r); color: var(--text-2); transition: border-color .15s, color .15s, transform .15s; }
.f-soc:hover { border-color: var(--text); color: var(--text); transform: translateY(-1px); }
.f-cols { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.f-col { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; }
.f-col h2 { font-size: 17px; font-weight: 800; letter-spacing: -0.02em; color: var(--text); margin-bottom: 6px; }
.f-col a, .f-col .f-disabled { font-size: 13px; line-height: 1.45; color: var(--muted); }
.f-col a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.f-disabled { opacity: .55; cursor: default; }
.f-bottom { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 18px; padding-bottom: 22px; font-size: 12px; color: var(--muted); }
.f-bottom-r { display: flex; align-items: center; gap: 16px; text-align: right; }
.f-bottom a:hover { color: var(--text); }
@media (max-width: 1180px) { .f-main { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
@media (max-width: 900px) {
  .f-main { padding-top: 32px; padding-bottom: 28px; }
  .f-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 20px; }
  .f-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }
  .f-bottom-r { text-align: left; flex-wrap: wrap; gap: 8px 16px; }
}

/* ───── 회사·신뢰 센터 공통 ───── */
.tc-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 12px; font-size: 12.5px; color: var(--muted); }
.tc-crumbs a:hover { color: var(--text); }
.tc-crumbs b { font-weight: 600; color: var(--text-2); }
.tc-head { border-bottom: 3px solid var(--text); padding-bottom: 14px; margin-bottom: 18px; }
.tc-head .nr-eyebrow { display: block; margin-bottom: 6px; }
.tc-head h1 { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; }
.tc-head p { margin-top: 8px; font-size: 14.5px; line-height: 1.6; color: var(--text-2); max-width: 680px; }
.tc-doc { padding: 4px 28px; }
.tc-doc section { padding: 22px 0; border-bottom: 1px solid var(--line-soft); }
.tc-doc section:last-child { border-bottom: 0; }
.tc-doc h2 { font-size: 18px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 10px; }
.tc-doc p { font-size: 15px; line-height: 1.75; color: var(--text-2); margin: 8px 0; max-width: 720px; }
.tc-doc p a:not(.btn) { color: var(--accent-text); font-weight: 700; }
.tc-doc .btn { height: 38px; }
.tc-pending { font-size: 13.5px; color: var(--muted); }
.tc-principles { list-style: none; counter-reset: pr; margin: 4px 0 0; padding: 0; }
.tc-principles li { counter-increment: pr; position: relative; padding: 12px 0 12px 40px; border-top: 1px solid var(--line-soft); font-size: 15px; line-height: 1.7; color: var(--text-2); }
.tc-principles li:first-child { border-top: 0; }
.tc-principles li::before { content: counter(pr, decimal-leading-zero); position: absolute; left: 0; top: 13px; font-size: 12px; font-weight: 800; color: var(--accent-text); letter-spacing: .04em; }
.tc-principles b { color: var(--text); }
.tc-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.tc-slots > div { display: flex; flex-direction: column; gap: 3px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r); background: var(--panel-2); }
.tc-slots b { font-size: 14px; }
.tc-slots span { font-size: 12.5px; color: var(--muted); }
.tc-slots code { align-self: flex-start; margin-top: 6px; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 4px; background: var(--panel); border: 1px solid var(--line); color: var(--text); }
.tc-h2 { font-size: 20px; font-weight: 800; letter-spacing: -0.02em; padding-bottom: 10px; margin: 26px 0 14px; border-bottom: 3px solid var(--text); }

/* ───── 작가들 ───── */
.au-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.au-jump a { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 13px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel); font-size: 13px; font-weight: 700; color: var(--text-2); transition: border-color .15s, color .15s; }
.au-jump a i { width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.au-jump a:hover { border-color: var(--c); color: var(--text); }
.au-group { margin-bottom: 32px; }
.au-ghead { display: flex; align-items: center; gap: 12px; padding-bottom: 12px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }
.au-ghead h2 { font-size: 19px; font-weight: 800; letter-spacing: -0.02em; }
.au-ghead p { margin-top: 2px; font-size: 12.5px; color: var(--muted); }
.au-deskcell { display: flex; flex-direction: column; padding: 20px 22px; border-radius: var(--rc); background: color-mix(in srgb, var(--c) 6%, var(--panel)); border: 1px solid color-mix(in srgb, var(--c) 22%, var(--line)); }
.au-dintro { font-size: 14px; line-height: 1.65; color: var(--text-2); }
.au-deskcell ul { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; }
.au-deskcell li a { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid color-mix(in srgb, var(--c) 14%, var(--line-soft)); font-size: 13.5px; font-weight: 600; }
.au-deskcell li a span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.au-deskcell li a:hover span { text-decoration: underline; text-underline-offset: 3px; }
.au-deskcell .nr-type { flex: none; }
.au-glink { margin-top: auto; padding-top: 12px; align-self: flex-start; font-size: 13px; font-weight: 700; color: var(--text-2); }
.au-glink:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.au-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.au-empty { color: var(--muted); font-size: 13px; }
.au-card { display: flex; flex-direction: column; padding: 22px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--rc); box-shadow: var(--shadow); transition: transform .2s, box-shadow .2s, border-color .2s; }
.au-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--c, var(--muted)) 45%, var(--line)); box-shadow: 0 12px 26px -16px rgba(16, 24, 40, .28); }
.au-top { display: flex; align-items: center; gap: 16px; }
.au-photo { flex: none; }
.au-card .nr-avatar, .au-profile .nr-avatar { border-radius: 24px; }
.au-id { min-width: 0; display: flex; flex-direction: column; }
.au-name { font-size: 20px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.25; }
.au-name:hover { text-decoration: underline; text-underline-offset: 4px; }
.au-role { margin-top: 3px; font-size: 12.5px; color: var(--muted); }
.au-socials { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.au-socials:empty { display: none; }
.nr-soc { display: inline-flex; color: var(--text-2); transition: color .15s, transform .15s; }
.nr-soc:hover { color: var(--text); transform: translateY(-1px); }
.au-bio { margin-top: 16px; font-size: 14px; line-height: 1.65; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(1.65em * 3); }
.au-foot { margin-top: auto; padding-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12.5px; }
.au-foot a { font-weight: 700; color: var(--text); }
.au-foot a:hover { text-decoration: underline; text-underline-offset: 3px; }
.au-foot span { color: var(--muted); flex: none; }
.au-join { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 26px; border: 1px dashed color-mix(in srgb, var(--accent) 70%, var(--line)); background: linear-gradient(120deg, var(--accent-soft), transparent 70%), var(--panel); }
.au-join h2 { font-size: 19px; font-weight: 800; letter-spacing: -0.02em; margin: 6px 0 6px; }
.au-join p { font-size: 13.5px; color: var(--text-2); line-height: 1.6; margin-bottom: 10px; }
.au-join .btn { flex: none; height: 40px; }
/* 작가 프로필 */
.au-profile { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 24px; padding-bottom: 22px; border-bottom: 3px solid var(--text); }
.au-pmain h1 { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; }
.au-pdesks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.au-pcount { display: flex; flex-direction: column; align-items: center; padding: 0 8px; }
.au-pcount b { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; }
.au-pcount span { font-size: 12px; color: var(--muted); }
.au-pbio { padding: 20px 0 2px; max-width: 760px; }
.au-pbio p { font-size: 15.5px; line-height: 1.8; color: var(--text-2); margin-bottom: 10px; }
@media (max-width: 640px) {
  .tc-head h1, .au-pmain h1 { font-size: 24px; }
  .tc-doc { padding: 2px 18px; }
  .tc-slots, .au-grid, .nr-links { grid-template-columns: minmax(0, 1fr); }
  .au-card { padding: 18px; }
  .au-card .nr-avatar { width: 72px !important; height: 72px !important; border-radius: 20px; }
  .au-profile { grid-template-columns: auto minmax(0, 1fr); gap: 16px; }
  .au-profile .nr-avatar { width: 84px !important; height: 84px !important; }
  .au-pcount { display: none; }
  .au-join { flex-direction: column; align-items: flex-start; }
  .au-glink { font-size: 12px; }
}

.f-bottom::before { content: ''; position: absolute; top: 0; left: 16px; right: 16px; border-top: 1px solid var(--line); }

/* ═════ 편집 디자인 v2 — 뉴스·기사·작가·회사 페이지 (스코어 화면은 그대로) ═════
   흑백 위주 · 모서리 4px · 그림자 없음 · 상자 대신 글자와 선으로 구분 */
body.news-mode #view { --rc: 4px; --r: 4px; --shadow: none; }
.nr-avatar { border-radius: 4px; }
.nr-avatar-txt { background: var(--panel-2); color: var(--text-2); border: 1px solid var(--line); font-weight: 700; }
.nr-type { display: inline; height: auto; padding: 0; border: 0; border-radius: 0; background: none; font-size: 12px; font-weight: 700; color: var(--text-2); letter-spacing: 0; }
.nr-desk { display: inline; height: auto; padding: 0; border: 0; background: none; font-size: inherit; font-weight: 600; color: var(--text-2); }
a.nr-desk:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.nr-desk i { display: none; }
.nw-kick { display: block; font-size: 12px; font-weight: 700; color: var(--text); letter-spacing: -0.01em; }
.nw-kick i { font-style: normal; font-weight: 600; color: var(--muted); }
.nw-kick i::before { content: '·'; margin: 0 5px; }

/* 뉴스 목록: 2열 타일 */
.nw-head { margin: 2px 0 16px; }
.nw-head h1 { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; }
.nw-head p { margin-top: 6px; font-size: 12.5px; color: var(--muted); }
.nw-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.nw-block { grid-template-rows: repeat(3, minmax(120px, auto)); }
.nw-block .nw-tile-lg { grid-row: 1 / span 3; grid-column: 1; }
.nw-block .nw-tile-sm { grid-column: 2; }
.nw-block.flip .nw-tile-lg { grid-column: 2; }
.nw-block.flip .nw-tile-sm { grid-column: 1; }
.nw-tile { display: flex; min-width: 0; background: var(--panel); border: 1px solid var(--line); border-radius: 4px; overflow: hidden; transition: border-color .15s; }
.nw-tile:hover { border-color: color-mix(in srgb, var(--text) 30%, var(--line)); }
.nw-tile:hover .nw-title { text-decoration: underline; text-underline-offset: 3px; }
.nw-tile-lg { flex-direction: column; }
.nw-img-lg { flex: 1 1 auto; min-height: 200px; width: 100%; }
.nw-img-sm { width: 120px; flex: none; align-self: stretch; min-height: 120px; }
.nw-tile .nw-img { border-radius: 0; }
.nw-tb { display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1; padding: 12px 14px; }
.nw-tile-lg .nw-tb { flex: none; padding: 14px 16px 16px; }
.nw-title { font-size: 15px; font-weight: 700; line-height: 1.42; letter-spacing: -0.01em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nw-tile-lg .nw-title { font-size: 19px; font-weight: 800; line-height: 1.38; -webkit-line-clamp: 2; }
.nw-meta { margin-top: auto; display: flex; flex-wrap: wrap; gap: 0; font-size: 12px; color: var(--muted); }
.nw-meta > * + *::before { content: '·'; margin: 0 6px; }
#view .ad-infeed { margin: 0 0 14px; border-radius: 4px; box-shadow: none; }

/* 기사 */
.nw-article { padding: 0; background: var(--panel); border: 1px solid var(--line); border-radius: 4px; overflow: hidden; display: block; }
.nw-article > * { max-width: none; margin: 0; }
.nw-article .nw-img-hero { aspect-ratio: 16 / 9; border-radius: 0; margin: 0; width: 100%; }
.nw-ainner { padding: 26px 36px 32px; }
.nw-ainner > * { max-width: 720px; margin-left: auto; margin-right: auto; }
.nw-article .nw-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12.5px; color: var(--muted); }
.nw-article .nw-crumbs a:hover { color: var(--text); }
.nw-article .nw-crumbs b { font-weight: 700; color: var(--text-2); }
.nw-ainner h1 { margin-top: 10px; font-size: 34px; font-weight: 800; line-height: 1.3; letter-spacing: -0.03em; }
.nw-ainner .nw-dek { margin-top: 12px; font-size: 17px; line-height: 1.6; color: var(--text-2); }
.nw-ainner .nw-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; padding: 13px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 13.5px; color: var(--muted); }
.nw-by-name { font-weight: 800; color: var(--text); }
.nw-by-desk { font-weight: 600; color: var(--text-2); }
.nw-by-name:hover, .nw-by-desk:hover { text-decoration: underline; text-underline-offset: 3px; }
.nw-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--muted); flex: none; }
.nw-ainner .nw-body a { color: var(--text); text-decoration: underline; text-decoration-color: var(--muted); text-underline-offset: 3px; }
.nw-ainner .nw-body blockquote { border-left: 3px solid var(--text); }
.nw-ainner .nw-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 12px; padding: 16px 0 0; border-top: 1px solid var(--line); }
.nw-ainner .nw-tags > span { font-size: 12px; font-weight: 700; color: var(--muted); margin: 0; }
.nw-ainner .nw-tags a { display: inline-flex; align-items: center; gap: 5px; font-size: 13.5px; font-weight: 600; color: var(--text-2); }
.nw-ainner .nw-tags a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.nw-author { display: flex; gap: 16px; margin-top: 28px; padding-top: 20px; border-top: 3px solid var(--text); }
.nw-author-photo { flex: none; }
.nw-author-label { display: block; font-size: 11.5px; font-weight: 700; color: var(--muted); letter-spacing: .04em; margin-bottom: 4px; }
.nw-author-name { font-size: 17px; font-weight: 800; letter-spacing: -0.02em; }
.nw-author-role { margin-left: 8px; font-size: 12.5px; color: var(--muted); }
.nw-author p { margin: 6px 0 8px; font-size: 14px; line-height: 1.65; color: var(--text-2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nw-author-more { font-size: 13px; font-weight: 700; }
.nw-author-name:hover, .nw-author-more:hover { text-decoration: underline; text-underline-offset: 3px; }
.nw-related { margin-top: 8px; }

/* 기사 카드 (작가·데스크 페이지) */
.po-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.po-card { display: flex; flex-direction: column; min-width: 0; background: var(--panel); border: 1px solid var(--line); border-radius: 4px; overflow: hidden; transition: border-color .15s; }
.po-card:hover { border-color: color-mix(in srgb, var(--text) 30%, var(--line)); }
.po-card:hover b { text-decoration: underline; text-underline-offset: 3px; }
.po-img { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--panel-2); }
.po-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.po-img .slot { position: absolute; inset: 0; display: flex !important; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; color: var(--muted); }
.po-img em { position: absolute; top: 0; left: 0; padding: 5px 10px; font-style: normal; font-size: 11.5px; font-weight: 700; color: var(--panel); background: var(--text); border-radius: 0 0 4px 0; }
.po-body { padding: 12px 14px 12px; }
.po-body b { font-size: 14.5px; font-weight: 700; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.po-date { margin-top: auto; padding: 9px 14px; border-top: 1px solid var(--line-soft); font-size: 12px; color: var(--muted); }

/* 작가들 */
.au-ghead h2 { font-size: 20px; }
.au-deskcell { background: var(--panel); border: 1px solid var(--line); border-radius: 4px; }
.au-dintro { color: var(--text-2); }
.au-deskcell li a { border-top: 1px solid var(--line-soft); justify-content: space-between; }
.au-deskcell li a time { flex: none; font-size: 12px; font-weight: 400; color: var(--muted); }
.au-card { border-radius: 4px; box-shadow: none; }
.au-card:hover { transform: none; box-shadow: none; border-color: color-mix(in srgb, var(--text) 30%, var(--line)); }
.au-card .nr-avatar, .au-profile .nr-avatar { border-radius: 4px; }
.au-join { display: block; margin-top: 8px; padding: 20px 0 0; border: 0; border-top: 3px solid var(--text); border-radius: 0; background: none; }
.au-join h2 { margin: 0 0 6px; }
.au-join ul { list-style: none; margin: 6px 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 13.5px; color: var(--text-2); }
.au-join li + li::before { content: '·'; margin: 0 8px; color: var(--muted); }
.au-join-link { font-size: 13.5px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.au-profile { grid-template-columns: auto minmax(0, 1fr); gap: 20px; padding-bottom: 0; border-bottom: 0; }
.au-pmain h1 { font-size: 26px; }
.au-pbio { padding: 18px 0 0; }
.au-pbio p { font-size: 16px; }
.au-pdesks { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 14px 0 0; font-size: 13px; color: var(--muted); }
.au-pdesks span { font-weight: 700; color: var(--text-2); }
.au-pdesks a { font-weight: 600; color: var(--text-2); }
.au-pdesks a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.nr-soc { color: var(--text); }

/* 회사 · 신뢰 센터 */
.tc-head .nr-eyebrow { color: var(--muted); letter-spacing: .04em; }
.tc-principles li::before { color: var(--muted); }
.tc-doc p a:not(.btn) { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.nr-linkcard { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; background: var(--panel); border: 1px solid var(--line); border-radius: 4px; transition: border-color .15s; }
.nr-linkcard:hover { border-color: color-mix(in srgb, var(--text) 30%, var(--line)); }
.nr-linkcard:hover b { text-decoration: underline; text-underline-offset: 3px; }
.nr-linkcard b { font-size: 15px; font-weight: 800; }
.nr-linkcard small { font-size: 13px; color: var(--muted); line-height: 1.5; }

@media (max-width: 900px) { .po-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .nw-grid, .nw-block { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .nw-block .nw-tile-lg, .nw-block .nw-tile-sm, .nw-block.flip .nw-tile-lg, .nw-block.flip .nw-tile-sm { grid-row: auto; grid-column: auto; }
  .nw-img-lg { aspect-ratio: 16 / 9; min-height: 0; flex: none; }
  .nw-img-sm { width: 104px; min-height: 104px; }
  .nw-ainner { padding: 20px 18px 24px; }
  .nw-ainner h1 { font-size: 25px; }
  .po-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) { .f-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ───── 상단 · 하단 고정 배너 (PC·모바일 각각 위 1 · 아래 1) ─────
   상단 970×90: PC는 헤더 위 / 모바일은 헤더 아래에 붙어서 같이 따라옴 (같은 이미지, 폭에 맞춰 비율대로 줄어듦)
   하단: PC 728×90 / 모바일 320×50, 화면 맨 아래 고정 */
.ad.ad-fluid { width: 970px; max-width: 100%; height: auto; aspect-ratio: 970 / 90; }
.ad.ad-fluid img { height: 100%; object-fit: contain; }
.m-topad { display: none; }
@media (max-width: 900px) {
  .m-topad { display: block; padding: 6px 10px; background: var(--panel-2); border-top: 1px solid var(--line); }
  .m-topad .ad-fluid { margin: 0 auto; }
}
/* PC 하단 468×60: 가운데 칸 안에서 화면 아래에 붙어 따라오다가, 목록이 끝나면 그 자리에 멈춤 (흰 띠·여백 없음) */
.main-col { min-width: 0; display: flex; flex-direction: column; align-self: stretch; }
.pc-sticky:empty { display: none; }
.pc-sticky { display: flex; justify-content: center; position: sticky; bottom: 0; z-index: 25; margin-top: 12px; padding: 0 0 8px; pointer-events: none; }
.pc-sticky .ad { pointer-events: auto; box-shadow: 0 6px 18px -6px rgba(0, 0, 0, .35); }
.pc-sticky .ad-320x50 { display: none; }
@media (max-width: 900px) {
  .pc-sticky { padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px)); }
  .pc-sticky .ad-468x60 { display: none; }
  .pc-sticky .ad-320x50 { display: block; }
}
body.admin-mode .pc-sticky { display: none !important; }

/* ───── PC 화면 배율 87.5% (광고는 100% 원래 크기 유지) ─────
   사이트 전체를 87.5%로 줄이고, 광고만 1/0.875 배로 되돌려서 실제 크기(970×90, 300×250 …)로 보이게 함.
   광고가 들어가는 칸 너비도 같은 비율로 넓혀 줌 (160 → 160/0.875, 300 → 300/0.875) */
@media (min-width: 901px) {
  html { zoom: .875; }
  .ad { zoom: 1.142857; }
  .lb-wrap .ad-fluid { max-width: none; }
  .lb-wrap { overflow: hidden; }
}
@media (min-width: 1181px) {
  .container { max-width: calc(252px + 620px + 300px / .875 + 24px + 32px); }
  body:not(.no-side) .layout { grid-template-columns: 252px minmax(0, 620px) calc(300px / .875); }
  body.news-mode:not(.no-side) .layout { grid-template-columns: minmax(0, 884px) calc(300px / .875); }
}
@media (min-width: 1440px) {
  .container { max-width: calc(160px / .875 + 252px + 620px + 300px / .875 + 36px + 32px); }
  body:not(.no-side) .layout { grid-template-columns: calc(160px / .875) 252px minmax(0, 620px) calc(300px / .875); }
  body.news-mode:not(.no-side) .layout { grid-template-columns: calc(160px / .875) minmax(0, 884px) calc(300px / .875); }
}
/* 모바일 좌우 광고(AD 1~4 중 2개): 목록 중간. PC에서는 좌우 칸에 있으므로 숨김 */
@media (min-width: 901px) { .ad-mside { display: none !important; } }

/* 광고 관리: 자리 묶음 */
.adm-adgroup .card-head h3 { font-size: 15px; }
.adm-adgroup { margin-bottom: 14px; }
.adm-gdesc { padding: 10px 16px 4px; font-size: 12.5px; color: var(--muted); }
.adm-slot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.adm-slot b { font-size: 14px; font-variant-numeric: tabular-nums; }
.adm-slot span:last-child { font-size: 13px; color: var(--muted); }
.adm-chip { display: inline-flex; align-items: center; justify-content: center; min-width: 64px; height: 24px; padding: 0 8px; border-radius: 4px; background: var(--c); color: #15171A; font-size: 11.5px; font-weight: 800; letter-spacing: .03em; }
.adm-pos { background: var(--panel-2); }
.adm-pos .adm-input { width: 140px; }

/* ───── 광고 문의: 화면 모형 + 자리 설명 ───── */
.adv-sec { margin-bottom: 8px; }
.adv-lead { margin: -4px 0 16px; font-size: 14px; color: var(--text-2); line-height: 1.6; }
.adv-mocks { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 20px; align-items: start; }
.adv-mocks figure { margin: 0; }
.adv-mocks figcaption { font-size: 12px; font-weight: 700; color: var(--muted); margin-bottom: 8px; letter-spacing: .02em; }
.adv-screen { background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 8px; display: flex; flex-direction: column; gap: 6px; font-size: 10px; box-shadow: 0 10px 30px -18px rgba(16, 24, 40, .35); }
.adv-bar { height: 24px; border-radius: 3px; background: var(--panel-2); border: 1px solid var(--line-soft); display: flex; align-items: center; padding: 0 8px; font-size: 9px; font-weight: 700; color: var(--muted); }
.adv-row { display: block; height: 18px; border-radius: 2px; background: var(--panel-2); }
.adv-label { display: block; font-size: 11px; font-weight: 700; color: var(--muted); margin-bottom: 1px; }
.adv-slot { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; border-radius: 3px; background: #17191C; border: 2px solid transparent; color: #F2F3F5; text-align: center; transition: transform .15s, box-shadow .15s, border-color .15s; overflow: hidden; }
.adv-slot::before { content: ''; position: absolute; left: 0; top: 0; right: 0; height: 3px; background: var(--c); }
.adv-slot b { font-size: 12.5px; font-weight: 800; letter-spacing: .03em; }
.adv-slot small { font-size: 10.5px; color: #9AA3AE; }
.adv-num { position: absolute; left: 5px; top: 7px; width: 18px; height: 18px; border-radius: 50%; background: var(--c); color: #15171A; font-size: 10.5px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.adv-slot.on { border-color: var(--text); transform: scale(1.03); box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .45); z-index: 2; }
.adv-pc .adv-top { height: 42px; width: 76%; align-self: center; }
.adv-pcbody { display: grid; grid-template-columns: 13% 17% minmax(0, 1fr) 25%; gap: 7px; min-height: 330px; }
.adv-pc .adv-ad1 { height: 270px; }
.adv-side { display: flex; flex-direction: column; gap: 4px; }
.adv-main { display: flex; flex-direction: column; gap: 4px; position: relative; }
.adv-main .adv-feed { height: 70px; width: 60%; align-self: center; margin: 2px 0; }
.adv-stick { margin-top: auto; display: flex; justify-content: center; }
.adv-pc .adv-bottom { height: 30px; width: 72%; }
.adv-rail { display: flex; flex-direction: column; gap: 5px; }
.adv-pc .adv-ad2 { height: 38px; }
.adv-pc .adv-ad3 { height: 86px; }
.adv-pc .adv-ad4 { height: 170px; }
.adv-m { max-width: 240px; border-radius: 16px; padding: 10px 8px 8px; }
.adv-m .adv-top { height: 38px; }
.adv-mbody { display: flex; flex-direction: column; gap: 4px; }
.adv-m .adv-mside, .adv-m .adv-feed { height: 92px; width: 84%; align-self: center; margin: 2px 0; }
.adv-mside::before { background: linear-gradient(90deg, #3DD6C6, #A78BFA, #FF8A3D, #4C9DFF); }
.adv-mside .adv-num { background: #F2F3F5; width: auto; padding: 0 5px; border-radius: 9px; }
.adv-mstick { display: flex; justify-content: center; margin-top: 2px; }
.adv-m .adv-bottom { height: 34px; width: 90%; }
.adv-cards { display: flex; flex-direction: column; background: var(--panel); border: 1px solid var(--line); border-radius: 4px; }
.adv-card { display: flex; align-items: center; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--line-soft); cursor: default; transition: background .15s; }
.adv-card:last-child { border-bottom: 0; }
.adv-card:hover { background: var(--hover); }
.adv-card h3 { flex: 1; min-width: 0; font-size: 15px; font-weight: 800; letter-spacing: -0.01em; }
.adv-chip { min-width: 92px; }
.adv-sizes { display: flex; gap: 28px; margin: 0; font-variant-numeric: tabular-nums; }
.adv-sizes div { display: flex; gap: 8px; align-items: baseline; min-width: 128px; }
.adv-sizes dt { font-size: 12.5px; font-weight: 700; color: var(--muted); }
.adv-sizes dt::after { content: ' :'; }
.adv-sizes dd { margin: 0; font-size: 14.5px; font-weight: 800; }
.adv-chip { flex: none; align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 9px 0 4px; border-radius: 4px; background: var(--c); color: #15171A; font-size: 11.5px; font-weight: 800; letter-spacing: .02em; }
.adv-chip span { width: 18px; height: 18px; border-radius: 50%; background: #15171A; color: #F2F3F5; font-size: 10.5px; display: inline-flex; align-items: center; justify-content: center; }
.adv-cbody { min-width: 0; }
.adv-cbody h3 { font-size: 15px; font-weight: 800; letter-spacing: -0.01em; }
.adv-cbody p { margin: 4px 0 10px; font-size: 13px; line-height: 1.6; color: var(--text-2); }
.adv-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 11.5px; }
.adv-meta code { font-size: 11.5px; font-weight: 700; padding: 1px 6px; border-radius: 3px; background: var(--panel-2); border: 1px solid var(--line); }
.adv-meta em { font-style: normal; font-weight: 700; color: var(--text-2); padding: 1px 6px; border-radius: 3px; border: 1px solid var(--line); }
.adv-meta strong { font-weight: 600; color: var(--muted); }
.adv-meta strong::before { content: '·'; margin-right: 6px; }
.adv-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.adv-box { padding: 18px 20px; }
.adv-box h3 { font-size: 15px; font-weight: 800; margin-bottom: 8px; }
.adv-box h3 + p, .adv-box p { font-size: 13.5px; line-height: 1.65; color: var(--text-2); margin-bottom: 12px; }
.adv-box ul { margin: 0; padding-left: 18px; font-size: 13.5px; line-height: 1.8; color: var(--text-2); }
@media (max-width: 760px) {
  .adv-mocks, .adv-two { grid-template-columns: minmax(0, 1fr); }
  .adv-card { flex-wrap: wrap; gap: 8px 12px; }
  .adv-sizes { width: 100%; gap: 16px; }
  .adv-sizes div { min-width: 0; }
  .adv-mocks .adv-m { margin: 0 auto; }
}

/* ── 골 리액션 (goals.js): 붉은 점수 반짝임 + 도는 공 + 즐겨찾기 알림 ── */
@keyframes goal-flash { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@keyframes goal-spin { to { transform: rotate(360deg); } }
.goal-hit .mr-score, .sb-score b.goal-hit { color: var(--red) !important; animation: goal-flash .6s ease-in-out 6; animation-delay: var(--gd, 0s); }
.sb-score b.goal-hit { font-weight: inherit; }
.goal-hit .mr-name { font-weight: 800; color: var(--text); }
.goal-ball { display: inline-flex; flex: none; color: var(--red); animation: goal-spin 1.4s linear infinite; }
.mr-team .goal-ball { margin-left: auto; margin-right: -8px; }
.mr-team.goal-hit .mr-name { flex: 1 1 auto; }
.goal-toasts { position: fixed; left: 50%; bottom: 96px; transform: translateX(-50%); z-index: 210; display: flex; flex-direction: column; gap: 8px; width: min(380px, calc(100vw - 32px)); pointer-events: none; }
.goal-toast { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 4px; background: var(--text); color: var(--bg); box-shadow: 0 10px 30px rgba(0, 0, 0, .22); border-left: 3px solid var(--red); opacity: 0; transform: translateY(10px); transition: opacity .25s, transform .25s; }
.goal-toast.show { opacity: 1; transform: none; }
.goal-toast > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.goal-toast b { font-size: 14px; font-weight: 800; }
.goal-toast span:not(.goal-ball) { font-size: 12.5px; opacity: .8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.goal-toast em { font-style: normal; font-weight: 800; color: var(--red); opacity: 1; }
.goal-toast .goal-ball { color: var(--red); }
@media (max-width: 900px) { .goal-toasts { bottom: 76px; } }
@media (prefers-reduced-motion: reduce) { .goal-ball, .goal-hit .mr-score, .sb-score b.goal-hit { animation: none; } }
.goal-ball.still { animation: none; }

/* ── 관리: 자동 기사 (/admin/auto/) ── */
.adm-pill.err { color: var(--red); border-color: color-mix(in srgb, var(--red) 35%, transparent); background: color-mix(in srgb, var(--red) 7%, transparent); }
.aa-big { font-size: 26px !important; font-weight: 800; font-variant-numeric: tabular-nums; }
.aa-big small { font-size: 14px; color: var(--muted); font-weight: 600; }
.aa-run { display: flex; gap: 8px; align-items: center; flex: none; }
.aa-range { display: flex; align-items: center; gap: 8px; color: var(--muted); }
.adm-input.aa-n { width: 64px; text-align: center; }
.aa-cats { align-items: flex-start; }
.aa-catgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; flex: none; }
.aa-catgrid label { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13.5px; }
.aa-catgrid em { font-style: normal; color: var(--muted); font-size: 12px; }
.aa-count { font-style: normal; font-size: 12px; color: var(--muted); margin-left: 6px; }
.aa-pend p a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.aa-log { display: flex; flex-direction: column; }
.aa-row { display: grid; grid-template-columns: 150px 140px 112px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 16px; border-bottom: 1px solid var(--line-soft); font-size: 13px; }
.aa-row:last-child { border-bottom: 0; }
.aa-row time, .aa-row small { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.aa-cat { font-weight: 700; }
.aa-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aa-title a { color: var(--text); font-weight: 600; }
.aa-title a:hover { text-decoration: underline; }
@media (max-width: 900px) {
  .aa-catgrid { grid-template-columns: 1fr; width: 100%; }
  .aa-row { grid-template-columns: auto auto 1fr; }
  .aa-row .aa-title { grid-column: 1 / -1; white-space: normal; }
  .aa-row small { grid-column: 1 / -1; }
}
.aa-row .adm-pill { white-space: nowrap; justify-self: start; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* 페이지 구조 (H1·경로·설명 글) */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); margin: 2px 2px 6px; }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.crumbs i { font-style: normal; opacity: .6; }
.page-h1 { font-size: 17px; font-weight: 800; line-height: 1.35; margin: 0 2px 10px; letter-spacing: -0.01em; }
.tab .tab-h { margin: 0; font: inherit; color: inherit; }
.mh-top { display: flex; align-items: center; min-width: 0; background: var(--panel-2); border-bottom: 1px solid var(--line); }
.mh-top .crumb { flex: 0 1 auto; min-width: 0; background: none; border-bottom: 0; }
.match-h1 { flex: 1 1 0; min-width: 0; margin: 0; padding-right: 12px; font-size: 13px; font-weight: 700; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 서버가 처음 보내는 HTML 의 목록(브라우저가 곧 실제 목록으로 바꿈)은 깜빡임 없이 숨김 */
.ssr-list { display: none; }
@media (max-width: 640px) { .match-h1 { font-size: 12px; } }
.seo-about { margin: 18px 2px 8px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel); }
.seo-about p { margin: 0; font-size: 13.5px; line-height: 1.7; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.seo-about.open p { display: block; }
.seo-about button { margin-top: 6px; padding: 0; border: 0; background: none; color: var(--text); font-weight: 700; font-size: 13px; cursor: pointer; }
/* 종목 화면 H1: 광고와 날짜 줄 사이 작은 흰 상자 (노랑 테두리, 구분선처럼) */
.h1-box { background: var(--panel); border: 1px solid var(--accent); border-radius: var(--rc); padding: 3px 12px; margin: 0 0 8px; }
.h1-box h1 { margin: 0; font-size: 13px; font-weight: 800; line-height: 1.4; color: var(--text); }
/* 아랫줄 메뉴 시작점 = 윗줄 "라이브스코어" 메뉴 칸 위치 (로고 폭 + 간격, 901px 이상에서만. 좁은 화면은 예전처럼 왼쪽부터) */
@media (min-width: 901px) {
  .sport-tabs-wrap .sport-tabs.indent { padding-left: 180px; }
  .sport-tabs-wrap .sport-tabs.indent .sport-pill { padding: 0 10px; gap: 5px; }
}
/* ── 푸터 (2026-10-14 다시 정리, 3차) ──
   위: 로고 + 소개(전체 폭) + 링크 5칸 / 아래: 기존 푸터 5칸. 둘 다 .container 같은 폭, 같은 칸·간격이라 칸선이 맞음 */
.footer { border-top: 1px solid var(--line); background: var(--panel); }
.f-seo-band { background: var(--panel); border-bottom: 1px solid var(--line); }
.f-seo { padding-top: 52px; padding-bottom: 52px; }
.f-seo-intro { margin: 0 0 44px; word-break: keep-all; overflow-wrap: break-word; }
.f-seo-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.f-seo-head .f-logo { display: inline-flex; }
.f-seo-intro p { margin: 0; font-size: 14px; font-weight: 400; line-height: 1.65; color: var(--text-2); }
.f-seo-intro .f-lead { margin-bottom: 14px; font-size: 17px; font-weight: 800; line-height: 1.6; color: var(--text); letter-spacing: -0.01em; }
.f-seo-text { display: block; }
.f-seo-text p + p { margin-top: 10px; }
.f-seo-cols, .f-cols { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; align-items: start; }
.f-seo-col { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; min-width: 0; }
.f-seo-col strong, .f-col h2 { font-size: 14px; font-weight: 800; letter-spacing: -0.01em; color: var(--text); margin: 0 0 4px; }
.f-seo-col a, .f-col a, .f-col .f-disabled { font-size: 13px; line-height: 1.5; color: var(--text-2); word-break: keep-all; }
.f-col .f-disabled { opacity: 1; }
.f-seo-col a:hover, .f-col a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.f-main { grid-template-columns: minmax(0, 1fr); padding-top: 48px; padding-bottom: 44px; }
@media (max-width: 900px) {
  .f-seo { padding-top: 40px; padding-bottom: 40px; }
  .f-seo-cols, .f-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 20px; }
  .f-main { padding-top: 40px; }
}
@media (max-width: 640px) {
  .f-seo-cols, .f-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
}
/* ── 광고 문의 (2026-10-14, livesport 광고 페이지 구조 참고: 히어로 → 숫자 → 광고 형식 → 문의) ── */
.advx { container-type: inline-size; }
.advx > .card { margin-bottom: 16px; }
.advx-hero, .advx-contact { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); min-height: 300px; }
.advx-facts { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); min-height: 280px; }
.advx-hero-txt { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 16px; padding: 48px 40px; }
.advx-hero-txt h1 { margin: 0; font-size: 32px; font-weight: 800; line-height: 1.25; letter-spacing: -0.03em; }
.advx-hero-txt p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--text-2); word-break: keep-all; }
.advx-btn { height: 46px; padding: 0 24px; font-size: 15px; font-weight: 800; }
.advx-cta { margin-top: 6px; }
.advx-art { position: relative; display: grid; grid-template-columns: repeat(2, 1fr); place-items: center; padding: 24px; background: #15171A; color: var(--accent); }
.advx-art-r { clip-path: polygon(24% 0, 100% 0, 100% 100%, 0 100%); padding-left: 22%; }
.advx-art-l { clip-path: polygon(0 0, 100% 0, 76% 100%, 0 100%); padding-right: 22%; }
.advx-art span { display: inline-flex; opacity: .95; }
.advx-art span:nth-child(2), .advx-art span:nth-child(3) { opacity: .55; }
.advx-factgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 20px; align-content: center; padding: 40px 36px; }
.advx-fact { display: flex; flex-direction: column; gap: 4px; min-width: 0; word-break: keep-all; }
.advx-fact b { font-size: 36px; font-weight: 900; line-height: 1.05; letter-spacing: -0.03em; color: var(--text); }
.advx-fact span { font-size: 14px; font-weight: 800; color: var(--text); }
.advx-fact small { font-size: 12.5px; line-height: 1.5; color: var(--muted); }
.advx-sec { padding: 32px 32px 30px; }
.advx-h2 { margin: 0 0 10px; font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
.advx-sec .adv-lead { margin: 0 0 20px; }
.advx-contact-txt { padding: 44px 40px; word-break: keep-all; }
.advx-p { margin: 0; font-size: 14.5px; line-height: 1.7; color: var(--text-2); }
.advx-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 8px; }
.advx-contact-txt h3 { margin: 26px 0 8px; font-size: 15px; font-weight: 800; }
.advx-contact-txt ul { margin: 0; padding-left: 18px; font-size: 14px; line-height: 1.8; color: var(--text-2); }
@container (max-width: 640px) {
  .advx-hero, .advx-contact, .advx-facts { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .advx-art { order: -1; height: 150px; grid-template-columns: repeat(4, 1fr); clip-path: none; padding: 20px; }
  .advx-art svg { width: 44px; height: 44px; }
  .advx-hero-txt, .advx-contact-txt { padding: 28px 22px; }
  .advx-hero-txt h1 { font-size: 26px; }
  .advx-factgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 28px 22px; gap: 24px 16px; }
  .advx-fact b { font-size: 30px; }
  .advx-sec { padding: 24px 18px; }
  .advx-h2 { font-size: 20px; }
}
.advx-ul, .advx-ol { margin: 10px 0 0; padding-left: 20px; font-size: 14.5px; line-height: 1.8; color: var(--text-2); word-break: keep-all; }
.advx-ol li + li, .advx-ul li + li { margin-top: 4px; }
.advx-ol b, .advx-ul b { color: var(--text); }
.advx-sec .advx-p + .advx-p, .advx-ul + .advx-p, .advx-ol + .advx-p, .advx-dl + .advx-p { margin-top: 10px; }
.advx-p { word-break: keep-all; }
.advx-sec .advx-p a, .advx-ul a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.advx-dl { margin: 0; display: grid; gap: 10px; }
.advx-dl div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; font-size: 14.5px; }
.advx-dl dt { font-weight: 800; color: var(--text); }
.advx-dl dd { margin: 0; color: var(--text-2); }
.advx-sec .nr-typelist { margin-top: 14px; }
/* 종목 메인 위쪽 박스 3개(광고 카드·H1·필터): 간격 8px, 필터 안쪽을 타이트하게 */
#view:has(> .scores-panel) { gap: 8px; }
.layout:has(#view > .scores-panel) { padding-top: 8px; }
.scores-panel .toolbar { padding: 6px 12px; row-gap: 6px; }
/* PC 넓은 화면(왼쪽 세로 배너 AD1 이 보일 때): 상단 TOP 배너 왼쪽 끝을 AD1 오른쪽 끝선에 맞춤 */
@media (min-width: 1440px) {
  body:not(.no-side) .ad-lb { max-width: calc(160px / .875 + 252px + 620px + 300px / .875 + 36px + 32px); margin: 0 auto; padding: 0 16px 0 calc(160px / .875); justify-content: flex-start; }
}
/* PC 는 화면 배율 87.5% 라, 네이티브 광고 카드를 실제 화면 기준 높이 80px·아이콘 50px(livescore.com 과 같은 크기)로 맞춤 */
@media (min-width: 901px) {
  .nv-body { gap: 13px; padding: 16px 44px 16px 12px; }
  .nv-mark { width: 57px; height: 57px; border-radius: 11px; font-size: 17px; }
  .nv-text b { font-size: 16.5px; }
  .nv-text small { font-size: 14px; }
}
/* 왼쪽 메뉴: 섹션 제목 오른쪽 더보기(>) · 검색칸 바로 결과 */
.side-sec .side-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.side-more { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin: -6px -8px -6px 0; border-radius: 6px; color: var(--text-2); }
.side-more:hover { background: var(--hover); color: var(--text); }
.ss-results { border-top: 1px solid var(--line); background: var(--panel); max-height: 60vh; overflow-y: auto; }
.ss-results a { display: flex; align-items: center; gap: 10px; padding: 7px 12px; border-bottom: 1px solid var(--line-soft); }
.ss-results a:hover { background: var(--hover); }
.ss-results .ssr-title { font-size: 11px; font-weight: 800; color: var(--muted); padding: 8px 12px 4px; }
.ss-results .ssr-all { justify-content: center; font-size: 13px; font-weight: 700; color: var(--text-2); border-bottom: 0; }
.ss-results .ssr-empty { margin: 0; padding: 12px; font-size: 13px; color: var(--muted); }
.dir-list + .dir-list { margin-top: 0; }
.dir-head { display: flex; align-items: center; gap: 8px; }
.dir-head h2 { margin: 0; font-size: 14px; font-weight: 800; }
.dir-head small { margin-left: auto; color: var(--muted); font-size: 12px; }
.side-search .ss-ic { top: 21px; } /* 검색 결과가 아래에 열려도 돋보기는 입력칸 가운데 */
.au-list { grid-template-columns: minmax(0, 1fr); } /* 작가 소개: 기자 카드 세로 한 줄 */
/* 메뉴 페이지 제목 상자 (시안: 뉴스 전체) — 왼쪽 H1·설명, 오른쪽 로고 */
.pg-box { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 16px; margin: 0 0 14px; padding: 14px 18px; background: var(--panel); border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: var(--rc); box-shadow: var(--shadow); }
.pg-box-txt { display: contents; }
.pg-box h1 { grid-column: 1; grid-row: 1; }
.pg-box p { grid-column: 1 / -1; grid-row: 2; } /* 설명은 상자 좌우 전체 폭 */
.pg-box-logo { grid-column: 2; grid-row: 1; } /* 로고는 제목 줄 오른쪽 위 */
.pg-box h1 { margin: 0; font-size: 22px; line-height: 1.25; }
.pg-box p { margin: 6px 0 0; font-size: 13px; line-height: 1.5; color: var(--text-2); word-break: keep-all; }
.pg-box-logo { flex: none; display: inline-flex; }
.pg-box-logo svg { width: 150px; height: auto; }
@media (max-width: 640px) {
  .pg-box { padding: 12px 14px; column-gap: 10px; }
  .pg-box h1 { font-size: 19px; }
  .pg-box p { font-size: 12.5px; }
  .pg-box-logo svg { width: 92px; }
}
/* 뉴스 전체(제목 상자가 있는 화면): 탭↔상자↔첫 기사 여백 8px 같게, 기사 카드 간격 10px */
.layout:has(#view > .pg-box) { padding-top: 8px; }
#view:has(> .nw-grid) { gap: 0; } /* 기사 목록 화면만 간격을 여백으로 직접 맞춤 */
#view:not(:has(> .nw-grid)) > .pg-box { margin-bottom: 0; } /* 그 밖의 화면은 기본 간격(12px) */
#view > .pg-box { margin: 0 0 8px; }
#view:has(> .pg-box) > .nw-grid { gap: 10px; margin-bottom: 10px; }
#view:has(> .pg-box) .ad-infeed { margin-bottom: 10px; }
/* 뉴스 전체: 페이지 번호 · 아래 설명 블록 (제목 상자와 같은 톤) */
.pg-pager { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; }
.pg-num { min-width: 36px; height: 36px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); font-size: 14px; font-weight: 700; color: var(--text-2); }
a.pg-num:hover { border-color: var(--accent); color: var(--text); }
.pg-num.active { background: var(--accent); border-color: var(--accent); color: #15171A; }
.pg-num.off { opacity: .35; }
.pg-gap { color: var(--muted); padding: 0 2px; }
.pg-seo { margin: 0 0 8px; padding: 16px 18px; background: var(--panel); border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: var(--rc); box-shadow: var(--shadow); }
.pg-seo h2 { margin: 0; font-size: 18px; line-height: 1.3; }
.pg-seo > p { margin: 6px 0 0; font-size: 13px; line-height: 1.6; color: var(--text-2); word-break: keep-all; }
.pg-seo-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.pg-seo h3 { margin: 0; font-size: 14px; font-weight: 800; }
.pg-seo-cols p { margin: 4px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--text-2); word-break: keep-all; }
@media (max-width: 768px) { .pg-seo-cols { grid-template-columns: minmax(0, 1fr); gap: 10px; } }
@media (max-width: 640px) { .pg-seo { padding: 12px 14px; } .pg-seo h2 { font-size: 16.5px; } }
.pg-seo p a { color: var(--text); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--accent); }
/* 광고 문의 입력 양식 (샘플 순서, 사이트 톤) */
.advx-rule { border: 0; border-top: 1px solid var(--line); margin: 12px 0 14px; }
.advx-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; margin-top: 16px; }
.advx-f { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 700; color: var(--text); }
.advx-f i { color: #E5484D; font-style: normal; }
.advx-f-wide { grid-column: 1 / -1; }
.advx-f input, .advx-f textarea { width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--text); font: inherit; font-weight: 500; font-size: 14px; }
.advx-f textarea { resize: vertical; min-height: 130px; line-height: 1.6; }
.advx-f input:focus, .advx-f textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent); }
.advx-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.advx-consent { grid-column: 1 / -1; padding: 12px 14px; background: var(--panel-2); border: 1px solid var(--line); border-radius: 8px; font-size: 13.5px; }
.advx-consent a { color: var(--text); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.advx-consent label, .advx-robot label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.advx-consent input, .advx-robot input { width: 18px; height: 18px; accent-color: var(--accent); }
.advx-robot { grid-column: 1 / -1; display: flex; }
.advx-robot > label { padding: 12px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); font-size: 14px; font-weight: 600; min-width: 220px; }
.advx-send { grid-column: 1 / -1; display: flex; justify-content: center; margin-top: 4px; }
.advx-send .btn { min-width: 180px; justify-content: center; }
.advx-form-msg { grid-column: 1 / -1; margin: 0; text-align: center; font-size: 13.5px; color: var(--text-2); min-height: 1em; }
.advx-form-msg.bad { color: #E5484D; }
@media (max-width: 640px) { .advx-form { grid-template-columns: minmax(0, 1fr); } }
/* 관리 > 문의함 */
.inq { border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; margin-top: 10px; background: var(--panel); }
.inq.done { opacity: .6; }
.inq header { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 13px; }
.inq header a { color: var(--text-2); text-decoration: underline; word-break: break-all; }
.inq header time { margin-left: auto; color: var(--muted); font-size: 12px; }
.inq-type { padding: 2px 8px; border-radius: 4px; background: var(--accent); color: #15171A; font-weight: 800; font-size: 12px; }
.inq p { margin: 10px 0; font-size: 14px; line-height: 1.6; white-space: normal; word-break: break-word; }
.inq footer { display: flex; gap: 8px; }
.adm-empty { color: var(--muted); padding: 16px 0; }
#adv-contact { scroll-margin-top: 76px; } /* 고정 헤더에 가리지 않게 */
@media (max-width: 900px) { #adv-contact { scroll-margin-top: 112px; } }
/* 회사 소개·문의하기 읽기 좋게 */
.nr-subh { font-size: 17px; font-weight: 800; margin: 18px 2px 10px; }
.nr-links { margin-top: 0; }
.nr-linkcard { position: relative; padding-right: 40px; }
.nr-linkcard > span { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 20px; color: var(--muted); }
.tc-doc .btn.ghost { height: 36px; padding: 0 14px; font-size: 13.5px; }
.tc-doc section > h2 + p { margin-top: 4px; }
/* 회사 소개 보강 */
.tc-ul { margin: 8px 0 4px; padding-left: 18px; max-width: 720px; }
.tc-ul li { font-size: 15px; line-height: 1.7; color: var(--text-2); margin: 4px 0; }
.tc-ul li b { color: var(--text); }
.tc-about p a { color: var(--text); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
/* 첫 화면: 비어 있는 동안에도 자리 잡기 (내용이 채워질 때 화면이 튀지 않게) */
#topbar:empty { min-height: 57px; }
#sport-tabs:empty { min-height: 42px; }
@media (min-width: 901px) { #leaderboard:empty { min-height: calc(20px + 90px / .875 + 1px); } }
.en-band { background: #121417; color: #fff; font-size: 13px; }
.en-band-in { display: flex; align-items: center; gap: 12px; min-height: 36px; }
.en-band-in span { flex: 1; }
.en-band-in a { color: var(--accent); font-weight: 700; text-decoration: none; white-space: nowrap; }
.en-band-x { background: none; border: 0; color: #fff; font-size: 20px; line-height: 1; cursor: pointer; padding: 4px 6px; }
