@font-face{font-family:Fredoka;src:url(./Fredoka-Variable-uBsOTgB9.ttf) format("truetype");font-weight:300 700;font-display:swap}@font-face{font-family:Nunito Sans;src:url(./NunitoSans-Variable-B_ZymHAd.ttf) format("truetype");font-weight:200 1000;font-display:swap}:root{color-scheme:light;--brand-blue: #4a9be8;--brand-yellow: #ffd23f;--brand-coral: #ff6b5b;--brand-teal: #2ec4b6;--brand-violet: #7b61ff;--brand-ink: #2d2a4a;--brand-ball: #d4e83a;--bg: #fff8ec;--surface: #fffdf8;--surface-2: #fbf1df;--surface-3: #f4e6cd;--border: #ecdfc6;--border-strong: #d6c6a6;--text-primary: #2d2a4a;--text-secondary: #57527a;--text-muted: #77729a;--serve: #4a9be8;--forehand: #ff6b5b;--backhand: #2ec4b6;--unknown: #9a95b5;--accent: #4a9be8;--accent-hover: #63acf0;--accent-ink: #14213d;--accent-soft: rgba(74, 155, 232, .14);--accent-on-video: #8dc1f2;--info: #2f7fcf;--court-fill: #e6f1fc;--warn-text: #a8620a;--danger: #ff6b5b;--danger-text: #c8372a;--ok-text: #127a70;--hit-text: #127a70;--bounce-text: #a8620a;--mark-in: #a8620a;--mark-out: #c8372a;--radius: 16px;--outline: #2d2a4a;--outline-w: 2px;--lift: 0 2px 0 var(--outline);--lift-lg: 0 4px 0 var(--outline);--shadow-sm: var(--lift-lg);--shadow: 0 6px 0 var(--outline);--font-ui: "Nunito Sans", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--font-display: "Fredoka", "Nunito Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg)}body{margin:0;color:var(--text-primary);font:14px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}#root{max-width:1640px;margin:0 auto;padding:0 24px 32px}h1{font:600 24px/1.25 var(--font-display);margin:0 0 12px}h2{font:600 16px/1.3 var(--font-display);color:var(--text-primary);margin:20px 0 10px}h3{font-family:var(--font-display);font-weight:600}button{font:inherit;color:var(--text-primary);background:var(--surface);border:var(--outline-w) solid var(--outline);border-radius:999px;padding:4px 14px;cursor:pointer;font-weight:700;box-shadow:var(--lift);transition:background .12s,color .12s,transform .08s,box-shadow .08s}button:hover:not(:disabled){background:var(--surface-3)}button:active:not(:disabled){transform:translateY(2px);box-shadow:none}button.active{color:var(--accent-ink);background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--info)}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:4px 10px;border-bottom:1px solid var(--border)}th{color:var(--text-secondary);font-weight:500}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px}@media(max-width:900px){.layout{grid-template-columns:1fr}}.layout>*,.export-grid>*{min-width:0}video{width:100%;border-radius:12px;background:#000}.panel{background:var(--surface);border:var(--outline-w) solid var(--outline);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:12px}.tile{background:var(--surface);border:var(--outline-w) solid var(--outline);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow-sm)}.tile .v{font:600 26px/1.2 var(--font-display);font-variant-numeric:tabular-nums}.tile .l{color:var(--text-muted);font-size:12px}.rally-row{display:flex;gap:10px;padding:0 8px;border-radius:6px;align-items:center}.rally-row:hover{background:var(--surface-2)}.rally-row.active{outline:1px solid var(--accent)}.mono{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.filters{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0;color:var(--text-secondary);font-size:12px}.legend span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;background:var(--c)}.timeline{position:relative;height:26px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;margin-top:8px;cursor:pointer}.timeline .rally{position:absolute;top:4px;bottom:4px;border-radius:3px;background:var(--accent);opacity:.75;min-width:3px}.timeline .cursor{position:absolute;top:0;bottom:0;width:2px;background:var(--text-primary)}.match-card{display:flex;justify-content:space-between;padding:10px 14px;background:var(--surface);border:var(--outline-w) solid var(--outline);border-radius:14px;box-shadow:var(--lift);margin-bottom:10px;cursor:pointer}.match-card:hover{background:var(--surface-2)}.stage-ok{color:var(--backhand)}.stage-bad{color:var(--danger)}.kbd{display:inline-block;min-width:1.4em;padding:1px 6px;border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;background:var(--surface-2);color:var(--text-primary);font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center;white-space:nowrap}.filters .sep{width:1px;align-self:stretch;background:var(--border);margin:0 4px}h2 .sub{color:var(--text-muted);font-weight:400;font-size:13px}h2.section{margin-top:24px;padding-top:14px;border-top:1px solid var(--border)}.crop-rect{position:absolute;pointer-events:none;border:2px solid #fff;box-sizing:border-box;box-shadow:0 0 0 9999px #00000073}.crop-rect.outside{border-color:#ffffff73;border-style:dashed}.crop-safe{position:absolute;border:1px dashed rgba(255,255,255,.55)}.crop-subject{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;border:2px solid #facc15;pointer-events:none;box-sizing:border-box}.crop-swing{position:absolute;border:2px solid #fb923c;border-radius:3px;pointer-events:none;box-sizing:border-box}.timeline .selected-span{position:absolute;top:0;bottom:0;background:#facc15;opacity:.35;pointer-events:none}.timeline .mark{position:absolute;top:0;bottom:0;width:2px;background:var(--mark-in)}.timeline .mark.out{background:var(--mark-out)}.export h3{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:14px 0 6px;font-weight:600}.export-grid{display:grid;grid-template-columns:160px minmax(0,1fr);gap:14px}@media(max-width:1100px){.export-grid{grid-template-columns:130px minmax(0,1fr)}}.preview-canvas{width:100%;display:block;background:#000;border-radius:8px}.preview-actions{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap}.plan-stats{font-size:12px;margin-top:8px;line-height:1.5}.plan-stats b{color:var(--text-primary);font-weight:600}.muted{color:var(--text-muted)}.warn{color:var(--danger-text);font-size:12px}.ok{color:var(--ok-text);font-size:12px}.warn-text{color:var(--warn-text)}.ctl{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:4px 0;font-size:12px;min-width:0}.ctl-label{width:76px;color:var(--text-secondary);flex:none}.ctl input[type=range]{flex:1;min-width:0}.ctl-value{width:52px;text-align:right;flex:none}.ctl input[type=text]{font:inherit;padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-primary)}.seg{display:inline-flex;flex-wrap:wrap;gap:0;min-width:0;max-width:100%}.seg button{border-radius:0;padding:2px 10px;font-size:12px;margin-left:-2px;box-shadow:none}.seg button:first-child{border-radius:999px 0 0 999px;margin-left:0}.seg button:last-child{border-radius:0 999px 999px 0}.seg button.active{background:var(--accent)}.row{display:flex;gap:8px;align-items:center;margin:4px 0;font-size:12px;flex-wrap:wrap}.range-row{justify-content:space-between;padding:3px 6px;border-radius:6px;background:var(--surface-2)}.range-row .link{cursor:pointer}.range-row .link:hover{text-decoration:underline}button.x{padding:0 6px;font-size:11px;line-height:1.6;color:var(--text-muted);box-shadow:none;border-width:1px}button.primary{background:var(--accent);color:var(--accent-ink);font-weight:800}button.primary:hover:not(:disabled){background:var(--accent-hover)}.progress{flex:1;height:10px;background:var(--surface-2);border:var(--outline-w) solid var(--outline);border-radius:999px;overflow:hidden;min-width:60px}.progress span{display:block;height:100%;background:var(--accent);transition:width .3s}.rally-row input[type=checkbox]{margin:0 2px 0 0;align-self:center}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}button.danger{background:var(--danger);color:var(--brand-ink)}button.ghost{background:transparent;border-color:transparent;color:var(--text-muted);box-shadow:none}button.ghost:hover:not(:disabled){color:var(--text-primary);background:var(--surface-2)}button:disabled{opacity:.5;cursor:default}input,select{font:inherit;color:var(--text-primary);background:var(--surface);border:var(--outline-w) solid var(--border-strong);border-radius:10px;padding:4px 10px}input:focus,select:focus{border-color:var(--outline);outline:none}.lib-header{display:flex;gap:12px;align-items:center;margin-bottom:16px}.lib-header .search{flex:1;max-width:360px;margin-left:auto}.match-card{align-items:center;gap:12px}.match-card .title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-card .meta{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.pill{font-size:12px;font-weight:700;padding:1px 9px;border-radius:999px;white-space:nowrap;border:var(--outline-w) solid var(--border-strong);color:var(--text-secondary)}.pill.state-analysed{color:var(--backhand);border-color:currentColor}.pill.state-running,.pill.state-queued,.pill.state-cancelling{color:var(--accent);border-color:currentColor}.pill.state-failed{color:var(--danger);border-color:currentColor}.pill.state-incomplete{color:var(--forehand);border-color:currentColor}.bar{height:8px;background:var(--surface-2);border:var(--outline-w) solid var(--outline);border-radius:999px;overflow:hidden}.bar>div{height:100%;background:var(--accent);transition:width .3s}.bar.small{width:80px}.empty{text-align:center;padding:32px}.import-panel{margin-bottom:16px}.import-panel h3{font-size:13px;margin:12px 0 6px;font-weight:500}.import-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px}@media(max-width:760px){.import-grid{grid-template-columns:1fr}}.path-input{flex:1;min-width:0;font-family:ui-monospace,Menlo,monospace;font-size:12px}.browser{margin-top:6px;max-height:280px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:6px}.browser .entry{display:flex;justify-content:space-between;width:100%;text-align:left;gap:8px;border:0;border-radius:0;background:transparent;padding:5px 10px;box-shadow:none;border-bottom:1px solid var(--border)}.browser .entry:hover{background:var(--surface-2)}.browser .entry.video{color:var(--accent)}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px dashed var(--border-strong);border-radius:var(--radius);padding:16px;text-align:center;margin-top:12px;min-height:200px}.dropzone.over{border-color:var(--accent);background:var(--court-fill)}.dropzone .bar{width:80%}.analysis-bar{margin-bottom:12px}.analysis-bar .row{gap:10px}.stage-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.chip{font-size:11px;font-weight:700;padding:0 7px;border-radius:999px;border:1px solid var(--border-strong);color:var(--text-muted)}.chip-complete{color:var(--backhand);border-color:currentColor}.chip-running{color:var(--accent);border-color:currentColor}.chip-failed{color:var(--danger);border-color:currentColor}.chip-skipped{text-decoration:line-through}pre.log{margin:8px 0 0;max-height:240px;overflow:auto;font-size:11px;line-height:1.4;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px;white-space:pre-wrap}pre.log.error{color:var(--danger)}.chip-stopped{color:var(--warn-text);border-color:currentColor;border-style:dashed}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:#2d2a4a8c}.dialog{width:100%;max-width:440px;display:flex;flex-direction:column;gap:10px;background:var(--surface);border:var(--outline-w) solid var(--outline);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;outline:none}.dialog h2{margin:0;font-size:15px;color:var(--text-primary)}.dialog-text{font-size:13px;color:var(--text-secondary);display:flex;flex-direction:column;gap:6px}.dialog-text p{margin:0}.dialog-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.title-input{font-size:18px;font-weight:600;margin:8px 0 12px;width:min(100%,560px)}.app-nav{position:sticky;top:0;z-index:30;display:flex;gap:2px;align-items:center;margin:0 -24px 20px;padding:10px 24px;background:#fff8ece6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:var(--outline-w) solid var(--outline)}.app-nav .brand{display:inline-flex;align-items:center;gap:8px;margin-right:18px;font:600 19px/1 var(--font-display)}.app-nav .brand:before{content:"";width:28px;height:28px;background:url(./mark-B4aHYepK.svg) center / contain no-repeat}.app-nav button{background:transparent;border-color:transparent;box-shadow:none;color:var(--text-secondary)}.app-nav button:hover:not(:disabled){background:var(--surface-2);color:var(--text-primary)}.app-nav button.active,.app-nav button.active:hover:not(:disabled){background:var(--brand-yellow);border-color:var(--outline);box-shadow:var(--lift);color:var(--text-primary)}input[type=range],input[type=checkbox],input[type=radio]{accent-color:var(--accent)}details.fine-tune{margin:10px 0 4px}details.fine-tune>summary{cursor:pointer;color:var(--text-secondary);font-size:13px;padding:4px 0}.clip-summary{margin:0 0 10px;color:var(--text-secondary)}.ctl-label:first-letter{text-transform:uppercase}label.pick-video{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:600;color:var(--text-primary);cursor:pointer;background:var(--surface);border:var(--outline-w) solid var(--outline);border-radius:999px;padding:4px 14px;position:relative;box-shadow:var(--lift)}label.pick-video.primary{background:var(--accent);color:var(--accent-ink);font-weight:800}label.pick-video:hover{background:var(--surface-3)}label.pick-video.primary:hover{background:var(--accent-hover)}label.pick-video input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}label.pick-video:focus-within{outline:2px solid var(--accent);outline-offset:2px}.signin{min-height:100dvh;display:grid;place-items:center;padding:24px 0}.signin-card{max-width:440px;width:100%;padding:28px 24px}.signin-card h1{display:flex;align-items:center;gap:10px;font-size:26px}.signin-ball{width:34px;height:34px;background:url(./mark-B4aHYepK.svg) center / contain no-repeat}.signin-card p{color:var(--text-secondary);font-size:15px}.signin-card form{display:grid;gap:10px;margin:18px 0 8px}.signin-card label{font-weight:600}.signin-card input{font:inherit;font-size:16px;padding:10px 12px;border-radius:10px;border:var(--outline-w) solid var(--border-strong);width:100%}.signin-card button.primary{font-size:16px;padding:10px}.signin-note{font-size:13px!important}.hosted-library{max-width:880px}.hl-head{display:flex;align-items:center;gap:12px}.hl-head h1{margin:0}.hl-spacer{flex:1}.hl-head :is(button,label).primary{padding:9px 18px;border-radius:999px;font-size:15px}.hl-intro{margin:8px 0 18px;font-size:14px}.hl-list{display:grid;gap:12px}.hl-card{display:grid;gap:6px;margin-bottom:12px}.hl-list .hl-card{margin:0}.hl-open{all:unset;display:grid;gap:4px;cursor:default;border-radius:8px}.hl-card.ready .hl-open{cursor:pointer}.hl-card.ready:hover{border-color:var(--border-strong);background:var(--surface-2)}.hl-open:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.hl-title{font-weight:650;font-size:16px;overflow-wrap:anywhere}.hl-meta{font-size:13px}.hl-status{font-size:14px;color:var(--text-secondary)}.hl-card.ready .hl-status{color:var(--ok-text);font-weight:600}.hl-note{font-size:13px;margin:0}.hl-actions{margin:4px 0 0}.hl-bar{height:8px;border-radius:99px;background:var(--surface-3);overflow:hidden}.hl-bar>div{height:100%;background:var(--accent);transition:width .3s}.hl-why pre{white-space:pre-wrap;font-size:12px;max-height:200px;overflow:auto}.hl-empty p{margin:4px 0}button.ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.hosted-video{margin-bottom:12px}.hosted-video-actions{margin-top:10px;gap:10px}.hosted-video-actions :is(button,label){padding:9px 16px;font-size:15px}.account{max-width:640px}@media(max-width:640px){#root{padding:0 12px 24px}.app-nav{margin:0 -12px 12px;padding:8px 12px}.app-nav .brand{margin-right:8px}.match-head{flex-wrap:wrap;gap:6px}.match-head-title{flex:1 1 100%;order:2;min-width:0}.stage{border-radius:0;margin:0 -12px}.pc-btn{min-width:40px;min-height:40px}.pc-btn[aria-label="Keyboard shortcuts"]{display:none}.hl-head h1{font-size:20px}.watch-rail-inner{max-height:360px}}.court-check{max-width:980px}.cc-head{display:grid;gap:2px;margin-bottom:8px}.cc-head>button{justify-self:start;padding-left:0}.cc-head h1{margin:0}.cc-file{margin:0;font-size:13px;overflow-wrap:anywhere}.cc-wait{font-size:15px;padding:28px 18px;text-align:center}.cc-prompt-row{display:flex;gap:12px;align-items:center;justify-content:space-between}.cc-prompt{margin:6px 0 2px;font-size:18px;font-weight:650}.cc-sub{margin:0 0 10px;font-size:14px}.cc-frame{margin:0 auto}.cal-stage.placing svg{cursor:crosshair}.cc-diagram{width:96px;flex:none}.cc-diagram polygon{fill:#2f6fb3;stroke:#fff;stroke-width:1.5}.cc-diagram line.net{stroke:#fff;stroke-dasharray:3 2;stroke-width:1}.cc-diagram circle{fill:var(--surface);stroke:var(--border-strong);stroke-width:1}.cc-diagram text{font-size:9px;font-weight:700;text-anchor:middle;fill:var(--text-secondary)}.cc-diagram .next circle{fill:var(--accent);stroke:var(--accent)}.cc-diagram .next text{fill:var(--accent-ink)}.cc-diagram .done circle{fill:var(--surface-3)}.cc-nudge{display:flex;gap:8px;align-items:center;justify-content:center;margin:10px 0 0}.cc-nudge span{font-size:13px;color:var(--text-secondary);margin-right:4px}.cc-nudge button{min-width:44px;min-height:44px;font-size:16px;padding:0}.cc-problem,.cc-note{margin:10px 0 0;font-size:14px}.cc-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.cc-actions button{padding:10px 16px;font-size:15px}@media(max-width:640px){.court-check .cc-frame{margin:0 -12px}.court-check .cal-stage,.court-check .cal-stage img{border-radius:0}.cc-actions{flex-direction:column}.cc-actions button{width:100%;min-height:48px}.cc-prompt{font-size:17px}}.quick-shorts,.qs-export{margin-top:10px;padding:14px 18px 18px}.quick-shorts h2,.qs-export h2{font-size:18px;margin:0}.qs-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.qs-head button{padding:6px 14px}.qs-stats{display:flex;gap:6px;flex-wrap:wrap}.qs-chip{font-size:13px;color:var(--text-secondary);background:var(--surface-2);border:1.5px solid var(--border);border-radius:999px;padding:2px 10px;white-space:nowrap}.qs-chip b{color:var(--text-primary)}.qs-chip.on{background:var(--brand-ball);border-color:var(--outline);color:var(--brand-ink)}.qs-match{position:relative;height:34px;margin-top:14px;border-radius:10px;background:var(--surface-3);border:var(--outline-w) solid var(--outline);overflow:hidden}.qs-mark{position:absolute;top:0;bottom:0;min-width:3px;padding:0;border:0;border-radius:0;box-shadow:none;background:#2d2a4a47}.qs-mark.on{background:var(--brand-ball);box-shadow:inset 0 0 0 1px #2d2a4a59}.qs-mark:hover:not(:disabled){background:var(--accent)}.qs-mark.focus{background:var(--accent)}.qs-match-head{position:absolute;top:-2px;bottom:-2px;width:3px;margin-left:-1.5px;background:var(--brand-coral);pointer-events:none}.qs-strip{list-style:none;margin:12px 0 0;padding:0;max-height:300px;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px}.qs-point{position:relative;display:flex;align-items:center;gap:8px;padding:0 0 0 10px;min-height:46px;border:1.5px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden;transition:border-color .12s,background .12s,box-shadow .12s}.qs-point:hover{border-color:var(--border-strong)}.qs-point.on{border:var(--outline-w) solid var(--outline);background:#fbfde6;box-shadow:var(--lift)}.qs-point.playing{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.qs-point.focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--lift)}.qs-keep{display:flex;cursor:pointer}.qs-keep input{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0;width:22px;height:22px;border-radius:50%;border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;display:grid;place-items:center}.qs-keep input:checked{border-color:var(--outline);background:var(--brand-ball) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%232d2a4a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat}.qs-keep input:hover{border-color:var(--outline)}.qs-seek{flex:1;align-self:stretch;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:8px;align-items:baseline;text-align:left;position:relative;background:transparent;border:0;box-shadow:none;border-radius:0;padding:6px 12px 8px 0;font-weight:600;line-height:1.25}.qs-seek:hover:not(:disabled){background:transparent}.qs-n{grid-row:1 / 3;align-self:center;font:600 17px var(--font-display);min-width:1.4em}.qs-at{grid-column:2;grid-row:1;font-size:14px;font-weight:800}.qs-len{grid-column:3;grid-row:1;font-size:13px;color:var(--text-secondary);text-align:right}.qs-side{grid-column:2 / 4;grid-row:2;font-size:12px;color:var(--text-muted);font-weight:600}.qs-dur{position:absolute;left:0;bottom:0;height:3px;border-radius:2px;background:var(--border-strong)}.qs-point.on .qs-dur{background:var(--brand-ink);opacity:.55}.qs-point:not(.on) :is(.qs-n,.qs-at){color:var(--text-muted)}.qs-detail{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px;padding:10px 14px;border-radius:14px;background:var(--accent-soft);font-size:13px}.qs-detail-head b{font-family:var(--font-display);font-size:15px;font-weight:600;margin-right:4px}.qs-end{display:flex;align-items:center;gap:6px}.qs-detail button{padding:3px 12px;font-size:13px}.qs-export{display:grid;gap:14px}.qs-shapes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.qs-shape{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 16px;border-radius:18px;border:1.5px solid var(--border);background:var(--surface);box-shadow:none;font-weight:600;color:var(--text-secondary)}.qs-shape b{display:block;font:600 17px var(--font-display);color:var(--text-primary);margin-bottom:2px}.qs-shape>span:last-child>span{font-size:13px;line-height:1.35}.qs-shape:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.qs-shape.on,.qs-shape.on:hover:not(:disabled){border:var(--outline-w) solid var(--outline);background:#fbfde6;box-shadow:var(--lift-lg)}.qs-frame{flex:none;border:2.5px solid var(--outline);border-radius:6px;background:linear-gradient(var(--brand-ball),var(--brand-ball)) center / 34% 3px no-repeat,var(--accent)}.qs-shape.wide .qs-frame{width:56px;height:32px}.qs-shape.vertical .qs-frame{width:26px;height:46px;margin-inline:15px}.qs-shape:not(.on) .qs-frame{opacity:.5}.qs-fields{display:flex;flex-wrap:wrap;gap:12px 22px}.qs-field{display:grid;gap:5px}.qs-label{font-size:12px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.seg-src{display:none}.qs-seg{display:inline-flex;padding:3px;gap:2px;border-radius:999px;background:var(--surface-2);border:1.5px solid var(--border)}.qs-seg button{border:0;box-shadow:none;background:transparent;padding:5px 13px;font-size:13px;color:var(--text-secondary);white-space:nowrap}.qs-seg button:hover:not(:disabled){background:var(--surface-3);color:var(--text-primary)}.qs-seg button.on,.qs-seg button.on:hover:not(:disabled){background:var(--surface);color:var(--text-primary);box-shadow:0 0 0 var(--outline-w) var(--outline),var(--lift)}.qs-framing{padding-top:12px;border-top:1.5px dashed var(--border)}.qs-go{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.qs-cta button.primary{font-size:16px;padding:11px 26px;box-shadow:var(--lift-lg)}.qs-progress{display:flex;align-items:center;gap:8px;flex:1;min-width:240px;font-size:13px}.qs-note{margin:-4px 0 0;font-size:13px}.qs-files{margin:0;padding-left:18px;font-size:13px}.qs-files:empty{display:none}@media(max-width:720px){.qs-shapes{grid-template-columns:1fr}.qs-strip{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.qs-seg{flex-wrap:wrap;border-radius:16px}}.stage{position:relative;background:#000;border-radius:12px;overflow:hidden;border:var(--outline-w) solid var(--outline);box-shadow:var(--lift-lg);line-height:0;user-select:none;-webkit-user-select:none}.stage-inner{position:relative;margin:0 auto;aspect-ratio:var(--ar, 16 / 9);width:min(100%,max(420px,calc((100vh - 170px) * var(--ar, 1.7778))));cursor:pointer}.stage-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;border-radius:0;background:#000;object-fit:contain}.stage:fullscreen{width:100vw;height:100vh;border-radius:0;display:flex;align-items:center;justify-content:center}.stage:fullscreen .stage-inner{width:min(100vw,calc(100vh * var(--ar, 1.7778)))}.stage.idle,.stage.idle .stage-inner{cursor:none}.now-badge,.mode-badge{position:absolute;top:14px;line-height:1.3;font-size:13px;color:#fff;background:#0a0c0e9e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:6px 12px;border-radius:999px;pointer-events:none;display:flex;gap:10px;align-items:baseline;transition:opacity .25s}.now-badge{left:14px}.now-badge b{color:var(--accent-on-video);font-weight:650}.now-badge span{color:#fffc}.mode-badge{right:14px;color:#fff;background:var(--accent);font-weight:600}.now-badge.idle,.mode-badge.idle{opacity:0}.stage:fullscreen .now-badge,.stage:fullscreen .mode-badge{top:24px;font-size:15px}.stage:fullscreen .now-badge{left:24px}.stage:fullscreen .mode-badge{right:24px}.player-controls{position:absolute;left:0;right:0;bottom:0;z-index:5;line-height:1.3;padding:28px 14px 8px;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.78),rgba(0,0,0,.35) 65%,transparent);transition:opacity .25s}.player-controls.idle{opacity:0;pointer-events:none}.stage:fullscreen .player-controls{padding:40px 28px 18px}.scrubber{position:relative;height:22px;cursor:pointer;touch-action:none}.scrub-rail{position:absolute;left:0;right:0;top:8px;height:6px;border-radius:3px;background:#ffffff38;overflow:hidden;transition:top .12s,height .12s}.scrubber:hover .scrub-rail{top:6px;height:10px}.scrub-point{position:absolute;top:0;bottom:0;min-width:2px;background:#ffffff80}.scrub-point.excluded{background:#ffffff38}.scrub-point.active{background:var(--accent-on-video)}.scrub-selected{position:absolute;top:0;bottom:0;background:#facc15;opacity:.55}.scrub-played{position:absolute;left:0;top:0;bottom:0;background:#7fb2ff73}.scrub-head{position:absolute;top:4px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--accent),0 1px 4px #0006;pointer-events:none}.scrub-mark{position:absolute;top:2px;bottom:2px;width:2px;background:var(--mark-in)}.scrub-mark.out{background:var(--mark-out)}.scrub-tip{position:absolute;bottom:24px;transform:translate(-50%);padding:2px 7px;font-size:12px;font-variant-numeric:tabular-nums;border-radius:5px;background:#0a0c0ee6;color:#fff;pointer-events:none;white-space:nowrap}.pc-row{display:flex;align-items:center;gap:4px;margin-top:4px}.pc-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:36px;height:36px;padding:0 8px;border:0;box-shadow:none;border-radius:8px;background:transparent;color:#fff}.pc-btn:hover:not(:disabled){background:#ffffff24;border:0}.pc-play{min-width:44px;height:44px}.pc-text{font-size:13px;font-weight:600}.pc-text.on{background:var(--accent);color:#fff}.pc-text.on:hover:not(:disabled){background:var(--accent-hover)}.pc-rate{min-width:48px;font-variant-numeric:tabular-nums}.pc-time{margin-left:8px;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.pc-dim{color:#fff9}.pc-spacer{flex:1}@media(max-width:640px){.pc-text:not(.pc-rate){font-size:0;gap:0}.pc-time .pc-dim{display:none}}.quick-page .panel{margin-bottom:14px}.quick-page .hl-card{gap:10px}#overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.stage.marking #overlay{pointer-events:auto;cursor:crosshair;z-index:6}.stage.marking .player-controls{opacity:.35}.stage.over-box .stage-inner{cursor:grab}.stage.dragging .stage-inner{cursor:grabbing}.now-badge .in{color:var(--brand-ball);font-weight:700}.pc-btn .icon{display:block}.pc-include{min-width:120px;white-space:nowrap}.quick-page .pc-row{flex-wrap:wrap}.hotkey-help{position:absolute;z-index:8;top:12px;right:12px;max-height:calc(100% - 24px);overflow:auto;width:min(360px,calc(100% - 24px));line-height:1.4;color:#fff;font-size:13px;background:#0a0c0ee0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:14px;padding:10px 14px 12px}.hk-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.hotkey-help dl{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0}.hotkey-help dt{white-space:nowrap}.hotkey-help dd{margin:0;color:#ffffffd9}.hotkey-help .kbd{background:#ffffff1f;color:#fff;border-color:#ffffff4d}.quick-page .cc-prompt{margin:2px 0 0;font-size:16px}.quick-page .cc-sub{margin:2px 0 0}.quick-page .cc-actions{margin-top:0}.quick-page .cc-actions button{padding:4px 12px;font-size:14px}.quick-page .cc-prompt.finding:after{content:"…"}.quick-page .qs-strip{max-height:360px}.quick-page .qs-progress .progress{max-width:320px}.quick-page #scan-progress{margin-top:6px}.quick-page #scan-hint{margin:8px 0 0;font-size:13px}.quick-page .qs-files a{font-weight:600}[hidden]{display:none!important}.app-nav .licence-btn{font-size:13px;font-weight:700}.app-nav .licence-btn.trial{color:var(--text-secondary)}.app-nav .licence-btn.licensed{color:var(--ok-text)}.app-nav .licence-btn.expired{color:var(--text-primary);background:var(--brand-yellow);border-color:var(--outline);box-shadow:var(--lift)}.ld-form{display:grid;gap:6px}.ld-form label{font-weight:700;font-size:13px}.ld-form .row{flex-wrap:nowrap;margin:0}.ld-form input{flex:1;min-width:0;font-size:14px;padding:7px 10px}.dialog .warn{font-size:13px;margin:0}.pc-break{display:none}@media(max-width:640px){.quick-page .stage{border-radius:12px;margin:0}.quick-page .stage-inner{aspect-ratio:auto;width:100%;cursor:default}.quick-page .stage-video{position:relative;height:auto;aspect-ratio:var(--ar, 16 / 9)}.quick-page #overlay{bottom:auto;height:auto;aspect-ratio:var(--ar, 16 / 9)}.quick-page .player-controls,.quick-page .player-controls.idle{position:static;opacity:1;pointer-events:auto;padding:4px 6px 8px;background:#14161a}.quick-page .scrubber{height:28px}.quick-page .scrub-rail{top:10px;height:8px}.quick-page .scrub-head{top:6px;width:16px;height:16px;margin-left:-8px}.quick-page .pc-row{flex-wrap:wrap;gap:4px 2px;margin-top:0}.quick-page .pc-row>.pc-btn{flex:1 1 0;min-width:40px;height:44px;padding:0}.quick-page .pc-play{height:44px}.quick-page .pc-break{display:block;flex-basis:100%;height:0}.quick-page .pc-time{order:-1;flex-basis:100%;margin:0 0 2px;text-align:right;font-size:12px}.quick-page .pc-time .pc-dim{display:inline}.quick-page .pc-spacer,.quick-page [data-act=help],.quick-page .hotkey-help{display:none}.quick-page .pc-text{font-size:13px}.quick-page .pc-row>.pc-include{flex:3 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-page .now-badge{top:8px;left:8px;font-size:12px;padding:4px 10px}.quick-page .qs-strip{grid-template-columns:repeat(2,minmax(0,1fr));max-height:50vh}.quick-page .qs-point{min-height:50px}.quick-page .qs-keep input{width:22px;height:22px}.quick-page .qs-seek{min-height:40px;font-size:14px}.quick-page .qs-end button{min-width:44px;min-height:40px;font-size:14px}.quick-page .qs-head{gap:6px}.quick-page .qs-head #scan,.quick-page .qs-go .primary{padding:10px 16px;font-size:15px}.quick-page .qs-options{display:grid;grid-template-columns:1fr}.quick-page .qs-options label{justify-content:space-between}.quick-page .qs-options select{min-height:40px}.quick-page .cc-actions button{width:auto;min-height:40px}}.signin .google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;font-size:16px;padding:10px;margin-top:18px}.signin-or{display:flex;align-items:center;gap:10px;margin:16px 0 0;color:var(--text-muted);font-size:13px}.signin-or:before,.signin-or:after{content:"";flex:1;border-top:1px solid var(--border-strong)}.signin-sent{margin:0!important;font-size:14px!important}.signin-again{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.signin-again button{padding:4px 6px;font-size:13px}.signin #code{letter-spacing:.3em;font-variant-numeric:tabular-nums}.account-wrap{position:relative;margin-left:6px}.app-nav .account-btn{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.account-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:220px;background:var(--surface);border:var(--outline-w) solid var(--outline);border-radius:14px;box-shadow:var(--shadow-sm);padding:10px 12px;display:grid;gap:8px}.account-menu p{margin:0;font-size:13px;overflow-wrap:anywhere}@media(max-width:640px){.app-nav .account-btn{max-width:120px}.app-nav .licence-btn{padding:4px 10px}}
