:root{--fofp-navy:#0a1a4f;--fofp-navy-2:#0e2a7a;--fofp-blue:#1f4fd8;--fofp-blue-soft:#e6edff;--fofp-red:#e0262e;--fofp-red-dark:#b3141c;--fofp-white:#fff;--fofp-flag:linear-gradient(90deg, #1f4fd8 0%, #1f4fd8 30%, #fff 50%, #e0262e 70%, #e0262e 100%);--fofp-cta:linear-gradient(120deg, #1f4fd8 0%, #6a2fb8 45%, #e0262e 100%);--fofp-head:"Russo One", "Unbounded", Manrope, sans-serif;--bg:#eef2fb;--surface:#fff;--soft:#f2f5fd;--line:#cfd9f0;--text:#0c1638;--muted:#5a6788;--teal:var(--fofp-red);--ok-bg:#e8f8ee;--ok-text:#166534;--ok-line:#a8e5ba;--warn-bg:#fff4d6;--danger:#991b1b;--danger-bg:#fee2e2;--danger-line:#fecaca;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:17px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100svh;margin:0}button,select,input{font:inherit}button{letter-spacing:0}#root{min-height:100svh}.logo-intro{z-index:9999;color:#fff;perspective:1200px;background:#07122e;place-items:center;font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;display:grid;position:fixed;inset:0;overflow:hidden}.logo-intro__bg{background:radial-gradient(60% 45% at 50% 42%,#285adc59,#0000 70%),radial-gradient(40% 30% at 15% 90%,#d52b1e2e,#0000 70%),radial-gradient(40% 30% at 85% 10%,#ffffff12,#0000 70%),#07122e;position:absolute;inset:-10%}.logo-intro__stage{flex-direction:column;align-items:center;gap:clamp(12px,3vmin,36px);display:flex;position:relative}.logo-intro__logo{aspect-ratio:640/538;width:min(78vw,61.88vh,640px);transform-style:preserve-3d;position:relative}.logo-intro__shard{will-change:transform, opacity;background-repeat:no-repeat;background-size:100% 100%;animation-name:li-shard-in;animation-timing-function:cubic-bezier(.16,.84,.3,1);animation-fill-mode:both;position:absolute;inset:0}.logo-intro--disassemble .logo-intro__shard{animation-name:li-shard-out;animation-timing-function:cubic-bezier(.6,0,.84,.3)}@keyframes li-shard-in{0%{transform:translate(var(--tx), var(--ty)) rotateX(var(--rx)) rotateY(var(--ry)) rotate(var(--rot)) scale(.6);opacity:0}25%{opacity:1}to{opacity:1;transform:none}}@keyframes li-shard-out{0%{opacity:1;transform:none}75%{opacity:1}to{transform:translate(var(--tx), var(--ty)) rotateX(var(--rx)) rotateY(var(--ry)) rotate(var(--rot)) scale(.6);opacity:0}}.logo-intro__whole{opacity:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.logo-intro--assemble .logo-intro__whole{animation:li-fade-in .12s linear calc(var(--li-d) * .6) both}.logo-intro--disassemble .logo-intro__whole{animation:li-fade-out 1ms linear calc(var(--li-d) * .22) both}.logo-intro__glow{pointer-events:none;opacity:0;mix-blend-mode:screen;filter:blur(2px);background:linear-gradient(105deg,#0000 35%,#ffffff80 50%,#0000 65%) 0 0/250% 100% no-repeat;position:absolute;inset:-8%}.logo-intro--assemble .logo-intro__glow{animation:li-sweep calc(var(--li-d) * .25) ease-out calc(var(--li-d) * .6) both}.logo-intro--assemble .logo-intro__logo{animation:li-pulse calc(var(--li-d) * .3) ease-out calc(var(--li-d) * .6) both}@keyframes li-sweep{0%{opacity:0;background-position:120% 0}20%{opacity:1}to{opacity:0;background-position:-60% 0}}@keyframes li-pulse{0%{filter:none}35%{filter:drop-shadow(0 0 26px #1f4fd873)drop-shadow(0 10px 24px #0a1a4f33)}to{filter:drop-shadow(0 10px 24px #0a1a4f2e)}}.logo-intro--disassemble .logo-intro__bg{animation:li-fade-out calc(var(--li-d) * .25) ease-in calc(var(--li-d) * .75) both}.logo-intro__text{text-align:center;opacity:0}.logo-intro--assemble .logo-intro__text{animation:li-text-in calc(var(--li-d) * .2) cubic-bezier(.2, .8, .2, 1) calc(var(--li-d) * .7) both}.logo-intro--disassemble .logo-intro__text{animation:li-text-out calc(var(--li-d) * .2) ease-in both}.logo-intro__title{letter-spacing:.08em;text-shadow:0 0 24px #5a8cffb3;font-size:clamp(36px,9vmin,96px);font-weight:900;line-height:1}.logo-intro__bar{width:clamp(120px,30vmin,300px);height:4px;margin:clamp(8px,1.6vmin,16px) auto;display:flex}.logo-intro__bar i{flex:1}.logo-intro__bar i:first-child{background:#fff}.logo-intro__bar i:nth-child(2){background:#1d4fd8}.logo-intro__bar i:nth-child(3){background:#d52b1e}.logo-intro__sub{letter-spacing:.12em;text-transform:uppercase;color:#c9d6ff;padding:0 16px;font-size:clamp(13px,2.6vmin,26px)}@keyframes li-text-in{0%{opacity:0;filter:blur(6px);transform:translateY(24px)}to{opacity:1;filter:none;transform:none}}@keyframes li-text-out{0%{opacity:1;transform:none}to{opacity:0;filter:blur(6px);transform:translateY(-16px)}}@keyframes li-fade-in{0%{opacity:0}to{opacity:1}}@keyframes li-fade-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.logo-intro__shard{display:none}.logo-intro .logo-intro__glow,.logo-intro--assemble .logo-intro__logo{animation:none!important}.logo-intro--assemble .logo-intro__text,.logo-intro--assemble .logo-intro__whole{animation:.5s ease-out both li-fade-in!important}.logo-intro--disassemble .logo-intro__whole,.logo-intro--disassemble .logo-intro__text,.logo-intro--disassemble .logo-intro__bg{animation:.6s ease-in both li-fade-out!important}}.logo-intro{color:var(--fofp-navy,#0a1a4f);background:#f4f7fe}.logo-intro__bg{background:radial-gradient(55% 45% at 50% 40%,#fff 0 45%,#0000 75%),linear-gradient(120deg,#0000 0 80%,#e0262e1a 80% 85%,#0000 85%),linear-gradient(300deg,#0000 0 82%,#1f4fd81a 82% 88%,#0000 88%),linear-gradient(#f6f8fe,#e4ebf8)}.logo-intro__glow{mix-blend-mode:normal;background-image:linear-gradient(105deg,#0000 40%,#fffc 50%,#0000 60%)}.logo-intro--disassemble .logo-intro__logo{filter:drop-shadow(0 10px 24px #0a1a4f2e)}.logo-intro__title{font-family:var(--fofp-head,sans-serif);color:var(--fofp-navy,#0a1a4f);text-shadow:none;font-weight:400}.logo-intro__bar{height:6px;box-shadow:0 0 0 1px #0a1a4f1f}.logo-intro__sub{color:#3a4a7a;font-weight:700}.monitor{z-index:50;color:#fff;background:radial-gradient(120% 80% at 50% 0%, #143a9c 0%, transparent 60%), linear-gradient(160deg, var(--fofp-navy,#0a1a4f) 0%, #050b24 100%);flex-direction:column;font-family:Manrope,system-ui,sans-serif;display:flex;position:fixed;inset:0;overflow:hidden}.monitor:after{content:"";background:var(--fofp-flag);height:8px;position:absolute;bottom:0;left:0;right:0}.monitor-top{z-index:3;align-items:center;gap:18px;padding:14px 28px;display:flex;position:relative}.monitor-logo{filter:drop-shadow(0 4px 14px #0006);width:auto;height:64px}.monitor-brand{flex-direction:column;display:flex}.monitor-brand strong{font-family:var(--fofp-head);letter-spacing:.02em;font-size:34px;line-height:1}.monitor-brand span{opacity:.75;margin-top:4px;font-size:15px}.monitor-athlete{font-family:var(--fofp-head);border-left:4px solid var(--fofp-red);background:#ffffff0f;margin-left:auto;padding:8px 18px;font-size:24px}.monitor-exit{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:10px;place-items:center;width:48px;height:48px;display:grid}.monitor-select{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;padding:0 28px 40px;display:flex}.monitor-select h2{font-family:var(--fofp-head);margin:0;font-size:clamp(28px,3vw,48px)}.monitor-cards{grid-template-columns:repeat(4,minmax(0,220px));gap:20px;display:grid}.monitor-cards button{color:#fff;cursor:pointer;font-family:var(--fofp-head);background:#ffffff0d;border:2px solid #ffffff26;border-radius:14px;flex-direction:column;gap:10px;padding:10px;font-size:20px;transition:transform .2s,border-color .2s;display:flex}.monitor-cards button.active{border-color:var(--fofp-red);transform:translateY(-6px);box-shadow:0 14px 40px #e0262e59}.monitor-cards video{aspect-ratio:9/16;object-fit:cover;background:#000;border-radius:8px;width:100%}.monitor-go,.monitor-result-actions button:first-child,.monitor-stop{background:var(--fofp-cta);color:#fff;font-family:var(--fofp-head);text-transform:uppercase;cursor:pointer;border:0;border-radius:12px;padding:18px 44px;font-size:26px;box-shadow:0 10px 30px #1f4fd866}.monitor-go:disabled,.monitor-result-actions button:disabled{opacity:.55;cursor:default}.monitor-split{flex:1;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr) minmax(220px,.5fr);gap:20px;min-height:0;padding:0 28px 32px;display:grid}.monitor-coach{justify-content:center;min-height:0;display:flex;position:relative}.monitor-coach video{aspect-ratio:9/16;object-fit:cover;background:#050b24;border:3px solid #ffffff2e;border-radius:16px;max-width:100%;height:100%}.monitor-label{border-left:4px solid var(--fofp-red);white-space:nowrap;background:#050b24cc;padding:8px 14px;font-size:17px;font-weight:700;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.monitor-camera-slot{background:#00000059;border:3px solid #ffffff2e;border-radius:16px;min-height:0;position:relative}.monitor-wait{opacity:.8;z-index:2;place-items:center;font-size:26px;display:grid;position:absolute;inset:0}.monitor-stats{flex-direction:column;gap:16px;display:flex}.monitor-stat{border-top:4px solid var(--fofp-blue);background:#ffffff0f;border-radius:14px;padding:16px 20px}.monitor-stat.big{border-top-color:var(--fofp-red)}.monitor-stat span{opacity:.7;text-transform:uppercase;letter-spacing:.08em;font-size:16px;display:block}.monitor-stat strong{font-family:var(--fofp-head);font-size:clamp(44px,5vw,96px);line-height:1.05}.monitor-stop{margin-top:auto;padding:14px;font-size:20px}.app-shell.monitor-on .video-wrap{z-index:55;top:var(--slot-top,100px);left:var(--slot-left,35%);width:var(--slot-width,45%);height:var(--slot-height,70%);border-radius:16px;overflow:hidden;position:fixed!important}.app-shell.monitor-on .video-wrap video,.app-shell.monitor-on .video-wrap canvas{object-fit:cover;width:100%;height:100%}.app-shell.monitor-on .video-wrap .stage-debug{display:none}:root:not([data-monitor-cam="1"]) .app-shell.monitor-on .video-wrap{visibility:hidden}.monitor-countdown{z-index:60;pointer-events:none;background:radial-gradient(circle,#050b248c 0%,#050b24e0 70%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.monitor-countdown span{font-family:var(--fofp-head);text-transform:uppercase;letter-spacing:.1em;font-size:clamp(28px,3vw,54px)}.monitor-countdown strong{font-family:var(--fofp-head);background:linear-gradient(180deg, #fff 0%, #fff 45%, var(--fofp-blue) 60%, var(--fofp-red) 100%);color:#0000;filter:drop-shadow(0 10px 40px #1f4fd899);-webkit-background-clip:text;background-clip:text;font-size:clamp(200px,32vh,420px);line-height:1;animation:1s ease-out both monitor-pop}@keyframes monitor-pop{0%{opacity:0;transform:scale(1.8)}25%{opacity:1;transform:scale(1)}85%{opacity:1}to{opacity:0;transform:scale(.85)}}.monitor-result{z-index:60;text-align:center;background:#050b24eb;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;animation:.5s ease-out both monitor-fade;display:flex;position:absolute;inset:0}.monitor-result-kicker{font-family:var(--fofp-head);text-transform:uppercase;letter-spacing:.06em;font-size:clamp(30px,3.5vw,60px)}.monitor-result-score{font-family:var(--fofp-head);background:var(--fofp-cta);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(140px,22vh,280px);line-height:1}.monitor-result-meta{opacity:.85;font-size:24px}.monitor-result ul{flex-wrap:wrap;justify-content:center;gap:10px;max-width:900px;margin:6px 0;padding:0;list-style:none;display:flex}.monitor-result li{background:#ffffff14;border-left:4px solid #f5b400;border-radius:8px;padding:8px 14px;font-size:19px}.monitor-result li.bad{border-left-color:var(--fofp-red)}.monitor-result .ok{color:#7fe3a0;font-size:22px}.monitor-result-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:10px;display:flex}.monitor-result-actions button{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:12px;padding:16px 26px;font-size:20px;font-weight:700}@keyframes monitor-fade{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@media (width<=900px) and (orientation:landscape){.monitor-split{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr 1fr}.monitor-stats{flex-direction:row;grid-column:1/-1}.monitor-stat{flex:1}.monitor-cards{grid-template-columns:repeat(2,minmax(0,200px))}.monitor-brand span,.monitor-athlete{display:none}}@media (prefers-reduced-motion:reduce){.monitor-countdown strong,.monitor-result{animation:none}}.monitor-saved{text-align:center;opacity:.8;width:100%;font-size:18px}.monitor-saved.yes{color:#7fe3a0;opacity:1}.monitor-brand span{font-size:clamp(16px,1.2vw,24px)}.monitor-label{font-size:clamp(18px,1.5vw,30px)}.monitor-stat span{font-size:clamp(18px,1.4vw,28px)}.monitor-stat strong.small{font-size:clamp(26px,2.2vw,44px)}.monitor-result li{border-left-color:var(--fofp-red);font-size:clamp(22px,1.8vw,34px)}.monitor-result-meta{font-size:clamp(22px,1.8vw,36px)}.monitor-saved{font-size:clamp(20px,1.5vw,30px)}.monitor-saved.saved{color:#7fe3a0;opacity:1}.monitor-saved.failed,.monitor-saved.no-person,.monitor-saved.no-athlete{color:#ffb4b4;opacity:1}.monitor-result-actions button{font-size:clamp(20px,1.5vw,30px)}.monitor-result-actions button:first-of-type{background:var(--fofp-cta);border:0}.monitor-error-text{opacity:.9;max-width:900px;font-size:clamp(20px,1.6vw,32px)}.monitor-lost{z-index:70;background:var(--fofp-red);color:#fff;font-family:var(--fofp-head);white-space:nowrap;border-radius:10px;padding:12px 24px;font-size:clamp(22px,2vw,40px);position:absolute;top:24px;left:50%;transform:translate(-50%)}.monitor-countdown{z-index:80}@media (orientation:portrait){.monitor-split{grid-template-rows:minmax(0,1.15fr) minmax(0,1fr) auto;grid-template-columns:1fr}.monitor-stats{flex-direction:row;grid-column:auto}.monitor-stat strong,.monitor-stat.big strong{font-size:clamp(48px,7vh,120px)}.monitor-stop{align-self:stretch;margin-top:0}.monitor-cards{grid-template-columns:repeat(2,minmax(0,300px))}.monitor-countdown strong{font-size:clamp(220px,22vh,520px)}}.monitor{color:var(--fofp-navy);background:linear-gradient(120deg,#0000 0 82%,#e0262e1a 82% 86%,#0000 86%),linear-gradient(300deg,#0000 0 84%,#1f4fd81a 84% 90%,#0000 90%),linear-gradient(#f6f8fe 0%,#e4ebf8 100%)}.monitor-top{box-shadow:0 2px 0 var(--line), 0 6px 20px #0a1a4f0f;background:#fff}.monitor-logo{height:76px;box-shadow:0 0 0 1px var(--line), 0 6px 16px #0a1a4f24;filter:none;background:#fff;border-radius:12px;padding:4px 8px}.monitor-brand strong{color:var(--fofp-navy)}.monitor-brand span{color:var(--muted);opacity:1;font-weight:700}.monitor-athlete{background:var(--fofp-blue-soft);color:var(--fofp-navy);font-weight:800}.monitor-exit{border:2px solid var(--line);color:var(--fofp-navy);background:#fff;font-weight:800}.monitor-select h2{color:var(--fofp-navy)}.monitor-cards button{border:2px solid var(--line);color:var(--fofp-navy);background:#fff;font-weight:800;box-shadow:0 8px 24px #0a1a4f14}.monitor-cards button.active{border-color:var(--fofp-red);box-shadow:0 14px 40px #e0262e40}.monitor-cards video{background:#dfe6f5}.monitor-coach video{background:#dfe6f5;border:3px solid #fff;box-shadow:0 10px 30px #0a1a4f26}.monitor-label{color:var(--fofp-navy);background:#fffffff0;font-weight:800}.monitor-camera-slot{background:#dfe6f5;border:3px solid #fff;box-shadow:0 10px 30px #0a1a4f26}.monitor-wait{color:var(--fofp-navy);opacity:1;font-weight:700}.monitor-stat{background:#fff;box-shadow:0 8px 24px #0a1a4f14}.monitor-stat span{color:var(--muted);opacity:1;font-weight:800}.monitor-stat strong{color:var(--fofp-navy)}.monitor-stat.big strong{color:var(--fofp-red)}.monitor-countdown{background:radial-gradient(circle,#f6f8febf 0%,#e4ebf8f0 70%)}.monitor-countdown span{color:var(--fofp-navy)}.monitor-countdown strong{background:linear-gradient(180deg, var(--fofp-navy) 0%, var(--fofp-navy-2) 50%, var(--fofp-red) 100%);color:#0000;filter:drop-shadow(0 10px 30px #0a1a4f40);-webkit-background-clip:text;background-clip:text}.monitor-result{color:var(--fofp-navy);background:#f4f7fef7}.monitor-result-meta,.monitor-error-text{color:#2a3866;opacity:1}.monitor-result li{color:var(--fofp-navy);background:#fff;box-shadow:0 4px 14px #0a1a4f14}.monitor-result .ok,.monitor-saved.saved,.monitor-saved.yes{color:#13803f}.monitor-saved{color:var(--muted);opacity:1}.monitor-saved.failed,.monitor-saved.no-person,.monitor-saved.no-athlete{color:var(--fofp-red-dark)}.monitor-result-actions button{border:2px solid var(--line);color:var(--fofp-navy);background:#fff}.monitor-result-actions button:first-of-type{color:#fff}.monitor>.monitor-top{box-sizing:border-box;border-radius:0;align-self:stretch;width:auto;max-width:none;margin:0;padding:14px 32px}.monitor-who{font-family:var(--fofp-head);color:var(--fofp-navy);align-items:center;gap:16px;font-size:clamp(22px,1.8vw,34px);display:flex}.monitor-who select{border:2px solid var(--line,#cfd9f0);color:var(--fofp-navy);background:#fff;border-radius:12px;min-width:360px;padding:12px 18px;font:700 clamp(20px,1.6vw,30px) Manrope,sans-serif}.monitor-frame-guide{z-index:70;pointer-events:none;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;padding-bottom:6%;display:flex;position:absolute;inset:0}.monitor-frame-box{border:4px dashed #ffffffe6;border-radius:18px;animation:1.6s ease-in-out infinite monitor-breathe;position:absolute;inset:6% 30% 22%;box-shadow:0 0 0 9999px #0a1a4f59}.monitor-frame-guide strong{font-family:var(--fofp-head);color:#fff;text-shadow:0 2px 12px #00000080;font-size:clamp(26px,2.4vw,46px);position:relative}.monitor-frame-guide span{color:#fff;opacity:.9;font-size:clamp(18px,1.4vw,26px);position:relative}@keyframes monitor-breathe{50%{border-color:#fff;transform:scale(1.02)}}.monitor-stat.timer{border-top-color:var(--fofp-red);position:relative;overflow:hidden}.monitor-stat.timer strong{font-variant-numeric:tabular-nums;color:var(--fofp-navy)}.monitor-stat.timer i{background:var(--fofp-cta);height:8px;transition:width .25s linear;position:absolute;bottom:0;left:0}.monitor-stat.timer.ending strong{color:var(--fofp-red);animation:1s steps(2,end) infinite monitor-blink}@keyframes monitor-blink{50%{opacity:.45}}.monitor-go-banner{z-index:85;pointer-events:none;text-align:center;background:#fffffff0;border-radius:24px;flex-direction:column;align-items:center;gap:10px;padding:32px 56px;animation:3.5s ease-out both monitor-go;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 30px 80px #0a1a4f40}.monitor-go-banner strong{font-family:var(--fofp-head);background:var(--fofp-cta);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(64px,7vw,140px);line-height:1}.monitor-go-banner span{color:var(--fofp-navy);font:800 clamp(24px,2.2vw,44px) Manrope,sans-serif}@keyframes monitor-go{0%{opacity:0;transform:translate(-50%,-50%)scale(.85)}10%{opacity:1;transform:translate(-50%,-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.04)}}.monitor-report{text-align:left;justify-content:flex-start;align-items:stretch;gap:22px;padding:32px clamp(24px,6vw,120px);overflow-y:auto}.report-head{justify-content:space-between;align-items:center;gap:24px;display:flex}.report-head h3{font-family:var(--fofp-head);color:var(--fofp-navy);margin:6px 0 4px;font-size:clamp(28px,2.6vw,48px)}.report-date{color:#5a6788;font-size:clamp(16px,1.2vw,22px)}.report-score{text-align:center;border-top:6px solid var(--fofp-blue);background:#fff;border-radius:20px;padding:18px 34px;box-shadow:0 14px 40px #0a1a4f1f}.report-score strong{font-family:var(--fofp-head);color:var(--fofp-navy);font-size:clamp(72px,8vw,150px);line-height:1;display:block}.report-score span{color:#5a6788;font-weight:700}.report-score.good{border-top-color:#13803f}.report-score.mid{border-top-color:#f5a400}.report-score.low{border-top-color:var(--fofp-red)}.report-stats{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.report-stats div{background:#fff;border-radius:16px;padding:16px 20px;box-shadow:0 8px 24px #0a1a4f14}.report-stats strong{font-family:var(--fofp-head);color:var(--fofp-navy);font-size:clamp(34px,3vw,58px);display:block}.report-stats span{color:#5a6788;font-size:clamp(15px,1.1vw,20px);font-weight:700}.report-block{background:#fff;border-radius:18px;padding:18px 22px;box-shadow:0 8px 24px #0a1a4f14}.report-block h4{font-family:var(--fofp-head);color:var(--fofp-navy);margin:0 0 12px;font-size:clamp(20px,1.6vw,30px)}.report-bars{align-items:flex-end;gap:8px;height:150px;display:flex}.report-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;max-width:46px;height:100%;display:flex}.report-bar i{background:#13803f;border-radius:8px 8px 3px 3px;width:100%}.report-bar.mid i{background:#f5a400}.report-bar.low i{background:var(--fofp-red)}.report-bar span{color:#5a6788;font-size:13px;font-weight:700}.report-issues{gap:10px;margin:0;padding:0;list-style:none;display:grid}.monitor-result .report-issues li{border-left:5px solid var(--fofp-red);font-size:inherit;background:#fff4f4;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.report-issues strong{color:var(--fofp-navy);font-size:clamp(19px,1.5vw,28px);display:block}.report-issues span{color:#5a6788;font-size:clamp(15px,1.1vw,20px)}.report-issues em{color:var(--fofp-red);white-space:nowrap;font-size:clamp(16px,1.2vw,22px);font-style:normal;font-weight:800}@media (orientation:portrait){.report-stats{grid-template-columns:repeat(2,1fr)}.report-head{flex-direction:column;align-items:flex-start}}@media print{body:has(.monitor-report) *{visibility:hidden}:is(body:has(.monitor-report) .monitor-report,body:has(.monitor-report) .monitor-report *){visibility:visible}.monitor-report{position:absolute;inset:0;overflow:visible;background:#fff!important}.monitor-result-actions,.monitor-saved{display:none!important}}.monitor-who .picker{min-width:380px;font-size:clamp(18px,1.4vw,26px)}.monitor-final-count{z-index:84;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.monitor-final-count strong{font-family:var(--fofp-head);color:var(--fofp-red);text-shadow:0 12px 50px #e0262e59;opacity:.9;font-size:clamp(220px,30vh,460px);line-height:1;animation:1s ease-out both monitor-pop}.monitor-done{z-index:90;background:radial-gradient(circle at 50% 45%,#fffffffa,#e9eef9f7);flex-direction:column;justify-content:center;align-items:center;gap:18px;animation:.4s ease-out both monitor-fade;display:flex;position:absolute;inset:0}.monitor-done-ring{aspect-ratio:1;width:clamp(160px,18vw,260px);animation:.7s cubic-bezier(.2,1.4,.4,1) both done-pop}.monitor-done-ring svg{width:100%;height:100%}.monitor-done-ring circle{fill:none;stroke:var(--fofp-blue);stroke-width:8px;stroke-dasharray:327;stroke-dashoffset:327px;animation:.8s ease-out .15s forwards done-draw}.monitor-done-ring path{fill:none;stroke:var(--fofp-red);stroke-width:10px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:80px;animation:.45s ease-out .75s forwards done-draw}.monitor-done strong{font-family:var(--fofp-head);color:var(--fofp-navy);text-align:center;font-size:clamp(44px,5vw,96px);animation:.5s ease-out .5s both done-up}.monitor-done span{color:#5a6788;font:700 clamp(20px,1.6vw,32px) Manrope,sans-serif;animation:.5s ease-out .8s both done-up}@keyframes done-draw{to{stroke-dashoffset:0}}@keyframes done-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes done-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.monitor-done *,.monitor-final-count strong{stroke-dashoffset:0!important;animation:none!important}}.monitor-cam-overlay{z-index:60;pointer-events:none;top:var(--slot-top,100px);left:var(--slot-left,35%);width:var(--slot-width,45%);height:var(--slot-height,70%);border-radius:16px;position:fixed;overflow:hidden}.monitor-cam-overlay .monitor-frame-guide strong{font-size:clamp(30px,3vw,56px)}.monitor-cam-overlay .monitor-frame-guide span{font-size:clamp(20px,1.7vw,32px);font-weight:700}.monitor{width:100vw;height:100dvh;z-index:1000!important;position:fixed!important;inset:0!important}.app-shell.monitor-on{height:100vh;overflow:hidden}.monitor-countdown{gap:8px;z-index:1100!important;background:radial-gradient(circle at 50% 45%,#fff 0%,#eef2fb 60%,#e2e9f7 100%)!important;position:fixed!important;inset:0!important}.monitor-countdown:after{content:"";background:var(--fofp-flag);height:8px;position:absolute;bottom:0;left:0;right:0}.monitor-done{z-index:1100!important;background:radial-gradient(circle at 50% 45%,#fff 0%,#eef2fb 60%,#e2e9f7 100%)!important;position:fixed!important;inset:0!important}.monitor-top-layer{z-index:3000;pointer-events:none;font-family:Manrope,system-ui,sans-serif;position:fixed;inset:0}.monitor-top-layer>*{pointer-events:none}.monitor-top-layer .monitor-countdown,.monitor-top-layer .monitor-done{position:fixed!important;inset:0!important}.monitor-top-layer .monitor-go-banner{position:fixed}.monitor-top-layer .monitor-final-count{position:fixed;inset:0}.app-shell.monitor-on .video-wrap{z-index:1050!important}.monitor-label{text-align:center;box-sizing:border-box;max-width:none;white-space:normal!important;bottom:12px!important;left:12px!important;right:12px!important;transform:none!important}.monitor-coach{border-radius:16px;overflow:hidden}.monitor-go-banner{max-width:min(760px,86vw);padding:26px 40px!important}.monitor-go-banner span{text-align:center}.monitor-lost{text-align:center;max-width:calc(100% - 32px);white-space:normal!important}.monitor-countdown:after{display:none!important}.monitor-countdown strong{-webkit-text-fill-color:currentColor;opacity:1;color:var(--fofp-navy)!important;filter:none!important;background:0 0!important;animation:1s ease-out both count-pop!important}@keyframes count-pop{0%{opacity:0;transform:scale(1.5)}18%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(.96)}}.monitor-final-count strong{opacity:1;animation:1s ease-out both count-pop!important}.monitor-split{min-height:0;overflow:hidden;padding-bottom:20px!important}.monitor-coach,.monitor-camera-slot,.monitor-stats{min-height:0;max-height:100%}.monitor-coach video{max-height:100%;height:100%!important}.monitor-stats{overflow:hidden;gap:10px!important}.monitor-stat{padding:10px 16px!important}.monitor-stat strong.small{overflow-wrap:anywhere;line-height:1.15;font-size:clamp(18px,2.4vh,32px)!important}.monitor-stat strong{font-size:clamp(34px,7vh,96px)!important}.monitor-stat.big strong{font-size:clamp(44px,10vh,140px)!important}.monitor-stop{padding:10px!important;font-size:clamp(16px,2vh,22px)!important}@media (width<=900px){.monitor-top{gap:10px!important;padding:8px 12px!important}.monitor-logo{height:40px!important}.monitor-brand strong{font-size:22px!important}.monitor-athlete{text-overflow:ellipsis;white-space:nowrap;max-width:46vw;overflow:hidden;font-size:16px!important}.monitor-split{grid-template-rows:minmax(0,1fr) auto!important;grid-template-columns:1fr 1fr!important;gap:10px!important;padding:0 10px 14px!important}.monitor-stats{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));display:grid!important}.monitor-stat span{letter-spacing:.04em;font-size:11px!important}.monitor-stat strong,.monitor-stat.big strong{font-size:clamp(22px,6vw,40px)!important}.monitor-stop{grid-column:1/-1}.monitor-go-banner strong{font-size:44px!important}.monitor-go-banner span{font-size:18px!important}}.monitor-prep{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#f0f4fc8c;justify-content:center;align-items:center;display:flex}.monitor-prep-card{text-align:center;color:var(--fofp-navy);background:#fffffff0;border-radius:22px;flex-direction:column;align-items:center;gap:6px;max-width:90%;padding:clamp(18px,3vh,36px) clamp(24px,3vw,56px);display:flex;box-shadow:0 18px 50px #0a1a4f38}.monitor-prep-kicker{color:var(--fofp-red,#e3262f);text-transform:uppercase;letter-spacing:.06em;font:800 clamp(16px,1.5vw,26px) Manrope,sans-serif}.monitor-prep-card b{font:900 clamp(28px, 3.2vw, 60px)/1.05 var(--fofp-head);text-transform:uppercase}.monitor-prep-start{color:#5a6788;margin-top:8px;font:700 clamp(16px,1.4vw,24px) Manrope,sans-serif}.monitor-prep-card strong{font:900 clamp(90px, 16vh, 220px)/1 var(--fofp-head);color:var(--fofp-navy);animation:1s ease-out both count-pop}@media (prefers-reduced-motion:reduce){.monitor-prep-card strong{animation:none}}.sr-root{--sr-navy:var(--fofp-navy,#0a1a4f);--sr-blue:var(--fofp-blue,#1f4fd8);--sr-red:var(--fofp-red,#e0262e);--sr-good:#16a34a;--sr-warn:#d97706;--sr-bad:#dc2626;--sr-na:#94a3b8;--sr-line:var(--line,#cfd9f0);--sr-muted:var(--muted,#5a6788);--sr-soft:var(--soft,#f2f5fd);color:var(--sr-navy);gap:20px;font-size:16px;line-height:1.45;display:grid;container-type:inline-size}.sr-good{--tone:var(--sr-good)}.sr-warn{--tone:var(--sr-warn)}.sr-bad{--tone:var(--sr-bad)}.sr-na{--tone:var(--sr-na)}.sr-hero{border:1px solid var(--sr-line);background:linear-gradient(120deg,#f5f8ff,#fff 60%);border-radius:18px;align-items:center;gap:28px;padding:20px 24px;display:flex;position:relative}.sr-ring{flex:none;justify-items:center;gap:6px;width:128px;display:grid;position:relative}.sr-ring svg{width:128px;height:128px}.sr-ring-track{fill:none;stroke:#e6ebf7;stroke-width:12px}.sr-ring-value{fill:none;stroke:var(--tone);stroke-width:12px;stroke-linecap:round;transition:stroke-dasharray .6s}.sr-ring-center{text-align:center;place-content:center;width:128px;height:128px;display:grid;position:absolute;top:0;left:0}.sr-ring-center strong{font-family:var(--fofp-head,"Russo One", sans-serif);color:var(--sr-navy);font-size:40px;font-weight:400;line-height:1}.sr-ring-center span{color:var(--sr-muted);font-size:12px}.sr-ring-word{color:var(--tone);text-align:center;font-size:15px;font-weight:800}.sr-hero-main{flex:1;gap:8px;min-width:0;display:grid}.sr-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--sr-blue);font-size:12px;font-weight:800}.sr-title{font-family:var(--fofp-head,"Russo One", sans-serif);margin:0;font-size:clamp(22px,2.2cqi,30px);font-weight:400;line-height:1.15}.sr-chips{flex-wrap:wrap;gap:8px;display:flex}.sr-chip{background:var(--sr-soft);border:1px solid var(--sr-line);color:var(--sr-navy);white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:14px;font-weight:600}.sr-chip-strong{background:var(--sr-navy);border-color:var(--sr-navy);color:#fff}.sr-tools{gap:6px;display:flex;position:absolute;top:14px;right:14px}.sr-icon-btn{border:1px solid var(--sr-line);width:44px;height:44px;color:var(--sr-navy);cursor:pointer;background:#fff;border-radius:12px;place-items:center;transition:background .15s,border-color .15s,color .15s;display:grid}.sr-icon-btn:hover{border-color:var(--sr-blue);color:var(--sr-blue);background:#eef3ff}.sr-icon-btn:focus-visible{outline:3px solid var(--sr-blue);outline-offset:2px}.sr-kpis{gap:14px;display:grid}.sr-kpi{border:1px solid var(--sr-line);border-top:4px solid var(--tone);background:#fff;border-radius:16px;align-content:start;gap:6px;padding:16px 18px;display:grid}.sr-kpi-title{text-transform:uppercase;letter-spacing:.05em;color:var(--sr-muted);font-size:13px;font-weight:800}.sr-kpi-value{font-family:var(--fofp-head,"Russo One", sans-serif);font-size:clamp(30px,3.4cqi,44px);font-weight:400;line-height:1.05}.sr-kpi-value small{color:var(--sr-muted);margin-left:6px;font-family:inherit;font-size:.42em}.sr-kpi-bar{background:#e6ebf7;border-radius:99px;height:6px;overflow:hidden}.sr-kpi-bar span{border-radius:inherit;background:var(--tone,var(--sr-blue));height:100%;display:block}.sr-kpi-norm{color:var(--sr-muted);align-items:center;gap:6px;font-size:13px;display:flex}.sr-dot{background:var(--tone);border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.sr-block{border:1px solid var(--sr-line);background:#fff;border-radius:16px;align-content:start;gap:12px;padding:18px 20px;display:grid}.sr-block h4{color:var(--sr-navy);margin:0;font-size:16px;font-weight:800}.sr-block-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.sr-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.sr-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:0;padding:0;list-style:none;display:grid}.sr-list li{border-bottom:1px solid #eef2fb;align-items:center;gap:10px;padding:9px 0;display:flex}.sr-list-name{min-width:0;color:var(--sr-navy);flex:1}.sr-list-val{white-space:nowrap;font-weight:800}.sr-chart{width:100%;height:auto;max-height:240px;display:block}.sr-grid{stroke:#e6ebf7;stroke-width:1px}.sr-normline{stroke:var(--sr-good);stroke-width:1.5px;stroke-dasharray:6 5}.sr-axis{fill:var(--sr-muted);font-size:12px}.sr-axis-norm{fill:var(--sr-good);font-weight:700}.sr-barc-good{fill:var(--sr-good)}.sr-barc-warn{fill:var(--sr-warn)}.sr-barc-bad{fill:var(--sr-bad)}.sr-barc-miss{fill:#cbd5e1}.sr-legend{color:var(--sr-muted);flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.sr-legend span{align-items:center;gap:6px;display:inline-flex}.sr-lg{border-radius:3px;width:12px;height:12px;display:inline-block}.sr-lg-good{background:var(--sr-good)}.sr-lg-warn{background:var(--sr-warn)}.sr-lg-bad{background:var(--sr-bad)}.sr-lg-miss{background:#cbd5e1}.sr-errors{gap:14px;margin:0;padding:0;list-style:none;display:grid}.sr-err-top{justify-content:space-between;gap:12px;font-weight:700;display:flex}.sr-err-top b{color:var(--sr-bad)}.sr-err-bar{background:#fde8e8;border-radius:99px;height:8px;margin:6px 0 4px;overflow:hidden}.sr-err-bar span{border-radius:inherit;background:linear-gradient(90deg, #f59e0b, var(--sr-bad));height:100%;display:block}.sr-err-meta{color:var(--sr-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.sr-err-meta em{align-items:center;gap:3px;font-style:normal;font-weight:700;display:inline-flex}.sr-trend-bad{color:var(--sr-bad)}.sr-trend-good{color:var(--sr-good)}.sr-ok{color:var(--sr-good);align-items:center;gap:8px;margin:0;font-weight:700;display:flex}.sr-concl{gap:12px;margin:0;padding:0;list-style:none;display:grid}.sr-concl li{align-items:flex-start;gap:10px;display:flex}.sr-concl svg{color:var(--sr-blue);flex:none;margin-top:1px}.sr-concl li:not(:first-child) svg{color:var(--sr-warn)}.sr-empty{border:1px solid var(--sr-line);background:linear-gradient(140deg,#f5f8ff,#eef3ff);border-radius:18px;align-items:flex-start;gap:20px;padding:22px 24px;display:flex}.sr-empty-icon{width:64px;height:64px;color:var(--sr-blue);background:#fff;border-radius:50%;flex:none;place-items:center;display:grid;box-shadow:0 6px 18px #0a1a4f1a}.sr-empty-text{flex:1;gap:10px;min-width:0;display:grid}.sr-empty-text strong{font-size:20px}.sr-empty-text p{color:var(--sr-muted);margin:0}.sr-empty-vis{--tone:var(--sr-warn);grid-template-columns:auto minmax(120px,320px) auto;align-items:center;gap:12px;font-size:14px;font-weight:700;display:grid}.sr-tip{align-items:flex-start;gap:8px;font-weight:600;display:flex;color:var(--sr-navy)!important}.sr-tip svg{color:var(--sr-blue);flex:none;margin-top:2px}.sr-foot{color:var(--sr-muted);font-size:12px}@container (width<=760px){.sr-hero{flex-direction:column;align-items:flex-start;padding-right:110px}.sr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.sr-two,.sr-list{grid-template-columns:1fr}}@media (width<=640px){.sr-hero{padding:16px}.sr-empty{flex-direction:column}.sr-empty-vis{grid-template-columns:1fr auto}.sr-empty-vis>span:first-child{grid-column:1/-1}}@media print{@page{size:A4;margin:14mm}.sr-noprint{display:none!important}.sr-root{color:#000;gap:12px;font-size:12px;container-type:normal}.sr-hero,.sr-kpi,.sr-block,.sr-empty{box-shadow:none;background:#fff;border-color:#cfd6e4}.sr-hero{padding:12px 14px}.sr-kpis{grid-template-columns:repeat(4,1fr)!important}.sr-kpi-value{font-size:26px}.sr-two{grid-template-columns:1fr 1fr}.sr-avoid-break,.sr-block,.sr-kpi{break-inside:avoid}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4;margin:12mm}html,body{background:#fff!important}.session-expand-report,.session-expand-report *,.sr-root,.sr-root *{opacity:1!important;transition:none!important;animation:none!important}.session-expand-report,.session-expand,.session-expand *{clip-path:none!important;grid-template-rows:none!important;height:auto!important;max-height:none!important;overflow:visible!important;transform:none!important}.session-expand-report{top:0;left:0;background:#fff!important;width:100%!important;position:absolute!important}}#sr-print-holder{display:none}@media print{body.sr-printing>:not(#sr-print-holder){display:none!important}body.sr-printing #sr-print-holder{visibility:visible!important;display:block!important}body.sr-printing #sr-print-holder *{visibility:visible!important}}.login-shell{background:linear-gradient(#eef2f5,#f8fafc);place-items:center;min-height:100svh;padding:24px;display:grid}.login-panel{border:1px solid var(--line);background:#fff;border-radius:8px;width:min(420px,100%);padding:26px;box-shadow:0 22px 55px #0f172a21}.login-mark{color:#05231f;background:var(--teal);border-radius:8px;place-items:center;width:48px;height:48px;margin-bottom:18px;display:grid}.login-panel h1{margin:0 0 22px;font-size:28px;line-height:1.15}.login-field{gap:7px;margin-top:14px;display:grid}.login-field span{color:var(--muted);font-size:13px;font-weight:800}.login-field input{border:1px solid var(--line);min-height:44px;color:var(--text);background:#fff;border-radius:8px;padding:0 12px}.auth-error{border:1px solid var(--danger-line);min-height:38px;color:var(--danger);background:var(--danger-bg);border-radius:8px;align-items:center;margin-top:14px;padding:0 12px;display:flex}.login-submit{border:1px solid var(--teal);background:var(--teal);color:#05231f;cursor:pointer;border-radius:8px;width:100%;min-height:44px;margin-top:18px;font-weight:800}.app-shell{background:var(--bg);min-height:100svh;color:var(--text)}.kk-badge{z-index:20;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;width:160px;height:58px;padding:0;text-decoration:none;display:inline-flex;position:fixed;bottom:14px;right:14px;box-shadow:0 10px 28px #0f172a21}.kk-badge img{object-fit:contain;width:100%;height:100%;display:block}.kk-badge:hover{transform:translateY(-1px)}.topbar{border-bottom:1px solid var(--line);background:var(--surface);grid-template-columns:1fr auto auto;align-items:center;gap:24px;padding:24px 28px 18px;display:grid}.eyebrow{color:var(--muted);text-transform:uppercase;margin:0 0 4px;font-size:13px;font-weight:700}.topbar h1{margin:0;font-size:28px;line-height:1.15}.model-pill{border:1px solid var(--line);min-height:36px;color:var(--muted);background:var(--soft);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:14px;display:inline-flex}.model-pill.ready{color:var(--ok-text);background:var(--ok-bg);border-color:var(--ok-line)}.model-pill.error{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line)}.logout-button{border:1px solid var(--line);min-height:36px;color:var(--text);font:inherit;cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:14px;font-weight:700;display:inline-flex}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.control-band{border-bottom:1px solid var(--line);background:#f8fafc;grid-template-columns:minmax(220px,.9fr) minmax(180px,240px) minmax(240px,1fr) auto auto;align-items:end;gap:14px;padding:16px 28px;display:grid}.admin-band{border-bottom:1px solid var(--line);background:#fff;grid-template-columns:minmax(0,1.15fr) minmax(220px,300px) minmax(280px,.85fr);align-items:end;gap:14px;padding:16px 28px;display:grid}.athlete-form{grid-template-columns:minmax(160px,1fr) minmax(140px,.8fr) auto;align-items:end;gap:10px;min-width:0;display:grid}.athlete-form input{border:1px solid var(--line);min-height:42px;color:var(--text);background:#fff;border-radius:8px;padding:0 12px}.athlete-form button{border:1px solid var(--teal);background:var(--teal);color:#05231f;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 13px;font-weight:800;display:inline-flex}.athlete-select{min-width:240px}.athlete-summary{grid-template-columns:repeat(3,minmax(110px,1fr));gap:10px;display:grid}.athlete-summary>div{border:1px solid var(--line);background:var(--soft);border-radius:8px;gap:2px;min-height:58px;padding:10px 12px;display:grid}.athlete-summary span{color:var(--muted);font-size:12px;font-weight:800}.athlete-summary strong{color:#111827;font-size:15px}.segmented{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(3,minmax(82px,1fr));gap:4px;padding:4px;display:inline-grid}.segmented button,.upload-button{min-height:38px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:0 10px;font-size:14px;display:inline-flex}.upload-button input{display:none}.camera-state,.method-chip{border:1px solid var(--line);color:#172033;background:#fff;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 12px;font-size:14px;font-weight:800;display:inline-flex}.camera-state.live{color:var(--ok-text);background:var(--ok-bg);border-color:var(--ok-line)}.camera-state.requesting{color:#0f4c81;background:#e8f3ff;border-color:#b9dcff}.camera-state.blocked,.camera-state.error{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line)}.method-chip{color:var(--muted);background:var(--soft)}.field{gap:6px;display:grid}.field span,.toggle span{color:var(--muted);font-size:12px;font-weight:700}.field select{border:1px solid var(--line);width:100%;min-height:42px;color:var(--text);font:inherit;background:#fff;border-radius:8px;padding:0 36px 0 12px}.field.wide{min-width:240px}.toggle{align-items:center;gap:8px;min-height:42px;display:inline-flex}.toggle input{width:18px;height:18px;accent-color:var(--teal)}.action-row{justify-content:flex-end;gap:8px;display:inline-flex}.icon-button,.icon-only{border:1px solid var(--line);color:#172033;min-height:42px;font:inherit;cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:700;display:inline-flex}.icon-button{padding:0 13px}.icon-only{width:42px;padding:0}.icon-button.primary{border-color:var(--teal);background:var(--teal);color:#05231f}.icon-button:disabled,.icon-only:disabled,.toggle input:disabled+span{cursor:not-allowed;opacity:.45}.error-line{border:1px solid var(--danger-line);color:var(--danger);background:var(--danger-bg);border-radius:8px;margin:14px 28px 0;padding:10px 12px}.workspace{grid-template-columns:minmax(0,1fr) 340px;gap:18px;padding:18px 28px;display:grid}.stage{min-width:0}.stage.camera-primary{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:start;gap:14px;display:grid}.video-wrap{border:1px solid var(--line);aspect-ratio:16/9;background:#070c14;border-radius:8px;max-height:none;position:relative;overflow:hidden}.reference-wrap{border:1px solid var(--line);aspect-ratio:16/9;background:#070c14;border-radius:8px;position:sticky;top:12px;overflow:hidden}.reference-wrap .reference-title{z-index:2;color:#fff;background:#070c14b8;border:1px solid #ffffff29;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 12px;font-size:14px;font-weight:800;display:flex;position:absolute;top:12px;left:12px;right:12px}.reference-wrap .reference-title small{color:#ffffffc7;margin-left:auto;font-size:12px;font-weight:800}.reference-wrap video{object-fit:contain;background:#070c14;width:100%;height:100%;display:block;position:absolute;inset:0}.method-card{border:1px solid var(--line);background:#fff;border-radius:8px;position:sticky;top:12px;overflow:hidden}.method-card .reference-title{border-bottom:1px solid var(--line);color:#172033;align-items:center;gap:8px;min-height:42px;padding:0 12px;font-size:14px;font-weight:800;display:flex}.method-card p,.method-card strong,.method-card ul{margin:0}.method-card p{color:var(--muted);padding:14px 14px 0;line-height:1.45}.method-card strong{color:#162033;padding:10px 14px 0;line-height:1.35;display:block}.method-card ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px;list-style:none;display:grid}.method-card li{color:#172033;background:var(--soft);border-radius:8px;min-height:42px;padding:10px 12px;font-size:13px;font-weight:700;line-height:1.25}.video-wrap video,.pose-layer{width:100%;height:100%;position:absolute;inset:0}.video-wrap video{object-fit:contain;background:#070c14}.video-wrap video.mirrored{transform:scaleX(-1)}.pose-layer{pointer-events:none}.stage-status{color:#fff;background:#070c14b8;border-radius:999px;align-items:center;gap:6px;min-height:30px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex;position:absolute;top:12px;left:12px}.stage-debug{color:#ffffffdb;background:#070c14b8;border-radius:8px;max-width:calc(100% - 24px);min-height:28px;padding:6px 9px;font-size:12px;font-weight:700;line-height:1.25;position:absolute;bottom:12px;left:12px}.camera-guidance{color:#fff;pointer-events:none;background:#070c14c2;border:1px solid #ffffff2e;border-radius:8px;gap:3px;width:min(330px,100% - 24px);min-height:52px;padding:10px 12px;display:grid;position:absolute;top:12px;right:12px;box-shadow:0 14px 34px #00000047}.camera-guidance strong{font-size:13px;line-height:1.2}.camera-guidance span{color:#ffffffd6;font-size:12px;font-weight:700;line-height:1.25}.camera-guidance.warn{background:#573408db;border-color:#fbbf2494}.camera-guidance.bad{background:#5d1212db;border-color:#f871719e}.session-panel{align-content:start;gap:14px;display:grid}.score-block,.stats-grid>div,.issue-list,.angle-list,.event-log{border:1px solid var(--line);background:#fff;border-radius:8px}.score-block{justify-content:space-between;align-items:center;gap:18px;min-height:118px;padding:18px;display:flex}.score-block .label{color:var(--muted);margin-bottom:4px;font-size:13px;font-weight:700;display:block}.score-block strong{font-size:48px;line-height:1}.score-ring{color:#0f172a;background:radial-gradient(circle at center, #fff 0 58%, transparent 59%), conic-gradient(var(--teal) var(--score), #e5e7eb 0);border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.stats-grid>div{align-content:center;gap:4px;min-height:86px;padding:14px;display:grid}.stats-grid span,.angle-row span,.event span{color:var(--muted);font-size:13px}.stats-grid strong{font-size:24px;line-height:1.15}.issue-list,.angle-list,.event-log{padding:14px}.panel-title{color:#182336;align-items:center;gap:8px;margin-bottom:12px;font-weight:800;display:flex}.panel-title.compact{grid-column:1/-1;min-height:24px;margin-bottom:0}.issue,.ok-state,.empty-log,.event,.saved-session{border-radius:8px;min-height:48px;padding:10px 12px}.ok-state{color:var(--ok-text);background:var(--ok-bg);align-items:center;gap:8px;display:flex}.issue{gap:3px;margin-top:8px;display:grid}.issue.warn{background:var(--warn-bg);color:#713f12}.issue.bad{background:var(--danger-bg);color:var(--danger)}.issue span{font-size:13px}.angle-list{gap:8px;display:grid}.angle-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:34px;display:flex}.angle-row:last-child{border-bottom:0}.lower-grid{grid-template-columns:minmax(0,1fr) 340px 340px;gap:18px;padding:0 28px 28px;display:grid}.exercise-strip{grid-template-columns:repeat(6,minmax(130px,1fr));gap:10px;display:grid}.exercise-card{border:1px solid var(--line);min-height:118px;color:var(--text);text-align:left;cursor:pointer;background:#fff;border-radius:8px;align-content:start;gap:6px;padding:12px;display:grid}.exercise-card.active{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}.exercise-card span{color:var(--muted);font-size:12px;font-weight:800}.exercise-card strong{color:#101827;font-size:16px}.exercise-card small{color:var(--muted);font-size:12px;line-height:1.35}.event-log{max-height:266px;overflow:auto}.empty-log{color:var(--muted);background:var(--soft);place-items:center;display:grid}.event{background:var(--soft);gap:3px;margin-top:8px;display:grid}.saved-session{background:var(--soft);gap:4px;margin-top:8px;display:grid}.saved-session span,.saved-session small{color:var(--muted);font-size:12px}.saved-session strong{color:#111827;font-size:14px}.event.issue{background:var(--warn-bg)}.event.rep{background:var(--ok-bg)}button:focus-visible,select:focus-visible,input:focus-visible,.upload-button:focus-within{outline-offset:2px;outline:3px solid #14b8a652}@media (width<=1180px){.control-band,.admin-band,.workspace,.lower-grid,.athlete-form{grid-template-columns:1fr}.athlete-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.stage.camera-primary{grid-template-columns:1fr}.video-wrap,.reference-wrap video{max-height:none}.reference-wrap,.method-card{position:static}.action-row{justify-content:start}.exercise-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.topbar{grid-template-columns:1fr;align-items:flex-start}.control-band,.admin-band,.workspace,.lower-grid,.topbar{padding-left:16px;padding-right:16px}.segmented{grid-template-columns:1fr}.action-row{flex-wrap:wrap}.athlete-summary,.exercise-strip,.method-card ul{grid-template-columns:1fr}.kk-badge{width:136px;height:50px;bottom:12px;right:12px}}.login-shell{background:linear-gradient(135deg, transparent 0 62%, #e0262ee6 62% 70%, transparent 70%), linear-gradient(160deg, #1f4fd88c 0 28%, transparent 28%), linear-gradient(20deg, transparent 0 74%, #ffffff14 74% 82%, transparent 82%), radial-gradient(circle at 20% 10%, #1b3fa8, transparent 55%), var(--fofp-navy);position:relative;overflow:hidden}.login-shell:after{content:"";background:var(--fofp-flag);height:8px;position:absolute;inset:auto 0 0}.login-panel{z-index:1;clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,28px 100%,0 calc(100% - 28px));border:0;border-radius:14px;width:min(460px,100%);padding:28px 30px 30px;position:relative;box-shadow:0 30px 80px #030a288c}.login-brand{text-align:center;justify-items:center;gap:6px;margin-bottom:20px;display:grid}.login-logo{width:min(210px,60%);height:auto}.brand-name{font-family:var(--fofp-head);color:var(--fofp-navy);letter-spacing:1px;font-size:44px;line-height:1}.brand-sub{color:var(--muted);margin:0;font-size:14px;font-weight:700}.flag-bar{background:var(--fofp-flag);border-radius:3px;width:100%;height:6px;margin-top:8px;box-shadow:inset 0 0 0 1px #0a1a4f14}.login-heading{align-items:center;gap:10px;display:flex}.login-mark{color:#fff;background:var(--fofp-navy-2);clip-path:polygon(25% 0,100% 0,75% 100%,0 100%);border-radius:0;width:36px;height:36px;margin:0}.login-panel h1{font-family:var(--fofp-head);color:var(--fofp-navy);margin:0;font-size:24px;font-weight:400}.login-field span{color:var(--fofp-navy-2);font-size:14px}.login-field input{border:2px solid var(--line);min-height:50px;font-size:17px}.login-field input:focus,.athlete-form input:focus,.field select:focus{border-color:var(--fofp-blue);outline:none;box-shadow:0 0 0 3px #1f4fd82e}.login-submit,.icon-button.primary,.athlete-form button{color:#fff;background:var(--fofp-cta);text-transform:uppercase;letter-spacing:.5px;border:0;font-weight:800;transition:transform .12s,filter .12s;box-shadow:0 8px 20px #e0262e47}.login-submit{min-height:52px;font-size:17px}.login-submit:hover,.icon-button.primary:hover:not(:disabled),.athlete-form button:hover{filter:brightness(1.08);transform:translateY(-1px)}.topbar{color:#fff;background:linear-gradient(120deg, transparent 0 70%, #e0262ed9 70% 74%, transparent 74%), linear-gradient(120deg, transparent 0 76%, #ffffff1a 76% 84%, transparent 84%), linear-gradient(100deg, var(--fofp-navy) 0%, var(--fofp-navy-2) 100%);border-bottom:0;padding:16px 28px 20px;position:relative}.topbar:after{content:"";background:var(--fofp-flag);height:5px;position:absolute;bottom:0;left:0;right:0}.topbar-brand{align-items:center;gap:16px;min-width:0;display:flex}.topbar-logo{background:#fff;border-radius:10px;flex:none;width:76px;height:auto;padding:4px 6px}.topbar h1{font-family:var(--fofp-head);letter-spacing:1px;color:#fff;font-size:34px;font-weight:400}.topbar-tag{vertical-align:middle;background:var(--fofp-red);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);margin-left:8px;padding:2px 10px;font-family:Manrope,sans-serif;font-size:13px;font-weight:800;display:inline-block}.topbar .eyebrow{color:#c9d6ff;text-transform:none;margin:4px 0 0;font-size:14px}.topbar .model-pill{color:#fff;background:#ffffff1a;border-color:#ffffff4d}.topbar .model-pill.ready{color:#e8fff1;background:#2cc87838;border-color:#78e6aa99}.topbar .model-pill.error{color:#fff;background:#e0262e4d}.logout-button{color:var(--fofp-navy);font-weight:800}.eyebrow{color:var(--fofp-blue)}.panel-title{color:var(--fofp-navy);font-weight:800}.control-band{background:var(--soft)}.segmented .active,.upload-button.active{color:#fff;background:var(--fofp-navy-2)}.score-ring{background:radial-gradient(circle at center, #fff 0 58%, transparent 59%), conic-gradient(var(--fofp-blue), var(--fofp-red) var(--score), #e3e8f5 0);color:var(--fofp-navy)}.score-block strong,.stats-grid strong{font-family:var(--fofp-head);color:var(--fofp-navy);font-weight:400}.score-block,.stats-grid>div,.issue-list,.angle-list,.event-log,.method-card,.admin-band{border-color:var(--line)}.score-block{border-top:4px solid var(--fofp-red)}.kk-badge{box-shadow:0 10px 28px #0a1a4f40}@media (width<=760px){.topbar{padding:14px 16px 18px}.topbar-logo{width:54px}.topbar h1{font-size:26px}.topbar .eyebrow{font-size:12px}.brand-name{font-size:36px}.login-panel{padding:22px 18px 24px}.login-shell{padding:16px}}.login-shell{background:linear-gradient(125deg,#0000 0 70%,#e0262e1f 70% 76%,#0000 76%),linear-gradient(305deg,#0000 0 72%,#1f4fd81f 72% 80%,#0000 80%),linear-gradient(160deg,#1f4fd812 0 22%,#0000 22%),linear-gradient(#f6f8fe 0%,#e4ebf8 100%)}.login-panel{border:1px solid var(--line);border-top:5px solid var(--fofp-navy-2);clip-path:none;box-shadow:0 24px 60px #0a1a4f29}.login-logo{filter:drop-shadow(0 6px 14px #0a1a4f2e)}.topbar{color:var(--fofp-navy);background:linear-gradient(120deg,#0000 0 74%,#e0262e1f 74% 78%,#0000 78%),linear-gradient(120deg,#0000 0 79%,#1f4fd81a 79% 87%,#0000 87%),#fff;box-shadow:0 6px 20px #0a1a4f0f}.topbar-logo{width:82px;box-shadow:0 0 0 1px var(--line), 0 6px 16px #0a1a4f24;border-radius:12px}.topbar h1{color:var(--fofp-navy)}.topbar-tag{color:#fff}.topbar .eyebrow{color:var(--muted)}.topbar .model-pill{border-color:var(--line);background:var(--soft);color:var(--fofp-navy)}.topbar .model-pill.ready{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-text)}.topbar .model-pill.error{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}@media (width<=760px){.topbar-logo{width:58px}}.app-shell:not(.monitor-on){padding-bottom:40px}.tab-hidden{display:none!important}.topbar{flex-wrap:wrap;align-items:center;gap:12px 24px;display:flex}.topbar-brand{gap:16px}.topbar h1{margin:0;line-height:1}.brand-plate{background:var(--fofp-red);color:#fff;font-family:var(--fofp-head);letter-spacing:.04em;border-radius:6px;padding:6px 22px 7px;font-size:clamp(26px,2.2vw,34px);font-weight:400;line-height:1.1;display:inline-block;transform:skew(-12deg);box-shadow:0 6px 16px #e0262e47}.topbar .eyebrow{margin:8px 0 0;font-size:14px}.login-brand .brand-name{justify-content:center;display:flex}.login-brand .brand-plate{font-size:34px}.topbar-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-left:auto;display:flex}.topbar .kk-badge{width:112px;height:42px;box-shadow:none;order:9;position:static}.topbar .logout-button{order:10}.topbar .model-pill{order:8}.admin-tabs{background:var(--soft);border:1px solid var(--line);border-radius:12px;gap:4px;padding:4px;display:flex}.admin-tab{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:0 18px;font-weight:700;transition:background .18s,color .18s;display:inline-flex}.admin-tab:hover{color:var(--fofp-navy);background:#fff}.admin-tab.active{color:var(--fofp-blue);box-shadow:0 1px 2px #0a1a4f1f, 0 0 0 1px var(--line);background:#fff}.admin-tab em{background:var(--fofp-blue-soft);min-width:22px;color:var(--fofp-blue);border-radius:999px;padding:1px 7px;font-size:13px;font-style:normal}.admin-tab:focus-visible,.exercise-tile:focus-visible,.start-cta:focus-visible,.athlete-row:focus-visible,.picker-trigger:focus-visible,.chip:focus-visible,.ghost-button:focus-visible{outline:3px solid var(--fofp-blue);outline-offset:2px}.tab-pane{gap:24px;width:100%;max-width:1760px;margin:0 auto;padding:28px clamp(16px,3vw,48px) 0;display:grid}.start-card{background:0 0;border:0;gap:28px;padding:0;display:grid}.start-step{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.start-step.column{flex-direction:column;align-items:stretch}.athlete-pick{flex:360px;max-width:560px}.link-button{color:var(--fofp-blue);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;min-height:44px;font-weight:700;display:inline-flex}.exercise-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}.exercise-tile{text-align:left;cursor:pointer;background:#fff;border:2px solid #0000;border-radius:18px;flex-direction:column;padding:0;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 18px #0a1a4f14}.exercise-tile:hover{transform:translateY(-3px);box-shadow:0 14px 30px #0a1a4f24}.exercise-tile.active{border-color:var(--fofp-blue);box-shadow:0 0 0 4px #1f4fd829,0 14px 30px #0a1a4f1f}.exercise-tile video{aspect-ratio:4/3;object-fit:cover;object-position:center 35%;background:var(--soft);pointer-events:none;width:100%;display:block}.exercise-tile-text{gap:4px;padding:16px 18px 18px;display:grid}.exercise-tile-text strong{font-family:var(--fofp-head);color:var(--fofp-navy);font-size:clamp(20px,1.5vw,26px);font-weight:400}.exercise-tile-text small{color:var(--muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:15px;line-height:1.35;display:-webkit-box;overflow:hidden}.exercise-tile-check{color:#fff;background:var(--fofp-blue);border-radius:50%;place-items:center;padding:4px;display:grid;position:absolute;top:12px;right:12px}.start-step.actions{gap:20px}.start-cta{background:var(--fofp-cta);color:#fff;cursor:pointer;min-width:300px;min-height:72px;font-family:var(--fofp-head);letter-spacing:.03em;text-transform:uppercase;border:0;border-radius:16px;justify-content:center;align-items:center;gap:14px;padding:0 44px;font-size:28px;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 14px 30px #1f4fd847}.start-cta:hover{transform:translateY(-2px);box-shadow:0 18px 36px #1f4fd857}.start-cta:active{transform:translateY(1px)}.ghost-button{min-height:48px;color:var(--fofp-blue);cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:inline-flex}.ghost-button:hover{background:var(--fofp-blue-soft)}.ghost-button:disabled{opacity:.6;cursor:progress}.picker{gap:6px;display:grid;position:relative}.picker-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:14px;font-weight:700}.picker-trigger{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:14px;align-items:center;gap:12px;width:100%;min-height:60px;padding:8px 14px 8px 10px;transition:border-color .15s,box-shadow .15s;display:flex;box-shadow:0 2px 8px #0a1a4f0d}.picker-trigger:hover{border-color:var(--fofp-blue)}.picker.open .picker-trigger{border-color:var(--fofp-blue);box-shadow:0 0 0 4px #1f4fd824}.picker-avatar{background:var(--fofp-navy);color:#fff;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;font-size:15px;font-weight:800;display:grid}.picker-avatar.small{width:34px;height:34px;font-size:13px}.picker-avatar.empty{background:var(--soft);color:var(--muted);border:1px dashed var(--line)}.picker-value{flex:1;min-width:0;display:grid}.picker-value strong{color:var(--fofp-navy);white-space:nowrap;text-overflow:ellipsis;font-size:18px;overflow:hidden}.picker-value small{color:var(--muted);font-size:14px}.picker-chevron{color:var(--muted);transition:transform .2s}.picker.open .picker-chevron{transform:rotate(180deg)}.picker-panel{z-index:40;border:1px solid var(--line);background:#fff;border-radius:14px;min-width:280px;padding:8px;animation:.14s ease-out picker-in;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 18px 40px #0a1a4f2e}@keyframes picker-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.picker-search{background:var(--soft);min-height:44px;color:var(--muted);border-radius:10px;align-items:center;gap:8px;margin-bottom:6px;padding:0 10px;display:flex}.picker-search input{background:0 0;border:0;outline:0;flex:1;min-height:42px}.picker-list{gap:2px;max-height:320px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.picker-option{cursor:pointer;border-radius:10px;align-items:center;gap:10px;min-height:48px;padding:8px 10px;display:flex}.picker-option.active{background:var(--fofp-blue-soft)}.picker-option.selected strong,.picker-check{color:var(--fofp-blue)}.picker-empty{color:var(--muted);text-align:center;padding:14px}.chip-group{gap:6px;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);min-height:44px;color:var(--fofp-navy);cursor:pointer;background:#fff;border-radius:999px;padding:0 18px;font-weight:700;transition:background .15s,color .15s,border-color .15s}.chip:hover{border-color:var(--fofp-blue)}.chip.active{background:var(--fofp-blue);border-color:var(--fofp-blue);color:#fff}.training-pane:not(.checking) .camera-check{display:none}.camera-check{grid-template-columns:auto minmax(0,1.15fr) minmax(380px,1fr);align-items:stretch;gap:20px;height:min(66vh,760px);display:grid}.camera-check .reference-player{aspect-ratio:9/16;height:100%}.camera-check .video-wrap{aspect-ratio:auto;background:#0b1430;border:0;border-radius:18px;height:100%;min-height:0}.reference-player{background:0 0;border-radius:18px;position:relative;overflow:hidden}.reference-player video{object-fit:cover;cursor:pointer;width:100%;height:100%;display:block}.reference-controls{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1a4f99;border-radius:12px;align-items:center;gap:8px;padding:6px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.ref-btn{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:10px;place-items:center;width:44px;height:44px;display:grid}.ref-btn:hover{background:#ffffff47}.ref-label{color:#fff;margin-left:4px;font-size:14px;font-weight:700}.score-panel{flex-direction:column;gap:16px;min-height:0;display:flex}.score-top{grid-template-columns:1fr 1fr;gap:16px;display:grid}.score-big{background:var(--surface);border-top:6px solid var(--fofp-blue);border-radius:18px;padding:18px 22px;box-shadow:0 4px 18px #0a1a4f14}.score-big span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:15px;font-weight:700;display:block}.score-big strong{font-family:var(--fofp-head);color:var(--fofp-navy);font-size:clamp(56px,5vw,104px);font-weight:400;line-height:1.05}.score-big.good{border-top-color:#16a34a}.score-big.good strong{color:#15803d}.score-big.mid{border-top-color:#d97706}.score-big.mid strong{color:#b45309}.score-big.low{border-top-color:var(--fofp-red)}.score-big.low strong{color:var(--fofp-red-dark)}.score-issues{background:var(--surface);border-radius:18px;flex:1;align-content:start;gap:12px;min-height:0;padding:20px 22px;display:grid;overflow:auto;box-shadow:0 4px 18px #0a1a4f14}.score-issues h3{color:var(--fofp-navy);margin:0;font-size:20px}.score-issues .issue{background:var(--warn-bg);border-left:7px solid #d97706;border-radius:12px;gap:2px;padding:14px 16px;display:grid}.score-issues .issue.bad{border-left-color:var(--fofp-red);background:var(--danger-bg)}.score-issues .issue strong{font-size:22px}.score-issues .issue span{color:var(--muted);font-size:16px}.score-issues .ok-state{font-size:22px}.camera-empty{z-index:4;text-align:center;color:var(--fofp-navy);background:linear-gradient(160deg,#f5f8ff,#e6edff);place-content:center;justify-items:center;gap:12px;padding:24px;display:grid;position:absolute;inset:0}.camera-empty.bad{background:linear-gradient(160deg,#fff7f7,#fee2e2)}.camera-empty strong{font-size:24px}.camera-empty>span:not(.camera-empty-icon){color:var(--muted);max-width:440px}.camera-empty-icon{width:76px;height:76px;color:var(--fofp-blue);background:#fff;border-radius:50%;place-items:center;display:grid;box-shadow:0 6px 18px #0a1a4f1f}.camera-empty.bad .camera-empty-icon{color:var(--fofp-red)}.camera-empty-bar{background:var(--line);border-radius:99px;width:220px;height:6px;position:relative;overflow:hidden}.camera-empty-bar:after{content:"";border-radius:inherit;background:var(--fofp-blue);width:40%;animation:1.2s ease-in-out infinite cspok-bar;position:absolute;inset:0}@keyframes cspok-bar{0%{transform:translate(-100%)}to{transform:translate(260%)}}.camera-guidance.ok{border-color:var(--ok-line);background:var(--ok-bg);color:var(--ok-text)}.app-shell.monitor-on .training-pane .camera-check{height:0;display:block!important}.app-shell.monitor-on .camera-check>:not(.video-wrap){display:none}.athletes-pane{grid-template-columns:minmax(300px,440px) minmax(0,1fr);align-items:start}.athletes-list-col{gap:14px;display:grid}.athletes-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.athletes-toolbar h2,.athlete-card h2{color:var(--fofp-navy);margin:0;font-size:24px}.athletes-pane .athlete-form{border:1px solid var(--fofp-blue);background:var(--surface);border-radius:16px;grid-template-columns:1fr;gap:10px;padding:18px;display:grid;box-shadow:0 10px 26px #1f4fd81f}.athletes-pane .athlete-form .panel-title{align-items:center;display:flex}.athletes-pane .athlete-form .close{width:36px;height:36px;margin-left:auto}.athletes-pane .athlete-form input{min-height:48px}.search-field{border:1px solid var(--line);min-height:48px;color:var(--muted);background:#fff;border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.search-field input{background:0 0;border:0;outline:0;flex:1;min-height:44px}.search-field:focus-within{border-color:var(--fofp-blue);box-shadow:0 0 0 3px #1f4fd826}.athlete-list{gap:8px;max-height:62vh;display:grid;overflow:auto}.athlete-row{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:14px;align-items:center;gap:12px;min-height:60px;padding:10px 14px;display:flex}.athlete-row:hover{border-color:var(--fofp-blue)}.athlete-row.active{border-color:var(--fofp-blue);background:var(--fofp-blue-soft)}.athlete-row-text{flex:1;min-width:0;display:grid}.athlete-row-text strong{white-space:nowrap;text-overflow:ellipsis;color:var(--fofp-navy);overflow:hidden}.athlete-row-text small,.athlete-row-meta{color:var(--muted);font-size:14px}.avatar{background:var(--fofp-navy);color:#fff;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:15px;font-weight:800;display:grid}.avatar.big{width:64px;height:64px;font-size:22px}.athlete-card{background:var(--surface);border-radius:18px;gap:18px;padding:24px;display:grid;box-shadow:0 4px 18px #0a1a4f14}.athlete-card-head{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.athlete-card-head>div{flex:1;min-width:180px}.athlete-card-head p{color:var(--muted);margin:2px 0 0}.athlete-card .athlete-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.result-list{gap:8px;display:grid}.saved-session b.good,.score-chip.good{color:#15803d}.saved-session b.mid,.score-chip.mid{color:#b45309}.saved-session b.low,.score-chip.low{color:var(--fofp-red-dark)}.history-filters{flex-wrap:wrap;align-items:end;gap:16px 20px;display:flex}.history-athlete{width:min(100%,340px)}.history-athlete .picker-trigger{min-height:48px}.history-athlete .picker-avatar{width:32px;height:32px;font-size:12px}.history-athlete .picker-value strong{font-size:16px}.history-count{color:var(--muted);align-self:center;margin-left:auto;font-size:15px}.history-table-wrap{background:var(--surface);border-radius:16px;overflow:auto;box-shadow:0 4px 18px #0a1a4f14}.history-table{border-collapse:collapse;width:100%;font-size:16px}.history-table th{background:var(--soft);text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:14px 16px;font-size:13px;position:sticky;top:0}.history-table td{border-top:1px solid var(--line);vertical-align:top;padding:14px 16px}.history-table tbody tr:hover{background:#f8faff}.score-chip{font-family:var(--fofp-head);font-size:18px;font-weight:400}.issues-cell{color:var(--muted);max-width:420px}.empty-state{text-align:center;color:var(--muted);border:1px dashed var(--line);background:var(--surface);border-radius:18px;justify-items:center;gap:8px;padding:56px 20px;display:grid}.empty-state svg{color:var(--fofp-blue)}.empty-state strong{color:var(--fofp-navy);font-size:20px}.empty-state.small{padding:24px 16px}.empty-state .icon-button{margin-top:8px}.empty-illustration{width:160px;height:auto}.login-foot{text-align:center;color:var(--muted);margin:6px 0 0;font-size:13px}@media (width<=1400px){.camera-check{grid-template-columns:auto minmax(0,1fr) minmax(320px,.9fr);height:min(60vh,640px)}.exercise-grid{gap:16px}}@media (width<=1100px){.camera-check{grid-template-columns:auto minmax(0,1fr);height:auto}.camera-check .reference-player,.camera-check .video-wrap{height:52vh}.camera-check .score-panel{grid-column:1/-1}.athletes-pane{grid-template-columns:1fr}}@media (width<=900px){.exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-actions{width:100%;margin-left:0}}@media (width<=640px),(orientation:portrait) and (width<=1200px){.camera-check{grid-template-columns:1fr}.camera-check .reference-player{justify-self:center;width:min(100%,300px);height:auto;max-height:45vh}.camera-check .video-wrap{aspect-ratio:4/3;height:auto}}@media (width<=640px){.tab-pane{gap:18px;padding-top:18px}.topbar .eyebrow,.topbar .kk-badge{display:none}.admin-tabs{flex:1}.admin-tab{flex:1;justify-content:center;padding:0 6px}.admin-tab span{font-size:15px}.admin-tab em,.logout-button span{display:none}.exercise-grid{gap:12px}.exercise-tile-text{padding:10px 12px 12px}.exercise-tile-text small{display:none}.start-cta{width:100%;min-width:0}.ghost-button{justify-content:center;width:100%}.history-count{width:100%;margin-left:0}.history-table thead{display:none}.history-table,.history-table tbody,.history-table tr,.history-table td{display:block}.history-table tr{border-top:1px solid var(--line);padding:10px 0}.history-table td{border:0;gap:10px;padding:4px 14px;display:flex}.history-table td:before{content:attr(data-label);min-width:100px;color:var(--muted);font-size:14px}}@media (width<=1440px) and (width>=901px){.topbar .eyebrow{display:none}}@media (height<=820px) and (width>=641px){.exercise-tile video{aspect-ratio:16/10}.tab-pane{gap:18px;padding-top:18px}.start-card{gap:18px}}@media (width<=640px){.topbar{position:relative}.topbar .logout-button{position:absolute;top:14px;right:14px}.admin-tab{gap:4px}.admin-tab span{font-size:14px}}.wizard{gap:28px;display:grid}.wizard-top{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.wizard-top-spacer{display:block}.wizard-top>.ghost-button{justify-self:start}.wizard-steps{align-items:center;gap:0;margin:0;padding:0;list-style:none;display:flex}.wizard-step{align-items:center;display:flex}.wizard-step+.wizard-step:before{content:"";background:var(--line);border-radius:2px;width:clamp(28px,5vw,80px);height:3px;margin:0 10px}.wizard-step.done+.wizard-step:before,.wizard-step.current:before{background:var(--fofp-blue)}.wizard-step button{font:inherit;color:var(--muted);background:0 0;border:0;align-items:center;gap:10px;min-height:44px;padding:6px;font-weight:700;display:inline-flex}.wizard-step.done button{cursor:pointer;color:var(--fofp-navy)}.wizard-step.done button:hover .wizard-dot{box-shadow:0 0 0 4px #1f4fd82e}.wizard-step button:disabled{cursor:default}.wizard-dot{width:36px;height:36px;font-family:var(--fofp-head);border:2px solid var(--line);color:var(--muted);background:#fff;border-radius:50%;place-items:center;transition:box-shadow .15s;display:grid}.wizard-step.current .wizard-dot{background:var(--fofp-blue);border-color:var(--fofp-blue);color:#fff}.wizard-step.current button{color:var(--fofp-blue)}.wizard-step.done .wizard-dot{background:var(--fofp-blue-soft);border-color:var(--fofp-blue);color:var(--fofp-blue)}.wizard-body{animation:.25s ease-out wiz-in-fwd}.wizard-body.dir-back{animation-name:wiz-in-back}@keyframes wiz-in-fwd{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes wiz-in-back{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.wizard-body{animation:none}}.wizard-screen{gap:24px;display:grid}.wizard-title{text-align:center;font-family:var(--fofp-head);color:var(--fofp-navy);margin:0;font-size:clamp(30px,2.8vw,48px);font-weight:400}.wizard-tools{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.search-field.big{border-radius:14px;flex:360px;max-width:640px;min-height:56px;font-size:18px}.wizard-tools .icon-button{min-height:56px}.wizard-add{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;width:100%;max-width:900px;margin:0 auto;display:flex}.wizard-add input{border:1px solid var(--fofp-blue);border-radius:12px;flex:220px;min-height:52px;padding:0 14px;font-size:17px}.wizard-athletes{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;width:100%;max-width:1400px;max-height:52vh;margin:0 auto;padding:4px;display:grid;overflow:auto}.wizard-athlete{text-align:left;cursor:pointer;background:#fff;border:2px solid #0000;border-radius:18px;align-items:center;gap:16px;min-height:92px;padding:14px 18px;transition:border-color .15s,transform .15s;display:flex;position:relative;box-shadow:0 4px 18px #0a1a4f14}.wizard-athlete:hover{transform:translateY(-2px)}.wizard-athlete.active{border-color:var(--fofp-blue);box-shadow:0 0 0 4px #1f4fd829}.wizard-athlete .athlete-row-text strong{font-size:20px}.wizard-athlete .athlete-row-text small{font-size:15px}.wizard-athlete-check{color:var(--fofp-blue);flex:none}.wizard-athlete:focus-visible,.summary-row:focus-visible,.wizard-step button:focus-visible{outline:3px solid var(--fofp-blue);outline-offset:2px}.wizard-actions{justify-content:center;display:flex}.start-cta:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.exercise-tile .tile-media{aspect-ratio:3/4;object-fit:contain;object-position:center;pointer-events:none;background:linear-gradient(#f5f8ff,#e9eefb);width:100%;display:block}.wizard .exercise-grid{gap:24px;width:100%;max-width:1500px;margin:0 auto}.wizard-summary{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(24px,4vw,64px);display:flex}.wizard-preview{aspect-ratio:9/16;object-fit:contain;background:linear-gradient(#f5f8ff,#e9eefb);border-radius:20px;height:min(56vh,600px);box-shadow:0 10px 30px #0a1a4f1a}.wizard-summary-text{gap:16px;min-width:min(100%,380px);display:grid}.summary-row{text-align:left;cursor:pointer;background:#fff;border:0;border-radius:18px;align-items:center;gap:16px;padding:14px 18px;display:flex;box-shadow:0 4px 18px #0a1a4f14}.summary-row small{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:700;display:block}.summary-row strong{color:var(--fofp-navy);font-size:24px}.avatar.ex{background:var(--fofp-blue-soft);color:var(--fofp-blue)}.wizard-hint{color:var(--fofp-navy);align-items:center;gap:10px;margin:4px 0;font-size:19px;font-weight:700;display:flex}.wizard-hint svg{color:var(--fofp-blue)}.start-cta.huge{width:100%;min-height:84px;font-size:32px}.wizard-summary-text .ghost-button{justify-self:center}@media (width>=901px){.topbar,.topbar-actions{flex-wrap:nowrap}}@media (width<=1100px) and (width>=901px){.topbar .kk-badge{display:none}}@media (width<=1280px) and (width>=901px){.admin-tab{padding:0 12px}.admin-tab em{display:none}}@media (width<=640px){.wizard-top{grid-template-columns:auto 1fr}.wizard-top>.wizard-top-spacer:last-child{display:none}.wizard-steps{justify-self:center}.wizard-step-label{display:none}.wizard-athletes{grid-template-columns:1fr;max-height:none}.wizard-preview{height:38vh}.start-cta.huge{min-height:72px;font-size:26px}}@media (height<=820px) and (width>=641px){.exercise-tile .tile-media{aspect-ratio:auto;height:38vh}.wizard-screen{gap:16px}}.exercise-layout{gap:28px;width:100%;max-width:1500px;margin:0 auto;display:grid}.exercise-layout.has-info{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start}.exercise-layout.has-info .exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.exercise-layout.has-info .exercise-tile .tile-media{aspect-ratio:auto;height:min(24vh,260px)}.exercise-layout.has-info .exercise-tile-text small{display:none}.exercise-info{background:#fff;border-radius:22px;gap:28px;padding:24px;animation:.25s ease-out wiz-in-fwd;display:flex;box-shadow:0 10px 30px #0a1a4f1a}.exercise-info-video{aspect-ratio:9/16;object-fit:contain;background:linear-gradient(#f5f8ff,#e9eefb);border-radius:16px;flex:none;height:min(58vh,560px)}.exercise-info-text{flex-direction:column;gap:14px;min-width:0;display:flex}.exercise-info-text h3{font-family:var(--fofp-head);color:var(--fofp-navy);margin:0;font-size:clamp(28px,2.2vw,40px);font-weight:400;line-height:1.1}.exercise-info-time{background:var(--fofp-blue-soft);color:var(--fofp-blue);border-radius:999px;align-self:flex-start;padding:4px 12px;font-weight:800}.exercise-info-text h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:8px 0 0;font-size:14px}.exercise-info-text ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.exercise-info-text li{color:var(--fofp-navy);align-items:flex-start;gap:10px;font-size:19px;font-weight:600;display:flex}.exercise-info-text li svg{color:#16a34a;flex:none;margin-top:3px}.exercise-info-camera{color:var(--muted);align-items:flex-start;gap:8px;margin:0;font-size:15px;display:flex}.exercise-info-camera svg{color:var(--fofp-blue);flex:none;margin-top:2px}.exercise-info .start-cta{width:100%;min-width:0;margin-top:auto}@media (width<=1200px){.exercise-layout.has-info{grid-template-columns:1fr}.exercise-layout.has-info .exercise-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=900px){.exercise-layout.has-info .exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.exercise-info{flex-direction:column;align-items:center;padding:16px}.exercise-info-video{height:40vh}}@media (prefers-reduced-motion:reduce){.exercise-info{animation:none}}.wizard-summary{gap:clamp(32px,5vw,96px)}.wizard-preview{height:min(72vh,820px)}.wizard-summary-text{gap:20px;min-width:min(100%,460px)}.summary-row{padding:18px 22px}.summary-row strong{font-size:clamp(24px,1.8vw,32px)}.wizard-hint{font-size:22px}.wizard .wizard-screen:has(.wizard-summary){gap:16px}@media (width<=640px){.wizard-preview{height:42vh}}.camera-modal-backdrop{z-index:70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#060c22b8;animation:.2s ease-out picker-in;position:fixed;inset:0}.training-pane.checking .camera-check{z-index:71;background:#fff;border-radius:22px;flex-direction:column;gap:16px;width:min(92vw,1280px);height:auto;padding:20px;display:flex;position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 30px 80px #00000059}.training-pane.checking .camera-check>.reference-player,.training-pane.checking .camera-check>.score-panel{display:none}.training-pane.checking .camera-check .video-wrap{aspect-ratio:16/9;width:100%;height:auto;max-height:76vh}.camera-modal-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.camera-modal-head h2{font-family:var(--fofp-head);color:var(--fofp-navy);margin:0;font-size:28px;font-weight:400}.camera-indicator{z-index:5;white-space:nowrap;border-radius:999px;align-items:center;gap:12px;padding:14px 26px;font-size:clamp(20px,1.8vw,28px);display:inline-flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000004d}.camera-indicator.ok{color:#fff;background:#16a34a}.camera-indicator.bad{background:var(--fofp-red);color:#fff}.camera-guidance{text-align:center;max-width:90%;font-size:22px;transform:translate(-50%);inset:auto auto 24px 50%!important}@media (width<=640px){.training-pane.checking .camera-check{width:96vw;padding:12px}.training-pane.checking .camera-check .video-wrap{aspect-ratio:3/4}.camera-indicator{padding:10px 16px;font-size:17px}}.exercise-info-video,.wizard-preview{aspect-ratio:9/16;background:#eef2fb;width:auto;object-fit:contain!important}.reference-player video,.app-shell.monitor-on .monitor-coach video{object-fit:contain}.user-avatar{object-fit:cover;background:var(--fofp-navy);color:#fff;border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.user-menu{order:10;position:relative}.user-menu-trigger{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;padding:2px;display:grid}.user-menu-trigger:hover,.user-menu.open .user-menu-trigger{border-color:var(--fofp-blue)}.user-menu-trigger:focus-visible{outline:3px solid var(--fofp-blue);outline-offset:2px}.user-menu-panel{z-index:60;border:1px solid var(--line);background:#fff;border-radius:14px;min-width:240px;padding:8px;animation:.14s ease-out picker-in;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 40px #0a1a4f2e}.user-menu-head{border-bottom:1px solid var(--line);margin-bottom:6px;padding:8px 10px 10px;display:grid}.user-menu-head strong{color:var(--fofp-navy)}.user-menu-head small{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.user-menu-panel button{width:100%;min-height:44px;color:var(--fofp-navy);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:0 10px;font-weight:700;display:flex}.user-menu-panel button:hover{background:var(--fofp-blue-soft)}.user-menu-panel button.danger{color:var(--fofp-red-dark)}.user-menu-panel button.danger:hover{background:var(--danger-bg)}.modal-layer{z-index:90;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#060c2299;animation:.18s ease-out picker-in;position:absolute;inset:0}.modal-card{background:#fff;border-radius:20px;width:min(100%,520px);max-height:calc(100svh - 32px);padding:24px;animation:.2s ease-out wiz-in-fwd;position:relative;overflow:auto;box-shadow:0 30px 80px #0000004d}.modal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.modal-head h2,.confirm-card h2{font-family:var(--fofp-head);color:var(--fofp-navy);margin:0;font-size:26px;font-weight:400}.profile-section{border-top:1px solid var(--line);gap:12px;padding:16px 0;display:grid}.modal-head+.profile-section{border-top:0}.profile-section h3{color:var(--fofp-navy);align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.profile-section>.icon-button{justify-self:start}.profile-avatar-row{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.profile-avatar-actions{flex-wrap:wrap;gap:8px;display:flex}.profile-field{gap:4px;display:grid}.profile-field span{color:var(--muted);font-size:14px;font-weight:700}.profile-field input{border:1px solid var(--line);border-radius:10px;min-height:46px;padding:0 12px;font-size:16px}.profile-field input:focus{border-color:var(--fofp-blue);outline:0;box-shadow:0 0 0 3px #1f4fd826}.profile-field input[readonly]{background:var(--soft);color:var(--muted)}.form-msg{border-radius:10px;padding:10px 12px;font-size:15px;font-weight:600}.form-msg.ok{background:var(--ok-bg);color:var(--ok-text)}.form-msg.bad{background:var(--danger-bg);color:var(--danger)}.confirm-card{text-align:center;justify-items:center;gap:12px;width:min(100%,460px);display:grid}.confirm-card p{color:var(--muted);margin:0;font-size:17px}.confirm-icon{background:var(--danger-bg);width:64px;height:64px;color:var(--fofp-red);border-radius:50%;place-items:center;display:grid}.confirm-actions{gap:10px;margin-top:8px;display:flex}.icon-button.danger-solid{background:var(--fofp-red);border-color:var(--fofp-red);color:#fff}.icon-button.danger-solid:hover{background:var(--fofp-red-dark)}.ghost-button.danger{color:var(--fofp-red-dark)}.ghost-button.danger:hover{background:var(--danger-bg)}.saved-session.with-action{padding-right:52px;position:relative}.row-delete{color:var(--muted)}.saved-session .row-delete{position:absolute;top:50%;right:8px;transform:translateY(-50%)}.row-delete:hover{color:var(--fofp-red);background:var(--danger-bg)}.history-table .row-actions{text-align:right;width:56px}@media (width<=640px){.history-table .row-actions{justify-content:flex-end}.history-table .row-actions:before{content:none}}.comment-box{gap:8px;display:grid}.comment-box-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.comment-box textarea{resize:vertical;border:1px solid var(--line);width:100%;font:inherit;color:var(--text);background:#fffdf5;border-radius:12px;padding:12px 14px;font-size:16px;line-height:1.45}.comment-box textarea:focus{border-color:var(--fofp-blue);outline:0;box-shadow:0 0 0 3px #1f4fd826}.comment-box.compact{margin-top:8px}.comment-box.compact textarea{padding:8px 12px;font-size:15px}.comment-status{color:var(--muted);align-items:center;gap:4px;font-size:13px;display:inline-flex}.comment-status.ok{color:var(--ok-text)}.comment-status.bad{color:var(--danger)}.session-comment{color:var(--fofp-navy);white-space:pre-wrap;margin-top:4px;font-size:15px;display:block}.session-comment:before{content:"“";color:var(--fofp-blue);margin-right:2px;font-weight:800}.saved-session .row-buttons{gap:4px;display:flex;position:absolute;top:8px;right:8px}.saved-session .row-buttons .row-delete{position:static;transform:none}.row-comment{color:var(--muted)}.row-comment:hover{color:var(--fofp-blue);background:var(--fofp-blue-soft)}.row-comment.has{color:var(--fofp-blue)}.history-table .row-actions{white-space:nowrap;width:104px}.history-table tr.has-sub td{border-bottom:0}.history-table .sub-row td{border-top:0;padding-top:0}@media (width<=640px){.history-table .sub-row td:before{content:none}.history-table .sub-row td{display:block}}.report-layer{z-index:95;background:var(--bg);animation:.2s ease-out picker-in;position:fixed;inset:0;overflow:auto}.clickable{cursor:pointer}.saved-session.clickable:hover{border-color:var(--fofp-blue)}.history-table tr.clickable:hover td{background:#f3f6ff}.report-btn{border:1px solid var(--fofp-blue);background:var(--fofp-blue-soft);min-height:36px;color:var(--fofp-blue);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:800;display:inline-flex}.report-btn:hover{background:var(--fofp-blue);color:#fff}.report-btn:focus-visible{outline:3px solid var(--fofp-blue);outline-offset:2px}.saved-session .row-buttons{align-items:center}.history-table .row-actions>*{vertical-align:middle}@media (width<=640px){.saved-session.with-action{padding-top:52px;padding-right:12px}}.camera-check-button{justify-content:center;width:100%;border:2px solid var(--fofp-blue)!important;color:var(--fofp-blue)!important;background:#fff!important;border-radius:14px!important;padding:16px 28px!important;font-size:20px!important;font-weight:800!important}.camera-check-button svg{width:24px;height:24px}.camera-indicator.body-check{flex-direction:column;align-items:stretch;gap:12px;min-width:min(560px,90%);padding:16px 22px}.body-check-head{align-items:center;gap:12px;display:flex}.body-bars{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.body-bar{flex-direction:column;gap:6px;display:flex}.body-bar span{color:var(--fofp-navy);font-size:14px;font-weight:800}.body-bar i{background:#0a1a4f1f;border-radius:6px;height:10px;display:block;overflow:hidden}.body-bar b{background:#13803f;border-radius:6px;height:100%;transition:width .25s;display:block}.body-bar.mid b{background:#f5a400}.body-bar.bad b{background:var(--fofp-red)}.camera-indicator.body-check{color:var(--fofp-navy);background-color:#fffffff0;top:16px;bottom:auto!important}.camera-indicator.body-check.bad{border-left:6px solid var(--fofp-red)}.camera-indicator.body-check.ok{border-left:6px solid #13803f}.session-item{border-radius:14px;transition:box-shadow .2s}.session-item.open{box-shadow:0 0 0 2px var(--fofp-blue), 0 12px 30px #0a1a4f1a;background:#fff}.session-item.open>.saved-session{border-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.saved-session.with-action{padding-right:150px}.expand-btn{border:1px solid var(--line);width:40px;height:40px;color:var(--fofp-blue);cursor:pointer;background:#fff;border-radius:10px;place-items:center;transition:transform .2s,background .15s;display:grid}.expand-btn:hover{background:var(--fofp-blue-soft);border-color:var(--fofp-blue)}.expand-btn.open{background:var(--fofp-blue);color:#fff;border-color:var(--fofp-blue);transform:rotate(180deg)}.expand-btn:focus-visible{outline:3px solid var(--fofp-blue);outline-offset:2px}.session-expand{gap:16px;padding:4px 16px 18px;animation:.25s ease-out expand-in;display:grid}@keyframes expand-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.session-expand{animation:none}}.session-expand-report{border-top:1px solid var(--line);padding-top:8px;overflow-x:auto}.unsaved-badge{background:var(--warn-bg);color:#92400e;border-radius:999px;margin-left:10px;padding:2px 10px;font-size:13px;font-weight:800}.session-item.unsaved{margin-bottom:12px}.history-table tr.expanded td{background:var(--fofp-blue-soft)}.history-table .expand-row>td{background:#fff;padding:0 8px 12px}.history-table .row-actions{width:150px}@media (width<=640px){.saved-session.with-action{padding-top:56px;padding-right:12px}.session-expand{padding:4px 8px 12px}}@media print{body *{visibility:hidden}.session-expand-report,.session-expand-report *{visibility:visible}.session-expand-report{border:0;width:100%;position:absolute;top:0;left:0}.topbar,.kk-badge{display:none!important}}@media (width>=901px){.training-pane:not(.checking) .wizard{flex-direction:column;height:calc(100dvh - 186px);display:flex;overflow:hidden}.training-pane:not(.checking) .wizard>:last-child{flex:1;min-height:0}.training-pane .wizard h2,.training-pane .wizard-title{margin:8px 0 12px!important;font-size:clamp(26px,4vh,44px)!important}.wizard-preview{aspect-ratio:9/16;width:auto!important;height:min(72vh,100vh - 330px)!important;max-height:calc(100vh - 330px)!important}.exercise-info-video{aspect-ratio:9/16;width:auto!important;max-height:calc(100vh - 360px)!important}.exercise-tile img,.exercise-tile video,.exercise-tile .tile-media{max-height:calc(50vh - 200px)!important}}@media (width>=901px) and (height<=820px){.exercise-tile-text{padding:8px 12px 10px!important}.exercise-tile-text small{display:none}.wizard-steps,.wizard-head{margin-bottom:4px!important}}.auth-splash{background:linear-gradient(160deg,#f6f8fe,#e4ebf8);flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100vh;display:flex}.auth-splash img{width:120px;height:auto;animation:1.2s ease-in-out infinite splash-pulse}.auth-splash span{font-family:var(--fofp-head);color:var(--fofp-navy);letter-spacing:.04em;font-size:28px}@keyframes splash-pulse{50%{opacity:.85;transform:scale(1.05)}}@media (width>=901px){.training-pane:not(.checking) .wizard{height:auto!important;display:block!important;overflow:visible!important}.wizard-top{z-index:1;margin-top:8px;position:relative}.wizard-preview{height:min(70vh,100vh - 360px)!important;max-height:calc(100vh - 360px)!important}.exercise-info-video{max-height:calc(100vh - 400px)!important}.exercise-tile img,.exercise-tile video,.exercise-tile .tile-media{max-height:calc(50vh - 235px)!important}}body:has(.training-pane.checking){overflow:hidden}.camera-indicator.body-check{opacity:.96;gap:8px!important;padding:10px 16px!important;top:auto!important;bottom:14px!important}.body-check-head strong{font-size:18px!important}@media (width>=901px){.wizard-preview{height:min(66vh,100vh - 392px)!important;max-height:calc(100vh - 392px)!important}}@media (width>=901px) and (height>=680px){:is(html:has(.training-pane:not(.tab-hidden):not(.checking)),body:has(.training-pane:not(.tab-hidden):not(.checking))){overflow-y:hidden}}@media (width<=900px){.wizard-preview{aspect-ratio:9/16;margin:0 auto;display:block;width:auto!important;height:34vh!important;max-height:34vh!important}.exercise-info-video{margin:0 auto;display:block;width:auto!important;max-height:34vh!important}.wizard-summary{flex-direction:column;display:flex!important}.wizard-summary .wizard-summary-text{order:1}.wizard-summary .wizard-preview{order:2;margin-top:12px;height:28vh!important;max-height:28vh!important}}
