/* 인터벌 러닝 타이머 전용 CSS (2026-10-19). 무대(트랙 한 바퀴 + 안쪽 큰 남은 시간 | 이어지는 구간·합계·버튼) → 운동 지형도 → 9주 계획표 → [프리셋 | 직접 만들기] → [준비·정리 | 소리].
   툴 폭(irtw 컨테이너) 720px 미만은 무대 한 열(트랙 위)·프리셋과 직접 만들기 위아래, 600px 미만은 계획표 세 열(주 = 줄), 520px 미만은 설정 한 열.
   강도 색(--lvc): 1 걷기·쉬기 = muted, 2 가볍게 = accent 옅게, 3 달리기 = accent, 4 강하게 = accent 진하게, 준비·정리 걷기 = 빗금.
   움직임(R45): 주자 점이 트랙을 돌며 칠함, 구간이 바뀌면 무대가 잠깐 물듦, 지형도 차오름. reduced-motion 이면 물듦·전환 없음. 전체 화면(R46): 무대만 */
.irt{container:irtw / inline-size}
.irt [hidden]{display:none !important}
.irt .lv1{--lvc:var(--muted)}
.irt .lv2{--lvc:color-mix(in srgb, var(--accent) 48%, var(--paper))}
.irt .lv3{--lvc:var(--accent)}
.irt .lv4{--lvc:color-mix(in srgb, var(--accent) 72%, var(--ink))}
.irt-help{margin:0;font-family:var(--sans);font-size:12px;line-height:1.55;color:var(--muted)}
.irt-sect{margin:0;font-family:var(--serif);font-size:14px;font-weight:700;color:var(--ink)}

/* ---------- 무대 ---------- */
.irt-stage{--irt-c:var(--line);--irt-t:var(--ink);position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:6px 20px;align-items:center;padding:16px 20px 10px;border-bottom:1px solid var(--soft);background:color-mix(in srgb, var(--wash) 70%, var(--paper));overflow:hidden}
.irt-stage:focus{outline:0}
.irt-stage[data-lv="1"]{--irt-c:var(--muted)}
.irt-stage[data-lv="2"]{--irt-c:color-mix(in srgb, var(--accent) 48%, var(--paper))}
.irt-stage[data-lv="3"]{--irt-c:var(--accent);--irt-t:var(--accent)}
.irt-stage[data-lv="4"]{--irt-c:color-mix(in srgb, var(--accent) 72%, var(--ink));--irt-t:color-mix(in srgb, var(--accent) 72%, var(--ink))}
.irt-stage.is-flip{animation:irt-flip 1s ease-out}
@keyframes irt-flip{0%{background-color:color-mix(in srgb, var(--irt-c) 24%, var(--paper))}}
.irt-trackbox{position:relative;container:irtt / size;aspect-ratio:400 / 230;min-width:0}
.irt-track{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.irt-field{fill:var(--card)}
.irt-band{fill:none;stroke:var(--soft);stroke-width:24}
.irt-lanes{fill:none;stroke:var(--paper);stroke-width:1;stroke-dasharray:4 6}
.irt-lane{fill:none;stroke:var(--irt-c);stroke-width:12;transition:stroke .3s}
.irt-startline{stroke:var(--ink);stroke-width:2.5}
.irt-dot{fill:var(--ink);stroke:var(--paper);stroke-width:3}
.irt-stage[data-phase="run"] .irt-dot,.irt-stage[data-phase="pause"] .irt-dot{fill:var(--irt-c)}
.irt-infield{position:absolute;left:14%;right:14%;top:19%;bottom:19%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6cqh;text-align:center}
.irt-phase{margin:0;max-width:100%;font-family:var(--sans);font-size:max(13px,5.4cqw);font-weight:800;line-height:1.15;color:var(--irt-t);overflow-wrap:anywhere}
.irt-stage[data-phase="idle"] .irt-phase,.irt-stage[data-phase="done"] .irt-phase{color:var(--muted)}
.irt-time{margin:0;font-family:var(--sans);font-weight:800;font-size:21cqw;line-height:1;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
.irt-time.is-long{font-size:15cqw}
.irt-stage[data-phase="pause"] .irt-time{opacity:.5}
.irt-sub{margin:0;min-height:1.2em;max-width:100%;font-family:var(--sans);font-size:max(11.5px,3.5cqw);font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.irt-side{display:flex;flex-direction:column;gap:10px;min-width:0}
.irt-hint{margin:0;font-family:var(--sans);font-size:13px;font-weight:700;color:var(--ink)}
.irt-queue{display:flex;flex-direction:column;gap:3px;margin:0;padding:0;list-style:none}
.irt-queue li{display:flex;align-items:center;gap:8px;min-height:30px;padding-right: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(--muted);overflow:hidden}
.irt-queue li>i{flex:0 0 6px;align-self:stretch;background:var(--lvc,var(--line))}
.irt-queue li>span{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.irt-queue small{font-size:11px;font-weight:600;color:var(--muted)}
.irt-queue b{flex:0 0 auto;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.irt-queue li.is-now{border-color:var(--ink);color:var(--ink);background:linear-gradient(90deg, color-mix(in srgb, var(--lvc,var(--line)) 20%, var(--paper)) var(--p,0%), var(--paper) var(--p,0%))}
.irt-queue li.is-more{justify-content:center;padding:0 10px;border-style:dashed;background:transparent;font-weight:500}
.irt-tot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}
.irt-tot>div{min-width:0;padding:6px 8px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper)}
.irt-tot dt{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--muted)}
.irt-tot dd{margin:2px 0 0;font-family:var(--sans);font-size:15px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.irt-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.irt-ctrl{display:flex;flex-wrap:wrap;gap:6px}
.irt-ctrl .v2-btn{flex:1 1 auto;justify-content:center}
.irt-ctrl .irt-start{flex:2.2 1 110px;font-size:14px}
.irt-live{grid-column:1 / -1;margin:0;min-height:18px;font-family:var(--sans);font-size:12.5px;color:var(--muted);text-align:center}
.irt-fullhint{display:none;grid-column:1 / -1;margin:0;font-family:var(--sans);font-size:12px;color:var(--muted);text-align:center}
.irt-hatch,.irt .is-edge{--lvc:repeating-linear-gradient(135deg, var(--muted) 0 1.5px, transparent 1.5px 4.5px)}
.irt-queue li.is-edge>i{background:repeating-linear-gradient(135deg, var(--muted) 0 1.5px, transparent 1.5px 4.5px)}
/* 전체 화면: 무대만, 트랙은 화면 높이에 맞춤 */
.irt-stage:fullscreen,.irt-stage.is-full{grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);align-content:center;gap:2vh 3vw;padding:4vh 4vw;background:var(--paper);border:0}
.irt-stage.is-full{position:fixed;inset:0;z-index:1000}
.irt-stage:fullscreen .irt-trackbox,.irt-stage.is-full .irt-trackbox{width:min(100%,128vh);align-self:center}
.irt-stage:fullscreen .irt-fullhint,.irt-stage.is-full .irt-fullhint{display:block}
html.irt-noscroll{overflow:hidden}
@media (orientation:portrait){
  .irt-stage:fullscreen,.irt-stage.is-full{grid-template-columns:minmax(0,1fr)}
}

/* ---------- 이어서 하기 ---------- */
.irt-restore{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid var(--soft);background:var(--accent-wash)}
.irt-restore p{flex:1 1 220px;margin:0;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink)}

/* ---------- 운동 지형도 ---------- */
.irt-profwrap{padding:12px 18px 12px;border-bottom:1px solid var(--soft)}
.irt-profhead{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.irt-profname{font-family:var(--serif);font-size:14px;font-weight:700;color:var(--ink)}
.irt-profsum{flex:1 1 auto;font-family:var(--sans);font-size:12.5px;color:var(--muted)}
.irt-link{height:30px}
.irt-prof{position:relative;height:64px;margin:12px 0 0;border-bottom:1px solid var(--line)}
.irt-bars{position:absolute;inset:0}
.irt-bars i{position:absolute;bottom:0;background:var(--lvc);box-shadow:inset -1px 0 0 var(--card)}
.irt-bars i.lv1{height:25%}
.irt-bars i.lv2{height:50%}
.irt-bars i.lv3{height:75%}
.irt-bars i.lv4{height:100%}
.irt-bars i.is-edge{background:repeating-linear-gradient(135deg, var(--muted) 0 1.5px, transparent 1.5px 4.5px)}
.irt-base{opacity:.3}
.irt-fill{position:absolute;inset:0;clip-path:inset(0 100% 0 0)}
.irt-head{display:none;position:absolute;top:-5px;bottom:-5px;width:2px;margin-left:-1px;background:var(--ink)}
.irt-prof.is-run .irt-head{display:block}
.irt-ticks{position:relative;height:16px;margin-top:4px}
.irt-ticks span{position:absolute;top:0;transform:translateX(-50%);font-family:var(--sans);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.irt-ticks span:first-child{transform:none}
.irt-ticks span.is-end{transform:translateX(-100%);font-weight:700;color:var(--ink)}
.irt-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;padding:0;list-style:none;font-family:var(--sans);font-size:12px;color:var(--muted)}
.irt-legend li{display:flex;align-items:center;gap:5px}
.irt-legend i{width:10px;height:10px;background:var(--lvc)}
.irt-legend li.is-edge i{background:repeating-linear-gradient(135deg, var(--muted) 0 1.5px, transparent 1.5px 4.5px)}
.irt-legend b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- 9주 계획표 ---------- */
.irt-plan{padding:14px 18px 14px;border-bottom:1px solid var(--soft)}
.irt-planhead{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.irt-gridsum{flex:1 1 auto;font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--ink)}
.irt-clear{height:30px}
.irt-grid{display:grid;grid-template-columns:max-content repeat(9,minmax(0,1fr));gap:5px;margin:10px 0 8px}
.irt-gh{display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap}
.irt-g0{grid-column:1;grid-row:1}
.irt-gw{grid-column:calc(var(--w) + 1);grid-row:1}
.irt-gr{grid-column:1;grid-row:calc(var(--r) + 1);padding-right:2px}
.irt-cell{grid-column:calc(var(--w) + 1);grid-row:calc(var(--r) + 1);display:flex;flex-direction:column;gap:4px;min-width:0;padding:6px 6px 5px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper);font-family:var(--sans);text-align:left;cursor:pointer;transition:background var(--ease)}
.irt-cell:hover:not(:disabled){background:var(--btn)}
.irt-cell[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.irt-cell:disabled{cursor:not-allowed}
.irt-cell:disabled:not([aria-pressed="true"]){opacity:.5}
.irt-cell svg,.irt-pre svg{display:block;width:100%;height:22px}
.irt-ct{display:flex;align-items:baseline;justify-content:space-between;gap:2px;font-size:11.5px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.irt-ck{display:none;font-style:normal;font-size:11px;font-weight:800;color:var(--accent)}
.irt-cell.is-done{background:var(--accent-wash)}
.irt-cell.is-done .irt-ck{display:inline}
.irt-cell.is-next{border-style:dashed;border-color:var(--accent)}
.irt-cell.is-next[aria-pressed="true"]{border-style:solid;border-color:var(--ink)}
.irt rect.lv1{fill:var(--muted);opacity:.45}
.irt rect.lv2{fill:color-mix(in srgb, var(--accent) 48%, var(--paper))}
.irt rect.lv3{fill:var(--accent)}
.irt rect.lv4{fill:color-mix(in srgb, var(--accent) 72%, var(--ink))}

/* ---------- 설정 ---------- */
.irt-set{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);border-bottom:1px solid var(--soft)}
.irt-set2{grid-template-columns:repeat(2,minmax(0,1fr))}
.irt-group{display:flex;flex-direction:column;gap:12px;min-width:0;padding:14px 16px 16px}
.irt-group + .irt-group{border-left:1px solid var(--soft)}
.irt-group .v2-f>.v2-label{display:block;margin-bottom:5px}
.irt-seg{display:flex;flex-wrap:wrap}
.irt-seg button{padding:0 9px}
.irt-seg button:disabled{opacity:.45;cursor:not-allowed}
.irt-pres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.irt-pre{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px 9px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper);font-family:var(--sans);text-align:left;cursor:pointer;transition:background var(--ease)}
.irt-pre:hover:not(:disabled){background:var(--btn)}
.irt-pre[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.irt-pre:disabled{cursor:not-allowed}
.irt-pre:disabled:not([aria-pressed="true"]){opacity:.5}
.irt-pre b{font-size:13px;color:var(--ink)}
.irt-pre span{font-size:11.5px;line-height:1.45;color:var(--muted)}
.irt-pre svg{margin-top:auto}
.irt-pre em{font-style:normal;font-size:11.5px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.irt-my.is-on{background:var(--accent-wash)}
.irt-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.irt-setsin{width:calc(50% - 3px)}
.irt-formula{margin:0;font-family:var(--sans);font-size:12px;line-height:1.5;color:var(--muted);font-variant-numeric:tabular-nums}
.irt-my input:disabled{opacity:.5}
.irt-sndrow{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px}
.irt-sndrow>#irtTest{height:30px}
.irt-vol{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.irt-vol>.v2-label{flex-basis:100%}
.irt-vol input[type=range]{flex:1 1 120px;min-width:0;height:28px;margin:0;accent-color:var(--accent)}
.irt-vol input[type=range]:disabled{opacity:.45}
.irt-vol output{min-width:40px;font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.irt-foot{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-height:12px;padding:8px 18px 10px}
.irt-lock{flex:1 1 100%}

@container irtw (max-width:719px){
  .irt-stage{grid-template-columns:minmax(0,1fr);padding:14px 16px 8px}
  .irt-trackbox{width:min(100%,560px);align-self:center}
  .irt-set{grid-template-columns:minmax(0,1fr)}
  .irt-set:not(.irt-set2) .irt-group + .irt-group{border-left:0;border-top:1px solid var(--soft)}
}
@container irtw (max-width:599px){
  .irt-grid{grid-template-columns:max-content repeat(3,minmax(0,1fr))}
  .irt-gw{grid-column:1;grid-row:calc(var(--w) + 1);justify-content:flex-start;padding-right:4px}
  .irt-gr{grid-column:calc(var(--r) + 1);grid-row:1;padding:0}
  .irt-cell{grid-column:calc(var(--r) + 1);grid-row:calc(var(--w) + 1);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
}
@container irtw (max-width:519px){
  .irt-set2{grid-template-columns:minmax(0,1fr)}
  .irt-set2 .irt-group + .irt-group{border-left:0;border-top:1px solid var(--soft)}
  .irt-pres{grid-template-columns:minmax(0,1fr)}
  .irt-pre{display:grid;grid-template-columns:minmax(0,1fr) 92px;grid-template-rows:auto auto;gap:2px 10px;align-items:center}
  .irt-pre b{grid-column:1;grid-row:1}
  .irt-pre span{grid-column:1;grid-row:2}
  .irt-pre svg{grid-column:2;grid-row:1;margin:0}
  .irt-pre em{grid-column:2;grid-row:2;text-align:right}
  .irt-ctrl .irt-start{flex-basis:100%}
  .irt-profwrap,.irt-plan{padding-left:14px;padding-right:14px}
  .irt-group{padding-left:14px;padding-right:14px}
}
@media (prefers-reduced-motion:reduce){
  .irt-stage.is-flip{animation:none}
  .irt-lane,.irt-cell,.irt-pre{transition:none}
}
