[hidden]{display:none!important}
html,body{margin:0}
/* Layout: gym clipboard. Top bar + tabs; plan view = practice list rail + timeline; bank = card grid; editor = court + side form. */
:root{
  --bg:#F7F2E8; --surface:#FFFFFF; --surface-2:#FAF5EC; --border:#E0D3BC; --line-strong:#BCA987;
  --ink:#141414; --muted:#665E52;
  --accent:#C4521B; --accent-ink:#9A3C0F; --accent-soft:#F8E3D6;
  --navy:#141414; --navy-soft:#EFE3CC; --navy-ink:#141414; --on-accent:#FFFFFF; --on-navy:#FFFFFF;
  --floor:#E7CFA4; --floor-2:#DDBF8C; --court-line:#FFFFFF; --paint:#C98F52;
  --tok-o:#FFFFFF; --tok-o-ink:#141414; --tok-x:#141414; --ball:#E0661E; --cone:#F08A24; --arrow:#141414;
  --ok:#2F7D4F; --ok-soft:#DFF0E5; --warn:#9A6A10; --warn-soft:#F6EBCF; --crit:#B23A2E; --crit-soft:#F6DEDA;
  --shadow:0 1px 2px rgba(20,20,20,.06),0 6px 18px rgba(60,40,10,.08);
  --r:10px;
  --f-display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;
  --f-body:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#141414; --surface:#1B1A19; --surface-2:#24221F; --border:#36322C; --line-strong:#504A40;
  --ink:#F2EEE8; --muted:#A79F93;
  --accent:#F07A3C; --accent-ink:#FFA772; --accent-soft:#3A2418;
  --navy:#EBD3A6; --navy-soft:#3A3122; --navy-ink:#EBD3A6; --on-accent:#141414; --on-navy:#141414;
  --floor:#5A4630; --floor-2:#4E3C28; --court-line:#E9DCC6; --paint:#6E4E2E;
  --tok-o:#F4F1EA; --tok-o-ink:#141414; --tok-x:#EBD3A6; --ball:#F07A3C; --cone:#F59A45; --arrow:#F4F1EA;
  --ok:#6FCB8C; --ok-soft:#1E3524; --warn:#E0B85B; --warn-soft:#3A2F16; --crit:#E2685C; --crit-soft:#3A1F1C;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.35); color-scheme:dark;}}
:root[data-theme="dark"]{
  --bg:#141414; --surface:#1B1A19; --surface-2:#24221F; --border:#36322C; --line-strong:#504A40;
  --ink:#F2EEE8; --muted:#A79F93;
  --accent:#F07A3C; --accent-ink:#FFA772; --accent-soft:#3A2418;
  --navy:#EBD3A6; --navy-soft:#3A3122; --navy-ink:#EBD3A6; --on-accent:#141414; --on-navy:#141414;
  --floor:#5A4630; --floor-2:#4E3C28; --court-line:#E9DCC6; --paint:#6E4E2E;
  --tok-o:#F4F1EA; --tok-o-ink:#141414; --tok-x:#EBD3A6; --ball:#F07A3C; --cone:#F59A45; --arrow:#F4F1EA;
  --ok:#6FCB8C; --ok-soft:#1E3524; --warn:#E0B85B; --warn-soft:#3A2F16; --crit:#E2685C; --crit-soft:#3A1F1C;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.35); color-scheme:dark;}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;-webkit-font-smoothing:antialiased;min-height:100vh}
h1,h2,h3{font-family:var(--f-display);font-weight:700;margin:0;text-wrap:balance;letter-spacing:.01em}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.shell{max-width:1200px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 64px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:18px 14px}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:38px;height:38px;flex:none}
.brand h1{font-size:1.7rem;text-transform:uppercase;line-height:1}
.brand .sub{font-size:.8rem;color:var(--muted);margin-top:2px}
.status{font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:6px}
.status .dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.status.local .dot{background:var(--warn)}
nav.tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:18px;overflow-x:auto}
nav.tabs button{background:none;border:none;padding:10px 16px;font-family:var(--f-display);font-weight:700;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
nav.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 13px;font-weight:600;font-size:.9rem;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--line-strong)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{filter:brightness(1.07)}
.btn.navy{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.ghost:hover{background:var(--surface-2)}
.btn.danger{color:var(--crit)}
.btn.sm{padding:5px 9px;font-size:.82rem}
.btn.icon{padding:5px 8px;min-width:32px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.spacer{flex:1}
input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],input[type=time],select,textarea{width:100%;border:1px solid var(--border);background:var(--surface);border-radius:7px;padding:8px 10px}
textarea{resize:vertical;min-height:70px;line-height:1.45}
label.lbl,span.lbl{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
.field{min-width:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid4{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px}
@media(max-width:700px){.grid4{grid-template-columns:1fr 1fr}.grid4 .field:first-child{grid-column:1/-1}}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}
.muted{color:var(--muted)}
.small{font-size:.84rem}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);white-space:nowrap}
.chip.cat{background:var(--navy-soft);border-color:transparent;color:var(--navy-ink)}
.chip.lvl{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink)}
.banner{border:1px solid var(--warn-soft);background:var(--warn-soft);color:var(--warn);padding:9px 12px;border-radius:8px;font-size:.86rem;margin-bottom:14px}

/* ---- Plan view ---- */
.plan-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}
@media(max-width:860px){.plan-layout{grid-template-columns:1fr}}
.rail{padding:14px}
.rail h3{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 6px}
.rail h3:first-of-type{margin-top:10px}
.plist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.plist button{width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:7px;padding:7px 9px;cursor:pointer;display:flex;flex-direction:column;gap:1px}
.plist button:hover{background:var(--surface-2)}
.plist button[aria-current="true"]{background:var(--accent-soft);border-color:transparent}
.plist .t{font-weight:600;font-size:.92rem}
.plist .d{font-size:.76rem;color:var(--muted)}
.plan-main{padding:18px;min-width:0}
.plan-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.plan-title{font-family:var(--f-display);font-weight:800;font-size:1.8rem;text-transform:uppercase;border:none;background:transparent;padding:2px 0;border-bottom:2px dashed transparent;width:100%;letter-spacing:.01em}
.plan-title:hover,.plan-title:focus{border-bottom-color:var(--border);outline:none}
.clock-bar{display:flex;align-items:center;gap:12px;margin:16px 0 8px;flex-wrap:wrap}
.meter{flex:1;min-width:160px;height:10px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden;position:relative}
.meter i{display:block;height:100%;background:var(--navy)}
.meter.over i{background:var(--crit)}
.timeline{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}
.tl-item{display:grid;grid-template-columns:92px 84px minmax(0,1fr) 84px auto;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--border)}
.tl-item.break{background:repeating-linear-gradient(-45deg,transparent 0 8px,var(--surface-2) 8px 16px)}
.tl-item.drag-over{box-shadow:inset 0 3px 0 var(--accent)}
.tl-time{font-family:var(--f-mono);font-size:.86rem;font-weight:600;line-height:1.3}
.tl-time .end{color:var(--muted);font-weight:500}
.tl-thumb{width:84px;border-radius:6px;overflow:hidden;cursor:pointer;border:1px solid var(--border);background:var(--floor);line-height:0}
.tl-thumb{height:56px;display:flex;align-items:center;justify-content:center}
.tl-thumb svg{height:56px;width:auto;max-width:100%;display:block}
.tl-body{min-width:0;display:flex;flex-direction:column;gap:4px}
.tl-name{font-weight:700;font-size:1rem;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tl-name button.link{background:none;border:none;padding:0;font:inherit;cursor:pointer;color:var(--ink);text-align:left}
.tl-name button.link:hover{color:var(--accent-ink);text-decoration:underline}
.tl-notes{border:none;border-bottom:1px dashed var(--border);border-radius:0;padding:3px 0;background:transparent;font-size:.86rem;color:var(--muted)}
.tl-notes:focus{outline:none;border-bottom-color:var(--accent);color:var(--ink)}
.tl-min{display:flex;align-items:center;gap:4px}
.tl-min input{width:56px;text-align:center;padding:6px 4px;font-family:var(--f-mono)}
.tl-actions{display:flex;gap:2px}
.handle{cursor:grab;color:var(--muted);background:none;border:none;padding:4px;font-size:1rem}
@media(max-width:640px){
  .tl-item{grid-template-columns:58px minmax(0,1fr);grid-template-areas:"time body" ". ctl";row-gap:6px;column-gap:10px}
  .tl-time{grid-area:time;align-self:start}.tl-body{grid-area:body}.tl-min{grid-area:ctl;justify-self:start}.tl-actions{grid-area:ctl;justify-self:end}
  .tl-thumb{display:none!important}
  .plan-title{font-size:1.4rem}
}
.focus-box{margin-top:12px}
.empty{padding:36px 16px;text-align:center;color:var(--muted)}
.empty .big{font-family:var(--f-display);font-size:1.35rem;text-transform:uppercase;color:var(--ink);margin-bottom:6px}

/* ---- Bank ---- */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.filters input{flex:2 1 200px;width:auto}
.filters select{flex:1 1 140px;width:auto}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.dcard{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;cursor:pointer;text-align:left;padding:0;box-shadow:var(--shadow)}
.dcard:hover{border-color:var(--line-strong)}
.dcard .art{background:var(--floor);line-height:0;aspect-ratio:54/40;overflow:hidden;display:flex;align-items:center;justify-content:center}
.dcard .art svg{max-height:100%;width:auto!important;height:100%!important}
.dcard .meta{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px}
.dcard .nm{font-weight:700;font-size:1.02rem}
.dcard .sub{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* ---- Court SVG ---- */
.court-floor{fill:var(--floor)}
.court-paint{fill:var(--paint);opacity:.55}
.court-line{fill:none;stroke:var(--court-line);stroke-width:.35}
.court-line.dash{stroke-dasharray:1 1}
.rim{fill:none;stroke:var(--accent);stroke-width:.3}
.tk-o circle{fill:var(--tok-o);stroke:var(--tok-o-ink);stroke-width:.3}
.tk-o text{fill:var(--tok-o-ink);font-family:var(--f-display);font-weight:800;font-size:2px;text-anchor:middle;dominant-baseline:central}
.tk-x text{fill:var(--navy-ink);font-family:var(--f-display);font-weight:800;font-size:2.6px;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--floor);stroke-width:.5px}
.tk-x text tspan{font-size:1.5px}
.tk-coach rect{fill:var(--ink)}
.tk-coach text{fill:var(--surface);font-family:var(--f-display);font-weight:800;font-size:2px;text-anchor:middle;dominant-baseline:central}
.tk-cone path{fill:var(--cone);stroke:var(--ink);stroke-width:.15}
.ball{fill:var(--ball);stroke:var(--ink);stroke-width:.12}
.ar{fill:none;stroke:var(--arrow);stroke-width:.32;stroke-linecap:round;stroke-linejoin:round}
.ar.pass{stroke-dasharray:.9 .7}
.ar.shot{stroke:var(--accent);stroke-dasharray:.4 .5;stroke-width:.4}
.ar.faint{opacity:.35}
.arhead{fill:var(--arrow)}
.arhead.shot{fill:var(--accent)}
.step-num{font-family:var(--f-mono);font-size:1.5px;font-weight:600;fill:var(--arrow);text-anchor:middle;dominant-baseline:central}
.step-num-bg{fill:var(--floor);stroke:var(--arrow);stroke-width:.12}
.tok.sel circle,.tok.sel rect{stroke:var(--accent);stroke-width:.5}
.tok.sel.tk-x text,.tok.sel.tk-cone path{stroke:var(--accent);stroke-width:.4px}
.tok{cursor:grab}
.tok.dragging{cursor:grabbing}

/* ---- Modal ---- */
.backdrop{position:fixed;inset:0;background:rgba(15,18,26,.5);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal{background:var(--surface);border-radius:14px;max-width:880px;width:100%;max-height:calc(100vh - 32px);overflow:auto;box-shadow:var(--shadow)}
.modal-head{position:sticky;top:0;background:var(--surface);display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border);z-index:2}
.modal-head h2{font-size:1.45rem;text-transform:uppercase;flex:1;min-width:0}
.modal-body{padding:16px 18px 20px}
.x{background:none;border:none;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--muted);padding:2px 6px}
.detail{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px}
@media(max-width:760px){.detail{grid-template-columns:1fr}}
.player{display:flex;flex-direction:column;gap:8px}
.player .stage{background:var(--floor);border-radius:10px;overflow:hidden;line-height:0;display:flex;justify-content:center;border:1px solid var(--border)}
.player .stage svg{width:100%;height:auto;max-height:68vh}
.player .controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.player .caption{font-size:.92rem;min-height:2.6em;line-height:1.35}
.player .caption b{font-family:var(--f-mono);font-size:.8rem;color:var(--accent-ink);margin-right:6px}
.steps-dots{display:flex;gap:4px;flex-wrap:wrap}
.steps-dots button{width:26px;height:26px;border-radius:6px;border:1px solid var(--border);background:var(--surface);font-family:var(--f-mono);font-size:.75rem;cursor:pointer}
.steps-dots button[aria-current="true"]{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.pts{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:.88rem;margin:10px 0}
.kv dt{color:var(--muted);font-weight:600}
.kv dd{margin:0}
.picker-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.pick{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.pick .art{background:var(--floor);border-radius:5px;overflow:hidden;line-height:0}
.pick .art svg{width:100%;height:auto}

/* ---- Editor ---- */
.editor{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;align-items:start}
@media(max-width:900px){.editor{grid-template-columns:1fr}}
.ed-court{padding:12px}
.ed-court .stage{background:var(--floor);border-radius:8px;overflow:hidden;line-height:0;display:flex;justify-content:center;touch-action:none}
.ed-court .stage svg{width:100%;height:auto;max-height:72vh}
.toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;align-items:center}
.toolbar .sep{width:1px;height:22px;background:var(--border);margin:0 4px}
.frames{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:10px}
.frames button.f{min-width:64px;border:1px solid var(--border);background:var(--surface);border-radius:7px;padding:5px 8px;cursor:pointer;font-family:var(--f-mono);font-size:.8rem}
.frames button.f[aria-current="true"]{background:var(--navy);color:var(--on-navy);border-color:var(--navy)}
.sel-box{margin-top:10px;padding:10px;border:1px dashed var(--line-strong);border-radius:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:.88rem}
.ball-row{display:flex;gap:6px;align-items:center;margin-top:6px}
.ball-row select{width:auto;flex:1}
.ed-form{padding:16px;display:flex;flex-direction:column;gap:12px}
.checks{display:flex;gap:12px;flex-wrap:wrap}
.checks label{display:flex;gap:6px;align-items:center;font-size:.9rem}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;color:var(--muted);margin-top:8px}
.legend span{display:inline-flex;align-items:center;gap:5px}
.legend svg{width:30px;height:10px}
.legend svg line,.legend svg path{stroke:var(--ink);stroke-width:1.6;fill:none}

/* ---- Print preview ---- */
.sheet{background:#fff;color:#111;padding:28px;border-radius:6px;border:1px solid var(--border);font-family:var(--f-body)}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;font-size:.88rem;z-index:99;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.show{opacity:1}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}

/* ---- Branding, auth, team settings ---- */
.brand-logo{width:48px;height:48px;object-fit:contain;flex:none}
.brand h1{overflow-wrap:anywhere}
.top-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.link-btn{background:none;border:none;padding:0;color:var(--accent-ink);font-weight:600;cursor:pointer;text-decoration:underline;font-size:.88rem}
.form-err{color:var(--crit);font-size:.86rem;margin:0;min-height:1.2em}
.auth-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:28px;align-items:center;padding-block:24px}
@media(max-width:820px){.auth-wrap{grid-template-columns:1fr}}
.auth-hero h2{font-size:clamp(2rem,5vw,3.2rem);text-transform:uppercase;line-height:.98;max-width:14ch}
.hero-list{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:8px;font-size:1.02rem}
.hero-list li{display:flex;gap:10px;align-items:center}
.hero-list li::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent);flex:none}
.auth-card{padding:24px;max-width:520px;width:100%}
.auth-card h2{font-size:1.6rem;text-transform:uppercase;margin-bottom:14px}
.setup-steps{line-height:1.6;padding-left:20px}
.btn.google{width:100%;padding:11px;font-size:.95rem;gap:10px}
.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.8rem;margin:16px 0}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--border)}
.welcome{margin:8px 0 16px}.welcome h2{font-size:2rem;text-transform:uppercase}
.onboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.ob-card{padding:20px}.ob-card h2{font-size:1.4rem;text-transform:uppercase}
.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
@media(max-width:860px){.team-grid{grid-template-columns:1fr}}
.set-card{padding:18px}.set-card h2{font-size:1.3rem;text-transform:uppercase;margin-bottom:12px}
.set-grid{display:flex;flex-direction:column;gap:14px}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.swatch{display:flex;border-radius:8px;overflow:hidden;border:2px solid var(--border);cursor:pointer;padding:0;background:none;height:30px}
.swatch span{width:22px;height:100%}
.swatch[aria-pressed="true"]{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface) inset}
.color-row{display:flex;gap:10px;align-items:center}
.color-row input[type=color]{width:46px;height:36px;padding:2px;border:1px solid var(--border);border-radius:7px;background:var(--surface);cursor:pointer;flex:none}
.logo-drop{display:flex;align-items:center;gap:14px;padding:12px;border:1px dashed var(--line-strong);border-radius:10px;flex-wrap:wrap}
.logo-drop .ph{width:72px;height:72px;border-radius:8px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}
.logo-drop .ph img{max-width:100%;max-height:100%;object-fit:contain}
.floor-opts{display:flex;gap:8px;flex-wrap:wrap}
.floor-opts button{border:2px solid var(--border);border-radius:8px;padding:0;cursor:pointer;background:var(--surface);display:flex;flex-direction:column;align-items:center;font-size:.78rem;overflow:hidden}
.floor-opts button[aria-pressed="true"]{border-color:var(--ink)}
.floor-opts svg{width:96px;height:53px;display:block}
.floor-opts span{padding:3px 6px}
.goal-list,.staff{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.goal-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}
.goal-list label{display:flex;gap:8px;align-items:center;min-width:0}
.goal-list .done,.rail-goals .done{color:var(--muted);text-decoration:line-through}
.staff li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.staff li>div{flex:1;min-width:0;overflow-wrap:anywhere}
.code-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.code-box .mono{font-size:1.4rem;font-weight:600;letter-spacing:.18em;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:6px 12px}
.rail-team{margin-top:6px;border-top:1px solid var(--border);padding-top:4px}
.rail-goals{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:.86rem}
.rail-goals li{display:flex;gap:6px}.rail-goals li span{color:var(--accent-ink);flex:none}
code{font-family:var(--f-mono);font-size:.85em;background:var(--surface-2);padding:1px 5px;border-radius:4px}
#print-root{display:none}
@media print{
  @page{size:letter;margin:.5in}
  body{background:#fff!important}
  body>*:not(#print-root){display:none!important}
  #print-root{display:block;color:#111;font-family:var(--f-body)}
}

.eyebrow{font-family:var(--f-display);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-ink);margin:0 0 8px;font-size:1rem}
.hero-lede{font-size:1.08rem;color:var(--muted);margin:14px 0 0;max-width:34ch;line-height:1.45}
.hero-logo{width:min(340px,80%);height:auto;display:block;margin-bottom:22px}
:root:not([data-theme="light"]) .hero-logo{}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .hero-logo{content:url(brand/on-the-court-logo-reversed.svg?v=3);border-radius:12px}}
:root[data-theme="dark"] .hero-logo{content:url(brand/on-the-court-logo-reversed.svg?v=3);border-radius:12px}
.brand-mark{width:44px;height:44px}

/* ---- Team routines ---- */
.tl-item.routine{background:linear-gradient(90deg,var(--accent-soft),transparent 70%)}
.routine-badge{display:flex!important;align-items:center;justify-content:center;background:var(--surface)!important;height:56px}
@media(max-width:640px){.routine-badge{display:none!important}}
.routine-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.routine-list li{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}
.routine-list li>div:first-child{min-width:0;display:flex;flex-direction:column;gap:2px}

/* ---- Timer (inline) ---- */
.run-clock{font-family:var(--f-display);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.01em;font-size:1.5rem;line-height:1;color:var(--ink);min-width:3.2ch}
.run-clock.big{font-size:2.2rem}
.run-clock.warn{color:var(--warn)}
.run-clock.crit{color:var(--crit)}
.run-clock.over{color:var(--crit)}
.run-clock.paused{opacity:.55}
.run-pill{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px;background:var(--surface);border:2px solid var(--accent);border-radius:10px;margin-bottom:2px}
.tl-item.live{box-shadow:inset 4px 0 0 var(--accent);background:var(--accent-soft)}
.run-from{color:var(--accent-ink)}
.run-bar-inline{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;margin:-6px -6px 16px;border-radius:10px;background:var(--surface);border:2px solid var(--accent);box-shadow:var(--shadow)}
.run-bar-inline.done{border-color:var(--ok)}
.live-dot{width:10px;height:10px;border-radius:50%;background:var(--crit);animation:pulse 1.2s infinite;flex:none}
@keyframes pulse{50%{opacity:.25}}
@media(max-width:640px){.hide-sm{display:none}}

/* ---- Full-screen run mode (always dark for gym visibility) ---- */
.run{position:fixed;inset:0;z-index:90;background:#111111;color:#F4F1EA;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:clamp(8px,1.6vh,18px);
  padding:max(14px,env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px)) max(14px,env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));font-family:var(--f-body);overflow:hidden}
.run .muted-l{color:#A9A196}
.run-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.run-team{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 260px}
.run-team img,.run-team svg{width:clamp(40px,6vh,64px);height:clamp(40px,6vh,64px);object-fit:contain;flex:none}
.rt-name{font-family:var(--f-display);font-weight:800;font-size:clamp(1.1rem,2.6vh,1.7rem);text-transform:uppercase;letter-spacing:.02em}
.rt-sub{color:#A9A196;font-size:.95rem}
.run-now{font-family:var(--f-display);font-weight:700;font-size:clamp(1.2rem,3vh,2rem);font-variant-numeric:tabular-nums}
.run-sched{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:1rem}
.sched{font-weight:700;padding:4px 12px;border-radius:999px;font-size:.95rem}
.sched.ok{background:#1E3524;color:#7DDB9A}.sched.behind{background:#3A1F1C;color:#FF8A7E}.sched.ahead{background:#3A3122;color:#EBD3A6}
.run-top-btns{display:flex;gap:8px}
.run-main{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(16px,3vw,48px);align-items:center;min-height:0}
@media(max-width:820px),(orientation:portrait){.run-main{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}}
.run-left{min-width:0;display:flex;flex-direction:column;gap:clamp(4px,1vh,12px)}
.run-kind{font-family:var(--f-display);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-size:clamp(.9rem,2.2vh,1.3rem)}
.run .run-kind{color:#FFB37E}
.run-title{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(2rem,6.5vh,4.6rem);line-height:.95;text-wrap:balance}
.run-clock.giant{font-size:clamp(5rem,min(24vh,17vw),19rem);color:#FFFFFF;line-height:.9;margin:clamp(4px,1vh,12px) 0}
.run-clock.giant.warn{color:#FFD166}.run-clock.giant.crit,.run-clock.giant.over{color:#FF5A4E}
.run-clock.giant.crit{animation:pulse .9s infinite}
.run-clock.giant.paused{opacity:.5}
.run-note{font-size:clamp(1rem,2.4vh,1.4rem);color:#FFD9BF}
.run-pts{margin:0;padding-left:1.2em;font-size:clamp(1rem,2.4vh,1.45rem);line-height:1.35;display:flex;flex-direction:column;gap:4px;color:#E6E0D6}
.run-right{min-height:0;height:100%;display:flex;align-items:center;justify-content:center}
.run-stage{width:100%;height:100%;max-height:100%;display:flex;flex-direction:column;justify-content:center;min-height:0}
.run-stage .stage{border:none;border-radius:14px}
.run-stage .stage svg{max-height:52vh;width:100%}
.run-right{overflow:hidden}
.run-top{position:relative;z-index:2}
@media(max-width:820px),(orientation:portrait){.run-stage .stage svg{max-height:34vh}.run-clock.giant{font-size:clamp(4.5rem,15vh,12rem)}}
.run-stage .controls,.run-stage .steps-dots{display:none}
.run-stage .caption{color:#E6E0D6;font-size:clamp(.95rem,2.2vh,1.25rem);margin-top:8px}
.run-stage .caption b{color:#FFB37E}
.run-side-msg{text-align:center;max-width:32ch;font-size:clamp(1.1rem,2.8vh,1.6rem);line-height:1.4;color:#E6E0D6}
.big-msg{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(2.4rem,8vh,5rem)}
.run-next{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;font-size:clamp(1.1rem,3vh,1.9rem);min-height:1.2em}
.run-next b{font-family:var(--f-display);font-weight:800;text-transform:uppercase}
.lbl-l{font-size:.6em;text-transform:uppercase;letter-spacing:.14em;color:#A9A196;font-weight:700}
.run-progress{display:flex;gap:3px;height:12px}
.run-progress .seg{background:#2E2B27;border-radius:3px;position:relative;overflow:hidden;min-width:4px}
.run-progress .seg.past{background:var(--accent);opacity:.55}
.run-progress .seg.cur{background:#45403A}
.run-progress .seg.cur i{position:absolute;inset:0 auto 0 0;background:var(--accent);display:block}
.run-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.rbtn{font-family:var(--f-display);font-weight:700;font-size:clamp(1rem,2.4vh,1.4rem);text-transform:uppercase;letter-spacing:.04em;padding:clamp(8px,1.4vh,14px) clamp(14px,2vw,26px);border-radius:12px;border:2px solid #45403A;background:#1E1C1A;color:#F4F1EA;cursor:pointer;min-height:48px}
.rbtn:hover{border-color:#6A6258}
.rbtn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);min-width:9ch}
.rbtn.ghost{background:transparent;font-size:1rem;min-height:40px;padding:6px 14px}
.rbtn.toggle[aria-pressed="true"]{border-color:#7DDB9A;color:#7DDB9A}
.run .court-floor{fill:var(--floor)}
@media (prefers-reduced-motion: reduce){.run-clock.giant.crit,.live-dot{animation:none}}

/* ---- Editor: text boxes + selection ---- */
.tk-text rect{fill:var(--surface);stroke:var(--ink);stroke-width:.15;opacity:.94}
.tk-text text{fill:var(--ink);font-family:var(--f-display);font-weight:700;text-anchor:middle;dominant-baseline:central}
.sel-box.on{border:2px solid var(--accent);background:var(--accent-soft);border-style:solid}
.sel-name{font-family:var(--f-display);font-size:1.05rem;text-transform:uppercase;letter-spacing:.03em}
.btn.danger-solid{background:var(--crit);border-color:var(--crit);color:#fff}
.tok-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.tok-chip{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.8rem;overflow:hidden}
.tok-chip.on{border-color:var(--accent);background:var(--accent-soft)}
.tok-chip button{background:none;border:none;padding:4px 8px;cursor:pointer;color:inherit;font:inherit}
.tok-chip .x{color:var(--crit);padding:4px 8px 4px 2px;font-weight:700}

/* ---- Roster & groups ---- */
.ro-add{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ro-add input{flex:1 1 120px;width:auto}
.ro-list{list-style:none;margin:0;padding:0;max-height:60vh;overflow:auto;border-top:1px solid var(--border)}
.ro-list li{display:flex;align-items:center;gap:10px;padding:6px 2px;border-bottom:1px solid var(--border)}
.ro-num{width:2.6ch;text-align:right;color:var(--muted);font-weight:600}
.ro-name{font-weight:600;min-width:0;overflow-wrap:anywhere}
.gdot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.gs-card{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:var(--surface)}
.gs-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:8px}
.gs-group{background:var(--surface-2);border-radius:8px;padding:8px}
.gs-head{display:flex;align-items:center;gap:6px;font-weight:700;margin-bottom:2px}
.gs-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.gs-col{background:var(--surface-2);border-radius:8px;padding:8px}
.gs-gname{border:none;background:transparent;font-weight:700;padding:2px 0;border-bottom:1px dashed var(--border);border-radius:0}
table.mini{width:100%;border-collapse:collapse;font-size:.88rem}
table.mini th,table.mini td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
table.mini th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);position:sticky;top:0}
.seg-pick{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.seg-pick button{border:none;background:var(--surface);padding:5px 10px;font-size:.8rem;font-weight:700;cursor:pointer;border-right:1px solid var(--border);color:var(--muted)}
.seg-pick button:last-child{border-right:none}
.seg-pick button[aria-pressed="true"]{background:var(--gc,var(--surface-2));color:#fff}
.seg-pick button.none[aria-pressed="true"]{background:var(--surface-2);color:var(--ink)}
.who{display:flex;gap:4px;flex-wrap:wrap}
.who-chip{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border)}
.pickbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:6px 12px;cursor:pointer;font-weight:600}
.pickbtn.sm{padding:4px 10px;font-size:.82rem}
.pickbtn[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}

/* ---- Stations ---- */
.st-grid{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:10px;margin-top:12px}
@media(max-width:700px){.st-grid{grid-template-columns:1fr}}
.st-card{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--surface-2)}
.rot-table{margin-top:14px;overflow-x:auto}
.tl-item.stations{background:linear-gradient(90deg,var(--navy-soft),transparent 75%)}
.st-row{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:8px;margin:4px 0}
@media(max-width:640px){.st-row{grid-template-columns:1fr}}
.st-mini{border:1px solid var(--border);border-radius:8px;padding:6px 8px;background:var(--surface);display:flex;flex-direction:column;gap:4px;min-width:0}
.st-mini-top{display:flex;gap:8px;align-items:center;min-width:0}
.st-art{width:58px;flex:none;border:1px solid var(--border);border-radius:5px;overflow:hidden;line-height:0;padding:0;background:var(--floor);cursor:pointer}
.st-art svg{width:100%;height:auto}
/* full-screen stations */
.run-st-main{grid-template-columns:1fr!important;grid-template-rows:auto minmax(0,1fr);align-items:stretch}
.run-st-head{display:flex;align-items:flex-end;gap:clamp(12px,3vw,40px);flex-wrap:wrap}
.run-clock.giant.st-giant{font-size:clamp(4rem,min(16vh,12vw),12rem);margin:0}
.st-total{font-size:clamp(1rem,2.4vh,1.4rem)}
.run-st-grid{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:clamp(10px,2vw,24px);min-height:0}
@media(orientation:portrait){.run-st-grid{grid-template-columns:1fr}}
.run-st-card{background:#1B1A18;border:2px solid #2E2B27;border-radius:16px;padding:clamp(10px,1.6vh,18px);display:flex;flex-direction:column;gap:8px;min-height:0;overflow:hidden}
.st-name{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.4rem,4vh,2.6rem);line-height:1}
.st-group{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:clamp(1.1rem,3vh,1.8rem);border-left:6px solid var(--gc);padding-left:10px}
.st-players{font-size:.62em;color:#E6E0D6}
.st-stage{flex:1;min-height:0}
.st-stage{display:flex;flex-direction:column}
.st-stage .stage{flex:1;min-height:0}
.st-stage .stage svg{max-height:24vh!important;width:auto!important;max-width:100%}
.st-stage .caption{font-size:clamp(.85rem,1.9vh,1.05rem)!important;min-height:0}
.st-next{font-size:clamp(.95rem,2.2vh,1.2rem)}

/* ---- Insert between blocks ---- */
.tl-insert{list-style:none;position:relative;height:0;z-index:2}
.tl-insert .ins-plus{position:absolute;left:50%;top:-13px;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;border:2px solid var(--accent);background:var(--surface);color:var(--accent-ink);font-weight:800;font-size:1rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s;box-shadow:var(--shadow)}
.tl-insert::before{content:"";position:absolute;left:0;right:0;top:-10px;height:20px}
.tl-insert:hover .ins-plus,.tl-insert .ins-plus:focus-visible{opacity:1}
.tl-insert:hover::after{content:"";position:absolute;left:4%;right:4%;top:-1px;height:2px;background:var(--accent);opacity:.5;pointer-events:none}
@media (hover:none){.tl-insert .ins-plus{opacity:.75;width:24px;height:24px;top:-12px}}
.tl-insert .ins-menu{display:none}
.tl-insert.open{height:auto;padding:8px 6px;background:var(--accent-soft);border-bottom:1px solid var(--border)}
.tl-insert.open .ins-plus{display:none}
.tl-insert.open .ins-menu{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

.st-pick{display:flex;gap:8px;align-items:center}
.st-card .st-art{width:64px}
.st-who{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:4px}
.st-who select{width:auto}

/* ===== Sub-tabs (Playbook / Team) ===== */
.subtabs{display:inline-flex;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:4px;margin:-4px 0 16px;max-width:100%;overflow-x:auto}
.subtabs button{background:none;border:none;border-radius:999px;padding:7px 16px;font-family:var(--f-display);font-weight:700;font-size:.95rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer;white-space:nowrap}
.subtabs button:hover{color:var(--ink)}
.subtabs button[aria-selected="true"]{background:var(--navy);color:var(--on-navy)}

/* ===== Rail dropdowns ===== */
.rail-drop{margin-top:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}
.rail-drop>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:9px 11px;font-family:var(--f-display);font-weight:700;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}
.rail-drop>summary::-webkit-details-marker{display:none}
.rail-drop>summary::after{content:'';margin-left:auto;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px);transition:transform .15s}
.rail-drop[open]>summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.rail-drop .count{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:0 8px;font-family:var(--f-body);font-size:.75rem;color:var(--muted);letter-spacing:0}
.rail-drop .plist{padding:0 6px 8px;max-height:320px;overflow:auto}

/* ===== Calendar ===== */
.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
@media(max-width:960px){.cal-layout{grid-template-columns:1fr}}
.cal-panel{padding:16px}
.cal-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cal-head h2{margin:0;font-size:1.7rem;text-transform:uppercase}
.cal-hint{margin:4px 0 12px}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-dow{font-family:var(--f-display);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:2px 6px}
.cal-day{min-height:104px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:5px;display:flex;flex-direction:column;gap:3px;cursor:pointer;min-width:0;transition:border-color .12s,background .12s}
.cal-day:hover{border-color:var(--accent);background:var(--accent-soft)}
.cal-day.other{background:var(--surface-2);opacity:.6}
.cal-day.past .cal-num{color:var(--muted)}
.cal-day.today{border:2px solid var(--accent);padding:4px}
.cal-day.today .cal-num{background:var(--accent);color:var(--on-accent);border-radius:999px;padding:0 7px}
.cal-top{display:flex;align-items:center;justify-content:space-between}
.cal-num{font-weight:700;font-size:.9rem}
.cal-add{border:none;background:none;color:var(--accent-ink);font-size:1.1rem;font-weight:700;line-height:1;width:24px;height:24px;border-radius:6px;cursor:pointer;opacity:0}
.cal-day:hover .cal-add,.cal-add:focus-visible{opacity:1}
.cal-add:hover{background:var(--surface)}
.cal-items{display:flex;flex-direction:column;gap:3px;min-width:0}
.cal-chip{display:block;width:100%;text-align:left;border:none;border-left:3px solid var(--accent);background:var(--navy-soft);color:var(--ink);border-radius:5px;padding:3px 6px;font-size:.76rem;line-height:1.25;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--f-body)}
.cal-chip:hover{background:var(--navy);color:var(--on-navy)}
.cal-chip b{font-weight:700}
@media(max-width:640px){
  .cal-panel{padding:10px}.cal-grid{gap:2px}
  .cal-day{min-height:62px;padding:3px}.cal-day.today{padding:2px}
  .cal-add{display:none}
  .cal-chip{font-size:0;padding:0;height:6px;border-left:none;background:var(--accent);border-radius:3px}
  .cal-dow{font-size:.7rem;padding:2px}
}

/* ===== Full screen: timer-only view (diagram off) ===== */
.run-top-btns{flex-wrap:wrap}
.rbtn.toggle[aria-pressed="false"]{opacity:.75}
.run-main.timer-only{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr)}
.run-main.timer-only .run-right{justify-content:flex-end}
.run-clock.giant.huge{font-size:clamp(7rem,min(46vh,27vw),36rem);margin:0;line-height:.85;text-align:right;white-space:nowrap}
.run-main.timer-only .run-pts{font-size:clamp(1.1rem,2.6vh,1.8rem)}
@media(max-width:820px),(orientation:portrait){
  .run-main.timer-only{grid-template-columns:1fr}
  .run-main.timer-only .run-right{justify-content:center;order:-1}
  .run-clock.giant.huge{font-size:clamp(6rem,24vw,14rem);text-align:center}
}

/* ===== Full-screen view toggles on the practice plan ===== */
.run-view-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-4px 0 14px}
.run-view-row .lbl{margin:0 4px 0 0}
.run-view-row .chip-static{font-size:.8rem;font-weight:700;padding:5px 11px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}
.btn.view-toggle{border-radius:999px}
.btn.view-toggle[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.btn.view-toggle[aria-pressed="true"]::before{content:'✓ '}
.still-notes{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;color:#E6E0D6;font-size:clamp(.9rem,2vh,1.15rem)}
.still-notes b{display:inline-block;min-width:1.6em;color:#FFB37E}
.view-seg{display:inline-flex;gap:0}
.view-seg>button:first-child{border-top-right-radius:0!important;border-bottom-right-radius:0!important}
.view-seg>button:last-child{border-top-left-radius:0!important;border-bottom-left-radius:0!important;margin-left:-1px}
.view-seg>.btn.view-toggle[aria-pressed="true"]::before{content:''}
.tl-view{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:2px 0}
.tl-view-lbl{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:2px}
.btn.xs{padding:3px 9px;font-size:.74rem;min-height:0;line-height:1.3}
.btn.view-toggle:not([aria-pressed="true"]){color:var(--muted)}
.btn.view-toggle[data-mixed="true"]{border-color:var(--navy);color:var(--ink);border-style:dashed}

/* ===== Full screen bottom: named Back/Next + What's Coming Next tile ===== */
.run-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(12px,2vw,24px);align-items:center}
.run-controls{justify-content:flex-start;align-items:stretch}
.rbtn.nav{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;max-width:clamp(150px,16vw,240px);text-align:left}
.rbtn.nav[data-run="next"]{align-items:flex-end;text-align:right}
.rbtn.nav .nav-name{font-family:var(--f-body);font-weight:600;font-size:clamp(.72rem,1.6vh,.95rem);text-transform:none;letter-spacing:0;color:#C9C1B5;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rbtn:disabled{opacity:.35;cursor:default}
.run-next-tile{width:clamp(250px,27vw,420px);background:#1E1C1A;border:1px solid #3A3631;border-radius:14px;padding:clamp(10px,1.4vh,16px) clamp(12px,1.4vw,18px)}
.rnt-head{font-size:clamp(.7rem,1.5vh,.85rem);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#FFB37E;margin-bottom:8px}
.rnt-body{display:flex;gap:12px;align-items:center;min-width:0}
.rnt-art{flex:none;width:clamp(70px,7vw,110px);border-radius:8px;overflow:hidden;line-height:0}
.rnt-art svg{width:100%;height:auto;display:block}
.rnt-text{min-width:0}
.rnt-name{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.1rem,2.8vh,1.7rem);line-height:1.05;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rnt-meta{color:#A9A196;font-size:clamp(.8rem,1.7vh,1rem);margin-top:4px}
@media(max-width:1000px),(orientation:portrait){
  .run-bottom{grid-template-columns:1fr}
  .run-next-tile{width:auto;order:-1}
  .run-controls{justify-content:center}
}
.run-controls{flex-wrap:nowrap;gap:clamp(6px,.8vw,10px)}
.run-controls .rbtn{padding-left:clamp(10px,1.3vw,22px);padding-right:clamp(10px,1.3vw,22px)}
.rbtn.nav{max-width:clamp(120px,13vw,220px)}
.run-next-tile{width:clamp(230px,23vw,380px)}
.rnt-name{font-size:clamp(1rem,2.3vh,1.45rem)}
@media(max-width:1000px),(orientation:portrait){.run-controls{flex-wrap:wrap}}
.run-controls .rbtn{white-space:nowrap;font-size:clamp(.85rem,min(2.4vh,1.25vw),1.4rem)}
.rnt-name{-webkit-line-clamp:2}
@media(max-width:1000px),(orientation:portrait){.run-next-tile{width:100%;box-sizing:border-box}.run-controls .rbtn{font-size:clamp(.85rem,2.2vh,1.2rem)}}
.rnt-name{-webkit-line-clamp:3}
/* Full screen stations: players listed top to bottom with full names */
.st-group{flex-direction:column;align-items:flex-start;gap:4px}
.st-group>b{display:flex;align-items:center;gap:8px}
.st-group .gdot{display:none}
ul.st-players{list-style:none;margin:0;padding:0;font-size:.66em;line-height:1.3;color:#E6E0D6;display:flex;flex-direction:column;gap:2px}
ul.st-players.cols{display:block;columns:2;column-gap:18px}
ul.st-players.cols li{break-inside:avoid}
.rnt-art{width:auto;max-width:clamp(70px,7vw,110px)}.rnt-art svg{max-height:clamp(56px,9vh,84px);width:auto;max-width:100%}

/* ===== Time by category (Calendar) ===== */
:root{--mix-1:#2a78d6;--mix-2:#eb6834;--mix-3:#1baf7a;--mix-4:#eda100;--mix-5:#e87ba4;--mix-6:#008300;--mix-7:#6250d6;--mix-other:#9A938A}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--mix-1:#3987e5;--mix-2:#d95926;--mix-3:#199e70;--mix-4:#c98500;--mix-5:#d55181;--mix-6:#008300;--mix-7:#9085e9;--mix-other:#6F685F}}
:root[data-theme="dark"]{--mix-1:#3987e5;--mix-2:#d95926;--mix-3:#199e70;--mix-4:#c98500;--mix-5:#d55181;--mix-6:#008300;--mix-7:#9085e9;--mix-other:#6F685F}
.mix-panel{padding:16px}
.mix-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between}
.mix-head h2{margin:0;font-size:1.35rem;text-transform:uppercase}
.mix-ranges{display:flex;gap:6px;flex-wrap:wrap}
.mix-body{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:center;margin-top:14px}
@media(max-width:640px){.mix-body{grid-template-columns:1fr;justify-items:center}.mix-table{width:100%}}
.mix-chart{position:relative;width:220px;height:220px}
.mix-chart svg{width:100%;height:100%;display:block}
.mix-seg{stroke:var(--surface);stroke-width:1.2;transition:opacity .12s;cursor:default}
.mix-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center}
.mix-center b{font-family:var(--f-display);font-size:1.6rem;line-height:1}
.mix-center span{font-size:.78rem;color:var(--muted)}
.mix-tip{position:absolute;left:50%;bottom:-6px;transform:translate(-50%,100%);background:var(--ink);color:var(--surface);font-size:.8rem;font-weight:600;padding:5px 9px;border-radius:6px;white-space:nowrap;z-index:3;pointer-events:none}
.mix-table{border-collapse:collapse;font-size:.9rem}
.mix-table th,.mix-table td{padding:5px 10px 5px 0;text-align:left;border-bottom:1px solid var(--border);font-weight:400}
.mix-table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.mix-table tbody th{font-weight:600;color:var(--ink)}
.mix-table td{font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.mix-sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:8px;vertical-align:-1px}
.mix-panel .dim{opacity:.35}
.cat-chips{display:flex;flex-wrap:wrap;gap:6px}
.chip.custom{display:inline-flex;align-items:center;gap:4px;background:var(--accent-soft);color:var(--accent-ink)}
.chip-x{border:none;background:none;color:inherit;cursor:pointer;font-size:.8rem;padding:0 2px;line-height:1}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cal-layout>.cal-panel{grid-column:1;grid-row:1}
.cal-layout>.mix-panel{grid-column:1;grid-row:2}
.cal-layout>.cal-side{grid-column:2;grid-row:1 / span 2}
@media(max-width:960px){.cal-layout>.cal-panel,.cal-layout>.mix-panel,.cal-layout>.cal-side{grid-column:1;grid-row:auto}}
.mix-center span{max-width:110px;line-height:1.2}
.mix-center b{font-size:1.15rem;max-width:104px;line-height:1.05}

/* ===== Full screen scoreboard ===== */
.run-main.sb-mode{display:flex;flex-direction:column;gap:clamp(8px,1.5vh,16px);align-items:stretch;justify-content:center;min-height:0}
.sb-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.sb-drill{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.3rem,3.4vh,2.2rem);line-height:1}
.sb-block{display:flex;flex-direction:column;align-items:flex-end}
.sb-block .run-clock{font-size:clamp(1.8rem,5vh,3.2rem);font-family:var(--f-display);font-weight:800;line-height:1}
.sb{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:clamp(10px,1.6vw,24px);align-items:stretch;min-height:0}
.sb-team,.sb-mid{background:#1B1A18;border:2px solid #2E2B27;border-radius:18px;padding:clamp(10px,1.6vh,18px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(6px,1.2vh,12px);min-width:0}
.sb-name{width:100%;text-align:center;background:transparent;border:1px dashed transparent;border-radius:8px;color:#F4F1EA;font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.2rem,3.4vh,2.2rem);padding:2px 6px}
.sb-name:hover,.sb-name:focus{border-color:#6A6258;outline:none}
.sb-score{font-family:var(--f-display);font-weight:800;font-size:clamp(4rem,min(17vh,10vw),11rem);line-height:.9;color:#FFFFFF;font-variant-numeric:tabular-nums}
.sb-btns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%}
.sb-btns .rbtn{padding:clamp(6px,1.2vh,12px) 4px;min-width:0}
.sb-game{font-family:var(--f-display);font-weight:800;font-size:clamp(3.4rem,min(14vh,9vw),9rem);line-height:.9;color:#FFFFFF;font-variant-numeric:tabular-nums}
.sb-game.low{color:#FFD166}
.sb-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;align-items:center}
.rbtn.sm{font-size:clamp(.8rem,1.8vh,1rem);padding:clamp(5px,.9vh,9px) clamp(8px,1vw,14px)}
.sb-shotwrap{display:flex;align-items:center;gap:clamp(10px,1.4vw,20px);background:#141312;border-radius:14px;padding:clamp(6px,1vh,12px) clamp(10px,1.4vw,18px);width:100%;justify-content:center;flex-wrap:wrap}
.sb-shotwrap>div:first-child{text-align:center}
.sb-shot{font-family:var(--f-display);font-weight:800;font-size:clamp(2.6rem,min(10vh,6vw),6rem);line-height:.9;color:#FF8A4C;font-variant-numeric:tabular-nums;min-width:2.2ch}
.sb-shot.low{color:#FF5A4E}
.sb-shot.off{color:#6A6258;font-size:clamp(1.6rem,5vh,3rem)}
.sb-shotbtns{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:360px}
.sb-small{gap:8px}
.sb-period{font-family:var(--f-display);font-size:1.6rem;min-width:1.2ch;text-align:center}
.sb-edit{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;justify-content:center;background:#141312;border-radius:12px;padding:10px 12px;color:#E6E0D6;font-size:.9rem}
.sb-edit label{display:flex;flex-direction:column;gap:4px;font-weight:600}
.sb-edit input{width:64px;background:#1E1C1A;border:1px solid #45403A;color:#F4F1EA;border-radius:8px;padding:6px 8px;font-size:1rem}
.sb-mmss{display:flex;align-items:center;gap:4px}
@media(max-width:900px),(orientation:portrait){
  .sb{grid-template-columns:1fr 1fr}
  .sb-mid{grid-column:1 / -1;order:-1}
  .sb-score{font-size:clamp(3.4rem,14vw,7rem)}
  .sb-game{font-size:clamp(3rem,15vw,6rem)}
}
/* scoreboard: compact pass */
.run-top-btns .rbtn.ghost{font-size:clamp(.75rem,1.6vh,.95rem);padding:5px 11px;min-height:34px}
.sb-block .run-clock{color:#F4F1EA}
.sb-block .run-clock.paused{opacity:.55}
.sb-mid{position:relative;justify-content:space-between}
.sb-midhead{display:flex;align-items:center;justify-content:space-between;width:100%}
.sb-per{display:flex;align-items:center;gap:6px}
.rbtn.xs{font-size:.85rem;padding:3px 10px;min-height:0}
.sb-game{font-size:clamp(3rem,min(12vh,8vw),8rem)}
.sb-score{font-size:clamp(3.4rem,min(15vh,9vw),10rem)}
.sb-go{min-width:0}
.sb-shotwrap{padding:clamp(4px,.8vh,10px) clamp(8px,1vw,14px)}
.sb-shot{font-size:clamp(2.2rem,min(8vh,5vw),5rem)}
.sb-shotbtns{max-width:none}
.sb-edit{position:absolute;inset:8px;z-index:4;flex-direction:column;align-items:stretch;justify-content:center;gap:12px;background:#141312;border:2px solid #45403A;border-radius:14px;padding:16px;font-size:1rem}
.sb-edit[hidden]{display:none}
.sb-edit-title{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:1.3rem}
.sb-edit label{flex-direction:row;align-items:center;justify-content:space-between}
.sb-edit input{width:72px}
.sb-team{justify-content:space-evenly}
/* Time by category sits in the right column, beside the calendar */
.cal-layout{grid-template-columns:minmax(0,1fr) 340px}
.cal-layout>.cal-panel{grid-column:1;grid-row:1 / span 2}
.cal-layout>.cal-side{grid-column:2;grid-row:1}
.cal-layout>.mix-panel{grid-column:2;grid-row:2;align-self:start}
.cal-layout .mix-head{flex-direction:column;align-items:flex-start}
.cal-layout .mix-head h2{font-size:1.05rem;letter-spacing:.04em}
.cal-layout .mix-ranges .btn{font-size:.75rem;padding:4px 9px}
.cal-layout .mix-body{grid-template-columns:1fr;justify-items:center;gap:12px}
.cal-layout .mix-chart{width:190px;height:190px}
.cal-layout .mix-table{width:100%;font-size:.84rem}
.cal-layout .mix-table th,.cal-layout .mix-table td{padding:4px 6px 4px 0}
@media(max-width:960px){.cal-layout{grid-template-columns:1fr}.cal-layout>.cal-panel,.cal-layout>.cal-side,.cal-layout>.mix-panel{grid-column:1;grid-row:auto}}
/* typeable scoreboard numbers */
.sb-type{background:transparent;border:2px dashed transparent;border-radius:12px;text-align:center;width:100%;max-width:100%;padding:0 4px;font-family:var(--f-display);font-weight:800;box-sizing:border-box;cursor:text}
.sb-type:hover{border-color:#45403A}
.sb-type:focus{outline:none;border-color:var(--accent);border-style:solid;background:#141312}
input.sb-score{color:#FFFFFF;max-width:4.2ch}
input.sb-game{color:#FFFFFF;max-width:6ch}
input.sb-game.low{color:#FFD166}
input.sb-shot{color:#FF8A4C;max-width:3.2ch}
input.sb-shot.low{color:#FF5A4E}
input.sb-shot.off{color:#6A6258;font-size:clamp(1.4rem,4vh,2.6rem);max-width:4ch}
.sb-hint{font-size:.78rem;color:#A9A196;margin-right:6px}
/* scoreboard: fit on one screen */
.run-main.sb-mode{overflow:hidden}
.sb{min-height:0;height:100%}
.sb-team,.sb-mid{min-height:0;overflow:hidden;gap:clamp(4px,.9vh,10px);padding:clamp(8px,1.2vh,14px)}
.sb-game{font-size:clamp(2.6rem,min(10vh,7vw),7rem);line-height:1}
.sb-score{font-size:clamp(3rem,min(13vh,8vw),9rem);line-height:1}
.sb-shot{font-size:clamp(2rem,min(7vh,4.5vw),4.4rem);line-height:1}
.sb-mid .sb-row{flex-wrap:nowrap}
.sb-mid .rbtn{font-size:clamp(.72rem,1.6vh,.95rem);padding:clamp(4px,.8vh,8px) clamp(7px,.8vw,12px)}
.sb-mid .rbtn.sb-go{font-size:clamp(.9rem,2vh,1.2rem)}
.sb-shotwrap{flex-wrap:nowrap}
.sb-shotbtns{flex-wrap:wrap;justify-content:flex-start;max-width:280px}
.sb-name{font-size:clamp(1.1rem,3vh,2rem)}
@media(max-width:900px),(orientation:portrait){.sb-mid .sb-row,.sb-shotwrap{flex-wrap:wrap}}
.sb-shotbtns{max-width:330px}

/* ===== Team look: primary color band on top, secondary color down the sides ===== */
body.in-team{background:var(--navy)}
body.in-team .shell{background:var(--bg);min-height:100vh;box-sizing:border-box;padding-left:24px;padding-right:24px;box-shadow:0 0 0 1px rgba(0,0,0,.06),0 12px 40px rgba(0,0,0,.22)}
body.in-team .masthead{background:var(--accent);color:var(--on-accent);margin:0 -24px 18px;padding:0 24px}
body.in-team .brand h1{color:var(--on-accent)}
body.in-team .brand .sub,body.in-team .top-right .status{color:var(--on-accent);opacity:.85}
body.in-team nav.tabs{border-bottom-color:color-mix(in srgb,var(--on-accent) 30%,transparent);margin-bottom:0}
body.in-team nav.tabs button{color:var(--on-accent);opacity:.72}
body.in-team nav.tabs button:hover{opacity:1}
body.in-team nav.tabs button[aria-selected="true"]{color:var(--on-accent);opacity:1;border-bottom-color:var(--on-accent)}
body.in-team .brand-mark rect:first-child{stroke:color-mix(in srgb,var(--on-accent) 40%,transparent)}
@media(max-width:640px){body.in-team .shell{padding-left:16px;padding-right:16px;box-shadow:none}body.in-team .masthead{margin:0 -16px 14px;padding:0 16px}}

/* ===== Drag to reorder the practice ===== */
.tl-grip{cursor:grab;touch-action:none;font-size:1.15rem;letter-spacing:-1px;color:var(--muted)}
.tl-grip:active{cursor:grabbing}
.tl-item.dragging{position:relative;z-index:20;background:var(--surface);box-shadow:0 10px 30px rgba(0,0,0,.22);border-radius:10px;opacity:.96;transition:none}
.tl-item.drop-before{box-shadow:inset 0 3px 0 var(--accent)}
.tl-item.drop-after{box-shadow:inset 0 -3px 0 var(--accent)}
body.is-dragging,body.is-dragging *{user-select:none;-webkit-user-select:none;cursor:grabbing!important}
@media(pointer:fine){.tl-item{cursor:grab}.tl-item input,.tl-item button,.tl-item select{cursor:auto}.tl-item button{cursor:pointer}}

/* ===== Groups: roster on the left, drag into groups ===== */
.gs-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.gs-dnd{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,2.2fr);gap:12px;align-items:stretch}
@media(max-width:720px){.gs-dnd{grid-template-columns:1fr}}
.gs-pool,.gs-drop{border:1px solid var(--border);border-radius:10px;background:var(--surface-2);padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px;transition:background .12s,border-color .12s}
.gs-pool{max-height:56vh;overflow:auto}
.gs-drop{border-top:4px solid var(--gc)}
.gs-groupcols{display:grid;grid-template-columns:repeat(min(var(--n),3),minmax(0,1fr));gap:10px;align-content:start}
@media(max-width:720px){.gs-groupcols{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gs-colhead{display:flex;align-items:center;gap:8px;min-width:0}
.gs-colhead .gs-gname{flex:1;min-width:0;font-weight:700}
.gs-chips{display:flex;flex-direction:column;gap:5px}
.gp-chip{display:flex;align-items:center;gap:7px;width:100%;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:6px 9px;font:inherit;font-size:.88rem;cursor:grab;touch-action:none;color:var(--ink)}
.gp-chip:hover{border-color:var(--line-strong)}
.gp-num{font-size:.75rem;color:var(--muted);min-width:1.6em}
.gp-chip.chip-picked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);background:var(--accent-soft)}
.gp-chip.chip-lifted{opacity:.35}
.chip-ghost{position:fixed;z-index:9999;pointer-events:none;box-shadow:0 10px 26px rgba(0,0,0,.25);transform:rotate(-2deg)}
[data-zone].zone-over{background:var(--accent-soft);border-color:var(--accent)}
.has-pick [data-zone]{cursor:pointer}
.has-pick [data-zone]:hover{border-color:var(--accent)}
.gs-dropmsg{margin:6px 2px;border:1px dashed var(--border);border-radius:8px;padding:10px;text-align:center}
.gs-filter{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
body.in-team .masthead .btn,body.in-team .masthead select{color:var(--ink);background:var(--surface)}
/* No secondary color on the sides: plain page background; the primary band runs edge to edge */
body.in-team{background:var(--bg)}
body.in-team .shell{box-shadow:none}
body.in-team .masthead{box-shadow:0 0 0 100vmax var(--accent);clip-path:inset(0 -100vmax)}
/* group chips on the plan are buttons that open the group editor */
.who-btn{font:inherit;cursor:pointer;border:1px solid var(--border)}
.who-btn:hover{border-color:var(--gc,var(--accent));background:var(--surface)}
/* Groups dropdown in the practice plan sidebar */
.rail-groups{padding:2px 10px 10px;display:flex;flex-direction:column;gap:10px;max-height:420px;overflow:auto}
.rg-set{border-top:1px solid var(--border);padding-top:8px}
.rg-set:first-child{border-top:none;padding-top:0}
.rg-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.rg-group{border-left:3px solid var(--gc);padding-left:8px;margin:6px 0}
.rg-gname{font-weight:700;font-size:.86rem;display:flex;align-items:center;gap:6px}
.rg-group ul{list-style:none;margin:2px 0 0;padding:0;font-size:.84rem;line-height:1.4}
.plan-groups{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-4px 0 14px}
.plan-groups .lbl{margin:0 4px 0 0}
.pg-set{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:5px 12px;font:inherit;font-size:.84rem;cursor:pointer;color:var(--ink)}
.pg-set:hover{border-color:var(--accent);background:var(--accent-soft)}
.pg-set b{font-weight:700}
.pg-g{display:inline-flex;align-items:center;gap:5px}
.tl-groups{display:inline-flex;gap:6px;flex-wrap:wrap}
.pg-set.sm{padding:2px 10px;font-size:.76rem;gap:8px}
/* Full screen: who's on this drill */
.st-set{font-size:.5em;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#A9A196}
.run-who{margin-top:clamp(6px,1.4vh,14px);display:flex;flex-direction:column;gap:6px;font-size:clamp(1.1rem,2.8vh,1.7rem)}
.run-who-set{font-size:.62em;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#FFB37E}
.run-who-cols{display:flex;flex-wrap:wrap;gap:12px 28px}
.run-who .st-group{border-left:6px solid var(--gc);padding-left:10px}
.sb-who{font-size:clamp(.9rem,2vh,1.15rem);color:#E6E0D6;margin-top:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sb-who .gdot{display:inline-block;width:10px;height:10px;border-radius:50%}
/* Who's doing this: see members of picked groups, jump to edit */
.as-sethead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.as-members{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:8px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}
.as-mem{border-left:3px solid var(--gc);padding-left:8px;font-size:.86rem}
.as-mem ol{margin:2px 0 0;padding-left:18px;line-height:1.4}
.as-all{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:600}
.pk-new{justify-content:flex-end;gap:8px;margin:2px 0 8px}
/* practice notes: multi-line with bullet / number buttons */
.note-field{position:relative;display:flex;align-items:flex-start;gap:6px}
.note-field textarea.tl-notes{flex:1;min-width:0;resize:none;overflow:hidden;font-family:inherit;line-height:1.45}
.note-tools{display:flex;gap:2px;opacity:.55;transition:opacity .12s}
.note-field:hover .note-tools,.note-field:focus-within .note-tools{opacity:1}
.note-tool{border:1px solid var(--border);background:var(--surface);border-radius:6px;font-size:.72rem;font-weight:700;padding:2px 6px;cursor:pointer;color:var(--muted);line-height:1.3}
.note-tool:hover{color:var(--ink);border-color:var(--line-strong)}
.run-note .note-ul,.run-note .note-ol{margin:4px 0 0;padding-left:1.2em}
/* Full screen water break */
.run-main.break-mode{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(16px,3vw,48px);align-items:center;min-height:0}
.brk-next{background:#1B1A18;border:2px solid #2E2B27;border-radius:18px;padding:clamp(14px,2.4vh,28px);display:flex;flex-direction:column;gap:clamp(4px,1vh,10px);min-width:0;max-height:100%;overflow:hidden}
.brk-next-head{font-size:clamp(.9rem,2.2vh,1.3rem);font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#FFB37E}
.brk-next .run-title{font-size:clamp(1.8rem,min(6vh,4.4vw),3.6rem)}
.brk-art{width:clamp(110px,12vw,180px);border-radius:10px;overflow:hidden;line-height:0}
.brk-art svg{width:100%;height:auto;max-height:18vh}
.brk-clock{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:0}
.brk-label{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(1.8rem,min(7vh,5vw),4.2rem);letter-spacing:.03em;color:#7EC8F2;line-height:1}
.brk-sub{text-align:right;font-size:clamp(.9rem,2vh,1.2rem)}
@media(max-width:820px),(orientation:portrait){.run-main.break-mode{grid-template-columns:1fr}.brk-clock{align-items:center;order:-1}.brk-sub{text-align:center}}
