.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:#0c0c0c;--bg-surface:#141414;--bg-hover:#1e1e1e;--bg-active:#252525;--border:#2a2a2a;--text:#d4d4d4;--text-dim:#707070;--accent:#5de4c7;--accent-dim:#5de4c726;--red:#e05f65;--sidebar-width:240px;--font-mono:"JetBrains Mono", "Fira Code", "SF Mono", monospace;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--transition:.2s var(--ease-out);--spring:.4s cubic-bezier(.34, 1.56, .64, 1);--spring-back:.3s var(--ease-out)}@keyframes breathe{0%,to{box-shadow:0 0 6px var(--accent)}50%{box-shadow:0 0 2px var(--accent), 0 0 10px var(--accent-dim)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes terminalIn{0%{opacity:0}to{opacity:1}}@keyframes cursorPulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes connectFlash{0%{box-shadow:inset 0 0 0 1px #0000}30%{box-shadow:inset 0 0 0 1px var(--accent), inset 0 0 30px var(--accent-dim)}to{box-shadow:inset 0 0 0 1px #0000}}@keyframes dotAppear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes staggerIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-mono);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app-layout{width:100vw;height:100vh;display:flex;position:relative}.sidebar{background:var(--bg-surface);width:36px;min-width:36px;transition:width var(--spring-back), min-width var(--spring-back);will-change:width;flex-direction:column;display:flex;overflow:hidden}.sidebar.open{width:var(--sidebar-width);min-width:var(--sidebar-width);transition:width var(--spring), min-width var(--spring)}.sidebar-sessions{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex;overflow:hidden auto}.sidebar:not(.open) .sidebar-sessions{align-items:center;padding:8px 4px}.sidebar-handle{cursor:col-resize;z-index:10;flex-shrink:0;width:16px;position:relative}.sidebar-handle-line{background:var(--border);border-radius:1px;width:2px;transition:background .15s ease-out,width .15s ease-out,left .15s ease-out,box-shadow .15s ease-out;position:absolute;top:0;bottom:0;left:7px}@media (hover:hover) and (pointer:fine){.sidebar-handle:hover .sidebar-handle-line{background:var(--accent);width:4px;box-shadow:0 0 12px var(--accent-dim), 0 0 4px var(--accent-dim);left:6px}}.sidebar-handle:active .sidebar-handle-line{background:var(--accent);width:4px;box-shadow:0 0 20px var(--accent-dim), 0 0 6px var(--accent);left:6px}.session-tab{cursor:pointer;height:34px;min-height:34px;color:var(--text-dim);transition:background var(--transition), color var(--transition), transform .16s ease-out;text-align:left;width:100%;font-size:12px;font-family:var(--font-mono);white-space:nowrap;background:0 0;border:none;border-radius:5px;align-items:center;gap:10px;padding:0 10px;display:flex}.sidebar.open .session-tab{animation:staggerIn .25s var(--ease-out) both}.sidebar.open .session-tab:first-child{animation-delay:0s}.sidebar.open .session-tab:nth-child(2){animation-delay:40ms}.sidebar.open .session-tab:nth-child(3){animation-delay:80ms}.sidebar.open .session-tab:nth-child(4){animation-delay:.12s}.sidebar.open .session-tab:nth-child(5){animation-delay:.16s}.sidebar.open .session-tab:nth-child(n+6){animation-delay:.2s}.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{display:none}.session-tab:active{transform:scale(.97)}@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)}.session-tab .status-dot{width:6px;height:6px;animation:dotAppear .25s var(--ease-out) both;border-radius:50%;flex-shrink:0}.session-tab .status-dot.running{background:var(--accent);box-shadow:0 0 6px var(--accent);animation:3s infinite breathe}.session-tab .status-dot.ended{background:var(--text-dim);opacity:.4}.session-tab .session-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.session-tab .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}}.session-tab .kill-btn:hover{color:var(--red)}.session-tab input{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);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% - 16px);height:34px;color:var(--text-dim);font-size:14px;font-family:var(--font-mono);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition), transform .16s ease-out;background:0 0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;margin:0 8px 8px;display:flex}.new-session-btn:active{transform:scale(.95)}@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{border-radius:50%;width:20px;height:20px;min-height:20px;margin:0 auto 8px;padding:0;font-size:12px}.terminal-pane{background:var(--bg);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.terminal-pane:after{content:"";opacity:.02;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;animation:.25s ease-out terminalIn;overflow:hidden}.terminal-container.connected{animation:.5s ease-out connectFlash}.terminal-container .xterm{height:100%;padding:4px 0 0 4px}.terminal-container .xterm .xterm-cursor-block{box-shadow:0 0 8px var(--accent-dim), 0 0 2px var(--accent)}.terminal-empty{color:var(--text-dim);letter-spacing:.05em;animation:fadeInUp .3s var(--ease-out);flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.terminal-connecting{color:var(--text-dim);letter-spacing:.05em;animation:fadeInUp .25s var(--ease-out);flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.terminal-connecting:after{content:"";background:var(--accent);border-radius:1px;width:7px;height:14px;margin-left:4px;animation:1s step-end infinite cursorPulse;display:inline-block}.auth-gate{background:var(--bg);width:100vw;height:100vh;animation:fadeInUp .4s var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.auth-gate h1{color:var(--text);letter-spacing:.1em;text-transform:lowercase;font-size:16px;font-weight:500}.auth-gate p{color:var(--text-dim);font-size:12px}.auth-gate button{border:1px solid var(--border);background:var(--bg-surface);color:var(--text);font-size:13px;font-family:var(--font-mono);cursor:pointer;transition:border-color var(--transition), background var(--transition), box-shadow var(--transition), transform .16s ease-out;border-radius:6px;margin-top:8px;padding:10px 24px}.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);box-shadow:0 0 20px var(--accent-dim)}}.auth-error{color:var(--red);font-size:12px}::-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<=768px){.sidebar.open{z-index:100;position:fixed;top:0;bottom:0;left:0}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}.sidebar,.sidebar.open{transition:none}.terminal-pane:after{display:none}}
