:root{color-scheme:dark;--bg: #0a0a0f;--surface: #12121a;--surface-2: #1a1a2e;--border: rgba(255, 255, 255, .08);--text: #e0e0e8;--text-dim: rgba(255, 255, 255, .5);--accent: #00ff88;--accent-dim: rgba(0, 255, 136, .15);--radius: 12px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:var(--bg);color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column;padding:1.5rem;gap:1.5rem}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.header h1{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;background:linear-gradient(135deg,var(--accent),#4ecdc4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.status-bar{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-dim)}.status-dot{width:8px;height:8px;border-radius:50%;background:#f44;transition:background .3s}.status-dot.ready{background:var(--accent);box-shadow:0 0 8px var(--accent)}.sep{opacity:.3}.error-banner{padding:.75rem 1.5rem;background:#ff44441a;border:1px solid rgba(255,68,68,.3);border-radius:var(--radius);color:#f66;font-size:.85rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.retry-btn{padding:.35rem 1rem;background:#f443;border:1px solid rgba(255,68,68,.4);border-radius:6px;color:#f66;font-size:.75rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s}.retry-btn:hover{background:#ff444459}.loading-hint{font-size:.75rem;color:var(--text-dim);opacity:.6}.demo-btn{margin-top:.5rem;padding:.5rem 1.5rem;background:#00ff8826;border:1px solid rgba(0,255,136,.4);border-radius:8px;color:var(--accent);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.demo-btn:hover{background:#00ff884d}.demo-overlay{background:#0a0a0ff2!important}.demo-instructions{max-width:360px;text-align:center}.demo-instructions h2{font-size:1.5rem;margin-bottom:.75rem;background:linear-gradient(135deg,var(--accent),#4ecdc4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.demo-instructions p{font-size:.85rem;color:var(--text-dim);margin-bottom:.25rem}.demo-instructions strong{color:var(--text)}.demo-keys{margin-top:1rem;display:flex;flex-direction:column;gap:4px}.demo-key-row{display:flex;align-items:center;gap:.75rem;padding:.35rem .75rem;border-radius:6px;transition:background .15s}.demo-key-row.active{background:var(--accent-dim)}.demo-key-row kbd{min-width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;font-family:ui-monospace,monospace;font-size:.75rem;font-weight:700;color:var(--accent)}.demo-key-label{font-size:.8rem;font-weight:500;color:var(--text);min-width:100px;text-align:left}.demo-key-action{font-size:.7rem;color:var(--text-dim)}.main-content{display:grid;grid-template-columns:1fr 380px;gap:1.5rem;flex:1}.camera-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s}.camera-panel.active{border-color:#00ff884d}.panel-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-size:.8rem;font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.panel-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.panel-badge{margin-left:auto;padding:.15rem .5rem;background:var(--accent-dim);color:var(--accent);border-radius:4px;font-size:.65rem;font-weight:600}.cam-toggle{margin-left:.5rem;padding:.35rem .85rem;border:1px solid rgba(255,255,255,.15);border-radius:6px;font-size:.75rem;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.4rem}.cam-toggle.on{background:#00ff8826;color:#0f8;border-color:#00ff884d}.cam-toggle.on:hover{background:#00ff8840;transform:scale(1.05)}.cam-toggle.off{background:#ff444426;color:#f44;border-color:#ff44444d}.cam-toggle.off:hover{background:#ff444440;transform:scale(1.05)}.camera-container{position:relative;flex:1;min-height:400px;background:#000;overflow:hidden}.camera-container.active{border:2px solid rgba(0,255,136,.3);box-shadow:inset 0 0 30px #00ff880d}.camera-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.cam-big-toggle{position:absolute;bottom:1rem;right:1rem;width:52px;height:52px;border-radius:50%;border:2px solid rgba(255,255,255,.2);background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10}.cam-big-toggle:hover{background:#00ff884d;border-color:var(--accent);transform:scale(1.1)}.cam-big-toggle.on{border-color:var(--accent);box-shadow:0 0 12px #00ff884d}.cam-big-toggle.off{border-color:#f44;box-shadow:0 0 12px #ff44444d;background:#f443}.cam-big-toggle svg{width:24px;height:24px;fill:currentColor}.camera-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:#000000b3;color:var(--text-dim);font-size:.9rem;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cam-status{position:absolute;top:.75rem;left:.75rem;display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;font-size:.7rem;font-weight:600;z-index:10}.cam-status.active{color:var(--accent);border:1px solid rgba(0,255,136,.3)}.cam-status.inactive{color:#f44;border:1px solid rgba(255,68,68,.3)}.cam-status-dot{width:8px;height:8px;border-radius:50%}.cam-status.active .cam-status-dot{background:var(--accent);box-shadow:0 0 6px var(--accent);animation:pulse-dot 1.5s ease infinite}.cam-status.inactive .cam-status-dot{background:#f44}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.cam-rec-indicator{position:absolute;top:.75rem;right:.75rem;display:flex;align-items:center;gap:.4rem;padding:.35rem .6rem;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;font-size:.65rem;font-weight:700;color:#f44;z-index:10;letter-spacing:.05em}.rec-dot{width:8px;height:8px;border-radius:50%;background:#f44;animation:rec-blink 1s ease infinite}@keyframes rec-blink{0%,to{opacity:1}50%{opacity:0}}.cam-no-hand-hint{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);padding:.4rem 1rem;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;font-size:.75rem;color:var(--text-dim);z-index:10;white-space:nowrap;animation:fadeIn .5s ease}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.info-panel{display:flex;flex-direction:column;gap:1rem}.gesture-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .3s}.gesture-display{display:flex;align-items:center;gap:1rem;padding:1.25rem 1rem}.gesture-icon{font-size:3rem;line-height:1;animation:pop .3s ease-out}@keyframes pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.gesture-details{display:flex;flex-direction:column;gap:.25rem}.gesture-name{font-size:1.1rem;font-weight:600}.gesture-action{font-size:.85rem;font-weight:500}.drag-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-top:1px solid var(--border);font-size:.8rem;color:#f44336}.drag-dot{width:8px;height:8px;border-radius:50%;background:#f44336;animation:pulse 1s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.guide-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border)}.guide-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;background:var(--surface);transition:all .2s}.guide-item.active{background:var(--accent-dim);box-shadow:inset 0 0 0 1px #00ff884d}.guide-icon{font-size:1.5rem}.guide-label{font-size:.7rem;font-weight:600;color:var(--text)}.guide-action{font-size:.6rem;color:var(--text-dim)}.log-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;flex:1;display:flex;flex-direction:column}.action-log{flex:1;max-height:220px;overflow-y:auto;padding:.5rem}.log-empty{padding:1rem;text-align:center;color:var(--text-dim);font-size:.8rem}.log-entry{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:6px;font-size:.75rem;animation:slideIn .2s ease-out}.log-entry:hover{background:#ffffff08}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.log-time{color:var(--text-dim);font-family:ui-monospace,monospace;font-size:.65rem;min-width:70px}.log-icon{font-size:1rem}.log-action{color:var(--text)}.virtual-cursor{position:fixed;width:40px;height:40px;border-radius:50%;border:2px solid var(--accent);pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:left .05s linear,top .05s linear,border-color .2s,box-shadow .2s,opacity .3s;display:flex;align-items:center;justify-content:center;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0}.virtual-cursor.active{opacity:1;width:48px;height:48px}.cursor-icon{font-size:1.2rem;line-height:1}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.browser-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;min-height:500px}.browser-header{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-2)}.browser-nav{display:flex;gap:.25rem}.nav-btn{width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.nav-btn:hover:not(:disabled){background:#ffffff14;color:var(--text)}.nav-btn:disabled{opacity:.3;cursor:not-allowed}.browser-address{flex:1;display:flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:0 .75rem;height:36px;transition:border-color .2s}.browser-address:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #00ff881a}.address-icon{color:var(--text-dim);flex-shrink:0}.address-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:.85rem;font-family:inherit}.address-input::placeholder{color:var(--text-dim)}.go-btn{width:28px;height:28px;border:none;border-radius:6px;background:var(--accent-dim);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.go-btn:hover{background:#00ff8840}.quick-links{display:flex;gap:.35rem;padding:.5rem 1rem;border-bottom:1px solid var(--border);overflow-x:auto;background:var(--surface)}.quick-links::-webkit-scrollbar{height:3px}.quick-link{display:flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border:1px solid var(--border);border-radius:20px;background:transparent;color:var(--text-dim);font-size:.7rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s}.quick-link:hover{background:#ffffff0d;border-color:#ffffff26;color:var(--text)}.quick-link.active{background:var(--accent-dim);border-color:#00ff884d;color:var(--accent)}.quick-link-icon{font-size:.85rem}.quick-link-name{font-size:.7rem}.browser-frame{flex:1;position:relative;background:#fff}.browser-iframe{width:100%;height:100%;border:none;min-height:450px}.iframe-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:#000c;color:var(--text-dim);font-size:.85rem;z-index:5}.settings-btn{width:36px;height:36px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;margin-left:.5rem}.settings-btn:hover{background:#ffffff14;color:var(--accent);border-color:#00ff884d}.settings-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.settings-header h2{font-size:1.1rem;font-weight:600;background:linear-gradient(135deg,var(--accent),#4ecdc4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.settings-desc{font-size:.8rem;color:var(--text-dim);margin-bottom:1rem}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.5rem}.setting-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;transition:border-color .15s}.setting-row:hover{border-color:#ffffff1f}.setting-gesture{display:flex;align-items:center;gap:.5rem;min-width:130px}.setting-gesture-icon{font-size:1.5rem;line-height:1}.setting-gesture-label{font-size:.8rem;font-weight:600;color:var(--text)}.setting-arrow{color:var(--text-dim);flex-shrink:0}.setting-select{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.4rem .6rem;color:var(--text);font-size:.8rem;font-family:inherit;cursor:pointer;outline:none;transition:border-color .15s}.setting-select:focus{border-color:var(--accent)}.setting-select option{background:var(--surface);color:var(--text)}@media(max-width:900px){.main-content{grid-template-columns:1fr}.header{flex-direction:column;gap:.5rem;text-align:center}.browser-header{flex-direction:column;gap:.5rem}.browser-address{width:100%}.settings-grid{grid-template-columns:1fr}}
