:root{--pf-bg: #101d56;--pf-surface: #152564;--pf-surface-2: #1d2f74;--pf-text: #f2f5ff;--pf-muted: #c6d0ef;--pf-primary: #9fb8f5;--pf-primary-press: #88a7ee;--pf-primary-text: #1e2c63;--pf-border: #8ea3d9;--pf-outline: #dbe5ff;--pf-shadow: 0 10px 24px rgba(2, 8, 30, .45);--pf-radius-lg: 18px;--pf-radius-md: 12px}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:Avenir Next,Avenir,Segoe UI,sans-serif;color:var(--pf-text);background:radial-gradient(1000px 500px at 50% -20%,#2a3f95 0%,rgba(42,63,149,.08) 60%,transparent 100%),var(--pf-bg);overflow-x:hidden}#app{width:100%;min-height:100dvh;overflow-x:hidden}.screen{min-height:100dvh;width:100%;padding:20px 16px 32px;display:grid;align-content:start;justify-content:center}.screen-welcome{place-items:center}.welcome-card,.card{width:min(100%,460px);max-width:100%;background:linear-gradient(180deg,var(--pf-surface) 0%,#12215d 100%);border:1px solid var(--pf-border);border-radius:var(--pf-radius-lg);box-shadow:var(--pf-shadow);padding:20px}.card-results{width:min(100%,560px);margin-left:auto;margin-right:auto}.screen-results{display:block}.welcome-title,.card-title{margin:0;font-size:clamp(1.5rem,5vw,2rem);line-height:1.2;color:var(--pf-text);letter-spacing:.01em}.brand-header{margin:0 0 14px;display:flex;align-items:center;justify-content:center}.brand-header-compact{justify-content:center;margin-bottom:10px}.brand-logo{width:min(100%,340px);height:auto;display:block}.brand-header-compact .brand-logo{width:min(100%,255px)}.brand-fallback{display:none;align-items:baseline;gap:6px;font-family:Avenir Next,Avenir,Segoe UI,sans-serif}.brand-fallback-main{font-size:2rem;font-weight:800;color:#f2f5ff}.brand-fallback-light{font-size:1.7rem;font-weight:700;font-style:italic;color:#c8ee9f}.welcome-copy,.card-copy,.meta{margin:12px 0 0;color:var(--pf-muted);line-height:1.4}.welcome-actions,.row-actions{margin-top:18px;display:grid;gap:10px}.pf-button{border:1px solid rgba(255,255,255,.06);border-radius:var(--pf-radius-md);background:var(--pf-primary);color:var(--pf-primary-text);padding:12px 14px;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 6px 14px #040e3059;transition:transform .08s ease,box-shadow .12s ease,opacity .12s ease}.pf-button:hover{box-shadow:0 8px 16px #040e3073}.pf-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.pf-button:active{background:var(--pf-primary-press);transform:translateY(1px)}.pf-button-secondary{background:transparent;color:var(--pf-text);border-color:var(--pf-outline);box-shadow:none}.file-input{margin-top:14px;width:100%;color:var(--pf-muted)}input[type=file]::file-selector-button{border:1px solid var(--pf-outline);border-radius:10px;padding:8px 12px;margin-right:10px;background:transparent;color:var(--pf-text);cursor:pointer}@media(min-width:768px){.screen{padding:36px 24px}.welcome-card,.card{width:min(100%,560px);padding:28px}.welcome-actions,.row-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.row-actions>*{min-width:0}.guidance-list{margin:12px 0;padding-left:18px;color:var(--pf-muted);line-height:1.45}.guidance-list li+li{margin-top:6px}.trim-video{width:100%;margin-top:14px;border-radius:var(--pf-radius-md);background:#000;border:1px solid rgba(255,255,255,.12)}.trim-control{margin-top:14px;display:grid;gap:8px}.trim-control input[type=range]{width:100%}.trim-number{width:100%;padding:10px;border-radius:10px;border:1px solid var(--pf-outline);background:#0e1c4ebf;color:var(--pf-text)}.spinner-wrap{margin-top:14px;display:flex;align-items:center;gap:10px}.spinner{width:18px;height:18px;border:2px solid rgba(230,236,255,.35);border-top-color:var(--pf-primary);border-radius:50%;animation:pf-spin 1s linear infinite}@keyframes pf-spin{to{transform:rotate(360deg)}}.status-line{margin:0;color:var(--pf-muted);line-height:1.4}.state-empty,.state-loading,.state-error{margin-top:12px;border-radius:var(--pf-radius-md);padding:10px 12px;border:1px solid rgba(230,236,255,.28);line-height:1.4}.state-empty{background:#98ade526;color:var(--pf-muted)}.state-loading{background:#a0b7f42e;color:#dce6ff}.state-error{background:#ff767629;color:#ffd8d8;border-color:#ffb0b073}.results-json{margin-top:14px;background:#0a143ad9;border:1px solid rgba(230,236,255,.2);border-radius:var(--pf-radius-md);padding:12px;max-height:320px;overflow:auto;white-space:pre-wrap;color:#cfdbff}.results-shots{margin-top:14px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.results-shot{width:100%;display:block;border-radius:10px}.engine-host{position:fixed;left:-99999px;top:-99999px;width:1px;height:1px;overflow:hidden;pointer-events:none}.engine-host-visible{position:static;left:auto;top:auto;width:100%;max-width:100%;height:auto;overflow:visible;pointer-events:auto}.engine-host-visible .engine-bar,.engine-host-visible #out,.engine-host-visible #gallery{display:none!important}.engine-host-visible #replay,.engine-host-visible #export,.engine-host-visible #run,.engine-host-visible #lock,.engine-host-visible #autoRun,.engine-host-visible #autoLock,.engine-host-visible #autoLockYolo,.engine-host-visible #autoLockBallYolo,.engine-host-visible #labelMode,.engine-host-visible #saveLabel,.engine-host-visible #exportDataset,.engine-host-visible #status,.engine-host-visible details,.engine-host-visible summary{display:none!important}.engine-host-visible button,.engine-host-visible input,.engine-host-visible select,.engine-host-visible label{display:none!important}.engine-host-visible .engine-main-row{display:block!important;width:100%!important;max-width:100%!important;overflow:hidden}.engine-host-visible .engine-main-row>div:nth-child(2){position:relative;width:100%;max-width:100%}.engine-host-visible .engine-main-row>:not(:nth-child(2)){display:none!important}.engine-host-visible .engine-main-row>div{max-width:100%!important}.engine-host-visible #video{width:100%!important;max-width:100%!important;height:auto;display:block;background:#000;object-fit:contain}.engine-host-visible #overlay{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.replay-wrap{margin-top:14px}.replay-canvas-wrap{position:relative;width:100%;max-width:100%;aspect-ratio:16 / 9;border-radius:var(--pf-radius-md);overflow:hidden;background:#000}.replay-canvas-wrap>div{position:relative;width:100%;height:100%}.replay-canvas-wrap #video{position:relative;z-index:1;width:100%;height:100%;display:block;background:#000;object-fit:contain}.replay-canvas-wrap #overlay{display:none;position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}.replay-canvas-wrap.show-overlay #overlay{display:block}.results-replay-video{width:100%;display:block;background:#000}.results-replay-overlay{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.snapshots-header{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:10px}.snapshot-controls{margin-top:4px;display:flex;justify-content:flex-end;gap:8px}.snapshot-scroll-btn{min-width:44px;padding:10px 12px}.snapshot-carousel{margin-top:6px;display:flex;align-items:flex-start;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px}.snapshot-item{min-width:190px;max-width:220px;flex:0 0 auto;scroll-snap-align:start;display:grid;gap:6px;align-content:start}.snapshot-item .pf-button{justify-self:start;min-height:44px}.snapshot-image{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block;border-radius:10px}.metrics-grid{margin-top:18px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{border:1px solid rgba(230,236,255,.18);border-radius:var(--pf-radius-md);background:linear-gradient(180deg,#3655b9b3,#233882b8);padding:12px}.metric-title{margin:0;font-size:1rem}.metric-value{margin-top:6px;font-size:1.25rem;font-weight:700;color:#fff}.metric-actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.metric-actions .pf-button{min-width:0}.confirm-modal{position:fixed;inset:0;background:#040a24a8;display:none;place-items:center;padding:16px;z-index:30}.confirm-modal.is-open{display:grid}.confirm-card{width:min(100%,420px);background:linear-gradient(180deg,#1a2b70,#14235f);border-radius:var(--pf-radius-md);border:1px solid rgba(230,236,255,.25);padding:16px}.record-card{width:min(100%,100%)}.record-preview-wrap{margin-top:14px;position:relative;width:100%;min-height:48dvh;border-radius:var(--pf-radius-md);overflow:hidden;background:#000}.record-preview{width:100%;height:100%;min-height:48dvh;object-fit:cover;display:block;background:#000}.record-guidance{position:absolute;left:8px;right:8px;bottom:8px;background:#0b1436b8;color:#f2f5ff;border-radius:8px;padding:8px 10px;font-size:.9rem;text-align:center}.record-rotate{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:700;background:#0000007a}.debug-details{margin-top:14px;background:#111e4fa6;border:1px solid rgba(230,236,255,.2);border-radius:var(--pf-radius-md);padding:8px 10px}.debug-details summary{font-weight:700;cursor:pointer}.timing-breakdown{margin-top:12px;padding:12px;border-radius:12px;border:1px solid var(--pf-outline);background:#0a143e61}.timing-title{margin:0;color:var(--pf-text);font-size:.95rem}.timing-total,.timing-empty{margin:8px 0 0;color:var(--pf-muted);font-size:.9rem;line-height:1.35}.timing-list{margin-top:8px;display:grid;gap:6px}.timing-item{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.timing-phase{color:var(--pf-text);font-size:.9rem}.timing-value{color:var(--pf-muted);font-size:.88rem;white-space:nowrap}.photo-lightbox{position:fixed;inset:0;background:#000000c7;display:none;place-items:center;z-index:50;padding:12px}.photo-lightbox.is-open{display:grid}.photo-lightbox-card{width:min(100%,920px);max-height:100%;background:#0f1b55;border-radius:12px;padding:10px;display:grid;gap:10px}label,summary,h3,h4,p,li,span,small{color:inherit}select,input[type=number],input[type=text],input[type=date]{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--pf-outline);background:#0e1c4ebf;color:var(--pf-text)}input[type=range]{accent-color:var(--pf-primary)}.photo-lightbox-image{width:100%;max-height:75dvh;object-fit:contain;display:block;border-radius:8px}.photo-lightbox-image.is-rotated{transform:rotate(90deg);max-height:65dvh}
