:root{--font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Inter", "Segoe UI", system-ui, sans-serif;--bg:#f5f5f7;--surface:#fff;--surface-2:#f0f0f3;--surface-3:#e6e6ea;--text:#1d1d1f;--text-2:#6e6e73;--text-3:#a1a1a6;--line:#00000017;--line-strong:#00000029;--accent:#22e06b;--accent-hover:#1bc95e;--accent-ink:#052e14;--accent-text:#067a33;--accent-soft:#22e06b29;--danger:#e5352b;--danger-soft:#e5352b1a;--radius-s:10px;--radius:16px;--radius-l:22px;--shadow-s:0 1px 2px #0000000a, 0 1px 1px #00000008;--shadow:0 2px 6px #0000000a, 0 12px 32px #0000000f;--ring:0 0 0 4px var(--accent-soft);font-family:var(--font);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#000;--surface:#161618;--surface-2:#232326;--surface-3:#2e2e32;--text:#f5f5f7;--text-2:#a1a1a6;--text-3:#6e6e73;--line:#ffffff1a;--line-strong:#fff3;--accent-text:#3df07f;--accent-soft:#22e06b33;--danger:#ff6259;--danger-soft:#ff625929;--shadow-s:0 0 0 #0000;--shadow:0 12px 40px #00000080}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);margin:0}::selection{background:var(--accent-soft)}h1,h2,h3{letter-spacing:-.03em;margin:0;font-weight:800;line-height:1.1}h1{font-size:clamp(1.9rem,4vw,2.6rem)}h2{font-size:clamp(1.7rem,3.4vw,2.2rem)}h3{letter-spacing:-.02em;font-size:1.15rem}p{margin:0 0 .75rem}a{color:var(--accent-text);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}.overline{letter-spacing:.09em;text-transform:uppercase;color:var(--text-2);font-size:.72rem;font-weight:700}.muted{color:var(--text-2)}.error{color:var(--danger)}button,input,select,textarea{font:inherit;color:inherit}button{appearance:none;background:var(--surface-2);min-height:36px;color:var(--text);letter-spacing:-.01em;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.4rem 1rem;font-size:.92rem;font-weight:600;transition:background .15s,transform .1s,box-shadow .15s,opacity .15s;display:inline-flex}button:hover:not(:disabled){background:var(--surface-3)}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:var(--accent-ink);font-weight:700;box-shadow:inset 0 1px #ffffff59}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn-ghost{color:var(--text-2);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-small{min-height:28px;padding:.15rem .7rem;font-size:.82rem}.btn-link{min-height:0;color:var(--accent-text);background:0 0;border-radius:4px;padding:0;font-weight:500}.btn-link:hover:not(:disabled){text-underline-offset:3px;background:0 0;text-decoration:underline}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);width:100%;min-height:42px;padding:.55rem .85rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.45}input::placeholder,textarea::placeholder{color:var(--text-3)}input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent)}input[type=checkbox]{width:16px;height:16px}.page{max-width:1080px;margin:0 auto;padding:2rem 1.25rem 4rem}.app-header{z-index:20;background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--line);position:sticky;top:0}.app-header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1080px;margin:0 auto;padding:.7rem 1.25rem;display:flex}.brand{color:var(--text);letter-spacing:-.04em;align-items:center;gap:.55rem;font-size:1.15rem;font-weight:800;display:inline-flex}.brand:hover{text-decoration:none}.brand-mark{background:var(--accent);width:28px;height:28px;color:var(--accent-ink);letter-spacing:-.02em;border-radius:9px;place-items:center;font-size:.8rem;font-weight:900;display:grid}.nav{background:var(--surface-2);border-radius:999px;gap:.25rem;padding:3px;display:flex}.nav a{color:var(--text-2);border-radius:999px;padding:.3rem .95rem;font-size:.9rem;font-weight:600}.nav a:hover{color:var(--text);text-decoration:none}.nav a.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-s), 0 0 0 1px var(--line)}.page-title{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.back-link{color:var(--text-2);align-items:center;gap:.3rem;margin-bottom:1rem;font-size:.9rem;font-weight:600;display:inline-flex}.back-link:hover{color:var(--text);text-decoration:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-s)}.list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.list-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-s);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.15rem;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.list-item:hover{box-shadow:var(--shadow);border-color:var(--line-strong);transform:translateY(-1px)}.list-item-title{color:var(--text);letter-spacing:-.02em;font-size:1.1rem;font-weight:700}.list-item-title:hover{color:var(--accent-text);text-decoration:none}.empty{border:1.5px dashed var(--line-strong);border-radius:var(--radius);text-align:center;color:var(--text-2);padding:3rem 1.5rem}.tag{background:var(--accent-soft);color:var(--accent-text);letter-spacing:0;border-radius:999px;padding:.1rem .6rem;font-size:.78rem;font-weight:700;display:inline-block}.tags{flex-wrap:wrap;gap:.35rem;margin-top:.4rem;display:flex}.segmented{background:var(--surface-2);border-radius:999px;flex-wrap:wrap;align-items:center;gap:2px;padding:3px;display:inline-flex}.segmented>button,.segmented>.segment{min-height:30px;color:var(--text-2);background:0 0;border-radius:999px;padding:.2rem .9rem;font-size:.86rem}.segmented>button:hover:not(:disabled){color:var(--text);background:0 0}.segmented>button.active,.segmented>.segment.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-s), 0 0 0 1px var(--line)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:208px;box-shadow:var(--shadow-s);overflow:hidden}.panel-header{border-bottom:1px solid var(--line);padding:.65rem .9rem}.panel input:not([type=checkbox]):not([type=radio]):not([type=range]){min-height:34px;padding:.3rem .65rem;font-size:.9rem}.panel-section{border-top:1px solid var(--line);padding-top:.75rem}.chip{border:1px solid var(--line-strong);min-height:26px;color:var(--text-2);background:0 0;padding:.1rem .65rem;font-size:.8rem}.chip.on{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.chip.on:hover:not(:disabled){background:var(--accent-soft)}.pitch-frame{border-radius:var(--radius);box-shadow:0 0 0 1px var(--line), var(--shadow);line-height:0;display:inline-block;overflow:hidden}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);max-width:400px;box-shadow:var(--shadow);gap:1rem;margin:10vh auto 0;padding:2rem;display:grid}.auth-card p{margin:0}@media (width<=600px){.page{padding:1.25rem 1rem 3rem}.list-item{flex-wrap:wrap}}:root{--viz-series:#2a78d6}@media (prefers-color-scheme:dark){:root{--viz-series:#3987e5}}.practice{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.practice-bar{z-index:10;padding:.6rem 1rem;padding-top:max(.6rem, env(safe-area-inset-top));background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.practice-exit{min-height:44px;color:var(--text-2);white-space:nowrap;align-items:center;padding:0 .5rem;font-weight:600;text-decoration:none;display:inline-flex}.practice-title{text-overflow:ellipsis;white-space:nowrap;text-align:center;flex:1;min-width:0;font-weight:700;overflow:hidden}.practice-bar .btn-small{white-space:nowrap;min-height:40px}.practice-progress{background:var(--line);height:4px}.practice-progress>div{background:var(--accent);height:100%;transition:width .2s}.practice-body{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.25rem 1rem 2rem}.practice-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.practice-name{letter-spacing:-.03em;margin:.2rem 0 0;font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.05}.practice-clock{justify-items:end;gap:.35rem;display:grid}.practice-clock-time{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text-2);font-size:clamp(2.4rem,7vw,3.6rem);font-weight:800;line-height:1}.practice-clock.running .practice-clock-time{color:var(--text)}.practice-clock.overrun .practice-clock-time{color:var(--danger)}.practice-clock-sub{color:var(--text-2);font-size:.8rem}.practice-clock button{min-width:96px;min-height:44px}.practice-content{flex-wrap:wrap;align-items:flex-start;gap:1.5rem;margin-top:1.25rem;display:flex}.practice-diagram{flex:3 420px;min-width:0}.practice-diagram .segmented button{min-height:40px}.practice-text{flex:2 280px;gap:1rem;min-width:0;display:grid}.practice-text .card{padding:1.1rem 1.2rem}.practice-text .card p{white-space:pre-wrap;margin:.5rem 0 0;font-size:1.15rem;line-height:1.5}.practice-notes{border-left:4px solid var(--accent)}.practice-nav{padding:.75rem 1rem;padding-bottom:max(.75rem, env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-top:1px solid var(--line);grid-template-columns:1fr 2fr;gap:.75rem;display:grid;position:sticky;bottom:0}.practice-nav button{border-radius:var(--radius);min-height:64px;font-size:1.1rem}.practice-nav-next{min-width:0;line-height:1.2;display:grid}.practice-nav-next small{text-overflow:ellipsis;white-space:nowrap;opacity:.75;font-size:.8rem;font-weight:500;overflow:hidden}.practice-plan-backdrop{z-index:30;background:#00000059;justify-content:flex-end;display:flex;position:fixed;inset:0}.practice-plan{background:var(--surface);width:min(420px,100%);height:100%;box-shadow:var(--shadow);padding:1.25rem 1rem 2rem;overflow-y:auto}.practice-plan-notes{white-space:pre-wrap;color:var(--text-2);margin:.75rem 0 0}.practice-plan-item{border-radius:var(--radius-s);text-align:left;background:0 0;justify-content:space-between;width:100%;min-height:52px;margin-bottom:.35rem;font-size:1rem;display:flex}.practice-plan-item.active{background:var(--accent-soft)}.print-shell{background:var(--bg);min-height:100vh;padding:1rem}.print-toolbar{justify-content:space-between;align-items:center;max-width:800px;margin:0 auto 1rem;display:flex}.print-sheet{color:#111;max-width:800px;box-shadow:var(--shadow);background:#fff;margin:0 auto;padding:2.5rem 3rem;font-size:11pt;line-height:1.4}.print-header{border-bottom:2px solid #111;justify-content:space-between;align-items:flex-end;gap:1rem;padding-bottom:.6rem;display:flex}.print-header h1{color:#111;margin:0;font-size:20pt}.print-meta{color:#555}.print-total{white-space:nowrap;font-size:16pt;font-weight:800}.print-session-notes{white-space:pre-wrap;margin:.75rem 0 0}.print-block h2{text-transform:uppercase;letter-spacing:.08em;color:#111;border-bottom:1px solid #bbb;justify-content:space-between;margin:1.4rem 0 .4rem;padding-bottom:.2rem;font-size:10pt;display:flex}.print-block h2 span{color:#555;font-weight:600}.print-drill{break-inside:avoid;border-bottom:1px solid #e5e5e5;padding:.6rem 0}.print-drill-head{justify-content:space-between;gap:1rem;display:flex}.print-drill-head h3{color:#111;margin:0;font-size:12pt}.print-drill-head span{white-space:nowrap;font-weight:700}.print-drill-notes,.print-drill-desc{white-space:pre-wrap;margin:.25rem 0 0}.print-drill-desc{color:#333}.print-phases{flex-wrap:wrap;gap:.6rem;margin-top:.5rem;display:flex}.print-phases figure{margin:0}.print-phases figcaption{color:#555;margin-top:.15rem;font-size:8.5pt}@media print{@page{margin:12mm}body,.print-shell{padding:0;background:#fff!important}.print-toolbar{display:none}.print-sheet{max-width:none;box-shadow:none;padding:0}.print-phases{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.print-sheet .pitch-frame{border-radius:6px;box-shadow:0 0 0 1px #ccc}
