:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#202938;background:#f6f8fb;font-synthesis:none;text-rendering:optimizeLegibility;font-size:14px}*{box-sizing:border-box}body{margin:0;min-width:360px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.app{--bg:#f6f8fb;--panel:#fff;--text:#202938;--muted:#718096;--line:#e7ebf1;--soft:#f6f8fb;display:flex;min-height:100vh;background:var(--bg);color:var(--text)}.app.dark{--bg:#111827;--panel:#1c2534;--text:#edf2f7;--muted:#a0aec0;--line:#303b4b;--soft:#242f40}.sidebar{width:246px;flex:0 0 246px;background:#101827;color:#d7deea;display:flex;flex-direction:column;padding:24px 14px 17px;min-height:100vh}.brand{display:flex;align-items:center;gap:11px;padding:0 11px;margin:0 0 30px}.brand-mark{width:35px;height:35px;border-radius:10px;background:#7061e8;color:#fff;display:grid;place-items:center;font-weight:800;font-size:21px}.brand b{display:block;color:#fff;font-weight:700;font-size:16px}.brand small{display:block;color:#8c9ab0;font-size:8px;letter-spacing:1.4px;margin-top:2px}.workspace{display:flex;align-items:center;gap:9px;background:#1b2637;border:1px solid #29364a;border-radius:9px;padding:10px;margin-bottom:27px}.avatar{width:30px;height:30px;border-radius:50%;background:#dbe4fb;color:#5347aa;font-weight:700;font-size:10px;display:grid;place-items:center;flex:none}.workspace b{display:block;color:#f3f5fa;font-size:11px}.workspace small{display:block;color:#91a0b4;font-size:9px;margin-top:3px}.chevron{margin-left:auto;color:#8795a9}.nav-label{font-size:9px;letter-spacing:1.2px;color:#718198;padding:0 12px;margin:0 0 9px}.sidebar nav{display:grid;gap:4px}.nav-item{height:40px;border:0;border-radius:7px;text-align:left;padding:0 12px;background:transparent;color:#aeb9c9;font-size:12px;display:flex;gap:12px;align-items:center}.nav-item:hover{background:#1c2839;color:#fff}.nav-item.selected{color:#fff;background:#2c3150;font-weight:600}.nav-icon{font-size:17px;width:17px;text-align:center;color:#a5b2c7}.selected .nav-icon{color:#a99dff}.live-dot,.secure i,.tracking-state i,.live-status i{width:7px;height:7px;border-radius:50%;background:#38c98b;display:inline-block}.live-dot{margin-left:auto}.sidebar-bottom{margin-top:auto}.privacy{display:flex;gap:9px;background:#172437;padding:12px 10px;border-radius:8px;color:#a9b5c6;margin-bottom:12px}.privacy>span{font-size:16px;color:#63d5aa}.privacy b{color:#dce4ed;font-size:10px}.privacy p{font-size:9px;line-height:1.5;margin:4px 0 0;color:#91a0b4}.theme-button{background:none;border:0;color:#aab6c7;font-size:11px;padding:9px 10px}.version{display:block;color:#64748b;font-size:8px;letter-spacing:.8px;padding:14px 10px 0}.main{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:61px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--panel);padding:0 38px}.breadcrumbs{font-size:11px;color:var(--muted)}.breadcrumbs span{padding:0 9px;color:#c0c7d1}.breadcrumbs b{font-weight:600;color:var(--text)}.top-actions{display:flex;align-items:center;gap:17px}.secure{color:var(--muted);font-size:10px;display:flex;align-items:center;gap:7px}.secure i{width:6px;height:6px}.icon-button{width:27px;height:27px;background:transparent;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:13px}.user-avatar{width:27px;height:27px}.content{max-width:1350px;width:100%;margin:0 auto;padding:35px 40px 24px;flex:1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.eyebrow{color:#8d98a9;font-size:9px;font-weight:700;letter-spacing:1.25px;margin-bottom:8px}h1,h2,h3,p{margin-top:0}h1{font-weight:700;font-size:26px;letter-spacing:-.7px;margin-bottom:5px}.page-heading p,.reader-head p{font-size:12px;color:var(--muted);margin-bottom:0}.primary,.outline,.danger{border-radius:6px;padding:10px 15px;font-weight:600;font-size:11px}.primary{background:#6357d9;color:#fff;border:1px solid #6357d9;box-shadow:0 2px 5px #5145bd24}.primary:hover{background:#5145c6}.primary span{padding-left:12px}.outline{background:var(--panel);color:var(--text);border:1px solid var(--line)}.outline:hover{border-color:#a7a0ef}.danger{background:#fff4f3;color:#c9453c;border:1px solid #f4d2ce}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:21px}.metric-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:17px;min-height:128px;position:relative}.metric-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:7px;font-size:16px;margin-bottom:13px}.metric-icon.violet{background:#f0edff;color:#685be0}.metric-icon.blue{background:#eaf4ff;color:#4284dc}.metric-icon.green{background:#e7f8f0;color:#32a974}.metric-icon.orange{background:#fff2e7;color:#df8d3e}.metric-label{font-size:10px;color:var(--muted);margin-bottom:6px}.metric-card strong{font-weight:700;font-size:22px;letter-spacing:-.5px}.metric-card small{display:block;font-size:9px;color:#9aa4b2;margin-top:3px}.two-columns{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-bottom:17px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:19px 20px;margin-bottom:17px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:13px}.panel h2,.panel-heading h2{font-weight:700;font-size:14px;margin:0 0 5px}.panel-heading p{font-size:10px;color:var(--muted);margin:0}.text-button{background:none;border:0;color:#6357d9;font-size:10px;font-weight:600;padding:4px}.session-list{display:grid}.session-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.session-file{width:32px;height:34px;border-radius:5px;background:#f2efff;color:#7467d7;display:grid;place-items:center}.session-info{min-width:0;flex:1}.session-info b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-info small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.session-state{border-radius:10px;background:#e9f8f0;color:#27885c;padding:4px 8px;font-size:8px}.session-state.paused{background:#fff4e5;color:#a36b18}.session-state.recording{background:#fff0ef;color:#bd5046}.session-duration{font-size:10px;min-width:48px;text-align:right;color:var(--muted)}.calibration-card{padding-bottom:16px}.sparkle{color:#7265dc;font-size:21px}.check-list{display:grid;gap:14px;margin:18px 0}.check-list>div{display:flex;align-items:center;gap:10px}.check{width:19px;height:19px;border-radius:50%;background:#e4f7ee;color:#2aa36b;display:grid;place-items:center;font-size:10px;flex:none}.pending{width:19px;height:19px;border:1px solid #d6dce5;border-radius:50%;color:#8792a2;display:grid;place-items:center;font-size:9px;flex:none}.check-list b{font-size:10px;display:block}.check-list small{font-size:9px;color:var(--muted);display:block;margin-top:3px}.full{width:100%;display:flex;justify-content:space-between}.note,.privacy-banner{display:flex;align-items:flex-start;gap:11px;border:1px solid #e6e1ff;background:#f7f6ff;border-radius:7px;padding:12px 14px;color:#655bd1;margin:14px 0}.note>span{font-size:16px}.note b{font-size:10px}.note p{font-size:9px;color:#777c91;margin:4px 0 0;line-height:1.5}.note button{margin-left:auto;white-space:nowrap;background:none;border:0;color:#6357d9;font-size:9px;font-weight:600}.empty{text-align:center;padding:39px 14px;color:var(--muted)}.empty-mark{width:39px;height:39px;border-radius:50%;background:var(--soft);display:grid;place-items:center;margin:0 auto 12px;font-size:20px;color:#8b84d9}.empty h3{color:var(--text);font-size:12px;margin-bottom:5px}.empty p{max-width:360px;margin:0 auto 10px;font-size:10px;line-height:1.6}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.privacy-banner{align-items:center;border-color:#d9f0e5;background:#f0faf5;color:#3c9c70;font-size:10px;padding:11px 14px}.privacy-banner span{color:#668574}.doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.doc-card{position:relative;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:16px}.pdf-icon{height:39px;width:34px;border-radius:4px;background:#fff0ef;color:#d45b53;display:grid;place-items:center;font-size:9px;font-weight:700;margin-bottom:14px}.doc-card h3{font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:5px}.doc-card p{font-size:9px;color:var(--muted);margin:0 0 16px}.doc-footer{border-top:1px solid var(--line);padding-top:10px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:var(--muted)}.doc-footer button{border:0;background:none;color:#6559d7;font-size:9px;font-weight:600}.delete-doc{position:absolute;right:12px;top:12px;border:0;background:none;color:#a3aab6;font-size:16px}.hidden{display:none}.reader-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.reader-head h1{font-size:19px}.reader-actions{display:flex;gap:8px;align-items:center}.reader-actions select,.filter-select,.reader-doc-select select{background:var(--panel);border:1px solid var(--line);border-radius:5px;color:var(--text);padding:9px 10px;font-size:10px}.prompt-input{width:100%;padding:10px;border:1px solid var(--line);border-radius:5px;margin-bottom:10px;background:var(--panel);color:var(--text)}.reader-toolbar{height:44px;background:var(--panel);border:1px solid var(--line);border-radius:6px 6px 0 0;display:flex;justify-content:space-between;align-items:center;padding:0 12px;font-size:10px;color:var(--muted)}.reader-doc-select,.reader-toolbar-right{display:flex;align-items:center;gap:8px}.reader-doc-select select{border:0;padding:4px 5px;max-width:210px}.divider{height:19px;border-left:1px solid var(--line);margin:0 5px}.page-step{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:4px;width:22px;height:22px}.reader-doc-select input{width:39px;padding:4px;border:1px solid var(--line);border-radius:4px;text-align:center;color:var(--text);background:var(--panel)}.tracking-state{display:flex;align-items:center;gap:6px;font-size:9px}.tracking-state i{background:#adb5c2}.tracking-state.on i{background:#30bc7f}.reader-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;min-height:550px;border:1px solid var(--line);border-top:0;background:var(--panel)}.pdf-stage{position:relative;overflow:auto;background:#edf0f5;display:flex;justify-content:center;align-items:flex-start;padding:28px;min-height:550px}.pdf-canvas{max-width:100%;height:auto;box-shadow:0 4px 16px #27334a26;background:#fff}.pdf-empty{margin:auto;text-align:center;max-width:340px;color:var(--muted)}.pdf-icon.big{margin:0 auto 12px;width:45px;height:52px;font-size:11px}.pdf-empty h2{font-weight:700;font-size:15px;color:var(--text);margin-bottom:6px}.pdf-empty p{font-size:10px;line-height:1.5}.gaze-dot{position:fixed;z-index:4;width:12px;height:12px;border:2px solid #e74c3c;border-radius:50%;background:#e74c3c36;transform:translate(-50%,-50%);pointer-events:none}.analysis-side{padding:17px;border-left:1px solid var(--line)}.analysis-side h3{font-weight:700;font-size:12px;margin-bottom:15px}.live-status{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted);padding-bottom:15px;border-bottom:1px solid var(--line)}.live-status i{background:#aeb6c1}.live-status i.on{background:#34bb81}.side-stat{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:9px;color:var(--muted)}.side-stat b{font-size:10px;color:var(--text)}.side-callout{background:#fff8ed;color:#9d7638;font-size:9px;line-height:1.6;border-radius:5px;padding:10px;margin:15px 0}.footer{padding:15px 40px;border-top:1px solid var(--line);color:#929cab;font-size:9px}.footer span{padding:0 5px}.filter-select{min-width:180px}.legend{font-size:9px;color:var(--muted)}.legend i{width:7px;height:7px;border-radius:50%;background:#786be2;display:inline-block;margin-right:4px}.scanpath{height:300px;background:linear-gradient(135deg,#f2f4f8,#fafbfc);border-radius:5px;position:relative;overflow:hidden}.scan-node{position:absolute;border-radius:50%;background:#7163dcdd;border:2px solid white;color:#fff;display:grid;place-items:center;font-size:8px;box-shadow:0 2px 8px #25234755}.method-list p{font-size:10px;line-height:1.6;color:var(--muted);padding:10px 0;border-bottom:1px solid var(--line)}.method-list b{color:var(--text)}.status-pill{font-size:9px;color:#27885c;background:#e9f8f0;border-radius:11px;padding:5px 8px}.status-pill.muted{color:#a07727;background:#fff6df}.cal-results{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.cal-results .metric-card{padding:11px;min-height:100px}.cal-results .metric-icon{margin-bottom:6px}.cal-results .metric-card strong{font-size:17px}.cal-results>p{grid-column:1/-1;font-size:9px;color:var(--muted);line-height:1.5;margin-top:5px}.steps{padding-left:18px;color:var(--muted);font-size:10px;line-height:2.2}.calibration-screen{height:520px;background:#f8f9fc;border:1px solid var(--line);border-radius:8px;position:relative;overflow:hidden}.calibration-screen>p{position:absolute;top:15px;left:18px;right:18px;text-align:center;font-size:10px;color:var(--muted)}.cal-progress{position:absolute;top:44px;left:0;right:0;text-align:center;color:#7265d9;font-size:10px;font-weight:600}.cal-target{position:absolute;width:22px;height:22px;border-radius:50%;background:#665bd8;border:5px solid white;box-shadow:0 0 0 2px #665bd8;transform:translate(-50%,-50%)}.settings-panel{padding:0 20px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border:0}.setting-row b{font-size:11px}.setting-row p{font-size:9px;color:var(--muted);margin:4px 0 0}.alert{display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:6px;background:#fff2f0;color:#b94438;border:1px solid #f2d1cd;margin-bottom:16px;font-size:10px}.alert>span{font-weight:700}.alert button{margin-left:auto;background:none;border:0;color:inherit;font-size:16px}.export-controls{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.export-buttons{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.export-buttons button{font-size:9px;color:#6357d9;border:1px solid var(--line);background:var(--panel);border-radius:4px;padding:6px 8px}.dark .metric-icon.violet,.dark .metric-icon.blue,.dark .metric-icon.green,.dark .metric-icon.orange{background:#30384b}.dark .note{background:#26253c;border-color:#403b68}.dark .privacy-banner{background:#20372e;border-color:#2b5140}.dark .pdf-stage,.dark .scanpath{background:#141d2b}.dark .calibration-screen{background:#151f2e}.dark .danger{background:#422b2c;border-color:#684142}.dark .side-callout{background:#3a3325;color:#e6c482}@media(max-width:1000px){.sidebar{width:210px;flex-basis:210px}.content{padding:28px 24px}.topbar{padding:0 24px}.metrics-grid,.doc-grid{grid-template-columns:repeat(2,1fr)}.two-columns,.reader-layout{grid-template-columns:1fr}.analysis-side{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.analysis-side h3,.live-status,.side-callout{grid-column:1/-1}.side-stat{border-bottom:0}.reader-head{align-items:flex-start;gap:15px}}@media(max-width:650px){body{min-width:360px}.sidebar{width:57px;flex-basis:57px;padding:15px 6px}.brand{padding:0;justify-content:center;margin-bottom:22px}.brand>div:not(.brand-mark),.workspace,.nav-label{display:none}.nav-item{justify-content:center;padding:0;font-size:0}.nav-item .nav-icon{font-size:17px}.sidebar nav{gap:6px}.sidebar-bottom .privacy,.theme-button,.version{display:none}.topbar{height:52px;padding:0 12px}.secure{display:none}.top-actions{gap:8px}.content{padding:22px 13px}.page-heading{align-items:flex-start;gap:12px}.page-heading h1{font-size:22px}.page-heading>.primary,.file-button{padding:9px;font-size:9px;white-space:nowrap}.metrics-grid{gap:8px}.metric-card{padding:12px;min-height:118px}.metric-card strong{font-size:19px}.doc-grid{grid-template-columns:1fr}.reader-head{display:block}.reader-actions{margin-top:13px;flex-wrap:wrap}.reader-toolbar{padding:0 5px}.reader-doc-select select{max-width:110px}.reader-toolbar-right .tracking-state{font-size:0}.reader-layout{min-height:450px}.pdf-stage{min-height:440px;padding:10px}.analysis-side{padding:12px}.session-row{gap:6px}.session-state{display:none}.session-info small{font-size:8px}.session-duration{min-width:auto}.session-row .text-button{font-size:8px}.note{flex-wrap:wrap}.note button{margin-left:26px}.setting-row{align-items:flex-start}.setting-row .outline,.setting-row .danger{padding:8px;font-size:9px}.export-controls{align-items:stretch}.export-buttons{justify-content:flex-start}}.gaze-preview-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;pointer-events:none}.gaze-preview-dot{position:absolute;width:28px;height:28px;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;background:#ef4444aa;box-shadow:0 0 0 2px #d92d20,0 0 20px 8px #ef444477;pointer-events:none}.gaze-preview-banner{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;background:#111827ed;color:#fff;padding:9px 12px;border:1px solid #ffffff30;border-radius:999px;box-shadow:0 4px 20px #0004;font-size:11px;pointer-events:auto;white-space:nowrap}.gaze-preview-banner button{color:#fff;background:#3c4656;border:0;border-radius:999px;padding:5px 10px;font-size:10px}.preview-signal{width:8px;height:8px;background:#9ca3af;border-radius:50%}.preview-signal.active{background:#34d399;box-shadow:0 0 8px #34d399}.preview-instructions{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px;margin-top:2px}.preview-instructions b{font-size:10px}.preview-instructions span{display:block;font-size:9px;color:var(--muted);line-height:1.5;margin-top:4px}.detection-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.8fr);gap:16px;align-items:start}.detection-camera-panel,.detection-results{margin:0}.camera-preview-host{position:relative;min-height:190px;aspect-ratio:4/3;max-height:560px;overflow:hidden;display:grid;place-items:center;border:1px solid #252d3a;border-radius:10px;background:radial-gradient(ellipse at center,#1c2738,#0c111a 70%);color:#d1d8e2}.camera-placeholder{display:flex;flex-direction:column;align-items:center;gap:9px;padding:20px;text-align:center}.camera-placeholder>span{font-size:32px;color:#8290a4}.camera-placeholder b{font-size:12px}.camera-placeholder small,.camera-privacy-note{font-size:10px;line-height:1.6;color:var(--muted)}.camera-privacy-note{margin:12px 0 0}.camera-preview-host #webgazerVideoContainer{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;aspect-ratio:auto!important;border-radius:9px!important}.camera-preview-host #webgazerVideoFeed,.camera-preview-host #webgazerFaceOverlay,.camera-preview-host #webgazerFaceFeedbackBox{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;object-fit:cover}.detection-results h2{font-size:14px;margin:0 0 18px}.detection-indicator{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted);padding-bottom:13px;border-bottom:1px solid var(--line)}.detection-indicator i{width:9px;height:9px;border-radius:50%;background:#9da7b5}.detection-indicator i.on{background:#30bc7f;box-shadow:0 0 0 3px #30bc7f22}.coordinate-readout{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.coordinate-readout span{display:flex;flex-direction:column;gap:7px;padding:12px;border-radius:6px;background:var(--soft);color:var(--muted);font-size:10px}.coordinate-readout b{font-size:16px;color:var(--text)}.coordinate-help{font-size:9px;line-height:1.55;color:var(--muted)}.detection-calibration{display:grid;gap:5px;padding:11px;margin:15px 0;border:1px solid var(--line);border-radius:6px;font-size:10px}.detection-calibration b{color:var(--text)}.detection-calibration span,.detection-calibration small{color:var(--muted);font-size:9px}.pending-calibration{background:var(--soft)}.pending-calibration .text-button{justify-self:start;padding:5px 0}.dark .camera-placeholder{color:#d1d8e2}@media(max-width:850px){.detection-layout{grid-template-columns:1fr}.camera-preview-host{max-height:none}}
