/* 야구럽 공개 — 포지션 맞대결 (대시보드 matchup.css 복제 · 2026-06-27)
   공개 변수 사용. body/.wrap/테마는 style.css 공통. */
:root{ --draw:#8b95a5; }
body.dark{ --draw:#8b95a5; }

/* 팀 선택기 */
.selector{background:var(--card);border:1px solid var(--border);border-radius:14px;
  padding:18px 20px;margin:0 0 20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.sel-group{display:flex;align-items:center;gap:8px;flex:1;min-width:130px;}
.sel-group label{font-size:12px;color:var(--mut);white-space:nowrap;font-weight:600;}
.sel-group select{flex:1;background:var(--bg);color:var(--tx);border:1px solid var(--border);
  border-radius:8px;padding:7px 10px;font-size:14px;font-weight:600;cursor:pointer;}
.sel-vs{font-size:13px;color:var(--hint);font-weight:700;}
.sel-btn{background:var(--accent);color:#fff;border:none;border-radius:9px;
  padding:8px 20px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;}
.sel-btn:hover{background:#2870bc;}
.sel-btn:active{background:#174e8a;}

/* 전체 요약 */
.summary-bar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
.sum-card{flex:1;min-width:120px;background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:14px 16px;text-align:center;}
.sum-card.winner-home{border-color:var(--good);}
.sum-card.winner-away{border-color:var(--bad);}
.sum-card .sum-label{font-size:12px;color:var(--mut);margin-bottom:4px;}
.sum-card .sum-score{font-size:28px;font-weight:800;}
.sum-card .sum-name{font-size:13px;font-weight:700;margin-top:2px;}
.sum-card.winner-home .sum-score{color:var(--good);}
.sum-card.winner-away .sum-score{color:var(--bad);}
.sum-card .sum-badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;
  border-radius:5px;margin-top:6px;background:rgba(44,164,79,.18);color:var(--good);}
.sum-vs{display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--hint);min-width:24px;}

/* 맞대결 테이블 */
.matchup-table{display:flex;flex-direction:column;gap:6px;}
.mu-row{display:grid;grid-template-columns:1fr 52px 1fr;gap:8px;align-items:center;}
.mu-row.header-row{padding:0 4px;margin-bottom:4px;}
.mu-row.header-row .mu-team{font-size:13px;font-weight:700;color:var(--mut);}
.mu-row.header-row .mu-team.away{text-align:right;}
.mu-player{background:var(--card);border:1px solid var(--border);border-radius:11px;
  padding:11px 13px;display:flex;flex-direction:column;gap:5px;min-width:0;transition:border-color .15s;}
.mu-player.win{border-color:var(--good);background:rgba(44,164,79,.06);}
.mu-player.lose{border-color:var(--border);opacity:.75;}
.mu-player.draw{border-color:var(--draw);}
.mu-player.no-data{border-color:var(--border);opacity:.45;}
.mu-player.away{align-items:flex-end;text-align:right;}
.mu-name{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mu-name .jersey{font-size:11px;color:var(--hint);margin-left:4px;}
.mu-avg{font-size:12px;color:var(--mut);}
.mu-avg .val{color:var(--tx);font-weight:600;}
.mu-bar-wrap{display:flex;align-items:center;gap:6px;width:100%;}
.mu-player.away .mu-bar-wrap{flex-direction:row-reverse;}
.mu-bar{flex:1;height:5px;background:var(--border);border-radius:3px;overflow:hidden;}
.mu-bar-fill{height:100%;border-radius:3px;background:var(--accent);transition:width .4s ease;}
.mu-player.win .mu-bar-fill{background:var(--good);}
.mu-player.lose .mu-bar-fill{background:var(--hint);}
.mu-score-lbl{font-size:13px;font-weight:800;white-space:nowrap;}
.mu-player.win .mu-score-lbl{color:var(--good);}
.mu-player.lose .mu-score-lbl{color:var(--hint);}
.mu-abilities{display:flex;gap:6px;font-size:11px;color:var(--hint);flex-wrap:wrap;}
.mu-player.away .mu-abilities{justify-content:flex-end;}
.mu-ab{display:flex;gap:3px;}
.mu-ab .val{color:var(--mut);font-weight:600;}
.mu-order{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;}
.mu-order .num{font-size:13px;font-weight:700;color:var(--hint);}
.mu-order .ic{font-size:14px;line-height:1;}
.mu-order .ic.home-win{color:var(--good);}
.mu-order .ic.away-win{color:var(--bad);}
.mu-order .ic.draw{color:var(--draw);}

/* 설명 */
.note-bar{margin-top:20px;padding:11px 14px;background:rgba(31,95,168,.10);
  border:1px solid rgba(31,95,168,.25);border-radius:10px;font-size:12px;color:var(--mut);}
.note-bar b{color:var(--accent);}
.loading-msg{color:var(--hint);font-size:13px;padding:20px 0;text-align:center;}
.error-msg{color:var(--bad);font-size:13px;padding:20px 0;text-align:center;}

@media(max-width:480px){
  .mu-row{grid-template-columns:1fr 36px 1fr;gap:5px;}
  .mu-player{padding:9px 10px;}
  .mu-name{font-size:13px;}
  .mu-abilities{display:none;}
  .selector{padding:13px 14px;}
}
/* 다크: 팀 고유색이 묻히는 자리 밝은 글자색 강제 */
body.dark .sum-score, body.dark .mu-team{color:var(--tx) !important;}
