:root{--bg-main: #0b1218;--bg-panel: #111c24;--text-main: #d7e4ee;--text-muted: #9fb2c2;--accent: #26a7a7;--accent-strong: #1f8d8d;--border: #2f4a60;--shadow: 0 12px 26px rgba(0, 0, 0, .42);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:320px;color:var(--text-main);background:radial-gradient(circle at 14% -10%,#1d2c38 0%,transparent 46%),radial-gradient(circle at 85% -8%,#1a2834 0%,transparent 44%),var(--bg-main)}#app{min-height:100vh;padding:.65rem}.app-shell{position:relative;max-width:68rem;margin:0 auto;display:grid;gap:.75rem}.brand-watermark{position:absolute;top:.35rem;right:.45rem;width:1.15rem;height:1.15rem;opacity:.14;filter:grayscale(100%);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2}.panel{position:relative;background:var(--bg-panel);border:1px solid var(--border);border-radius:.55rem;box-shadow:var(--shadow);padding:.82rem;overflow:hidden}.panel:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#ffffff08,#fff0)}.status-panel{position:relative}.preview-panel{display:grid;gap:.5rem;padding:.58rem}.panel h2{margin:0 0 .52rem;font-size:1.04rem;letter-spacing:.02em;color:#b5d7eb}h1{margin:0;font-size:1.35rem;letter-spacing:.03em;color:#c8dff0;font-family:Consolas,Lucida Console,Courier New,monospace}.status-list{margin:0;padding:0;list-style:none;display:grid;gap:.6rem}.status-list li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;border-bottom:1px solid var(--border);padding-bottom:.5rem}.status-list li:last-child{border-bottom:0;padding-bottom:0}.status-list-control{justify-content:stretch}.status-list-toggle{margin-top:0;width:100%}.status-list span{color:var(--text-muted)}.status-list strong{text-align:right;font-family:Consolas,Lucida Console,Courier New,monospace;font-size:.74rem}.toggle-row{margin-top:.72rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:var(--text-muted)}.toggle-row input{inline-size:1.1rem;block-size:1.1rem}.settings-toggle{margin-top:0;width:100%;grid-column:1 / -1;justify-self:stretch}.settings-toggle.is-open{background:var(--accent);color:#fff}.settings-toggle.is-open:hover{background:var(--accent-strong)}.tracking-settings-popup{position:static;width:100%;max-width:22rem;border:1px solid var(--border);border-radius:.5rem;background:#0f1a22;box-shadow:0 18px 34px #03070c8c;padding:.62rem}.settings-toggle-row{margin-top:.45rem;font-size:.74rem}.settings-popup-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.settings-popup-header h3{margin:0;font-size:.88rem}.settings-close{border:1px solid var(--border);border-radius:.4rem;background:#1b2c39;color:var(--text-main);font-size:.72rem;font-weight:600;cursor:pointer;padding:.2rem .38rem}.settings-presets{margin-top:.45rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.settings-restore{margin-top:.45rem;width:100%;border:1px solid var(--border);border-radius:.4rem;background:#1b2c39;color:var(--text-main);cursor:pointer;font-size:.72rem;font-weight:600;padding:.3rem .44rem}.preset-btn{border:1px solid var(--border);border-radius:.4rem;background:#1b2c39;color:var(--text-main);cursor:pointer;font-size:.72rem;font-weight:600;padding:.28rem .32rem}.preset-btn.is-active{background:#26a7a73b;border-color:#57bcbc}.settings-grid{margin-top:.5rem;display:grid;gap:.34rem}.slider-row{display:flex;justify-content:space-between;align-items:baseline;gap:.52rem;color:var(--text-muted);font-size:.72rem}.slider-row strong{color:var(--text-main);font-size:.68rem}.settings-grid input[type=range]{width:100%;margin:0;height:.75rem}.btn{width:100%;border:1px solid var(--border);border-radius:.45rem;padding:.72rem .9rem;font-size:.95rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .12s ease,box-shadow .12s ease,border-color .12s ease}.btn-primary{background:var(--accent);border-color:#52c6c6;color:#07161b;box-shadow:0 0 0 1px #82dddd33 inset}.btn-primary:hover{background:var(--accent-strong);border-color:#4fb2b2}.btn-secondary{background:#223443;color:var(--text-main);border-color:#3a566d}.btn-secondary:hover{background:#2a4152;border-color:#486983}.btn:disabled{cursor:default;opacity:1}.btn-primary:disabled{background:#223443;color:var(--text-main);border-color:#3a566d}.btn-secondary:disabled{background:#2a4152;color:var(--text-main);border-color:#486983}.workspace,.workspace-pane{display:grid;gap:.7rem}.mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.mode-switch-btn{border:1px solid var(--border);border-radius:.42rem;background:#1b2c39;color:var(--text-main);cursor:pointer;font-size:.76rem;font-weight:700;letter-spacing:.01em;padding:.45rem .3rem}.mode-switch-btn.is-active{background:#26a7a73d;border-color:#57bcbc}.camera-window{position:relative;width:min(100%,22rem);max-height:58vh;aspect-ratio:5 / 6;margin:0 auto;border-radius:.55rem;border:1px solid var(--border);overflow:hidden;background:linear-gradient(145deg,#0d1720,#1a2a38);box-shadow:0 0 0 1px #82adcd1f inset,0 10px 24px #00000080}.camera-window:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;background:linear-gradient(180deg,#1b2f3d2e,#0000)}.camera-feed{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;background:#000}.tracking-overlay{position:absolute;inset:0;width:100%;height:100%;display:none;pointer-events:none}.gaze-overlay-layer{position:fixed;inset:0;pointer-events:none;z-index:2147483647;display:none}.gaze-overlay-layer:not([hidden]){display:block}.gaze-overlay-dot{position:fixed;top:0;left:0;width:14px;height:14px;border-radius:999px;background:#ff4e4eeb;border:1px solid rgba(255,255,255,.9);box-shadow:0 0 0 3px #ff4e4e38,0 0 12px #ff4e4e59;transform:translate(-50%,-50%);will-change:transform}.gaze-overlay-hud{position:fixed;top:max(.35rem,env(safe-area-inset-top));right:max(.35rem,env(safe-area-inset-right));padding:.2rem .35rem;border-radius:.35rem;font-family:Consolas,Lucida Console,Courier New,monospace;font-size:10px;line-height:1.2;color:#d7e4ee;background:#0a1017b8;border:1px solid rgba(138,167,189,.42);white-space:nowrap}.hold-indicator{position:absolute;left:.6rem;top:.6rem;padding:.3rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em;color:#0d1218;z-index:4;border:1px solid rgba(0,0,0,.18);box-shadow:0 4px 10px #0000003d}.tracking-missing-indicator{position:absolute;right:.6rem;top:.6rem;padding:.3rem .55rem;border-radius:999px;font-size:.74rem;font-weight:600;letter-spacing:.01em;color:#cfe0ed;background:#091118b8;border:1px solid rgba(93,119,137,.65);z-index:4}.hold-green{background:#5be592}.hold-yellow{background:#f5d45f}.hold-red{background:#ff6f6b}.camera-window.is-active .camera-feed,.camera-window.is-active .tracking-overlay{display:block}.camera-placeholder{position:absolute;inset:0;margin:0;display:grid;place-items:center;color:var(--text-muted);font-size:.94rem;text-align:center;padding:1rem}.camera-window.is-active .camera-placeholder{display:none}.canvas-placeholder{min-height:12rem;border-radius:.75rem;border:2px dashed #5a7388;display:grid;place-items:center;color:var(--text-muted);background:linear-gradient(135deg,#17222d,#141e27)}.canvas-placeholder p{margin:0}.workspace-meta p{margin:0 0 .85rem;color:var(--text-muted)}.blindspot-shell{display:grid;gap:.6rem}.blindspot-shell-stepflow{position:relative}.blindspot-toolbar{display:grid;gap:.45rem}.blindspot-threshold-control{display:flex;justify-content:space-between;align-items:baseline;gap:.52rem;color:var(--text-muted);font-size:.72rem}.blindspot-threshold-control strong{color:var(--text-main);font-size:.7rem;font-family:Consolas,Lucida Console,Courier New,monospace}.blindspot-toolbar input[type=range]{width:100%;margin:0;height:.75rem}.blindspot-gating-grid{display:grid;gap:.25rem}.blindspot-stop-control{display:flex;justify-content:space-between;align-items:center;gap:.52rem;color:var(--text-muted);font-size:.72rem}.blindspot-stop-control input{width:6rem;border:1px solid var(--border);border-radius:.35rem;background:#0f1a22;color:var(--text-main);padding:.26rem .4rem;font-family:Consolas,Lucida Console,Courier New,monospace;font-size:.72rem}.blindspot-eye-toggle,.blindspot-event-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}.blindspot-toggle-btn{border:1px solid var(--border);border-radius:.4rem;background:#1b2c39;color:var(--text-main);cursor:pointer;font-size:.74rem;font-weight:700;padding:.4rem .35rem}.blindspot-toggle-btn.is-active{background:#26a7a73d;border-color:#57bcbc}.blindspot-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}.blindspot-coverage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.2rem;align-items:end;min-height:3.1rem}.blindspot-coverage-bin{position:relative;display:grid;align-items:end;justify-items:center;height:3.1rem;border:1px solid rgba(82,109,128,.45);border-radius:.25rem;overflow:hidden;background:#0a1219b8}.blindspot-coverage-fill{width:100%;background:#4fb2b280}.blindspot-coverage-bin strong{position:absolute;bottom:.08rem;font-size:.56rem;color:#d6e5ef;font-family:Consolas,Lucida Console,Courier New,monospace}.blindspot-status-line{margin:0;border:1px solid rgba(82,109,128,.7);border-radius:.4rem;background:#0e1821cc;color:#c8dae8;font-family:Consolas,Lucida Console,Courier New,monospace;font-size:.69rem;line-height:1.35;padding:.36rem .45rem}.blindspot-gaze-debug{margin:0;font-family:Consolas,Lucida Console,Courier New,monospace;color:#aac2d3;font-size:.68rem}.blindspot-debug{border:1px solid rgba(82,109,128,.45);border-radius:.35rem;padding:.2rem .35rem;background:#0a121973}.blindspot-debug summary{cursor:pointer;color:#b9cfdd;font-size:.7rem}.blindspot-mapping-area{position:relative;width:100%;height:min(78vh,44rem);min-height:20rem;border-radius:.55rem;border:1px solid #3a566d;background:radial-gradient(circle at 50% 50%,#ffffff0a,#0a1219f0),linear-gradient(155deg,#0f1a23,#142332);overflow:hidden;touch-action:none}.blindspot-overlay-reopen{position:absolute;left:.5rem;top:.5rem;z-index:131;border:1px solid rgba(84,113,132,.82);border-radius:999px;background:#091118d9;color:#d3e2ec;font-size:.68rem;padding:.18rem .46rem;cursor:pointer}.blindspot-gaze-badge{position:absolute;right:.5rem;top:.5rem;border:1px solid rgba(92,116,133,.72);border-radius:999px;background:#091118d1;color:#c8d8e4;font-size:.66rem;padding:.2rem .45rem}.blindspot-fixation-overlay{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:.9rem;font-family:Consolas,Lucida Console,Courier New,monospace;font-size:.86rem;color:#e8f3fb;background:#050a0f9e;z-index:5}.blindspot-plot-layer{position:absolute;inset:0;pointer-events:none;z-index:2}.blindspot-region-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.blindspot-region-path{vector-effect:non-scaling-stroke}.blindspot-region-disappear{fill:#ff717124;stroke:#ff848494;stroke-width:1.8}.blindspot-region-appear{fill:#77d5ff17;stroke:#77d5ff80;stroke-width:1.4;stroke-dasharray:4 4}.blindspot-plot-dot{position:absolute;width:.42rem;height:.42rem;border-radius:999px;transform:translate(-50%,-50%);opacity:.78}.blindspot-plot-dot-disappear{background:#ff8a8a}.blindspot-plot-dot-appear{background:#77d5ff}.blindspot-fixation{position:absolute;width:3.25rem;height:3.25rem;transform:translate(-50%,-50%);z-index:3}.blindspot-fixation:before,.blindspot-fixation:after{content:"";position:absolute;left:50%;top:50%;background:#ecf7ffe6;transform:translate(-50%,-50%)}.blindspot-fixation:before{width:2px;height:100%}.blindspot-fixation:after{width:100%;height:2px}.blindspot-stimulus-dot{position:absolute;width:.56rem;height:.56rem;border-radius:999px;transform:translate(-50%,-50%);background:#f3f9ffc7;border:1px solid rgba(185,208,224,.48);box-shadow:0 0 0 2px #d2e8f624,0 0 10px #e0f0fa29;z-index:4}.blindspot-tap-feedback{position:absolute;left:50%;bottom:max(.8rem,env(safe-area-inset-bottom));transform:translate(-50%) translateY(8px);border:1px solid rgba(124,214,184,.72);border-radius:999px;background:#081410e6;color:#d8f4e8;font-family:Consolas,Lucida Console,Courier New,monospace;font-size:.72rem;padding:.24rem .6rem;opacity:0;transition:opacity .12s ease,transform .12s ease;z-index:125;pointer-events:none}.blindspot-tap-feedback.is-visible{opacity:1;transform:translate(-50%) translateY(0)}.blindspot-workflow-overlay{position:fixed;left:50%;bottom:max(.6rem,env(safe-area-inset-bottom));transform:translate(-50%);width:min(28rem,calc(100vw - .8rem));border:1px solid rgba(83,109,126,.9);border-radius:.68rem;background:#091018f2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:.48rem;display:grid;gap:.3rem;z-index:12}.blindspot-overlay-close{position:absolute;top:.42rem;right:.42rem;width:1.35rem;height:1.35rem;border:1px solid rgba(84,113,132,.82);border-radius:999px;background:#091118eb;color:#d3e2ec;font-size:.72rem;line-height:1;padding:0;cursor:pointer}.blindspot-shell.is-running .blindspot-mapping-area{position:fixed;inset:0;z-index:120;width:100vw;height:100vh;min-height:0;border:0;border-radius:0;background:#000}.blindspot-shell.is-running .blindspot-workflow-overlay{position:fixed;left:50%;bottom:max(.75rem,env(safe-area-inset-bottom));transform:translate(-50%);z-index:130;width:min(20rem,calc(100vw - 1rem));background:#080c10bd;border-color:#7891a3a8}.blindspot-shell.is-running .blindspot-step-label,.blindspot-shell.is-running .blindspot-step-title,.blindspot-shell.is-running .blindspot-live-status{display:none}.blindspot-shell.is-running .blindspot-step-body{font-size:.68rem;text-align:center}.blindspot-step-label{margin:0;font-size:.68rem;color:#9ab2c2;font-family:Consolas,Lucida Console,Courier New,monospace}.blindspot-step-title{margin:0;font-size:.88rem;color:#deebf4}.blindspot-step-body{margin:0;font-size:.72rem;color:#c1d2df;line-height:1.3}.blindspot-inline-groups{display:grid;gap:.35rem}.blindspot-view-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.blindspot-live-status{margin:0;border:1px solid rgba(82,109,128,.7);border-radius:.4rem;background:#0e1821cc;color:#c8dae8;font-family:Consolas,Lucida Console,Courier New,monospace;font-size:.62rem;line-height:1.35;padding:.25rem .36rem}.blindspot-primary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.28rem}.blindspot-step-btn{min-height:2.25rem;border-radius:.5rem;font-size:.72rem;touch-action:manipulation}.preview-controls{width:min(100%,22rem);margin:0 auto;display:grid;gap:.4rem}.preview-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.btn-compact{padding:.42rem .38rem;font-size:.74rem;border-radius:.4rem;line-height:1.1;font-family:Consolas,Lucida Console,Courier New,monospace}.calibration-overlay{position:fixed;inset:0;z-index:40;background:transparent;pointer-events:auto}.validation-overlay{position:fixed;inset:0;z-index:45;background:transparent;pointer-events:auto}.validation-chrome{position:absolute;left:50%;top:1rem;transform:translate(-50%);width:min(28rem,calc(100vw - 1.5rem));border:1px solid rgba(83,109,126,.9);border-radius:.75rem;background:#0e161feb;padding:.7rem;display:grid;gap:.35rem;pointer-events:auto}.validation-instructions,.validation-progress,.validation-status{margin:0}.validation-instructions{font-size:.82rem;color:#d7e5ef}.validation-progress{font-size:.8rem;font-weight:700}.validation-status{font-size:.74rem;color:#c1d2df}.validation-target{position:absolute;left:50%;top:50%;width:3.25rem;height:3.25rem;transform:translate(-50%,-50%);pointer-events:none}.validation-target:before,.validation-target:after{content:"";position:absolute;left:50%;top:50%;background:#d9ecfabf;transform:translate(-50%,-50%)}.validation-target:before{width:2px;height:100%}.validation-target:after{width:100%;height:2px}.validation-target-dot{position:absolute;left:50%;top:50%;width:.8rem;height:.8rem;border-radius:50%;transform:translate(-50%,-50%);background:#f1f6fb;box-shadow:0 0 0 3px #ffffff47}.validation-target.is-animating{animation:validation-target-move-in .38s ease-out both}.validation-results{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(28rem,calc(100vw - 1.5rem));border:1px solid rgba(83,109,126,.9);border-radius:.75rem;background:#0e161ff5;padding:.75rem;display:grid;gap:.5rem}.validation-results h3{margin:0;font-size:.92rem;color:#e0ecf5}.validation-results pre{margin:0;white-space:pre-wrap;font-family:Consolas,Lucida Console,Courier New,monospace;font-size:.76rem;line-height:1.4;color:#ccdde9}.validation-bottom-controls{position:absolute;left:50%;bottom:max(.75rem,env(safe-area-inset-bottom));transform:translate(-50%);width:min(28rem,calc(100vw - 1.5rem));display:grid;gap:.45rem;pointer-events:auto}.validation-lock-button{min-height:3.35rem;width:100%;border-radius:.7rem;touch-action:manipulation}.calibration-chrome{position:absolute;left:50%;top:1rem;transform:translate(-50%);width:min(28rem,calc(100vw - 1.5rem));border:1px solid rgba(83,109,126,.9);border-radius:.75rem;background:#0e161feb;padding:.7rem;display:grid;gap:.45rem;pointer-events:auto}.calibration-instructions{margin:0;font-size:.82rem;color:#d7e5ef}.calibration-progress-row{display:flex;align-items:center;gap:.45rem}.calibration-progress-text{margin:0;font-size:.8rem;font-weight:700}.calibration-spinner{width:.88rem;height:.88rem;border-radius:50%;border:2px solid rgba(124,184,201,.35);border-top-color:#9be9f4;animation:calibration-spin .7s linear infinite}.calibration-collecting-text{margin:0;font-size:.74rem;color:#c1d2df}.calibration-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.calibration-dot{position:absolute;left:50%;top:50%;width:3.25rem;height:3.25rem;margin:0;padding:0;border-radius:999px;transform:translate(-50%,-50%);background:#6eccdf3d;display:grid;place-items:center;pointer-events:none}.calibration-dot.is-animating{animation:calibration-dot-move-in .42s ease-out both}.calibration-dot-inner{width:.85rem;height:.85rem;border-radius:50%;background:#f1f6fb;box-shadow:0 0 0 3px #ffffff47}.calibration-bottom-controls{position:absolute;left:50%;bottom:max(.75rem,env(safe-area-inset-bottom));transform:translate(-50%);width:min(28rem,calc(100vw - 1.5rem));display:grid;gap:.45rem;pointer-events:auto}.calibration-coach{margin:0;text-align:center;font-size:.75rem;color:#d3e2ec;text-shadow:0 1px 2px rgba(0,0,0,.35)}.calibration-lock-button{min-height:3.35rem;width:100%;border-radius:.7rem;touch-action:manipulation}.calibration-onboarding{position:fixed;inset:0;z-index:50;background:#03090eb8;display:grid;place-items:center;padding:.75rem}.calibration-onboarding-card{width:min(24rem,calc(100vw - 1.5rem));border:1px solid rgba(83,109,126,.9);border-radius:.75rem;background:#0e161ff5;padding:.8rem;display:grid;gap:.52rem}.calibration-onboarding-step{margin:0;font-size:.74rem;color:#abc0d0}.calibration-onboarding-card h3{margin:0;font-size:1rem;color:#e0ecf5}.calibration-onboarding-body{margin:0;font-size:.82rem;color:#ccdde9}.calibration-onboarding-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem}.calibration-onboarding-skip{justify-self:end;border:0;background:transparent;color:#9eb8c8;font-size:.74rem;cursor:pointer;text-decoration:underline}@keyframes calibration-dot-move-in{0%{transform:translate(-50%,calc(-50% + 22px)) scale(1.3);opacity:.3}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes calibration-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes validation-target-move-in{0%{transform:translate(-50%,calc(-50% + 22px)) scale(1.3);opacity:.3}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.app-shell.is-calibrating{max-width:none;margin:0;gap:0}.app-shell.is-calibrating .hero,.app-shell.is-calibrating .brand-watermark,.app-shell.is-calibrating .status-panel,.app-shell.is-calibrating .workspace,.app-shell.is-calibrating .preview-controls,.app-shell.is-validating .brand-watermark,.app-shell.is-validating .hero,.app-shell.is-validating .status-panel,.app-shell.is-validating .workspace,.app-shell.is-validating .preview-controls{display:none}.app-shell.is-calibrating .preview-panel{position:fixed;inset:0;z-index:30;border:0;border-radius:0;box-shadow:none;padding:0;background:#000}.app-shell.is-calibrating .camera-window{width:100vw;height:100vh;max-height:none;aspect-ratio:auto;border:0;border-radius:0}.app-shell.is-validating .preview-panel{position:fixed;inset:0;z-index:35;border:0;border-radius:0;box-shadow:none;padding:0;background:#000}.app-shell.is-validating .camera-window{width:100vw;height:100vh;max-height:none;aspect-ratio:auto;border:0;border-radius:0}@media(min-width:42rem){#app{padding:.95rem}.workspace{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.mode-switch{max-width:30rem}.canvas-placeholder{min-height:17rem}.workspace-meta{grid-column:1 / -1}.tracking-settings-popup{max-width:20rem}}@media(min-width:60rem){#app{padding:1.2rem}.app-shell{gap:.95rem}.panel{padding:.98rem}}
