/* =========================================================
   야구 테마 5종 (design-concepts 시안을 게임 화면에 입힌 것)
   scorebook(기록지) · scoreboard(전광판) · broadcast(중계 그래픽) · newspaper(스포츠 신문) · retro(원년 레트로)
   글꼴: css/fonts/<테마>.css (테마를 고를 때만 불러온다, common.js applyUiPrefs)
   공통 변수: --font-body(본문) · --font-head(제목) · --font-num(숫자)
   ========================================================= */

/* ---------- 공통: 글꼴 변수를 쓰는 자리 ---------- */
:root { --font-body: "Pretendard", "Pretendard Variable", "Malgun Gothic", "Apple SD Gothic Neo", system-ui, -apple-system, "Segoe UI", sans-serif; --font-head: var(--font-body); --font-num: var(--font-body); }
:root { font-family: var(--font-body); }
h1, h2, h3, .brand b, .hero h1, .ls-name, .talk-hero h2, .dlg-head h2 { font-family: var(--font-head); }
td, .kpis b, .ls-run, .ls-colon, .money-pv, .scoreboard td, .scoreboard th, .grade, .num, .msg-due, .msg-date { font-family: var(--font-num); }

/* =========================================================
   1. 기록지 — 크림색 종이 · 남색 잉크 · 빨간 펜
   ========================================================= */
[data-theme="scorebook"] {
  --bg: #f3eee1; --bg2: #ebe4d2; --panel: #f8f4e9; --panel2: #efe8d6; --hover: #e9e0c9; --line: #b5aa8e; --line2: #d8cfb7;
  --text: #1d2740; --muted: #4f5874; --faint: #767b8a;
  --accent: #1f4e9c; --on-accent: #f8f4e9; --accent2: #c0392b; --bad: #c0392b; --info: #1f6fb2;
  --sidebar: #1d2740; --sunken: #ede6d4; --shadow: none;
  --r1: #c0392b; --r2: #9a6a00; --r3: #3d4660; --r4: #1f7a43; --r5: #1f4e9c;
  --award-fg: #7a4f00; --award-bg: #fbecc2; --award-line: #c9a14a;
  --radius: 0px; --radius-s: 2px;
  --font-body: "IBM Plex Sans KR", "Pretendard", "Apple SD Gothic Neo", sans-serif;
  --font-head: "IBM Plex Sans KR", "Pretendard", sans-serif;
  --font-num: "IBM Plex Mono", "IBM Plex Sans KR", monospace;
  color-scheme: light;
}
[data-theme="scorebook"] body { background-color: var(--bg); background-image: linear-gradient(var(--line2) 1px, transparent 1px); background-size: 100% 28px; }
[data-theme="scorebook"] .card { border: 1.5px solid var(--text); box-shadow: none; }
[data-theme="scorebook"] .card > :is(h2, h3):first-child { color: var(--text); margin: calc(-1 * var(--pad)) calc(-1 * var(--pad)) 12px; padding: 7px var(--pad); border-bottom: 1.5px solid var(--text); font-size: .82em; font-weight: 700; letter-spacing: .16em; background: var(--panel); }
[data-theme="scorebook"] th { font-family: var(--font-num); font-weight: 600; color: var(--muted); border-bottom: 1.5px solid var(--text); }
[data-theme="scorebook"] tbody tr:nth-child(even) td, [data-theme="scorebook"] table tr:nth-child(even) td { background: transparent; }
[data-theme="scorebook"] td { border-bottom-color: var(--line2); }
[data-theme="scorebook"] tr.cutline td { border-bottom: 1.5px dashed var(--accent2); }
[data-theme="scorebook"] button { border: 1.5px solid var(--text); background: var(--panel); border-radius: 0; font-weight: 600; }
[data-theme="scorebook"] button.primary { background: var(--text); border-color: var(--text); color: var(--panel); box-shadow: none; }
[data-theme="scorebook"] button.small { border-width: 1px; }
[data-theme="scorebook"] .nav button, [data-theme="scorebook"] .side-foot button, [data-theme="scorebook"] .side-toggle { border: 0; background: none; }
[data-theme="scorebook"] .nav button.active { background: rgba(243, 238, 225, .12); }
[data-theme="scorebook"] .tabs, [data-theme="scorebook"] .seg { background: transparent; border: 0; border-bottom: 1.5px solid var(--text); border-radius: 0; padding: 0; gap: 2px; }
[data-theme="scorebook"] .tabs button, [data-theme="scorebook"] .seg button { border: 1px solid var(--line); border-bottom: 0; border-radius: 3px 3px 0 0; background: var(--panel2); margin-bottom: 0; }
[data-theme="scorebook"] .tabs button.active, [data-theme="scorebook"] .seg button.on { background: var(--panel); border: 1.5px solid var(--text); border-bottom: 0; box-shadow: 0 1.5px 0 var(--panel); color: var(--text); }
[data-theme="scorebook"] .hero { background: var(--panel); border-left: 6px solid var(--team); }
[data-theme="scorebook"] .hero::after { display: none; }
[data-theme="scorebook"] .kpis div { background: transparent; border: 0; border-left: 1px solid var(--line); border-radius: 0; }
[data-theme="scorebook"] .badge, [data-theme="scorebook"] .msg-tag { border-radius: 0; }
[data-theme="scorebook"] .msg { border-radius: 0; background: var(--panel); }
[data-theme="scorebook"] .livescore { background: var(--panel); border: 1.5px solid var(--text); border-radius: 0; }
[data-theme="scorebook"] .ls-team.lead .ls-run { color: var(--accent2); }
[data-theme="scorebook"] .scoreboard td { border: 1px solid var(--line2); }
[data-theme="scorebook"] .modal, [data-theme="scorebook"] .dlg { border: 1.5px solid var(--text); border-radius: 0; }
[data-theme="scorebook"] .topbar { background: color-mix(in srgb, var(--bg) 92%, transparent); border-bottom: 2px solid var(--text); }
[data-theme="scorebook"] #toast { border-radius: 0; }

/* =========================================================
   2. 전광판 — 짙은 녹색 철판 · 검은 숫자 타일 · 노란 전구
   ========================================================= */
[data-theme="scoreboard"] {
  --bg: #0f2e22; --bg2: #0a2018; --panel: #15392b; --panel2: #1b4434; --hover: #21503e; --line: #0a2018; --line2: #0e281e;
  --text: #f1efe6; --muted: #b3c0b7; --faint: #6f8a7d;
  --accent: #ffcf3a; --on-accent: #1a1405; --accent2: #ffa94d; --bad: #ff6b55; --info: #7fd3ff;
  --sidebar: #0a2018; --sunken: #102d22; --shadow: none;
  --r1: #ff7d6b; --r2: #ffc65a; --r3: #e6ebe4; --r4: #6fe39a; --r5: #6fd6ff;
  --award-fg: #ffd77a; --award-bg: #2a2410; --award-line: #8a6d1d;
  --radius: 0px; --radius-s: 0px;
  --font-head: "Black Han Sans", "Pretendard", sans-serif;
  --font-num: "Oswald", "Pretendard", sans-serif;
  color-scheme: dark;
}
[data-theme="scoreboard"] body { background-image: repeating-linear-gradient(90deg, rgba(0,0,0,.08) 0 2px, transparent 2px 120px); }
[data-theme="scoreboard"] h1, [data-theme="scoreboard"] h2 { font-weight: 400; letter-spacing: .02em; }
[data-theme="scoreboard"] .card { border: 3px solid var(--line); box-shadow: inset 0 0 0 1px rgba(255,255,255,.04); }
[data-theme="scoreboard"] .card > :is(h2, h3):first-child { font-family: var(--font-head); font-weight: 400; letter-spacing: .02em; color: var(--text); margin: calc(-1 * var(--pad)) calc(-1 * var(--pad)) 12px; padding: 9px var(--pad) 7px; border-bottom: 3px solid var(--line); font-size: 1.12em; }
[data-theme="scoreboard"] th { font-family: var(--font-num); font-weight: 600; letter-spacing: .08em; background: var(--panel); border-bottom: 3px solid var(--line); }
[data-theme="scoreboard"] td { border-bottom: 2px solid var(--line2); font-weight: 500; }
[data-theme="scoreboard"] tbody tr:nth-child(even) td, [data-theme="scoreboard"] table tr:nth-child(even) td { background: transparent; }
[data-theme="scoreboard"] button { background: var(--panel2); border: 0; border-bottom: 3px solid var(--line); font-weight: 700; }
[data-theme="scoreboard"] button:hover:not(:disabled) { border: 0; border-bottom: 3px solid var(--line); background: var(--hover); }
[data-theme="scoreboard"] button.primary { background: var(--accent); color: var(--on-accent); box-shadow: none; }
[data-theme="scoreboard"] .nav button, [data-theme="scoreboard"] .side-toggle { border: 0 !important; background: none; }
[data-theme="scoreboard"] .nav button.active { background: var(--panel); box-shadow: inset 4px 0 0 var(--accent); }
[data-theme="scoreboard"] .nav button.active::before { display: none; }
[data-theme="scoreboard"] .tabs, [data-theme="scoreboard"] .seg { background: var(--line); border: 0; padding: 3px; }
[data-theme="scoreboard"] .tabs button, [data-theme="scoreboard"] .seg button { border: 0; background: transparent; }
[data-theme="scoreboard"] .tabs button.active, [data-theme="scoreboard"] .seg button.on { background: var(--panel2); color: var(--accent); box-shadow: none; }
[data-theme="scoreboard"] .hero { background: var(--panel); border: 3px solid var(--line); }
[data-theme="scoreboard"] .hero::after { display: none; }
[data-theme="scoreboard"] .kpis div { background: var(--line); border: 0; }
[data-theme="scoreboard"] .kpis b { color: var(--accent); font-weight: 600; font-size: 1.5em; letter-spacing: .04em; }
/* 큰 점수판·라인스코어: 숫자 타일 */
[data-theme="scoreboard"] .livescore { background: var(--line); border: 3px solid #07160f; }
[data-theme="scoreboard"] .ls-run { background: #0b0d0c; color: var(--text); padding: 4px 10px; font-weight: 600; }
[data-theme="scoreboard"] .ls-team.lead .ls-run { color: var(--accent); }
[data-theme="scoreboard"] .scoreboard { border-collapse: separate; border-spacing: 3px; }
[data-theme="scoreboard"] .scoreboard td:not(.l) { background: #0b0d0c !important; color: var(--accent); font-weight: 600; font-size: 1.1em; border: 0; }
[data-theme="scoreboard"] .scoreboard td.l { border: 0; font-family: var(--font-head); }
[data-theme="scoreboard"] .scoreboard th { border: 0; background: transparent; }
[data-theme="scoreboard"] .badge, [data-theme="scoreboard"] .msg-tag { border-radius: 0; }
[data-theme="scoreboard"] .msg { border-radius: 0; }
[data-theme="scoreboard"] .modal, [data-theme="scoreboard"] .dlg { border: 3px solid var(--line); border-radius: 0; }

/* =========================================================
   3. 중계 그래픽 — 네이비 띠 · 빨강/금색 · 굵고 좁은 숫자
   ========================================================= */
[data-theme="broadcast"] {
  --bg: #e9ecf3; --bg2: #dde2ec; --panel: #ffffff; --panel2: #f1f3f8; --hover: #e6ebf5; --line: #c9d1e2; --line2: #e3e7f0;
  --text: #0a1430; --muted: #56617f; --faint: #6f7a96;
  --accent: #e5383b; --on-accent: #fff; --accent2: #a06c00; --bad: #d62828; --info: #1f6fd8;
  --sidebar: #0a1430; --sunken: #f1f3f8; --shadow: none;
  --r1: #d62828; --r2: #b07a00; --r3: #3b4566; --r4: #128a46; --r5: #1f4fd8;
  --award-fg: #7a5600; --award-bg: #fff3d1; --award-line: #e6c56a;
  --radius: 0px; --radius-s: 0px;
  --font-head: "Do Hyeon", "Pretendard", sans-serif;
  --font-num: "Barlow Condensed", "Pretendard", sans-serif;
  color-scheme: light;
}
[data-theme="broadcast"] h1, [data-theme="broadcast"] h2 { font-weight: 400; }
[data-theme="broadcast"] td { font-weight: 600; font-size: 1.06em; }
[data-theme="broadcast"] .card { border: 0; border-top: 3px solid var(--text); }
/* 하단 자막처럼 오른쪽이 잘린 네이비 제목 띠 */
[data-theme="broadcast"] .card > :is(h2, h3):first-child { font-family: var(--font-head); font-weight: 400; letter-spacing: 0; display: block; width: fit-content; max-width: calc(100% + var(--pad)); margin: calc(-1 * var(--pad)) 0 14px calc(-1 * var(--pad)); padding: 6px 30px 6px var(--pad); background: var(--text); color: #fff; font-size: 1.1em;
  clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%); }
[data-theme="broadcast"] th { font-family: var(--font-num); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); border-bottom: 2px solid var(--text); }
[data-theme="broadcast"] tbody tr:nth-child(even) td, [data-theme="broadcast"] table tr:nth-child(even) td { background: transparent; }
[data-theme="broadcast"] tr.me td { background: #fff7dc !important; }
[data-theme="broadcast"] tr.me td:first-child { box-shadow: inset 4px 0 0 #ffc531; }
[data-theme="broadcast"] button { border: 1.5px solid var(--text); background: #fff; font-weight: 700; }
[data-theme="broadcast"] button.primary { background: var(--accent); border-color: var(--accent); box-shadow: none; }
[data-theme="broadcast"] button.go { background: #ffc531; border-color: #ffc531; color: var(--text); }
[data-theme="broadcast"] .nav button, [data-theme="broadcast"] .side-foot button, [data-theme="broadcast"] .side-toggle { border: 0; background: none; }
[data-theme="broadcast"] .nav button { font-family: var(--font-head); font-size: 1.08em; }
[data-theme="broadcast"] .nav button.active { background: #1a2b5c; }
[data-theme="broadcast"] .nav button.active::before { background: #ffc531; }
[data-theme="broadcast"] .side-foot button { background: rgba(255,255,255,.06); }
[data-theme="broadcast"] .tabs, [data-theme="broadcast"] .seg { background: transparent; border: 0; border-bottom: 2px solid var(--line); padding: 0; }
[data-theme="broadcast"] .tabs button, [data-theme="broadcast"] .seg button { border: 0; background: transparent; font-weight: 700; }
[data-theme="broadcast"] .tabs button.active, [data-theme="broadcast"] .seg button.on { background: transparent; box-shadow: inset 0 -4px 0 #ffc531; color: var(--text); }
[data-theme="broadcast"] .topbar { background: var(--text); color: #fff; margin: 0 -28px 18px; padding: 12px 28px; border: 0; }
[data-theme="broadcast"] .topbar .info span, [data-theme="broadcast"] .topbar .save-ind { color: #9aa6c6; }
[data-theme="broadcast"] .topbar button { background: #1a2b5c; border-color: #1a2b5c; color: #fff; }
[data-theme="broadcast"] .topbar button.primary, [data-theme="broadcast"] .topbar button.go { background: #ffc531; border-color: #ffc531; color: var(--text); }
[data-theme="broadcast"] .hero { background: var(--text); color: #fff; border: 0; }
[data-theme="broadcast"] .hero::after { background: linear-gradient(-105deg, var(--team) 0 55%, transparent 55.3%); width: 42%; height: 100%; right: 0; top: 0; border-radius: 0; }
[data-theme="broadcast"] .hero .muted, [data-theme="broadcast"] .hero small { color: #b7c0da; }
[data-theme="broadcast"] .kpis div { background: rgba(0,0,0,.35); border: 0; }
[data-theme="broadcast"] .kpis b { font-weight: 800; font-size: 1.6em; }
[data-theme="broadcast"] .livescore { background: var(--text); color: #fff; border: 0; }
[data-theme="broadcast"] .ls-run { color: #8d97b3; font-weight: 800; }
[data-theme="broadcast"] .ls-team.lead .ls-run { color: #ffc531; }
[data-theme="broadcast"] .ls-state { border-color: #1a2b5c; }
[data-theme="broadcast"] .badge, [data-theme="broadcast"] .msg-tag { border-radius: 0; }
[data-theme="broadcast"] .msg { border-radius: 0; background: #fff; }
[data-theme="broadcast"] .modal, [data-theme="broadcast"] .dlg { border: 0; border-top: 4px solid var(--accent); border-radius: 0; }
@media (max-width: 860px) { [data-theme="broadcast"] .topbar { margin: 0 -12px 18px; padding: 10px 12px; } }

/* =========================================================
   4. 스포츠 신문 — 신문 용지 · 명조 제목 · 굵은 괘선
   ========================================================= */
[data-theme="newspaper"] {
  --bg: #f6f3ec; --bg2: #ede9df; --panel: #f6f3ec; --panel2: #eeeae0; --hover: #ebe6da; --line: #b9b2a5; --line2: #d9d3c6;
  --text: #141414; --muted: #5a5650; --faint: #77726a;
  --accent: #b3261e; --on-accent: #fff; --accent2: #8a5a00; --bad: #b3261e; --info: #1f4e9c;
  --sidebar: #141414; --sunken: #efebe2; --shadow: none;
  --r1: #b3261e; --r2: #8a5a00; --r3: #3c3a36; --r4: #1d6e3c; --r5: #1f4e9c;
  --award-fg: #6e4a00; --award-bg: #f4e7c4; --award-line: #c9a14a;
  --radius: 0px; --radius-s: 0px;
  --font-head: "Noto Serif KR", "Nanum Myeongjo", serif;
  --font-num: "Roboto Condensed", "Pretendard", sans-serif;
  color-scheme: light;
}
[data-theme="newspaper"] h1 { font-weight: 900; letter-spacing: -.02em; }
[data-theme="newspaper"] h2 { font-weight: 900; }
[data-theme="newspaper"] .card > h3:first-child { font-family: var(--font-head); font-weight: 900; color: var(--text); font-size: 1.08em; }
[data-theme="newspaper"] .card { background: transparent; border: 0; border-top: 3px solid var(--text); padding: 10px 2px 14px; }
[data-theme="newspaper"] .grid, [data-theme="newspaper"] .grid3 { column-gap: 28px; }
[data-theme="newspaper"] th { font-family: var(--font-num); font-weight: 700; color: var(--text); background: var(--bg); border-bottom: 1px solid var(--text); }
[data-theme="newspaper"] td { border-bottom: 1px dotted var(--line); }
[data-theme="newspaper"] tbody tr:nth-child(even) td, [data-theme="newspaper"] table tr:nth-child(even) td { background: transparent; }
[data-theme="newspaper"] tr.me td { background: transparent !important; color: var(--info); font-weight: 700; }
[data-theme="newspaper"] tr.me td:first-child { box-shadow: none; }
[data-theme="newspaper"] tr.cutline td { border-bottom: 1px solid var(--text); }
[data-theme="newspaper"] button { border: 1px solid var(--text); background: transparent; font-weight: 700; }
[data-theme="newspaper"] button.primary { background: var(--text); border-color: var(--text); color: var(--bg); box-shadow: none; }
[data-theme="newspaper"] .nav button, [data-theme="newspaper"] .side-toggle { border: 0; }
[data-theme="newspaper"] .side-foot button { border-color: rgba(255,255,255,.2); }
[data-theme="newspaper"] .brand b { font-family: var(--font-head); font-weight: 900; font-size: 1.2em; }
[data-theme="newspaper"] .nav button.active { background: rgba(255,255,255,.08); }
[data-theme="newspaper"] .nav button.active::before { background: var(--accent); }
[data-theme="newspaper"] .tabs, [data-theme="newspaper"] .seg { background: transparent; border: 0; border-top: 1px solid var(--text); border-bottom: 1px solid var(--text); padding: 0; gap: 0; }
[data-theme="newspaper"] .tabs button, [data-theme="newspaper"] .seg button { border: 0; border-right: 1px solid var(--line); background: transparent; font-weight: 700; color: var(--text); padding: 6px 14px; }
[data-theme="newspaper"] .tabs button.active, [data-theme="newspaper"] .seg button.on { background: transparent; box-shadow: none; color: var(--accent); }
[data-theme="newspaper"] .topbar { background: var(--bg); border-bottom: 3px double var(--text); }
[data-theme="newspaper"] .topbar .info b { font-family: var(--font-head); font-weight: 900; font-size: 1.3em; }
[data-theme="newspaper"] .hero { background: transparent; border: 0; border-top: 3px solid var(--text); border-bottom: 1px solid var(--text); }
[data-theme="newspaper"] .hero::after { display: none; }
[data-theme="newspaper"] .hero h1 { font-size: 2.2em; }
[data-theme="newspaper"] .kpis div { background: transparent; border: 0; border-left: 1px solid var(--line); }
[data-theme="newspaper"] .livescore { background: transparent; border: 0; border-top: 3px solid var(--text); border-bottom: 1px solid var(--text); }
[data-theme="newspaper"] .ls-team.lead .ls-run { color: var(--accent); }
[data-theme="newspaper"] .badge, [data-theme="newspaper"] .msg-tag { border-radius: 0; }
[data-theme="newspaper"] .msg { border-radius: 0; background: transparent; border: 0; border-bottom: 1px dotted var(--line); border-left: 3px solid var(--line); }
[data-theme="newspaper"] .msg.pending { border-left-color: var(--accent); }
[data-theme="newspaper"] .modal, [data-theme="newspaper"] .dlg { background: var(--bg); border: 1px solid var(--text); border-top: 4px solid var(--text); border-radius: 0; }

/* =========================================================
   5. 원년 레트로 — 크림 · 벽돌색 · 남색 · 겨자색, 유니폼 줄무늬
   ========================================================= */
[data-theme="retro"] {
  --bg: #efe5cf; --bg2: #e6d9bb; --panel: #faf4e4; --panel2: #f3ead3; --hover: #efe2c2; --line: #1d2c4f; --line2: #e2d4b2;
  --text: #2a2620; --muted: #665e4f; --faint: #80776a;
  --accent: #b23a2b; --on-accent: #faf4e4; --accent2: #a8700c; --bad: #b23a2b; --info: #2d7a74;
  --sidebar: #1d2c4f; --sunken: #f3ead3; --shadow: none;
  --r1: #b23a2b; --r2: #a8700c; --r3: #3d382f; --r4: #2d7a4a; --r5: #1d4f9c;
  --award-fg: #6e4a00; --award-bg: #f6e3b0; --award-line: #c99a2b;
  --radius: 14px; --radius-s: 8px;
  --font-body: "Gowun Dodum", "Pretendard", "Apple SD Gothic Neo", sans-serif;
  --font-head: "Black Han Sans", "Pretendard", sans-serif;
  --font-num: "Archivo Narrow", "Gowun Dodum", sans-serif;
  color-scheme: light;
}
[data-theme="retro"] body { background-image: radial-gradient(rgba(42,38,32,.07) 1px, transparent 1.2px); background-size: 6px 6px; }
[data-theme="retro"] h1, [data-theme="retro"] h2 { font-weight: 400; }
[data-theme="retro"] td { font-weight: 600; }
[data-theme="retro"] .card { border: 2.5px solid var(--line); }
[data-theme="retro"] .card > :is(h2, h3):first-child { font-family: var(--font-head); font-weight: 400; letter-spacing: .01em; margin: calc(-1 * var(--pad)) calc(-1 * var(--pad)) 12px; padding: 8px var(--pad); background: var(--line); color: var(--panel); border-radius: 11px 11px 0 0; font-size: 1.1em; }
[data-theme="retro"] .card:nth-child(3n+2) > :is(h2, h3):first-child { background: var(--accent); }
[data-theme="retro"] .card:nth-child(3n) > :is(h2, h3):first-child { background: var(--info); }
[data-theme="retro"] th { font-family: var(--font-num); color: var(--muted); background: var(--panel); border-bottom: 2px solid var(--line2); }
[data-theme="retro"] td { border-bottom: 2px solid var(--line2); }
[data-theme="retro"] tbody tr:nth-child(even) td, [data-theme="retro"] table tr:nth-child(even) td { background: transparent; }
[data-theme="retro"] tr.me td { background: #f6e3b0 !important; }
[data-theme="retro"] tr.me td:first-child { box-shadow: none; }
/* 버튼·입력칸만 둥근 알약 모양 (--radius-s 는 표 감싸개 등에도 쓰여서 크게 두면 표가 잘린다) */
[data-theme="retro"] button:not(.teamcard):not(.themecard):not(.talk-opt):not(.auto-tog):not(.mslot), [data-theme="retro"] select, [data-theme="retro"] input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]) { border-radius: 999px; }
[data-theme="retro"] button { border: 2px solid var(--line); background: var(--panel); font-weight: 700; padding: 6px 14px; }
[data-theme="retro"] button.primary { background: var(--accent); border-color: var(--accent); box-shadow: none; }
[data-theme="retro"] button.small { border-width: 1.5px; }
[data-theme="retro"] .nav button, [data-theme="retro"] .side-toggle { border: 0; border-radius: 0; background: none; padding: 8px 12px; }
[data-theme="retro"] .nav button { font-family: var(--font-head); font-size: 1.04em; }
[data-theme="retro"] .nav button.active { background: #d9a22b; color: var(--line); clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 50%, 100% 100%, 0 100%); }
[data-theme="retro"] .nav button.active::before { display: none; }
[data-theme="retro"] .side-foot button { border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.06); color: #e6dcc6; }
[data-theme="retro"] .side-toggle { background: rgba(255,255,255,.08); color: #e6dcc6; padding: 0; }
/* 사이드바 위아래 유니폼 3선 */
[data-theme="retro"] .sidebar { border-right: 0; box-shadow: inset -5px 0 0 #b23a2b, inset -8px 0 0 #faf4e4, inset -12px 0 0 #1d2c4f; }
[data-theme="retro"] .topbar { background: color-mix(in srgb, var(--bg) 90%, transparent); border-bottom: 0; box-shadow: 0 4px 0 var(--line), 0 7px 0 var(--bg), 0 11px 0 var(--accent); margin-bottom: 26px; }
[data-theme="retro"] .tabs, [data-theme="retro"] .seg { background: var(--panel); border: 2px solid var(--line); border-radius: 999px; }
[data-theme="retro"] .tabs button, [data-theme="retro"] .seg button { border: 0; border-radius: 999px; background: transparent; padding: 5px 14px; }
[data-theme="retro"] .tabs button.active, [data-theme="retro"] .seg button.on { background: var(--line); color: var(--panel); box-shadow: none; }
[data-theme="retro"] .hero { background: var(--panel); border: 2.5px solid var(--line); }
[data-theme="retro"] .hero::after { display: none; }
[data-theme="retro"] .kpis div { background: var(--bg); border: 2px solid var(--line2); }
[data-theme="retro"] .kpis b { font-family: "Alfa Slab One", var(--font-num); font-weight: 400; color: var(--line); }
[data-theme="retro"] .livescore { background: var(--panel); border: 2.5px solid var(--line); }
[data-theme="retro"] .ls-run { font-family: "Alfa Slab One", var(--font-num); font-weight: 400; }
[data-theme="retro"] .ls-team.lead .ls-run { color: var(--accent); }
[data-theme="retro"] .modal, [data-theme="retro"] .dlg { border: 2.5px solid var(--line); }
[data-theme="retro"] .grade { border-radius: 999px; }

/* =========================================================
   전체 화면 중계(3D·4D): 새 테마의 카드·버튼 꾸밈이 어두운 극장 화면을 덮지 않게 원래 모양으로 되돌린다
   (신문 테마의 투명 카드 배경, 밝은 테마의 흰 버튼이 전체 화면에서 깨지던 문제)
   ========================================================= */
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .card.f3d-full {
  background: #05080b; border: 0; border-radius: 0; box-shadow: none; padding: 10px 12px; color: #e8eef0; }
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-full button {
  background: rgba(255,255,255,.08); color: #e8eef0; border: 1px solid rgba(255,255,255,.18); box-shadow: none; }
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-full button:hover:not(:disabled) {
  background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.3); }
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-full button.primary {
  background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
html[data-theme="newspaper"] .f3d-full button.primary, html[data-theme="scorebook"] .f3d-full button.primary { background: #f3eee1; color: #141414; border-color: #f3eee1; }
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-full button.live-auto-btn.on {
  background: var(--accent2); border-color: var(--accent2); color: #111; }
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-full .seg {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 10px; padding: 3px; }
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-full .seg button {
  background: transparent; border: 0; color: #aeb8b2; }
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-full .seg button.on {
  background: rgba(255,255,255,.16); color: #fff; box-shadow: none; }
/* 화면 위에 떠 있는 버튼(전체 화면 전환·미니 팬 채팅)은 일반 화면에서도 반투명 검정 그대로 */
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-fsbtn {
  border: 0; border-radius: 8px; background: rgba(0,0,0,.42); color: #fff; padding: 0; box-shadow: none; }
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-fsbtn:hover:not(:disabled) {
  border: 0; background: rgba(0,0,0,.65); }
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) :is(.fc-mini-head button, .fc-mini.off button) {
  background: rgba(5,8,11,.6); color: #e8eef0; border: 1px solid rgba(255,255,255,.25); border-radius: 6px; }

/* =========================================================
   전 화면 점검(테마 × 60개 화면)에서 찾은 보정
   ========================================================= */
/* 밝은 테마: 명장면 등급 색이 밝은 바탕에서 묻히지 않게 */
html:is([data-theme="day"], [data-theme="scorebook"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) { --r-common: #5f7368; --r-rare: #1f63c4; --r-hero: #7a3fd0; --r-legend: #a36a00; }
/* 전체 화면(어두운 배경)의 보조 글자: 밝은 테마의 어두운 muted 를 쓰지 않는다 */
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-full :is(.f3d-role, .muted) { color: #a9b4ae; }
/* 색 띠 제목 안의 보조 글자 */
[data-theme="broadcast"] .card > :is(h2, h3):first-child :is(.muted, small) { color: #b7c0da; }
[data-theme="retro"] .card > :is(h2, h3):first-child :is(.muted, small) { color: #f3e7cc; opacity: .85; }
[data-theme="broadcast"] .livescore .muted { color: #9aa6c6; }
/* 신문: '공격' 표시 글자 대비 */
/* 표가 카드보다 넓으면(기록지의 넓은 글꼴 등) 옆 카드에 가리지 않고 카드 안에서 가로 스크롤 */
html:is([data-theme="scorebook"], [data-theme="scoreboard"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .card:has(> table) { overflow-x: auto; }
[data-theme="scorebook"] td { font-size: .95em; }
/* 문자 중계 이벤트 줄(고정 보라색)과 팬 채팅 닉네임(구단 색)을 밝은 바탕·녹색 바탕에서도 읽히게 */
html:is([data-theme="scorebook"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .log .event { color: #7a3fd0; }
html:is([data-theme="scorebook"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .fc-card .fc-nick { filter: brightness(.68) saturate(1.3); }
html[data-theme="scoreboard"] .fc-card .fc-nick { filter: brightness(1.45); }
/* 모바일·기타 보정 */
@media (max-width: 860px) { [data-theme="retro"] :is(.tabs, .seg) { border-radius: 18px; } }
[data-theme="scoreboard"] .pill { background: #d9412b; }
html:is([data-theme="scorebook"], [data-theme="broadcast"], [data-theme="newspaper"], [data-theme="retro"]) .f3d-full .W { color: #6fe39a; }
