/* Match HUD: the ballpark stays full screen, including between pitches. */
body .inning-mode{padding:0;overflow:hidden;background:#10232c}
.inning-mode .inning-shell{display:block;max-width:none;margin:0}
.inning-mode .inning-presentation{position:fixed;inset:0;z-index:1;border:0;border-radius:0;box-shadow:none}
.inning-mode .inning-live,.inning-mode .inning-live .lv,.inning-mode .inning-live .lv-main,.inning-mode .inning-live .lv-stage{width:100%;height:100%;border-radius:0}
.inning-mode .inning-live canvas{max-width:none}
.inning-mode .inning-head{position:fixed;z-index:20;top:max(10px,env(safe-area-inset-top));right:10px;left:auto;display:flex;gap:4px;margin:0;padding:0;border:0;pointer-events:auto}
.inning-mode .inning-head button{width:44px;height:44px;min-height:44px;padding:10px;border:1px solid #8da9a055;border-radius:50%;background:#102732cc;color:#e2ebe5}
.inning-mode button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.inning-mode .inning-score{position:absolute;top:max(10px,env(safe-area-inset-top));left:10px;width:250px;max-width:calc(100% - 118px);padding:8px 10px;background:#102732e8;border:1px solid #83a39c66;border-radius:9px;z-index:10;font-size:14px}
.inning-mode .inning-scoreline{flex-wrap:nowrap;gap:8px}
.inning-mode .inning-frame{padding:0;border:0;font-size:16px;white-space:nowrap}
.inning-mode .inning-score strong{font-size:24px;margin:0 4px}
.inning-mode .inning-counts{gap:6px;flex-wrap:nowrap;margin-top:7px}
.inning-mode .inning-counts>span:first-child{gap:8px}
.inning-mode .inning-counts>span:first-child>span{gap:3px;font-size:12px}
.inning-mode .inning-counts i{width:8px;height:8px}
.inning-mode .inning-diamond{width:32px;height:27px;flex-shrink:0}
.inning-mode .inning-diamond i{width:10px;height:10px}.inning-mode .inning-diamond .base1{top:13px}.inning-mode .inning-diamond .base2{left:11px}.inning-mode .inning-diamond .base3{top:13px}
.inning-mode .inning-counts>small{position:absolute;top:calc(100% + 4px);right:0;background:#102732c9;border-radius:4px;padding:1px 5px;font-size:12px}
.inning-mode .inning-feedback{position:absolute;z-index:10;bottom:158px;left:12px;right:auto;width:calc(100% - 166px);max-width:300px;min-height:0;max-height:none;overflow:visible;border:0;border-radius:8px;padding:8px 10px;background:#102732d9;font-size:22px;color:#f2d69b}
.inning-mode .inning-feedback:empty{display:none}
.inning-mode .pitch-tell{position:absolute;z-index:12;top:150px;left:50%;transform:translateX(-50%);padding:5px 12px;border-radius:14px;background:#102732d9;border:1px solid #f4d49166;color:#f4d491;font-size:14px;pointer-events:none}.inning-mode .pitch-tell[hidden]{display:none}
.inning-mode .inning-adjust{margin:6px 0 0;padding-top:6px;border-top:1px solid #ffffff22;font-size:14px;color:#f4b98a}
.inning-mode .pitcher-style{margin:6px 0 8px;font-size:13px;color:#b9cbd1}.inning-mode .pitcher-empty{font-size:13px;color:#91a9b3;margin:8px 0 0}
.inning-mode .pitcher-counts{margin-top:10px;font-size:13px}.inning-mode .pitcher-counts>b{display:block;font-size:12px;color:#a7cabc;margin-bottom:4px}.inning-mode .pitcher-counts>div{display:grid;grid-template-columns:46px 1fr auto;gap:6px;align-items:center;padding:3px 0;border-top:1px solid #73917d33}.inning-mode .pitcher-counts small{color:#91a9b3;font-size:11px}
.inning-mode .pitch-chip{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-right:3px;border-radius:6px;font-style:normal;font-size:12px;font-weight:700;color:#132630;background:#cee4a5}.inning-mode .pitch-chip.pitch-SL{background:#8fc1e3}.inning-mode .pitch-chip.pitch-CH{background:#f0cc76}
.inning-mode .pitcher-tells{margin-top:10px;font-size:13px;display:flex;flex-wrap:wrap;gap:4px 10px}.inning-mode .pitcher-tells>b{width:100%;font-size:12px;color:#a7cabc}
.inning-mode .inning-timing{font-style:normal;color:#c8d6da}.inning-mode .inning-timing.is-sweet,.inning-mode .inning-timing.is-solid{color:#a8dcc3}.inning-mode .inning-timing.is-early,.inning-mode .inning-timing.is-late,.inning-mode .inning-timing.is-weak,.inning-mode .inning-timing.is-foul,.inning-mode .inning-timing.is-miss{color:#f4b98a}
.inning-mode .inning-alt{margin:6px 0 0;padding-top:6px;border-top:1px solid #ffffff22;font-size:14px;color:#b9cbd1;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.inning-mode .inning-alt b{color:#dfe8ea;font-weight:600}.inning-mode .inning-alt small{font-size:11px;padding:1px 6px;border-radius:9px;background:#ffffff14;color:#c8d6da}.inning-mode .inning-alt.is-better{color:#f4d491}.inning-mode .inning-alt.is-better small{background:#f4d49122;color:#f4d491}.inning-mode .inning-alt.is-worse small{background:#8bc6aa22;color:#a8dcc3}
.result-lessons{list-style:none;margin:12px 0 0;padding:10px 12px;border-radius:8px;background:#0e1e26;border:1px solid #f4d49133;text-align:left;font-size:13px}.result-lessons li{display:flex;justify-content:space-between;gap:10px;padding:3px 0;color:#c2d6dd}.result-lessons li b{color:#f4d491;font-weight:600}.result-lessons-head{color:#f4d491;font-size:12px;letter-spacing:.04em;border-bottom:1px solid #f4d49122;margin-bottom:4px;padding-bottom:5px!important}
.inning-mode .inning-verdict{display:flex;flex-wrap:wrap;gap:3px 10px}.inning-mode .inning-verdict strong{font-size:22px}.inning-mode .inning-verdict span{font-size:14px}
.inning-mode .inning-live-zone{display:block;position:absolute;top:auto;bottom:100px;right:12px;left:auto;width:132px;padding:4px;background:#102732b8;border:1px solid #a0b9ad77;border-radius:8px;z-index:12}
.inning-mode .inning-live-zone[hidden]{display:none}
.inning-mode .inning-plan-toggle{position:fixed;z-index:25;bottom:100px;left:12px;display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;font-size:15px;color:#dce8e1;border:1px solid #a5bca366;border-radius:9px;background:#102732df}
.inning-mode .inning-plan-toggle[aria-expanded=true]{background:#386b59;border-color:#b1d9bd}
.inning-mode .inning-controls{display:none;position:fixed;z-index:24;left:12px;bottom:154px;width:350px;max-width:calc(100% - 24px);max-height:calc(100dvh - 270px);overflow:auto;padding:14px!important;margin:0;background:#102732f7;border:1px solid #8aada0;border-radius:12px;visibility:visible;pointer-events:auto;box-shadow:0 8px 32px #0005}
.inning-mode.is-planning .inning-controls{display:block}
.inning-mode .inning-opponent{padding:0 0 8px;margin:0 0 8px;gap:10px;font-size:14px}.inning-mode .inning-opponent b{font-size:16px}.inning-mode .inning-opponent span{color:#b2cbbb}
.inning-mode .inning-label{font-size:14px;margin:8px 0 6px}
.inning-mode .inning-options{gap:6px;margin-bottom:8px}.inning-mode .inning-options button{font-size:15px;min-height:44px}
.inning-mode .inning-zone-row{justify-content:center}.inning-mode .inning-zone-map{width:180px;height:180px}.inning-mode .inning-pitch-icon{width:14px;height:22px}
.inning-mode .batting-decision{position:fixed;z-index:30;bottom:max(10px,env(safe-area-inset-bottom));left:50%;right:auto;transform:translateX(-50%);width:min(440px,calc(100% - 24px));padding:8px;background:#102732ed;border:1px solid #8cac9e88;border-radius:12px;display:grid;grid-template-columns:1fr 1.05fr;column-gap:8px}
.inning-mode .batting-decision[hidden]{display:none}
.inning-mode .batting-decision-title{position:absolute;right:8px;bottom:calc(100% + 5px);font-size:16px}
.inning-mode .batting-time{visibility:hidden;background:#102732df;border-radius:5px;padding:1px 7px}.inning-mode.is-deciding .batting-time{visibility:visible}
.inning-mode .batting-clock{grid-column:1/-1;margin:0 0 8px;height:14px;border-radius:7px;background:#1b2f39;overflow:visible}
.inning-mode .batting-clock i{position:absolute;top:-4px;bottom:-4px;left:0;width:5px;margin-left:-2px;border-radius:3px;background:#f4d491;box-shadow:0 0 6px #000a;transform:none!important}
.inning-mode .batting-band{position:absolute;z-index:2;top:-18px;left:var(--swing-from);font-size:11px;font-weight:600;letter-spacing:.04em;color:#a8dcc3;white-space:nowrap}
.inning-mode .batting-hold{grid-column:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:8px 10px;border-radius:12px;background:#24443f;border:2px solid #86a59d;color:#f2f5ee;touch-action:none;user-select:none;-webkit-user-select:none;position:relative;overflow:hidden}
.inning-mode .batting-hold>span{font-size:20px;font-weight:700;position:relative}
.inning-mode .batting-hold>small{font-size:11px;color:#c2d5d8;line-height:1.3;text-align:center;position:relative}
.inning-mode .batting-hold kbd{margin-left:6px;padding:0 5px;border:1px solid #86a59d;border-radius:4px;font-family:inherit;font-size:10px}
.inning-mode .batting-hold:disabled{opacity:.55}
.inning-mode .batting-hold.is-armed{border-color:#8bc6aa;background:#2f6a55;box-shadow:0 0 0 4px #8bc6aa55,0 0 18px #8bc6aa88}
.inning-mode .batting-hold.is-loaded{border-color:#f4b98a;background:#4a3a2c}
.inning-mode .batting-hold.is-swinging{border-color:#f4d491;background:#4b3f2a}
.inning-mode .inning-time{grid-column:2;font-size:15px;position:relative}.inning-mode .inning-time[aria-pressed=true]{background:#f4d491;color:#182e33}
.inning-mode .batting-next{position:absolute;inset:0;border-radius:7px;background:#f4d49166;transform:scaleX(0);transform-origin:left;z-index:0}
.inning-mode.is-on-clock .batting-next{transform:scaleX(1);transition:transform var(--next-ms,2300ms) linear}
/* 키캡: 데스크톱에서만. 버튼 오른쪽 위 구석에 작게 */
.inning-mode kbd.key{position:absolute;top:3px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:4px;border:1px solid #9bb6b0aa;border-bottom-width:2px;background:linear-gradient(#1f3a44,#142a33);color:#c7d9d3;font:600 10px/14px "IBM Plex Mono",ui-monospace,monospace;text-align:center;letter-spacing:0;pointer-events:none}
.inning-mode .inning-options button,.inning-mode .inning-head button,.inning-mode .inning-look{position:relative}
.inning-mode .inning-head button kbd.key,.inning-mode .inning-look kbd.key{top:-6px;right:-6px}
.inning-mode .batting-hold kbd{margin-left:6px;padding:0 5px;border:1px solid #9bb6b0aa;border-bottom-width:2px;border-radius:4px;background:linear-gradient(#1f3a44,#142a33);font:600 10px/14px "IBM Plex Mono",ui-monospace,monospace}
@media(pointer:coarse){.inning-mode kbd.key,.inning-mode .batting-hold kbd{display:none}}
/* 타임 장면 */
.inning-mode .time-banner{position:fixed;z-index:26;top:calc(88px + 96px);left:50%;transform:translateX(-50%) translateY(-8px);display:none;flex-direction:column;align-items:center;gap:4px;padding:10px 22px;border-radius:12px;background:#0e1a20e6;border:1px solid #f4d49188;color:#f4d491;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none}
.inning-mode .time-banner b{font:700 30px/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.24em;margin-right:-.24em}.inning-mode .time-banner span{font-size:13px;color:#e6e9dc}
.inning-mode.is-timeout .time-banner{display:flex;opacity:1;transform:translateX(-50%) translateY(0)}
.inning-mode.is-timeout .lv-three{filter:saturate(.75) brightness(.85);transition:filter .3s}
.inning-mode.is-timeout .batting-hold:not(:disabled){border-color:#f4d491;box-shadow:0 0 0 4px #f4d49133}
@media(max-height:500px){.inning-mode .time-banner{top:70px}}
.inning-mode .batting-hold.is-loaded::before,.inning-mode .batting-hold.is-swinging::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f4d491aa,#f4a86baa);transform:scaleX(var(--drive,0));transform-origin:left;transition:transform .05s linear}
.inning-mode .batting-hold:focus-visible{outline:3px solid #f4d491;outline-offset:3px}
@media(pointer:coarse){.inning-mode .batting-hold kbd{display:none}}
.inning-mode .batting-decision{grid-template-columns:2fr 1fr}
.inning-mode .batting-decision button{min-height:48px;font-size:16px;padding:6px;border-radius:7px}
.inning-mode .batting-decision .inning-throw{margin:0;width:100%;grid-column:2;font-size:16px;min-height:48px}
.inning-mode .batting-decision .inning-throw:disabled{font-size:13px;color:#cbded6}
.inning-mode .pitching-action{position:fixed;z-index:30;bottom:max(10px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 24px))}
.inning-mode .pitching-action .inning-throw{position:static;width:100%;transform:none;min-height:52px}
.inning-mode.is-playing .inning-plan-toggle{visibility:hidden}
.inning-mode.is-deciding .inning-feedback{visibility:hidden}
.inning-mode.is-finished .inning-controls{display:block;left:50%;bottom:20px;transform:translateX(-50%);width:420px;max-height:calc(100dvh - 130px);padding:0!important;background:#102732f5}
.inning-mode.is-finished .inning-opponent,.inning-mode.is-finished .inning-plan-toggle,.inning-mode.is-finished .inning-feedback,.inning-mode.is-finished .inning-live-zone,.inning-mode.is-finished .pitching-action{display:none}
.inning-mode .inning-result{border:0;margin:0;padding:20px}.inning-mode .inning-result-kicker{display:none}
@media(max-width:360px){.inning-mode .inning-score{padding:7px}.inning-mode .inning-counts>span:first-child{gap:5px}.inning-mode .inning-counts>span:first-child>span{gap:2px}.inning-mode .inning-counts i{width:7px;height:7px}.inning-mode .inning-diamond i{width:9px;height:9px}.inning-mode .inning-score strong{font-size:22px}}
@media(max-height:500px){.inning-mode .batting-decision{left:auto;right:12px;transform:none;width:330px}.inning-mode .inning-live-zone{right:12px;bottom:98px;width:120px}.inning-mode .inning-feedback{bottom:100px;left:160px}.inning-mode .inning-plan-toggle{bottom:14px}.inning-mode .inning-controls{bottom:68px;max-height:calc(100dvh - 86px)}.inning-mode.is-finished .inning-controls{bottom:12px;max-height:calc(100dvh - 24px)} }

.inning-mode.has-zone:not(.is-playing) .inning-live-zone{display:block}.inning-mode .inning-live-zone[hidden]{display:none!important}

.inning-mode .inning-look{position:fixed;z-index:25;left:12px;bottom:208px;width:44px;height:44px;padding:10px;background:#102732df;color:#dce8e1;border:1px solid #a5bca366;border-radius:50%}
.inning-mode.has-batting-dock .lv-three{cursor:grab}.inning-mode.has-batting-dock .lv-three:active{cursor:grabbing}
.inning-mode.is-playing .inning-look,.inning-mode.is-planning .inning-look,.inning-mode.is-finished .inning-look{display:none}
.inning-mode.is-playing .lv-three{cursor:default}
@media(max-height:500px){.inning-mode .inning-look{bottom:68px}}

/* Batter choices stay open; pitcher identity belongs to the match HUD. */
.inning-mode.has-batting-dock .inning-plan-toggle{display:none}
.inning-mode.has-batting-dock:not(.is-finished) .inning-controls{display:block;visibility:visible;pointer-events:auto;left:50%;transform:translateX(-50%);bottom:calc(94px + env(safe-area-inset-bottom));width:min(440px,calc(100% - 24px));max-width:none;max-height:none;padding:8px!important;border-radius:10px;background:#102732e8;overflow:visible}
.inning-mode.has-batting-dock .inning-picks{margin:0;padding:0;border:0;min-width:0}
/* 타격 계획 패널은 존 그림(구역별 정확도)이 핵심이라 함께 보여 준다. */
.inning-mode.has-batting-dock .inning-zone-map{width:150px;height:150px}
.inning-mode.has-batting-dock .inning-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0 0 5px}
.inning-mode.has-batting-dock .inning-options[data-group=approach]{grid-template-columns:1fr 1fr;margin:0}
.inning-mode.has-batting-dock .inning-options button{min-width:0;min-height:44px;padding:5px 2px;font-size:14px;white-space:nowrap}
.inning-mode.has-batting-dock .inning-pitch-icon{display:none}
.inning-mode.has-batting-dock .inning-presentation>.inning-opponent{position:absolute;z-index:12;top:126px;left:10px;display:flex;flex-wrap:wrap;gap:4px 8px;max-width:calc(100% - 24px);padding:6px 9px;margin:0;border:1px solid #8da9a055;border-radius:7px;background:#102732d9;pointer-events:none}
.inning-mode.has-batting-dock .inning-opponent b{font-size:15px}.inning-mode.has-batting-dock .inning-opponent span{font-size:14px}
.inning-mode.has-batting-dock .inning-live-zone{bottom:270px;width:104px}
.inning-mode.has-batting-dock .inning-look{bottom:270px}
.inning-mode.has-batting-dock .inning-feedback{bottom:270px;left:64px;width:calc(100% - 190px);max-width:260px}
.inning-mode.has-batting-dock.is-finished .inning-opponent{display:none}
@media(max-height:500px){
  .inning-mode.has-batting-dock:not(.is-finished) .inning-controls{left:12px;transform:none;bottom:12px;width:300px}
  .inning-mode.has-batting-dock .inning-look{left:12px;bottom:184px}
  .inning-mode.has-batting-dock .inning-live-zone{bottom:98px}
  .inning-mode.has-batting-dock .inning-feedback{bottom:100px;left:auto;right:130px;width:180px}
  .inning-mode.has-batting-dock .inning-presentation>.inning-opponent{top:104px}
}

.inning-mode .inning-batter-entry{position:absolute;z-index:16;top:29%;left:50%;transform:translateX(-50%);padding:9px 16px;border-left:3px solid #f2d38c;border-radius:4px;background:#102732e8;color:#f3e6c4;font-size:18px;font-weight:700;white-space:nowrap;pointer-events:none}
.inning-mode .inning-batter-entry[hidden]{display:none}
.inning-mode.is-changing .inning-live-zone,.inning-mode.is-changing .inning-feedback{visibility:hidden}
.inning-mode .pitching-action{display:grid;grid-template-columns:1fr 1fr 2fr;gap:8px;padding:8px;background:#102732e8;border:1px solid #8cac9e88;border-radius:12px}
.inning-mode .pitch-breathe{min-height:52px;border-radius:8px;font-size:15px;background:#244c4a;color:#deeee3}
.inning-mode .pitch-release{grid-column:1/-1;grid-row:1;padding:6px 4px 12px}.inning-mode .pitch-release[hidden]{display:none}
.inning-mode .pitch-release-label{display:flex;justify-content:space-between;font-size:16px;margin-bottom:12px;color:#f3dfb3}
.inning-mode .pitch-meter{height:18px;background:linear-gradient(90deg,#835e4d,#294c49 44%,#294c49 56%,#835e4d);position:relative;border-radius:9px;margin:0 8px}
.inning-mode .pitch-perfect{position:absolute;left:44%;width:12%;height:100%;background:#b6d9a8;border-radius:3px}
.inning-mode .pitch-needle{position:absolute;top:-5px;width:4px;height:28px;background:white;box-shadow:0 0 5px #000;transform:translateX(-50%)}
.inning-mode.is-breathing .pitch-breathe{box-shadow:inset 0 0 0 calc(2px + var(--breath,1)*8px) #a1cab766}
.inning-mode.is-releasing .inning-live-zone{bottom:180px}.inning-mode.is-releasing .inning-plan-toggle{visibility:hidden}

.inning-mode .zone-high{left:50%;top:16%}
.inning-mode.has-batting-dock .inning-options[data-group=location]{grid-template-columns:repeat(5,minmax(0,1fr))}
/* Read the plan spatially: location pad, pitch trajectories, then swing style. */
.inning-mode.has-batting-dock .batting-plan-grid{display:grid;grid-template-columns:132px minmax(0,1fr);gap:10px;align-items:center}
.inning-mode.has-batting-dock .batting-plan-tools{min-width:0}
.inning-mode.has-batting-dock .inning-options[data-group=location]{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:0;margin:0;background:linear-gradient(90deg,transparent 32%,#769b8a44 33%,transparent 34%,transparent 65%,#769b8a44 66%,transparent 67%),linear-gradient(transparent 32%,#769b8a44 33%,transparent 34%,transparent 65%,#769b8a44 66%,transparent 67%);border-radius:9px;outline:1px solid #789c8a55}
.inning-mode.has-batting-dock [data-group=location] button{border:0;background:#19353d88;border-radius:5px;font-size:13px;padding:2px}
.inning-mode.has-batting-dock [data-group=location] [data-value=high]{grid-area:1/2}
.inning-mode.has-batting-dock [data-group=location] [data-value=in]{grid-area:2/1}
.inning-mode.has-batting-dock [data-group=location] [data-value=any]{grid-area:2/2;font-size:12px}
.inning-mode.has-batting-dock [data-group=location] [data-value=out]{grid-area:2/3}
.inning-mode.has-batting-dock [data-group=location] [data-value=low]{grid-area:3/2}
.inning-mode.has-batting-dock [data-group=location] [aria-pressed=true]{background:#739e80;color:#0d252a;box-shadow:inset 0 0 0 2px #cae4b4}
.inning-mode.has-batting-dock .inning-options[data-group=target]{grid-template-columns:1fr 1fr;gap:4px;margin-bottom:6px}
.inning-mode.has-batting-dock .batting-plan-tools button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;font-size:13px;min-height:50px;line-height:1.15}
.inning-mode.has-batting-dock .inning-pitch-icon,.inning-mode .batting-choice-icon{display:inline-block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7}
.inning-mode.has-batting-dock .batting-plan-tools [data-group=approach] button{min-height:44px}
.inning-mode.has-batting-dock .batting-plan-tools [data-group=approach] svg{height:18px}
.inning-mode.has-batting-dock .inning-live-zone,.inning-mode.has-batting-dock .inning-look,.inning-mode.has-batting-dock .inning-feedback{bottom:282px}
.inning-mode.has-batting-dock .batting-action-row{gap:0;border:1px solid #86a59d66;border-radius:8px;overflow:hidden;background:#172f37}
.inning-mode.has-batting-dock .batting-action-row button{display:flex;align-items:center;justify-content:center;gap:3px;padding:4px 2px;border:0;border-radius:0;background:transparent;color:#b1c3bd;font-size:14px}
.inning-mode.has-batting-dock .batting-action-row button[aria-pressed=true]{background:#3c5556;color:#fff;box-shadow:inset 0 -3px #c0d3c6}
.inning-mode.has-batting-dock .batting-action-row svg{width:18px;height:18px}
.inning-mode.has-batting-dock .batting-decision .inning-throw:not(:disabled){background:#f0d08e;color:#213238;border:1px solid #ffe2a6;font-weight:800;box-shadow:0 2px 8px #0003}
.inning-mode.has-batting-dock.is-deciding .batting-action-row button{color:#f2e2bf;background:#35534c}
.inning-mode.has-batting-dock.is-deciding .batting-action-row button[aria-pressed=true]{background:#f0d08e;color:#213238;box-shadow:none}
@media(max-height:500px){.inning-mode.has-batting-dock .inning-look{bottom:196px}.inning-mode.has-batting-dock .inning-live-zone,.inning-mode.has-batting-dock .inning-feedback{bottom:100px}}
.inning-mode.is-intro .inning-look,.inning-mode.is-intro .inning-live-zone,.inning-mode.is-intro .inning-plan-toggle{visibility:hidden}

/* Scouting is available between pitches without expanding the choice dock. */
.inning-mode .inning-scout{position:absolute;top:174px;left:10px;z-index:18;display:flex;align-items:center;gap:6px;max-width:calc(100% - 20px);font-size:14px;color:#eff2de}
.inning-mode .scout-batter{padding:5px 7px;border-radius:6px;background:#102732e8}
.inning-mode .scout-toggle{min-width:54px;min-height:44px;padding:4px 8px;background:#183940;border:1px solid #92b2a1;border-radius:7px;color:#eff2de;font-size:14px}
.inning-mode .scout-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(400px,calc(100% - 24px));max-height:calc(100dvh - 28px);overflow:auto;padding:10px;background:#102732fa;border:1px solid #a9c6ad;border-radius:12px;box-shadow:0 12px 60px #0009;font-size:14px}
.inning-mode .scout-panel[hidden]{display:none}
.inning-mode .scout-panel header{display:flex;align-items:center;justify-content:space-between;font-size:16px}
.inning-mode .scout-panel header button{width:44px;height:44px;font-size:24px;color:#fff;background:transparent;border:0}
.inning-mode .scout-runners{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:10px}
.inning-mode .scout-runners>div,.inning-mode .scout-field>div{display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 2px;border:1px solid #62857266;border-radius:7px;background:#193c3bd9}
.inning-mode .scout-field{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;background:radial-gradient(ellipse at bottom,#98714566,#235c4244 60%,transparent 70%)}
.inning-mode .scout-content strong{color:#c4dfa4;font-weight:600}
.inning-mode .scout-own{margin-top:10px;line-height:1.5}
.inning-mode button.inning-diamond{min-width:44px;min-height:44px;background:transparent;border:0;padding:0;cursor:pointer;color:inherit}
.inning-mode .inning-diamond i[data-pace=fast]{box-shadow:0 0 0 2px #cef4a1}
.inning-mode .inning-diamond i[data-pace=slow]{background:#d8b985}
.inning-mode.is-playing .inning-scout,.inning-mode.is-intro .inning-scout,.inning-mode.is-changing .inning-scout,.inning-mode.is-finished .inning-scout{display:none}
@media(max-height:500px){.inning-mode .inning-scout{top:147px}.inning-mode .scout-panel{width:440px}.inning-mode .scout-field{grid-template-columns:repeat(3,minmax(0,1fr))}}

.inning-mode .inning-compact-plan{display:none}
/* Once delivery starts, mobile space belongs to the ball and the two decisions. */
@media(max-width:900px),(max-height:500px){
 .inning-mode.has-batting-dock.is-playing:not(.is-finished) .inning-controls{display:none;visibility:hidden;pointer-events:none}
 .inning-mode.has-batting-dock.is-playing .batting-decision{grid-template-columns:2fr 1fr}
 .inning-mode.has-batting-dock.is-playing .batting-decision .inning-throw{display:none}
 .inning-mode.has-batting-dock.is-playing .batting-hold{grid-column:1}
 .inning-mode.has-batting-dock.is-playing .batting-action-row button{min-height:48px;font-size:14px}
 .inning-mode.has-batting-dock.is-playing .inning-live-zone,.inning-mode.has-batting-dock.is-playing .inning-feedback{bottom:104px}
 .inning-mode.has-batting-dock.is-playing .inning-look{display:none}
}
@media(max-height:500px){.inning-mode.has-batting-dock.is-reading .inning-compact-plan:not([hidden]){top:147px}}

/* Result visibility must not depend on motion preferences. */
.inning-mode .lv-flash{top:50%;font-size:clamp(40px,5vw,72px);white-space:nowrap}

.inning-mode.has-batting-dock .inning-presentation>.pitcher-tag{position:fixed;width:max-content;flex-wrap:nowrap;transform:translate(-50%,-100%);min-height:44px;max-width:calc(100% - 16px);margin:0;padding:6px 10px;align-items:center;justify-content:center;gap:8px;pointer-events:auto;cursor:pointer;white-space:nowrap;border-color:#abc6a599;box-shadow:0 3px 12px #0005}
.inning-mode .pitcher-tag::after{content:'';position:absolute;left:50%;bottom:-5px;width:7px;height:7px;background:#102732;transform:translateX(-50%) rotate(45deg);border-right:1px solid #abc6a599;border-bottom:1px solid #abc6a599}
.inning-mode .pitcher-tag[hidden],.inning-mode.is-playing .pitcher-tag,.inning-mode.is-intro .pitcher-tag,.inning-mode.is-changing .pitcher-tag{display:none!important}
.inning-mode.has-batting-dock .inning-scout{top:126px}
.inning-mode .pitcher-details{position:fixed;z-index:36;top:50%;left:50%;transform:translate(-50%,-50%);width:min(320px,calc(100% - 24px));padding:12px;background:#102732fa;border:1px solid #abc6a5;border-radius:12px;box-shadow:0 12px 60px #0009;color:#ecedd9;font-size:16px}
.inning-mode .pitcher-details[hidden]{display:none}
.inning-mode .pitcher-details header{display:flex;align-items:center;justify-content:space-between;font-size:18px}
.inning-mode .pitcher-details header button{width:44px;height:44px;background:transparent;border:0;color:inherit;font-size:24px}
.inning-mode .pitcher-repertoire>div{display:grid;grid-template-columns:1fr auto 42px;align-items:center;gap:8px;min-height:48px;border-top:1px solid #73917d55}
.inning-mode .pitcher-repertoire strong{text-align:right;color:#cee4a5}.inning-mode .pitcher-repertoire small{font-size:13px}
@media(max-height:500px){.inning-mode.has-batting-dock .inning-scout{top:104px}}

.inning-mode .inning-batter-entry{position:fixed;width:max-content;transform:translate(-50%,-100%);max-width:calc(100% - 24px);padding:8px 12px;white-space:nowrap;text-align:center}
.inning-mode .inning-batter-entry b{display:block;font-size:18px}
.inning-mode .inning-batter-entry span{display:block;margin-top:3px;font-size:16px;font-weight:400}

/* Keep the three bases centered inside their 44px touch target. */
.inning-mode button.inning-diamond{width:44px;height:44px;flex:0 0 44px}
.inning-mode .inning-diamond i{transform:translate(-50%,-50%) rotate(45deg)}
.inning-mode .inning-diamond .base1{left:78%;right:auto;top:55%}
.inning-mode .inning-diamond .base2{left:50%;top:27%}
.inning-mode .inning-diamond .base3{left:22%;top:55%}

/* Results have their own layout, independent of the pitch selection dock. */
.inning-mode.is-finished .inning-controls{top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(460px,calc(100% - 24px));max-height:calc(100dvh - 100px);background:#132e36;box-shadow:0 12px 50px #0008,0 0 0 100vmax #07141b99}
.inning-mode .inning-result{padding:22px;background:transparent;text-align:center}
.inning-mode .inning-result h2{font-size:28px;line-height:1.2;margin:0 0 12px}
.inning-mode .result-final-score{display:flex;justify-content:center;align-items:center;gap:18px;font-size:16px;color:#d3e1dd}
.inning-mode .result-final-score strong{font-size:40px;line-height:1.1;color:#f4dfa5;font-variant-numeric:tabular-nums}
.inning-mode .result-overview>p{font-size:16px;margin:10px 0 18px}
.inning-mode .result-replay{display:grid;gap:8px}
.inning-mode .inning-result button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 12px;border:1px solid #708f88;border-radius:9px;color:#edf4e9;background:#25444b;font-size:16px;line-height:1.25}
.inning-mode .inning-result [data-retry]{min-height:56px;background:#e7cf8f;color:#182e33;border-color:#f7e3ac;font-size:18px;font-weight:700}
.inning-mode .inning-result button:focus-visible{outline:3px solid #f7e3ac;outline-offset:2px}
.inning-mode .inning-sharing{display:flex;margin-top:16px;padding-top:16px;gap:8px;border-top:1px solid #56766f}
.inning-mode .inning-result [data-share]{min-height:52px;background:#3c7160;border-color:#8fbca3;font-size:18px;font-weight:700}
.inning-mode .result-share-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.inning-mode .result-share-tools button{font-size:15px;padding:8px 4px}
.inning-mode .inning-share-status{font-size:15px;margin:4px 0;line-height:1.4}
@media(max-height:500px) and (min-width:600px){
 .inning-mode.is-finished .inning-controls{width:min(680px,calc(100% - 110px));max-height:calc(100dvh - 32px)}
 .inning-mode .inning-result{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;padding:18px}
 .inning-mode .result-overview,.inning-mode .result-replay{grid-column:1}
 .inning-mode .result-overview>p{margin-bottom:0}
 .inning-mode .inning-sharing{grid-column:2;grid-row:1/span 2;justify-content:center;margin:0;padding:0 0 0 20px;border-top:0;border-left:1px solid #56766f}
}

/* Broadcast scorebug: team rows above, aligned B/S/O beside the bases. */
.inning-mode .inning-scoreline{display:flex;align-items:center;gap:12px}
.inning-mode .inning-scoreteams{flex:1;min-width:0}
.inning-mode .inning-scoreteams>div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;line-height:20px;color:#bfcecb}
.inning-mode .inning-scoreteams .own-team{color:#f3df9f;font-weight:700}
.inning-mode .inning-scoreteams strong{font-size:20px;line-height:20px;margin:0;min-width:20px;text-align:center}
.inning-mode .inning-counts{display:flex;align-items:center;margin-top:6px}
.inning-mode .inning-counts>span:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.inning-mode .inning-counts>span:first-child>span{display:flex;align-items:center;gap:4px;height:12px;font-family:monospace;font-size:12px;line-height:12px}

.inning-mode .inning-frame small{display:block;font-size:12px;color:#a8c3b4;margin-bottom:3px}
.inning-mode .result-stage{display:block;font-size:14px;color:#b6cfc5;margin-bottom:8px}
.inning-mode .result-other-games{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.inning-mode .inning-result [data-next]{min-height:56px;background:#e7cf8f;color:#182e33;border-color:#f7e3ac;font-size:18px;font-weight:700}
.inning-mode .result-other-games [data-retry]{min-height:48px;background:#25444b;color:#edf4e9;border-color:#708f88;font-size:16px;font-weight:400}
.stage-select{display:grid;gap:8px;margin:18px 0}
.stage-select button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;min-height:60px;padding:10px 14px;background:#203b43;color:#e3eade;border:1px solid #63877b;border-radius:8px}
.stage-select button[aria-pressed=true]{background:#365e50;border-color:#e4d49c;box-shadow:inset 3px 0 #e4d49c}
.stage-select b{font-size:17px}.stage-select span{font-size:14px;color:#c2d3c9}
.inning-mode .result-stages{margin:20px 0 0;text-align:left}.inning-mode .result-stages button{min-height:56px}.inning-mode .result-stages button.is-cleared b{color:#a8dcc3}
.inning-mode .result-stages button[aria-pressed=true]{background:#2f4a4a;border-color:#9bb6b0;box-shadow:inset 3px 0 #9bb6b0}

.inning-mode .zone-read{stroke:#102832;stroke-width:1;transition:fill .16s,fill-opacity .16s}
.inning-mode .zone-read-cover{fill:#66d19e;fill-opacity:.42}
.inning-mode .zone-read-reward{fill:#f0c765;fill-opacity:.62}
.inning-mode .zone-read-trade{fill:#d7a85d;fill-opacity:.34}
.inning-mode .zone-read-risk{fill:#d96d6d;fill-opacity:.34}
.inning-mode .zone-command{stroke-width:2;stroke-dasharray:4 3}
.inning-mode .zone-command.is-attack{fill:#66d19e;fill-opacity:.18;stroke:#8be1b8}
.inning-mode .zone-command.is-chase{fill:#e0a762;fill-opacity:.18;stroke:#efbd7e}
.inning-mode.is-celebrating .inning-controls,.inning-mode.is-celebrating .batting-decision,.inning-mode.is-celebrating .inning-live-zone,.inning-mode.is-celebrating .inning-feedback{display:none!important}
.inning-mode.has-batting-dock [data-group=location] .plan-cover{background:#315f50;color:#dff3df}
.inning-mode.has-batting-dock [data-group=location] .plan-trade{background:#5b5135;color:#f4e2ac}
.inning-mode.has-batting-dock [data-group=location] .plan-risk:not([aria-pressed=true]){background:#56343a;color:#e7bec0}
.inning-mode.has-batting-dock [data-group=location] .plan-reward[aria-pressed=true]{background:#d2ad55;color:#182c31;box-shadow:inset 0 0 0 2px #f7e1a0}

/* Batter vision resolves a live ABS estimate; discipline sets the last check-swing moment. */
.inning-mode .inning-live-zone.is-reading-pitch{visibility:visible;border-color:#d9e9bd;background:#102732df;box-shadow:0 0 18px #dceaa633}
.inning-mode .zone-read-estimate{fill:#dceaa620;stroke:#dceaa6;stroke-width:2.5;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}
.inning-mode .zone-read-estimate.type-FF{fill:#8bc8e025;stroke:#9eddf2}
.inning-mode .zone-read-estimate.type-SL{fill:#f0c76525;stroke:#f0c765}
.inning-mode .zone-read-estimate.type-CH{fill:#7fd2a625;stroke:#8de0ae}
.inning-mode .zone-read-kind{fill:#f7f1d6;font-size:15px;font-weight:800;paint-order:stroke;stroke:#102732;stroke-width:3px}
.inning-mode .batting-clock{position:relative;--swing-from:55%;--swing-to:85%}
.inning-mode .batting-clock::before{content:'';position:absolute;z-index:1;top:0;bottom:0;left:var(--swing-from);width:calc(var(--swing-to) - var(--swing-from));border-radius:7px;background:#8bc6aa;opacity:.9;box-shadow:0 0 10px #8bc6aa99}
.inning-mode .batting-clock i{z-index:3}

.inning-mode .inning-transition{position:fixed;z-index:34;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:7px;min-width:220px;padding:18px 24px;border:1px solid #d7c88e;border-radius:10px;background:#102732eF;color:#edf0dc;box-shadow:0 10px 50px #0009;text-align:center;pointer-events:none}
.inning-mode .inning-transition[hidden]{display:none}
.inning-mode .inning-transition b{font-size:28px;color:#f1d38a}.inning-mode .inning-transition span{font-size:18px}.inning-mode .inning-transition small{font-size:13px;color:#a9c6bd}

.inning-mode .match-intro{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:80px 20px 130px;background:radial-gradient(ellipse at 50% 30%,#294753,#0c1c26 75%);color:#edf0df;pointer-events:none}
.inning-mode .match-venue{font-size:18px;letter-spacing:.08em;color:#bbd0ca;margin:0}
.inning-mode .match-pair{display:flex;align-items:center;justify-content:center;gap:22px;width:min(100%,660px)}
.inning-mode .match-club{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;gap:14px;text-align:center;position:relative}
.inning-mode .match-club small{font-size:12px;letter-spacing:.2em;color:#abc0bd}
.inning-mode .match-crest{width:110px;height:120px;display:grid;place-items:center;background:var(--club);clip-path:polygon(0 0,100% 0,100% 74%,50% 100%,0 74%);font:bold 64px Georgia,serif;color:#fff4db}
.inning-mode .match-club strong{font-size:24px;word-break:keep-all}.inning-mode .match-vs{font:italic 20px Georgia,serif;color:#d4b777}
.inning-mode .match-own{position:absolute;top:100%;margin-top:8px;color:#f1d38a;font-size:11px;letter-spacing:.12em}
.inning-mode .match-format{margin:16px 0 0;font-size:16px;color:#d1ddda}.inning-mode .match-starter{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center;border-top:1px solid #ffffff20;padding-top:20px;font-size:16px}.inning-mode .match-starter small,.inning-mode .match-starter span{font-size:14px;color:#a9c4bc}
.inning-mode.is-match-intro .inning-head{z-index:45}.inning-mode.is-match-intro .lv-3d-status{position:fixed;z-index:46;top:auto;bottom:35px;left:50%;transform:translateX(-50%);width:max-content;max-width:90vw}
@media(max-width:480px){.inning-mode .match-club strong{font-size:20px}.inning-mode .match-crest{width:85px;height:96px;font-size:52px}.inning-mode .match-pair{gap:12px}}
@media(max-height:500px){.inning-mode .match-intro{padding:25px 20px 55px;gap:10px}.inning-mode .match-crest{width:58px;height:62px;font-size:34px}.inning-mode .match-club{gap:5px}.inning-mode .match-format{margin-top:12px}.inning-mode .match-starter{padding-top:8px}}

.inning-mode .match-enter{pointer-events:auto;min-height:48px;min-width:180px;font-size:18px}.inning-mode .match-enter:disabled{opacity:.55}

.inning-mode .flight-read{position:fixed;z-index:12;width:var(--read-size,78px);height:var(--read-size,78px);transform:translate(-50%,-50%);border:2px dashed #e9eed0;border-radius:50%;box-shadow:0 0 14px #f4efbb30;pointer-events:none;filter:blur(.6px)}
.inning-mode .flight-read[hidden]{display:none}

/* 조준점: 당긴 채 드래그한 배트 위치. 존 그림 위에 겹친다. */
.inning-mode .zone-aim{fill:#f4d49133;stroke:#f4d491;stroke-width:2;display:none}
.inning-mode.is-loaded .zone-aim,.inning-mode.is-deciding .zone-aim.is-live{display:block}

/* 투수 편 투구 버튼: 누르고 있는 동안 와인드업. 타자 편 홀드 버튼과 같은 결. */
.inning-mode .pitch-hold{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;touch-action:none;user-select:none;-webkit-user-select:none}
.inning-mode .pitch-hold>span{font-size:18px;font-weight:700}.inning-mode .pitch-hold>small{font-size:11px;color:#c2d5d8;line-height:1.3;text-align:center}
.inning-mode .pitch-hold kbd{margin-left:6px;padding:0 5px;border:1px solid #9bb6b0aa;border-bottom-width:2px;border-radius:4px;background:linear-gradient(#1f3a44,#142a33);font:600 10px/14px "IBM Plex Mono",ui-monospace,monospace}
.inning-mode.is-releasing .pitch-hold{border-color:#f4d491;background:#4b3f2a}
@media(pointer:coarse){.inning-mode .pitch-hold kbd{display:none}}

.inning-mode .pitch-effort{min-height:52px;border-radius:8px;font-size:15px;background:#24343d;border:1px solid #6b8585;color:#e8ede4}
.inning-mode .pitch-effort[aria-pressed=true]{background:#5a3a2e;border-color:#f4a86b;color:#ffe3cf;box-shadow:inset 0 -2px 0 #f4a86b}
.inning-mode .pitch-effort:disabled{opacity:.5}

/* 코치 말풍선. 결정 판 위에 뜨고, 가리키는 대상에 따라 자리가 조금 바뀐다. */
.inning-mode .coach-tip{position:fixed;z-index:34;left:50%;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 178px);transform:translateX(-50%);width:min(380px,calc(100% - 24px));padding:12px 14px 10px;border-radius:12px;background:#0f2028f2;border:1px solid #f4d491;box-shadow:0 8px 28px #0008;color:#e9eee5;font-size:15px;line-height:1.5}
.inning-mode .coach-tip[hidden]{display:none}.inning-mode .coach-tip p{margin:0 0 6px}.inning-mode .coach-tip b{color:#f4d491}
.inning-mode .coach-tip kbd{margin-left:6px;padding:0 5px;border:1px solid #9bb6b0aa;border-bottom-width:2px;border-radius:4px;background:linear-gradient(#1f3a44,#142a33);font:600 11px/15px "IBM Plex Mono",ui-monospace,monospace}
.inning-mode .coach-tip::after{content:'';position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:#0f2028;border-right:1px solid #f4d491;border-bottom:1px solid #f4d491;transform:translateX(-50%) rotate(45deg)}
.inning-mode .coach-tip.at-picks{bottom:auto;top:calc(88px + 110px)}.inning-mode .coach-tip.at-picks::after{bottom:auto;top:-7px;transform:translateX(-50%) rotate(225deg)}
.inning-mode .coach-tip.at-pitch{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 110px)}
.inning-mode .coach-skip{background:transparent;border:0;color:#9bb0b8;font-size:12px;padding:2px 0;min-height:0;text-decoration:underline}
.inning-mode .coach-tip.is-pulse{border-color:#8bc6aa;animation:coach-pulse .5s ease-in-out infinite alternate}
@keyframes coach-pulse{from{transform:translateX(-50%) scale(1)}to{transform:translateX(-50%) scale(1.04)}}
@media(prefers-reduced-motion:reduce){.inning-mode .coach-tip.is-pulse{animation:none}}
@media(pointer:coarse){.inning-mode .coach-tip kbd{display:none}}
@media(max-height:500px){.inning-mode .coach-tip{left:auto;right:12px;transform:none;width:300px;bottom:150px}.inning-mode .coach-tip.is-pulse{animation:none}}

.inning-mode .stage-skill{font-style:normal;color:#f4d491;font-weight:600}
.inning-mode .match-lesson{margin:8px auto 0;max-width:34ch;font-size:13px;line-height:1.5;color:#c9d8d3}.inning-mode .match-lesson b{color:#f4d491;margin-right:6px}

/* Keep preparation controls out of the pitch and contact view. */
.inning-mode.is-reading .inning-picks,.inning-mode.is-playing .inning-picks{visibility:hidden;pointer-events:none}

/* Read the batting controls before entering; no coaching overlay during a pitch. */
.inning-mode .match-batting-help{max-width:34ch;padding:12px 16px;border:1px solid #9ab6ac55;border-radius:10px;background:#102732;color:#dce8e1;font-size:14px;line-height:1.5;text-align:left}
.inning-mode .match-batting-help p{margin:0}.inning-mode .match-batting-help p+p{margin-top:5px}
.inning-mode .match-batting-help b{color:#f4d491;margin-right:8px}
.inning-mode .match-intro:has(.match-batting-help){overflow-y:auto;justify-content:safe center;pointer-events:auto;gap:16px;padding:65px 20px 35px}
@media(max-height:650px){.inning-mode .match-intro:has(.match-batting-help){gap:10px;padding-top:55px}.inning-mode .match-crest{width:48px;height:50px;font-size:30px}.inning-mode .match-club{gap:4px}.inning-mode .match-format{margin-top:0}.inning-mode .match-batting-help{font-size:13px;padding:8px 12px}}

.inning-mode .match-intro:has(.match-batting-help)>*{flex-shrink:0}

.inning-mode .match-intro:has(.match-batting-help) .match-own{position:static;margin-top:0}

.inning-mode .batting-pointer{position:fixed;z-index:28;width:36px;height:36px;border:2px solid #ffe0a0;border-radius:50%;box-shadow:0 0 0 1px #172c32aa;transform:translate(-50%,-50%);pointer-events:none}
.inning-mode .batting-pointer.is-loaded{border-width:3px;background:#ffe0a01f}
.inning-mode .batting-pointer.is-power{border-color:#ff9a57;background:#ff9a5726;box-shadow:0 0 0 1px #172c32aa,0 0 12px #ff9a5799}
.inning-mode .batting-pointer.is-cancel{opacity:.25;border-style:dashed}
.inning-mode .batting-cancel-area{position:fixed;z-index:27;bottom:0;left:0;right:0;display:grid;place-items:center;padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;border-top:1px dashed #ffffff70;background:#102732aa;color:#e7ede6;font-size:14px;pointer-events:none}
.inning-mode .batting-cancel-area.is-active{background:#593735d9;color:#fff1df;border-top-style:solid}
.inning-mode .batting-pointer[hidden],.inning-mode .batting-cancel-area[hidden]{display:none}
.inning-mode .batting-help-touch{display:none}
@media(pointer:coarse){.inning-mode .batting-help-touch{display:block}.inning-mode .batting-help-mouse{display:none}}


/* 타격 계획 패널 — 공 사이에만 보인다. 투구가 시작되면 화면을 비운다. */
.inning-mode.is-playing .inning-picks,.inning-mode.is-intro .inning-picks,.inning-mode.is-changing .inning-picks{visibility:hidden}
.inning-mode .inning-options .plan-cut[aria-pressed="true"]{background:#4a3a2c;border-color:#f4b98a;color:#ffe6cf}
