.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}:root{--bg:#0a0a0b;--bg-surface:#111113;--bg-hover:#1a1a1e;--bg-active:#212126;--border:#222228;--text:#c8c8cc;--text-dim:#555560;--accent:#5de4c7;--accent-dim:#5de4c71a;--red:#e05f65;--amber:#d4a544;--sidebar-w:220px;--sidebar-collapsed:36px;--font:"JetBrains Mono", "Fira Code", "SF Mono", "Cascadia Code", monospace;--ease:cubic-bezier(.23, 1, .32, 1);--transition:.18s var(--ease)}@keyframes breathe{0%,to{box-shadow:0 0 4px var(--accent)}50%{box-shadow:0 0 2px var(--accent), 0 0 8px var(--accent-dim)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes connectFlash{0%{box-shadow:inset 0 0 0 1px #0000}30%{box-shadow:inset 0 0 0 1px var(--accent), inset 0 0 20px var(--accent-dim)}to{box-shadow:inset 0 0 0 1px #0000}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#070709}.window-wrapper{background:radial-gradient(#c8c8cc0a 1px,#0000 1px) 0 0/24px 24px,radial-gradient(at 50% 40%,#111116 0%,#070709 70%) 0 0/100% 100%;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.window-frame{border-radius:12px;flex-direction:column;width:80vw;height:80vh;display:flex;overflow:hidden;box-shadow:0 0 0 1px #ffffff12,0 8px 24px #0009,0 32px 80px #00000080}.title-bar{background:var(--bg-surface);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;height:36px;min-height:36px;padding:0 14px;display:flex}.traffic-lights{align-items:center;gap:8px;display:flex}.traffic-light{cursor:default;border:none;border-radius:50%;width:12px;height:12px;padding:0;transition:filter .15s;position:relative}.tl-close{background:#ff5f57;box-shadow:0 0 0 .5px #0000004d}.tl-minimize{background:#ffbd2e;box-shadow:0 0 0 .5px #0000004d}.tl-maximize{background:#28c940;box-shadow:0 0 0 .5px #0000004d}.traffic-lights:hover .tl-close:before{content:"×"}.traffic-lights:hover .tl-minimize:before{content:"−"}.traffic-lights:hover .tl-maximize:before{content:"+"}.traffic-light:before{content:"";color:#00000080;justify-content:center;align-items:center;font-size:9px;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.app-loading{background:var(--bg);flex:1}.app-layout{flex:1;width:100%;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-collapsed);min-width:var(--sidebar-collapsed);background:var(--bg-surface);border-right:1px solid var(--border);transition:width .25s var(--ease), min-width .25s var(--ease);flex-direction:column;display:flex;overflow:hidden}.sidebar.open{width:var(--sidebar-w);min-width:var(--sidebar-w)}.sidebar-sessions{flex-direction:column;flex:1;gap:1px;padding:6px;display:flex;overflow:hidden auto}.sidebar:not(.open) .sidebar-sessions{align-items:center;padding:6px 4px}.sidebar-empty{color:var(--text-dim);text-align:center;animation:fadeIn .2s var(--ease);padding:12px 8px;font-size:11px}.sidebar-handle{cursor:col-resize;z-index:2;background:0 0;border:none;flex-shrink:0;width:12px;padding:0;position:relative}.sidebar-handle-line{background:var(--border);width:2px;transition:background var(--transition), width var(--transition), left var(--transition), box-shadow var(--transition);border-radius:1px;position:absolute;top:0;bottom:0;left:5px}@media (hover:hover) and (pointer:fine){.sidebar-handle:hover .sidebar-handle-line{background:var(--accent);width:3px;box-shadow:0 0 8px var(--accent-dim);left:4px}}.sidebar-handle:active .sidebar-handle-line{background:var(--accent);width:3px;box-shadow:0 0 12px var(--accent-dim);left:4px}.session-tab{cursor:pointer;height:30px;min-height:30px;color:var(--text-dim);font-size:12px;font-family:var(--font);text-align:left;white-space:nowrap;width:100%;transition:background var(--transition), color var(--transition);background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:0 8px;display:flex}.sidebar:not(.open) .session-tab{justify-content:center;padding:0}.sidebar:not(.open) .session-name,.sidebar:not(.open) .kill-btn,.sidebar:not(.open) .session-tab input,.sidebar:not(.open) .session-attention{display:none}.session-tab:active{transform:scale(.98)}@media (hover:hover) and (pointer:fine){.session-tab:hover{background:var(--bg-hover);color:var(--text)}}.session-tab.active{background:var(--bg-active);color:var(--text)}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot.running{background:var(--accent);box-shadow:0 0 4px var(--accent);animation:3s infinite breathe}.status-dot.ended{background:var(--text-dim);opacity:.4}.session-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.session-attention{background:var(--amber);border-radius:50%;flex-shrink:0;width:6px;height:6px;box-shadow:0 0 0 3px #d4a5441f}.kill-btn{opacity:0;color:var(--text-dim);cursor:pointer;transition:opacity var(--transition), color var(--transition);background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:14px;line-height:1}@media (hover:hover) and (pointer:fine){.session-tab:hover .kill-btn{opacity:1}}.kill-btn:hover{color:var(--red)}.session-tab input{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--font);border-radius:3px;outline:none;flex:1;min-width:0;padding:2px 6px;font-size:12px}.session-tab input:focus{border-color:var(--accent)}.new-session-btn{border:1px dashed var(--border);width:calc(100% - 12px);height:30px;color:var(--text-dim);font-size:12px;font-family:var(--font);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition);background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;gap:4px;margin:0 6px 6px;display:flex}.new-session-btn:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.new-session-btn:hover{background:var(--bg-hover);color:var(--text);border-color:var(--text-dim)}}.sidebar:not(.open) .new-session-btn{color:#0000;border-radius:50%;width:22px;height:22px;min-height:22px;margin:0 auto 6px;padding:0;font-size:0;overflow:hidden}.sidebar:not(.open) .new-session-btn:after{content:"+";color:var(--text-dim);font-size:16px}.terminal-pane{background:0 0;flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.terminal-pane:after{content:"";opacity:.015;pointer-events:none;z-index:1;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.terminal-container{flex:1;overflow:hidden}.terminal-container.connected{animation:.4s ease-out connectFlash}.terminal-container .xterm{height:100%;padding:4px 0 0 4px}.terminal-container .xterm .xterm-cursor-block{box-shadow:0 0 6px var(--accent-dim)}.terminal-empty{color:var(--text-dim);letter-spacing:.04em;animation:fadeIn .25s var(--ease);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.terminal-connecting{color:var(--text-dim);letter-spacing:.04em;animation:fadeIn .2s var(--ease);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.terminal-connecting:after{content:"";background:var(--accent);border-radius:1px;width:6px;height:13px;margin-left:3px;animation:1s step-end infinite pulse;display:inline-block}.auth-gate{background:var(--bg);width:100%;animation:fadeIn .35s var(--ease);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.auth-gate h1{color:var(--text);letter-spacing:.08em;text-transform:lowercase;font-size:15px;font-weight:500}.auth-gate p{color:var(--text-dim);text-align:center;max-width:34ch;font-size:12px;line-height:1.5}.auth-gate button{border:1px solid var(--border);background:var(--bg-surface);color:var(--text);font-size:12px;font-family:var(--font);cursor:pointer;transition:border-color var(--transition), background var(--transition);border-radius:4px;margin-top:6px;padding:8px 20px}.auth-gate button:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.auth-gate button:hover{border-color:var(--accent);background:var(--bg-hover)}}.auth-error{color:var(--red);font-size:12px}.mobile-header{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 8px;display:none}.mobile-menu-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.mobile-menu-btn:active{background:var(--bg-hover)}.hamburger,.hamburger:before,.hamburger:after{background:var(--text);width:16px;height:1.5px;transition:transform .2s var(--ease), background .2s var(--ease);border-radius:1px;display:block}.hamburger{position:relative}.hamburger:before,.hamburger:after{content:"";width:100%;position:absolute;left:0}.hamburger:before{top:-5px}.hamburger:after{top:5px}.mobile-menu-btn.active .hamburger{background:0 0}.mobile-menu-btn.active .hamburger:before{top:0;transform:rotate(45deg)}.mobile-menu-btn.active .hamburger:after{top:0;transform:rotate(-45deg)}.mobile-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;letter-spacing:.04em;flex:1;font-size:12px;overflow:hidden}.mobile-new-btn{border:1px solid var(--border);width:36px;height:36px;color:var(--text-dim);cursor:pointer;font-size:18px;line-height:1;font-family:var(--font);transition:border-color var(--transition), color var(--transition);background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mobile-new-btn:active{border-color:var(--accent);color:var(--text)}.sidebar-backdrop{display:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}@media (width<=1024px) and (width>=641px){:root{--sidebar-w:200px}.session-tab{height:36px;min-height:36px}.new-session-btn{height:36px}.kill-btn{opacity:1}}@media (width<=640px){.window-wrapper{display:block}.window-frame{width:100vw;height:100vh;box-shadow:none;border-radius:0}.title-bar{display:none}.app-layout{flex-direction:column}.mobile-header{display:flex}.sidebar-handle{display:none}.sidebar{z-index:100;width:min(280px,85vw);min-width:min(280px,85vw);transition:transform .25s var(--ease);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{width:min(280px,85vw);min-width:min(280px,85vw);transform:translate(0)}.sidebar-backdrop.visible{z-index:99;animation:fadeIn .2s var(--ease);background:#00000080;display:block;position:fixed;inset:0}.session-tab{gap:10px;height:44px;min-height:44px;padding:0 12px;font-size:13px}.kill-btn{opacity:1;padding:4px 8px;font-size:18px}.new-session-btn{width:calc(100% - 16px);height:44px;margin:0 8px 8px;font-size:13px}.sidebar-sessions{gap:2px;padding:8px}.sidebar-empty{padding:16px 12px}.status-dot{width:8px;height:8px}.auth-gate{padding:0 24px}.terminal-container .xterm{padding:2px 0 0 2px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.terminal-pane:after{display:none}}.split-terminal-view{flex:1;display:flex;overflow:hidden}.split-container{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.split-terminal-view>.terminal-pane,.split-container>.terminal-pane{flex:1;min-width:0;min-height:0}.split-divider{background:var(--border);flex-shrink:0}.split-divider--row{cursor:col-resize;width:1px}.split-divider--column{cursor:row-resize;height:1px}.split-divider:hover{background:var(--accent)}.split-terminal-view .terminal-container:focus-within{box-shadow:inset 0 0 0 2px var(--accent);border-radius:2px}
