.ssh-app{--ssh-bg:#1e1e1e;--ssh-bg-2:#252526;--ssh-bg-3:#2d2d30;--ssh-border:#3c3c3c;--ssh-text:#d4d4d4;--ssh-text-dim:#858585;--ssh-accent:#0e639c;--ssh-accent-hover:#1177bb;--ssh-green:#4ec9b0;--ssh-red:#f14c4c;--ssh-yellow:#dcdcaa;display:flex;height:calc(100vh - 57px);background:var(--ssh-bg);color:var(--ssh-text);font-size:13px}.ssh-app button{font-family:inherit;cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:12px;width:auto;background:var(--ssh-bg-3);color:var(--ssh-text);transition:background .15s}.ssh-app button:hover{background:#3e3e42}.ssh-app button.primary{background:var(--ssh-accent);color:#fff}.ssh-app button.primary:hover{background:var(--ssh-accent-hover)}.ssh-app button:disabled{opacity:.5;cursor:not-allowed}.ssh-app input,.ssh-app select,.ssh-app textarea{font-family:inherit;background:var(--ssh-bg);color:var(--ssh-text);border:1px solid var(--ssh-border);border-radius:4px;padding:6px 8px;font-size:12px;width:100%}.ssh-app input:focus,.ssh-app select:focus,.ssh-app textarea:focus{outline:1px solid var(--ssh-accent)}.ssh-app .sidebar{width:260px;flex-shrink:0;background:var(--ssh-bg-2);border-right:1px solid var(--ssh-border);display:flex;flex-direction:column}.ssh-app .sidebar-header{padding:12px;border-bottom:1px solid var(--ssh-border);display:flex;justify-content:space-between;align-items:center;font-weight:600}.ssh-app .conn-list{flex:1 1;overflow-y:auto;padding:6px}.ssh-app .conn-item{padding:8px 10px;border-radius:4px;margin-bottom:4px;cursor:pointer;border:1px solid transparent}.ssh-app .conn-item:hover{background:var(--ssh-bg-3)}.ssh-app .conn-item.active{background:var(--ssh-bg-3);border-color:var(--ssh-accent)}.ssh-app .conn-item .name{font-weight:500;display:flex;align-items:center;gap:6px}.ssh-app .conn-item .meta{color:var(--ssh-text-dim);font-size:11px;margin-top:2px}.ssh-app .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ssh-app .dot.on{background:var(--ssh-green)}.ssh-app .dot.off{background:var(--ssh-text-dim)}.ssh-app .conn-actions{display:flex;gap:4px;margin-top:6px}.ssh-app .conn-actions button{padding:3px 8px;font-size:11px}.ssh-app .center{flex:1 1;display:flex;flex-direction:column;min-width:0}.ssh-app .center-header{height:36px;background:var(--ssh-bg-2);border-bottom:1px solid var(--ssh-border);display:flex;align-items:center;padding:0 12px;color:var(--ssh-text-dim);gap:8px}.ssh-app .terminal-wrap{flex:1 1;background:#000;min-height:0;padding:4px}.ssh-app .terminal-wrap .xterm,.ssh-app .terminal-wrap .xterm-screen,.ssh-app .terminal-wrap .xterm-viewport{height:100%!important;width:100%!important}.ssh-app .placeholder{flex:1 1;display:flex;align-items:center;justify-content:center;color:var(--ssh-text-dim)}.ssh-app .chat{width:420px;flex-shrink:0;background:var(--ssh-bg-2);border-left:1px solid var(--ssh-border);display:flex;flex-direction:column}.ssh-app .chat-header{padding:12px;border-bottom:1px solid var(--ssh-border);font-weight:600;display:flex;justify-content:space-between;align-items:center}.ssh-app .chat-msgs{flex:1 1;overflow-y:auto;padding:12px;gap:12px}.ssh-app .chat-msgs,.ssh-app .msg{display:flex;flex-direction:column}.ssh-app .msg{gap:4px}.ssh-app .msg .role{font-size:11px;color:var(--ssh-text-dim)}.ssh-app .msg.user .bubble{background:var(--ssh-accent);color:#fff;align-self:flex-end}.ssh-app .bubble{background:var(--ssh-bg-3);padding:8px 10px;border-radius:6px;white-space:pre-wrap;word-break:break-word;line-height:1.5;max-width:100%}.ssh-app .tool-step{background:var(--ssh-bg);border:1px solid var(--ssh-border);border-radius:6px;padding:8px 10px;font-size:12px}.ssh-app .tool-step .cmd{font-family:Consolas,Courier New,monospace;color:var(--ssh-yellow);word-break:break-all}.ssh-app .tool-step .out{font-family:Consolas,Courier New,monospace;color:var(--ssh-text-dim);margin-top:6px;max-height:160px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.ssh-app .tool-step .status-ok{color:var(--ssh-green)}.ssh-app .tool-step .status-err{color:var(--ssh-red)}.ssh-app .chat-input{border-top:1px solid var(--ssh-border);padding:10px;display:flex;gap:8px}.ssh-app .chat-input textarea{resize:none;height:56px}.ssh-modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:100;font-size:13px;color:#d4d4d4}.ssh-modal{background:#252526;border:1px solid #3c3c3c;border-radius:8px;width:420px;max-width:90vw;padding:20px}.ssh-modal h3{margin-bottom:16px}.ssh-modal button{font-family:inherit;cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:12px;width:auto;background:#2d2d30;color:#d4d4d4}.ssh-modal button:hover{background:#3e3e42}.ssh-modal button.primary{background:#0e639c;color:#fff}.ssh-modal button.primary:hover{background:#1177bb}.ssh-modal button:disabled{opacity:.5;cursor:not-allowed}.ssh-modal input,.ssh-modal select,.ssh-modal textarea{font-family:inherit;background:#1e1e1e;color:#d4d4d4;border:1px solid #3c3c3c;border-radius:4px;padding:6px 8px;font-size:12px;width:100%}.ssh-modal input:focus,.ssh-modal select:focus,.ssh-modal textarea:focus{outline:1px solid #0e639c}.ssh-modal .form-row{margin-bottom:12px}.ssh-modal .form-row label{display:block;margin-bottom:4px;color:#858585;font-size:12px}.ssh-modal .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.ssh-modal .row-2{display:flex;gap:8px}.ssh-modal .row-2>*{flex:1 1}.ssh-spinner{display:inline-block;width:12px;height:12px;border:2px solid #858585;border-top-color:#0e639c;border-radius:50%;animation:ssh-spin .8s linear infinite}@keyframes ssh-spin{to{transform:rotate(1turn)}}