/* 한 구단의 10년 — FRONT OFFICE 디자인 (v1.0 시안 반영)
   밝은 회색 바탕 · 흰 패널 · 슬레이트 네이비 사이드바(데스크톱) · 벽돌색 포인트.
   클래스 이름은 기존 ui.js 마크업을 그대로 쓰고 외관만 바꾼다. 변수 이름(--gold 등)도 유지하되 값만 새 팔레트로. */
:root {
  color-scheme: light;
  --bg: #f2f3f2; --card: #ffffff; --tile: #f7f8f7; --tile2: #edf1f2; --line: #d8dfdf; --line2: #b5c0c2;
  --text: #24313b; --dim: #435460; --muted: #6a797e;
  --gold: #b44b37; --accent-soft: #f7ece7; --navy: #263e50; --navy-dark: #192d3c;
  --blue: #263e50; --blue2: #27648a; --green: #307358; --red: #b3261e; --orange: #b44b37;
  --shadow: 0 8px 26px rgba(22,38,46,.045);
  --side: 212px;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--bg); color: var(--text); font-family: Pretendard, 'Pretendard Variable', 'Noto Sans KR', 'Apple SD Gothic Neo', 'Malgun Gothic', system-ui, sans-serif; font-size: 14px; line-height: 1.55; letter-spacing: -0.02em; -webkit-font-smoothing: antialiased; }
a { color: var(--blue2); text-decoration: none; }
button, input, select { font-family: inherit; }
button { cursor: pointer; }
button:disabled { opacity: 0.52; cursor: not-allowed; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgba(39,100,138,.3); outline-offset: 2px; }
.hidden { display: none !important; }
.app { max-width: 760px; margin: 0 auto; padding: 14px 14px 104px; min-width: 0; }
h1 { font-size: 26px; font-weight: 900; letter-spacing: -0.04em; margin: 2px 0 6px; line-height: 1.2; }
h2 { font-size: 15px; font-weight: 900; margin: 18px 0 8px; letter-spacing: -0.02em; }
h3 { font-size: 13px; font-weight: 800; margin: 12px 0 6px; color: var(--dim); }
p { margin: 6px 0; }
.muted { color: var(--muted); } .gold { color: var(--gold); } .green { color: var(--green); } .red { color: var(--red); } .blue { color: var(--blue2); }
.small { font-size: 12px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 4px; padding: 15px 17px; margin: 10px 0; overflow-x: auto; }
.card.tight { padding: 11px 13px; }
.row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.row.between { justify-content: space-between; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; }

/* 헤더 */
.kicker { font-size: 11px; letter-spacing: 0.08em; color: var(--gold); font-weight: 800; text-transform: uppercase; }
.hdr { display: flex; justify-content: space-between; align-items: flex-start; margin: 4px 0 12px; gap: 10px; }
.hdr .team { font-size: 23px; font-weight: 900; margin: 2px 0 0; letter-spacing: -0.04em; line-height: 1.15; }
.logo { width: 46px; height: 46px; border-radius: 4px; background: var(--navy); border: 2px solid #dfe4e4; box-shadow: 0 0 0 1px var(--navy); color: #fff; font-weight: 900; font-size: 13px; letter-spacing: -0.06em; cursor: pointer; flex: none; display: grid; place-items: center; }
.hdr-r { display: flex; flex-direction: column; align-items: center; gap: 3px; flex: none; }
.ver { font-size: 10px; color: var(--muted); letter-spacing: 0.04em; }
.tiles3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--card); border: 1px solid var(--line); margin: 8px 0 14px; border-radius: 4px; overflow: hidden; }
.tile { position: relative; min-width: 0; padding: 13px 10px 11px 13px; border-right: 1px solid var(--line); }
.tile:last-child { border-right: 0; }
.tile::before { content: ""; position: absolute; left: 0; top: 0; width: 3px; height: 100%; background: transparent; }
.tile:first-child::before { background: var(--gold); }
.tile .num { font-size: clamp(17px, 4.6vw, 24px); font-weight: 900; line-height: 1.1; font-variant-numeric: tabular-nums; letter-spacing: -0.04em; white-space: nowrap; }
.tile .cap { font-size: 10.5px; color: var(--muted); margin-top: 5px; font-weight: 700; }
.tile.hi .num { color: var(--gold); }
.sec { display: flex; justify-content: space-between; align-items: baseline; margin: 20px 0 9px; gap: 10px; }
.sec h2 { margin: 0; font-size: 15px; }
.sec .r { font-size: 12px; color: var(--gold); font-weight: 700; }

/* 버튼 */
.btn { background: var(--card); color: var(--text); border: 1px solid var(--line2); border-radius: 4px; padding: 9px 13px; font-size: 12.5px; font-weight: 750; cursor: pointer; min-height: 38px; line-height: 1.25; display: inline-flex; align-items: center; justify-content: center; gap: 6px; text-align: center; }
.btn:hover { border-color: var(--navy); background: var(--tile); }
.btn.primary { background: var(--navy); border-color: var(--navy); color: #fff; }
.btn.primary:hover { background: var(--navy-dark); border-color: var(--navy-dark); }
.btn.accent { background: var(--gold); border-color: var(--gold); color: #fff; }
.btn.accent:hover { background: #9e3e2d; border-color: #9e3e2d; }
.btn.small { padding: 5px 10px; font-size: 11.5px; min-height: 30px; }
.btn.block { width: 100%; }
.btn.danger { border-color: #e1beb4; color: var(--gold); background: var(--accent-soft); }
.btn.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.seg { display: flex; gap: 6px; flex-wrap: wrap; }
.seg .btn { padding: 7px 11px; font-size: 11.5px; min-height: 32px; }
.seg.fill { background: transparent; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0; gap: 2px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
.seg.fill .btn { flex: 1; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; padding: 10px 6px; font-size: 12px; color: var(--muted); min-height: 0; white-space: nowrap; }
.seg.fill .btn.on { background: transparent; color: var(--gold); border-bottom-color: var(--gold); }

/* 선수 카드 (행) */
.pcard { display: flex; align-items: center; gap: 11px; background: var(--card); border: 1px solid var(--line); border-radius: 4px; padding: 10px 12px; margin: 6px 0; cursor: pointer; min-width: 0; }
.pcard:hover { border-color: #83969d; }
.pcard.sel { border: 2px solid var(--gold); padding: 9px 11px; }
.pbadge { width: 36px; height: 37px; border-radius: 3px; background: #e6ebed; color: var(--navy); font-weight: 900; font-size: 11px; display: grid; place-items: center; flex: none; }
.pcard .body { flex: 1; min-width: 0; }
.pcard .name { font-size: 13.5px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pcard .meta { font-size: 11px; color: var(--muted); margin-top: 2px; line-height: 1.4; }
.pcard .sub { font-size: 11px; color: var(--dim); margin-top: 2px; line-height: 1.4; }
.pcard .right { text-align: right; flex: none; }
.pcard .ovr { font-size: 20px; font-weight: 900; color: var(--gold); line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -0.04em; white-space: nowrap; }
.pcard .ovr small { font-size: 10px; color: var(--muted); margin-left: 3px; font-weight: 600; letter-spacing: 0; }
.pcard .st { font-size: 11px; margin-top: 5px; color: var(--muted); white-space: nowrap; }
.pcard .qfarm { display: block; margin: 4px 0 0 auto; padding: 3px 8px; min-height: 0; font-size: 11px; line-height: 1.4; white-space: nowrap; }
.pcard .qfarm:disabled { opacity: 0.45; cursor: not-allowed; }
.pcard .st.focus { color: var(--green); font-weight: 700; } .pcard .st.inj { color: var(--red); font-weight: 700; } .pcard .st.farm { color: var(--blue2); font-weight: 700; }
/* 드래프트 스카우트 리포트 현황 띠: 보유 있으면 금색, 0장이면 빨강 + 상점 버튼 */
.scoutbar { border: 2px solid #d9a93c; background: #fdf6e1; border-radius: 6px; padding: 10px 12px; margin: 0 0 10px; }
.scoutbar.zero { border-color: var(--red); background: #fbefee; }
.scoutbar .sb-main { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.scoutbar .sb-t { font-size: 14px; font-weight: 800; color: #8f6208; }
.scoutbar .sb-n { font-size: 22px; font-weight: 900; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; margin-left: 2px; }
.scoutbar.zero .sb-t { color: var(--red); }
.scoutbar .sb-sub { font-size: 12px; color: var(--dim); margin-top: 6px; line-height: 1.5; }
/* 현재 역할 배지: 주전급 초록 · 후보/불펜 회색 · 2군 파랑 · 부상 빨강 */
/* 선수 표식·메모 (나만 보인다) */
.pmark { display: inline-block; margin-right: 3px; font-size: 0.95em; line-height: 1; vertical-align: 0; font-weight: 400; }
.pmemo { font-size: 11px; color: var(--muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.mark-edit { margin: 8px 0 4px; }
.mark-icons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.mark-icons .mk { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 4px 2px; min-height: 44px; border: 1px solid var(--line); border-radius: 6px; background: var(--tile); color: var(--muted); font: inherit; cursor: pointer; }
.mark-icons .mk .mk-i { font-size: 18px; line-height: 1.2; }
.mark-icons .mk .mk-l { font-size: 10.5px; white-space: nowrap; }
.mark-icons .mk.on { border-color: var(--gold); color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold); font-weight: 700; }
.mark-nt { margin-top: 6px; }
.mark-nt .btn.on.danger { background: var(--red); color: #fff; border-color: var(--red); }
.mark-memo { display: flex; gap: 6px; margin-top: 6px; align-items: center; }
.mark-memo input { flex: 1; min-width: 0; }
.markset { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.ms-row { display: flex; align-items: center; gap: 4px; }
.ms-n { font-size: 11px; color: var(--muted); width: 12px; text-align: right; flex: none; }
.ms-row .ms-icon { width: 62px; flex: none; text-align: center; font-size: 16px; padding: 3px 2px; }
.ms-row .ms-label { flex: 1; min-width: 0; padding: 4px 6px; }
.mark-inline { padding: 0 0 6px 26px; border-bottom: 1px dashed var(--line); }
.mark-inline summary { cursor: pointer; padding: 2px 0; }
.mark-inline .mark-edit { margin-top: 4px; }
/* 드래프트 화면 맨 위: 우리 지금 주전 한눈에 */
.lu-brief summary { cursor: pointer; }
.lb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 4px; margin-top: 6px; }
.lb { display: flex; flex-direction: column; padding: 3px 6px; border: 1px solid var(--line); border-radius: 5px; background: var(--tile); min-width: 0; }
.lb small { font-size: 10px; color: var(--muted); }
.lb b { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb i { font-style: normal; font-size: 11px; color: var(--gold); font-weight: 700; }
.lb.weak { border-color: var(--red); }
.lb-h { margin: 6px 0 -2px; font-weight: 700; }
.lb .lb-age { color: var(--muted); font-weight: 400; }
.lb .lb-age.old { color: var(--orange); font-weight: 700; }
.reco-p { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px; margin: 6px 0 4px; }
.reco-pl { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; padding: 6px 10px; min-height: 0; height: auto; white-space: normal; }
.reco-pl .rp-top, .reco-pl .rp-sub { font-size: 12px; font-weight: 400; }
.rrow .rr-farm { flex: none; align-self: center; min-height: 28px; padding: 2px 8px; font-size: 11.5px; margin-right: 6px; }
.rrow .rr-farm.down { background: #eef4f9; border-color: #b9cfe0; color: var(--blue2); }   /* 2군으로 내리기 = 파랑 (2군 배지와 같은 색) */
.rrow .rr-farm.up { background: #f1f8f3; border-color: #9cc7ae; color: var(--green); font-weight: 700; } /* 1군으로 올리기 = 초록 */
.rrow .rr-farm.down:disabled { opacity: 0.45; }
.lb.weak i, .lb.weak b { color: var(--red); }
/* FA 시장의 우리 주전: 계약 만료 표시 · 재계약 안 하는 주전은 회색 음영 */
.lb .lb-expt { color: var(--orange); font-weight: 700; }
.lb .lb-gone { display: none; font-style: normal; font-size: 10px; font-weight: 700; color: var(--muted); }
.lb.gone { filter: grayscale(1); opacity: .5; border-style: dashed; background: rgba(128,128,128,.18); }
.lb.gone b { text-decoration: line-through; }
.lb.gone .lb-gone { display: block; }
/* 월간 리포트 세부 표 (팀 타격 주전/후보 · 투구 선발/불펜) */
.rep-wrap { overflow-x: auto; margin-top: 4px; }
.rep-t { width: 100%; border-collapse: collapse; }
.rep-t th, .rep-t td { padding: 4px 5px; text-align: right; border-top: 1px solid var(--line); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rep-t th { font-weight: 600; color: var(--muted); }
.rep-t td.l { text-align: left; color: var(--muted); font-weight: 700; }
.rep-t tr:last-child td { border-top: 2px solid var(--line); }
/* 트레이드 비교 (받을 ↔ 우리 주전 · 보낼 → 빈자리 후보) */
.tcmp { margin-bottom: 6px; }
.tcmp-h { font-weight: 800; font-size: 13px; margin: 8px 0 2px; }
.tcmp-row { padding: 5px 0; border-bottom: 1px dashed var(--line); }
.tcmp-row:last-child { border-bottom: 0; }
.tcmp-vs { margin-top: 2px; padding-left: 10px; }
.tc-vs { font-size: 11px; color: var(--muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tc-vs b { color: var(--gold); }
.rbadge { display: inline-block; border: 1px solid var(--line); border-radius: 3px; padding: 0 6px; margin-right: 4px; font-size: 10.5px; font-weight: 800; line-height: 1.5; vertical-align: 1px; white-space: nowrap; background: var(--tile); color: var(--muted); }
.rbadge.st { background: #f1f8f3; border-color: #b9d2c4; color: var(--green); }
.rbadge.farm { background: #eef4f9; border-color: #b9cfe0; color: var(--blue2); }
.rbadge.focus { background: #f1f8f3; border-color: #b9d2c4; color: var(--green); }
.rbadge.inj { background: #fbefee; border-color: #e5b9b5; color: var(--red); }
.pcard input[type=checkbox] { width: 18px; height: 18px; flex: none; accent-color: var(--gold); }

/* 그라운드 뷰 */
.ground { position: relative; width: 100%; aspect-ratio: 1 / 1.02; background: #eef2ef; border: 1px solid #d8e0d9; border-radius: 4px; margin: 10px 0; overflow: hidden; }
.ground svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.reco { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.reco .btn { font-size: 11.5px; padding: 6px 10px; min-height: 32px; }
.fcard { position: absolute; transform: translate(-50%, -50%); width: 84px; background: #fff; border: 1px solid #cad6d2; border-radius: 4px; padding: 5px 6px 4px; text-align: center; cursor: pointer; line-height: 1.2; box-shadow: 0 2px 5px rgba(19,43,27,.04); }
.fcard:hover { border-color: var(--gold); }
.fcard.sel { outline: 2px solid var(--gold); outline-offset: 1px; z-index: 2; }
.fcard.inj { border-color: var(--red); }
.fcard .fp { font-size: 9px; color: var(--gold); font-weight: 900; letter-spacing: 0.04em; }
.fcard .fn { font-size: 11.5px; font-weight: 900; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fcard .fo { font-size: 14px; font-weight: 900; color: var(--text); }
.fcard .fs { font-size: 10px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 400px) { .fcard { width: 74px; } .fcard .fn { font-size: 11px; } }

/* 집중 육성 슬롯 · 로테이션 카드 */
.slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.slot { background: var(--card); border: 1px solid var(--line); border-radius: 4px; padding: 10px 11px; cursor: pointer; min-height: 96px; }
.slot:hover { border-color: #83969d; }
.slot.sel { border: 2px solid var(--gold); padding: 9px 10px; }
.slot .n { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 3px; background: #e6ebed; color: var(--navy); font-size: 11px; font-weight: 900; margin-right: 6px; vertical-align: middle; }
.slot .ovr { font-size: 20px; font-weight: 900; color: var(--gold); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.slot .name { font-size: 13px; font-weight: 900; margin-top: 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.slot .meta { font-size: 10.5px; color: var(--muted); line-height: 1.45; }
.slot.empty { display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 12px; text-align: center; background: var(--tile); }
.slot.inj { border-color: var(--red); }
@media (max-width: 480px) { .slots[style*="repeat(5"] { grid-template-columns: repeat(3, 1fr) !important; } }

/* 능력치 바 */
.bars { display: grid; gap: 9px; margin: 8px 0; }
.brow { display: grid; grid-template-columns: 56px minmax(0, 1fr) 32px; gap: 11px; align-items: center; font-size: 12px; }
.brow .lbl { color: var(--muted); }
.brow .v { text-align: right; font-variant-numeric: tabular-nums; font-weight: 800; }
.track { height: 7px; background: #e8eced; border-radius: 2px; overflow: hidden; }
.fill { height: 100%; border-radius: 2px; background: var(--navy); }
.fill.g { background: #398563; } .fill.y { background: #be904a; } .fill.b { background: #27648a; }
.badge { display: inline-flex; align-items: center; border: 1px solid #b9d2c4; border-radius: 3px; padding: 2px 7px; font-size: 10.5px; font-weight: 800; background: #f1f8f3; color: var(--green); white-space: nowrap; line-height: 1.4; }
.badge.gold { background: var(--accent-soft); border-color: #e1beb4; color: var(--gold); }
.badge.muted { background: var(--tile); border-color: var(--line); color: var(--muted); }
/* 랭크전 등급 엠블럼: CSS 방패 배지. 금속별 고정 색(테마와 무관하게 글자가 읽히도록 안쪽은 밝게, 글자는 어둡게) */
.emb { --w: 44px; --e1: #c5cbcf; --e2: #a3acb1; --i1: #eceff1; --i2: #d3d9dc; --t: #5d6a70; position: relative; display: inline-block; flex: none; vertical-align: middle; width: var(--w); height: calc(var(--w) * 1.12); clip-path: polygon(50% 0, 100% 10%, 100% 60%, 50% 100%, 0 60%, 0 10%); background: linear-gradient(150deg, var(--e1), var(--e2)); color: var(--t); line-height: 1; font-style: normal; }
.emb::before { content: ""; position: absolute; inset: calc(var(--w) * 0.07); clip-path: polygon(50% 0, 100% 10%, 100% 60%, 50% 100%, 0 60%, 0 10%); background: linear-gradient(160deg, var(--i1), var(--i2)); }
.emb .en { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding-top: calc(var(--w) * 0.1); font-size: calc(var(--w) * 0.44); font-weight: 900; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.emb .eg { position: absolute; left: 0; right: 0; top: calc(var(--w) * 0.13); text-align: center; font-size: calc(var(--w) * 0.19); opacity: 0.85; }
.emb-sm { --w: 22px; } .emb-sm .eg { display: none; } .emb-sm .en { padding-top: 0; font-size: calc(var(--w) * 0.5); }
.emb-lg { --w: 64px; }
.emb-D { --e1: #8fdcf5; --e2: #3a8fd0; --i1: #e4f8ff; --i2: #94d3f3; --t: #0b3a5c; }
.emb-P { --e1: #86cfc6; --e2: #5f8fa8; --i1: #dcf3f0; --i2: #a5ced8; --t: #0e4a50; }
.emb-G { --e1: #f0c53a; --e2: #b8860b; --i1: #fff0a8; --i2: #f2bd2d; --t: #5a3a00; }
.emb-S { --e1: #b4bcc2; --e2: #7b858c; --i1: #f2f4f5; --i2: #bec6cb; --t: #2e3840; }
.badge.rk-chip { gap: 4px; padding-left: 3px; }
.seg .btn .emb-sm { margin-right: 1px; }
/* 시작 화면 랭크 요약 타일: 넓으면 3열(엠블럼이 위), 좁으면 한 줄씩 */
.rk-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.rk-tile { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; min-width: 0; padding: 8px 6px 10px; background: var(--tile); border: 1px solid var(--line); border-radius: 4px; }
.rk-term { font-size: 11px; font-weight: 800; color: var(--muted); letter-spacing: 0.04em; }
.rk-info { min-width: 0; width: 100%; }
.rk-tier { font-size: 15px; font-weight: 900; color: var(--gold); line-height: 1.25; }
.rk-pos { font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; }
.rk-team, .rk-last { margin-top: 2px; line-height: 1.35; overflow-wrap: anywhere; }
@media (max-width: 420px) {
  .rk-tiles { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .rk-tile { flex-direction: row; text-align: left; gap: 10px; padding: 8px 10px; }
  .rk-term { flex: none; width: 30px; font-size: 12px; }
  .rk-em { flex: none; }
}
.btn.lock { border-style: dashed; border-color: #bcc7c7; background: var(--tile); color: var(--dim); font-weight: 700; text-align: left; justify-content: flex-start; }
.btn.lock:hover { border-color: var(--gold); background: var(--accent-soft); }

/* 드릴 */
.drill { display: flex; justify-content: space-between; align-items: center; background: var(--card); border: 1px solid var(--line); border-radius: 4px; padding: 10px 12px; margin: 6px 0; cursor: pointer; }
.drill:hover { border-color: #83969d; }
.drill.on { border-color: var(--gold); background: var(--accent-soft); }
.drill .l { font-weight: 800; font-size: 12.5px; }
.drill .r { font-size: 11px; color: var(--muted); }
.drill.on .r { color: var(--gold); font-weight: 700; }

/* 뉴스/로그 */
.news .line { padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 12px; display: flex; gap: 8px; line-height: 1.5; }
.news .line:last-child { border-bottom: 0; }
.news .line .d { color: var(--muted); flex: none; width: 54px; font-size: 10px; font-variant-numeric: tabular-nums; padding-top: 2px; }
.news .line.week .t { font-weight: 800; } .news .line.record .t { color: var(--gold); font-weight: 700; } .news .line.injury .t { color: var(--red); } .news .line.info .t { color: var(--dim); }

/* 표 */
table { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
th, td { padding: 8px 9px; text-align: right; border-bottom: 1px solid #e6ebea; }
th { background: #edf1f2; color: var(--muted); font-weight: 750; font-size: 11px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
th:first-child, td:first-child { text-align: left; }
tr.me td { color: var(--gold); font-weight: 900; background: #fbf4f1; }
table.wide { width: auto; min-width: 100%; }
table.wide th, table.wide td { white-space: nowrap; }
.kv { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 12.5px; line-height: 1.45; }
.kv:last-child { border-bottom: 0; }
.kv .k { color: var(--muted); flex: none; font-weight: 700; }
.kv.closer { background: var(--accent-soft); border-left: 3px solid var(--gold); border-radius: 0 3px 3px 0; padding-left: 9px; margin: 4px 0; border-bottom: 0; }
.moment { padding: 6px 0 6px 10px; border-left: 3px solid var(--gold); margin: 6px 0; }
.choice { padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 12.5px; }
.choice .res { color: var(--green); font-size: 12px; }

/* 폼 */
.field { margin: 10px 0; }
.field label { display: block; font-size: 11px; color: var(--muted); margin-bottom: 5px; font-weight: 750; }
input[type=text], input[type=password], input[type=number], select { width: 100%; background: #fff; color: var(--text); border: 1px solid var(--line2); border-radius: 4px; padding: 9px 10px; font-size: 13px; min-height: 37px; }
input[type=checkbox], input[type=radio] { accent-color: var(--gold); }
.check { display: flex; gap: 8px; align-items: center; padding: 7px 0; font-size: 12.5px; }
.approach-item { padding: 9px 0; border-bottom: 1px solid var(--line); }
.approach-item .lbl { font-weight: 800; margin-bottom: 6px; font-size: 12.5px; }
.approach-item .hint { font-size: 11px; color: var(--muted); margin-top: 4px; }

/* 하단 탭바 (모바일) */
.bar { position: fixed; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid var(--line); padding: 6px max(5px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)); z-index: 20; }
.tabbar { max-width: 760px; margin: 0 auto; display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 1px; } /* 탭 개수(8~9개)가 달라도 한 줄에 균등 배치 */
.tab { background: transparent; border: 0; color: var(--muted); border-radius: 4px; padding: 4px 0 3px; white-space: nowrap; letter-spacing: -0.03em; display: grid; justify-items: center; gap: 2px; cursor: pointer; font-size: 10px; font-weight: 750; }
.tab svg { width: 19px; height: 19px; stroke: currentColor; fill: none; stroke-width: 1.85; stroke-linecap: round; stroke-linejoin: round; }
.tab.on { color: var(--gold); }
/* 진행 중 띠 (2026-11-02): 화면 맨 위에 떠 있다 — 모바일에서 하단 탭바가 브라우저 도구막대에 가려지거나 숨는 화면에서도 멈춤 버튼이 보이게 */
.progress { position: fixed; z-index: 70; top: calc(6px + env(safe-area-inset-top)); left: 8px; right: 8px; max-width: 760px; margin: 0 auto; font-size: 13px; color: #fff; background: #243948; border-radius: 6px; padding: 7px 8px 7px 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; box-shadow: 0 6px 20px rgba(9,24,35,.35); }
.progress.hidden { display: none; }
.progress span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.progress .btn { flex: none; min-height: 36px; padding: 5px 16px; font-size: 13px; font-weight: 800; margin-left: 0 !important; }
body.has-turnbar .progress { top: calc(52px + env(safe-area-inset-top)); } /* 멀티 턴 막대 아래 */
/* 자동 진행이 팝업에서 쉬는 동안(위 띠가 계속 떠 있을 때): 화면 내용과 "보류 중 · 다시 열기" 띠를 띠 아래로 내린다 */
body.has-progress-pause .app { padding-top: calc(66px + env(safe-area-inset-top)); }
body.has-progress-pause .top-sticky { top: calc(64px + env(safe-area-inset-top)); }
@media (min-width: 750px) { body.has-progress-pause.with-bar .app { padding-top: 72px; } }

/* 스토브리그 단계 표시와 하단 고정 계기판 */
.steps { display: flex; gap: 4px; margin: 6px 0 12px; }
.steps .step { flex: 1; display: flex; align-items: center; justify-content: center; gap: 5px; padding: 7px 4px; border-radius: 4px; background: #fff; color: var(--muted); font-size: 11.5px; font-weight: 750; border: 1px solid var(--line); min-width: 0; white-space: nowrap; }
.steps .step .n { width: 18px; height: 18px; border-radius: 50%; background: #e6ebed; color: var(--navy); display: inline-flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 900; flex: none; }
.steps .step.on { color: var(--gold); border-color: var(--gold); background: var(--accent-soft); }
.steps .step.on .n { background: var(--gold); color: #fff; }
.steps .step.done { color: var(--green); border-color: #b9d2c4; background: #f1f8f3; }
.steps .step.done .n { background: #cfe3d6; color: var(--green); }
.stickybar { position: sticky; bottom: 72px; z-index: 9; display: flex; justify-content: space-between; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--navy); border-radius: 4px; padding: 10px 12px; margin: 10px 0; font-size: 13px; box-shadow: 0 10px 28px rgba(20,38,51,.18); }
.fa-item { border-bottom: 1px solid var(--line); padding: 10px 0; }
.fa-item:last-child { border-bottom: 0; }
.fa-item label { cursor: pointer; }
.fa-item input[type=checkbox] { width: 18px; height: 18px; flex: none; }
.fa-item input[type=number] { width: 76px; min-height: 32px; padding: 5px 7px; font-size: 12.5px; }

/* 홈 진행 (경기 카드) */
.gamecard .vs { display: grid; grid-template-columns: minmax(0, 1fr) 54px minmax(0, 1fr); align-items: center; gap: 6px; text-align: center; margin: 14px 0 10px; }
.gamecard .vs .t { font-size: 17px; font-weight: 900; letter-spacing: -0.03em; line-height: 1.25; }
.gamecard .vs .vsx { color: var(--gold); font-size: 16px; font-weight: 900; padding: 9px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.gamecard .vs .s { font-size: 11px; color: var(--muted); font-weight: 500; margin-top: 5px; }
.units { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 7px; }
.units .btn { padding: 9px 4px; font-size: 11.5px; }
.hold-banner { display: flex; justify-content: space-between; align-items: center; gap: 10px; border: 1px solid #e5c9b2; background: #fff8ef; color: #78512e; border-radius: 4px; padding: 9px 12px; margin: 0; font-size: 12.5px; box-shadow: 0 6px 18px rgba(22,38,46,.08); }
/* 화면 위 고정 상자 (2026-11-02): "보류 중 · 다시 열기" 띠와 "이번 턴 할 일" 띠를 한 상자에 쌓아 스크롤해도 같이 보이고 서로 겹치지 않게 */
.top-sticky { position: sticky; top: 6px; z-index: 10; display: grid; gap: 6px; margin: 0 0 10px; }
.todo-banner { display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-left: 4px solid var(--gold); background: var(--card, #fff); border-radius: 6px; padding: 8px 8px 8px 11px; font-size: 12.5px; box-shadow: 0 6px 18px rgba(22,38,46,.10); }
.todo-banner.red { border-left-color: var(--red); }
.todo-banner .tdb-t { flex: 1; min-width: 0; display: grid; }
.todo-banner .tdb-t small { color: var(--muted); }
.todo-banner .tdb-x { flex: none; border: 0; background: none; color: var(--muted); font-size: 15px; cursor: pointer; padding: 4px 6px; }

/* 모달 */
.modal { position: fixed; inset: 0; background: rgba(19,30,39,.58); display: flex; align-items: flex-end; justify-content: center; z-index: 50; }
.modal-card { background: #fff; border: 1px solid #a7b6b9; border-radius: 8px 8px 0 0; width: 100%; max-width: 640px; max-height: 88vh; overflow-y: auto; padding: 18px 18px 22px; box-shadow: 0 20px 80px rgba(9,24,35,.25); overscroll-behavior: contain; }
.modal-card > div { overflow-x: auto; }
@media (min-width: 720px) { .modal { align-items: center; padding: 20px; } .modal-card { border-radius: 4px; } }
.modal h2 { margin-top: 2px; font-size: 20px; letter-spacing: -0.035em; }
.modal .type { font-size: 11px; letter-spacing: 0.08em; color: var(--gold); font-weight: 800; }
.options { display: flex; flex-direction: column; gap: 7px; margin-top: 14px; }
.options .btn { text-align: left; justify-content: flex-start; padding: 11px 14px; }
.options .btn.def { background: var(--navy); border-color: var(--navy); color: #fff; }
.options.plain { flex-direction: row; }
.options.plain .btn { flex: 1; text-align: center; justify-content: center; }

/* 시작/인증 (엔트리) */
.title-wrap { background: var(--navy-dark); color: #fff; margin: -14px -14px 14px; padding: 30px 22px 24px; }
.title-wrap .kicker { color: #98abb4; letter-spacing: 0.12em; font-size: 10px; }
.title-wrap h1 { font-size: 42px; line-height: 1.08; margin: 8px 0 14px; font-weight: 900; letter-spacing: -0.07em; color: #fff; }
.title-wrap .accent-word { color: #f1a18a; }
.hero-line { color: #c1d0d6; font-size: 13px; line-height: 1.8; max-width: 420px; }
.hero-line b { color: #fff; }
details summary { cursor: pointer; font-weight: 800; padding: 8px 0; }
.ok { color: var(--green); }
.back { background: transparent; border: 0; color: var(--blue2); font-size: 12.5px; font-weight: 750; padding: 4px 0; cursor: pointer; margin-bottom: 4px; }

/* 데스크톱: 왼쪽 고정 사이드바 (시안의 fo-sidebar). 탭바가 보이는 게임 화면(body.with-bar)에서만. 시작·로그인·대기실은 가운데 정렬 한 열. */
@media (min-width: 750px) {
  .app { max-width: 760px; padding: 24px 18px 60px; }
  .title-wrap { margin: -24px -18px 18px; padding: 40px 30px 32px; border-radius: 4px 4px 0 0; }
  .title-wrap h1 { font-size: 52px; }
  .with-bar .app { margin-left: var(--side); max-width: none; padding: 24px clamp(18px, 4vw, 44px) 60px; }
  .with-bar .app > * { max-width: 1040px; }
  .bar { left: 0; right: auto; top: 0; bottom: 0; width: var(--side); background: var(--navy-dark); border-top: 0; border-right: 1px solid rgba(255,255,255,.08); padding: 26px 12px 20px; display: flex; flex-direction: column; }
  .bar.hidden { display: none; }
  .bar::before { content: "한 구단의 10년"; display: block; color: #fff; font-weight: 900; font-size: 19px; letter-spacing: -0.05em; padding: 0 12px 20px; margin-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.15); }
  .bar::after { content: "BASEBALL FRONT OFFICE"; display: block; margin-top: auto; padding: 16px 12px 0; border-top: 1px solid rgba(255,255,255,.14); color: #90a5b0; font-size: 10px; letter-spacing: 0.12em; font-weight: 800; }
  .tabbar { display: grid; grid-template-columns: 1fr; grid-auto-flow: row; gap: 5px; margin: 0; max-width: none; }
  .tab { letter-spacing: normal; grid-template-columns: 18px 1fr; grid-auto-flow: column; justify-items: start; align-items: center; gap: 12px; padding: 11px 13px; border-radius: 5px; color: #c0cdd2; font-size: 13.5px; font-weight: 750; text-align: left; }
  .tab svg { width: 18px; height: 18px; }
  .tab:hover { background: #304756; color: #fff; }
  .tab.on { background: #375063; color: #fff; box-shadow: inset 3px 0 var(--gold); }
  .with-bar .progress { left: calc(var(--side) + 18px); right: 18px; max-width: 1040px; margin: 0; } /* 데스크톱: 왼쪽 사이드바를 가리지 않게 */
  .with-bar .stickybar { bottom: 12px; }
  .modal-card { max-height: min(780px, calc(100vh - 40px)); }
}
/* 멀티플레이 현황판: 넓은 화면에서는 오른쪽 고정, 좁은 화면에서는 홈 카드로만 */
.board { display: none; }
.mboard .kv { padding: 7px 0; font-size: 12px; }
.mboard .who { font-weight: 800; }
.mboard .me .who { color: var(--gold); }
.mboard .rank { font-weight: 900; font-variant-numeric: tabular-nums; }
@media (min-width: 1100px) {
  .with-bar.has-board .board { display: block; position: fixed; right: 18px; top: 24px; width: 260px; z-index: 8; }
  .with-bar.has-board .app { padding-right: 300px; }
  .with-bar.has-board .home-board { display: none; }
}
/* 멀티 턴 바: 모든 화면(팝업 위 포함) 맨 위에 고정 — 남은 시간 · 준비 인원 · 홀드 · 준비 완료 */
.turnbar { position: fixed; top: 0; left: 0; right: 0; z-index: 60; display: flex; justify-content: center; pointer-events: none; padding: calc(4px + env(safe-area-inset-top)) 8px 0; }
.turnbar.hidden { display: none; }
.turnbar .tb-in { pointer-events: auto; display: flex; align-items: center; gap: 7px; max-width: 760px; width: 100%; background: #192d3c; color: #fff; border-radius: 6px; padding: 5px 6px 5px 11px; box-shadow: 0 4px 14px rgba(0,0,0,.2); font-size: 12px; }
.turnbar .tb-time { white-space: nowrap; }
.turnbar .tb-time b { font-variant-numeric: tabular-nums; font-size: 16px; letter-spacing: .02em; }
.turnbar .tb-info { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; opacity: .85; background: none; border: 0; color: inherit; font: inherit; text-align: left; padding: 0; cursor: pointer; }
.turn-todo { border-left: 3px solid var(--gold); }
.turn-todo .alert { margin: 4px 0 0; }
.turnbar .btn { min-height: 30px; padding: 3px 9px; font-size: 12px; white-space: nowrap; }
.turnbar .btn .muted { color: inherit; opacity: .6; }
.turnbar.urgent .tb-in { background: #a8402e; animation: tbpulse .9s ease-in-out infinite alternate; }
/* 다른 플레이어가 시간을 추가(홀드)했을 때 빨간 알림 — 막 추가됐으면 잠깐 깜박인다 */
.turnbar .tb-col { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 100%; max-width: 760px; }
.turnbar .tb-hold-row { pointer-events: none; display: flex; justify-content: center; max-width: 100%; }
.turnbar .tb-hold { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background: #d0392b; color: #fff; border-radius: 5px; padding: 3px 10px; font-size: 12px; font-weight: 800; box-shadow: 0 3px 10px rgba(0,0,0,.2); }
body.has-turnbar.has-turnbar-hold .app { padding-top: 82px; }
body.has-turnbar.has-turnbar-hold .modal { padding-top: 78px; }
body.has-turnbar.has-turnbar-hold .top-sticky { top: 78px; }
@media (min-width: 750px) { body.has-turnbar.has-turnbar-hold.with-bar .app { padding-top: 90px; } }
.turnbar .tb-hold.new { animation: tbholdpulse .7s ease-in-out 10 alternate; }
@keyframes tbholdpulse { from { box-shadow: 0 0 0 0 rgba(208,57,43,.8); background: #d0392b; } to { box-shadow: 0 0 0 6px rgba(208,57,43,0); background: #ff5a47; } }
@keyframes tbpulse { from { box-shadow: 0 0 0 0 rgba(168,64,46,.55); } to { box-shadow: 0 0 0 7px rgba(168,64,46,0); } }
body.has-turnbar .app { padding-top: 54px; }
body.has-turnbar .modal { padding-top: 50px; }
body.has-turnbar .top-sticky { top: 50px; }
@media (min-width: 750px) { body.with-bar .turnbar { left: var(--side); } body.has-turnbar.with-bar .app { padding-top: 62px; } } /* 데스크톱: 왼쪽 사이드바를 가리지 않게 */
@media (min-width: 1100px) { body.has-turnbar.with-bar.has-board .board { top: 60px; } }
/* 업적·뱃지 수집함과 획득 팝업 */
.bgrid { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 640px) { .bgrid { grid-template-columns: 1fr 1fr; } }
.bcard { display: flex; gap: 11px; align-items: flex-start; background: var(--card); border: 1px solid var(--line); border-left-width: 4px; border-radius: 4px; padding: 10px 12px; min-width: 0; }
.bcard .bicon { font-size: 26px; line-height: 1; flex: none; width: 34px; text-align: center; padding-top: 2px; }
.bcard .bbody { flex: 1; min-width: 0; }
.bcard .bname { font-weight: 800; font-size: 13.5px; }
.bcard .btier { font-size: 10px; font-weight: 800; letter-spacing: 0.06em; padding: 1px 6px; border-radius: 999px; border: 1px solid var(--line); color: var(--muted); vertical-align: 1px; }
.bcard .bmeta { color: var(--gold); margin-top: 3px; }
.bcard.got.t-bronze { border-left-color: #a9794f; } .bcard.got.t-bronze .btier { color: #8d5f3a; border-color: #d9bea6; }
.bcard.got.t-silver { border-left-color: #8e9aa6; } .bcard.got.t-silver .btier { color: #5f6f7d; border-color: #c6cfd7; }
.bcard.got.t-gold { border-left-color: #c99a2e; background: #fffaf0; } .bcard.got.t-gold .btier { color: #9a7218; border-color: #e9d39a; }
.bcard.got.t-legend { border-left-color: var(--gold); background: var(--accent-soft); } .bcard.got.t-legend .btier { color: var(--gold); border-color: #e1beb4; }
.bcard.locked { opacity: 0.62; }
.bcard.locked .bicon { filter: grayscale(1); opacity: 0.6; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }
/* 튜토리얼 설명 카드: 모바일은 하단 탭바 바로 위, 데스크톱은 사이드바 오른쪽 맨 아래. 팝업(#modal, z-index 50)보다는 아래 */
.tut { position: fixed; left: 8px; right: 8px; bottom: var(--tut-bottom, 64px); max-width: 640px; margin: 0 auto; z-index: 30; background: #fff; border: 2px solid var(--gold); border-radius: 6px; padding: 10px 12px; box-shadow: 0 -6px 24px rgba(22,38,46,.2); display: flex; flex-direction: column; gap: 7px; }
.tut-head { font-size: 13px; color: var(--gold); font-weight: 750; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tut-head b { color: var(--text); font-weight: 900; }
.tut-body { font-size: 13px; line-height: 1.5; max-height: 24vh; overflow-y: auto; overscroll-behavior: contain; }
.tut-try .btn { width: 100%; }
.tut-nav { display: flex; gap: 6px; }
.tut-nav .btn { flex: 1; padding-left: 4px; padding-right: 4px; }
body.tut-on .app { padding-bottom: calc(104px + var(--tut-h, 220px)); } /* 카드에 가려지지 않게 페이지 아래에 여유를 둔다 */
body.tut-on .stickybar { bottom: calc(72px + var(--tut-h, 220px)); }
@media (min-width: 750px) {
  .tut { left: calc(var(--side) + 12px); right: 12px; bottom: 12px; margin: 0; max-width: 720px; }
  body.tut-on .app { padding-bottom: calc(60px + var(--tut-h, 220px)); }
  body.tut-on.with-bar .stickybar { bottom: calc(12px + var(--tut-h, 220px)); }
}

/* 선수단 표 (야수·투수 탭): 칸 폭을 고정하고 이름 칸만 늘어나게 해서 폭 360px 폰에서도 가로 스크롤이 없다 */
.rtable { background: var(--card); border: 1px solid var(--line); border-radius: 4px; margin: 8px 0; overflow: hidden; font-size: 12.5px; }
.rtable > * + * { border-top: 1px solid var(--line); }
.rt-hd, .rt-row { display: grid; align-items: center; column-gap: 4px; padding: 5px 8px; }
.rt-hd > span, .rt-row > span { min-width: 0; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rt-hd > .l, .rt-row > .l { text-align: left; }
.rt-hd { background: var(--tile2); color: var(--muted); font-size: 10.5px; font-weight: 800; padding-top: 4px; padding-bottom: 4px; }
.g-bat-stat { grid-template-columns: 28px minmax(0, 1fr) 26px 36px 24px 28px 38px; }
.g-bat-abil { grid-template-columns: 28px minmax(0, 1fr) 26px repeat(5, 26px); }
/* 마지막 칸 = 역할 버튼(선·승·패) + 2군 버튼. 줄마다 열이 맞게 너비 고정 */
.g-sp { grid-template-columns: 18px minmax(0, 1fr) 26px 38px 34px 40px 28px 44px; }
.g-pen { grid-template-columns: minmax(0, 1fr) 26px 24px 32px 34px 30px 98px; }
.rt-act { display: inline-flex; gap: 3px; justify-content: flex-end; align-items: center; }
.rt-roles { display: inline-flex; gap: 2px; }
.btn.rt-rb { min-width: 20px; width: 20px; min-height: 24px; padding: 0; font-size: 11px; font-weight: 800; }
.btn.rt-rb.on { background: var(--gold); border-color: var(--gold); color: #fff; }
.rt-act .btn.rt-btn { width: 30px; flex: none; }
.rt-item { cursor: pointer; }
.rt-item:active { background: var(--tile); }
.rt-item.sel, .rt-row.sel { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--gold); }
.rt-item.next, .rt-row.next { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--gold); }
.rt-pos { color: var(--gold); font-weight: 900; font-size: 12px; }
.rt-ovr { color: var(--gold); font-weight: 800; }
.rt-nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rt-nm b { font-weight: 800; }
.rt-age { color: var(--muted); font-size: 10.5px; font-weight: 500; margin-left: 4px; }
.rt-tag { font-size: 10px; font-weight: 800; margin-left: 4px; }
.rt-sub { padding: 0 8px 5px 40px; font-size: 11px; line-height: 1.4; color: var(--muted); }
/* 선수 한 줄 (후보·벤치·2군·대기 목록): 넘치면 말줄임 */
.kv.mrow1 { flex-wrap: nowrap; align-items: center; gap: 8px; }
.kv.mrow1 .mr1-l { min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kv.mrow1 .mr1-pot { color: var(--muted); }
.kv.mrow1 .mr1-r { flex: 0 1 auto; max-width: 44%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; }
/* 패치노트 */
.pn-item { padding: 8px 0; border-top: 1px solid var(--line); }
.pn-item.pn-cur { border-top-color: var(--gold); }
.pn-list { margin: 4px 0 0; padding-left: 18px; font-size: 13px; line-height: 1.5; }
/* 새 버전 알림 띠 (화면 아래 고정, 하단 탭 위) */
.newver { position: fixed; left: 50%; transform: translateX(-50%); bottom: 72px; z-index: 60; max-width: min(560px, calc(100% - 24px)); display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; background: var(--card); border: 1px solid var(--gold); box-shadow: 0 6px 18px rgba(0,0,0,.18); font-size: 12.5px; line-height: 1.35; }
.newver .btn { flex: none; }
/* 멀티 결산 리포트: 내 결과(넓게) + 다른 플레이어(옆에 작게). 좁은 화면이면 아래로 */
.mreport .mr-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 10px; margin-top: 6px; }
.mreport .mr-big { font-size: 18px; margin: 4px 0; }
.mreport .mr-others { border-left: 1px solid var(--line); padding-left: 10px; }
.mreport .mr-o { padding: 5px 0; border-bottom: 1px solid var(--line); line-height: 1.35; }
.mreport .mr-o:last-child { border-bottom: none; }
@media (max-width: 520px) { .mreport .mr-grid { grid-template-columns: 1fr; } .mreport .mr-others { border-left: none; padding-left: 0; border-top: 1px solid var(--line); padding-top: 6px; } }
/* 멀티: 팀 이름 옆 플레이어 이름 */
.pname { font-size: .82em; font-weight: 700; color: var(--blue2); white-space: nowrap; }
/* 투수 역할 고르기 줄 (선발·승리조·패전조·자동): 바로 위 투수 줄에 붙여 보이게 위 선을 없앤다 */
.rtable > .rt-role { border-top: none; padding: 0 8px 6px 40px; font-size: 11px; display: flex; align-items: center; gap: 6px; }
.rt-role select { font-size: 12px; padding: 2px 6px; min-height: 28px; width: auto; max-width: 70%; }
.rt-role .seg { display: inline-flex; gap: 0; flex-wrap: nowrap; }
.rt-role .seg .btn.small { min-height: 26px; padding: 1px 9px; font-size: 12px; }
.rt-sub .gold, .rt-sub .green, .rt-sub .red { font-weight: 700; }
.rt-panel { padding: 8px 12px 10px; background: var(--tile); border-top: 1px solid var(--line); border-left: 3px solid var(--gold); overflow-x: auto; }
.rt-panel h3 { margin-top: 10px; }
.rt-grp { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 2px 8px; padding: 5px 8px; font-size: 12px; font-weight: 800; border-left: 3px solid var(--line2); background: var(--tile2); color: var(--dim); }
.rt-grp.closer { background: var(--accent-soft); border-left-color: var(--gold); color: var(--gold); }
.rt-grp.win { background: #f1f8f3; border-left-color: var(--green); color: var(--green); }
.rt-grp.lose { background: var(--tile2); border-left-color: var(--line2); color: var(--dim); }
.rt-hint { font-size: 10.5px; font-weight: 500; color: var(--muted); }
.rt-empty { padding: 7px 10px; font-size: 12px; color: var(--muted); }
.btn.rt-btn { width: 100%; padding: 2px 0; min-height: 24px; font-size: 11px; font-weight: 700; }
.rt-more { background: var(--card); border: 1px solid var(--line); border-radius: 4px; margin: 8px 0; }
.rt-more > summary { cursor: pointer; padding: 9px 12px; font-size: 12.5px; font-weight: 700; color: var(--dim); }
.rt-more[open] > summary { border-bottom: 1px solid var(--line); }
.rt-more .rt-body { padding: 4px 12px 8px; }
.rt-lbl { margin-top: 8px; font-weight: 700; }

/* ---------- 트레이드(시장) 두 단계 화면: 1 영입 대상 → 2 교환 조건 ---------- */
.tr-status { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 2px 0 6px; }
.tr-tabs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px; margin: 0 0 10px; }
.tr-tab { border: 1px solid var(--line2); background: var(--card); color: var(--muted); border-radius: 12px; padding: 10px 6px; min-height: 42px; font-size: 13px; font-weight: 800; white-space: nowrap; }
.tr-tab.on { border-color: var(--gold); color: var(--gold); background: var(--accent-soft); }
.tr-tab.dim { opacity: 0.45; cursor: default; }
.tr-sec { margin: 16px 0 8px; }
.tr-sec h2 { font-size: 16px; }
.tr-chips { display: flex; flex-wrap: nowrap; gap: 6px; overflow-x: auto; padding: 2px 0 6px; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.tr-chips .btn { flex: none; border-radius: 999px; padding: 6px 13px; }
.tr-note { margin: 0 0 6px; }
.tc-group { font-size: 12px; color: var(--gold); padding: 8px 2px 0; }
.tc-hide { display: none !important; }
/* 선수 카드: 포지션 상자 · 이름/나이·잠재·연봉/성적 · 큰 OVR. 선택되면 금색(--gold) 테두리 */
.tcard, .tsum { position: relative; display: flex; align-items: center; gap: 10px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 11px; margin: 7px 0; min-width: 0; }
.tcard { cursor: pointer; }
.tcard:hover { border-color: #83969d; }
.tcard.sel { border: 2px solid var(--gold); padding: 9px 10px; background: #fffaf8; }
.tcard.locked { cursor: not-allowed; opacity: 0.62; }
.tc-pos { width: 40px; height: 40px; border-radius: 11px; background: #e6ebed; color: var(--navy); font-weight: 900; font-size: 12px; display: grid; place-items: center; flex: none; }
.tcard.sel .tc-pos { background: var(--gold); color: #fff; }
.tc-body { flex: 1; min-width: 0; }
.tc-name { font-size: 14px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tc-meta { font-size: 11px; color: var(--muted); margin-top: 1px; line-height: 1.35; }
.tc-line { font-size: 11px; color: var(--dim); margin-top: 2px; line-height: 1.4; overflow-wrap: anywhere; }
.tc-right { flex: none; display: flex; flex-direction: column; align-items: flex-end; }
.tc-ovr { font-size: 22px; font-weight: 900; color: var(--gold); line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -0.04em; white-space: nowrap; }
.tc-ovr small { display: block; text-align: right; font-size: 9.5px; color: var(--muted); font-weight: 700; letter-spacing: 0; margin-top: 2px; }
.tc-detail { margin-top: 5px; border: 1px solid var(--line2); background: var(--tile); color: var(--blue2); border-radius: 8px; padding: 2px 9px; font-size: 11px; font-weight: 700; line-height: 1.5; }
.tc-check { width: 20px; height: 20px; flex: none; border: 2px solid var(--line2); border-radius: 6px; background: #fff; display: grid; place-items: center; }
.tcard.sel .tc-check { background: var(--gold); border-color: var(--gold); }
.tcard.sel .tc-check::after { content: "✓"; color: #fff; font-size: 13px; font-weight: 900; line-height: 1; }
.tcard.locked .tc-check { background: var(--tile2); }
.tc-tick { display: none; position: absolute; top: -7px; left: -7px; width: 20px; height: 20px; border-radius: 50%; background: var(--gold); color: #fff; font-size: 12px; font-weight: 900; line-height: 20px; text-align: center; }
.tcard.sel .tc-tick { display: block; }
/* 2단계 영입 대상 요약 카드: 오른쪽 위 태그(주전/선발/불펜/뎁스 보강) + ✕ */
.tsum { cursor: default; }
.tc-top { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.tc-tag { font-size: 10.5px; font-weight: 800; line-height: 1.5; padding: 0 8px; border-radius: 999px; border: 1px solid var(--line); background: var(--tile2); color: var(--muted); white-space: nowrap; }
.tc-tag.on { background: #f1f8f3; border-color: #b9d2c4; color: var(--green); }
.tc-x { width: 24px; height: 24px; border: 0; border-radius: 50%; background: var(--tile2); color: var(--muted); font-size: 11px; line-height: 24px; padding: 0; }
.tc-x:hover { background: var(--accent-soft); color: var(--gold); }
/* 보낼 선수 도구줄: 검색은 한 줄 통째로, 포지션·정렬 select 는 반반 */
.tr-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px; margin: 0 0 8px; }
.tr-search { grid-column: 1 / -1; }
.tr-search, .tr-tools select { width: 100%; min-height: 40px; border: 1px solid var(--line2); border-radius: 10px; padding: 8px 11px; background: var(--card); color: var(--text); font-size: 14px; }
/* 화면 아래 고정 바: 기존 .stickybar(하단 탭바·튜토리얼 카드 위로 뜨는 자리)를 그대로 쓰고 안쪽만 맞춘다 */
.tbar { border-radius: 12px; }
.tbar .tb-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; line-height: 1.35; }
.tbar .tb-names { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tbar .tb-react { font-size: 12px; font-weight: 800; }
.tbar .btn { flex: none; }

/* ---------- 0.12.0 리디자인 ----------
   얇은 머리 + ☰ 메뉴 · 홈(다음 행동 우선) · 육성(이번 주 훈련이 주인공) · 전체 명단 얇은 줄 + 바텀 시트 · 리그 select · 창단 전력 요약 */
.hdr.slim { position: relative; align-items: center; margin: 2px 0 10px; }
.hdr-l { min-width: 0; flex: 1; }
.hdr.slim .team { font-size: 21px; overflow-wrap: anywhere; }
.hmenu-wrap { position: relative; flex: none; }
.hmenu-btn { width: 44px; height: 44px; border-radius: 10px; border: 1px solid var(--line2); background: var(--card); color: var(--navy); font-size: 22px; line-height: 1; display: grid; place-items: center; padding: 0; }
.hmenu-btn:hover { border-color: var(--navy); background: var(--tile); }
.hmenu-pop { position: absolute; right: 0; top: 50px; z-index: 40; min-width: 232px; background: #fff; border: 1px solid var(--line2); border-radius: 12px; box-shadow: 0 14px 36px rgba(20,38,51,.22); padding: 6px; }
.hm-item { display: flex; align-items: center; gap: 10px; width: 100%; background: transparent; border: 0; border-radius: 8px; padding: 10px; min-height: 46px; text-align: left; font-size: 13.5px; font-weight: 750; color: var(--text); }
.hm-item:hover { background: var(--tile); }
.hm-ic { width: 20px; height: 20px; flex: none; display: grid; place-items: center; color: var(--navy); font-size: 15px; }
.hm-ic svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.85; stroke-linecap: round; stroke-linejoin: round; }
.hm-t { flex: 1; }
.hm-x { font-size: 11px; color: var(--muted); font-weight: 700; }
.hm-sep { height: 1px; background: var(--line); margin: 6px 4px; }
.hm-info { padding: 8px 10px; font-size: 12px; color: var(--dim); }
.hm-danger, .hm-danger .hm-ic { color: var(--red); }
.hm-ver { padding: 4px 10px 6px; font-size: 10.5px; color: var(--muted); letter-spacing: 0.04em; }

/* 홈 한 줄 칩 */
.chips { display: flex; gap: 6px; margin: 0 0 10px; }
.chip { flex: 1 1 0; min-width: 0; background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 7px 10px 8px; line-height: 1.25; white-space: nowrap; overflow: hidden; }
.chip small { display: block; font-size: 10.5px; color: var(--muted); font-weight: 700; }
.chip b { font-size: 16px; font-weight: 900; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.chip b + small { display: inline; margin-left: 3px; }
.chip.hi b { color: var(--gold); }
.chip.bad b { color: var(--red); }

/* 홈: 오늘의 경기 카드의 큰 버튼 · 빠른 진행 · 빠른 행동 타일 · 집중 육성 카드 · 단장 알림 */
.btn.big { min-height: 58px; font-size: 17px; font-weight: 900; letter-spacing: -0.02em; border-radius: 8px; }
.gamecard .qlabel { margin: 12px 0 5px; }
.gamecard .units { margin-top: 0; }
.gamecard .units .btn { min-height: 44px; font-size: 13px; }
.qtiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 10px 0; }
.qtile { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 12px 11px; min-height: 92px; text-align: left; color: var(--text); }
.qtile:hover { border-color: var(--navy); }
.qtile svg { width: 24px; height: 24px; stroke: var(--gold); fill: none; stroke-width: 1.85; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 4px; }
.qtile b { font-size: 14.5px; font-weight: 900; }
.qtile span { font-size: 11px; color: var(--muted); line-height: 1.35; }
.fcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.fcard2 { display: flex; flex-direction: column; gap: 3px; background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 10px; min-height: 86px; text-align: left; color: var(--text); min-width: 0; }
.fcard2:hover { border-color: #83969d; }
.fc-top { display: flex; justify-content: space-between; align-items: center; gap: 4px; }
.fc-pos { font-size: 10.5px; font-weight: 900; color: var(--navy); background: #e6ebed; border-radius: 4px; padding: 1px 6px; }
.fc-ovr { font-size: 20px; font-weight: 900; color: var(--gold); line-height: 1; font-variant-numeric: tabular-nums; }
.fc-name { font-size: 13px; font-weight: 900; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 4px; }
.fcard2 small { font-size: 10.5px; line-height: 1.35; }
.fcard2.empty { align-items: center; justify-content: center; background: var(--tile); color: var(--muted); text-align: center; border-style: dashed; }
.fc-plus { font-size: 20px; color: var(--line2); }
.alerts { display: grid; gap: 8px; }
.alert { display: flex; align-items: center; gap: 11px; width: 100%; background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--line2); border-radius: 10px; padding: 11px 12px; text-align: left; color: var(--text); min-height: 56px; }
.alert:hover { border-color: #83969d; }
.alert.red { border-left-color: var(--red); }
.alert.gold { border-left-color: var(--gold); background: var(--accent-soft); }
.a-ic { font-size: 20px; flex: none; width: 26px; text-align: center; }
.a-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.a-t b { font-size: 13.5px; font-weight: 850; }
.a-t small { font-size: 11.5px; color: var(--muted); line-height: 1.4; overflow-wrap: anywhere; }
.a-go { color: var(--muted); font-size: 20px; flex: none; }
.newslink { display: flex; align-items: center; gap: 8px; width: 100%; margin: 10px 0 4px; background: transparent; border: 0; border-top: 1px dashed var(--line2); padding: 12px 4px; text-align: left; color: var(--blue2); font-size: 13px; font-weight: 800; min-height: 46px; }
.newslink .nl-last { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; }

/* 육성: 전환 칩 · 능력치 한 줄 · 이번 주 훈련(주인공) */
.gchips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 8px; scrollbar-width: thin; }
.gchip { flex: 1 0 auto; min-width: 104px; display: flex; align-items: center; justify-content: space-between; gap: 8px; background: var(--card); border: 1px solid var(--line2); border-radius: 999px; padding: 9px 14px; min-height: 46px; color: var(--text); font-size: 13px; font-weight: 800; }
.gchip.on { border: 2px solid var(--gold); background: var(--accent-soft); padding: 8px 13px; }
.gchip.empty { color: var(--muted); border-style: dashed; justify-content: center; background: var(--tile); }
.gc-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gc-ovr { color: var(--gold); font-size: 16px; font-weight: 900; }
.abil5 { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; margin: 10px 0 8px; }
.ab { background: var(--tile); border-radius: 8px; padding: 6px 2px 7px; text-align: center; display: flex; flex-direction: column; gap: 1px; }
.ab small { font-size: 10.5px; color: var(--muted); font-weight: 700; }
.ab b { font-size: 17px; font-weight: 900; font-variant-numeric: tabular-nums; }
.gs-name { font-size: 19px; font-weight: 900; }
.train { border: 2px solid var(--gold); }
.train-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.train-head h2 { margin: 0; font-size: 17px; }
.pt-big { text-align: right; flex: none; line-height: 1; }
.pt-big b { display: block; font-size: 34px; font-weight: 900; color: var(--gold); letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.pt-big span { font-size: 10.5px; color: var(--muted); font-weight: 700; }
.pt-big.zero b { color: var(--muted); }
.train .drill { padding: 14px; min-height: 54px; border-radius: 10px; }
.train .drill .l { font-size: 14.5px; }
.train .drill.off { opacity: 0.6; cursor: not-allowed; background: var(--tile); }
.train .drill.off:hover { border-color: var(--line); }
.train .drill.off .r b { color: var(--red); }
.fold > summary { padding: 6px 0; }

/* 전체 명단: 검색 · 칩 · 정렬 · 얇은 줄 */
.rl-sum { margin: 0 0 8px; }
.rl-tools { display: grid; grid-template-columns: minmax(0, 1fr) 142px; gap: 6px; margin: 0 0 8px; }
.rl-tools .tr-search, .rl-tools select { width: 100%; min-height: 44px; border: 1px solid var(--line2); border-radius: 10px; padding: 8px 11px; background: var(--card); color: var(--text); font-size: 14px; }
.rl-tools .tr-search { grid-column: auto; }
.rl-count { margin: 4px 2px 6px; }
.rlist { background: var(--card); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.rrow { display: flex; align-items: center; gap: 10px; padding: 8px 12px; min-height: 52px; border-bottom: 1px solid var(--line); cursor: pointer; }
.rrow:last-child { border-bottom: 0; }
.rrow:hover, .rrow:active { background: var(--tile); }
.rr-pos { flex: none; min-width: 34px; height: 30px; padding: 0 4px; border-radius: 6px; background: #e6ebed; color: var(--navy); font-weight: 900; font-size: 11.5px; display: grid; place-items: center; }
.rr-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rr-name { font-size: 14px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rr-meta { font-size: 11.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rr-ovr { flex: none; font-size: 24px; font-weight: 900; color: var(--gold); letter-spacing: -0.04em; font-variant-numeric: tabular-nums; min-width: 32px; text-align: right; }

/* 바텀 시트 (선수 요약 · 랭크 팀 로스터 · 구단 소식) — 모달 카드를 아래에 붙여 재사용 */
.sheet-grip { width: 42px; height: 4px; border-radius: 2px; background: var(--line2); margin: -6px auto 12px; }
.sheet-name { font-size: 20px; font-weight: 900; letter-spacing: -0.03em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sheet-ovr { font-size: 34px; font-weight: 900; color: var(--gold); line-height: 1; text-align: right; flex: none; font-variant-numeric: tabular-nums; }
.sheet-ovr small { display: block; font-size: 10px; color: var(--muted); font-weight: 700; }
.sheet .options { flex-direction: row; flex-wrap: wrap; gap: 8px; }
.sheet .options .btn { min-height: 46px; flex: 1 1 calc(50% - 4px); justify-content: center; text-align: center; }
.sheet .options .btn.primary, .sheet .options .btn.block, .sheet .options .btn:last-child { flex-basis: 100%; }
.rk-line { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line); }
.rk-line:last-child { border-bottom: 0; }
.rk-line .rr-ovr { font-size: 20px; }
@media (min-width: 720px) { .modal:has(.sheet) { align-items: flex-end; padding: 0; } .modal:has(.sheet) .modal-card { border-radius: 12px 12px 0 0; } }

/* 리그 고르기 select · 트레이드 단계 번호 · 창단 전력 요약 */
.tier-pick { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; }
.tier-pick select { flex: 1; min-height: 46px; border-radius: 10px; font-size: 14px; font-weight: 750; }
.tr-n { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--tile2); color: var(--navy); font-size: 11px; font-weight: 900; margin-right: 4px; }
.tr-tab.on .tr-n { background: var(--gold); color: #fff; }
.found-sum { margin-top: 0; }
.fs-avgs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fs-box { background: var(--tile); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 1px; }
.fs-box small { font-size: 11px; color: var(--muted); font-weight: 700; }
.fs-box b { font-size: 30px; font-weight: 900; color: var(--gold); letter-spacing: -0.04em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.fs-box span { font-size: 10.5px; color: var(--muted); }
.fs-top { margin-top: 10px; }
.fs-top > small { font-size: 11px; color: var(--muted); font-weight: 700; }
.fs-p { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.fs-p:last-child { border-bottom: 0; }
.fs-p b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-p .rr-ovr { font-size: 20px; }
/* 하단 탭 5개: 글자와 눌리는 영역을 조금 키운다 */
.tab { font-size: 11px; padding: 5px 0 4px; }
.tab svg { width: 21px; height: 21px; }
/* 0.12.0 스토브·창단 규칙 반영: 핵심 선수 · 영입 선수 배지 · 드래프트 순번/선택 요약 · 육성 규칙 한 줄 · 창단 핵심 선수 입력 · 트레이드 제안 선수 줄 */
.rbadge.star { background: #fdf6e1; border-color: #d9a93c; color: #8f6208; }
.rbadge.acq { background: var(--tile); border-color: var(--line); color: var(--muted); font-weight: 600; }
.rbadge.boom { background: #fbefee; border-color: #e5b9b5; color: var(--red); }
.growrule { margin: 4px 0 6px; line-height: 1.5; }
.draft-slot { margin: 2px 0 4px; line-height: 1.5; }
.draft-ahead { margin: 4px 0 8px; border: 1px solid var(--line); border-radius: 6px; padding: 6px 10px; background: var(--tile); }
.draft-ahead > summary { cursor: pointer; font-size: 12.5px; font-weight: 700; }
.draft-sel { margin: 6px 0; padding: 7px 10px; border: 1px solid var(--line2); border-radius: 6px; background: #fff; font-size: 13px; line-height: 1.5; }
#franchise-card input[type=text] { flex: 1; min-width: 0; width: auto; }
#franchise-card select { width: auto; flex: none; min-width: 84px; }
.tp-row { align-items: flex-start; gap: 10px; }
td label[for] { cursor: pointer; }
[data-draft-sort] { width: auto; min-height: 32px; padding: 4px 8px; font-size: 12.5px; }
/* 📈 최근 3년 능력치 표 (ui.ratingHistHtml) */
.rhist { margin-top: 8px; }
/* 2군 육성 목록: 선수 줄 + 그 선수의 최근 3년 능력치를 한 상자로 (어느 선수 것인지 헷갈리지 않게) */
.farm-item { border: 1px solid var(--line); border-radius: 6px; padding: 4px 8px 2px; margin-bottom: 6px; background: var(--tile); }
.farm-item > .row .kv { border-bottom: 0; }
.farm-hist { padding: 0 2px 4px; border-top: 1px dashed var(--line); }
.farm-hist .rhist { margin-top: 0; }
.rhist summary { cursor: pointer; padding: 4px 0; }
.rhist-t { width: 100%; border-collapse: collapse; margin-top: 4px; }
.rhist-t th, .rhist-t td { padding: 3px 4px; text-align: right; border-top: 1px solid var(--line); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rhist-t th { font-weight: 600; color: var(--muted); }
.rhist-t td.l { text-align: left; color: var(--muted); }

/* 전체 명단 줄의 🔓 잠재 버튼 (줄 전체 누르기와 겹치지 않게 작게) */
.rr-pot { min-height: 20px; padding: 0 6px; font-size: 11px; line-height: 18px; margin: 0 2px; vertical-align: middle; }

/* 육성선수 자동 영입 예고 (FA 창구 고정 바): 경고가 없으면 줄을 차지하지 않는다 */
[data-fa-devwarn-short]:empty { display: none; }
