@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-latin-400-normal-qiz4-Cze.woff2) format("woff2"),url(./barlow-latin-400-normal-fsAxiSwU.woff) format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-latin-500-normal-BPAOfeC8.woff2) format("woff2"),url(./barlow-latin-500-normal-C1h8hMer.woff) format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-latin-600-normal-DILqtrty.woff2) format("woff2"),url(./barlow-latin-600-normal-CNwfPWQD.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(./barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(./barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff")}:root{--font-text: Barlow, "Segoe UI", Roboto, system-ui, -apple-system, Arial, sans-serif;--font-title: "Barlow Condensed", "Segoe UI", Roboto, system-ui, Arial, sans-serif;--bg: #111827;--panel: #1a2232;--panel-2: #222c3f;--border: #2e3a50;--text: #e8edf5;--muted: #9aa8bd;--accent: #f97316;--accent-ink: #1a0d02;--blue: #3b82f6;--danger: #f87171;--focus: #38bdf8;--radius: 10px;--team-o: #1d4ed8;--team-o-ink: #fff;--team-d: #c62828;--team-d-ink: #fff;font-family:var(--font-text);font-size:14px;color:var(--text);background:var(--bg);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);overflow:hidden}h1,h2,h3{margin:0;font-family:var(--font-title);font-weight:700}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--muted)}.small{font-size:12px}.btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s}.btn svg{width:18px;height:18px}.btn:hover:not(:disabled){background:#2b3850}.btn:disabled{opacity:.4;cursor:default}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover:not(:disabled){background:var(--panel-2)}.btn.icon{padding:0;width:36px;justify-content:center}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:650}.btn.primary:hover:not(:disabled){background:#fb8a3c}.btn.danger{color:var(--danger);border-color:#5b2a2a;background:transparent;width:100%;justify-content:center}.danger-text{color:var(--danger)}.field{display:flex;flex-direction:column;gap:5px}.field>span{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted)}.field output{color:var(--text)}input:not([type]),input[type=text],input[type=number],input[type=date],input[type=time],textarea,select{width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg)}input[type=date],input[type=time]{color-scheme:dark}textarea{resize:vertical}input[type=range]{accent-color:var(--accent)}.check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px}.check input{accent-color:var(--accent);width:16px;height:16px}.segmented{display:grid;grid-template-columns:1fr 1fr;padding:3px;border-radius:8px;background:var(--bg);border:1px solid var(--border)}.segmented button{min-height:30px;border:0;border-radius:6px;background:transparent;cursor:pointer;color:var(--muted)}.segmented button.on{background:var(--panel-2);color:var(--text);font-weight:600}.segmented.three{grid-template-columns:repeat(3,1fr)}.row{display:flex;gap:8px;flex-wrap:wrap}.error{color:var(--danger)}kbd{display:inline-block;padding:2px 7px;border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;background:var(--bg);font:600 12px/1.4 inherit}.options{margin:0;padding:0;border:0;min-width:0}.options legend{padding:0;margin-bottom:6px;font-size:12.5px;color:var(--muted)}.options label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}button,select,input,summary,label,[role=slider]{touch-action:manipulation}@media(pointer:coarse){.btn{min-height:44px}.btn.icon{width:44px}.segmented button{min-height:44px}input:not([type]),input[type=text],input[type=search],select{min-height:44px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.theme-root{display:contents}.stage{grid-area:stage;position:relative;display:flex;min-height:0;padding:14px 14px 6px}.board{flex:1;display:flex;flex-direction:column;min-height:0;gap:6px}.court{flex:1;width:100%;min-height:0;border-radius:var(--radius);touch-action:none;-webkit-user-select:none;user-select:none}.court:not(.tool-select){cursor:crosshair}.court.is-playing{cursor:pointer}.present{position:absolute;top:16px;right:18px;z-index:2;background:color-mix(in srgb,var(--panel) 80%,transparent)}.court .player .halo{cursor:crosshair;transition:stroke .12s}.court .player .halo:hover{stroke:#0ea5e9}.hint{margin:0;text-align:center;color:var(--muted);font-size:12.5px}@media(pointer:coarse){.court .player.is-selected .halo{stroke:#0ea5e9}}.side{grid-area:side;border-left:1px solid var(--border);background:var(--panel);overflow-y:auto}.panel{padding:14px 16px;border-bottom:1px solid var(--border)}.panel-body{display:flex;flex-direction:column;gap:10px;margin-top:10px}.panel h2{display:inline;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.panel>summary{display:flex;align-items:center;justify-content:space-between;margin:-14px -16px;padding:14px 16px;cursor:pointer;list-style:none}.panel>summary::-webkit-details-marker{display:none}.panel>summary:after{content:"";width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-2px);transition:transform .15s}.panel:not([open])>summary:after{transform:rotate(-45deg)}.panel>summary:hover h2{color:var(--text)}.panel[open]>summary{margin-bottom:-4px}.panel.selected{background:color-mix(in srgb,var(--accent) 7%,var(--panel));box-shadow:inset 3px 0 0 var(--accent)}.panel.selected h2{color:#ffd2b0}.panel h2 small{text-transform:none;letter-spacing:0;font-weight:500}.panel p{margin:0;font-size:12.5px}.legend{list-style:none;margin:0;padding:8px 10px;border-radius:8px;background:#f7f1e3;color:#1f2937;display:grid;gap:6px;font-size:12.5px}.legend li{display:flex;align-items:center;gap:10px}.side-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 16px;border-bottom:1px solid var(--border);background:var(--panel);font-family:var(--font-title);font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}@media(max-width:1180px){.side{position:fixed;z-index:20;top:calc(58px + env(safe-area-inset-top));right:env(safe-area-inset-right);bottom:env(safe-area-inset-bottom);width:min(320px,88vw);box-shadow:-12px 0 30px #00000059;transform:translate(105%);visibility:hidden;transition:transform .2s ease,visibility .2s}.app.side-open .side{transform:none;visibility:visible}}.menu{position:relative}.menu>.btn:not(.icon) svg:last-child{width:14px;height:14px;opacity:.7}.menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:260px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);box-shadow:0 12px 32px #00000073;display:grid;gap:2px}.menu-list.up{top:auto;bottom:calc(100% + 6px)}.menu-item:disabled{opacity:.4;cursor:default}.menu-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:7px;background:transparent;text-align:left;cursor:pointer}.menu-item svg{width:18px;height:18px;flex:none;color:var(--muted)}.menu-item span{display:flex;flex-direction:column;gap:1px}.menu-item small{color:var(--muted);font-size:12px}.menu-item:hover,.menu-item:focus-visible{background:#33415a;outline:none}@media(pointer:coarse){.menu-item{min-height:44px}}.toolbar{grid-area:tools;display:flex;flex-direction:column;gap:6px;padding:10px 8px;border-right:1px solid var(--border);background:var(--panel);overflow-y:auto}.tool-group{display:flex;flex-direction:column;gap:4px}.tool-sep{height:1px;background:var(--border);margin:6px 4px}.tool{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 6px;border:1px solid transparent;border-radius:var(--radius);background:transparent;cursor:pointer;color:var(--muted)}.tool:hover{background:var(--panel-2);color:var(--text)}.tool.active{background:#2c3a54;border-color:#64748b;color:#fff}.tool-label{font-size:12.5px;line-height:1.2}.tool kbd{position:absolute;top:4px;right:6px;padding:0;border:0;background:none;font:600 10px/1 inherit;opacity:.6}.chip{display:grid;place-items:center;width:24px;height:24px;font-weight:700;color:#fff}.chip-o{background:var(--team-o);color:var(--team-o-ink);box-shadow:inset 0 0 0 1px #ffffff40;border-radius:50%}.chip-d{background:var(--team-d);color:var(--team-d-ink);box-shadow:inset 0 0 0 1px #ffffff40;border-radius:5px}.chip-c{background:none;position:relative}.chip-c:before{content:"";width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:18px solid #f59e0b}.chip-k{border-radius:50%;background:#475569;box-shadow:inset 0 0 0 1px #e2e8f0}.chip-b{border-radius:50%;background:radial-gradient(circle at 35% 30%,#fb923c,#c2410c);box-shadow:inset 0 0 0 1px #7c2d1240}@media(max-width:1180px){.toolbar{gap:4px;padding:8px 4px}.tool{padding:6px 2px 4px}.tool-label{font-size:10.5px}.tool kbd{right:3px}.tool-sep{margin:4px 2px}}.timeline{grid-area:time;display:flex;flex-direction:column;gap:4px;padding:4px 14px 10px;min-width:0;border-top:1px solid var(--border)}.transport{display:flex;align-items:center;gap:12px}.transport select{width:auto;padding:3px 6px}.frames-row{display:flex;align-items:center;gap:10px;min-width:0}.frame-nav{display:flex;align-items:center;gap:2px;flex:none}.btn.play{width:44px;height:40px;padding:0;justify-content:center}.frames li{position:relative}.frames li.drop-before:before,.frames li.drop-after:after{content:"";position:absolute;top:4px;bottom:4px;width:3px;border-radius:2px;background:var(--accent)}.frames li.drop-before:before{left:-6px}.frames li.drop-after:after{right:-6px}.frames li[draggable=true] .frame{cursor:grab}.frame-delete{flex:none;color:var(--muted)}.frame-delete:hover:not(:disabled){color:var(--danger)}.progress{flex:1;height:22px;padding:8px 0;background:var(--panel-2);background-clip:content-box;border-radius:3px;cursor:pointer;touch-action:none}.progress:hover .progress-bar,.progress:focus-visible .progress-bar{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}.progress-bar{height:100%;border-radius:3px;background:var(--accent)}.time{font-family:var(--font-title);font-variant-numeric:tabular-nums;color:var(--muted);font-size:15px;min-width:90px;text-align:right}.frames{flex:1;min-width:0;list-style:none;margin:0;padding:2px;display:flex;gap:8px;overflow-x:auto}.frame{position:relative;display:block;width:84px;height:72px;padding:3px;border:2px solid var(--border);border-radius:9px;background:var(--panel);cursor:pointer}.frame svg{width:100%;height:100%;display:block;pointer-events:none}.frame.active{border-color:var(--accent)}.frame-n{position:absolute;left:5px;top:5px;min-width:20px;padding:1px 5px;border-radius:5px;background:#111827e0;font-family:var(--font-title);font-weight:700;font-size:14px;line-height:1.1}.frame.active .frame-n{background:var(--accent);color:var(--accent-ink)}.add-frame{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-style:dashed;color:var(--muted);font-size:12px}.add-frame:hover{color:var(--text);border-color:var(--muted)}@media(max-width:1180px){.frame{width:72px;height:62px}}@media(pointer:coarse){.progress{height:36px;padding:15px 0}}.pitches{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.pitch{display:flex;flex-direction:column;gap:4px;padding:4px 4px 6px;border:2px solid var(--border);border-radius:9px;cursor:pointer;text-align:center}.pitch svg{display:block;width:100%;border-radius:5px}.pitch strong{font-size:12px;font-weight:600;line-height:1.15}.pitch:hover{border-color:#475569}.pitch.on{border-color:var(--accent)}.pitch input,.swatch input[type=radio]{position:absolute;opacity:0;pointer-events:none}.swatches{display:flex;flex-wrap:wrap;gap:6px}.swatches legend{width:100%}.swatch{position:relative;width:24px;height:24px;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff40;cursor:pointer}.swatch.on{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--accent)}.swatch.custom{background:conic-gradient(#ef4444,#eab308,#22c55e,#06b6d4,#3b82f6,#a855f7,#ef4444)}.swatch.custom input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}@media(pointer:coarse){.swatches{gap:8px}.swatch{width:34px;height:34px}}.toast{position:fixed;left:50%;bottom:calc(140px + env(safe-area-inset-bottom));transform:translate(-50%,12px);max-width:min(520px,calc(100vw - 32px));padding:10px 16px;border-radius:10px;background:#f8fafc;color:#0f172a;font-weight:550;box-shadow:0 10px 30px #0006;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}.toast.show{opacity:1;transform:translate(-50%)}.ex-fields{display:flex;flex-direction:column;gap:12px}.ex-row{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:10px}.ex-fields textarea{line-height:1.45;min-height:140px}.templates{display:inline-flex;gap:10px}.link-btn{padding:0;border:0;background:none;color:var(--accent);font-size:12.5px;cursor:pointer}.link-btn:hover{text-decoration:underline}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.tag-list:empty{display:none}.tag-list li{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 10px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);font-size:13px}.tag-list button{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:50%;background:none;color:var(--muted);font-size:11px;cursor:pointer}.tag-list button:hover{background:var(--border);color:var(--text)}.save-state{display:inline-flex;align-items:center;gap:7px;margin-right:6px;font-size:13px;color:var(--muted);white-space:nowrap}.save-state i{width:8px;height:8px;border-radius:50%;background:#4ade80}.save-state.saving i{background:var(--accent)}.save-state.error{color:var(--danger)}.save-state.error i{background:var(--danger)}.btn.retry{min-height:34px;padding:0 10px;font-size:13px;border-color:var(--danger);color:var(--danger)}.app{display:grid;height:100%;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-template-columns:92px minmax(0,1fr) 340px;grid-template-rows:58px minmax(0,1fr) auto;grid-template-areas:"top top top" "tools stage side" "tools time side"}.topbar{grid-area:top;display:flex;align-items:center;gap:16px;padding:0 14px;border-bottom:1px solid var(--border);background:var(--panel)}.brand{display:flex;align-items:center;gap:10px;min-width:max-content}.brand h1{font-size:16px;letter-spacing:.01em}.logo-mark{color:#fff;flex:none}.brand .tagline{font-family:var(--font-title);font-size:17px;font-weight:600;font-style:italic;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.topbar-group{display:flex;align-items:center;gap:4px}.topbar-group.end{margin-left:auto}.vsep{width:1px;height:24px;background:var(--border);margin:0 6px}.app.presenting{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"stage" "time"}.app.presenting .topbar,.app.presenting .toolbar,.app.presenting .side,.app.presenting .hint{display:none}@media(max-width:1180px){.topbar-group .btn:not(.icon):not(.primary){font-size:0;gap:0;width:36px;padding:0;justify-content:center}.app{grid-template-columns:64px minmax(0,1fr);grid-template-areas:"top top" "tools stage" "tools time"}.topbar{gap:10px;padding:0 10px}.topbar .btn.on{background:var(--panel-2);color:var(--text)}}@media(max-width:1180px)and (pointer:coarse){.topbar-group .btn:not(.icon):not(.primary){width:44px}.topbar{gap:6px}}.editor-state{display:grid;justify-items:center;align-content:center;gap:10px;height:100dvh;padding:24px;text-align:center}.editor-state h1{font-size:34px}.topbar .back{flex:none;text-decoration:none;color:var(--muted)}.topbar .back:hover{color:var(--text)}.topbar .title-input{flex:1 1 200px;min-width:0;max-width:520px;min-height:40px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:transparent;font-family:var(--font-title);font-size:24px;font-weight:700;letter-spacing:.02em;text-overflow:ellipsis}.topbar .title-input:hover{border-color:var(--border)}.topbar .title-input:focus{border-color:var(--accent);background:var(--bg);outline:none}@media(max-width:767px){.back-text{display:none}.topbar .title-input{font-size:20px}}.app.mobile{grid-template-columns:minmax(0,1fr);grid-template-rows:52px minmax(0,1fr) auto auto;grid-template-areas:"top" "stage" "time" "tools"}.app.mobile .topbar{gap:2px;padding:0 4px 0 6px}.app.mobile .back-text{display:none}.app.mobile .topbar .title-input{flex:1;max-width:none;font-size:19px}.app.mobile .topbar-group.end{margin-left:0}.app.mobile .save-state{margin-right:4px;font-size:0;gap:0}.app.mobile .save-state.error{font-size:12px;gap:6px}.app.mobile .menu-list{max-height:calc(100dvh - 80px);overflow-y:auto}.app.mobile .stage{padding:6px 6px 2px}.app.mobile .hint{display:none}.app.mobile .present{top:10px;right:10px}.timeline.compact{gap:2px;padding:2px 8px 4px}.timeline.compact .frames-row{gap:6px}.timeline.compact .frame{width:56px;height:48px}.timeline.compact .frame-n{font-size:12px}.timeline.compact .time{min-width:44px}.toolbar.bar{flex-direction:row;align-items:center;gap:4px;padding:4px 6px calc(4px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--border);overflow-x:auto}.toolbar.bar .tool-group{flex:1;flex-direction:row;justify-content:space-between;gap:2px}.toolbar.bar .tool{flex:1;min-width:44px;padding:4px 2px}.toolbar.bar .tool-label{font-size:10px}.app.mobile .side{grid-area:side;display:none;position:static;transform:none;visibility:visible;width:auto;max-height:none;min-height:0;border-left:0;border-top:1px solid var(--border);box-shadow:none;overflow-y:auto}.app.mobile.side-open{grid-template-rows:52px minmax(0,1fr) minmax(0,40dvh) auto auto;grid-template-areas:"top" "stage" "side" "time" "tools"}.app.mobile.side-open .side{display:block}.app.mobile .toast{bottom:calc(150px + env(safe-area-inset-bottom))}.app.mobile.landscape{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:48px minmax(0,1fr) auto;grid-template-areas:"top top" "stage time" "stage tools"}.app.mobile.landscape .timeline{align-self:end;border-left:1px solid var(--border)}.app.mobile.landscape .toolbar.bar{border-left:1px solid var(--border)}.app.mobile.landscape.side-open{grid-template-rows:48px minmax(0,1fr) auto;grid-template-areas:"top top" "stage time" "stage tools"}.app.mobile.landscape .side{position:fixed;z-index:20;top:calc(48px + env(safe-area-inset-top));right:env(safe-area-inset-right);bottom:0;width:min(360px,46vw);padding-bottom:env(safe-area-inset-bottom);border-top:0;border-left:1px solid var(--border);box-shadow:-12px 0 30px #0006}.app.mobile.landscape .toast{bottom:calc(16px + env(safe-area-inset-bottom))}.app.mobile.presenting{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"stage" "time"}.page{height:100dvh;overflow-y:auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:radial-gradient(900px 420px at 85% -10%,rgb(249 115 22 / .1),transparent 70%),var(--bg)}.page-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px max(16px,calc((100% - 1160px)/2));border-bottom:1px solid var(--border);background:#111827d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;border-radius:8px}.brand-name{font-family:var(--font-title);font-size:24px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.head-actions{display:flex;align-items:center;gap:8px}.head-actions .menu>.btn{width:44px;height:44px;border-radius:10px}.notice.backup{display:grid;gap:10px;border-style:solid;border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--panel));color:var(--text)}.notice.backup p{margin:0;line-height:1.5}.notice-actions{display:flex;align-items:center;gap:16px}.notice.ok{border-style:solid;border-color:#245b3a;color:#86efac}.btn.big{min-height:44px;padding:0 18px;font-size:15px;border-radius:10px}.page-main{width:min(1160px,100%);margin:0 auto;padding:28px 16px 64px}.page-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px;margin-bottom:20px}.page-title h1{font-size:clamp(34px,6vw,52px);line-height:1;letter-spacing:.02em;text-transform:uppercase}.page-title p{margin:0;font-size:15px}.empty{display:grid;justify-items:center;gap:10px;max-width:460px;margin:40px auto;padding:36px 20px;text-align:center;color:var(--muted)}.empty>svg{width:200px;margin-bottom:8px}.empty h2{color:var(--text);font-size:30px}.empty p{margin:0 0 10px;font-size:15px;line-height:1.5}.notice{margin:12px 0;padding:12px 14px;border:1px dashed var(--border);border-radius:10px;color:var(--muted)}.notice.error{border-color:#5b2a2a;color:var(--danger)}.link{padding:0;border:0;background:none;color:var(--accent);text-decoration:underline;cursor:pointer}.tabs{display:flex;gap:4px;margin-right:auto;margin-left:18px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.tabs a{display:inline-flex;align-items:center;min-height:36px;padding:0 16px;border-radius:8px;color:var(--muted);font-weight:600;text-decoration:none;transition:background .12s,color .12s}.tabs a:hover{color:var(--text)}.tabs a[aria-current=page]{background:var(--panel-2);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}@media(max-width:767px){.brand-name{font-size:21px}.page-head{flex-wrap:wrap;row-gap:10px}.tabs{order:3;flex:1 0 100%;margin:0}.tabs a{flex:1;justify-content:center;min-height:40px}}@media(prefers-reduced-motion:reduce){.tabs a{transition:none}}.search{position:relative;display:flex;align-items:center}.search svg{position:absolute;left:12px;width:18px;height:18px;color:var(--muted);pointer-events:none}.chips{grid-column:1 / -1;display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.filter-chip{flex:none;min-height:36px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--muted);font-weight:500;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.filter-chip:hover{color:var(--text);border-color:#3d4c66}.filter-chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:650}.filter-chip-count{margin-left:4px;opacity:.7;font-variant-numeric:tabular-nums}.dialog{width:min(560px,calc(100vw - 32px));padding:0 20px 20px;border:1px solid var(--border);border-radius:14px;background:var(--panel);color:var(--text)}.dialog::backdrop{background:#05080fa6}.dialog header{display:flex;align-items:center;justify-content:space-between;padding:14px 0 6px}.dialog h2{font-size:22px;letter-spacing:.01em}.dialog p{line-height:1.5}.lib-section{display:flex;flex-direction:column;gap:8px;padding:12px 14px;margin-bottom:10px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.lib-section h3,.lib-title{margin:0;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.lib-title{margin:14px 0 8px}.lib-section p{margin:0;font-size:13px}.lib-section code{font-size:12px;color:var(--text)}.dialog.wide{width:min(880px,calc(100vw - 32px))}@media(max-width:767px),(max-height:500px){.dialog,.dialog.wide{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0 14px calc(14px + env(safe-area-inset-bottom));border:0;border-radius:0}.dialog header{position:sticky;top:0;z-index:2;padding-top:calc(10px + env(safe-area-inset-top));background:var(--panel)}}.confirm-message p{margin:0 0 8px}.confirm-actions{justify-content:flex-end;margin-top:16px}.btn.confirm-danger{background:#7f1d1d;border-color:#991b1b;color:#fff;font-weight:600}.btn.confirm-danger:hover:not(:disabled){background:#991b1b}.filters{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-bottom:22px}.filters input[type=search]{width:100%;min-height:44px;padding:0 14px 0 40px;border:1px solid var(--border);border-radius:10px;background:var(--panel);font-size:15px}.filters select{min-height:44px;width:auto;max-width:220px;border-radius:10px;background:var(--panel)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin:0;padding:0;list-style:none}.card{position:relative;border:1px solid var(--border);border-radius:16px;background:var(--panel);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.card:hover,.card:focus-within{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 12px 28px #00000059}.card-link{display:block;color:inherit;text-decoration:none}.thumb{position:relative;border-radius:15px 15px 0 0;aspect-ratio:4 / 3;background:var(--thumb-bg, #0d1320);overflow:hidden}.thumb svg{display:block;width:100%;height:100%}.badge{position:absolute;bottom:10px;padding:3px 9px;border-radius:999px;background:#111827d1;color:#fff;font-size:12px;font-weight:600;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.badge.minutes{left:10px;font-family:var(--font-title);font-size:15px;letter-spacing:.03em}.badge.frames{right:10px}.card-body{padding:12px 14px 14px}.card-body h2{margin:0 0 8px;padding-right:34px;font-size:21px;line-height:1.15;letter-spacing:.01em;overflow-wrap:anywhere}.meta{display:flex;flex-wrap:wrap;gap:6px;margin:0}.pill{padding:2px 10px;border-radius:999px;background:#f9731629;color:#fdba74;font-size:12.5px;font-weight:600}.pill.none{background:var(--panel-2);color:var(--muted);font-weight:500}.tag{padding:2px 9px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:12.5px}.card-menu{position:absolute;z-index:2;top:8px;right:8px}.card-menu .btn{background:#111827d1;border-color:transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.card-body h2{padding-right:0}@media(max-width:767px){.filters{grid-template-columns:1fr}.filters select{max-width:none;width:100%}.grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.card,.filter-chip{transition:none}.card:hover,.card:focus-within{transform:none}}.session-group{margin-bottom:30px}.session-group h2{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:15px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.session-group .count{padding:1px 8px;border-radius:999px;background:var(--panel-2);font-size:12px;letter-spacing:0}.session-cards{display:grid;gap:12px;margin:0;padding:0;list-style:none}.session-card{position:relative;border:1px solid var(--border);border-radius:16px;background:var(--panel);transition:border-color .16s ease,box-shadow .16s ease}.session-card:hover,.session-card:focus-within{border-color:var(--accent);box-shadow:0 10px 24px #0000004d}.session-card.today{border-color:color-mix(in srgb,var(--accent) 60%,var(--border));background:color-mix(in srgb,var(--accent) 6%,var(--panel))}.session-link{display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;padding:14px 56px 14px 14px;color:inherit;text-decoration:none}.session-date{display:grid;align-content:center;justify-items:center;align-self:start;min-height:84px;border-radius:12px;background:var(--panel-2);font-family:var(--font-title);text-transform:uppercase;line-height:1}.session-date .wd{font-size:14px;font-weight:600;letter-spacing:.06em;color:var(--muted)}.session-date .dd{margin:2px 0;font-size:38px;font-weight:700}.session-date .mm{font-size:14px;font-weight:600;letter-spacing:.06em;color:var(--accent)}.session-card.today .session-date{background:var(--accent);color:var(--accent-ink)}.session-card.today .session-date .wd,.session-card.today .session-date .mm{color:var(--accent-ink)}.session-date.none .wd{padding:0 6px;text-align:center;line-height:1.2}.session-body h3{margin:2px 0 6px;font-size:23px;line-height:1.1;overflow-wrap:anywhere}.session-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}.session-goal{margin:6px 0 0;font-size:14px;line-height:1.4}.session-blocks{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none}.session-blocks li{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;padding:3px 10px;border:1px solid var(--border);border-radius:999px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-blocks li.text{border-style:dashed;color:var(--muted)}.session-blocks li small{color:var(--muted);font-variant-numeric:tabular-nums}.session-blocks li.more{color:var(--muted)}.session-menu{position:absolute;top:10px;right:10px}.empty .small{font-size:14px}.empty a{color:var(--accent)}@media(max-width:767px){.session-link{grid-template-columns:60px minmax(0,1fr);gap:12px;padding:12px 48px 12px 12px}.session-date{min-height:70px}.session-date .dd{font-size:30px}.session-body h3{font-size:20px}}@media(prefers-reduced-motion:reduce){.session-card{transition:none}}.sess-head .back{flex:none;color:var(--muted);text-decoration:none}.sess-head .back:hover{color:var(--text)}.sess-title{flex:1 1 200px;min-width:0;min-height:42px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:transparent;font-family:var(--font-title);font-size:26px;font-weight:700;letter-spacing:.02em;text-overflow:ellipsis}.sess-title:hover{border-color:var(--border)}.sess-title:focus{border-color:var(--accent);background:var(--bg);outline:none}.sess-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:24px;width:min(1280px,100%);margin:0 auto;padding:20px 16px 96px}.sess-main{display:grid;gap:16px;min-width:0}.sess-card{padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--panel)}.sess-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px}.sess-fields .wide{grid-column:1 / -1}.sess-fields input{min-height:40px}.sess-notes summary{width:max-content;font-size:12.5px;color:var(--muted);cursor:pointer}.sess-notes[open] summary{margin-bottom:5px}.sess-summary{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 28px;padding:4px 4px 0}.sum-item{display:grid;gap:2px}.sum-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.sum-item strong{font-family:var(--font-title);font-size:30px;line-height:1;font-variant-numeric:tabular-nums}.sum-hint{flex:1 1 220px;margin:0;font-size:13px}.timebar{display:flex;flex:1 0 100%;gap:3px;height:10px}.timebar span{min-width:4px;border-radius:3px;background:var(--accent)}.timebar span.text{background:var(--panel-2);box-shadow:inset 0 0 0 1px var(--border)}.sess-empty{display:grid;justify-items:start;gap:8px;border-style:dashed}.sess-empty h2{font-size:24px}.sess-empty p{margin:0}.sess-date-long{margin:0;font-size:13px;text-align:center}.blocks{display:grid;gap:10px;margin:0;padding:0;list-style:none}.block{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:14px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--panel)}.block.text{border-style:dashed;background:transparent}.block-time{display:grid;align-content:start;justify-items:center;gap:4px;padding-top:2px}.block-n{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--panel-2);font-family:var(--font-title);font-weight:700;font-size:17px}.block.exercise .block-n{background:var(--accent);color:var(--accent-ink)}.block-clock{font-family:var(--font-title);font-size:16px;font-variant-numeric:tabular-nums;color:var(--muted)}.block-exercise{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px}.block-thumb{display:block;aspect-ratio:4 / 3;overflow:hidden;border-radius:10px;background:var(--panel-2)}.block-thumb svg{display:block;width:100%;height:100%}.block-text{display:grid;align-content:start;gap:6px;min-width:0}.block-text h3{margin:2px 0 0;font-size:21px;line-height:1.15;overflow-wrap:anywhere}.block-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0}.block-meta .pill{padding:2px 10px;border-radius:999px;background:#f9731629;color:#fdba74;font-size:12.5px;font-weight:600}.block-meta .pill.none{background:var(--panel-2);color:var(--muted);font-weight:500}.block-meta .warn{font-size:12.5px;color:#fcd34d}.block-note,.block-title,.block-body{border-color:transparent!important;background:transparent!important;padding-left:6px!important;margin-left:-6px}.block-note:hover,.block-title:hover,.block-body:hover,.block-note:focus,.block-title:focus,.block-body:focus{border-color:var(--border)!important;background:var(--bg)!important}.block-note{font-size:14px;color:var(--text)}.block-title{font-family:var(--font-title);font-size:21px!important;font-weight:700}.block-body{min-height:34px;font-size:14px;resize:vertical}.block-side{display:grid;justify-items:end;align-content:space-between;gap:8px}.minutes{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.minutes .btn{width:34px;height:34px;font-size:20px;line-height:1}.minutes input{width:46px;padding:4px 0;border:0;background:transparent;font-family:var(--font-title);font-size:20px;font-weight:700;text-align:center;-moz-appearance:textfield}.minutes input::-webkit-outer-spin-button,.minutes input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.minutes .unit{padding-right:8px;font-size:13px;color:var(--muted)}.block-actions{display:flex;align-items:center;gap:2px}.block-actions .up svg{transform:rotate(180deg)}.sess-picker{position:sticky;top:86px;max-height:calc(100dvh - 106px);overflow-y:auto;border:1px solid var(--border);border-radius:16px;background:var(--panel)}.picker{display:grid;gap:18px;padding:16px}.picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.picker-head h2{font-size:22px}.picker-section{display:grid;gap:10px}.picker-section h3{font-size:13px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.picker-section a{color:var(--accent)}.picker-presets{display:flex;flex-wrap:wrap;gap:6px}.preset{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 12px 0 8px;border:1px dashed var(--border);border-radius:999px;background:transparent;color:var(--text);font-weight:500;cursor:pointer}.preset svg{width:16px;height:16px;color:var(--accent)}.preset small{color:var(--muted)}.preset:hover{border-color:var(--accent)}.picker .search input{width:100%;min-height:42px;padding:0 12px 0 40px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.picker-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.pick{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:6px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.pick:hover,.pick:focus-visible{border-color:var(--border);background:var(--panel-2)}.pick-thumb{display:block;aspect-ratio:4 / 3;overflow:hidden;border-radius:8px;background:var(--bg)}.pick-thumb svg{display:block;width:100%;height:100%}.pick-text{display:grid;gap:2px;min-width:0}.pick-text strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick-text small{color:var(--muted);font-size:12.5px}.pick-text em{font-style:normal;color:#fdba74}.pick-add{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--accent-ink)}.sess-toast{position:fixed;z-index:50;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:14px;max-width:calc(100vw - 32px);padding:10px 16px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2);box-shadow:0 10px 28px #00000073;transform:translate(-50%);font-size:14px}.only-mobile{display:none!important}@media(max-width:1180px){.sess-layout{grid-template-columns:minmax(0,1fr) 320px;gap:18px}.block-exercise{grid-template-columns:88px minmax(0,1fr)}}@media(max-width:767px){.back-text{display:none}.sess-head{flex-wrap:nowrap}.sess-title{font-size:21px;padding:0 6px}.train-text{display:none}.train-btn{padding:0 12px}.sess-layout{grid-template-columns:minmax(0,1fr);padding:14px 12px 110px}.sess-fields{grid-template-columns:1fr 1fr}.sess-fields label:nth-child(3){grid-column:1 / -1}.sum-item strong{font-size:26px}.block{grid-template-columns:40px minmax(0,1fr);gap:10px}.block-exercise{grid-template-columns:76px minmax(0,1fr);gap:10px}.block-text h3,.block-title{font-size:18px!important}.block-side{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center}.sess-picker{display:none}.session-editor.picking .sess-picker{display:block;position:fixed;z-index:40;top:0;right:0;bottom:0;left:0;max-height:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:0;border-radius:0;background:var(--bg)}.session-editor.picking .picker-head{position:sticky;top:0;z-index:1;margin:-16px -16px 0;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg)}.only-mobile{display:inline-flex!important}.fab{position:fixed;z-index:30;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));box-shadow:0 10px 24px #00000073}.sess-toast{bottom:calc(84px + env(safe-area-inset-bottom))}}.train{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--bg);overflow:hidden}.train-state{display:grid;grid-template-rows:none;place-content:center;justify-items:center;gap:12px;padding:24px;text-align:center}.train-top{display:flex;align-items:center;gap:12px;padding:8px 12px}.train-top>a{font-size:20px;text-decoration:none}.train-where{display:grid;line-height:1.15}.train-where strong{font-family:var(--font-title);font-size:22px}.train-where span{color:var(--muted);font-size:13.5px;font-variant-numeric:tabular-nums}.wake{margin-left:auto;font-size:12px;color:var(--muted)}.wake.on:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#4ade80;vertical-align:1px}.wake.unsupported{color:#fcd34d}.train-steps{display:flex;gap:4px;padding:0 12px 8px}.train-steps button{min-width:10px;height:22px;padding:0;border:0;border-radius:4px;background:var(--panel-2);background-clip:content-box;padding-block:8px;cursor:pointer}.train-steps button.done{background-color:color-mix(in srgb,var(--accent) 45%,var(--panel-2))}.train-steps button.on{background-color:var(--accent)}.train-main{min-height:0;overflow-y:auto;padding:4px 14px 16px;animation:train-in .22s ease;touch-action:pan-y}@keyframes train-in{0%{opacity:0;transform:translateY(6px)}}.train-main.exercise{display:grid;align-content:start;gap:14px}.player{display:grid;gap:8px;margin:0}.player-court{position:relative;display:block;width:100%;padding:0;border:0;border-radius:14px;overflow:hidden;background:transparent;cursor:pointer}.player-court:disabled{cursor:default}.player-court svg{display:block;width:100%;height:auto;max-height:52dvh}.player-paused{position:absolute;left:50%;top:50%;padding:6px 14px;border-radius:999px;background:#111827d9;color:#fff;font-size:14px;transform:translate(-50%,-50%)}.player-caption{display:flex;align-items:center;gap:12px;min-height:24px}.player-dots{display:inline-flex;gap:6px;flex:none}.player-dots i{width:8px;height:8px;border-radius:50%;background:var(--panel-2)}.player-dots i.on{background:var(--accent)}.player-note{font-size:17px;font-weight:600;line-height:1.3}.train-info,.train-free{display:grid;align-content:start;gap:10px}.train-kicker{display:flex;align-items:center;gap:10px;margin:0;color:var(--muted);font-family:var(--font-title);font-size:17px;letter-spacing:.04em;text-transform:uppercase}.train-kicker .pill{padding:2px 10px;border-radius:999px;background:#f9731629;color:#fdba74;font-family:var(--font-body, inherit);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none}.train-info h1,.train-free h1{font-size:clamp(30px,7vw,52px);line-height:1.02;letter-spacing:.01em;overflow-wrap:anywhere}.train-today{margin:0;padding:10px 14px;border-left:4px solid var(--accent);border-radius:0 10px 10px 0;background:color-mix(in srgb,var(--accent) 10%,var(--panel));font-size:18px;line-height:1.4}.notes-text{display:grid;gap:10px;font-size:18px;line-height:1.5}.notes-text p,.notes-text ul{margin:0}.notes-text ul{display:grid;gap:4px;padding-left:22px}.notes-text li::marker{color:var(--accent)}.notes-text strong{color:#fdba74}.train-main.text{display:grid;place-items:center;text-align:center}.train-free{justify-items:center;max-width:640px}.train-free h1{font-size:clamp(44px,12vw,88px)}.train-free .notes-text{text-align:left}.train-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--panel)}.train-bar .nav{min-height:56px;min-width:56px;padding:0 16px;font-size:16px;text-decoration:none}.timer{display:flex;align-items:center;justify-content:center;gap:6px}.timer-main{display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 16px;border:1px solid var(--border);border-radius:14px;background:var(--bg);color:var(--text);cursor:pointer}.timer-main.running{border-color:var(--accent)}.timer-value{min-width:3.4ch;font-family:var(--font-title);font-size:34px;font-weight:700;font-variant-numeric:tabular-nums}.timer-tools{display:grid;gap:2px}.timer-tools .btn{min-height:27px;padding:0 8px;font-size:13px}.train.over .timer-value{color:var(--danger)}.train.over .timer-main{border-color:var(--danger);animation:train-pulse 1s ease-in-out infinite}@keyframes train-pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--danger) 35%,transparent)}}.train-alert{position:fixed;z-index:10;left:50%;top:calc(70px + env(safe-area-inset-top));padding:10px 18px;border-radius:12px;background:var(--danger);color:#fff;font-family:var(--font-title);font-size:20px;font-weight:700;transform:translate(-50%);box-shadow:0 10px 24px #0006}@media(min-width:768px){.train-main.exercise{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:24px;padding:8px 24px 20px}.player-court svg{max-height:calc(100dvh - 230px)}}@media(max-width:767px){.nav-text{display:none}.train-bar{gap:6px;padding-inline:8px}.timer-main{padding:0 10px}.timer-value{font-size:30px}}@media(prefers-reduced-motion:reduce){.train-main,.train.over .timer-main{animation:none}}.update-banner{position:fixed;z-index:60;top:calc(10px + env(safe-area-inset-top));left:50%;display:flex;align-items:center;gap:14px;max-width:calc(100vw - 24px);padding:8px 8px 8px 16px;border:1px solid var(--accent);border-radius:12px;background:var(--panel-2);box-shadow:0 10px 28px #00000073;transform:translate(-50%);font-size:14px}.crash{max-width:560px;margin:12vh auto 0;padding:28px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.crash h1{margin:0 0 8px;font-size:20px}.crash p{line-height:1.5}.crash .row{margin:18px 0}
