:root{--bg:#F4F6F9;--card:#fff;--ink:#14181F;--mut:#5B6472;--line:#D5DAE2;--acc:#1F4FD8;--accfg:#fff;--okb:#DDF3EC;--ok:#0B5F52;--wnb:#FDEBD3;--wn:#8A4308;--ov:rgba(10,14,20,.72);box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0E1218;--card:#171C24;--ink:#E8ECF2;--mut:#9AA6B8;--line:#2A313C;--acc:#7FA2FF;--accfg:#0E1218;--okb:#123A33;--ok:#7FE3C8;--wnb:#4A3115;--wn:#F5B97A}}:root[data-theme=dark]{--bg:#0E1218;--card:#171C24;--ink:#E8ECF2;--mut:#9AA6B8;--line:#2A313C;--acc:#7FA2FF;--accfg:#0E1218;--okb:#123A33;--ok:#7FE3C8;--wnb:#4A3115;--wn:#F5B97A}html{scroll-padding-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Inter,system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:1200px;margin:0 auto;padding:20px}h1{font-size:22px;margin:0}h2{font-size:15px;margin:0}.mut{color:var(--mut);font-size:12px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sp{justify-content:space-between}.b{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--okb);color:var(--ok)}.b.w{background:var(--wnb);color:var(--wn)}button,.btn{font:inherit;font-size:13px;min-height:44px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}button.on{background:var(--acc);border-color:var(--acc);color:var(--accfg)}.lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:16px}.tile{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:8px;min-height:0;height:auto;text-align:left}.tile canvas{width:100%;height:auto;border-radius:6px;display:block}#modal{position:fixed;inset:0;background:var(--ov);display:none;align-items:center;justify-content:center;padding:12px;z-index:5}#modal.show{display:flex}.dlg{background:var(--card);border-radius:12px;width:min(1180px,100%);max-height:100%;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.panes{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:760px){.panes{grid-template-columns:1fr}}.pane{display:flex;flex-direction:column;gap:6px;min-width:0}.stage{position:relative;aspect-ratio:16/9;background:#0f141c;border-radius:8px;overflow:hidden}.stage canvas.base,.stage svg{position:absolute;inset:0;width:100%;height:100%}.stage svg{touch-action:none;cursor:crosshair}.stage svg *{pointer-events:none}.empty{position:absolute;inset:0;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;color:#e6ebf2;text-align:center;padding:12px;background:#0f141c}.empty button{background:#fff;color:#14181f}.minis{position:absolute;right:6px;bottom:6px;display:flex;flex-direction:column;gap:6px;align-items:flex-end;pointer-events:none}.mini{position:relative;border:2px solid #7FA2FF;border-radius:6px;overflow:hidden;background:#000;pointer-events:auto}.mini canvas{display:block;width:170px}.mini button{position:absolute;top:2px;right:2px;min-height:28px;min-width:28px;padding:0;background:#0009;color:#fff;border:0}.tools{display:flex;gap:8px;flex-wrap:wrap}input[type=range]{flex:1;min-width:140px;min-height:44px}.read{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.read div{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.read b{font-size:18px;display:block}@media(max-width:760px){.read{grid-template-columns:1fr}}.dg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px;margin-top:16px}.dg2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;margin-top:12px}@media(max-width:760px){.dg,.dg2{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}.kt{flex-direction:column;align-items:flex-start;gap:4px;height:auto;text-align:left;font-size:13px}.fg{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:560px){.fg{grid-template-columns:1fr}}.fc{border:1px solid var(--line);border-radius:8px;padding:10px}.gp{border-top:1px solid var(--line)}.gp summary{cursor:pointer;padding:12px 0;font-weight:600;min-height:44px}.mr{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px dashed var(--line);font-size:13px}:root{--muted: var(--mut);--accent: var(--acc);--radius: 10px;--blue-soft: color-mix(in srgb, var(--acc) 10%, var(--card));color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark}}:root[data-theme=dark]{color-scheme:dark}body{min-width:280px}a{color:inherit;text-decoration:none}p{margin:0;color:var(--mut)}h3{margin:0;font-size:14px}button,input,select,textarea{font-family:inherit}button,.btn,.button{gap:6px}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--acc);outline-offset:3px}.button{font:inherit;font-size:13px;min-height:44px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.button.primary,button.selected,button[aria-selected=true]{background:var(--acc);border-color:var(--acc);color:var(--accfg)}.button.danger{color:#bf4545}.button.inverse{background:#fff;color:#14181f}.button.full{width:100%}.icon-button{padding:0 10px;min-width:44px}.text-button{color:var(--acc)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.muted{color:var(--mut);font-size:12px}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.main{width:100%}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.page-heading p{font-size:12px}.heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.eyebrow{font-size:12px;color:var(--mut);margin-bottom:4px}.brand{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.brand-mark{width:32px;height:32px;object-fit:contain}.brand-light{font-size:12px;font-weight:400;color:var(--mut)}.dashboard-heading{align-items:flex-start}.dashboard-heading>.row{padding-top:2px}.workspace-menu,.filter-menu{position:relative}.workspace-menu>summary,.filter-menu>summary{cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;list-style:none;min-height:44px;padding:0 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.workspace-menu>summary::-webkit-details-marker,.filter-menu>summary::-webkit-details-marker{display:none}.workspace-menu-body,.filter-menu>.filters{position:absolute;top:calc(100% + 6px);right:0;width:min(300px,calc(100vw - 40px));z-index:10;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--card);box-shadow:0 8px 24px #0002}.workspace-menu-body{display:flex;flex-direction:column;gap:12px}.workspace-menu nav{display:grid}.workspace-menu nav a{padding:10px 0;border-bottom:1px solid var(--line)}.filter-menu .filters{display:flex;flex-direction:column;align-items:stretch;gap:12px}.filter-menu .filters label{min-width:0}.kt{display:flex}.view-shots{color:var(--acc);font-weight:600;margin-top:6px}.card-description{margin:2px 0 10px}.reference-timing{display:flex;border-radius:8px;overflow:hidden}.reference-timing>div{color:#14181f;padding:8px 6px;font-size:12px;font-weight:600;min-width:0}.phase-spread{font-weight:400}.reference-legend{display:flex}.reference-legend>span{min-width:0;padding:4px 6px;overflow-wrap:anywhere}.spark{width:100%;height:30px}.spark-empty{min-height:30px;font-size:11px}.coach-message{margin-top:8px;white-space:pre-wrap}.reference-body-metrics{margin-top:12px}.empty-metric{padding-bottom:12px}.dashboard-message,.library-options{margin-top:16px}.library-options .filter-menu>.filters{right:auto;left:0}.tile-image{display:block;width:100%;aspect-ratio:16/9;border-radius:6px;object-fit:contain;background:#0f141c}.tile-empty{display:grid;place-items:center;color:#9aa6b8;font-size:12px}.b.neutral{background:var(--line);color:var(--mut)}.pagination{display:flex;justify-content:center;gap:12px;align-items:center;margin-top:16px}.compare-studio{margin:0 auto}.comparison-upload-dialog{width:min(480px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:16px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--card)}.comparison-upload-dialog::backdrop{background:var(--ov)}.compare-studio>.row:first-child{flex-wrap:nowrap}.pane-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}.pane-heading b{overflow:hidden;text-overflow:ellipsis}.stage>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.stage .empty{z-index:1}.stage .empty .row{justify-content:center}.stage .empty .btn,.stage .empty button{background:#fff;color:#14181f}.stage svg{z-index:2}.stage .minis{z-index:3}.tracking-hint{min-height:17px}.track-button{border-color:var(--acc);color:var(--acc);font-weight:600}.comparison-playback{gap:8px}.comparison-playback input{padding:0;accent-color:var(--acc)}.comparison-settings{border-top:1px solid var(--line);margin-top:2px}.comparison-settings>summary{padding:10px 0;cursor:pointer;color:var(--mut);font-size:12px}.alignment-controls{display:flex;flex-direction:column;gap:12px}.manual-help{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.anchor-slider{margin-top:6px}.anchor-slider input{width:100%}.compare-readouts b{font-size:18px}.compare-data{margin-top:8px}.compare-data>summary{cursor:pointer;font-size:12px;color:var(--mut)}.compare-data table{margin-top:8px}.timecode{font-size:12px;color:var(--mut);font-variant-numeric:tabular-nums}.state{display:flex;align-items:center;justify-content:center;gap:8px;min-height:100px;color:var(--mut)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{padding:16px 0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.empty-state p{font-size:12px}.notice{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);padding:12px;border-radius:8px;background:var(--card);font-size:13px;margin:12px 0}.notice.error,.field-error{color:#c04747}.notice.error p{color:inherit}.notice strong{font-size:13px}.notice p{margin-top:4px}.notice .text-button{margin-top:8px}input:not([type=range]):not([type=checkbox]),select,textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--card);color:var(--ink);font-size:13px}textarea{resize:vertical}input[type=range]{accent-color:var(--acc)}label{display:flex;flex-direction:column;gap:6px;font-size:12px}label small{color:var(--mut)}form>label{margin:16px 0}.checkbox{flex-direction:row;align-items:center}.checkbox input{width:16px;height:16px;accent-color:var(--acc)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid .full{grid-column:1 / -1}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:0}.filters label{flex:1;min-width:150px}.section-heading{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:16px 0 12px}.section-heading p{font-size:12px}.inline-field{min-width:180px}.court-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.court-card h3{margin-top:12px}.court-card>p,.camera-status,.court-reservation{margin:8px 0;font-size:12px;color:var(--mut)}.camera-status{display:flex;align-items:center;gap:6px}.court-card .row:last-child{margin-top:12px}.sessions-card{margin-top:16px}.sessions-card .card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th{color:var(--mut);font-size:12px;font-weight:600;padding:10px;border-bottom:1px solid var(--line)}td{padding:10px;border-bottom:1px solid var(--line)}td small{display:block;color:var(--mut)}td .row{flex-wrap:nowrap}.table-empty{text-align:center;padding:24px;color:var(--mut)}.table-link{color:var(--acc)}.tabs,.segmented{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.tabs .active{color:var(--accfg);background:var(--acc);border-color:var(--acc)}.role-label{font-size:12px;color:var(--mut);display:flex;gap:6px;align-items:center}.player-cell{display:flex;gap:8px;align-items:center}.player-cell strong{display:block}.avatar{display:grid;place-items:center;border-radius:50%;width:32px;height:32px;font-size:12px;background:var(--line)}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.settings-card{max-width:680px}.settings-card h2,.settings-card p{margin-bottom:12px}.settings-card .button{margin-top:12px}.panel-section{padding:16px 0;border-bottom:1px solid var(--line)}.panel-section h3{margin-bottom:8px}.panel-section p{margin-bottom:12px;font-size:12px}.goal-list{display:flex;flex-direction:column;gap:12px}.goal-row{display:grid;grid-template-columns:2fr 1fr 1fr 44px;align-items:end;gap:8px}.enrollment-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}.enrollment{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:8px}.modal-backdrop{position:fixed;inset:0;z-index:30;background:var(--ov);display:flex;align-items:center;justify-content:center;padding:12px}.modal{width:min(600px,100%);background:var(--card);padding:16px;border-radius:12px;max-height:calc(100dvh - 24px);overflow:auto;display:flex;flex-direction:column;gap:12px}.modal.wide{width:min(840px,100%)}.modal>p{font-size:12px}.modal form{min-width:0}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.modal-header{display:flex;justify-content:space-between;align-items:center}.reference-list{display:flex;flex-direction:column;gap:8px}.reference-choice{display:flex;gap:12px;justify-content:flex-start;padding:8px;text-align:left}.reference-choice img{width:96px;aspect-ratio:16/9;object-fit:contain;background:#0f141c;border-radius:6px}.reference-choice>span{flex:1}.reference-choice small{display:block;font-size:12px;color:var(--mut);margin-top:4px}.reference-choice .b{flex:0 0 auto}.narrow{width:100%;max-width:480px;margin:20px auto}.password-card{margin-top:16px}.password-card>p{margin-top:6px;font-size:12px}.login-layout{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.login-header{width:min(1200px,100%);margin:0 auto;padding:20px}.login-panel{width:100%;flex:1;display:grid;place-items:center;padding:20px 20px 72px}.login-form{width:100%;max-width:400px}.login-form>p{margin:6px 0 20px;font-size:12px}.login-help{border-top:1px solid var(--line);margin-top:16px;padding-top:12px;font-size:12px;color:var(--mut)}.login-form>.button{margin-top:4px}@media(max-width:760px){.court-grid{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:1fr}.page-heading{flex-wrap:wrap}.dashboard-heading{gap:12px}.comparison-playback input{flex-basis:100%}}@media(max-width:560px){.form-grid,.court-grid{grid-template-columns:1fr}.dashboard-heading>.row{margin-left:auto}.goal-row{grid-template-columns:1fr 1fr}.goal-row>label:first-child{grid-column:1/-1}.reference-choice{flex-wrap:wrap}.workspace-menu-body{right:0}.filter-menu>.filters{position:fixed;top:104px;left:20px;right:20px;width:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
