/* Phase 1 — approved graphite / warm white / electric lime workspace. */
:root{--bg:#fafbf9;--panel:#fff;--panel2:#f5f6f3;--line:#e3e6e2;--line2:#d7dcd6;--text:#191d1e;--ink:#191d1e;--dim:#667077;--dim2:#78828a;--acc:#637d16;--acc-dim:#4b6110;--acc-soft:#f0f7dd;--lime:#c3f638;--sidebar:#1b2022;--good:#43823c;--r:10px}
body{font-family:Inter,"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:14px;background:var(--bg)}
button,a,input,select,summary{touch-action:manipulation}button:disabled{cursor:not-allowed}a{color:inherit}h1,h2,h3,p{overflow-wrap:anywhere}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #729323;outline-offset:3px}button,input,select{font:inherit}button{transition:background .15s,border-color .15s}button:hover:not(:disabled){filter:brightness(.97)}svg{width:21px;height:21px;display:block;flex:none}[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex:none}.skip-link{position:fixed;top:-80px;left:230px;z-index:200;padding:12px;background:var(--lime);border-radius:5px}.skip-link:focus{top:12px}
.workspace-sidebar{position:fixed;inset:0 auto 0 0;width:208px;background:linear-gradient(135deg,#202629,#191e20);color:#e7eaeb;display:flex;flex-direction:column;padding:28px 12px 20px;z-index:60}.workspace-brand{display:flex;gap:13px;align-items:center;text-decoration:none;padding:0 14px 30px;font-size:23px;font-weight:750;letter-spacing:.2px}.workspace-brand img{width:31px;height:40px}.sidebar-caption{padding:7px 19px 16px;font-size:10px;letter-spacing:2px;color:#8c9599}.workspace-nav{display:flex;flex-direction:column;gap:8px}.workspace-nav button{height:53px;padding:0 18px;display:flex;gap:17px;align-items:center;position:relative;border-radius:4px;text-align:left;font-size:14px;font-weight:500;color:#c5cccf;white-space:nowrap}.workspace-nav button svg{width:23px;height:23px}.workspace-nav button.active{background:linear-gradient(90deg,#33393b,#292f31);color:#fff}.workspace-nav button.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:4px;border-radius:2px;background:var(--lime)}.workspace-nav .tab.active:after{display:none}.nav-later{font-size:9px;margin-left:auto;color:#929da2;border:1px solid #4b5458;padding:1px 4px;border-radius:3px}.sidebar-bottom{margin-top:auto;padding-top:36px}.sidebar-settings{display:flex;gap:14px;align-items:center;padding:15px 18px;font-size:12px;color:#aeb8bd}.sidebar-settings svg{width:18px;height:18px}.workspace-account{display:flex;align-items:center;gap:12px;border-top:1px solid #353b3d;margin:8px 10px 0;padding-top:20px}.account-icon{width:39px;height:39px;border-radius:50%;background:#343d3e;color:var(--lime)}.workspace-account strong{font-size:13px;font-weight:600}.workspace-account small{display:block;margin-top:6px;font-size:10px;color:#aeb8bd}.workspace-account i,.phase-badge i{display:inline-block;width:7px;height:7px;background:var(--lime);border-radius:50%;margin-right:7px}.account-preview{margin:13px 0 0 60px;padding:0;font-size:10px;color:#aeb8bd}.mobile-menu{display:none}
#app{margin:0 0 0 208px;background:var(--bg);min-height:100vh;padding:28px 32px 0}#app .screen{padding:0;min-height:calc(100vh - 89px);max-width:1600px;margin:0 auto}#app #scr-home{max-width:1600px;position:relative}.workspace-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;min-height:109px}.breadcrumb{display:flex;align-items:center;gap:15px;font-size:11px;color:var(--dim);font-weight:500;margin-bottom:13px}.breadcrumb>span:last-child{color:var(--text)}.breadcrumb button{padding:0;color:var(--dim)}.workspace-heading h1{font-size:34px;font-weight:800;line-height:1.3;letter-spacing:-1px;margin:0}.workspace-heading p{font-size:14px;line-height:1.7;color:var(--dim);margin:8px 0 0}.phase-badge{flex:none;font-size:10px;color:#6e787c;background:#f0f2ef;border:1px solid var(--line);padding:5px 9px;border-radius:5px}.phase-badge i{width:5px;height:5px;background:#829e37}.workspace-footer{max-width:1600px;display:flex;justify-content:space-between;gap:10px;margin:24px auto 0;padding:14px 0;color:#8b9394;font-size:10px;border-top:1px solid var(--line)}
#app #tab-new{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr);gap:20px 24px;align-items:start}.workflow{grid-column:1/-1;display:flex;justify-content:space-between;gap:14px;list-style:none;padding:0;margin:0 0 2px;color:#7c8588;font-size:11px}.workflow li{display:flex;gap:9px;align-items:center;position:relative;white-space:nowrap}.workflow li+li:before{content:"";height:1px;width:22px;background:#d8ded5;position:absolute;right:calc(100% + 12px)}.workflow li>span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;font-size:12px;font-weight:650;background:#e9ece7;color:#6c747c}.workflow .active{color:var(--text)}.workflow .active>span{background:var(--lime);color:#252a1b}.workflow .complete>span{background:#edf7d4;color:#61792a}
#app .mode-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,1fr);gap:0;background:#fff;border:1px solid var(--line);border-radius:7px;overflow:hidden}.mode-grid .mode{background:transparent;border:0;border-radius:0;padding:14px 5px;position:relative;color:#626e76;min-height:48px}.mode-grid .mode:after{content:"";position:absolute;width:1px;height:23px;background:var(--line);right:0;top:13px}.mode-grid .mode:last-child:after{display:none}.mode-grid .mode.active{background:#22282a!important;color:#fff;border-color:transparent!important;box-shadow:inset 0 -4px var(--lime)}.mode-grid .mode.active:after{display:none}.mode-grid .mode .m-t{font-size:13px;font-weight:600}.upload-column,.analysis-options{min-width:0}.upload-card,.method-section,.analysis-includes{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.upload-file-heading{padding:15px 17px;display:flex;align-items:center;gap:12px;min-height:69px}.file-icon{width:33px;height:36px;background:#252b2d;color:white;border-radius:5px}.file-icon svg{width:19px}.upload-file-heading>div{min-width:0;flex:1}.upload-file-heading strong{font-size:14px;font-weight:650;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.upload-file-heading small{font-size:11px;display:block;color:var(--dim);margin-top:3px}.text-button{font-size:11px;color:#637039;flex:none;border:1px solid var(--line);border-radius:5px;padding:7px 9px}.upload-card .drop{margin:0;padding:0;border:0;border-radius:0;position:relative;isolation:isolate;aspect-ratio:16/8.6;min-height:230px;display:flex;align-items:stretch;justify-content:flex-end;gap:0;overflow:hidden;text-align:left;cursor:pointer}.upload-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.drop:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.16),transparent 40%,rgba(8,17,16,.84));z-index:-1}.drop.drag:after{background:#59701ca6}.photo-label,.photo-view{position:absolute;top:13px;font-size:9px;padding:5px 8px;background:#17232287;border:1px solid #ffffff39;color:#fff;border-radius:4px;letter-spacing:.4px}.photo-label{left:14px}.photo-view{right:14px;font-size:8px;letter-spacing:1.5px}.upload-caption{padding:23px;display:flex;gap:14px;align-items:center;color:#fff;width:100%}.upload-symbol{width:37px;height:37px;border-radius:50%;border:1px solid #ffffff60;background:#ffffff10}.upload-caption .d-t{font-size:17px;margin:0;color:#fff}.upload-caption .d-s{font-size:11px;color:#e0e7e2;margin-top:4px}.upload-caption small{font-size:8px;color:#c7d0ca;letter-spacing:1.2px;display:block;margin-top:8px}.upload-caption .d-l{margin:0 0 0 auto;padding:10px 15px;background:var(--lime);color:#222a15;border-radius:4px;font-size:12px;white-space:nowrap}.d-l b{margin-left:8px;font-weight:500}.upload-card .vready{border:0;border-radius:0;margin:0;padding:0;display:grid;grid-template-columns:1fr auto;gap:0;background:#f5f6f3}.vready video{grid-column:1/-1;width:100%;height:320px;max-height:48vh;object-fit:contain;border-radius:0;background:#1b1f20}.vr-info{padding:13px 16px}.vready .ghost-btn{margin:10px 14px}.calibration-row{display:flex;align-items:center;gap:10px;padding:16px;background:#fcfcfb;border-top:1px solid var(--line);font-size:10px}.calibration-row>div{flex:1;min-width:0}.calibration-row strong{display:block;font-size:12px;margin-bottom:4px}.calibration-row small{display:block;color:var(--dim);font-size:9px}.calibration-row button{border:1px solid var(--line);padding:7px 9px;border-radius:4px;color:#909997;background:#f3f4f1;font-size:10px;white-space:nowrap}.calibration-value{display:flex;align-items:center;gap:8px;color:#89928c;white-space:nowrap}.calibration-value b{font-weight:400}.parameters{margin-top:22px}.parameters h2,.analysis-options h2{font-size:16px;line-height:1.4;margin:0 0 14px;font-weight:700}.parameter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px 20px}.parameter-grid .field,.advanced-grid .field{margin:0;min-width:0}.f-l{font-size:11px;color:#636f72;margin-bottom:7px}.f-l i{font-size:10px}.field input,.field select{height:39px;font-size:13px;border-radius:5px;background-color:#fff;padding:0 10px;border-color:var(--line2)}.field input:disabled{background:#f0f2ef;color:#818c83}.field input::placeholder{font-size:11px;color:#89918c}.field select{padding-right:29px;background-position:calc(100% - 16px) 17px,calc(100% - 11px) 17px;background-size:5px 5px}.gender-row{margin:0;gap:5px}.gbtn{padding:8px 6px;font-size:12px;height:39px;border-radius:5px;background:white;font-weight:500}.gbtn.active{background:#f1f7e2;border-color:#a9c375;color:#31451b}.adv{margin-top:20px;border:1px solid var(--line);background:#f7f8f5;border-radius:6px;padding:13px 15px}.adv summary{font-size:12px;color:#333f3f;display:flex;gap:12px;align-items:center;list-style:none}.adv summary:before{content:"›";font-size:22px;line-height:1;color:#74816f;transition:transform .2s}.adv[open] summary:before{transform:rotate(90deg)}.adv summary>span{font-size:10px;color:var(--dim);margin-left:12px}.advanced-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:18px}.fnote{font-size:10px;color:#74816f;line-height:1.7}.linklike{color:#778373;font-size:11px;margin-top:16px;text-decoration:none}
.method-section,.analysis-includes{padding:19px 17px}.method-section h2{display:flex;gap:15px;align-items:center}.method-section h2 small{font-size:11px;font-weight:400;color:var(--dim)}.method-option{border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;gap:15px;padding:17px 14px;margin:9px 0;background:#fff;min-height:84px}.method-option.selected{border-color:#c1d68d;background:#fcfef6;box-shadow:inset 3px 0 #c3f638}.method-option input{margin:0;accent-color:#6c9b17;width:17px;height:17px;flex:none}.method-copy{flex:1;min-width:0}.method-copy>span{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.method-copy strong{font-size:14px;font-weight:650}.method-copy i{background:#f0f2ef;color:#7b8580;border-radius:4px;font-style:normal;font-size:9px;padding:3px 6px;line-height:1.2}.method-copy i.method-tag{background:#e0f5dd;color:#3f7942}.method-copy small{display:block;color:#7d877d;font-size:10px;margin-top:7px}.method-option.unavailable{background:#fcfcfb}.option-note{display:flex;gap:8px;align-items:flex-start;line-height:1.8;font-size:10px;color:#7b8584;margin:12px 0 0}.option-note svg{width:15px;height:15px;margin-top:1px}.analysis-includes{margin-top:14px;padding-bottom:16px}.analysis-includes h2{font-size:14px;margin-bottom:12px}.analysis-includes ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}.analysis-includes li{font-size:11px;color:#5e6b6b;border-radius:4px;background:#f5f7f3;padding:8px 10px;display:flex;align-items:center;gap:10px}.analysis-includes li:before{content:"✓";font-size:11px;font-weight:700;color:#4e7834;background:#d9f69a;width:16px;height:16px;border-radius:50%;text-align:center;line-height:16px}.analysis-options .start-wrap{padding:15px 0 0;max-width:none;width:100%;text-align:center}.start-wrap .start{background:var(--lime)!important;color:#1d2518!important;border:1px solid #b8eb2d;border-radius:6px;font-size:17px;font-weight:750;height:51px;gap:20px}.start-wrap .start span{font-size:25px;font-weight:400}.start-wrap .start:disabled{opacity:1;background:#ebf4d4!important;border-color:#dde8c6;color:#788369!important}.start-wrap p{font-size:10px;color:#737d70;margin:10px 0 5px}.start-wrap small{font-size:9px;color:#949c93}.shooting-note{display:flex;gap:12px;margin-top:27px;padding:0 5px;color:#8a927d}.shooting-note>span{margin-top:2px}.shooting-note svg{width:18px;height:18px}.shooting-note strong{font-size:11px;color:#617157}.shooting-note p{font-size:10px;line-height:1.8;margin:5px 0}.shooting-note button{padding:0;font-size:10px;color:#607146}.demo-ready{aspect-ratio:16/8.6;min-height:230px;background:#222b25;padding:35px;color:#fff;position:relative;overflow:hidden}.demo-motion{position:absolute;right:10px;top:-20px;font-size:220px;font-weight:200;line-height:1;color:#c3f63824;pointer-events:none}.demo-ready h2{font-size:27px;margin:26px 0 10px}.demo-ready p{font-size:12px;color:#c0cbbb}.demo-ready .outline-button{color:#dbeac5;border-color:#72865b;background:transparent;margin-top:10px}
.outline-button,.dark-button,.lime-button,.pill{border:1px solid var(--line2);font-size:11px;padding:10px 13px;border-radius:5px;white-space:nowrap;font-weight:600;background:#fff;color:#323b3c;min-height:36px}.dark-button{background:#252b2d;border-color:#252b2d;color:#fff}.lime-button,.pill{background:var(--lime);border-color:var(--lime);color:#1e2918}.icon-button{font-size:23px;color:#6a7475;padding:0 6px}.header-actions{display:flex;gap:9px;align-items:center;margin-top:22px;flex-wrap:wrap;justify-content:flex-end}.report-heading{min-height:95px;margin-bottom:20px}.report-heading h1{font-size:30px}.report-heading p{font-size:11px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.report-meta>span:first-child{max-width:480px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{background:#e8efdb;color:#637644;font-size:10px;border-radius:4px}.export-menu{position:relative;z-index:40}.export-menu summary{list-style:none;cursor:pointer}.export-menu summary::-webkit-details-marker{display:none}.export-menu summary span{margin-left:13px}.export-menu>div{position:absolute;right:0;top:calc(100% + 7px);padding:6px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 28px #1b2b1617;border-radius:6px;min-width:173px}.export-menu button{display:block;width:100%;padding:10px;text-align:left;font-size:12px;border-radius:4px}.export-menu button:hover{background:#f2f6e8}.export-menu button:disabled{color:#8d9790}.report-tabs{display:flex;gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;margin-bottom:20px}.report-tabs button{flex:1;padding:12px 8px;font-size:12px;color:#758073;position:relative}.report-tabs button.active{background:#252b2d;color:#fff;box-shadow:inset 0 -3px var(--lime)}
#app .an-body{display:grid!important;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:22px;padding:0;max-width:none!important;align-items:start}.an-body .video-col{position:static!important;min-width:0}.an-body .report{min-width:0;display:flex;flex-direction:column;gap:15px}.player-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}.player-heading h2{font-size:14px;margin:0}.player-heading>div{display:flex;gap:7px}.player-heading button{padding:6px 8px;font-size:9px;border:1px solid var(--line);color:#9aa397;border-radius:4px;background:white}.video-wrap{border-radius:7px;background:#1d2325}.video-wrap #player{max-height:460px;object-fit:contain}.local-playback{border-radius:0 0 6px 6px;margin-top:0;border-color:var(--line);padding:10px}.local-playback .ctrlbar{gap:5px}.local-playback .cbtn{background:#252b2d;color:#fff;border-color:#3e474a;width:32px;height:32px;font-size:12px}.local-playback .cbtn.wide{width:auto;font-size:10px;padding:0 10px;border-radius:4px}.local-playback .cbtn.primary-sm{background:var(--lime);border-color:var(--lime);color:#263019}.local-playback .ctime{font-size:10px;color:#798572}.local-playback .live-layers{background:#f5f8ef;color:#657054;font-size:9px;padding:8px;gap:8px}.local-playback input[type=checkbox]{accent-color:#7fa41e}.kf-strip{border-radius:6px;border-color:var(--line);padding:12px;margin-top:12px}.kf-title{font-size:11px}.kf-list{gap:9px}.kf-card{border-radius:4px}.kf-card .kf-l,.kf-card .kf-t{font-size:9px}
.an-body .rcard{border:1px solid var(--line)!important;border-radius:7px;padding:18px;margin:0;background:#fff!important}.video-col>.rcard{margin-top:15px}.rcard h3{font-size:14px;margin-bottom:15px}.rcard h3 .sub{font-size:8px;color:#8a9488;letter-spacing:.4px}.mgrid{gap:8px}.an-body .mtile{padding:12px 10px;border:1px solid #ecefe8;border-radius:5px;background:#f7f9f5!important}.mtile i{font-size:10px;color:#72816b}.mtile b{font-size:23px;color:#1d271c;line-height:1.5;font-weight:650}.mtile b s{font-size:10px}.mtile .delta{font-size:9px;line-height:1.5}.local-heading{align-items:flex-start}.local-heading h3{font-size:16px;line-height:1.4;margin:0}.local-chip{background:#ecf3df;color:#68803f;font-size:9px;border-radius:4px;padding:3px 6px}.local-note{font-size:10px;color:#819079;line-height:1.8;margin:10px 0}.local-priorities article{gap:12px;padding:18px 0;border-color:var(--line)}.local-priorities article:last-child{border:0;padding-bottom:5px}.local-number{font-size:11px;font-weight:650;background:#edf0e9;color:#4b5a40;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;flex:none}.local-priorities strong{font-size:13px;font-weight:650}.local-priorities p{font-size:10px;line-height:1.9;color:#738069;margin:6px 0}.local-priorities small{font-size:9px;color:#8a9581}.local-actions{gap:6px;margin:14px 0 6px}.local-actions button{font-size:10px;padding:8px 9px;border-radius:4px;border-color:var(--line2);color:#5d704b}.local-primary{background:#283225!important;border-color:#283225!important;color:#fff!important}.local-evidence{margin:0;border-color:#e1e6d7;background:#f5f8ee;border-radius:7px;padding:17px;font-size:10px;line-height:1.9;color:#718065}.local-evidence strong{font-size:13px;color:#42543b;margin-bottom:7px}.evidence-grid{margin:0;display:grid;gap:0}.evidence-grid>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #e2e8d7;font-size:11px}.evidence-grid dt{color:#52624c}.evidence-grid dd{margin:0;font-size:9px;padding:2px 6px;border-radius:3px;background:#e4efd5;white-space:nowrap}.evidence-grid .estimated{background:#fff0d4;color:#8b722d}.evidence-grid .review{background:#efe8e1;color:#906b53}.evidence-detail{font-size:9px;line-height:1.8;color:#849178;margin-top:9px}.training-fold{border:1px solid var(--line);border-radius:5px;margin-top:8px;padding:11px 12px;background:#fdfefb}.training-fold summary{font-size:12px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer}.training-fold summary:after{content:"+";color:#6f8355;font-size:18px;line-height:1}.training-fold[open] summary:after{content:"−"}.training-fold .s-d{font-size:11px;line-height:1.8;margin:12px 0 6px;color:#6f7c64}.training-fold .s-r{font-size:10px;color:#7d895d}.chart-tabs{flex-wrap:wrap;gap:6px}.chart-tabs button{font-size:10px;padding:6px 8px;border-radius:4px}.chart-tabs button.active{background:#ecf5d8;color:#55732a;border-color:#c9dca5}.chart-note{font-size:9px;line-height:1.7}.ctable{font-size:11px}.ctable th,.ctable td{padding:10px 5px;white-space:normal;overflow-wrap:anywhere}.ang-grid{gap:8px}.ang-item{border-radius:5px;padding:10px}.ang-item i{font-size:10px}.ang-item b{font-size:19px}.an-body .s-t{font-size:12px}.an-body .s-d{font-size:11px}.an-body .s-r{font-size:9px}.an-body .method{font-size:10px}.verdict-row{gap:12px}.vd{font-size:17px}.vd-note{font-size:11px;line-height:1.8}.exp-row{flex-wrap:wrap;gap:6px}.exp-row button{font-size:11px}.ai-answer{font-size:12px;line-height:1.8;background:#f7f9f2;padding:12px}.report>.rcard,.report>.local-evidence{display:none}.an-body[data-report-tab=overview] .report>.local-coach,.an-body[data-report-tab=overview] .report>.local-evidence,.an-body[data-report-tab=overview] .report>.card-training,.an-body[data-report-tab=curves] .report>.card-posture,.an-body[data-report-tab=curves] .report>.card-dynamics,.an-body[data-report-tab=reference] .report>.card-reference,.an-body[data-report-tab=reference] .report>.card-summary,.an-body[data-report-tab=training] .report>.local-coach,.an-body[data-report-tab=training] .report>.card-suggestions,.an-body[data-report-tab=training] .report>.card-training,.an-body[data-report-tab=data] .report>.card-exports,.an-body[data-report-tab=data] .report>.local-evidence,.an-body[data-report-tab=data] .report>.card-summary{display:block}.an-body .report>.card-error{display:block}.report>.card-training{order:2}.report>.local-evidence{order:3}.an-body[data-report-tab=training] .video-col>.card-curves,.an-body[data-report-tab=data] .video-col>.card-curves{display:none}#report-video-export:disabled{background:#eef3e4;border-color:#e2e8d9;color:#909987}
.archive-toolbar{display:flex;align-items:center;gap:14px;margin:5px 0 16px;font-size:12px;color:#717d74}.archive-toolbar>button{margin-left:auto}#app .hist-list{padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.hcard{border-color:var(--line);border-radius:7px;padding:20px}.hm{border-radius:4px;background:#f4f7ee}.archive-note{font-size:11px;line-height:1.8;color:#819078;margin-top:20px}.empty{border:1px dashed var(--line2);border-radius:8px;padding:85px 20px;background:#fff}.empty .ghost{color:#e3edce}.empty .e-t{font-size:20px}.empty .pill{margin-top:22px;font-size:12px}.aux-heading h1{margin-bottom:8px}.aux-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.aux-card{background:#fff;border:1px solid var(--line);border-radius:7px;padding:23px;min-width:0}.aux-card h2{font-size:16px;margin:0 0 16px}.aux-card p,.aux-card li{font-size:12px;color:#78836f;line-height:1.9}.aux-card ul,.aux-card ol{padding-left:20px;margin:0}.aux-kicker{font-size:10px;color:#7b9062;margin-bottom:13px}.aux-card .athlete-letter{display:grid;place-items:center;background:#f0f6e2;color:#758e43;width:40px;height:40px;font-size:16px;border-radius:50%;margin-bottom:20px}.athlete-meta{display:flex;gap:12px;margin:15px 0 20px;font-size:11px;color:#7d8877}.aux-callout{padding:17px 20px;margin:20px 0;background:#f0f5e6;border:1px solid #e1e9d3;border-radius:6px;color:#6c7c59;font-size:12px;line-height:1.9}.workspace-dialog{max-height:85vh;overflow:auto;border-radius:10px;border-color:var(--line2);padding:26px;color:var(--text)}dialog::backdrop{background:#1219178c;backdrop-filter:blur(3px)}dialog input,dialog select{background:#fff;color:var(--text);border-color:var(--line2);border-radius:5px}dialog h2{font-size:21px}dialog .local-heading button{border:0;padding:0 6px;font-size:24px}dialog p{color:#77836e;font-size:12px}dialog .field label{margin:0 0 5px}.dialog-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}#athlete-error{color:#af4f3d}.dialog-note{background:#f4f7ed;padding:12px;border-radius:5px}.dialog-pill{display:inline-flex;padding:5px 9px;background:#ecf3db;color:#6c803f;font-size:10px;border-radius:4px;margin-bottom:18px}#toast{background:#283221;border:1px solid #455935;color:#f0f6e4;font-size:12px;max-width:calc(100vw - 32px);z-index:250}
@media(min-width:1250px){.workflow{position:absolute;right:0;top:67px;width:49%;gap:11px;font-size:10px}.workflow li+li:before{width:15px;right:calc(100% + 9px)}.workflow li>span{width:30px;height:30px}.workspace-heading{margin-bottom:18px}}
@media(min-width:1680px){#app{padding:35px 44px 0}.workspace-sidebar{width:228px}#app{margin-left:228px}.workspace-heading h1{font-size:40px}.workflow{top:73px}.upload-card .drop{aspect-ratio:16/8.2}.method-option{padding:21px 18px}.method-copy strong{font-size:16px}.method-copy small,.analysis-includes li{font-size:12px}.upload-caption .d-t{font-size:22px}.parameter-grid{gap:18px 25px}.field input,.field select{height:43px}.gbtn{height:43px}.workspace-heading{min-height:121px}}
@media(max-width:1249px){.workspace-sidebar{width:184px;padding-left:8px;padding-right:8px}.workspace-brand{font-size:21px;gap:9px;padding-left:14px}.workspace-nav button{font-size:13px;padding-left:15px;gap:12px}.sidebar-caption{font-size:9px}.nav-later{font-size:8px;padding:1px 3px}.sidebar-settings{font-size:11px}.account-preview{font-size:9px;margin-left:53px}#app{margin-left:184px;padding:25px 23px 0}.workspace-heading h1{font-size:30px}.workspace-heading{min-height:100px}.workflow{margin-bottom:0}.workflow li+li:before{display:none}#app #tab-new{grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:16px}.mode-grid .mode .m-t{font-size:12px}.upload-caption{padding:17px;gap:10px}.upload-symbol{display:none}.upload-caption .d-t{font-size:16px}.upload-caption .d-l{font-size:10px;padding:9px 10px}.calibration-row{flex-wrap:wrap;gap:8px}.calibration-row>div{flex-basis:100%}.parameters h2,.analysis-options h2{font-size:14px}.parameter-grid{gap:14px}.method-section,.analysis-includes{padding:16px 13px}.method-option{padding:16px 10px;gap:10px}.method-copy strong{font-size:13px}.method-copy i{font-size:8px}.method-copy small{font-size:9px}.report-heading{flex-direction:column;gap:0}.header-actions{margin-top:14px}.report-heading h1{font-size:29px}#app .an-body{grid-template-columns:minmax(0,1.5fr) minmax(285px,1fr);gap:16px}.local-heading{flex-wrap:wrap}.local-heading h3{font-size:15px}.an-body .rcard{padding:15px}.mtile b{font-size:20px}.aux-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:999px){#app #tab-new{grid-template-columns:1fr;gap:17px}.workflow{font-size:11px}.analysis-options{display:grid;grid-template-columns:1fr 1fr;gap:15px;align-items:start}.method-section{grid-row:span 3}.analysis-includes{margin:0}.analysis-options .start-wrap{padding-top:0}.shooting-note{margin:0}.mode-grid .mode .m-t{font-size:11px}.mode-grid .mode{padding:13px 4px}.upload-card .drop{aspect-ratio:16/8.3}.calibration-row>div{flex-basis:auto}.upload-caption .d-t{font-size:20px}.upload-caption .d-l{font-size:12px}.upload-symbol{display:inline-flex}.upload-caption{padding:25px}.parameter-grid{gap:18px}.report-heading h1{font-size:27px}#app .an-body{grid-template-columns:1fr}.an-body .report{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.report>.local-coach{grid-row:span 2}.report>.card-reference,.report>.card-suggestions,.report>.card-exports{grid-column:1/-1}.video-wrap #player{max-height:460px}#app .hist-list{grid-template-columns:1fr}}
@media(max-width:700px){.workspace-sidebar{width:232px;transform:translateX(-100%);transition:transform .2s;padding:24px 12px;visibility:hidden}.menu-open .workspace-sidebar{transform:none;visibility:visible}.workspace-brand{font-size:23px}.workspace-nav button{font-size:14px;gap:18px;height:54px}.sidebar-caption{font-size:10px}.nav-later{font-size:9px}.workspace-account small,.account-preview{font-size:10px}.sidebar-settings{font-size:12px}.mobile-menu{display:flex;position:sticky;top:0;left:0;width:100%;height:59px;align-items:center;gap:11px;background:#202629;color:white;z-index:45;padding:0 19px;border-bottom:1px solid #384133}.mobile-menu>span{margin-right:auto}.mobile-menu strong{font-size:15px}.sidebar-backdrop{position:fixed;inset:0;background:#15200e85;z-index:55;backdrop-filter:blur(2px)}.menu-open{overflow:hidden}.skip-link{left:15px}#app{margin:0;padding:24px 16px 0}.workspace-heading{margin-bottom:22px;min-height:auto;display:block}.workspace-heading h1{font-size:29px;letter-spacing:-.5px}.workspace-heading p{font-size:12px;margin-top:7px}.breadcrumb{font-size:10px;margin-bottom:10px}.phase-badge{position:absolute;right:0;top:0;font-size:8px;padding:3px 6px}.phase-badge i{display:none}.workflow{gap:5px;margin:0 0 4px;font-size:9px}.workflow li{gap:5px}.workflow li>span{width:23px;height:23px;font-size:9px}#app #tab-new{gap:16px}.mode-grid .mode{padding:12px 4px;min-height:44px}.mode-grid .mode .m-t{font-size:11px}#app .mode-grid{grid-template-columns:repeat(3,1fr)}.mode-grid .mode:nth-child(-n+3){border-bottom:1px solid var(--line)}.mode-grid .mode:nth-child(3):after{display:none}.upload-file-heading{padding:12px}.upload-file-heading strong{font-size:12px}.upload-file-heading small{font-size:9px}.file-icon{width:31px;height:34px}.upload-card .drop{min-height:220px;aspect-ratio:16/10}.upload-caption{padding:17px 14px;gap:7px}.upload-symbol{display:none}.upload-caption .d-t{font-size:16px}.upload-caption .d-s{font-size:10px}.upload-caption small{font-size:8px}.upload-caption .d-l{font-size:10px;padding:8px 10px}.photo-label,.photo-view{font-size:8px;top:10px}.photo-label{left:10px}.photo-view{right:10px}.calibration-row{padding:13px 12px;font-size:9px;gap:9px}.calibration-row>div{flex-basis:100%}.calibration-row strong{font-size:11px}.calibration-row button{font-size:9px;padding:6px 8px}.calibration-value{font-size:9px;gap:8px}.parameters{margin-top:22px}.parameters h2{font-size:15px}.parameter-grid{grid-template-columns:repeat(2,1fr);gap:15px}.field input,.field select{font-size:13px;height:42px}.gender-row .gbtn{height:42px}.field select{background-position:calc(100% - 16px) 19px,calc(100% - 11px) 19px}.adv summary{font-size:11px;gap:7px}.adv summary>span{font-size:9px;margin-left:4px}.adv{padding:11px 12px}.advanced-grid{gap:15px 12px}.analysis-options{display:block}.method-section,.analysis-includes{padding:18px 16px}.method-section h2,.analysis-includes h2{font-size:15px}.method-option{padding:17px 13px;gap:15px}.method-copy strong{font-size:15px}.method-copy small{font-size:11px}.method-copy i{font-size:9px}.analysis-includes{margin-top:14px}.analysis-includes li{font-size:12px;padding:9px 11px}.option-note{font-size:11px}.analysis-options .start-wrap{padding-top:15px}.start-wrap .start{height:53px;font-size:17px}.start-wrap p{font-size:11px}.shooting-note{margin-top:24px}.shooting-note strong{font-size:12px}.shooting-note p,.shooting-note button{font-size:11px}.workspace-footer{display:block;font-size:9px;line-height:1.9;margin-top:24px;padding-bottom:20px}.workspace-footer span{display:block}.demo-ready{padding:24px;min-height:240px}.demo-ready h2{font-size:25px;margin-top:25px}.demo-ready p{font-size:11px}.header-actions{gap:7px;margin-top:17px;justify-content:flex-start}.report-heading h1{font-size:24px}.header-actions>button,.export-menu summary{font-size:10px;padding:9px 10px}.header-actions .icon-button{padding:0 6px;font-size:23px;margin-left:auto}.report-heading p{font-size:10px}.report-tabs{margin-bottom:17px}.report-tabs button{font-size:10px;padding:12px 4px}#app .an-body{gap:17px}.an-body .report{display:flex}.an-body .rcard{padding:17px}.video-wrap #player{max-height:400px}.video-col .mgrid{grid-template-columns:repeat(2,1fr)!important}.local-heading{flex-wrap:nowrap}.local-heading h3{font-size:17px}.local-priorities p{font-size:12px}.local-priorities strong{font-size:14px}.local-priorities small{font-size:10px}.local-number{width:28px;height:28px}.local-note{font-size:11px}.local-actions button{font-size:11px}.local-chip{font-size:9px}.training-fold summary{font-size:13px}.training-fold .s-d{font-size:12px}.local-playback .cbtn.wide{font-size:9px;padding:0 8px}.local-playback .ctime{font-size:9px}.local-playback .ctrlbar{gap:4px}.local-playback .live-layers{font-size:9px;gap:8px}.local-evidence{font-size:11px}.player-heading h2{font-size:13px}.ctable{font-size:10px}.ctable th,.ctable td{padding:9px 4px}.archive-toolbar{font-size:11px;flex-wrap:wrap}.archive-toolbar #arch-date{font-size:10px}.archive-toolbar>button{padding:8px 10px;font-size:10px}.hcard{padding:15px}.hmetrics{gap:4px}.hm b{font-size:12px}.hm i{font-size:9px}.aux-grid{grid-template-columns:1fr}.aux-card{padding:21px}.aux-card p,.aux-card li{font-size:12px}.aux-callout{font-size:11px}.workspace-dialog{padding:22px;width:calc(100vw - 28px)}dialog h2{font-size:19px}.dialog-field-grid{gap:12px}#toast{bottom:20px}}
/* Match the design's reading scale and keep the actual video and overlay in one coordinate box. */
#video-wrap{align-self:start}
.upload-card .drop{width:100%;min-width:0}.video-wrap #player{max-height:none}.video-wrap.real-video{height:auto!important;width:min(100%,calc(62vh * var(--video-ar)))!important}.video-col{align-self:start}.workspace-nav button{font-size:16px}.workspace-heading h1{font-size:40px}.workspace-heading p{font-size:16px}.breadcrumb{font-size:12px}.method-copy strong{font-size:16px}.method-copy small{font-size:12px}.method-copy i{font-size:10px}.analysis-includes li{font-size:12px}.option-note{font-size:11px}.method-section h2,.analysis-includes h2{font-size:18px}.f-l{font-size:12px}.upload-file-heading strong{font-size:16px}.upload-file-heading small{font-size:12px}.mode-grid .mode .m-t{font-size:14px}.local-note{font-size:11px}.local-priorities strong{font-size:14px}.local-priorities p{font-size:12px}.local-priorities small{font-size:10px}.local-number{font-size:12px}.training-fold summary{font-size:13px}.rcard h3{font-size:16px}.local-heading h3{font-size:18px}.local-chip{font-size:10px}.local-priorities article{padding:14px 0}.report-heading h1{font-size:35px}.report-heading p{font-size:12px}.report-tabs button{font-size:13px}.header-actions>button,.export-menu summary{font-size:12px}.an-body .mtile i{font-size:11px}.mtile b{font-size:24px}.an-body .chart-note{font-size:11px}.chart-tabs button{font-size:11px}
@media(min-width:1250px){.upload-card .drop{aspect-ratio:16/7.25}.workflow{width:48%;font-size:11px}.workflow li>span{width:33px;height:33px}.workflow li+li:before{display:none}.video-col:has(#kf-strip:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr) 116px;gap:0 12px}.video-col>.player-heading{grid-column:1/-1;grid-row:1}.video-col>#video-wrap{grid-column:1;grid-row:2}.video-col>.local-playback{grid-column:1;grid-row:3}.video-col>#kf-strip{grid-column:2;grid-row:2 / span 2;margin-top:0;padding:10px;border:1px solid var(--line);background:white;align-self:stretch;min-width:0}.video-col .kf-list{display:flex;flex-direction:column;gap:12px;overflow:visible;padding:0}.video-col .kf{flex:none;width:100%;border-radius:4px;overflow:hidden;min-width:0}.video-col .kf img{height:82px;object-fit:contain;background:#f3f5ee}.video-col .kf .kf-l{font-size:8px;padding:5px;gap:3px;flex-wrap:wrap}.video-col>.card-metrics{grid-column:1/-1;grid-row:4}.video-col>.card-curves{grid-column:1/-1;grid-row:5}.report>.local-coach{padding:18px}.video-col .mgrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1249px){.workspace-nav button{font-size:14px}.workspace-heading h1{font-size:32px}.workspace-heading p{font-size:14px}.method-copy strong{font-size:14px}.method-copy small{font-size:11px}.method-copy i{font-size:9px}.method-section h2,.analysis-includes h2{font-size:16px}.mode-grid .mode .m-t{font-size:12px}.local-priorities p{font-size:11px}.report-heading h1{font-size:30px}}
@media(max-width:700px){.workspace-nav button{font-size:16px}.workspace-heading h1{font-size:29px}.workspace-heading p{font-size:12px}.breadcrumb{font-size:10px}.report-heading h1{font-size:25px}.mode-grid .mode .m-t{font-size:12px}.method-copy strong{font-size:15px}.method-copy small{font-size:11px}.upload-file-heading strong{font-size:13px}.upload-file-heading small{font-size:10px}.upload-card .drop{min-height:210px}.upload-caption>div{min-width:0}.upload-caption .d-t{font-size:15px}.upload-caption .d-l{flex:none;margin-left:auto;padding:9px 8px;font-size:10px}.photo-view{font-size:7px}.local-priorities p{font-size:12px}.report-tabs button{font-size:11px}.header-actions>button,.export-menu summary{font-size:10px}.local-chip{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Actual upload progress, followed by server validation. */
.upload-progress{padding:34px 28px;background:#f8faf3;border-block:1px solid #e5ebda;min-width:0}.upload-progress-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.upload-progress-heading>div{min-width:0}.upload-progress-kicker{display:block;font-size:10px;letter-spacing:1.6px;color:#889578;margin-bottom:12px}#upload-progress-label{display:block;font-size:18px;color:#324524;font-weight:650;line-height:1.6}#upload-progress-file{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7c896e;font-size:12px;margin-top:6px}#upload-progress-percent{font-size:38px;font-weight:600;letter-spacing:-1.5px;font-variant-numeric:tabular-nums;flex:none;color:#476229}.upload-progress-track{height:9px;background:#e7eddd;border-radius:12px;overflow:hidden;margin:26px 0 14px}.upload-progress-track>span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9fc849,var(--lime));transition:width .15s linear}.upload-progress-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px;color:#758366;line-height:1.8}.upload-progress-footer>span{min-width:0;overflow-wrap:anywhere}.upload-progress-footer button{flex:none;font-size:12px}.upload-progress[data-phase=error] .upload-progress-track>span{background:#bd785b}.upload-progress[data-phase=error] #upload-progress-percent,.upload-progress[data-phase=error] #upload-progress-label{color:#a15d42}.upload-progress[data-phase=complete]{padding:18px 24px}.upload-progress[data-phase=complete] .upload-progress-kicker,.upload-progress[data-phase=complete] #upload-progress-file{display:none}.upload-progress[data-phase=complete] #upload-progress-label{font-size:14px}.upload-progress[data-phase=complete] #upload-progress-percent{font-size:23px;letter-spacing:-.5px}.upload-progress[data-phase=complete] .upload-progress-track{margin:12px 0 8px;height:5px}.upload-file-heading>div{min-width:0}.upload-file-heading strong{overflow-wrap:anywhere}
@media(max-width:700px){.upload-progress{padding:28px 18px}.upload-progress-heading{gap:12px}#upload-progress-label{font-size:15px}#upload-progress-percent{font-size:31px}.upload-progress-footer{font-size:11px;align-items:flex-start}.upload-progress-footer button{font-size:11px}.upload-progress[data-phase=complete]{padding:16px 18px}}
@media(prefers-reduced-motion:reduce){.upload-progress-track>span{transition:none}}
