:root{--bg: #ffffff;--surface: #f3f4f6;--border: #e3e5e9;--text: #15171c;--muted: #6b7280;--accent: #2563eb;--ok: #16a34a;--fail: #dc2626;--stimulus-margin: 40px;color-scheme:only light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overscroll-behavior:none}h2{margin:0;font-size:22px;line-height:1.3;font-weight:600}h3{margin:0;font-size:17px;font-weight:600}p{margin:0;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}button:disabled{opacity:.45;cursor:default}.screen{display:flex;flex-direction:column;height:100%;padding:max(16px,env(safe-area-inset-top)) 20px max(16px,env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;gap:8px;min-height:44px}.topbar.end{justify-content:flex-end}.content{flex:1;display:flex;flex-direction:column;gap:16px;min-height:0}.content.center{justify-content:center;align-items:center;text-align:center;max-width:420px;width:100%;margin:0 auto}.content.scroll{overflow-y:auto;padding-top:8px}.footer{display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:12px}.primary,.secondary{width:100%;max-width:420px;padding:15px 20px;border-radius:14px;font-size:17px;font-weight:600}.primary{background:var(--accent);color:#fff}.secondary{background:var(--surface);border:1px solid var(--border)}.link{color:var(--muted);padding:10px 16px;font-size:16px}.link.small,.small{font-size:13px}.icon-button{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:22px;color:var(--muted)}.icon-button:active{background:var(--surface)}.muted{color:var(--muted)}.error{color:var(--fail);font-size:14px}.user-meta{color:var(--muted);font-size:12px}.text-input{width:100%;padding:14px 16px;font-size:17px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:12px;outline:none}.text-input:focus{border-color:var(--accent)}.app-icon{width:96px;height:96px;border-radius:22px}.steps{text-align:left;padding-left:22px;margin:0;line-height:1.8}.inline-icon{width:18px;height:18px;vertical-align:-3px;color:var(--accent)}.user-list{list-style:none;margin:0;padding:0;overflow-y:auto}.user-row{width:100%;display:flex;justify-content:space-between;gap:12px;padding:14px 4px;border-bottom:1px solid var(--border);text-align:left}.user-row.current .user-meta:first-child{color:var(--accent)}.preview{width:140px;height:140px;border-radius:50%;overflow:hidden;background:var(--surface);display:grid;place-items:center}.preview video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.stimulus{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;touch-action:none;-webkit-user-select:none;user-select:none}.stimulus-area{position:absolute;top:calc(env(safe-area-inset-top) + var(--stimulus-margin));right:calc(env(safe-area-inset-right) + var(--stimulus-margin));bottom:calc(env(safe-area-inset-bottom) + var(--stimulus-margin));left:calc(env(safe-area-inset-left) + var(--stimulus-margin));pointer-events:none}.stimulus svg{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.marker-dot{transform-box:fill-box;transform-origin:center}.marker-dot.pulsing{animation:pulse .75s ease-in-out infinite alternate}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(2)}}.stimulus-hint{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 10px);text-align:center;color:var(--muted);font-size:14px}.spinner{width:44px;height:44px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress{width:100%;height:6px;border-radius:3px;background:var(--surface);overflow:hidden}.progress-bar{height:100%;background:var(--accent);transition:width .2s}.chart{margin:0;background:var(--surface);border-radius:14px;padding:10px 8px 4px}.chart figcaption{display:flex;justify-content:space-between;align-items:center;padding:0 6px 4px;font-size:14px;font-weight:600}.chart .legend{display:flex;gap:12px;font-size:12px;font-weight:400;color:var(--muted)}.chart .legend i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}.chart svg{display:block;width:100%;height:auto}.chart .grid{stroke:var(--border);stroke-width:1}.chart .tick{fill:var(--muted);font-size:11px}.chart .outlier{fill:none;stroke:var(--muted);stroke-width:1}.verdict{text-align:center;font-size:18px;padding:32px 0 12px}.verdict .score{font-size:36px;line-height:1.1;margin-bottom:4px;font-variant-numeric:tabular-nums;font-weight:700}.verdict.ok .score{color:var(--ok)}.verdict.fail .score{color:var(--fail)}.duration{margin-top:4px;text-align:center;color:var(--muted);font-size:14px}
