@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--bg: #f6f8fa;--surface: #ffffff;--surface-sunken: #fbfcfd;--border: #e2e6ea;--border-strong: #d7dce1;--text: #12181f;--text-muted: #5b6470;--text-faint: #8b939d;--text-placeholder: #a9b0b8;--accent-a: #22b8d8;--accent-b: #2f7de0;--accent-gradient: linear-gradient(135deg, var(--accent-a), var(--accent-b));--accent-on: #ffffff;--hero-gradient: linear-gradient(150deg, #22b8d8, #2f7de0);--hero-on: #ffffff;--success: #2fae6d;--warning: #e0a41f;--danger: #e0483f;--danger-bg: rgba(224, 72, 63, .12);--terminal-bg: var(--surface-sunken);--terminal-text: var(--text);--terminal-muted: var(--text-faint);--font-ui: "Inter", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Monaco", "Menlo", monospace}:root[data-theme=dark]{--bg: #0b0f14;--surface: #141a22;--surface-sunken: #10151c;--border: #262e39;--border-strong: #2b3440;--text: #eef1f5;--text-muted: #9aa5b1;--text-faint: #7e8996;--text-placeholder: #6b7480;--accent-a: #3dd2ec;--accent-b: #5b9dff;--accent-on: #0b0f14;--hero-gradient: linear-gradient(150deg, #1a3a45, #1c2b4a);--hero-on: #eef1f5;--success: #3ddb8a;--warning: #f0b429;--danger: #ff5c56;--danger-bg: rgba(255, 92, 86, .15);--terminal-bg: var(--surface-sunken);--terminal-text: var(--text);--terminal-muted: var(--text-faint)}body{font-family:var(--font-ui)}@keyframes app-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes app-blink{50%{opacity:0}}.container{display:grid;grid-template-areas:"robot-view ide" "robot-view ide" "controls terminal";grid-template-columns:2.5fr 1fr;grid-template-rows:1fr 1fr .5fr;height:100vh;width:100vw;gap:12px;padding:16px;box-sizing:border-box;background:var(--bg);color:var(--text);font-family:var(--font-ui)}.container.both-minimized{grid-template-areas:"robot-view" "robot-view" "controls";grid-template-columns:1fr;grid-template-rows:2fr 2fr 1fr}.floating-tab{position:fixed;top:20px;right:20px;z-index:1000;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:12px 16px;color:var(--text);cursor:pointer;font-size:18px;font-weight:700;box-shadow:0 4px 12px #00000026;transition:all .2s ease;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.floating-tab:hover{filter:brightness(.97);transform:translateY(-2px)}.robot-view{grid-area:robot-view;background:var(--surface-sunken);border-radius:12px;padding:16px;overflow:hidden;min-height:0;min-width:0;display:flex;flex-direction:column}.robot-view.session-entry-mode{background:var(--surface)}.robot-view.in-session{padding:0}.robot-view iframe{flex:1;min-height:0;border:none;border-radius:8px}.session-active{position:relative;flex:1;width:100%;min-height:0;overflow:hidden;border-radius:12px}.session-active iframe{position:absolute;inset:0;width:100%;height:100%;border:none;border-radius:12px}.end-call-overlay{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:10;padding:10px 28px;border:1px solid rgba(255,255,255,.35);border-radius:10px;background:#dcdcdc2e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease}.end-call-overlay:hover{background:#e6e6e647;border-color:#ffffff80}.end-call-overlay:active{background:#c8c8c838}.session-entry{flex:1;display:flex;min-height:0;width:100%}.session-entry-layout{flex:1;display:flex;flex-direction:column;align-items:stretch;width:100%;min-height:0;padding:20px 28px 40px;box-sizing:border-box}.session-entry-header{flex-shrink:0;align-self:stretch;display:flex;justify-content:space-between;align-items:flex-start;padding:0;width:100%}.session-logo{display:block;height:56px;width:auto}.session-entry-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;width:100%;max-width:480px;align-self:center;padding:24px 0}.session-entry-center h2{margin:0;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:600;letter-spacing:-.4px;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.session-entry-actions{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:320px;align-self:center;padding-bottom:8px}.session-entry-description{margin:0;font-size:clamp(.9rem,1.5vw,1rem);line-height:1.6;color:var(--text-muted);max-width:420px}.session-waiting{margin:0;font-size:.8rem;color:var(--warning);animation:session-pulse 1.5s ease-in-out infinite}@keyframes session-pulse{0%,to{opacity:1}50%{opacity:.5}}.session-entry-actions .ws-status-indicator,.session-entry-actions .ws-button{width:100%;max-width:280px;box-sizing:border-box}.session-entry-actions .ws-status-indicator{padding:8px 16px;border-radius:4px;font-size:12px}.session-entry-actions .ws-button{padding:16px;min-height:48px;border-radius:4px;font-size:12px;font-weight:600}.session-entry-actions .ws-hint{width:100%;text-align:center}.session-entry-back{font-size:13px;font-weight:600;color:var(--text-muted);background:none;border:none;cursor:pointer;font-family:var(--font-ui);padding:8px 0}.session-entry-back:hover{color:var(--text)}.dev-robot-input{width:100%;max-width:280px;padding:8px 12px;border:1px solid var(--warning);border-radius:4px;background:var(--surface);color:var(--text);font-size:12px;box-sizing:border-box;text-align:center}.ide{grid-area:ide;background:var(--surface);border-radius:12px;padding:16px;display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0}.ide-header{display:flex;flex-direction:column;margin-bottom:10px}.ide-title-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ide-controls{display:flex;gap:4px}.control-button{width:24px;height:24px;border:none;border-radius:4px;background:var(--surface-sunken);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;transition:background-color .2s ease}.control-button:hover{filter:brightness(.95)}.control-button:active{background:var(--border-strong)}.control-button.close:hover{background:var(--danger);color:#fff}.ide.minimized{height:auto!important;min-height:60px}.ide.minimized .ide-header{margin-bottom:0}.terminal{grid-area:terminal;background:var(--surface);border-radius:12px;padding:16px;overflow:auto;max-height:100%;min-height:0;min-width:0;display:flex;flex-direction:column}.terminal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.terminal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.terminal.minimized{height:auto!important;min-height:60px}.terminal.minimized .terminal-header{margin-bottom:0}.terminal pre{flex:1;margin:0;font-family:var(--font-mono);font-size:12px;line-height:1.4;color:var(--terminal-text);white-space:pre-wrap;word-wrap:break-word;overflow-y:auto}.script-error-panel{margin:0 0 8px;padding:10px 12px;border-radius:6px;background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger);font-family:var(--font-mono);font-size:12.5px}.ide-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text);letter-spacing:-.5px}.ide-menu{display:flex;gap:8px}.ide-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;align-self:flex-start;flex-shrink:0}.ide-editor-wrap{flex:1;min-height:0}.ide-actions .run-button{width:auto;margin-top:0;align-self:auto}.menu-button{padding:8px 16px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;font-size:13px;font-weight:500;transition:filter .15s ease,transform .15s ease}.menu-button:hover:not(:disabled){filter:brightness(.95)}.menu-button:disabled{opacity:.5;cursor:not-allowed}.menu-button-accent{border:none;background:var(--accent-gradient);color:var(--accent-on);font-weight:600}.menu-button-accent:hover:not(:disabled){filter:brightness(1.08)}.menu-button-accent:disabled{opacity:.5;cursor:not-allowed;background:var(--surface-sunken);color:var(--text-faint)}#editor{flex-grow:1;min-height:300px}.run-button{padding:10px 20px;border:none;border-radius:8px;background:var(--accent-gradient);color:var(--accent-on);cursor:pointer;font-size:14px;font-weight:600;transition:filter .15s ease,transform .15s ease}.run-button:hover:not(:disabled){filter:brightness(1.08)}.run-button:disabled{opacity:.5;cursor:not-allowed}.controls{grid-area:controls;background:var(--surface);border-radius:12px;padding:16px 12px 16px 16px;overflow:hidden;min-height:210px;min-width:0}.controls-layout{display:flex;flex-direction:row;align-items:stretch;gap:12px;height:100%;min-height:0}.controls-main{flex:1;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-start;justify-content:center;gap:clamp(24px,4vw,56px);min-width:0;overflow-x:auto;overflow-y:auto;padding:4px 8px 8px}.controls-utility-bar{flex-shrink:0;display:flex;flex-direction:column;gap:6px;width:48px;padding:8px 6px;border-radius:10px;background:var(--surface-sunken);border:1px solid var(--border);overflow:hidden;transition:width .25s ease,padding .25s ease}.controls-utility-bar:hover,.controls-utility-bar:focus-within,.controls-utility-bar.showing-state{width:210px;padding:8px 10px;max-height:100%;overflow:hidden}.controls-utility-bar:hover .utility-bar-label,.controls-utility-bar:focus-within .utility-bar-label,.controls-utility-bar.showing-state .utility-bar-label{opacity:1;max-width:160px}.utility-bar-back{flex-shrink:0}.utility-bar-state-visible{flex:1;min-height:0;overflow-y:auto;margin-top:4px}.utility-bar-item{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .2s ease,border-color .2s ease;text-align:left}.utility-bar-item:hover:not(:disabled){border-color:var(--border-strong);filter:brightness(.97)}.utility-bar-item:disabled{opacity:.45;cursor:not-allowed}.utility-bar-item.active{background:#2fae6d26;border-color:var(--success);color:var(--success)}.utility-bar-icon{flex-shrink:0;width:24px;text-align:center;font-size:16px;line-height:1}.utility-bar-label{opacity:0;max-width:0;overflow:hidden;transition:opacity .2s ease,max-width .25s ease}.controls-locked{display:flex;align-items:center;justify-content:center;background:var(--surface)}.controls-placeholder{text-align:center;padding:24px}.controls-placeholder p{margin:0;font-size:.9rem;color:var(--text-faint);font-weight:500}.joystick-container,.dpad-container{text-align:center}.joystick-container h3,.dpad-container h3{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text);letter-spacing:-.3px}.joystick{position:relative;width:80px;height:80px;background:var(--surface-sunken);border-radius:50%;border:2px solid var(--border);display:grid;grid-template-areas:". up ." "left . right" ". down .";gap:3px;padding:6px}.joystick-button{width:25px;height:25px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text);font-size:10px;font-weight:700;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1}.joystick-button:hover{filter:brightness(.95);transform:scale(1.05)}.joystick-button:active{filter:brightness(.9);transform:scale(.95)}.joystick-button.pressed{background:var(--accent-gradient);color:var(--accent-on);border-color:transparent;transform:scale(1.05)}.joystick-button.up{grid-area:up}.joystick-button.down{grid-area:down}.joystick-button.left{grid-area:left}.joystick-button.right{grid-area:right}.joystick-button span,.dpad-button span{font-size:6px;margin-top:1px;font-weight:400}.dpad{position:relative;width:80px;height:80px;background:var(--surface-sunken);border-radius:12px;border:2px solid var(--border);display:grid;grid-template-areas:". up ." "left . right" ". down .";gap:3px;padding:6px}.dpad-button{width:25px;height:25px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text);font-size:10px;font-weight:700;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1}.dpad-button:hover{filter:brightness(.95);transform:scale(1.05)}.dpad-button:active{filter:brightness(.9);transform:scale(.95)}.dpad-button.pressed{background:var(--accent-gradient);color:var(--accent-on);border-color:transparent;transform:scale(1.05)}.dpad-button.up{grid-area:up}.dpad-button.down{grid-area:down}.dpad-button.left{grid-area:left}.dpad-button.right{grid-area:right}.ws-status-indicator{font-size:12px;font-weight:600;padding:4px 10px;border-radius:4px;text-align:center;background:var(--surface-sunken);color:var(--text-faint)}.ws-status-indicator.connected{color:var(--success)}.ws-status-indicator.connecting{color:var(--warning)}.ws-status-indicator.disconnected{color:var(--text-faint)}.ws-status-indicator.error{color:var(--danger)}.ws-button{padding:8px 16px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;font-size:12px;font-weight:600;transition:filter .15s ease;width:100%}.ws-button:hover:not(:disabled){filter:brightness(.95)}.ws-button.connect{border:none;background:var(--accent-gradient);color:var(--accent-on)}.ws-button.connect:hover{filter:brightness(1.08)}.ws-button.disconnect{border:none;background:var(--danger);color:#fff}.ws-button.disconnect:hover{filter:brightness(1.08)}.ws-hint{font-size:11px;color:var(--text-faint);text-align:center;padding:2px 4px}.ws-hint.pairing-failed{color:var(--danger)}.menu-button.server-upload{border-color:var(--accent-b);color:var(--accent-b)}.menu-button.run-robot{border-color:var(--accent-a);color:var(--accent-b)}.menu-button.execute-script{border-color:var(--success);color:var(--success)}.menu-button.cancel-script{border-color:var(--danger);color:var(--danger)}.script-status{display:inline-flex;align-items:center;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;margin-left:8px}.script-status.downloading{background:#e0a41f26;color:var(--warning)}.script-status.ready,.script-status.finished{background:#2fae6d26;color:var(--success)}.script-status.running{background:#2f7de026;color:var(--accent-b);animation:app-pulse 1.5s ease-in-out infinite}.script-status.error{background:var(--danger-bg);color:var(--danger)}.joystick,.dpad{width:clamp(70px,12vw,110px);height:clamp(70px,12vw,110px);gap:clamp(2px,.5vw,6px);padding:clamp(5px,1vw,10px)}.joystick-button,.dpad-button{width:clamp(22px,3.5vw,34px);height:clamp(22px,3.5vw,34px);font-size:clamp(8px,1.4vw,12px)}.joystick-button span,.dpad-button span{font-size:clamp(5px,1vw,8px)}@media(max-width:900px){.container{grid-template-areas:"robot-view" "controls" "ide" "terminal";grid-template-columns:1fr;grid-template-rows:minmax(300px,1fr) auto auto auto;height:auto;min-height:100vh}.controls{min-height:230px;max-height:280px;overflow-x:auto;overflow-y:auto}}.gripper-container{text-align:center;min-width:150px}.gripper-container h3{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text)}.gripper-buttons{display:flex;flex-direction:row;gap:10px;justify-content:center;align-items:center}.gripper-button{width:auto;min-width:72px;height:34px;padding:0 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);font-size:11px;font-weight:700;cursor:pointer;transition:all .15s ease}.gripper-button:hover{filter:brightness(.95)}.gripper-button.pressed{background:var(--accent-gradient);color:var(--accent-on);border-color:transparent}.robot-state-display{margin-top:10px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:8px;padding:8px 12px;text-align:left;font-size:12px;color:var(--text-muted)}.robot-state-section{margin-bottom:8px}.robot-state-section:last-child{margin-bottom:0}.robot-state-section strong{display:block;color:var(--text);font-size:11px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.robot-state-display table{width:100%;border-collapse:collapse}.robot-state-display td{padding:1px 6px 1px 0;font-family:var(--font-mono)}.robot-state-display td:first-child{color:var(--text-faint);min-width:36px}.robot-state-error{color:var(--danger);font-size:12px}.dashboard-page{min-height:100vh;display:flex;flex-direction:column;color:var(--text);background:var(--bg)}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:18px 40px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.dashboard-header-left{display:flex;align-items:center;gap:36px}.dashboard-wordmark{font-size:22px;font-weight:800;letter-spacing:-.02em;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.dashboard-nav{display:flex;gap:26px;font-size:14px;font-weight:600}.dashboard-nav-item{position:relative;color:var(--text-muted);cursor:pointer;background:none;border:none;appearance:none;-webkit-appearance:none;padding:0;font-family:var(--font-ui);font-size:14px;font-weight:600;line-height:1}.dashboard-nav-item:hover,.dashboard-nav-item.active{color:var(--text)}.dashboard-nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--accent-b)}.dashboard-header-right{display:flex;align-items:center;gap:16px}.dashboard-cluster{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);font-family:var(--font-mono)}.dashboard-cluster-dot{width:7px;height:7px;border-radius:50%;background:var(--success);display:inline-block}.dashboard-avatar{width:34px;height:34px;border-radius:50%;background:var(--surface-sunken);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--accent-b)}.dashboard-signout{font-size:14px;font-weight:600;color:var(--text-muted);cursor:pointer;background:none;border:none;font-family:var(--font-ui);padding:0}.dashboard-signout:hover{color:var(--text)}.dashboard-main{flex:1;padding:40px 40px 64px;max-width:1320px;width:100%;margin:0 auto;box-sizing:border-box}.dashboard-greeting{font-size:14px;color:var(--text-muted);margin-bottom:6px}.dashboard-main h1{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:0 0 32px}.dashboard-code-card{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 22px;margin-bottom:20px;flex-wrap:wrap}.dashboard-code-card-copy .title{font-size:15px;font-weight:700;margin-bottom:3px}.dashboard-code-card-copy .subtitle{font-size:13px;color:var(--text-muted)}.dashboard-code-card-form{display:flex;gap:10px}.dashboard-code-card-form input{width:180px;padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface-sunken);font-size:14px;font-family:var(--font-mono);letter-spacing:.03em;outline:none;color:var(--text)}.dashboard-code-card-form input::placeholder{color:var(--text-placeholder)}.dashboard-code-card-form input:focus{border-color:var(--accent-b)}.btn-dash-primary{padding:10px 18px;border-radius:8px;border:none;background:var(--accent-gradient);color:var(--accent-on);font-family:var(--font-ui);font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}.btn-dash-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-dash-primary:disabled{opacity:.5;cursor:not-allowed}.dashboard-error{color:var(--danger);font-size:13.5px;margin:0 0 16px}.dashboard-professor-card{margin-bottom:36px}.dashboard-professor-card .join-code-result{font-size:14px;color:var(--text-muted);margin-top:6px}.dashboard-professor-card .join-code-result strong{color:var(--text);font-family:var(--font-mono)}.section-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-bottom:14px}.my-classes-list{display:flex;flex-direction:column;gap:10px}.my-classes-row{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 22px}.my-classes-row-label{font-size:15px;font-weight:700}.btn-dash-secondary{padding:8px 16px;border-radius:8px;border:1px solid var(--border);background:var(--surface-sunken);color:var(--text);font-family:var(--font-ui);font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.btn-dash-secondary:hover:not(:disabled){border-color:var(--accent-b)}.btn-dash-secondary:disabled{opacity:.5;cursor:not-allowed}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 24px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface)}.empty-state-cube{width:44px;height:44px;border-radius:10px;border:1px dashed var(--border-strong);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:300;color:var(--text-faint);margin-bottom:4px}.empty-state-text{font-size:15px;font-weight:700;color:var(--text)}.empty-state-subtext{font-size:13px;color:var(--text-muted)}.tab-placeholder h1{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:0 0 16px}.tab-placeholder>p{color:var(--text-muted);font-size:14px}.settings-section{margin-top:24px}.settings-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-bottom:12px}.theme-toggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.theme-toggle-option{padding:10px 20px;border:none;background:var(--surface);color:var(--text-muted);font-family:var(--font-ui);font-size:14px;font-weight:600;cursor:pointer}.theme-toggle-option+.theme-toggle-option{border-left:1px solid var(--border)}.theme-toggle-option.active{background:var(--accent-gradient);color:var(--accent-on)}.auth-loading{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:var(--bg);font-family:var(--font-ui);font-size:16px;color:var(--text-muted)}.landing-split{min-height:100vh;display:flex;color:var(--text)}.landing-hero-panel{flex:1;min-width:380px;display:flex;flex-direction:column;justify-content:space-between;padding:56px;background:var(--hero-gradient);color:var(--hero-on)}.landing-hero-panel .wordmark{font-size:22px;font-weight:800;letter-spacing:-.02em}.landing-hero-copy{max-width:420px}.landing-hero-copy h1{font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.25;margin:0 0 16px}.landing-hero-copy p{font-size:15px;line-height:1.6;margin:0;opacity:.85}.landing-hero-footer{font-size:12.5px;font-family:var(--font-mono);opacity:.7}.landing-form-panel{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--bg)}.landing-form-inner{width:100%;max-width:380px;display:flex;flex-direction:column;gap:28px}.landing-form-wordmark{font-size:22px;font-weight:800;letter-spacing:-.02em;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:20px}.landing-form-inner h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px}.landing-form-inner .landing-subcopy{font-size:14px;color:var(--text-muted);margin:0}.landing-actions{display:flex;flex-direction:column;gap:12px}.btn-primary{text-decoration:none;text-align:center;padding:13px;border-radius:8px;border:none;background:var(--accent-gradient);color:var(--accent-on);font-family:var(--font-ui);font-size:14.5px;font-weight:700;cursor:pointer}.btn-primary:hover{filter:brightness(1.08)}.btn-secondary{text-decoration:none;text-align:center;padding:13px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-ui);font-size:14.5px;font-weight:700;cursor:pointer}.btn-secondary:hover{filter:brightness(.97)}.landing-footnote{font-size:12.5px;color:var(--text-faint);text-align:center}.demo-code-input{width:100%;padding:13px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:16px;letter-spacing:.08em;text-transform:uppercase;box-sizing:border-box}.demo-code-input:focus{outline:2px solid var(--accent);outline-offset:1px}.demo-code-error{margin:0;font-size:13px;color:#c0392b;text-align:center}@media(max-width:768px){.landing-split{flex-direction:column}.landing-hero-panel{min-width:0;padding:32px 24px}.landing-form-panel{padding:32px 24px}}
