*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:#fff;-webkit-font-smoothing:antialiased;background:#0f0f13;font-family:Inter,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{color:#fff;-webkit-font-smoothing:antialiased;background:#0a0d14;min-height:100dvh;font-family:Inter,Manrope,system-ui,sans-serif}.app{background:radial-gradient(80% 38% at 50% 22%,#a05a002e 0%,#0000 65%),url(/bg-texture.jpg) 50%/cover no-repeat;flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.app-header{border-bottom:1px solid #f0b90b26;justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.header-logo{object-fit:contain;filter:drop-shadow(0 2px 8px #f0b90b4d);width:auto;height:36px}.header-right{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.header-title{color:#f0b90b;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800}.header-sub{color:#ffffff59;font-size:.6rem}.app-main{flex-direction:column;flex:1;gap:14px;padding:16px;display:flex}.card{background:#0a0d14d9;border:1px solid #f0b90b40;border-radius:18px;padding:18px 16px;box-shadow:0 4px 24px #00000080,inset 0 1px #f0b90b14}.upload-wrap{flex-direction:column;gap:12px;display:flex}.drop-zone{text-align:center;cursor:pointer;background:#f0b90b0a;border:2px dashed #f0b90b4d;border-radius:16px;padding:36px 20px;transition:all .2s}.drop-zone:hover,.drop-zone.dragging{background:#f0b90b14;border-color:#f0b90b}.drop-zone.has-file{border-style:solid;border-color:#f0b90b}.drop-icon{margin-bottom:10px;font-size:2.2rem}.drop-title{margin-bottom:4px;font-size:.9rem;font-weight:600}.drop-filename{color:#f0b90b;word-break:break-all;margin-bottom:4px;font-size:.82rem;font-weight:700}.drop-hint{color:#ffffff59;font-size:.7rem}.exercise-label{color:#f0b90bb3;letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;font-weight:800}.exercise-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ex-btn{color:#fff9;cursor:pointer;background:#ffffff0a;border:1.5px solid #f0b90b2e;border-radius:12px;align-items:center;gap:8px;padding:11px 13px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.ex-btn:hover{background:#f0b90b14;border-color:#f0b90b66}.ex-btn.active{color:#fff;background:#f0b90b24;border-color:#f0b90b}.ex-icon{font-size:1.1rem}.btn-analyze{color:#0a0d14;cursor:pointer;letter-spacing:.04em;background:linear-gradient(135deg,#f0b90b,#d4a009);border:none;border-radius:50px;width:100%;padding:15px;font-size:.95rem;font-weight:900;transition:all .2s;box-shadow:0 4px 20px #f0b90b59}.btn-analyze:disabled{opacity:.35;cursor:not-allowed}.btn-analyze:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 24px #f0b90b73}.processing-card{text-align:center;background:#0a0d14e6;border:1px solid #f0b90b33;border-radius:20px;flex-direction:column;align-items:center;gap:16px;padding:40px 20px;display:flex}.processing-icon{font-size:3rem;animation:1.5s infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.processing-label{color:#ffffffb3;font-size:.88rem}.progress-bar-wrap{background:#ffffff14;border-radius:3px;width:100%;height:5px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#f0b90b,#d4a009);border-radius:3px;height:100%;transition:width .3s}.progress-pct{color:#ffffff59;font-size:.78rem}.btn-cancel{color:#ffffff80;cursor:pointer;background:0 0;border:1px solid #f0b90b40;border-radius:50px;padding:9px 22px;font-size:.8rem}.bridge-card{background:#0a0d14e6;border:1px solid #f0b90b40;border-radius:20px;flex-direction:column;gap:14px;padding:20px 16px;display:flex;box-shadow:0 4px 24px #00000080}.bridge-step{align-items:flex-start;gap:12px;display:flex}.bridge-num{color:#0a0d14;background:#f0b90b;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:28px;height:28px;font-size:.78rem;font-weight:900;display:flex}.bridge-text{flex-direction:column;flex:1;gap:2px;display:flex}.bridge-text strong{color:#fff;font-size:.86rem;font-weight:700}.bridge-text span{color:#fff6;font-size:.7rem}.bridge-divider{background:#f0b90b1f;height:1px}.btn-download{color:#f0b90b;cursor:pointer;white-space:nowrap;background:#f0b90b1f;border:1px solid #f0b90b80;border-radius:10px;flex-shrink:0;padding:8px 14px;font-size:.76rem;font-weight:700}.bridge-command{cursor:pointer;background:#00000080;border:1px solid #f0b90b33;border-radius:10px;padding:12px 14px}.bridge-command code{color:#fde68a;white-space:nowrap;text-overflow:ellipsis;font-family:monospace;font-size:.7rem;display:block;overflow:hidden}.copy-hint{color:#ffffff4d;margin-top:4px;font-size:.6rem;display:block}.bridge-command:hover{border-color:#f0b90b}.paste-area{color:#fff;resize:none;background:#00000059;border:1px solid #f0b90b40;border-radius:12px;outline:none;width:100%;padding:12px;font-family:monospace;font-size:.76rem}.paste-area:focus{border-color:#f0b90b}.paste-error{color:#f87171;font-size:.73rem}.result-wrap{flex-direction:column;gap:12px;display:flex}.btn-back{color:#f0b90bb3;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:.8rem;font-weight:700;display:flex}.result-main-card{background:linear-gradient(160deg,#121620 0%,#0a0d14 100%);border:1px solid #f0b90b59;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:28px 20px;display:flex;box-shadow:0 12px 40px #000000b3,inset 0 1px #f0b90b1a}.result-exercise{color:#f0b90b;letter-spacing:.14em;text-transform:uppercase;font-size:.62rem;font-weight:800}.result-seconds{color:#ff7055;font-size:6rem;font-weight:900;line-height:1}.result-unit{color:#fff6;letter-spacing:3px;text-transform:uppercase;font-size:.58rem;font-weight:700}.result-details{background:#0a0d14e6;border:1px solid #f0b90b2e;border-radius:14px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.detail-row{justify-content:space-between;align-items:center;display:flex}.detail-label{color:#ffffff73;font-size:.76rem}.detail-value{color:#fff;font-size:.84rem;font-weight:700}.result-summary{color:#ffffff80;text-align:center;padding:0 8px;font-size:.8rem;font-style:italic}.corrections-card{background:#fb923c12;border:1px solid #fb923c33;border-radius:14px;padding:14px 16px}.corrections-title{color:#fb923c;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;font-size:.65rem;font-weight:800}.correction-item{color:#ffffffb3;margin-bottom:6px;font-size:.8rem}.frame-timeline{background:#0a0d14e6;border:1px solid #f0b90b2e;border-radius:14px;padding:14px 16px}.timeline-title{color:#f0b90b99;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;font-size:.65rem;font-weight:700}.timeline-bars{gap:3px;height:26px;display:flex}.timeline-bar{border-radius:3px;flex:1}.timeline-legend{margin-top:8px;font-size:.68rem;display:flex}.vp-wrap,.vp-done{flex-direction:column;gap:12px;display:flex}.vp-container{cursor:pointer;background:#000;border:1px solid #f0b90b33;border-radius:16px;position:relative;overflow:hidden;box-shadow:0 8px 32px #000000b3}.vp-video{object-fit:contain;width:100%;max-height:60vh;display:block}.vp-overlay{pointer-events:none;position:absolute;inset:0}.vp-top-left{align-items:center;gap:6px;display:flex;position:absolute;top:10px;left:10px}.vp-exercise-label{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#f0b90b;letter-spacing:.1em;background:#000000a6;border:1px solid #f0b90b4d;border-radius:6px;padding:3px 8px;font-size:.62rem;font-weight:800}.vp-quality-badge{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000a6;border:1px solid;border-radius:6px;padding:3px 8px;font-size:.62rem;font-weight:700}.vp-top-right{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000a6;border:1px solid #f0b90b33;border-radius:8px;flex-direction:column;align-items:flex-end;padding:4px 10px;display:flex;position:absolute;top:10px;right:10px}.vp-angle-label{color:#f0b90b99;letter-spacing:.1em;text-transform:uppercase;font-size:.52rem;font-weight:700}.vp-angle-value{color:#fff;font-size:1rem;font-weight:800}.vp-hold-center{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;border:1px solid #ff705566;border-radius:16px;padding:12px 20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vp-hold-seconds{color:#ff7055;font-size:3.5rem;font-weight:900;line-height:1}.vp-hold-label{color:#ffffff73;letter-spacing:3px;text-transform:uppercase;font-size:.58rem;font-weight:700}.vp-status-badge{letter-spacing:.08em;border-radius:50px;padding:4px 14px;font-size:.7rem;font-weight:800;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.vp-status-badge.hold{color:#00e676;background:#00e67633;border:1px solid #00e676}.vp-status-badge.pause{color:#ffffff73;background:#ffffff12;border:1px solid #ffffff2e}.vp-play-icon{color:#fffc;text-shadow:0 0 20px #000c;font-size:2.5rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vp-progress-bar{cursor:pointer;background:#ffffff1f;height:4px;position:relative}.vp-progress-fill{background:#f0b90b;height:100%;transition:width .1s linear}.vp-hold-range{background:#ff705580;height:100%;position:absolute;top:0}.vp-hold-marker{background:#ff7055;border-radius:1px;width:2px;height:8px;position:absolute;top:-2px}.vp-info-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.vp-info-item{text-align:center;background:#0a0d14e6;border:1px solid #f0b90b2e;border-radius:12px;padding:10px 8px}.vp-info-label{color:#ffffff59;margin-bottom:3px;font-size:.58rem;display:block}.vp-info-value{color:#fff;font-size:.92rem;font-weight:800}.vp-preview{background:#000;border-radius:16px;width:100%;display:block}.error-card{text-align:center;background:#f871710f;border:1px solid #f8717138;border-radius:20px;flex-direction:column;align-items:center;gap:14px;padding:40px 20px;display:flex}.error-icon{font-size:2.5rem}.error-msg{color:#fca5a5;max-width:300px;font-size:.86rem}.btn-primary{color:#0a0d14;cursor:pointer;background:linear-gradient(135deg,#f0b90b,#d4a009);border:none;border-radius:50px;padding:12px 28px;font-size:.9rem;font-weight:800}
