/* ════════════════════════════════════════════════════════
   COACH VIEW v3 — KBO v0.9 디자인 적용 (Theia .kbo-scope 이식)
   Navy 1색 + 어스톤 status (sage/amber/rust).
   ════════════════════════════════════════════════════════ */
:root{
  /* ── KBO v0.9 원본 토큰 ── */
  --kbo-navy:        #0F2A4A;
  --kbo-navy-deep:   #0A1F38;
  --kbo-navy-soft:   #3B5A82;
  --kbo-navy-tint:   #EAF0F7;
  --kbo-bg:          #FFFFFF;
  --kbo-bg-card:     #FFFFFF;
  --kbo-bg-elev:     #F6F7F9;
  --kbo-bg-tinted:   #F2F5FA;
  --kbo-border:      #E1E5EB;
  --kbo-border-soft: #EEF1F5;
  --kbo-text:        #0F1419;
  --kbo-text-2:      #3F4651;
  --kbo-text-muted:  #6B7280;
  --kbo-good:        #3F7D5C;   /* sage green */
  --kbo-caution:     #A87333;   /* burnt amber */
  --kbo-leak:        #A8443A;   /* rust red */
  --kbo-gold:        #E8C77A;

  /* ── 기존 변수명 → KBO 매핑 ── */
  --bg:         var(--kbo-bg);
  --bg-2:       var(--kbo-bg-elev);
  --panel:      var(--kbo-bg-card);
  --panel-2:    var(--kbo-bg-elev);
  --line:       var(--kbo-border);
  --line-soft:  var(--kbo-border-soft);
  --text:       var(--kbo-text);
  --text-soft:  var(--kbo-text-2);
  --muted:      var(--kbo-text-muted);
  --accent:     var(--kbo-navy);
  --accent-2:   var(--kbo-navy-soft);
  --accent-bg:  var(--kbo-navy-tint);
  --grade-elite: var(--kbo-good);
  --grade-above: var(--kbo-navy-soft);
  --grade-avg:   var(--kbo-text-muted);
  --grade-below: var(--kbo-caution);
  --grade-poor:  var(--kbo-leak);

  /* v7.0 — Theia 의미별 5색을 어스톤 톤으로 (rainbow 방지) */
  --output:    var(--kbo-navy);          /* navy (was red) */
  --output-bg: var(--kbo-navy-tint);
  --transfer:  var(--kbo-navy-soft);     /* soft navy (was blue) */
  --transfer-bg: rgba(59,90,130,0.08);
  --leak:      var(--kbo-leak);          /* rust (was violet) */
  --leak-bg:   rgba(168,68,58,0.08);
  --control:   var(--kbo-good);          /* sage (was green) */
  --control-bg:rgba(63,125,92,0.08);
  --injury:    var(--kbo-caution);       /* amber (was orange) */
  --injury-bg: rgba(168,115,51,0.08);

  --shadow:    none;
  --shadow-lg: 0 2px 6px rgba(15,42,74,0.04);
}

/* v5.41 — Theia 카드 accent (data-accent) modifier */
.panel[data-accent], .card[data-accent], section[data-accent]{
  border-left-width:4px; border-left-style:solid; position:relative;
}
[data-accent="output"]   { border-left-color:var(--output);   }
[data-accent="transfer"] { border-left-color:var(--transfer); }
[data-accent="leak"]     { border-left-color:var(--leak);     }
[data-accent="control"]  { border-left-color:var(--control);  }
[data-accent="injury"]   { border-left-color:var(--injury);   }
[data-accent] h2::before, [data-accent] .section-title::before{
  content:''; display:inline-block; width:5px; height:18px;
  border-radius:2px; margin-right:8px; vertical-align:middle;
  background:var(--line);
}
[data-accent="output"]   h2::before, [data-accent="output"]   .section-title::before{ background:var(--output);   }
[data-accent="transfer"] h2::before, [data-accent="transfer"] .section-title::before{ background:var(--transfer); }
[data-accent="leak"]     h2::before, [data-accent="leak"]     .section-title::before{ background:var(--leak);     }
[data-accent="control"]  h2::before, [data-accent="control"]  .section-title::before{ background:var(--control);  }
[data-accent="injury"]   h2::before, [data-accent="injury"]   .section-title::before{ background:var(--injury);   }

/* v5.41 — 수치 강조용 mono font (Theia 스타일) */
.mono, .num-mono { font-family:'JetBrains Mono','SF Mono','Menlo',monospace; font-variant-numeric:tabular-nums; }
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text)}
body{
  font-family:"Pretendard","Inter",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif;
  font-size:15px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv11";
  min-height:100vh;
}

/* ── 헤더 ── */
header.coach-h{
  position:sticky;top:0;z-index:60;
  background:#ffffff;
  border-bottom:1px solid var(--line);
  padding:12px 18px;
  display:flex;align-items:center;gap:12px;
}
header.coach-h .brand{
  font-weight:700;font-size:14px;letter-spacing:-0.01em;color:var(--text);
  margin-right:auto;
}
header.coach-h .brand .sub{color:var(--muted);font-size:11px;font-weight:500;margin-left:6px}
header.coach-h .nav-link{
  color:var(--text-soft);text-decoration:none;font-size:12px;font-weight:600;
  padding:7px 11px;border:1px solid var(--line);border-radius:8px;
  background:var(--panel-2);white-space:nowrap;
}
header.coach-h .nav-link:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}

/* ── Tab 네비 ── */
nav.tabs{
  display:flex;gap:0;
  background:var(--panel);
  border-bottom:1px solid var(--line);
  padding:0 14px;
  position:sticky;top:50px;z-index:50;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
}
nav.tabs button{
  background:transparent;border:none;color:var(--muted);
  padding:13px 18px;font-size:14px;cursor:pointer;
  border-bottom:2px solid transparent;font-weight:600;font-family:inherit;
  white-space:nowrap;letter-spacing:-0.01em;
}
nav.tabs button:hover{color:var(--text)}
nav.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}
nav.tabs button .badge{
  background:var(--accent-bg);color:var(--accent);
  font-size:10px;padding:1px 6px;border-radius:10px;font-weight:700;margin-left:6px;
}

main{padding:18px 16px 60px;max-width:920px;margin:0 auto}
section.tab-pane{display:none}
section.tab-pane.active{display:block}

/* ── 공용 카드/섹션 ── */
.meta-card{
  margin-bottom:18px;padding:12px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  font-size:13.5px;color:var(--text-soft);
}
.meta-card .name{
  color:var(--text);font-weight:700;font-size:18px;letter-spacing:-0.02em;margin-right:8px;
}
.meta-card .pill{
  display:inline-block;background:var(--panel-2);color:var(--text);
  padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;margin-left:4px;
  border:1px solid var(--line);
}

.kpi-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;
}
.kpi{
  background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;
}
.kpi .label{
  font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;
  font-weight:600;margin-bottom:8px;
}
.kpi .value{
  font-size:28px;font-weight:800;color:var(--text);letter-spacing:-0.03em;
  font-feature-settings:"tnum";line-height:1;
}
.kpi .value .unit{font-size:13px;color:var(--muted);font-weight:500;margin-left:3px}
.kpi .delta{font-size:11.5px;color:var(--muted);margin-top:6px;font-weight:500}
.kpi .delta.up{color:var(--grade-elite)}
.kpi .delta.down{color:var(--accent)}
.kpi .value.risk-low{color:var(--grade-elite)}
.kpi .value.risk-mid{color:var(--grade-below)}
.kpi .value.risk-high{color:var(--grade-poor)}

.section{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:22px 22px;margin-bottom:18px;
}
.section-title{
  display:flex;align-items:baseline;gap:10px;margin:0 0 18px;
  font-size:13px;font-weight:700;color:var(--accent);
  text-transform:uppercase;letter-spacing:1px;
}
.section-title .step{
  background:var(--accent);color:#fff;width:24px;height:24px;
  border-radius:6px;display:inline-flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;letter-spacing:0;
}
.section-title .h{
  font-size:18px;color:var(--text);text-transform:none;letter-spacing:-0.01em;font-weight:700;
}

/* ── 오늘의 폼 — Composite 도넛 + 5축 bar ── */
.composite{display:grid;grid-template-columns:200px 1fr;gap:30px;align-items:center}
.composite-donut{
  position:relative;width:180px;height:180px;display:grid;place-items:center;margin:0 auto;
}
.composite-donut .ring{
  width:180px;height:180px;border-radius:50%;
  background:conic-gradient(
    var(--accent) 0deg var(--ring-deg, 0deg),
    var(--panel-2) var(--ring-deg, 0deg) 360deg
  );
  display:grid;place-items:center;
}
.composite-donut .inner{
  width:148px;height:148px;border-radius:50%;
  background:var(--panel);display:grid;place-items:center;text-align:center;
}
.composite-donut .score-num{
  font-size:56px;font-weight:800;color:var(--text);
  font-feature-settings:"tnum";line-height:1;letter-spacing:-0.04em;
}
.composite-donut .score-label{
  margin-top:4px;font-size:10px;color:var(--muted);
  text-transform:uppercase;letter-spacing:1.4px;font-weight:600;
}
.composite-bars{display:grid;gap:18px}
.bar-row{
  display:grid;grid-template-columns:90px 1fr 80px;gap:14px;align-items:center;font-size:14px;
}
.bar-row .bar-label{font-weight:600;color:var(--text)}
.bar-row .bar-track{height:10px;background:var(--panel-2);border-radius:5px;overflow:hidden}
.bar-row .bar-fill{
  height:100%;
  background:linear-gradient(90deg, var(--accent) 0%, var(--accent-2) 100%);
  border-radius:5px;transition:width 500ms ease-out;
}
.bar-row .bar-value{text-align:right;font-feature-settings:"tnum"}
.bar-row .bar-value .num{font-weight:800;font-size:16px;color:var(--text)}
.bar-row .bar-value .grade{font-size:10.5px;margin-left:4px;font-weight:700;text-transform:uppercase;letter-spacing:0.4px}
.bar-row .bar-interp{
  grid-column:2/4;font-size:11.5px;color:var(--muted);margin-top:-4px;line-height:1.5;
}
.grade.elite{color:var(--grade-elite)}
.grade.above{color:var(--grade-above)}
.grade.avg  {color:var(--grade-avg)}
.grade.below{color:var(--grade-below)}
.grade.poor {color:var(--grade-poor)}

/* ── 다이나믹 시퀀싱 차트 — PROBLEMS 안에 ── */
.seq-chart-wrap{
  background:#fff;border-radius:10px;padding:14px 14px 8px;margin-bottom:14px;
}
.seq-chart-title{
  font-size:13px;font-weight:700;color:#0f172a;margin-bottom:6px;
}
.seq-chart-sub{
  font-size:11px;color:#64748b;margin-bottom:10px;line-height:1.5;
}
.seq-chart-diag{
  font-size:13px;line-height:1.6;padding:10px 14px;border-radius:8px;margin-top:10px;
}
.seq-chart-diag.ok  {background:rgba(16,185,129,0.10);color:#065f46;border-left:3px solid #10b981}
.seq-chart-diag.warn{background:rgba(245,158,11,0.10);color:#7c2d12;border-left:3px solid #f59e0b}
.seq-chart-diag.bad {background:rgba(239,68,68,0.10);color:#7f1d1d;border-left:3px solid #ef4444}

/* ── Top 3 (문제점) ── */
.top3{display:grid;gap:14px}
.top3-item{
  display:grid;grid-template-columns:46px 1fr 100px;gap:16px;align-items:center;
  padding:16px 18px;background:var(--panel-2);border-radius:10px;border:1px solid var(--line);
}
.top3-item .rank{
  width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;
  display:grid;place-items:center;font-weight:800;font-size:18px;font-feature-settings:"tnum";
}
.top3-item .body .name{font-size:16px;font-weight:700;color:var(--text);margin-bottom:4px}
.top3-item .body .meta{font-size:12px;color:var(--muted)}
.top3-item .body .info{
  display:grid;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);
  font-size:12.5px;color:var(--text-soft);line-height:1.55;
}
.top3-item .body .info .lbl{
  color:var(--accent);font-weight:700;font-size:10.5px;letter-spacing:0.6px;
  text-transform:uppercase;margin-right:6px;
}
.top3-item .impact{text-align:right}
.top3-item .impact .gain{
  font-size:22px;font-weight:800;color:var(--grade-elite);font-feature-settings:"tnum";line-height:1;
}
.top3-item .impact .gain-unit{font-size:11px;color:var(--muted);margin-top:2px}

/* ── 해결방안 ── */
.solution-item{
  padding:16px 18px;background:var(--panel-2);border-radius:10px;
  border-left:3px solid var(--grade-elite);margin-bottom:10px;
}
.solution-item .rank{
  color:var(--grade-elite);font-weight:800;font-size:14px;
  text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px;
}
.solution-item .drill{font-size:15px;color:var(--text);font-weight:600;line-height:1.5}
.solution-item .cue{
  margin-top:10px;padding:10px 12px;background:var(--panel);border-radius:8px;
  border-left:3px solid var(--accent);font-size:13.5px;color:var(--text);line-height:1.6;
}
.solution-item .cue .lbl{
  color:var(--accent);font-weight:700;font-size:10.5px;letter-spacing:0.6px;
  text-transform:uppercase;display:block;margin-bottom:4px;
}
.solution-item .observe{
  margin-top:8px;padding:10px 12px;background:rgba(56,189,248,0.08);border-radius:8px;
  font-size:12.5px;color:var(--text-soft);line-height:1.55;
}
.solution-item .observe .lbl{
  color:#7dd3fc;font-weight:700;font-size:10.5px;letter-spacing:0.6px;
  text-transform:uppercase;display:block;margin-bottom:4px;
}

/* ── TALKING POINTS (선수 설명용 자동 스크립트) ── */
.talking-points{
  background:linear-gradient(180deg, #fef2f2, #ffffff);
  border:1px solid var(--line);border-left:4px solid var(--accent);
  border-radius:10px;padding:18px 20px;
}
.talking-points h3{
  margin:0 0 12px;font-size:14px;color:var(--accent);font-weight:700;
  text-transform:uppercase;letter-spacing:0.6px;
}
.talking-points .tp-block{
  margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed var(--line);
}
.talking-points .tp-block:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.talking-points .tp-step{
  color:var(--accent);font-weight:700;font-size:11.5px;letter-spacing:0.4px;
  text-transform:uppercase;margin-bottom:6px;
}
.talking-points .tp-script{
  font-size:14px;color:var(--text);line-height:1.7;
}
.talking-points .tp-script q{
  quotes:'\201C' '\201D';color:var(--text);font-style:italic;
}
.talking-points .tp-note{
  font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.5;
}

/* ── 마네킹 (라이트 모드) ── */
.mannequin-wrap{
  background:transparent;border-radius:0;padding:0;display:block;min-height:240px;
}

/* ── 체력 + 랩소도 카드 ── */
.stat-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;
}
.stat-card{
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;
}
.stat-card .lbl{
  font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:0.4px;
  margin-bottom:6px;
}
.stat-card .num{
  font-size:24px;font-weight:800;color:var(--text);font-feature-settings:"tnum";letter-spacing:-0.02em;
  line-height:1.1;
}
.stat-card .num .u{font-size:13px;font-weight:600;color:var(--muted);margin-left:4px}
.stat-card .interp{
  font-size:11.5px;color:var(--text-soft);margin-top:8px;line-height:1.5;
}
.stat-card.hi  {border-left:3px solid var(--grade-elite)}
.stat-card.mid {border-left:3px solid var(--grade-below)}
.stat-card.lo  {border-left:3px solid var(--grade-poor)}
.stat-summary{
  background:var(--accent-bg);border-left:3px solid var(--accent);
  border-radius:8px;padding:12px 14px;margin-bottom:14px;
  font-size:13px;color:var(--text);line-height:1.6;
}
.stat-summary b{color:var(--accent)}
.stat-empty{
  padding:18px;background:var(--panel-2);border-radius:8px;
  color:var(--muted);text-align:center;font-size:13px;
}

/* ── 선수 dropdown ── */
.player-select-wrap{margin-bottom:18px}
.player-select{
  width:100%;
  background:var(--panel);color:var(--text);
  border:1px solid var(--line);border-radius:10px;
  padding:14px 18px;font-size:15px;font-family:inherit;font-weight:600;
  cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M3 5l3 3 3-3' stroke='%23cbd5e1' stroke-width='1.5' fill='none'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;
}

/* ════════════════════════════════════════════════════════
   ▶ Tab 1: 팀 현황
   ════════════════════════════════════════════════════════ */
.player-card{
  display:grid;grid-template-columns:34px 1fr auto auto;gap:14px;align-items:center;
  padding:12px 16px;background:var(--panel-2);border:1px solid var(--line);
  border-radius:10px;margin-bottom:8px;cursor:pointer;transition:all 0.15s;
}
.player-card:hover{border-color:var(--accent);background:var(--panel)}
.player-card .rank-num{
  font-weight:800;font-size:16px;color:var(--muted);text-align:center;font-feature-settings:"tnum";
}
.player-card .info .name{font-weight:700;font-size:15px;color:var(--text)}
.player-card .info .meta{font-size:11.5px;color:var(--muted);margin-top:1px}
.player-card .velo{
  font-weight:700;font-size:14px;color:var(--text-soft);font-feature-settings:"tnum";
  text-align:right;
}
.player-card .velo .unit{font-size:10px;color:var(--muted);margin-left:2px}
.player-card .composite{
  font-weight:800;font-size:18px;font-feature-settings:"tnum";text-align:center;
  min-width:42px;
}
.player-card .composite.elite{color:var(--grade-elite)}
.player-card .composite.above{color:var(--grade-above)}
.player-card .composite.avg  {color:var(--grade-avg)}
.player-card .composite.below{color:var(--grade-below)}
.player-card .composite.poor {color:var(--grade-poor)}

.legend-row{
  display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);
  margin-top:14px;padding:10px 12px;background:var(--panel-2);border-radius:8px;
}
.legend-row span{display:inline-flex;align-items:center;gap:4px}
.legend-row .dot{width:8px;height:8px;border-radius:50%}

/* ════════════════════════════════════════════════════════
   ▶ Tab 3: 장기 추적
   ════════════════════════════════════════════════════════ */
.trend-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px;
}
.trend-cell{
  background:var(--panel-2);border:1px solid var(--line);border-radius:10px;
  padding:14px 14px;text-align:center;
}
.trend-cell .session-label{
  font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;
}
.trend-cell .protocol{font-size:10px;color:var(--muted);margin-bottom:8px}
.trend-cell .value{
  font-size:24px;font-weight:800;font-feature-settings:"tnum";color:var(--text);letter-spacing:-0.02em;
}
.trend-cell .value.empty{color:var(--muted);font-size:16px;font-weight:500}
.trend-cell .delta{font-size:11px;margin-top:4px;font-weight:600}
.trend-cell .delta.up{color:var(--grade-elite)}
.trend-cell .delta.down{color:var(--accent)}

.model-trend{display:grid;gap:10px}
.model-trend-row{
  display:grid;grid-template-columns:90px repeat(4, 1fr);gap:8px;align-items:center;
  padding:8px 10px;background:var(--panel-2);border-radius:8px;font-size:13px;
}
.model-trend-row .ml{font-weight:600;color:var(--text)}
.model-trend-row .session-val{
  text-align:center;font-feature-settings:"tnum";font-weight:700;font-size:13px;color:var(--text);
}
.model-trend-row .session-val.empty{color:var(--muted);font-weight:500}

/* ── 공용 pill ── */
.pill{display:block;padding:4px 10px;border-radius:5px;font-size:11.5px;font-weight:600;margin:3px 0}
.pill.good{background:rgba(74,222,128,0.15);color:var(--grade-elite)}
.pill.warn{background:rgba(251,191,36,0.15);color:var(--grade-below)}
.pill.bad {background:rgba(248,113,113,0.15);color:var(--grade-poor)}

.empty-state{text-align:center;padding:40px 20px;color:var(--muted);font-size:14px}
.empty-state .ico{font-size:36px;margin-bottom:14px;opacity:0.5}

/* ── 모바일 반응형 ── */
@media (max-width:640px){
  body{font-size:14px}
  main{padding:14px 12px 40px}
  header.coach-h{padding:10px 14px;gap:8px}
  header.coach-h .brand{font-size:13px}
  header.coach-h .brand .sub{display:none}
  header.coach-h .nav-link{padding:6px 9px;font-size:11px}
  nav.tabs{padding:0 6px;top:42px}
  nav.tabs button{padding:11px 14px;font-size:13px}
  .kpi-row{grid-template-columns:repeat(2,1fr);gap:10px}
  .kpi{padding:12px 14px}
  .kpi .label{font-size:10px;margin-bottom:6px}
  .kpi .value{font-size:22px}
  .meta-card .name{font-size:16px}
  .section{padding:18px 16px;margin-bottom:14px;border-radius:10px}
  .section-title{margin-bottom:14px}
  .section-title .h{font-size:16px}
  .composite{grid-template-columns:140px 1fr;gap:18px}
  .composite-donut{width:140px;height:140px}
  .composite-donut .ring{width:140px;height:140px}
  .composite-donut .inner{width:114px;height:114px}
  .composite-donut .score-num{font-size:42px}
  .bar-row{grid-template-columns:80px 1fr 70px;gap:10px;font-size:13px}
  .bar-row .bar-value .num{font-size:14px}
  .top3-item{grid-template-columns:36px 1fr 80px;padding:14px 14px;gap:12px}
  .top3-item .rank{width:32px;height:32px;font-size:16px}
  .top3-item .body .name{font-size:14px}
  .top3-item .impact .gain{font-size:18px}
  .player-card{grid-template-columns:28px 1fr auto auto;padding:10px 12px;gap:10px}
  .player-card .rank-num{font-size:14px}
  .player-card .info .name{font-size:14px}
  .player-card .composite{font-size:16px;min-width:36px}
  .player-card .velo{font-size:12px}
  .trend-grid{grid-template-columns:repeat(2,1fr)}
  .trend-cell .value{font-size:18px}
  .model-trend-row{grid-template-columns:70px repeat(4,1fr);font-size:12px}
}
@media (max-width:380px){
  .composite{grid-template-columns:1fr;gap:14px}
  .composite-donut{margin:0 auto}
}
/* iframe 숨김 */
#data-iframe{position:absolute;top:-9999px;left:-9999px;width:1200px;height:800px;visibility:hidden;pointer-events:none}

/* ════════════════════════════════════════════════════════
   v3 (P1-a) — Top 3 교정 카드 (Feedback Card)
   REDESIGN_HIGHSCHOOL.md §5 — 첫 화면 6섹션 구조 카드 3장
   디자인 톤: 기존 coach.css 컨벤션 따름 (흰 배경 + 1px gray border, accent 빨강만 강조).
   v3.1 (사용자 피드백 반영): 그라데이션/색 띠 제거, 차분한 라이트 톤으로 정돈.
   ════════════════════════════════════════════════════════ */
.section.section-priority{
  /* 다른 section 과 동일한 흰 배경. 단, 좌측에 accent border 로 우선순위 신호. */
  border-left:3px solid var(--accent);
}

.feedback-cards{display:grid;gap:14px}

.feedback-card{
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  display:grid;grid-template-rows:auto 1fr;
}

/* 헤더 — 순위 + 이름 + 메타 */
.feedback-card .fc-head{
  display:grid;grid-template-columns:46px 1fr;gap:14px;
  align-items:center;padding:16px 20px 12px;
  border-bottom:1px solid var(--line-soft);
}
.feedback-card .fc-rank{
  width:38px;height:38px;border-radius:50%;
  background:var(--accent);color:#fff;
  display:grid;place-items:center;
  font-weight:800;font-size:18px;
  font-feature-settings:"tnum";
  letter-spacing:-0.02em;
}
/* 2·3 순위는 같은 빨강을 살짝 채도 다운 — 색 종류는 늘리지 않음 */
.feedback-card[data-rank="2"] .fc-rank{background:#e8807e}
.feedback-card[data-rank="3"] .fc-rank{background:#c4a4a4}

.feedback-card .fc-title{min-width:0}
.feedback-card .fc-name{
  font-size:16px;font-weight:700;color:var(--text);
  letter-spacing:-0.005em;line-height:1.35;margin-bottom:3px;
}
.feedback-card .fc-meta{
  font-size:12px;color:var(--muted);font-weight:500;
  font-feature-settings:"tnum";
}

/* 본문 — 6섹션 */
.feedback-card .fc-body{padding:14px 20px 18px}
.feedback-card .fc-sec{
  padding:12px 0;
  border-bottom:1px dashed var(--line-soft);
}
.feedback-card .fc-sec:last-child{border-bottom:none;padding-bottom:0}
.feedback-card .fc-sec:first-child{padding-top:4px}

.feedback-card .fc-lbl{
  font-size:11px;font-weight:700;
  color:var(--accent);
  text-transform:uppercase;letter-spacing:0.7px;
  margin-bottom:7px;
}
.feedback-card .fc-txt{
  font-size:14.5px;line-height:1.65;color:var(--text);
}

/* 훈련 방향 cue 박스 (몸으로 느끼는 표현) */
.feedback-card .fc-cue{
  background:var(--accent-bg);
  border-left:3px solid var(--accent);
  padding:11px 14px;border-radius:8px;
  font-size:14px;color:var(--text);
  line-height:1.6;
  font-weight:500;
}
.feedback-card .fc-observe{
  margin-top:8px;
  background:rgba(56,189,248,0.08);
  padding:9px 12px;border-radius:8px;
  font-size:12.5px;color:var(--text-soft);
  line-height:1.55;
}
.feedback-card .fc-mini-lbl{
  color:#0284c7;font-weight:700;
  font-size:10.5px;letter-spacing:0.5px;
  text-transform:uppercase;
  display:block;margin-bottom:3px;
}

/* 드릴 목록 */
.feedback-card .fc-drill-list{
  list-style:none;padding:0;margin:0;
  display:grid;gap:7px;
}
.feedback-card .fc-drill-list li{
  background:var(--panel-2);
  padding:9px 13px;border-radius:8px;
  font-size:13.5px;color:var(--text);
  border-left:3px solid var(--grade-elite);
  line-height:1.5;
}

/* 다음 측정 목표 — 다른 cue/observe 와 같은 톤. 색 종류 늘리지 않음. */
.feedback-card .fc-next .fc-txt{
  background:var(--panel-2);
  padding:10px 13px;border-radius:8px;
  font-size:13.5px;color:var(--text);line-height:1.6;
}

/* 빈 상태 (Top 3 없음) */
.card-empty{
  background:rgba(16,185,129,0.08);
  border:1px solid rgba(16,185,129,0.25);
  border-radius:12px;
  padding:28px 24px;text-align:center;
}
.card-empty .ico{font-size:36px;margin-bottom:8px}
.card-empty .t{
  font-size:16px;font-weight:700;color:var(--grade-elite);
  margin-bottom:6px;
}
.card-empty .s{
  font-size:13.5px;color:var(--text-soft);line-height:1.6;
  max-width:520px;margin:0 auto;
}

/* 모바일 (≤ 640px) */
@media (max-width:640px){
  .feedback-card .fc-head{padding:12px 14px 10px;grid-template-columns:38px 1fr;gap:10px}
  .feedback-card .fc-rank{width:32px;height:32px;font-size:15px}
  .feedback-card .fc-name{font-size:15px}
  .feedback-card .fc-body{padding:12px 14px 16px}
  .feedback-card .fc-txt{font-size:13.5px;line-height:1.6}
  .feedback-card .fc-cue{padding:9px 12px;font-size:13px}
}

/* ════════════════════════════════════════════════════════
   v3 (P2-b) — 팀 현황 리디자인
   1) Priority tasks (선수별 1순위 과제, 등번호 순)
   2) Training groups (A/B/C/D 그룹 분류)
   ════════════════════════════════════════════════════════ */
#priority-list{display:grid;gap:8px}
.priority-card{
  display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) auto;
  gap:14px;align-items:center;
  padding:12px 14px;
  background:#ffffff;border:1px solid var(--line);border-radius:10px;
  cursor:pointer;transition:background 0.15s, border-color 0.15s;
}
.priority-card:hover{background:var(--accent-bg);border-color:var(--accent)}
.priority-card .pc-info{min-width:0}
.priority-card .pc-name{font-size:14px;font-weight:700;color:var(--text);margin-bottom:3px}
.priority-card .pc-id{color:var(--muted);font-size:11px;font-weight:500;margin-left:4px}
.priority-card .pc-real{color:var(--grade-elite);font-size:10px;margin-left:4px;font-weight:600}
.priority-card .pc-meta{font-size:11.5px;color:var(--muted)}
.priority-card .pc-task{min-width:0}
.priority-card .pc-task-name{font-size:13.5px;color:var(--text);font-weight:600;line-height:1.3;margin-bottom:3px}
.priority-card .pc-task-meta{font-size:11px;color:var(--muted);font-feature-settings:"tnum"}
.priority-card .pc-task-none{font-size:12px;color:var(--grade-elite);font-style:italic;font-weight:600}
.priority-card .pc-group{
  display:flex;align-items:center;gap:8px;white-space:nowrap;
}
.priority-card .group-short{font-size:11px;color:var(--muted);font-weight:500}
.priority-hint{
  margin-top:10px;font-size:11.5px;color:var(--muted);
  text-align:right;font-style:italic;
}

/* Training Groups */
.group-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
}
.group-box{
  background:#ffffff;border:1px solid var(--line);border-radius:10px;
  padding:14px 14px;
  display:flex;flex-direction:column;gap:10px;
}
.group-header{
  display:flex;align-items:center;gap:8px;
}
.group-header .group-name{
  font-size:15px;font-weight:700;color:var(--text);letter-spacing:-0.01em;
}
.group-header .group-count{
  margin-left:auto;font-size:12px;font-weight:600;color:var(--muted);
  background:var(--panel-2);padding:2px 8px;border-radius:6px;
  font-feature-settings:"tnum";
}
.group-direction{
  font-size:12.5px;color:var(--text-soft);line-height:1.55;
}
.group-members{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;
}
.group-pill{
  background:var(--panel-2);border:1px solid var(--line);
  font-size:12px;padding:4px 10px;border-radius:14px;
  color:var(--text);cursor:pointer;transition:background 0.15s, border-color 0.15s;
}
.group-pill:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}
.group-empty{font-size:11.5px;color:var(--muted);font-style:italic}

/* Group badge (A/B/C/D) — 색은 accent 한 가지로 통일, 글자만 변별 */
.group-badge{
  display:inline-grid;place-items:center;
  width:24px;height:24px;border-radius:6px;
  background:var(--accent);color:#ffffff;
  font-weight:800;font-size:12px;letter-spacing:0;
}
.group-badge.group-B{background:#e8807e}
.group-badge.group-C{background:#c4a4a4}
.group-badge.group-D{background:#8c7172}

.group-note{
  margin-top:10px;font-size:11.5px;color:var(--muted);
  font-style:italic;text-align:center;
}

/* 모바일 (≤ 640px) — 팀 화면 */
@media (max-width:640px){
  .priority-card{grid-template-columns:1fr;gap:6px;padding:11px 12px}
  .priority-card .pc-group{justify-content:flex-start}
  .group-grid{grid-template-columns:1fr;gap:10px}
}

/* ════════════════════════════════════════════════════════
   v3 (P2-a) — 드릴 카드 (8필드 스키마)
   feedback-card 의 "추천 드릴" 영역에 0~2개 표시.
   기본은 컴팩트 (드릴명·목적·왜), <details> 펼치면 수행/체크/실수/목표.
   ════════════════════════════════════════════════════════ */
.feedback-card .fc-drills > .drill-card + .drill-card{margin-top:8px}

.drill-card{
  background:var(--panel-2);
  border:1px solid var(--line);
  border-left:3px solid var(--grade-elite);
  border-radius:0 8px 8px 0;
  padding:11px 13px;
  font-size:13.5px;color:var(--text);line-height:1.5;
}
.drill-card .dc-head{
  display:flex;align-items:center;gap:8px;margin-bottom:5px;
}
.drill-card .dc-name{
  font-size:14px;font-weight:700;color:var(--text);letter-spacing:-0.005em;
}
.drill-card .dc-group{
  display:inline-grid;place-items:center;
  width:20px;height:20px;border-radius:5px;
  background:var(--accent);color:#ffffff;
  font-weight:800;font-size:11px;
}
.drill-card .dc-group.group-B{background:#e8807e}
.drill-card .dc-group.group-C{background:#c4a4a4}
.drill-card .dc-group.group-D{background:#8c7172}

.drill-card .dc-purpose{
  font-size:13px;color:var(--text);line-height:1.55;margin-bottom:5px;
}
.drill-card .dc-why{
  font-size:12px;color:var(--text-soft);line-height:1.5;
  background:#ffffff;border-left:2px solid var(--accent);
  padding:6px 9px;border-radius:0 6px 6px 0;
  margin-bottom:6px;
}
.drill-card .dc-mini-lbl{
  color:var(--accent);font-weight:700;font-size:10.5px;letter-spacing:0.5px;
  text-transform:uppercase;display:block;margin-bottom:3px;
}

.drill-card .dc-detail summary{
  cursor:pointer;color:var(--muted);
  font-size:11.5px;font-weight:600;letter-spacing:0.3px;
  padding:4px 0;list-style:none;
  user-select:none;
}
.drill-card .dc-detail summary::-webkit-details-marker{display:none}
.drill-card .dc-detail summary::before{
  content:'▸ ';color:var(--accent);font-weight:800;
}
.drill-card .dc-detail details[open] summary::before{content:'▾ '}

.drill-card .dc-section{
  margin-top:10px;padding-top:10px;border-top:1px dashed var(--line-soft);
}
.drill-card .dc-list{
  margin:0;padding-left:18px;font-size:12.5px;color:var(--text);line-height:1.65;
}
.drill-card .dc-list li{padding:1px 0}
.drill-card .dc-list.dc-check li{list-style:'✓ '}
.drill-card .dc-list.dc-mistake li{list-style:'✗ '}
.drill-card .dc-list.dc-target li{list-style:'→ '}

@media (max-width:640px){
  .drill-card{padding:10px 12px;font-size:13px}
  .drill-card .dc-name{font-size:13.5px}
}

/* ════════════════════════════════════════════════════════
   v3 (P2-c) — 9단계 투구 분석
   상단 가로 stepper (단계별 상태) + 9개 세로 카드.
   ════════════════════════════════════════════════════════ */
.phase-analysis{display:flex;flex-direction:column;gap:14px}

/* Stepper — 가로 7칸 (v3 사용자 피드백: 준비 자세 + 팔로스루 제거 후 7단계) */
.ph-stepper{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  gap:0;align-items:start;
  padding:8px 4px 10px;
}
.ph-step{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  text-decoration:none;color:var(--text);
  font-size:10.5px;text-align:center;line-height:1.25;
  position:relative;cursor:pointer;
}
.ph-step-num{
  width:28px;height:28px;border-radius:50%;
  background:var(--line);color:var(--text);
  display:grid;place-items:center;
  font-weight:800;font-size:13px;
  border:2px solid transparent;
  transition:transform 0.15s, background 0.15s;
}
.ph-step:hover .ph-step-num{transform:scale(1.08)}
.ph-step-name{font-size:10px;color:var(--muted);font-weight:600;padding:0 2px}
.ph-step-line{display:none}

/* 단계 상태 색상 — 동일 색계 (accent 빨강 + grade colors 활용) */
.ph-step.ph-ok    .ph-step-num{background:var(--grade-elite);color:#ffffff}
.ph-step.ph-warn  .ph-step-num{background:var(--grade-below);color:#ffffff}
.ph-step.ph-issue .ph-step-num{background:var(--accent);color:#ffffff}
.ph-step.ph-na    .ph-step-num{background:var(--line);color:var(--muted)}

.ph-step.ph-ok    .ph-step-name{color:var(--grade-elite)}
.ph-step.ph-warn  .ph-step-name{color:var(--grade-below)}
.ph-step.ph-issue .ph-step-name{color:var(--accent)}

/* Legend */
.ph-legend{
  display:flex;justify-content:center;gap:14px;
  font-size:11px;color:var(--muted);font-weight:500;
  padding-bottom:6px;border-bottom:1px solid var(--line-soft);
}
.ph-legend .ph-dot{
  display:inline-block;width:10px;height:10px;border-radius:50%;
  margin-right:4px;vertical-align:1px;
}
.ph-legend .ph-dot.ph-ok{background:var(--grade-elite)}
.ph-legend .ph-dot.ph-warn{background:var(--grade-below)}
.ph-legend .ph-dot.ph-issue{background:var(--accent)}
.ph-legend .ph-dot.ph-na{background:var(--line)}

/* 카드 — 9장 세로 stack */
.ph-cards{display:grid;gap:10px;margin-top:4px}

.ph-card{
  background:#ffffff;
  border:1px solid var(--line);
  border-left:3px solid var(--line);
  border-radius:10px;
  padding:14px 16px;
  scroll-margin-top:80px;   /* sticky nav 고려 */
}
.ph-card.ph-ok    {border-left-color:var(--grade-elite)}
.ph-card.ph-warn  {border-left-color:var(--grade-below)}
.ph-card.ph-issue {border-left-color:var(--accent)}
.ph-card.ph-na    {border-left-color:var(--line);background:var(--panel-2)}

.ph-head{
  display:grid;grid-template-columns:38px 1fr auto;gap:12px;
  align-items:center;margin-bottom:10px;
}
.ph-num{
  width:32px;height:32px;border-radius:50%;
  background:var(--panel-2);color:var(--text);
  display:grid;place-items:center;
  font-weight:800;font-size:14px;
  border:1px solid var(--line);
}
.ph-card.ph-ok    .ph-num{background:var(--grade-elite);color:#ffffff;border-color:transparent}
.ph-card.ph-warn  .ph-num{background:var(--grade-below);color:#ffffff;border-color:transparent}
.ph-card.ph-issue .ph-num{background:var(--accent);color:#ffffff;border-color:transparent}

.ph-title{min-width:0}
.ph-name{
  font-size:15px;font-weight:700;color:var(--text);letter-spacing:-0.005em;
  margin-bottom:2px;line-height:1.3;
}
.ph-short{
  font-size:11px;color:var(--muted);font-weight:500;
  margin-left:6px;letter-spacing:0;
}
.ph-summary{
  font-size:12.5px;color:var(--text-soft);line-height:1.5;
}

.ph-status{
  background:var(--panel-2);color:var(--muted);
  font-size:11px;font-weight:700;
  padding:4px 10px;border-radius:6px;
  letter-spacing:0.3px;white-space:nowrap;
}
.ph-status.ph-ok    {background:rgba(0,133,74,0.10);color:var(--grade-elite)}
.ph-status.ph-warn  {background:rgba(202,138,4,0.12);color:var(--grade-below)}
.ph-status.ph-issue {background:var(--accent-bg);color:var(--accent)}

/* 단계 안 변인 리스트 */
.ph-vars{display:grid;gap:6px;margin-bottom:10px}
.ph-novars{
  font-size:12px;color:var(--muted);font-style:italic;
  padding:8px 12px;background:var(--panel-2);border-radius:6px;
  text-align:center;
}
.ph-var{
  display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;
  padding:8px 12px;background:var(--panel-2);border-radius:6px;
  font-size:12.5px;
}
.ph-var-name{font-weight:600;color:var(--text);font-size:12.5px}
.ph-var-meta{font-size:11px;color:var(--muted);margin-top:2px;font-feature-settings:"tnum"}
.ph-var-status{
  font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:5px;
  white-space:nowrap;letter-spacing:0.3px;
}
.ph-var-status.ph-ok    {background:rgba(0,133,74,0.10);color:var(--grade-elite)}
.ph-var-status.ph-warn  {background:rgba(202,138,4,0.12);color:var(--grade-below)}
.ph-var-status.ph-issue {background:var(--accent-bg);color:var(--accent)}

/* v3 신규 — Uplift 정량 평가 + 2×2 매트릭스 (다리 들기 단계) */
.ph-evalm{
  margin-bottom:10px;padding:10px 12px;
  background:rgba(168,85,247,0.05);
  border-left:3px solid #a855f7;
  border-radius:0 8px 8px 0;
}
.ph-evalm-lbl{color:#a855f7 !important;margin-bottom:7px}
.ph-evalm-grid{
  display:grid;grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));gap:8px;
}
.ph-evalm-cell{
  background:#ffffff;border:1px solid var(--line);
  padding:8px 11px;border-radius:8px;
  display:flex;flex-direction:column;gap:2px;
}
.ph-evalm-cell.ph-ok   {border-color:rgba(0,133,74,0.3)}
.ph-evalm-cell.ph-warn {border-color:rgba(202,138,4,0.4)}
.ph-evalm-cell.ph-issue{border-color:rgba(230,57,70,0.4)}
.ph-evalm-cell.ph-na   {border-color:var(--line);opacity:0.6}
.ph-evalm-name{font-size:11.5px;color:var(--muted);font-weight:600;letter-spacing:0.2px}
.ph-evalm-val{font-size:16px;font-weight:800;color:var(--text);font-feature-settings:"tnum"}
.ph-evalm-status{
  font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:5px;
  width:fit-content;letter-spacing:0.3px;
}
.ph-evalm-status.ph-ok   {background:rgba(0,133,74,0.10);color:var(--grade-elite)}
.ph-evalm-status.ph-warn {background:rgba(202,138,4,0.12);color:var(--grade-below)}
.ph-evalm-status.ph-issue{background:var(--accent-bg);color:var(--accent)}
.ph-evalm-status.ph-na   {background:var(--panel-2);color:var(--muted)}

/* 2×2 매트릭스 종합 평가 — v3 다중 매트릭스 지원 */
.ph-matrix + .ph-matrix{margin-top:0}   /* 연속 매트릭스 간격 정상화 */
.ph-matrix-title{
  font-size:10.5px;color:var(--muted);font-weight:600;
  letter-spacing:0.4px;text-transform:uppercase;
  margin-bottom:6px;
}
.ph-matrix{
  margin-bottom:10px;padding:11px 14px;
  border-radius:8px;border-left:3px solid var(--line);
  background:var(--panel-2);
}
.ph-matrix.ph-ok   {background:rgba(0,133,74,0.06);border-left-color:var(--grade-elite)}
.ph-matrix.ph-warn {background:rgba(202,138,4,0.06);border-left-color:var(--grade-below)}
.ph-matrix.ph-issue{background:var(--accent-bg);border-left-color:var(--accent)}
.ph-matrix-head{
  display:flex;align-items:center;gap:10px;margin-bottom:5px;
}
.ph-matrix-grade{
  display:inline-grid;place-items:center;
  width:28px;height:28px;border-radius:50%;
  font-weight:800;font-size:14px;color:#ffffff;
}
.ph-matrix-grade.ph-ok   {background:var(--grade-elite)}
.ph-matrix-grade.ph-warn {background:var(--grade-below)}
.ph-matrix-grade.ph-issue{background:var(--accent)}
.ph-matrix-name{font-size:13px;font-weight:700;color:var(--text);letter-spacing:-0.005em}
.ph-matrix-desc{font-size:12.5px;color:var(--text-soft);line-height:1.55}

@media (max-width:640px){
  .ph-evalm-grid{grid-template-columns:1fr;gap:6px}
}

/* 영상 관찰 체크리스트 (정량 변인 부족 단계용 — v3 다리 들기) */
.ph-checks{
  margin-bottom:10px;padding:10px 12px;
  background:rgba(56,189,248,0.06);
  border-left:3px solid #0284c7;
  border-radius:0 8px 8px 0;
}
.ph-checks-lbl{color:#0284c7 !important;margin-bottom:5px}
.ph-checks-list{
  margin:0;padding-left:18px;
  font-size:12.5px;color:var(--text);line-height:1.7;
  list-style:'□ ';
}
.ph-checks-list li{padding:1px 0}

.ph-bottom{
  display:grid;gap:6px;
  padding-top:10px;border-top:1px dashed var(--line-soft);
}
.ph-cue, .ph-next{
  font-size:12.5px;line-height:1.55;color:var(--text-soft);
}
.ph-cue{
  background:var(--accent-bg);
  border-left:3px solid var(--accent);
  padding:8px 11px;border-radius:0 6px 6px 0;
}
.ph-next{
  background:var(--panel-2);
  padding:8px 11px;border-radius:6px;
}
.ph-mini-lbl{
  color:var(--accent);font-weight:700;font-size:10px;letter-spacing:0.5px;
  text-transform:uppercase;display:block;margin-bottom:2px;
}
.ph-next .ph-mini-lbl{color:var(--text)}

/* 모바일 — stepper 는 살짝 컴팩트 */
@media (max-width:640px){
  .ph-stepper{gap:0;padding:6px 0 8px}
  .ph-step-num{width:24px;height:24px;font-size:11px}
  .ph-step-name{font-size:9.5px}
  .ph-card{padding:12px 14px}
  .ph-head{grid-template-columns:30px 1fr auto;gap:10px}
  .ph-num{width:28px;height:28px;font-size:13px}
  .ph-name{font-size:14px}
  .ph-short{display:block;margin-left:0;margin-top:1px}
  .ph-summary{font-size:12px}
  .ph-status{font-size:10px;padding:3px 7px}
  .ph-var{grid-template-columns:1fr}
  .ph-var-status{justify-self:start}
}

/* ════════════════════════════════════════════════════════
   v3 (P3-c) — 선수별 화면 sticky chip 네비게이션
   섹션 점프용 가로 스크롤 chip. 6 탭 완전 분리 대신 in-tab 네비.
   ════════════════════════════════════════════════════════ */
.section-nav{
  position:sticky;
  top:90px;       /* coach-h(50px) + nav.tabs(40px) 아래 */
  z-index:40;
  background:rgba(255,255,255,0.95);
  backdrop-filter:saturate(160%) blur(8px);
  border-bottom:1px solid var(--line);
  padding:8px 4px;
  margin:-2px -4px 14px;
  display:flex;gap:6px;flex-wrap:nowrap;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.section-nav::-webkit-scrollbar{height:3px}
.section-nav::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}

.sn-chip{
  flex:0 0 auto;
  background:var(--panel-2);border:1px solid var(--line);
  color:var(--text);text-decoration:none;font-size:12px;font-weight:600;
  padding:6px 11px;border-radius:18px;
  white-space:nowrap;letter-spacing:-0.01em;
  transition:background 0.15s, border-color 0.15s, color 0.15s;
}
.sn-chip:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}
.sn-chip.sn-priority{
  background:var(--accent);color:#ffffff;border-color:var(--accent);
}
.sn-chip.sn-priority:hover{background:var(--accent-2);border-color:var(--accent-2);color:#ffffff}

/* 섹션 ID 점프 시 sticky nav 가려지지 않게 */
section[id^="sec-"]{scroll-margin-top:140px}

@media (max-width:640px){
  .section-nav{top:88px;padding:6px 4px}
  .sn-chip{font-size:11.5px;padding:5px 9px}
}

/* ════════════════════════════════════════════════════════
   v3 (P3-b) — 장기 추적: 동작 개선/반복/신규 분류
   REDESIGN_HIGHSCHOOL.md §9 — 단일 점수 비교 X, 동작 개선 O
   ════════════════════════════════════════════════════════ */
.change-grid{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:12px;
}
.change-col{
  background:#ffffff;border:1px solid var(--line);border-radius:10px;
  padding:12px 12px;
}
.change-head{
  display:flex;align-items:center;gap:8px;margin-bottom:8px;
  padding-bottom:8px;border-bottom:1px solid var(--line-soft);
  font-size:13px;font-weight:700;color:var(--text);
}
.change-mark{
  display:inline-grid;place-items:center;
  width:22px;height:22px;border-radius:50%;
  font-weight:800;font-size:13px;color:#ffffff;
}
.change-mark.improved{background:var(--grade-elite)}
.change-mark.repeated{background:var(--grade-below)}
.change-mark.emerged {background:var(--accent)}
.change-count{
  margin-left:auto;background:var(--panel-2);
  color:var(--muted);font-weight:600;font-size:11px;
  padding:2px 8px;border-radius:6px;
  font-feature-settings:"tnum";
}
.change-item{
  background:var(--panel-2);border-radius:7px;
  padding:8px 10px;margin-bottom:6px;
}
.change-item:last-child{margin-bottom:0}
.change-col.change-improved .change-item{border-left:3px solid var(--grade-elite);border-radius:0 7px 7px 0}
.change-col.change-repeated .change-item{border-left:3px solid var(--grade-below);border-radius:0 7px 7px 0}
.change-col.change-emerged  .change-item{border-left:3px solid var(--accent);border-radius:0 7px 7px 0}

.ci-name{font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:2px;line-height:1.3}
.ci-meta{font-size:11px;color:var(--muted);font-feature-settings:"tnum"}

.change-empty{
  font-size:11.5px;color:var(--muted);font-style:italic;
  padding:8px 0;text-align:center;
}
.change-hint{
  margin-top:12px;padding:10px 14px;
  background:var(--panel-2);border-radius:8px;
  font-size:11.5px;color:var(--text-soft);line-height:1.6;
}
.change-hint b{color:var(--text);font-weight:700}

@media (max-width:640px){
  .change-grid{grid-template-columns:1fr;gap:10px}
}

/* ════════════════════════════════════════════════════════
   v3 (P3-a) — PDF 출력 (인쇄) 전용 스타일
   "선수별" 탭의 8 섹션을 5페이지 PDF 로 출력.
   페이지 분할은 자연스럽게 섹션 단위로 일어나도록 처리.
   ════════════════════════════════════════════════════════ */

/* 화면용: print-only 영역은 평소 숨김 */
.print-only{display:none}

/* PDF 출력 버튼 (헤더) */
header.coach-h .nav-print{
  font-family:inherit;cursor:pointer;
  font-size:12px;
}
header.coach-h .nav-print:hover{
  background:var(--accent-bg);border-color:var(--accent);color:var(--accent);
}

@media print {
  /* 화면 전용 요소 모두 숨김 */
  header.coach-h, nav.tabs, #data-iframe,
  .section.tab-pane#tab-team, .section.tab-pane#tab-trend,
  .player-select-wrap, .priority-hint, .group-pill,
  .empty-state, .nav-link, .nav-print, footer{
    display:none !important;
  }

  /* 인쇄 시 active 가 아닌 탭도 강제 표시 시 차단 */
  section.tab-pane:not(.active){display:none !important}

  /* 인쇄 전용 헤더 표시 */
  .print-only{display:block !important}

  /* 페이지 여백 & 기본 폰트 */
  @page{margin:14mm 12mm 14mm 12mm; size: A4 portrait}
  html, body{
    background:#ffffff !important;
    color:#000000 !important;
    font-size:11pt;
    line-height:1.4;
  }
  main{max-width:none;padding:0;margin:0}

  /* 인쇄 헤더 (선수명·메타·날짜) */
  #print-header{
    margin-bottom:8mm;padding-bottom:4mm;
    border-bottom:1.5pt solid #000;
  }
  #print-header .ph-brand{
    font-size:9pt;color:#666;font-weight:600;
    letter-spacing:0.5px;text-transform:uppercase;margin-bottom:2mm;
  }
  #print-header .ph-title-line{
    display:flex;align-items:baseline;gap:6mm;flex-wrap:wrap;margin-bottom:1.5mm;
  }
  #print-header .ph-player{font-size:18pt;font-weight:800;letter-spacing:-0.01em}
  #print-header .ph-meta{font-size:9pt;color:#444}
  #print-header .ph-date{font-size:8.5pt;color:#666}

  /* 모든 섹션 — 색상 인쇄 친화적 */
  .section{
    background:#ffffff !important;
    border:0.5pt solid #ccc !important;
    border-radius:0 !important;
    padding:6mm 6mm !important;
    margin-bottom:5mm !important;
    box-shadow:none !important;
  }
  .section.section-priority{
    border-left:2pt solid #000 !important;
  }
  .section-title{
    color:#000 !important;
    font-size:9pt !important;
    letter-spacing:0.5px;margin-bottom:4mm !important;
  }
  .section-title .step{
    background:#000 !important;color:#fff !important;
    width:18px;height:18px;font-size:10pt;
  }
  .section-title .h{font-size:13pt !important;color:#000 !important;font-weight:700}

  /* 페이지 분할 — 디자인 문서 §6 의 5페이지 구조 */
  /* p.1: section-priority (Top 3) — 그대로 첫 페이지에서 시작 */
  /* p.2: 9단계 분석 (step 6) */
  /* p.3: 훈련 처방 + 설명 가이드 */
  /* p.4-5: 오늘의 폼·공의 질·체력·힘 흐름·회전 순서 */
  .section:nth-of-type(2)  {page-break-before:always}   /* 오늘의 폼 (5페이지 영역 시작) */
  .section:nth-of-type(6)  {page-break-before:always}   /* 9단계 분석 */
  .section:nth-of-type(7)  {page-break-before:always}   /* 훈련 처방 */

  /* 카드 / 그래프 깨짐 방지 */
  .feedback-card, .ph-card, .drill-card,
  .solution-item, .talking-points,
  .composite, .stat-grid, .mannequin-wrap{
    page-break-inside:avoid !important;
  }

  /* 색상 강조 → 흑백 친화 (border 와 텍스트 가독성 유지) */
  .feedback-card{border:0.5pt solid #444 !important}
  .feedback-card[data-rank="1"] .fc-rank,
  .feedback-card[data-rank="2"] .fc-rank,
  .feedback-card[data-rank="3"] .fc-rank{
    background:#000 !important;color:#fff !important;
  }
  .feedback-card .fc-cue, .feedback-card .fc-next .fc-txt{
    background:#f5f5f5 !important;border-left-color:#000 !important;
  }
  .feedback-card .fc-lbl, .ph-mini-lbl, .dc-mini-lbl{
    color:#000 !important;
  }

  /* 9단계 stepper 컴팩트하게 + 색 단순화 */
  .ph-stepper{padding:2mm 0 3mm !important}
  .ph-step-num{
    width:18px !important;height:18px !important;font-size:9pt !important;
    background:#fff !important;color:#000 !important;
    border:1pt solid #000 !important;
  }
  .ph-step.ph-ok    .ph-step-num{background:#fff !important;color:#000 !important;border:1pt solid #00854a !important}
  .ph-step.ph-warn  .ph-step-num{background:#fff !important;color:#000 !important;border:1pt solid #A87333 !important}
  .ph-step.ph-issue .ph-step-num{background:#000 !important;color:#fff !important;border:1pt solid #000 !important}
  .ph-step.ph-na    .ph-step-num{background:#fff !important;color:#999 !important;border:0.5pt dashed #999 !important}
  .ph-step-name, .ph-step.ph-ok .ph-step-name, .ph-step.ph-warn .ph-step-name, .ph-step.ph-issue .ph-step-name{
    color:#000 !important;font-size:7pt !important;
  }

  /* 드릴 카드 — details 펼침 강제 */
  .drill-card .dc-detail details{open:true}
  .drill-card .dc-detail details > summary{display:none !important}
  .drill-card .dc-detail details > div{display:block !important}

  /* 링크 URL 표시 안 함 */
  a:after{content:none !important}
  a{color:#000 !important;text-decoration:none !important}

  /* 색 인쇄 강제 (Chrome/Safari) */
  *{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}
</content>
</invoke>