/* 야구 WHIP 계산기 전용 CSS (2026-10-23). 기록 줄·이닝당 주자 막대·출루 지도·읽기 줄 whi-*. 공용 부품은 assets/v2.css
   넓이: 작업면 컨테이너 whiw — 560 이상 기록 줄 [입력 3칸 | WHIP], 620 이상 [주자 막대·판정·목표 | 출루 지도], 700 이상 읽기 줄 두 단. 그 아래는 결과 → 입력 → 막대 → 지도 한 열 */
.whi-work{container:whiw / inline-size}
.whi-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:14px 18px 4px}
.whi-ex{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.whi-ex .v2-label{margin-right:2px}
.whi-chip{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper);font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;transition:background var(--ease)}
.whi-chip:hover{background:var(--btn)}
.whi-chip .i{width:13px;height:13px}

/* 기록 줄 — 좁은 화면: WHIP(결과)가 위, 입력 3칸이 아래 */
.whi-line{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"res" "fs" "hint";gap:8px;padding:10px 18px 0}
.whi-res{grid-area:res;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-width:0}
.whi-res .v2-label{flex:0 0 auto;font-family:var(--mono);font-weight:700;letter-spacing:.04em}
.whi-big{font-family:var(--sans);font-size:38px;font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
.whi-big.is-empty{color:var(--muted);opacity:.6}
.whi-big.is-long{font-size:30px}.whi-big.is-xlong{font-size:21px}
.whi-per{flex:1 1 auto;min-width:0;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.whi-fs{grid-area:fs;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.whi-hint{grid-area:hint;margin:0;font-family:var(--sans);font-size:11.5px;line-height:1.5;color:var(--muted)}
.whi-work>.v2-status{display:block;margin:8px 18px 0}
.whi-work>.v2-status:empty{display:none}

/* 본판: 좁으면 한 열 */
.whi-main{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:14px;padding:14px 18px;border-top:1px solid var(--soft)}
.whi-left{display:flex;flex-direction:column;gap:12px;min-width:0}
.whi-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px;margin:0 0 6px}
.whi-hint{font-family:var(--sans);font-size:11.5px;line-height:1.45;color:var(--muted)}
.whi-key{display:inline-flex;align-items:center;gap:5px;font-family:var(--sans);font-size:11.5px;color:var(--muted)}
.whi-key i{display:inline-block;width:10px;height:10px;border-radius:2px}
.whi-key i.is-bb{margin-left:6px}

/* 이닝당 주자 막대: [이름 | 0~2.00 막대 | 값], 행은 subgrid라 막대 왼쪽 끝이 맞음 */
.whi-runs{display:grid;grid-template-columns:fit-content(40%) minmax(0,1fr) max-content;column-gap:12px} /* 이름 칸은 40%까지만(긴 언어는 줄바꿈), 막대가 줄어들지 않게 */
.whi-runs>.whi-head{grid-column:1/-1}
.whi-bars{display:grid;grid-column:1/-1;grid-template-columns:subgrid;margin:0;padding:0;list-style:none}
.whi-bars li{display:grid;grid-column:1/-1;grid-template-columns:subgrid;align-items:center;padding:7px 0;border-top:1px solid var(--soft)}
.whi-bars li:first-child{border-top:0;padding-top:2px}
.whi-bn{min-width:0;font-family:var(--sans);line-height:1.25}
.whi-bn b{display:block;font-size:13px;font-weight:700;color:var(--ink)}
.whi-bn small{display:block;margin-top:1px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.whi-bn small:empty{display:none}
.whi-bt{position:relative;display:block;height:16px;border-radius:2px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--soft)}
.whi-bt i{position:absolute;top:0;bottom:0;left:0;width:0}
.whi-bt .is-h,.whi-key .is-h{background:var(--ink)}
.whi-bt .is-bb,.whi-key .is-bb{background:color-mix(in srgb,var(--ink) 32%,var(--paper))}
.whi-bt .is-h,.whi-bt .is-bb{transition:width .6s cubic-bezier(.2,.7,.2,1),left .6s cubic-bezier(.2,.7,.2,1)}
.whi-bars [data-k="me"] .is-h{background:var(--accent)}
.whi-bars [data-k="me"] .is-bb{background:color-mix(in srgb,var(--accent) 38%,var(--paper))}
.whi-bars [data-k="med"] .is-h{background:var(--muted)}
.whi-bars [data-k="med"] .is-bb{background:color-mix(in srgb,var(--muted) 35%,var(--paper))}
.whi-bt .whi-one{left:50%;width:0;border-left:1px dashed var(--muted);z-index:1}
.whi-bt em{position:absolute;right:3px;top:50%;transform:translateY(-50%);font-size:10px;font-style:normal;color:var(--on-fill,#fff);z-index:2}
.whi-bv{justify-self:end;font-family:var(--sans);font-size:15px;font-weight:750;color:var(--ink);font-variant-numeric:tabular-nums lining-nums}
.whi-bars [data-k="me"] .whi-bv{color:var(--accent)}
.whi-axis{display:grid;grid-template-columns:1fr 1fr 1fr;margin:2px 0 0;font-family:var(--mono);font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.whi-axis span:nth-child(2){text-align:center}.whi-axis span:last-child{text-align:right}
.whi-runs>.whi-axis{grid-column:2}

.whi-say{margin:0;font-family:var(--sans);font-size:14px;line-height:1.6;color:var(--ink)}
.whi-say:empty{display:none}
.whi-say b{font-weight:750}
.whi-warn{display:block;margin-top:3px;font-size:12px;line-height:1.5;color:var(--muted)}
.whi-goal{display:grid;grid-template-columns:minmax(0,7em) minmax(0,1fr);align-items:end;gap:6px 14px;padding:12px 14px;border-radius:var(--radius)}
.whi-goal .v2-f.is-invalid .v2-input,.whi-fs .v2-f.is-invalid .v2-input{border-color:var(--accent)}
.whi-gout{margin:0;padding-bottom:3px;font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--ink);font-variant-numeric:tabular-nums}

/* 출루 지도 */
.whi-map{margin:0;min-width:0}
.whi-svgbox{width:100%;overflow:hidden}
.whi-svgbox svg{display:block;max-width:100%;height:auto}
.whi-ax rect{fill:var(--paper);stroke:var(--soft)}
.whi-ax text{font-family:var(--mono);font-size:10px;fill:var(--muted)}
.whi-ax text.whi-axt{font-family:var(--sans);font-size:10.5px;font-weight:600}
.whi-iso line{stroke:var(--soft);stroke-width:1}
.whi-iso text{font-family:var(--mono);font-size:9.5px;fill:var(--muted)}
.whi-isome{stroke:var(--accent);stroke-width:1.4;stroke-dasharray:4 3;opacity:.85}
.whi-avg{fill:var(--card);stroke:var(--ink);stroke-width:1.6}
.whi-dots circle{fill:var(--muted);fill-opacity:.45;stroke:var(--muted);stroke-width:1.2;transition:fill .3s ease,fill-opacity .3s ease}
.whi-dots circle.is-lo{fill:var(--ink);fill-opacity:1;stroke:var(--ink)}
.whi-dots circle.is-hi{fill:var(--card);fill-opacity:1}
.whi-dots circle.is-eq{fill:var(--accent);fill-opacity:1;stroke:var(--accent)}
.whi-me{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.whi-me circle{fill:var(--accent);fill-opacity:.18;stroke:var(--accent);stroke-width:2.2}
.whi-me.is-out circle{stroke-dasharray:3 2}
.whi-me text{font-family:var(--sans);font-size:11.5px;font-weight:800;fill:var(--accent);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--card);stroke-width:3px}
.whi-leg{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;padding:0;list-style:none;font-family:var(--sans);font-size:11.5px;color:var(--muted)}
.whi-leg li{display:inline-flex;align-items:center;gap:5px}
.whi-leg i{flex:0 0 auto;width:9px;height:9px;border-radius:50%;box-sizing:border-box}
.whi-leg [data-k="me"] i{width:11px;height:11px;border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--card))}
.whi-leg [data-k="lo"] i{background:var(--ink)}
.whi-leg [data-k="hi"] i{border:1.2px solid var(--muted);background:var(--card)}
.whi-leg [data-k="avg"] i{width:8px;height:8px;border-radius:0;border:1.6px solid var(--ink);background:var(--card);transform:rotate(45deg)}
.whi-leg [data-k="iso"] i{width:14px;height:0;border-radius:0;border-top:1.4px dashed var(--accent)}
.whi-near{margin:8px 0 0;font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--ink)}
.whi-near:empty{display:none}

/* 읽기 줄 · 식 · 복사 */
.whi-rows{padding:2px 18px 4px;border-top:1px solid var(--soft)}
.whi-rows li span{flex:0 1 auto;min-width:0}
.whi-rows li b{white-space:normal;text-align:right}
:lang(ja) .whi-rows li b{padding-right:4px} /* 전각 닫는 괄호가 칸 밖으로 나오지 않게 */
.whi-rows li:first-child{border-top:0}
.whi-foot{padding:4px 18px 16px;border-top:1px solid var(--soft)}
.whi-foot .v2-formula{margin-top:10px;white-space:normal;overflow-wrap:anywhere}
.whi-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}

@container whiw (max-width:359px){
  .whi-fs{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .whi-fs .v2-f:first-child{grid-column:1/-1}
}
/* 기록 줄 한 줄: [입력 3칸 | = WHIP] */
@container whiw (min-width:560px){
  .whi-line{grid-template-columns:minmax(0,1fr) minmax(150px,max-content);grid-template-areas:"fs res" "hint hint";column-gap:20px;align-items:end;padding-top:12px}
  .whi-res{flex-direction:column;align-items:flex-end;gap:3px;padding-left:18px;border-left:1px solid var(--soft)}
  .whi-res .v2-label{order:0}
  .whi-big{font-size:42px}.whi-big.is-long{font-size:32px}.whi-big.is-xlong{font-size:22px}
  .whi-per{flex:none;text-align:right}
}
@container whiw (min-width:700px){
  .whi-rows{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:26px}
  .whi-rows li:nth-child(2){border-top:0}
}
/* 본판 두 열: [주자 막대·판정·목표 | 출루 지도] */
@container whiw (min-width:620px){
  .whi-main{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:22px;align-items:start}
}
@media (hover:none){.whi-map .whi-head .whi-hint{display:none}} /* 마우스가 없는 기기에는 '올리면 이름' 안내를 숨김 */
@media (prefers-reduced-motion:reduce){.whi-bt .is-h,.whi-bt .is-bb,.whi-me,.whi-dots circle{transition:none}}
