:root {
  --bg:#050b14; --panel:rgba(8,19,33,.78); --panel-solid:#0b1726;
  --border:rgba(255,255,255,.12); --text:#eef6ff; --muted:#94a8bd;
  --green:#55e6a5; --blue:#52a7ff; --warn:#ffbf69; --danger:#ff7285;
  --shadow:0 22px 70px rgba(0,0,0,.42);
  --safe-top:env(safe-area-inset-top,0px); --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px); --safe-left:env(safe-area-inset-left,0px);
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overscroll-behavior:none}
body{overflow:hidden}
button,input,select{font:inherit}
button{-webkit-tap-highlight-color:transparent}
.app-viewport{position:fixed;inset:0;background:#000;overflow:hidden;touch-action:manipulation}
.top-nav{position:fixed;top:0;left:0;right:0;z-index:30;height:calc(58px + var(--safe-top));padding:var(--safe-top) max(14px,var(--safe-right)) 0 max(14px,var(--safe-left));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:linear-gradient(180deg,rgba(3,8,15,.9),rgba(3,8,15,0));pointer-events:none}
.top-nav>*{pointer-events:auto}
.brand{display:flex;align-items:center;gap:9px;min-width:0}
.logo,.empty-icon{display:grid;place-items:center;background:var(--green);color:#04100a;font-weight:950}
.logo{width:32px;height:32px;border-radius:9px;flex:0 0 auto}
.brand-copy{display:flex;align-items:baseline;gap:6px;white-space:nowrap}
.brand-copy strong{font-size:15px}.brand-copy span{color:var(--blue);font-size:12px;font-weight:750}
.mode-selector{display:flex;padding:3px;border:1px solid var(--border);border-radius:999px;background:rgba(0,0,0,.46);backdrop-filter:blur(12px)}
.mode-btn{border:0;border-radius:999px;min-width:70px;padding:7px 14px;background:transparent;color:var(--muted);font-size:12px;font-weight:800;cursor:pointer}
.mode-btn.active{background:var(--blue);color:#fff}
.icon-btn{justify-self:end;width:40px;height:40px;border:0;border-radius:12px;display:grid;place-items:center;color:var(--text);background:rgba(0,0,0,.35);cursor:pointer}
.icon-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.close-btn{font-size:29px;line-height:1}
.stage-container{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,rgba(82,167,255,.08),transparent 42%),#000;overflow:hidden}
video,#overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
video{background:#000}#overlay{pointer-events:none}
.empty-state{position:absolute;z-index:2;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;padding:24px;text-align:center;background:radial-gradient(circle at center,rgba(17,34,53,.6),rgba(0,0,0,.96))}
.empty-state.hidden{display:none}.empty-icon{width:52px;height:52px;border-radius:15px;margin-bottom:3px}
.empty-state h1{margin:0;font-size:clamp(24px,6vw,38px)}.empty-state p{margin:0;color:var(--muted);font-size:14px}
.text-btn{margin-top:8px;padding:8px 10px;border:0;background:transparent;color:var(--blue);font-weight:800;cursor:pointer}
.drag-layer{position:absolute;inset:0;z-index:8;pointer-events:none}
.gate{position:absolute;top:0;bottom:0;width:4px;margin-left:-2px;cursor:ew-resize;pointer-events:auto;touch-action:none;user-select:none;z-index:12}
.gate::before{content:"";position:absolute;top:0;bottom:0;left:-16px;width:36px}
.gate[data-pos="2"]{left:2%}
.gate[data-pos="3"]{left:3%}
.gate[data-pos="4"]{left:4%}
.gate[data-pos="5"]{left:5%}
.gate[data-pos="6"]{left:6%}
.gate[data-pos="7"]{left:7%}
.gate[data-pos="8"]{left:8%}
.gate[data-pos="9"]{left:9%}
.gate[data-pos="10"]{left:10%}
.gate[data-pos="11"]{left:11%}
.gate[data-pos="12"]{left:12%}
.gate[data-pos="13"]{left:13%}
.gate[data-pos="14"]{left:14%}
.gate[data-pos="15"]{left:15%}
.gate[data-pos="16"]{left:16%}
.gate[data-pos="17"]{left:17%}
.gate[data-pos="18"]{left:18%}
.gate[data-pos="19"]{left:19%}
.gate[data-pos="20"]{left:20%}
.gate[data-pos="21"]{left:21%}
.gate[data-pos="22"]{left:22%}
.gate[data-pos="23"]{left:23%}
.gate[data-pos="24"]{left:24%}
.gate[data-pos="25"]{left:25%}
.gate[data-pos="26"]{left:26%}
.gate[data-pos="27"]{left:27%}
.gate[data-pos="28"]{left:28%}
.gate[data-pos="29"]{left:29%}
.gate[data-pos="30"]{left:30%}
.gate[data-pos="31"]{left:31%}
.gate[data-pos="32"]{left:32%}
.gate[data-pos="33"]{left:33%}
.gate[data-pos="34"]{left:34%}
.gate[data-pos="35"]{left:35%}
.gate[data-pos="36"]{left:36%}
.gate[data-pos="37"]{left:37%}
.gate[data-pos="38"]{left:38%}
.gate[data-pos="39"]{left:39%}
.gate[data-pos="40"]{left:40%}
.gate[data-pos="41"]{left:41%}
.gate[data-pos="42"]{left:42%}
.gate[data-pos="43"]{left:43%}
.gate[data-pos="44"]{left:44%}
.gate[data-pos="45"]{left:45%}
.gate[data-pos="46"]{left:46%}
.gate[data-pos="47"]{left:47%}
.gate[data-pos="48"]{left:48%}
.gate[data-pos="49"]{left:49%}
.gate[data-pos="50"]{left:50%}
.gate[data-pos="51"]{left:51%}
.gate[data-pos="52"]{left:52%}
.gate[data-pos="53"]{left:53%}
.gate[data-pos="54"]{left:54%}
.gate[data-pos="55"]{left:55%}
.gate[data-pos="56"]{left:56%}
.gate[data-pos="57"]{left:57%}
.gate[data-pos="58"]{left:58%}
.gate[data-pos="59"]{left:59%}
.gate[data-pos="60"]{left:60%}
.gate[data-pos="61"]{left:61%}
.gate[data-pos="62"]{left:62%}
.gate[data-pos="63"]{left:63%}
.gate[data-pos="64"]{left:64%}
.gate[data-pos="65"]{left:65%}
.gate[data-pos="66"]{left:66%}
.gate[data-pos="67"]{left:67%}
.gate[data-pos="68"]{left:68%}
.gate[data-pos="69"]{left:69%}
.gate[data-pos="70"]{left:70%}
.gate[data-pos="71"]{left:71%}
.gate[data-pos="72"]{left:72%}
.gate[data-pos="73"]{left:73%}
.gate[data-pos="74"]{left:74%}
.gate[data-pos="75"]{left:75%}
.gate[data-pos="76"]{left:76%}
.gate[data-pos="77"]{left:77%}
.gate[data-pos="78"]{left:78%}
.gate[data-pos="79"]{left:79%}
.gate[data-pos="80"]{left:80%}
.gate[data-pos="81"]{left:81%}
.gate[data-pos="82"]{left:82%}
.gate[data-pos="83"]{left:83%}
.gate[data-pos="84"]{left:84%}
.gate[data-pos="85"]{left:85%}
.gate[data-pos="86"]{left:86%}
.gate[data-pos="87"]{left:87%}
.gate[data-pos="88"]{left:88%}
.gate[data-pos="89"]{left:89%}
.gate[data-pos="90"]{left:90%}
.gate[data-pos="91"]{left:91%}
.gate[data-pos="92"]{left:92%}
.gate[data-pos="93"]{left:93%}
.gate[data-pos="94"]{left:94%}
.gate[data-pos="95"]{left:95%}
.gate[data-pos="96"]{left:96%}
.gate[data-pos="97"]{left:97%}
.gate[data-pos="98"]{left:98%}
.gate-start{background:var(--blue);box-shadow:0 0 18px rgba(82,167,255,.75)}.gate-finish{background:var(--green);box-shadow:0 0 18px rgba(85,230,165,.75)}
.gate span{position:absolute;top:calc(66px + var(--safe-top));left:8px;padding:5px 8px;border:1px solid var(--border);border-radius:7px;background:rgba(0,0,0,.68);color:#fff;font-size:9px;font-weight:900;letter-spacing:.08em}
.gate-finish span{left:auto;right:8px}
.hud-layer{position:absolute;z-index:14;top:calc(66px + var(--safe-top));left:max(14px,var(--safe-left));right:max(14px,var(--safe-right));display:flex;justify-content:space-between;align-items:flex-start;gap:10px;pointer-events:none}
.status-badge,.timer-badge,.playback-controls{border:1px solid var(--border);background:var(--panel);backdrop-filter:blur(14px);box-shadow:0 10px 26px rgba(0,0,0,.24)}
.status-badge{display:flex;align-items:center;gap:8px;min-height:38px;max-width:min(62vw,340px);padding:8px 11px;border-radius:11px;font-size:12px;font-weight:750}
.status-badge span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#708092}.status-dot.good{background:var(--green);box-shadow:0 0 10px rgba(85,230,165,.6)}.status-dot.warn{background:var(--warn)}.status-dot.bad{background:var(--danger)}
.timer-badge{display:flex;align-items:baseline;gap:3px;padding:8px 11px;border-radius:11px}.timer-badge strong{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:clamp(23px,5vw,33px);line-height:1}.timer-badge span{color:var(--muted);font-size:11px;font-weight:750}
.drop-hint{position:absolute;z-index:20;inset:12px;display:none;place-items:center;border:2px dashed rgba(82,167,255,.75);border-radius:18px;background:rgba(5,11,20,.86);color:#fff;font-size:19px;font-weight:850;pointer-events:none}.app-viewport.dragging .drop-hint{display:grid}
.playback-controls{position:absolute;z-index:15;left:50%;bottom:calc(86px + var(--safe-bottom));transform:translateX(-50%);width:min(760px,calc(100vw - 24px));min-height:50px;display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:16px}.playback-controls[hidden]{display:none!important}
.round-btn{width:34px;height:34px;flex:0 0 auto;border:1px solid var(--border);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;cursor:pointer}
.scrub-wrap{min-width:0;flex:1 1 auto}.scrub-wrap input,.speed-control input,.result-playback input{width:100%;accent-color:var(--green)}
.time-row{display:flex;justify-content:space-between;margin-top:2px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}
.speed-control{width:135px;flex:0 0 auto;display:grid;grid-template-columns:40px 1fr;align-items:center;gap:7px;color:var(--muted);font-size:10px;font-weight:800}
.action-bar{position:fixed;z-index:22;left:50%;bottom:calc(18px + var(--safe-bottom));transform:translateX(-50%);display:flex;gap:9px}
.btn{min-height:44px;border:0;border-radius:12px;padding:11px 20px;font-weight:850;cursor:pointer}.btn-primary{background:var(--green);color:#04100a}.btn-secondary{border:1px solid var(--border);background:var(--panel);color:var(--text);backdrop-filter:blur(12px)}.btn:disabled{opacity:.42;cursor:not-allowed}
.drawer{position:fixed;z-index:50;top:0;right:0;bottom:0;width:min(340px,90vw);padding:calc(18px + var(--safe-top)) max(18px,var(--safe-right)) calc(18px + var(--safe-bottom)) 18px;border-left:1px solid var(--border);background:rgba(6,15,27,.97);backdrop-filter:blur(18px);transform:translateX(105%);transition:transform 180ms ease;box-shadow:var(--shadow)}
.drawer.open{transform:translateX(0)}.drawer-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:22px}.eyebrow{display:block;margin-bottom:4px;color:var(--blue);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.drawer h2,.modal h2{margin:0;font-size:21px}
.drawer-content{overflow:auto;max-height:calc(100vh - 92px - var(--safe-top) - var(--safe-bottom));padding-right:2px}
.form-group{display:grid;gap:7px;margin-bottom:18px}.form-group>label{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.form-group small,.toggle-row small{color:var(--muted);font-size:10px;line-height:1.4}
.form-group input,.form-group select{width:100%;min-height:43px;border:1px solid var(--border);border-radius:10px;outline:0;padding:9px 11px;background:#07111e;color:var(--text)}.form-group input:focus,.form-group select:focus{border-color:rgba(82,167,255,.75)}
.input-unit-group{display:grid;grid-template-columns:1fr 78px;gap:8px}.unit-static{min-height:43px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.04);color:var(--muted);font-weight:800}
.toggle-stack{margin-top:2px;border-top:1px solid var(--border)}.toggle-row{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);cursor:pointer}.toggle-row span{display:grid;gap:2px}.toggle-row strong{font-size:12px}.toggle-row input{width:19px;height:19px;accent-color:var(--green)}
.drawer-note,.method-note{color:var(--muted);font-size:10px;line-height:1.55}.drawer-note{margin-top:18px;padding:12px;border:1px solid var(--border);border-radius:11px;background:rgba(255,255,255,.025)}
.scrim{position:fixed;z-index:45;inset:0;background:rgba(0,0,0,.34)}
.modal{position:fixed;z-index:60;inset:0;display:none;place-items:center;padding:max(12px,var(--safe-top)) max(12px,var(--safe-right)) max(12px,var(--safe-bottom)) max(12px,var(--safe-left));background:rgba(0,0,0,.76);backdrop-filter:blur(10px)}.modal.open{display:grid}
.modal-card{width:min(860px,100%);max-height:min(92vh,820px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:18px;background:var(--panel-solid);box-shadow:var(--shadow)}
.modal-header,.modal-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px}.modal-header{border-bottom:1px solid var(--border)}.modal-footer{justify-content:flex-end;border-top:1px solid var(--border)}
.modal-body{min-height:0;overflow-y:auto;padding:16px 18px 18px}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.metric-box,.chart-card,.splits-card{border:1px solid var(--border);background:rgba(255,255,255,.025)}.metric-box{min-width:0;padding:11px;border-radius:11px}.metric-box span{display:block;margin-bottom:4px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.metric-box strong{display:block;overflow:hidden;color:var(--green);font-size:clamp(14px,2.2vw,20px);text-overflow:ellipsis;white-space:nowrap}
.chart-card{margin-top:12px;padding:12px;border-radius:12px}.chart-title-row,.table-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.chart-title-row>div{display:grid;gap:2px}.chart-title-row strong,.table-title strong{font-size:12px}.chart-title-row small,.chart-title-row>span,.table-title span{color:var(--muted);font-size:9px}
.chart-container{position:relative;width:100%;height:220px;margin-top:9px}.result-playback{display:flex;align-items:center;gap:10px;margin-top:10px}.result-playback[hidden]{display:none!important}
.splits-card{margin-top:12px;padding:12px;border-radius:12px}.table-scroll{overflow-x:auto;margin-top:6px}.splits-table{width:100%;min-width:440px;border-collapse:collapse;font-size:11px}.splits-table th,.splits-table td{padding:8px 7px;border-bottom:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums}.splits-table th:first-child,.splits-table td:first-child{text-align:left}.splits-table th{color:var(--muted);font-size:9px;text-transform:uppercase}.method-note{margin:12px 2px 0}
.toast{position:fixed;z-index:100;left:50%;bottom:calc(78px + var(--safe-bottom));max-width:calc(100vw - 32px);padding:9px 13px;border:1px solid var(--border);border-radius:999px;background:rgba(7,17,30,.96);box-shadow:var(--shadow);color:#fff;font-size:11px;font-weight:750;opacity:0;pointer-events:none;transform:translate(-50%,14px);transition:160ms ease}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:720px){.top-nav{grid-template-columns:auto 1fr auto;gap:8px}.mode-selector{justify-self:center}.mode-btn{min-width:58px;padding-inline:10px}.brand-copy span{display:none}.hud-layer,.gate span{top:calc(61px + var(--safe-top))}.playback-controls{bottom:calc(82px + var(--safe-bottom));gap:8px;padding:7px 9px}.speed-control{width:95px;grid-template-columns:36px 1fr}.action-bar{bottom:calc(14px + var(--safe-bottom))}.btn{min-height:42px;padding:10px 17px}.metrics-grid{grid-template-columns:1fr 1fr}.chart-container{height:190px}}
@media(max-width:480px){.brand-copy strong{font-size:13px}.status-badge{max-width:55vw;font-size:10px}.timer-badge{padding:7px 9px}.playback-controls{width:calc(100vw - 18px)}.speed-control input{display:none}.speed-control{width:42px;grid-template-columns:1fr}.action-bar{width:calc(100vw - 24px)}.action-bar .btn{flex:1}.modal{padding:7px}.modal-card{max-height:96vh;border-radius:14px}.modal-body,.modal-header,.modal-footer{padding:12px}.chart-container{height:175px}}
@media(orientation:landscape) and (max-height:520px){.top-nav{height:calc(48px + var(--safe-top))}.hud-layer,.gate span{top:calc(50px + var(--safe-top))}.playback-controls{left:12px;right:12px;bottom:calc(62px + var(--safe-bottom));width:auto;transform:none}.action-bar{bottom:calc(8px + var(--safe-bottom))}.btn{min-height:38px;padding:8px 16px}}
@media(prefers-reduced-motion:reduce){.drawer,.toast{transition:none}}
