/* Isolate staff workspace headers from the legacy global header flex layout. */
#staff-work-root > .sw-hero{display:block;position:static;height:auto;min-height:0;max-width:none;background:transparent;border:0;border-radius:0;padding:8px 0 18px;box-shadow:none}
#staff-work-root > .sw-hero h2{margin:6px 0 8px;text-align:left;max-width:none}
#staff-work-root > .sw-hero p{display:block;text-align:left;max-width:none}
#staff-work-root > .sw-hero .sw-kicker{margin:0}
@media(max-width:600px){#staff-work-root > .sw-hero h2{font-size:26px;line-height:1.3}#staff-work-root > .sw-hero p:not(.sw-kicker){font-size:14px}}

/* Attendance tags (예약·참여·미참여·체험·현장) shared by staff and member screens. */
.status-tag.att-attended{background:#e4f630;color:#17191b;border-color:#e4f630}
.status-tag.att-noshow{background:#4a2323;color:#ffd7d2;border-color:#7a3a33}
.status-tag.att-booked{background:#26302b;color:#dfe8dc}
.status-tag.att-trial{background:#243449;color:#cfe3ff;border-color:#3d5a80}
.status-tag.att-walkin{background:#3a3222;color:#ffe7b3;border-color:#6b5a33}
.status-tag.att-over{background:#3b2a3f;color:#f1d4ff}
.attendance-log{margin-top:12px;font-size:13px;color:#c5cdbf}.attendance-log ol{margin:8px 0 0;padding-left:18px}.attendance-log li{margin:3px 0}
/* Staff Today: class-first roster */
#staff-work-root .sw-classes{display:block}#staff-work-root .sw-classes>*{margin:0 0 12px}#staff-work-root .sw-classes .sw-help .sw-card{margin-top:10px}
.sw-classes .sw-class{border-left:3px solid #4b5448}.sw-classes .sw-class.sw-mine{border-left-color:#e4f630}
.sw-classes h4 small{font-size:12px;color:#17191b;background:#e4f630;border-radius:4px;padding:1px 6px;margin-left:6px}
.sw-roster{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.sw-roster li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:7px 10px;background:#1b2020;border:1px solid #2f3632;border-radius:8px}
.sw-roster .sw-name{font-weight:700;min-width:84px}
.sw-att{font-size:12px;border-radius:999px;padding:2px 9px;background:#2b322e;color:#dfe8dc;border:1px solid #454d47}
.sw-att-attended{background:#e4f630;color:#17191b;border-color:#e4f630}.sw-att-noshow{background:#4a2323;color:#ffd7d2;border-color:#7a3a33}
.sw-att-trial{background:#243449;color:#cfe3ff;border-color:#3d5a80}.sw-att-walkin{background:#3a3222;color:#ffe7b3;border-color:#6b5a33}.sw-att-consult{background:#34263f;color:#ecd6ff;border-color:#5b4270}
.sw-roster .sw-link{margin-left:auto}
/* 설정 → 시스템 */
.set-form{display:grid;gap:18px}.set-group{position:relative;margin-bottom:18px}
/* The group chip stays in normal flow: body.manager-page .surface padding (workspace.css) overrides any padding-top kept for an absolute chip, so the chip covered the first row (owner report 2026-10-07). */
.set-chip{display:block;width:fit-content;margin:0 0 4px;font-size:12px;font-weight:700;color:#17191b;background:#e4f630;border-radius:5px;padding:3px 10px}
.set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px 22px}
.set-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #2f3632}
.set-item strong{display:block;font-size:15px;word-break:keep-all}.set-item p{margin:4px 0 0;font-size:12px;color:#a6aaa7;line-height:1.45;word-break:keep-all}
.set-number{display:flex;align-items:center;gap:6px;white-space:nowrap}.set-number input{width:84px}.set-number em{font-style:normal;font-size:12px;color:#c5cdbf}
.set-item select{max-width:190px}
.set-item input.set-text{width:150px;max-width:46vw;font-variant-numeric:tabular-nums}
.set-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}.set-toggle input{position:absolute;opacity:0;width:1px;height:1px}
.set-switch{width:46px;height:26px;border-radius:999px;background:#3a403c;position:relative;transition:background .15s}.set-switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#f4f5f0;transition:left .15s}
.set-toggle input:checked+.set-switch{background:#e4f630}.set-toggle input:checked+.set-switch::after{left:23px;background:#17191b}.set-toggle input:focus-visible+.set-switch{outline:2px solid #e4f630;outline-offset:2px}
.set-toggle-text{font-size:13px;color:#c5cdbf}
.set-save{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;background:#1b1f20;border:1px solid #343a38;border-radius:10px;z-index:2}
.set-actions{margin:10px 0}.set-actions a.primary{display:inline-block;padding:10px 16px;border-radius:8px;background:#e4f630;color:#17191b;font-weight:700;text-decoration:none}
.set-devices,.set-history{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}
.set-devices li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid #2f3632;border-radius:8px}.set-devices span{display:block;font-size:12px;color:#a6aaa7}
.set-history>li{padding:10px 12px;border:1px solid #2f3632;border-radius:8px}.set-history span{font-size:12px;color:#a6aaa7}.set-history ul{margin:6px 0 0;padding-left:18px;font-size:13px}
@media(max-width:600px){.set-item{flex-direction:column;align-items:flex-start}.set-save{flex-direction:column;align-items:stretch}}
/* Registered tablet: return to check-in */
.kiosk-return{position:fixed;right:20px;bottom:20px;z-index:60;display:inline-flex;align-items:center;gap:8px;padding:15px 22px;border-radius:999px;background:linear-gradient(180deg,#f0ff55,#d3e81a);color:#17191b;font-weight:800;font-size:16px;text-decoration:none;box-shadow:0 12px 30px rgba(0,0,0,.45)}
.kiosk-return::before{content:"\2190"}
/* Tablet lock PIN */
.set-pin{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:14px 0;border-bottom:1px solid #2f3632;margin-bottom:12px}
.set-pin strong{display:block;font-size:15px}.set-pin p{margin:4px 0 0;font-size:12px;color:#a6aaa7}
.set-pin-fields{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.set-pin-fields input{width:118px;letter-spacing:4px;text-align:center}
.set-pin [data-pin-message]{flex-basis:100%;margin:0}
.ops-dropin{margin-top:14px}.ops-dropin h2 b{font-weight:700;margin-left:6px}.dropin-warn{color:#c2410c}
.dropin-alerts,.dropin-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:6px}.dropin-alerts li,.dropin-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px}
.dropin-alerts li{padding:8px 10px;border-radius:10px;background:rgba(234,88,12,.08)}
.dropin-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;align-items:end;margin-top:10px}.dropin-form label{display:grid;gap:4px;font-size:12px}.dropin-form input,.dropin-form select{min-width:0}
/* 설정 → 시스템 → 센터 장비 (WOD review reference list) */
.set-group textarea.set-equipment{display:block;width:100%;min-height:320px;margin-top:10px;font-variant-numeric:tabular-nums;line-height:1.7;resize:vertical}
.set-group textarea.set-equipment[readonly]{opacity:.72;cursor:default}
/* WOD editor: one table for PEAK · BUILD · START (2026-10-02). Wide screens show every level; phones show one level tab. */
.wodt{margin:12px 0 4px}
.wodt-tabs{display:none;gap:6px;margin-bottom:8px}
.wodt-tabs button{flex:1;padding:8px 0;border-radius:8px;font-weight:700}
.wodt-tabs button[aria-selected=true]{background:#e4f630;color:#121415;border-color:#e4f630}
.wodt-scroll{overflow-x:auto;padding-bottom:2px}
.wodt-table{width:100%;border-collapse:separate;border-spacing:0 6px;min-width:900px}
.wodt-table th{font-size:11px;color:var(--muted);font-weight:700;text-align:left;padding:0 4px;white-space:nowrap}
.wodt-table th.wodt-lv{font-size:12px;letter-spacing:2px;text-align:center;color:#121415;border-radius:8px 8px 0 0;padding:4px 0}
.wodt-table th.wodt-lv.wodt-peak{background:#e4f630}.wodt-table th.wodt-lv.wodt-build{background:#9fe0c0}.wodt-table th.wodt-lv.wodt-start{background:#ffb86b}
.wodt-table td{padding:0 3px;vertical-align:top}
.wodt-table input{width:100%;min-width:0;padding:7px 8px;margin:0}
.wodt-table td.wodt-peak input,.wodt-table td.wodt-build input,.wodt-table td.wodt-start input{width:74px}
.wodt-num{width:22px;color:var(--muted);font-size:12px;padding-top:9px!important;text-align:right}
.wodt-mv{min-width:200px}
.wodt-mvline{display:flex;gap:4px;align-items:center}
.wodt-ovbtn{flex:none;padding:6px 7px!important;font-size:11px!important;border-radius:7px!important}
.wodt-ov{display:none;margin-top:6px;gap:4px;flex-direction:column}
.wodt-table tr.ov-open .wodt-ov{display:flex}
.wodt-ov label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin:0}
.wodt-ov label span{width:62px;flex:none;font-weight:700}
.wodt-sep{border-left:2px solid var(--line);padding-left:6px!important}
.wodt-table input.sg{border-color:#e4f630;box-shadow:0 0 0 1px rgba(228,246,48,.35)}
.wodt-table input::placeholder{font-style:italic}
.wodt-ctl{white-space:nowrap}
.wodt-ctl button{padding:5px 8px!important;font-size:12px!important;border-radius:7px!important;margin-left:2px}
.wodt-ctl button:disabled{opacity:.35;cursor:not-allowed}
.wodt-actions{margin-top:4px}
.wodt-more,.wodt-phone,.tvw-rule-copy{display:none}
#tv-wod-form [hidden]{display:none!important}
.tvw-help{margin-top:6px}.tvw-help summary{cursor:pointer;color:var(--muted);font-size:13px;padding:4px 0}
.score-note{margin:2px 0 0;padding:10px 12px;border-radius:10px;background:rgba(228,246,48,.08);border:1px solid rgba(228,246,48,.35);font-size:14px;line-height:1.5}.score-note b{margin-right:8px;color:#e4f630}
/* Phones: one line per movement (name + the chosen level's reps); men / women only for loaded movements; edit buttons behind ⋯ */
@media(max-width:760px){
  #tv-wod-form .tvw-head-grid{grid-template-columns:1fr 1fr;gap:0 10px}
  #tv-wod-form .tvw-head-grid label{margin-bottom:10px}
  #tv-wod-form .tvw-head-grid input,#tv-wod-form .tvw-head-grid select{padding:9px 10px;min-height:40px;margin-top:4px}
  #tv-wod-form .tvw-rule{display:none}
  #tv-wod-form .tvw-rule-copy{display:block}
  #tv-wod-form .tvw-status{margin:6px 0 8px}
  .wodt[data-show=peak] .wodt-ov label:not(.ov-peak),.wodt[data-show=build] .wodt-ov label:not(.ov-build),.wodt[data-show=start] .wodt-ov label:not(.ov-start){display:none}
  /* level-only movement: shown on the tab of that level, or while the coach opened it from ⋯ */
  .wodt[data-show=peak] tr[data-ov~=peak] .wodt-ov,.wodt[data-show=build] tr[data-ov~=build] .wodt-ov,.wodt[data-show=start] tr[data-ov~=start] .wodt-ov{display:flex}
  .wodt[data-show=peak] tr:not([data-ov~=peak]):not(.ov-forced) .wodt-ov,.wodt[data-show=build] tr:not([data-ov~=build]):not(.ov-forced) .wodt-ov,.wodt[data-show=start] tr:not([data-ov~=start]):not(.ov-forced) .wodt-ov{display:none}
  .wodt-tabs{display:flex}
  .wodt-scroll{overflow:visible}
  .wodt-table,.wodt-table tbody{display:block;min-width:0}
  .wodt-table thead{display:none}
  .wodt-table tr{display:grid;grid-template-columns:16px minmax(0,1fr) 78px;gap:4px 6px;align-items:start;padding:5px 0;border-bottom:1px solid var(--line)}
  .wodt-table td{padding:0!important;border:0!important}
  .wodt-num{grid-column:1;grid-row:1;padding-top:10px!important;text-align:left}
  .wodt-mv{grid-column:2;grid-row:1;min-width:0}
  .wodt-mvline>input{min-width:0;flex:1}
  .wodt-ovbtn{display:none}
  .wodt-more{display:inline-block;flex:none;padding:6px 10px!important;border-radius:7px!important;font-weight:800}
  .wodt-table td[data-k=reps]{grid-column:3;grid-row:1}
  .wodt-table td[data-k=m]{grid-column:2;grid-row:2}
  .wodt-table td[data-k=f]{grid-column:3;grid-row:2}
  .wodt-table td[data-k=m],.wodt-table td[data-k=f]{display:flex;align-items:center;gap:4px}
  .wodt-table td[data-k=m]::before,.wodt-table td[data-k=f]::before{content:attr(data-label);font-size:11px;color:var(--muted);flex:none}
  .wodt-table tr:not(.needs-load) td[data-k=m],.wodt-table tr:not(.needs-load) td[data-k=f]{display:none!important}
  .wodt-table td.wodt-peak input,.wodt-table td.wodt-build input,.wodt-table td.wodt-start input{width:100%}
  .wodt-ctl{display:none!important;grid-column:1/-1;grid-row:3}
  .wodt-table tr.more-open .wodt-ctl{display:flex!important;gap:6px;flex-wrap:wrap}
  .wodt-table tr.more-open .wodt-ctl button{margin:0!important}
  .wodt-phone{display:inline-block}
  .wodt[data-show=peak] .wodt-build,.wodt[data-show=peak] .wodt-start,.wodt[data-show=build] .wodt-peak,.wodt[data-show=build] .wodt-start,.wodt[data-show=start] .wodt-peak,.wodt[data-show=start] .wodt-build{display:none!important}
}

/* WOD editor: A strength part and common reps (owner feedback 2026-10-05) */
.tvw-strength{margin:8px 0 6px;border:1px solid var(--line);border-radius:10px;padding:6px 12px}
.tvw-strength summary{cursor:pointer;font-size:13px;font-weight:700;padding:4px 0}
.tvw-strength-grid{margin-top:4px}
.tvw-strength .fine{margin:0 0 6px}
/* 측정 종목 (owner 2026-10-08, 운동 프로필 v3): one toggle row per test, 44px touch rows, one column on phones */
.tvw-challenge{display:flex;align-items:center;gap:10px;min-height:44px;margin:8px 0 0;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;font-weight:700;cursor:pointer}
.tvw-challenge-note{margin:4px 2px 0}
.tvw-extwod{display:grid;gap:4px;margin:8px 0 0}
.tvw-bench{margin:8px 0 6px;border:1px solid var(--line);border-radius:10px;padding:6px 12px}
.tvw-bench summary{cursor:pointer;font-size:13px;font-weight:700;padding:4px 0}
.tvw-bench-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin-top:4px}
.tvw-bench-item{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;padding:0;font-size:14px;white-space:nowrap;cursor:pointer}
.tvw-bench-item input{width:20px;height:20px;margin:0;flex:none}
.tvw-bench .fine{margin:2px 0 6px;word-break:keep-all}
@media(max-width:760px){.tvw-bench-list{grid-template-columns:1fr}}
/* 운동인 평균 예상 기록 (owner 2026-10-08): advisory box under the WOD table, filled as the coach types */
.tvw-expect{margin:8px 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.tvw-expect:empty{display:none}
.tvw-expect-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:0 0 6px}
.tvw-expect-h b{font-size:14px}
.tvw-expect-h span{font-size:12px;color:var(--muted)}
.tvw-expect-t{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}
.tvw-expect-t th,.tvw-expect-t td{padding:6px 8px;border-top:1px solid var(--line);text-align:left;vertical-align:top;word-break:keep-all}
.tvw-expect-t thead th{border-top:0;padding-top:0;font-size:12px;font-weight:600;color:var(--muted)}
.tvw-expect-t tbody th{width:64px;font-size:12px;font-weight:700;letter-spacing:.04em}
.tvw-expect-t td b{display:block;font-size:16px;line-height:1.3}
.tvw-expect-t td small{display:block;font-size:12px;color:var(--muted)}
.tvw-expect-t td em{display:inline-block;margin-top:2px;font-size:12px;font-style:normal;font-weight:700;color:#ffb36b}
.tvw-expect .fine{margin:6px 0 0;word-break:keep-all}
.tvw-expect .tvw-expect-warn{color:#ffb36b}
.tvw-common{display:block;margin:4px 0 10px}
.tvw-common input{max-width:260px}
.tvw-common .fine{display:block;font-weight:400;margin-top:4px}
@media(max-width:760px){.tvw-strength-grid{grid-template-columns:1fr 1fr;gap:0 10px}.tvw-common input{max-width:none}}
/* WOD editor (handoff 2026-10-08): rounds / sets / rest fields, a load unit per line, men's / women's reps, and a stacked
   table when the editor is narrower than the full table (970px screens): no sideways scroll, PEAK / BUILD / START under
   the movement. Phones (≤760px) keep their one-level tabs. */
.tvw-struct-grid{margin-top:2px}
.tvw-rounds{display:flex;gap:6px;margin-top:4px}.tvw-rounds input{min-width:0;flex:1;margin:0}
.tvw-struct-grid .fine{display:block;font-weight:400;margin-top:4px}
.tvw-unitwarn{color:#ffb86b;font-weight:600;margin:2px 0 8px}
/* 개인 / 팀 와드 (owner 2026-10-07 23:10): team size, odd-headcount plan and the per-class split line */
.tvw-team-grid{margin-top:2px}
.tvw-rule-ex{display:block;margin-top:4px;font-weight:400;word-break:keep-all}
.tvw-team-plan{margin:0 0 10px;padding:8px 10px;border-radius:8px;border:1px dashed rgba(228,246,48,.35);color:#d6dccb;font-weight:600}
/* Phones (UX standard, owner 2026-10-08): the new fields go one per row; only the two short number fields (세트 수 ·
   세트 간 휴식) share a row, bottom-aligned so the boxes line up even when a label wraps; same box height as the head
   grid; the movement name gets the whole line (no cut-off names); the row menu and the load unit sit under it. */
@media(max-width:760px){
  #tv-wod-form .tvw-team-grid{grid-template-columns:1fr;gap:0}
  #tv-wod-form .tvw-struct-grid{grid-template-columns:1fr 1fr;gap:0 10px;align-items:end}
  #tv-wod-form .tvw-struct-grid>[data-rounds-field]{grid-column:1/-1}
  #tv-wod-form .tvw-struct-grid label,#tv-wod-form .tvw-team-grid label{margin-bottom:10px;min-width:0}
  #tv-wod-form .tvw-struct-grid input,#tv-wod-form .tvw-team-grid select{width:100%;padding:9px 10px;min-height:40px;margin-top:4px}
  #tv-wod-form .tvw-rounds input{padding:9px 8px;min-height:40px}
  #tv-wod-form .tvw-team-plan{margin-top:-2px}
  .wodt-mvline{flex-wrap:wrap}
  .wodt-mvline>input{flex:1 1 100%}
  .wodt-more{order:1;margin-top:2px}
  .wodt-unit{order:2;flex:0 0 auto;width:auto;min-width:64px;margin-top:2px}
}
.wodt{container-type:inline-size;container-name:wodt}
.wodt-unit{flex:none;width:auto;min-width:0;margin:0;padding:6px 4px!important;font-size:12px;border-radius:7px}
.wodt-rs{display:flex;align-items:center;gap:4px;min-width:0}
.wodt-g{display:none;flex:none;font-style:normal;font-size:11px;font-weight:700;color:var(--muted)}
.wodt-table tr.rf-open .wodt-g{display:inline}
.wodt-rfw{display:none;margin-top:4px}
.wodt-table tr.rf-open .wodt-rfw{display:flex}
.wodt-table tr.rf-open .wodt-rfbtn{background:#e4f630;color:#121415;border-color:#e4f630}
/* Wide editors keep the one-line table; the unit select and the 남·여 button fit by slimmer cells. */
@container wodt (min-width:1050px){.wodt-table{min-width:0}.wodt-mv{min-width:250px}.wodt-unit{width:58px}.wodt-table td.wodt-peak input,.wodt-table td.wodt-build input,.wodt-table td.wodt-start input{width:64px}.wodt-ctl button{padding:5px 7px!important}}
@media(min-width:761px){@container wodt (max-width:1049px){
  .wodt-scroll{overflow:visible}
  .wodt-table,.wodt-table tbody{display:block;min-width:0}
  .wodt-table thead{display:none}
  .wodt-table tr{display:grid;grid-template-columns:22px minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr) auto;gap:5px 8px;align-items:start;padding:8px 0;border-bottom:1px solid var(--line)}
  .wodt-table td{padding:0!important}
  .wodt-table td.wodt-sep{border-left:0;padding-left:0!important}
  .wodt-num{grid-column:1;grid-row:1;padding-top:9px!important}
  .wodt-mv{grid-column:2/5;grid-row:1;min-width:0}
  .wodt-mvline>input{min-width:0;flex:1}
  .wodt-ctl{grid-column:5;grid-row:1}
  .wodt-table td.wodt-peak{grid-row:2}.wodt-table td.wodt-build{grid-row:3}.wodt-table td.wodt-start{grid-row:4}
  .wodt-table td[data-k=reps]{grid-column:2;display:grid;grid-template-columns:58px minmax(0,1fr);gap:4px 6px;align-items:center}
  .wodt-table td[data-k=m]{grid-column:3}.wodt-table td[data-k=f]{grid-column:4}
  .wodt-table td.wodt-peak input,.wodt-table td.wodt-build input,.wodt-table td.wodt-start input{width:100%}
  .wodt-table td[data-k=reps]::before{grid-row:1/3;align-self:start;font-size:11px;font-weight:800;letter-spacing:1px;border-radius:6px;text-align:center;padding:8px 0;color:#121415}
  .wodt-table td.wodt-peak[data-k=reps]::before{content:'PEAK';background:#e4f630}
  .wodt-table td.wodt-build[data-k=reps]::before{content:'BUILD';background:#9fe0c0}
  .wodt-table td.wodt-start[data-k=reps]::before{content:'START';background:#ffb86b}
  .wodt-table td[data-k=reps] .wodt-rs{grid-column:2}.wodt-table td[data-k=reps] .wodt-rfw{margin-top:0}
  .wodt-table td[data-k=m],.wodt-table td[data-k=f]{display:flex;align-items:center;gap:4px}
  .wodt-table td[data-k=m]::before,.wodt-table td[data-k=f]::before{content:attr(data-label);font-size:11px;color:var(--muted);flex:none}
  .wodt-table tr:not(.needs-load) td[data-k=m],.wodt-table tr:not(.needs-load) td[data-k=f]{visibility:hidden}
}}

/* 개인 운동 기록 (member 운동 기록 tab, right side; owner request 2026-10-02) */
.log-switch{margin:4px 0 18px}
.personal-log [hidden]{display:none!important}
.pl-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pl-head h2{margin:0;font-size:20px}
.pl-head button{min-width:44px;padding:8px 12px!important;margin:0!important;font-size:18px!important;line-height:1}
.pl-head button:disabled{opacity:.35}
.pl-summary{margin:6px 0 12px;color:var(--muted);font-size:13px}
.pl-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.pl-dow{text-align:center;font-size:11px;color:var(--muted);padding:2px 0}
.pl-dow.sun{color:#ff9a9a}.pl-dow.sat{color:#9ac0ff}
.pl-day{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:48px;padding:7px 0 5px!important;margin:0!important;border:1px solid transparent!important;border-radius:10px!important;background:#1c2021!important;color:var(--paper)!important;font-size:14px!important;font-weight:700;cursor:pointer}
.pl-day.today{border-color:#6a716e!important}
.pl-day.sel{border-color:var(--lime)!important;background:#272d1a!important}
.pl-day.future{opacity:.4}
.pl-dots{display:flex;gap:3px;height:6px}
.pl-dots b,.pl-legend b{display:inline-block;width:6px;height:6px;border-radius:50%}
.pl-dots b.c,.pl-legend b.c{background:var(--lime)}
.pl-dots b.m,.pl-legend b.m{background:#6fc3ff}
.pl-legend{display:flex;gap:14px;font-size:12px;color:var(--muted);margin:8px 0 14px}
.pl-legend span{display:inline-flex;align-items:center;gap:5px}
.pl-dayview{border-top:1px solid var(--line);padding-top:12px}
.pl-dayhead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pl-dayhead h3{margin:0;font-size:17px}
.pl-dayhead .primary{padding:9px 14px!important;font-size:13px!important;margin:0!important}
.pl-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.pl-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#1c2021}
.pl-item>div{flex:1;min-width:0}
.pl-item b{display:block;font-size:15px;overflow-wrap:anywhere}
.pl-item p{margin:3px 0 0;font-size:13px;color:#c9d2cc}
.pl-item .pl-memo{white-space:pre-wrap;color:var(--muted);overflow-wrap:anywhere}
.pl-tag{flex:none;font-size:11px;font-weight:800;padding:3px 8px;border-radius:999px;background:#22384a;color:#bfe3ff}
.pl-item.center .pl-tag{background:#3a4116;color:var(--lime)}
.pl-acts{display:flex;flex-direction:column;gap:4px}
.pl-acts button{padding:5px 10px!important;font-size:12px!important;margin:0!important}
.pl-empty{margin:10px 0}
.pl-form{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#171b1c}
.pl-form h4{margin:0 0 8px;font-size:15px}
.pl-form label{margin-bottom:10px}
.pl-kinds{border:0;padding:0;margin:2px 0 12px;display:flex;flex-wrap:wrap;gap:6px}
.pl-kinds legend{font-size:12px;font-weight:700;margin-bottom:6px;padding:0}
.pl-kinds label{margin:0;position:relative}
.pl-kinds input{position:absolute;opacity:0;width:1px;height:1px}
.pl-kinds span{display:inline-block;padding:7px 12px;border:1px solid #545a58;border-radius:999px;font-size:13px;cursor:pointer}
.pl-kinds input:checked+span{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.pl-kinds input:focus-visible+span{outline:2px solid var(--lime);outline-offset:2px}
.pl-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pl-error{color:#ff9b9b;font-size:13px;margin:4px 0}
.pl-error:empty{display:none}
.pl-race-row{display:flex;align-items:center;gap:10px;margin:0 0 12px;flex-wrap:wrap}
.pl-race-row .primary{margin:0!important;padding:10px 16px!important}
.pl-splits{margin-top:6px;font-size:13px}.pl-splits summary{cursor:pointer;color:#bfe3ff}
.pl-splits ol{list-style:none;margin:6px 0 0;padding:0}
.pl-splits li{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid #262b2c;font-variant-numeric:tabular-nums}
.pl-splits li.run span{color:#9fd6ff}
.pl-splits li span,.race-splits li span{min-width:0}.pl-splits li b,.race-splits li b{flex:none;white-space:nowrap;margin-left:8px}
.pl-item.race .pl-tag{background:#4a2f12;color:#ffb36b}
.race-entry{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}

/* 레이스 모드 (owner request 2026-10-02): full-screen, one big tap target, orange once the goal has passed */
body.race-open{overflow:hidden}
.race-overlay{position:fixed;inset:0;z-index:1000;background:#0d1011;color:var(--paper);overflow-y:auto;-webkit-overflow-scrolling:touch}
.race-overlay[hidden],.race-overlay [hidden]{display:none!important}
.race-inner{min-height:100%;max-width:560px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));display:flex;flex-direction:column}
.race-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.race-head h2{margin:0;font-size:18px;line-height:1.3}
.race-head button{padding:8px 12px!important;margin:0!important;flex:none}
.race-new{width:100%;margin:6px 0 4px!important}
.race-group h3{font-size:13px;color:var(--muted);margin:16px 0 6px}
.race-card-wrap{display:flex;gap:6px;align-items:stretch;margin-bottom:8px}
.race-card{flex:1;display:block;text-align:left;margin:0!important;padding:12px 14px!important;border:1px solid var(--line)!important;border-radius:12px!important;background:#1a1e1f!important;color:var(--paper)!important}
.race-card b{display:block;font-size:16px}.race-card span{display:block;margin-top:2px;font-size:12px;color:var(--muted);font-weight:400}
.race-edit{margin:0!important;flex:none}
.race-segs{list-style:none;margin:8px 0 12px;padding:0;max-height:40vh;overflow:auto;border:1px solid var(--line);border-radius:12px}
.race-segs li{display:flex;justify-content:space-between;gap:8px;padding:7px 12px;border-bottom:1px solid #262b2c;font-size:14px}
.race-segs li.run b{color:#9fd6ff}.race-segs li span{color:var(--muted);font-size:12px;white-space:nowrap}
.race-ready label{margin-bottom:6px}
/* 구간 목표 (2026-11-01, public/race-goals.js): 목표 시간 아래 기준·합계, 구간 줄을 눌러 고치기, 레이스 중 구간 목표·전체 앞섬/늦음. */
.race-goal-hint{margin:6px 0 0}
.race-goal-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 4px}
.race-goal-title{font-size:15px;white-space:nowrap}
.race-basis{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;flex:none}
.race-basis button{margin:0!important;border:0!important;border-radius:0!important;padding:0 12px!important;min-height:40px;font-size:13px!important;font-weight:700;background:transparent!important;color:var(--muted)!important;white-space:nowrap}
.race-basis button[aria-pressed="true"]{background:#2b3320!important;color:var(--lime)!important}
.race-basis button:disabled{opacity:.4}
.race-goal-sum{margin:2px 0 0;font-size:13px;color:var(--muted)}.race-goal-sum b{color:var(--lime);font-variant-numeric:tabular-nums}
.race-segs.with-goal li{padding:0}
.race-seg-edit{display:flex!important;width:100%;align-items:center;justify-content:space-between;gap:8px;min-height:44px;margin:0!important;padding:0 12px!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--paper)!important;text-align:left;font-size:14px}
.race-segs li.run .race-seg-edit b{color:#9fd6ff}
.race-seg-edit span{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;white-space:nowrap}
.race-seg-edit em{font-style:normal;color:var(--paper);font-weight:700;font-size:14px;min-width:44px;text-align:right;font-variant-numeric:tabular-nums}
.race-sheet-dim{position:fixed;inset:0;z-index:1001;margin:0!important;border:0!important;border-radius:0!important;background:rgba(0,0,0,.55)!important;padding:0!important}
.race-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1002;max-width:560px;margin:0 auto;background:#171b1c;border-top:1px solid var(--line);border-radius:22px 22px 0 0;padding:18px 16px max(18px,env(safe-area-inset-bottom))}
.race-sheet h3{margin:0 0 4px;font-size:17px}
.race-sheet-val{display:block;text-align:center;font-size:40px;font-weight:800;margin:10px 0;font-variant-numeric:tabular-nums}
.race-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.race-stepper button{margin:0!important;min-height:48px;padding:0!important;font-weight:700;white-space:nowrap}
.race-seg-goal{margin:6px 0 0;font-size:15px;font-weight:700;color:var(--lime);font-variant-numeric:tabular-nums}
.race-seg-goal.over{color:#ff8a1f}
.race-overall{margin:8px 0 0;font-size:14px;font-weight:700;text-align:center}.race-overall.ok{color:var(--lime)}.race-overall.over{color:#ff8a1f}
.race-dl{font-style:normal;font-size:12px;margin-left:8px}.race-dl.ok{color:var(--lime)}.race-dl.over{color:#ff8a1f}.race-dl.even{color:var(--muted)}
/* 워치 연결 (2026-11-01, public/watch-link.js): MY 카드와 숫자 입력 화면(.race-overlay 재사용). */
.surface.watch-link{margin-top:16px}
.watch-link .watch-open{margin-top:8px}
.watch-devs{margin:10px 0 0;border-top:1px solid var(--line)}
.watch-dev{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.watch-dev b{display:block;font-size:15px}.watch-dev small{display:block;font-size:13px;color:var(--muted);margin-top:2px;white-space:nowrap}
.watch-dev button{flex:none;min-height:44px;margin:0!important}
.watch-hr{display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;margin:0;cursor:pointer}
.watch-hr b{display:block;font-size:15px}.watch-hr small{display:block;font-size:13px;font-weight:500;color:var(--muted);margin-top:2px}
.watch-hr input{appearance:none;-webkit-appearance:none;flex:none;width:52px!important;min-width:52px;height:32px;border-radius:16px;border:0;background:#3a3f41;position:relative;margin:0;padding:0;cursor:pointer}
.watch-hr input::after{content:'';position:absolute;left:4px;top:4px;width:24px;height:24px;border-radius:50%;background:#d9dcd6;transition:left .15s}
.watch-hr input:checked{background:var(--lime)}.watch-hr input:checked::after{left:24px;background:#1c2716}
.watch-code-input{font-size:32px!important;font-weight:800;letter-spacing:.25em;text-align:center;height:64px!important;margin:12px 0 4px;font-variant-numeric:tabular-nums}
.watch-code button.primary{width:100%;min-height:52px;margin-top:12px}
.watch-done{margin:10px 0 6px}.watch-done b{display:block;font-size:24px}
.watch-ok{margin-top:18px}
/* 심박 기록 (워치 v3.1, 2026-11-02, public/watch-hr.js): 운동 기록·개인 운동 줄 아래 접기 → 평균·최고·운동 시간, 존 배경 그래프, 존별 시간. 나만 봄. */
.hr-slot:empty{display:none}
.hr-slot{margin-top:6px;width:100%}
.hr-fold{border-top:1px solid var(--line);margin-top:4px}
.hr-fold>summary{list-style:none;display:flex;align-items:center;gap:6px;min-height:44px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap}
.hr-fold>summary::-webkit-details-marker{display:none}
.hr-fold>summary::after{content:'›';margin-left:auto;font-size:18px;transform:rotate(90deg);transition:transform .15s}
.hr-fold[open]>summary::after{transform:rotate(-90deg)}
.hr-heart{color:#ff5a6e;font-size:14px}
.hr-card{background:#161a1c;border-radius:14px;padding:12px 12px 10px;margin-bottom:8px}
.hr-stats{display:flex;gap:10px}.hr-stats div{flex:1;min-width:0}
.hr-stats small{display:block;font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
.hr-stats b{display:block;font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.hr-chart{display:block;width:100%;height:96px;margin-top:10px;border-radius:8px}
.hr-axis{display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:var(--muted);margin-top:4px;font-variant-numeric:tabular-nums}
.hr-zones{margin-top:10px}
.hr-zones div{display:flex;align-items:center;gap:8px;height:22px;font-size:12px;font-weight:700}
.hr-zones span{flex:none;width:34px;white-space:nowrap;color:#cfd5ce}
.hr-zones svg{display:block;flex:1 1 auto;min-width:0;height:8px;border-radius:4px;overflow:hidden;color:#ffffff}
.hr-zones em{margin-left:auto;font-style:normal;font-variant-numeric:tabular-nums;white-space:nowrap}
.hr-foot{margin:10px 0 0;font-size:12px;color:var(--muted);text-align:center}
.race-start{width:100%;min-height:64px;font-size:20px!important;margin:6px 0 8px!important}
.race-back{width:100%;margin:0!important}
.race-error{color:#ff9b9b;font-size:13px;margin:4px 0}.race-error:empty{display:none}
.race-total{text-align:center;margin:2px 0 8px}
.race-total small{display:block;font-size:13px;color:var(--muted)}
.race-total b{display:block;font-size:62px;line-height:1.05;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.race-total.over b,.race-total.over small{color:#ff8a1f}
.race-seg{border:1px solid var(--line);border-radius:16px;padding:12px 14px;text-align:center;background:#161a1b}
.race-seg .race-idx{font-size:12px;color:var(--muted)}
.race-seg h2{margin:4px 0 2px;font-size:28px;line-height:1.15}
.race-seg p{margin:0;color:#c9d2cc;font-size:15px}
.race-seg .race-seg-time{display:block;margin-top:6px;font-size:28px;font-variant-numeric:tabular-nums}
.race-seg.run h2{color:#9fd6ff}
.race-next{text-align:center;color:var(--muted);font-size:13px;margin:10px 0 8px;line-height:1.2}
/* 다음, larger (owner 2026-10-13): the next movement readable at a glance mid-race */
.race-next small{display:block;font-size:12px;font-weight:800;letter-spacing:.12em}
.race-next b{display:block;font-size:24px;font-weight:800;color:var(--paper);margin-top:3px;word-break:keep-all}
.race-next b.last{font-size:18px}
.race-next span{display:block;font-size:17px;font-weight:700;color:#c9d2cc;margin-top:3px}
.race-tap{flex:1;min-height:28vh;width:100%;margin:4px 0 8px!important;border-radius:22px!important;font-size:32px!important;font-weight:900!important;background:var(--lime)!important;color:var(--ink)!important;border:0!important;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.race-tap small{display:block;font-size:14px;font-weight:700;margin-top:6px}
.race-tap.locked{opacity:.5}
.race-tap.flash{animation:race-flash .4s ease-out}
@keyframes race-flash{from{filter:brightness(1.7)}to{filter:none}}
.race-tools{display:flex;gap:8px;margin-top:4px}.race-tools button{flex:1;margin:0!important}
.race-splits{list-style:none;padding:0;margin:10px 0 0;font-size:13px}
.race-splits li{display:flex;justify-content:space-between;gap:8px;padding:5px 2px;border-bottom:1px solid #262b2c;font-variant-numeric:tabular-nums}
.race-splits li.run span{color:#9fd6ff}
.race-result{text-align:center}
.race-sub{margin:0;color:var(--muted)}
.race-result b.big{display:block;font-size:56px;font-variant-numeric:tabular-nums;margin:4px 0}
.race-diff{font-size:17px;font-weight:800;margin:0 0 8px}.race-diff.ok{color:var(--lime)}.race-diff.over{color:#ff8a1f}
.race-save{font-size:13px;color:var(--muted)}
.race-result .race-splits{text-align:left}
.race-build label{margin-bottom:10px}
.race-build-meta{display:grid;grid-template-columns:1fr 110px;gap:10px}
.race-rows{margin:6px 0}
.race-row{display:grid;grid-template-columns:96px minmax(0,1fr) 80px 76px auto;gap:6px;align-items:center;margin-bottom:6px}
.race-row input,.race-row select{margin:0!important;padding:8px!important;min-height:38px}
.race-row-btns{display:flex;gap:3px}.race-row-btns button{padding:6px 8px!important;margin:0!important}
@media(max-width:560px){.race-row{grid-template-columns:104px minmax(0,1fr) auto;grid-template-areas:"k n b" "a l l";padding-bottom:6px;border-bottom:1px solid #262b2c}.race-row select{grid-area:k}.race-row input[name^="name"]{grid-area:n}.race-row-btns{grid-area:b}.race-row input[name^="amount"]{grid-area:a}.race-row input[name^="load"]{grid-area:l}}

/* Member record form (owner requests 2026-10-05): record-date chips, score boxes, per-record ranking opt-out */
.record-date-bar{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 16px;padding-bottom:2px;scrollbar-width:none}
.record-date-bar::-webkit-scrollbar{display:none}
.record-date-bar button{flex:0 0 auto;min-width:58px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 10px!important;margin:0!important;border-radius:12px!important;border:1px solid var(--line)!important;background:#1c2021!important;color:var(--paper)!important;font-size:13px!important;line-height:1.2}
.record-date-bar button small{font-size:10px;font-weight:600;color:var(--muted)}
.record-date-bar button.has-wod small{color:#cfe07a}
.record-date-bar button[aria-pressed="true"]{background:var(--lime)!important;border-color:var(--lime)!important;color:var(--ink)!important}
.record-date-bar button[aria-pressed="true"] small{color:#3a4210}
.score-host{margin:6px 0 10px}
.score-host .sb-title{margin:0 0 8px;font-size:12px;font-weight:700;color:#cdd6cf}
.score-box{display:flex;align-items:flex-end;gap:8px}
.score-box .sb-field{flex:1 1 0;min-width:0;margin:0!important;padding:0!important;border:0!important;display:block!important;white-space:normal}
.score-box .sb-label{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px}
.score-box .sb-input{display:flex;align-items:center;gap:6px;background:#191d1e;border:1px solid #545a58;border-radius:10px;padding:0 12px}
.score-box .sb-input:focus-within{border-color:var(--lime)}
.score-box .sb-input input{margin:0!important;border:0!important;background:transparent!important;padding:12px 0!important;font-size:26px!important;font-weight:800;font-variant-numeric:tabular-nums;text-align:center;min-width:0;width:100%}
.score-box .sb-input em{font-style:normal;font-size:13px;font-weight:700;color:var(--muted)}
.score-box .sb-sep{flex:0 0 auto;font-size:26px;font-weight:800;color:var(--muted);padding-bottom:12px}
.rank-optout{margin:4px 0 0!important}
.rank-optout-note{margin-top:0!important}
.no-wod-note{font-size:13px;line-height:1.6;color:#c9d2cc;background:#1c2021;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 6px}
/* "내가 남긴 운동 기록" filters: iOS date inputs overflow grid cells without min-width:0 */
.daily-history .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}
.daily-history .form-grid label{min-width:0}
.daily-history input[type=date],.daily-history select{min-width:0;width:100%;height:48px;-webkit-appearance:none;appearance:none;line-height:1.2}
.daily-history select{background-image:linear-gradient(45deg,transparent 50%,#9aa39d 50%),linear-gradient(135deg,#9aa39d 50%,transparent 50%);background-position:calc(100% - 18px) 21px,calc(100% - 13px) 21px;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}
.daily-history .muted{margin:6px 0 4px}
.workout-archive{margin-top:30px}
.workout-archive>h2{margin:0 0 14px}
@media(max-width:600px){.refined-member .member-main{padding-bottom:calc(190px + env(safe-area-inset-bottom))}}
/* 직원 [회원앱] (owner 2026-10-07): staff person booked into a class. */
.sw-att-coach{background:#2f3a14;color:#e4f630;border-color:#5b6b1f}

/* Coach-first WOD editor (owner 2026-10-11, "코치들이 어렵지 않게 직관적으로 와드를 설계하는 구조"): numbered steps, format chips,
   TABATA fields, 와드 글 붙여넣기, choice-group rows. Phone first (390px): chips 4 per row, number fields 2 per row. */
#tv-wod-form .tvw-sec{display:flex;align-items:center;gap:8px;margin:18px 0 10px;font-size:15px;font-weight:800;line-height:1.3}
#tv-wod-form .tvw-sec i{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#e4f630;color:#121415;font-size:12px;font-weight:800;font-style:normal}
#tv-wod-form .tvw-sec span{white-space:nowrap}
#tv-wod-form .tvw-sec small{min-width:0;font-size:12px;font-weight:500;color:var(--muted);word-break:keep-all;overflow-wrap:anywhere}
#tv-wod-form .tvw-block{margin-top:14px;border-top:1px solid var(--line)}
#tv-wod-form .tvw-head-grid{grid-template-columns:minmax(0,260px)}
#tv-wod-form .tvw-draft{color:#e4f630;font-weight:700}
#tv-wod-form .tvw-paste{margin:12px 0 4px;padding:2px 12px 12px;border:1px solid rgba(228,246,48,.38);border-radius:12px;background:rgba(228,246,48,.04)}
#tv-wod-form .tvw-paste>summary{list-style:none;cursor:pointer}
#tv-wod-form .tvw-paste>summary::-webkit-details-marker{display:none}
#tv-wod-form .tvw-paste>summary .tvw-sec{margin:10px 0}
#tv-wod-form .tvw-paste-text{display:block;width:100%;min-height:150px;margin:0;padding:10px 12px;box-sizing:border-box;font-size:14px;line-height:1.55;resize:vertical}
#tv-wod-form .tvw-paste-actions{margin-top:8px}
#tv-wod-form .tvw-paste-actions button{min-height:44px}
#tv-wod-form .tvw-parse-out{margin-top:10px}
#tv-wod-form .tvw-parse-out:empty{display:none}
#tv-wod-form .tvw-parse-ok{display:flex;gap:8px;align-items:baseline;margin:0;font-size:14px;line-height:1.5;word-break:keep-all}
#tv-wod-form .tvw-parse-ok b{flex:none;color:#e4f630;white-space:nowrap}
#tv-wod-form .tvw-parse-h{margin:10px 0 4px;font-size:13px;font-weight:800;color:#ffb86b}
#tv-wod-form .tvw-parse-check{margin:0;padding-left:18px;font-size:13px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
#tv-wod-form .tvw-parse-out .fine{margin:8px 0 0}
#tv-wod-form .tvw-parse-pick,#tv-wod-form .tvw-parse-none{margin:0;font-size:14px;word-break:keep-all}
#tv-wod-form .tvw-days{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
#tv-wod-form .tvw-days button{min-height:44px;padding:0 16px;white-space:nowrap}
#tv-wod-form .tvw-strength summary small,#tv-wod-form .tvw-more summary small{margin-left:6px;font-weight:500;color:var(--muted)}
#tv-wod-form .tvw-fmt{display:flex;flex-wrap:wrap;gap:6px}
#tv-wod-form .tvw-chip{position:relative;margin:0}
#tv-wod-form .tvw-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
#tv-wod-form .tvw-chip span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer}
#tv-wod-form .tvw-chip input:checked+span{background:#e4f630;border-color:#e4f630;color:#121415}
#tv-wod-form .tvw-chip input:focus-visible+span{outline:2px solid #e4f630;outline-offset:2px}
#tv-wod-form .tvw-fmt-help{margin:8px 0 6px;word-break:keep-all}
#tv-wod-form .tvw-tab-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 10px}
#tv-wod-form .tvw-tab-grid label{min-width:0}
#tv-wod-form .tvw-seg{display:flex;max-width:440px;margin:4px 0 10px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
#tv-wod-form .tvw-seg label{position:relative;flex:1 1 0;min-width:0;margin:0}
#tv-wod-form .tvw-seg label+label{border-left:1px solid var(--line)}
#tv-wod-form .tvw-seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
#tv-wod-form .tvw-seg span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 8px;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer}
#tv-wod-form .tvw-seg input:checked+span{background:rgba(228,246,48,.16);color:#e4f630}
#tv-wod-form .tvw-seg input:focus-visible+span{outline:2px solid #e4f630;outline-offset:-2px}
#tv-wod-form .tvw-tab-total{margin:0 0 6px;padding:10px 12px;border:1px dashed rgba(228,246,48,.45);border-radius:10px;font-size:14px;font-weight:700;word-break:keep-all}
#tv-wod-form .tvw-tab-total:empty{display:none}
/* Interval total (owner 2026-10-27): the TV word first ("30 MIN INTERVAL"), then what it adds up to, one short line each. */
#tv-wod-form .tvw-tab-total b{display:block;font-size:15px;letter-spacing:.02em;white-space:nowrap}
#tv-wod-form .tvw-tab-total span{display:block;margin-top:2px;font-size:13px;font-weight:500;color:var(--muted)}
#tv-wod-form .tvw-score-grid{margin-top:2px}
#tv-wod-form .tvw-more{margin:16px 0 4px;padding:4px 12px 8px;border:1px solid var(--line);border-radius:10px}
#tv-wod-form .tvw-more>summary{min-height:36px;padding:8px 0 4px;font-size:14px;font-weight:700;cursor:pointer}
#tv-wod-form .tvw-title{display:grid;gap:4px;margin:6px 0 4px}
#tv-wod-form .tvw-title .fine{font-weight:400;word-break:keep-all}
/* choice-group rows in the movement table */
.wodt-pick{display:none;flex:none;width:auto;min-width:0;margin:0;padding:6px 6px!important;font-size:12px;border-radius:7px}
.wodt-tag{display:none;flex:none;padding:5px 7px;border-radius:6px;font-size:11px;font-weight:800;line-height:1;white-space:nowrap}
.wodt-table tr.is-pick .wodt-tag,.wodt-table tr.is-opt .wodt-tag{display:inline-block}
.wodt-table tr.is-pick .wodt-tag{background:#e4f630;color:#121415}
.wodt-table tr.is-pick .wodt-tag::before{content:'선택 묶음'}
.wodt-table tr.is-opt .wodt-tag{border:1px solid rgba(228,246,48,.55);color:#e4f630}
.wodt-table tr.is-opt .wodt-tag::before{content:'또는'}
.wodt-table tr.is-pick .wodt-pick{display:inline-block}
.wodt-table tr.is-pick .wodt-unit,.wodt-table tr.is-pick .wodt-ovbtn,.wodt-table tr.is-pick [data-row-act=rf],.wodt-table tr.is-pick [data-row-act=load],.wodt-table tr.is-pick [data-row-act=ov],.wodt-table tr.is-pick [data-row-act=opt]{display:none!important}
.wodt-table tr.is-pick td.wodt-peak,.wodt-table tr.is-pick td.wodt-build,.wodt-table tr.is-pick td.wodt-start{visibility:hidden}
.wodt-table tr.is-opt td.wodt-mv{box-shadow:inset 3px 0 0 rgba(228,246,48,.6);padding-left:9px!important}
.wodt-optbtn{white-space:nowrap}
.wodt-actions{flex-wrap:wrap;gap:6px}
.wodt-actions button{min-height:44px}
@media(max-width:760px){
  #tv-wod-form .tvw-head-grid{grid-template-columns:minmax(0,1fr)}
  #tv-wod-form .tvw-fmt{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
  #tv-wod-form .tvw-chip span{padding:0 4px;font-size:13px}
  #tv-wod-form .tvw-tab-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  #tv-wod-form .tvw-tab-grid input{width:100%;min-height:44px;box-sizing:border-box}
  #tv-wod-form .tvw-score-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 10px}
  #tv-wod-form .tvw-score-grid label{min-width:0}
  #tv-wod-form .tvw-score-grid select,#tv-wod-form .tvw-score-grid input{width:100%;box-sizing:border-box}
  #tv-wod-form .tvw-seg{max-width:none}
  .wodt-table tr.is-pick td[data-k]{display:none!important}
  /* the lime rule already marks an option on a phone; the "또는" tag would add a line to every option */
  .wodt-table tr.is-opt .wodt-tag{display:none}
  /* reps such as "Max Unbroken" or "1500m" fit their cell */
  .wodt-table tr{grid-template-columns:16px minmax(0,1fr) 116px}
  /* thumb-sized cells and buttons (UX standard: 44px) */
  .wodt-table input,.wodt-table select,.wodt-more,.wodt-ctl button{min-height:44px;box-sizing:border-box}
  .wodt-more{min-width:44px}
  .wodt-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}
  .wodt-actions [data-tvw-suggest]{grid-column:1/-1}
  .wodt-actions button{padding-left:4px;padding-right:4px;white-space:nowrap}
}
@media(min-width:761px){@container wodt (max-width:1049px){.wodt-table tr.is-pick td[data-k]{display:none!important}}}

/* Review decisions (owner 2026-10-12): two check boxes on the left of every review item, AI 수정 / 이상 없음 (one of the two).
   44 px boxes; phones stack the two boxes so the item text keeps a readable column. */
.tvw-result.todo{border-color:#4a514c;background:rgba(255,255,255,.02)}
.tvw-dec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.tvw-dec-head b{white-space:nowrap}
.tvw-dec-count{flex:none;font-size:13px;font-weight:800;color:#c9d2cc;white-space:nowrap;font-variant-numeric:tabular-nums}
.tvw-dec-count.done{color:#e4f630}
.tvw-result .tvw-dec-help{margin:4px 0 0;font-size:13px;color:#c9d2cc;word-break:keep-all}
.tvw-result .tvw-summary{color:#9aa39e;word-break:keep-all}
.tvw-decs{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.tvw-dec{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:10px;border:1px solid #3a403c;border-radius:10px;background:rgba(0,0,0,.18)}
.tvw-dec.is-ai{border-color:rgba(228,246,48,.55)}
.tvw-dec.is-ok{border-color:#5d6660}
.tvw-dec-boxes{display:flex;gap:6px}
.tvw-dec-box{position:relative;display:inline-flex;align-items:center;min-height:44px;margin:0;line-height:1.2;padding:0 12px;border:1px solid #4a514c;border-radius:10px;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer;color:#dfe6e1;background:transparent;box-sizing:border-box;user-select:none}
.tvw-dec-box input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.tvw-dec-box span{display:inline-flex;align-items:center;gap:7px}
.tvw-dec-box span::before{content:'';flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid #7d8780;border-radius:5px;box-sizing:border-box;font-size:12px;line-height:1;font-weight:900;color:#121415}
.tvw-dec-box input:checked+span::before{content:'✓'}
.tvw-dec-box input:focus-visible+span::before{outline:2px solid #e4f630;outline-offset:2px}
.tvw-dec.is-ai .tvw-dec-box.ai{border-color:#e4f630;background:rgba(228,246,48,.12);color:#f3f8c8}
.tvw-dec.is-ai .tvw-dec-box.ai span::before{background:#e4f630;border-color:#e4f630}
.tvw-dec.is-ok .tvw-dec-box.ok{border-color:#cfd8d2;background:rgba(255,255,255,.08);color:#f4f7f5}
.tvw-dec.is-ok .tvw-dec-box.ok span::before{background:#cfd8d2;border-color:#cfd8d2}
.tvw-dec-box:has(input:disabled){opacity:.4;cursor:not-allowed}
.tvw-dec-msg{margin:0;font-size:13px;line-height:1.55;color:#e6d9a8;word-break:keep-all;overflow-wrap:anywhere}
.tvw-dec.block .tvw-dec-msg{color:#ffb3b3}
.tvw-dec-tag{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:6px;font-style:normal;font-size:11px;font-weight:900;white-space:nowrap;vertical-align:1px;background:rgba(230,217,168,.14);color:#e6d9a8}
.tvw-dec.block .tvw-dec-tag{background:rgba(255,107,107,.16);color:#ffb3b3}
.tvw-actions button{min-height:44px}
.tvw-changes{margin:10px 0 0;padding-left:18px;font-size:13px;line-height:1.55;color:#e8f0b0;word-break:keep-all}
/* Cells an AI 수정 changed (cleared when the coach edits the cell); a dot on a phone level tab with a changed cell. */
.tv-wod-form input.aifix,.tv-wod-form select.aifix,.tv-wod-form textarea.aifix{border-color:#e4f630;box-shadow:0 0 0 2px rgba(228,246,48,.35);background-color:rgba(228,246,48,.08)}
.wodt-tabs button.has-aifix::after{content:'';display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:50%;background:#e4f630;vertical-align:middle}
.wodt-tabs button[aria-selected=true].has-aifix::after{background:#121415}
@media (max-width:560px){
  .tvw-dec{gap:10px;padding:8px;align-items:start}
  .tvw-dec-boxes{flex-direction:column}
  .tvw-dec-box{padding:0 10px}
}
/* Level-only movement on phones (2026-10-12, seen while previewing AI 수정 at 390px: "Alternating Lunges" showed as
   "Alterna"): the START만 / BUILD만 / PEAK만 field takes the whole row under the movement line instead of the narrow
   movement column. The movement cell is layout-transparent here so its two parts sit in the row grid; the loads move one
   row down only in rows that show that field on the chosen level tab. */
@media(max-width:760px){
  .wodt-table td.wodt-mv{display:contents}
  .wodt-table .wodt-mvline{grid-column:2;grid-row:1;min-width:0}
  .wodt-table .wodt-ov{grid-column:2/-1;grid-row:2;margin-top:0}
  .wodt[data-show=peak] tr:is([data-ov~=peak],.ov-forced) td:is([data-k=m],[data-k=f]),.wodt[data-show=build] tr:is([data-ov~=build],.ov-forced) td:is([data-k=m],[data-k=f]),.wodt[data-show=start] tr:is([data-ov~=start],.ov-forced) td:is([data-k=m],[data-k=f]){grid-row:3}
  .wodt-ctl{grid-row:4}
  .wodt-table tr.is-opt .wodt-mvline,.wodt-table tr.is-opt .wodt-ov{box-shadow:inset 3px 0 0 rgba(228,246,48,.6);padding-left:9px}
}
/* 와드판 미리보기 · 와드판 편집 (owner 2026-10-16: "미리보기창의 와드판만 보이게끔 … 코치가 직접 줄을 추가하거나 텍스트를 수정").
   The preview is the TV's WOD card only (public/tv.js pvBoard); on phones it runs to the card's inner edge so the board is as
   big as the screen allows. A tap opens that part's fields under it: 44px targets, 16px text (no zoom on focus), one row of
   chips to add lines. The lime 저장 button stays the only filled lime button. */
#tv-wod-form .tvw-pv-box{position:relative;aspect-ratio:824/916;max-width:560px;border-radius:12px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#tv-wod-form .tvw-pv-box:active{opacity:.94}
#tv-wod-form .tvw-ed-hint{margin:6px 0 0;font-size:13px;color:var(--muted);word-break:keep-all}
#tv-wod-form .tvw-ed{max-width:560px;margin-top:10px;padding:12px;border:1px solid rgba(228,246,48,.45);border-radius:12px;background:rgba(228,246,48,.04);box-sizing:border-box}
#tv-wod-form .tvw-ed-head{display:flex;align-items:center;gap:8px;margin:0 0 10px}
#tv-wod-form .tvw-ed-head b{min-width:0;font-size:15px;font-weight:800;white-space:nowrap}
#tv-wod-form .tvw-ed-tag{flex:none;padding:3px 8px;border-radius:999px;background:rgba(228,246,48,.16);color:#e4f630;font-style:normal;font-size:12px;font-weight:800;white-space:nowrap}
#tv-wod-form .tvw-ed-head button{flex:none;margin-left:auto;min-height:44px;padding:0 18px;white-space:nowrap}
#tv-wod-form .tvw-ed input,#tv-wod-form .tvw-ed select,#tv-wod-form .tvw-ed textarea{width:100%;min-width:0;min-height:44px;margin:0;box-sizing:border-box;font-size:16px}
#tv-wod-form .tvw-ed textarea{min-height:104px;line-height:1.5;resize:vertical;word-break:keep-all;overflow-wrap:anywhere}
#tv-wod-form .tvw-ed [hidden],#tv-wod-form .tvw-ed-add [hidden],#tv-wod-form :is(.tvw-ed,.tvw-ed-hint,.tvw-ed-more)[hidden]{display:none!important}
#tv-wod-form .tvw-ed-f{display:grid;gap:4px;min-width:0;margin:0 0 8px}
#tv-wod-form .tvw-ed-f>span{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden}
#tv-wod-form .tvw-ed-row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px}
#tv-wod-form .tvw-ed-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 8px}
#tv-wod-form .tvw-ed-mv{display:flex;gap:8px;margin:0 0 10px}
#tv-wod-form .tvw-ed-mv input{flex:1}
#tv-wod-form .tvw-ed-mv select{flex:0 0 76px;width:76px}
#tv-wod-form .tvw-ed-grid{display:grid;grid-template-columns:52px minmax(0,1fr);gap:6px;align-items:center}
#tv-wod-form .tvw-ed-grid.is-rf{grid-template-columns:52px repeat(2,minmax(0,1fr))}
#tv-wod-form .tvw-ed-grid.is-load{grid-template-columns:52px repeat(3,minmax(0,1fr))}
#tv-wod-form .tvw-ed-grid.is-load.is-rf{grid-template-columns:52px repeat(4,minmax(0,1fr))}
#tv-wod-form .tvw-ed-grid:not(.is-rf) :is(.c-rf,.if-rf),#tv-wod-form .tvw-ed-grid:not(.is-load) :is(.c-m,.c-f){display:none}
#tv-wod-form .tvw-ed-grid>span[class^="c-"]{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
#tv-wod-form .tvw-ed-grid .if-rf{font-weight:700}
#tv-wod-form .tvw-ed-lv{min-width:0;font-size:12px;font-weight:900;letter-spacing:.04em;white-space:nowrap;color:#f3f4ef}
#tv-wod-form .tvw-ed-lv.lv-build{color:#9fe0c0}
#tv-wod-form .tvw-ed-lv.lv-start{color:#ffb86b}
#tv-wod-form .tvw-ed-lv.is-on{text-decoration:underline;text-underline-offset:4px}
#tv-wod-form .tvw-ed-lv small{display:block;margin-top:2px;font-size:11px;font-weight:600;letter-spacing:0;color:var(--muted);white-space:normal;overflow-wrap:anywhere}
#tv-wod-form .tvw-ed-skip{grid-column:2/-1;font-size:13px;color:var(--muted)}
#tv-wod-form .tvw-ed-note{margin:8px 0 0;font-size:12px;color:var(--muted);word-break:keep-all}
#tv-wod-form .tvw-ed-note.warn{color:#ff8a7a}
#tv-wod-form .tvw-ed-note:empty{display:none}
#tv-wod-form .tvw-ed-lhead,#tv-wod-form .tvw-ed-lrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#tv-wod-form .tvw-ed-lhead span{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
#tv-wod-form .tvw-ed-lrow{margin-top:8px}
#tv-wod-form .tvw-ed-lname{grid-column:1/-1;font-size:13px;font-weight:700;overflow-wrap:anywhere}
#tv-wod-form .tvw-ed-lrow:not(.is-load) :is(.c-m,.c-f){visibility:hidden}
#tv-wod-form .tvw-ed-more{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
#tv-wod-form .tvw-ed-more button{min-height:44px;padding:0 12px;white-space:nowrap}
#tv-wod-form .tvw-ed-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
#tv-wod-form .tvw-ed-acts button{min-height:44px;min-width:44px;padding:0 12px;white-space:nowrap}
#tv-wod-form .tvw-ed-acts .tvw-ed-del{margin-left:auto;color:#ff8a7a}
#tv-wod-form .tvw-ed-add{display:flex;flex-wrap:wrap;gap:6px;max-width:560px;margin-top:10px}
#tv-wod-form .tvw-ed-add button{min-height:44px;padding:0 14px;white-space:nowrap}
#tv-wod-form .tvw-parse-next{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:10px}
#tv-wod-form .tvw-parse-next button{min-height:44px;padding:0 16px;white-space:nowrap}
#tv-wod-form .tvw-parse-next .fine{margin:0}
@media(max-width:560px){
  #tv-wod-form .tvw-preview{padding:8px 0 4px;border:0;border-radius:0}
  #tv-wod-form .tvw-pv-box{width:calc(100% + 28px);max-width:none;margin-inline:-14px}
}
/* PC: the fields sit beside the board, so both stay in view while editing. */
@media(min-width:1000px){
  #tv-wod-form .tvw-pv-wrap{display:grid;grid-template-columns:minmax(0,560px) minmax(300px,440px);gap:20px;align-items:start}
  #tv-wod-form .tvw-pv-side>.tvw-ed-hint{margin-top:10px}
  #tv-wod-form .tvw-pv-side>.tvw-ed:not([hidden]){margin-top:10px}
}

/* 레이스 시뮬레이션 · 회원앱 (2026-10-13): TV 팀 레이스 대기·카운트다운. 나머지는 레이스 모드 스타일을 그대로 쓴다. */
.sim-m-card{border:1px solid rgba(228,246,48,.45);background:rgba(228,246,48,.07);border-radius:16px;padding:14px 16px;margin:2px 0 4px}
.sim-m-card b{display:block;font-size:22px;line-height:1.25;margin-top:8px;word-break:keep-all}
.sim-m-card p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.sim-m-tag{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.04em;padding:4px 9px;border-radius:999px;background:var(--lime);color:var(--ink)}
.sim-m-team{font-size:14px;color:var(--paper);font-weight:700;word-break:keep-all}
.sim-m-card .sim-m-team{color:var(--paper);margin-top:8px}
.sim-m-team.top{margin:0 0 6px;font-size:13px;color:var(--muted);text-align:center;font-weight:600}
.sim-m-tag.team{margin-left:6px;background:var(--paper)}
.sim-m-teamno{color:var(--lime);font-weight:900}
.sim-m-how{margin:2px 0 0;text-align:center;word-break:keep-all}
.sim-m-count{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:60vh}
.sim-m-count small{font-size:15px;color:var(--muted)}
.sim-m-count b{font-size:168px;line-height:1;font-weight:900;color:var(--lime);font-variant-numeric:tabular-nums;margin:10px 0 4px}
.sim-m-count span{font-size:18px;font-weight:800;letter-spacing:.3em}
.sim-m-count p{margin:18px 0 0;font-size:14px;color:var(--muted);word-break:keep-all}
html[data-theme="light"] body.refined-member .sim-m-card{background:#fbfdeb;border-color:#c9d88a}
html[data-theme="light"] body.refined-member .sim-m-card p,html[data-theme="light"] body.refined-member .sim-m-team.top,html[data-theme="light"] body.refined-member .sim-m-count small,html[data-theme="light"] body.refined-member .sim-m-count p{color:#56665f}
html[data-theme="light"] body.refined-member .sim-m-card .sim-m-team,html[data-theme="light"] body.refined-member .sim-m-team{color:#2c2d24}
html[data-theme="light"] body.refined-member .sim-m-tag{background:#ddf878;color:#17191b}
html[data-theme="light"] body.refined-member .sim-m-tag.team{background:#21231a;color:#fff}
html[data-theme="light"] body.refined-member .sim-m-count b{color:#4e5c00}

/* 직원 공지사항 (2026-10-26) */
.notice-admin-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.notice-admin-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line,#363b3c);border-radius:12px}
.notice-admin-row.editing{border-color:var(--lime,#e4f630)}
.notice-admin-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;background:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0}
.notice-admin-main b{font-size:15px;line-height:1.35}
.notice-admin-main small{font-size:12px;opacity:.75}
.notice-admin-tags{display:flex;gap:6px;flex-wrap:wrap}
.notice-form-card label{display:block;margin-bottom:12px;font-size:13px}
.notice-form-card input:not([type=checkbox]),.notice-form-card textarea,.notice-form-card select{display:block;width:100%;margin-top:6px;box-sizing:border-box}
.notice-form-card textarea{min-height:160px;line-height:1.6}
.notice-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.notice-form-checks{display:flex;flex-direction:column;gap:6px;margin:4px 0 10px}
.notice-form-checks label{display:flex;align-items:center;gap:8px;margin:0}
.notice-form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.notice-form-actions .danger{color:#ff8a7a}
.manager-content .notice-detail{max-width:420px}
.manager-content .notice-body{font-size:15px;line-height:1.7;word-break:keep-all}
/* Optional ELITE: hidden unless the coach explicitly adds it. */
.tv-wod-form[data-elite="0"] :is(.wodt-elite,.ov-elite,[data-show-level="elite"],.elite-field){display:none!important}
.wodt-table th.wodt-lv.wodt-elite{background:#d7b7ff;color:#161020}
.tvw-ed-lname input{width:100%;min-width:0}
@media(max-width:760px){
 .wodt:not([data-show=elite]) .wodt-elite{display:none!important}
 .wodt[data-show=elite] :is(.wodt-peak,.wodt-build,.wodt-start){display:none!important}
 .wodt[data-show=elite] .wodt-ov label:not(.ov-elite){display:none}
 .wodt[data-show=elite] tr:is([data-ov~=elite],.ov-forced) .wodt-ov{display:flex}
 .wodt[data-show=elite] tr:not([data-ov~=elite]):not(.ov-forced) .wodt-ov{display:none}
 .wodt[data-show=elite] tr:is([data-ov~=elite],.ov-forced) td:is([data-k=m],[data-k=f]){grid-row:3}
 .wodt-tabs{flex-wrap:wrap}
}

/* Per-level pick/option metadata is editable without rewriting other levels. */
.wodt-ov label{flex-wrap:wrap}
.wodt-ov select{max-width:120px;min-width:0}
.wodt-ov input[type=number]{max-width:80px;min-width:0}
.wodt-table tr.is-pick .wodt-ovbtn,.wodt-table tr.is-pick [data-row-act=ov]{display:inline-flex!important}
/* 설정 · 저녁 매니저 근무 시간 (2026-11-11) */
.set-shift{flex-wrap:wrap}
.set-shift-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;min-width:0}
.set-shift-times label{display:grid;grid-template-columns:2.4em minmax(0,1fr);align-items:center;gap:6px;font-size:13px;color:#a6aaa7;white-space:nowrap;min-width:0}
.set-shift-times input{min-width:0;width:100%;min-height:44px;font-variant-numeric:tabular-nums}
@media(max-width:600px){.set-shift-times{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}}
