:root{--bg:#0b0d12;--bg-elevated:#121620;--bg-card:#151a26;--bg-hover:#1c2232;--bg-term:#090b10;--border:#252c3f;--border-subtle:#1d2333;--text:#eef1f7;--text-muted:#939db5;--accent:#7c5cff;--accent-hover:#6c49ff;--accent-soft:#7c5cff29;--cyan:#22d3ee;--green:#34d399;--amber:#fbbf24;--red:#f87171;--gray:#6b7280;--radius:12px;--radius-sm:8px;--shadow:0 12px 32px #0000006b;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", "Fira Code", Consolas, "Liberation Mono", Menlo, monospace}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;min-height:100%;margin:0;padding:0;font-size:14.5px;line-height:1.5}#app{flex-direction:column;min-height:100dvh;display:flex}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600}p{margin:0}code,pre,.mono{font-family:var(--font-mono)}.muted{color:var(--text-muted)}.text-sm{font-size:12.5px}.hidden{display:none!important}.logo{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.logo svg{width:100%;height:100%}.boot-loader{justify-content:center;align-items:center;min-height:100dvh;display:flex}.center-row{justify-content:center;align-items:center;gap:10px;display:flex}.spinner{border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.dot-active,.dot-online{background:var(--green);animation:1.8s infinite pulse-green;box-shadow:0 0 #34d399a6}.dot-idle{background:var(--amber)}.dot-disconnected,.dot-offline{background:var(--gray)}.dot-exited{background:var(--red)}@keyframes pulse-green{0%{box-shadow:0 0 #34d39999}70%{box-shadow:0 0 0 7px #34d39900}to{box-shadow:0 0 #34d39900}}.btn,.btn-icon{border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;font-family:inherit;font-size:13.5px;font-weight:500;transition:background .14s,border-color .14s,color .14s,opacity .14s;display:inline-flex}.btn{padding:8px 14px}.btn.sm{padding:5px 10px;font-size:12.5px}.btn.full{width:100%}.btn-icon{width:34px;height:34px;color:var(--text);background:0 0;padding:0}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.secondary{background:var(--bg-hover);border-color:var(--border);color:var(--text)}.btn.secondary:hover:not(:disabled),.btn.secondary.active{background:var(--accent-soft);border-color:var(--accent)}.btn.ghost,.btn-icon.ghost{color:var(--text-muted);background:0 0}.btn.ghost:hover:not(:disabled),.btn-icon.ghost:hover:not(:disabled),.btn-icon.ghost.active{background:var(--bg-hover);color:var(--text)}.btn.danger,.btn.primary.danger{color:#fca5a5;background:#f871712e;border-color:#f8717166}.btn.danger:hover:not(:disabled){background:#f8717147}.danger-text:hover{color:var(--red)!important}.btn:disabled,.btn-icon:disabled{opacity:.55;cursor:not-allowed}.input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);outline:none;padding:9px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.input:focus{border-color:var(--accent)}.totp-input{letter-spacing:.28em;text-align:center;font-size:18px}.field{flex-direction:column;gap:5px;display:flex}.field-label{color:var(--text-muted);font-size:12.5px;font-weight:500}.field-hint{color:var(--text-muted);font-size:11.5px}.form-error{border-radius:var(--radius-sm);color:#fca5a5;background:#f8717124;border:1px solid #f8717159;padding:10px 12px;font-size:13px}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:var(--shadow)}.stack{flex-direction:column;gap:14px;display:flex}.page-shell{flex-direction:column;min-height:100dvh;display:flex}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-subtle);z-index:20;background:#121620d9;justify-content:space-between;align-items:center;padding:12px 20px;display:flex;position:sticky;top:0}.topbar-brand{align-items:center;gap:10px;display:flex}.topbar-title{font-size:16px;font-weight:600}.topbar-actions{align-items:center;gap:8px;display:flex}.page-body{flex:1;width:100%;max-width:1160px;margin:0 auto;padding:22px 20px 48px}.auth-screen{justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.auth-card{flex-direction:column;gap:16px;width:100%;max-width:420px;padding:28px 24px;display:flex}.auth-header{text-align:center;flex-direction:column;align-items:center;gap:8px;margin-bottom:4px;display:flex}.link-details{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border);flex-direction:column;gap:12px;padding:14px;display:flex}.link-code-badge{text-align:center;letter-spacing:.14em;color:var(--cyan);padding:6px;font-size:20px;font-weight:700}.meta-grid{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:13px;display:grid}.meta-grid dt{color:var(--text-muted)}.meta-grid dd{text-align:right;margin:0}.pending-banner{border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:1160px;margin:14px auto 0;padding:12px 16px;display:flex}.pending-banner-text{align-items:center;gap:10px;display:flex}.pending-banner-actions{align-items:center;gap:8px;display:flex}.device-list{flex-direction:column;gap:20px;display:flex}.device-group{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);overflow:hidden}.device-group.offline{opacity:.72}.device-head{cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff04;justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;display:flex}.device-head:hover{background:var(--bg-hover)}.device-head-left,.device-head-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.device-name{font-size:15px}.device-host{font-size:12.5px}.chevron{color:var(--text-muted);transition:transform .18s;display:inline-flex}.chevron.closed{transform:rotate(-90deg)}.session-count-badge{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:1px 8px;font-size:12px}.device-empty{border-top:1px solid var(--border-subtle);padding:16px 20px;font-size:13.5px}.session-grid{border-top:1px solid var(--border-subtle);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;padding:14px 16px 18px;display:grid}.session-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;gap:8px;padding:13px 14px;transition:transform .12s,border-color .14s,background .14s;display:flex}.session-card:hover,.session-card:focus-visible{border-color:var(--accent);background:var(--bg-hover);outline:none}.session-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.session-card-title-row{align-items:center;gap:8px;min-width:0;display:flex}.session-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.session-cmd{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.session-card-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.session-window-title{color:var(--cyan);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.session-meta{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.session-cwd{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.session-preview{background:var(--bg-term);border:1px solid var(--border-subtle);color:#cbd5e1;white-space:pre;border-radius:6px;max-height:98px;margin:2px 0 0;padding:8px 10px;font-size:11px;line-height:1.35;overflow:hidden}.session-preview-empty{font-style:italic}.session-del{width:26px;height:26px}.badge{background:var(--bg-hover);color:var(--text);border-radius:999px;align-items:center;padding:2px 7px;font-size:11.5px;font-weight:500;display:inline-flex}.badge.subtle{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted)}.badge.accent{background:var(--accent-soft);color:#c4b5fd;border:1px solid #7c5cff59}.viewer-pill{color:var(--cyan);background:#22d3ee24;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11.5px;display:inline-flex}.state-pill{border-radius:999px;padding:2px 7px;font-size:11.5px;font-weight:500}.state-pill.state-active{color:var(--green);background:#34d39926}.state-pill.state-idle{color:var(--amber);background:#fbbf2426}.state-pill.state-disconnected{color:var(--text-muted);background:#6b728033}.state-pill.state-exited{color:var(--red);background:#f8717126}.empty-state{flex-direction:column;gap:22px;max-width:680px;margin:24px auto;padding:32px 24px;display:flex}.empty-state-head{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.empty-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:14px;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.quickstart-card{flex-direction:column;gap:12px;margin-top:22px;padding:20px;display:flex}.install{flex-direction:column;gap:14px;display:flex}.seg{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);align-self:flex-start;padding:3px;display:inline-flex}.seg-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px 12px;font-size:13px;font-weight:500}.seg-btn.on{background:var(--accent);color:#fff}.install-body{flex-direction:column;gap:12px;display:flex}.step{align-items:flex-start;gap:12px;display:flex}.step-n{background:var(--accent-soft);color:#c4b5fd;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-top:2px;font-size:12.5px;font-weight:600;display:inline-flex}.step-c{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.step-c .hint{color:var(--text-muted);font-size:12.5px}.codeline{background:var(--bg-term);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:6px 8px 6px 12px;display:flex;overflow-x:auto}.codeline-prefix{color:var(--text-muted);font-family:var(--font-mono);-webkit-user-select:none;user-select:none;font-size:12.5px}.codeline code{color:#e2e8f0;white-space:nowrap;flex:1;font-size:13px}.copy-btn.ok{color:var(--green)}.session-screen{background:var(--bg-term);flex-direction:column;width:100vw;height:100dvh;display:flex;overflow:hidden}.term-topbar{background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.term-topbar-left,.term-topbar-right{align-items:center;gap:6px;min-width:0;display:flex}.term-titles{align-items:baseline;gap:6px;min-width:0;display:flex;overflow:hidden}.term-header-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.term-header-sub{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.font-Controls{align-items:center;display:inline-flex}.term-viewport{background:var(--bg-term);flex:1;justify-content:flex-start;align-items:flex-start;padding:6px 8px;display:flex;position:relative;overflow:hidden}.term-viewport.hscroll{overflow-x:auto}.term-container{width:100%;height:100%}.term-exit-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:#090b10b8;justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}.exit-card{flex-direction:column;gap:12px;width:100%;max-width:380px;padding:20px 24px;display:flex}.exit-title{align-items:center;gap:8px;font-size:15px;display:flex}.extra-keys{background:var(--bg-elevated);border-top:1px solid var(--border-subtle);scrollbar-width:none;flex-shrink:0;align-items:center;gap:5px;padding:6px 8px;display:flex;overflow-x:auto}.extra-keys::-webkit-scrollbar{display:none}.key-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex-shrink:0;padding:6px 10px;font-size:12.5px}.key-btn:active,.key-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.composer-bar{padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:var(--bg-card);border-top:1px solid var(--border);flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.composer-input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-sans);resize:none;outline:none;flex:1;max-height:120px;padding:7px 10px;font-size:14px}.composer-input:focus{border-color:var(--accent)}.settings-grid{flex-direction:column;gap:20px;display:flex}.settings-card{flex-direction:column;gap:16px;padding:20px;display:flex}.settings-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-card-title{align-items:center;gap:9px;display:flex}.settings-card-title h2{font-size:16px}.settings-section-body{flex-direction:column;gap:14px;display:flex}.item-list{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;display:flex;overflow:hidden}.list-row{background:var(--bg-elevated);justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;display:flex}.list-row+.list-row{border-top:1px solid var(--border-subtle)}.list-row-main{flex-direction:column;gap:3px;min-width:0;display:flex}.list-row-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.list-row-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.token-reveal{border-radius:var(--radius-sm);background:#34d3991f;border:1px solid #34d39966;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.token-reveal-head{color:var(--green);align-items:center;gap:8px;font-size:13px;display:flex}.token-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.token-form .input{flex:1;min-width:200px}.scope-checks{align-items:center;gap:12px;display:flex}.check-label{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.security-subcard{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-subtle);padding:14px}.security-subcard h3{font-size:14px}.grid-3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.row-gap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.totp-setup-card{flex-wrap:wrap;align-items:flex-start;gap:18px;padding-top:8px;display:flex}.totp-qr-wrap{border-radius:var(--radius-sm);background:#fff;padding:8px}.totp-qr{display:block}.totp-setup-steps{flex:1;min-width:240px}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;display:flex}.toggle-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.hooks-box{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-subtle);flex-direction:column;gap:8px;padding:14px;display:flex}.hooks-title{color:#c4b5fd;align-items:center;gap:8px;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;opacity:0;background:#05070bb8;justify-content:center;align-items:center;padding:16px;transition:opacity .16s;display:flex;position:fixed;inset:0}.modal-backdrop.show{opacity:1}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:460px;transition:transform .16s;overflow:hidden;transform:translateY(8px)}.modal-backdrop.show .modal{transform:translateY(0)}.modal-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-head h2{font-size:16px}.modal-body{padding:18px}.modal-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;display:flex}#toasts{z-index:200;pointer-events:none;flex-direction:column;gap:8px;max-width:360px;display:flex;position:fixed;bottom:18px;right:18px}.toast{pointer-events:auto;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow);opacity:0;align-items:center;gap:10px;padding:10px 12px;transition:opacity .2s,transform .2s;display:flex;transform:translateY(10px)}.toast.show{opacity:1;transform:translateY(0)}.toast.hide{opacity:0;transform:translateY(6px)}.toast-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px}.toast-success .toast-dot{background:var(--green)}.toast-error .toast-dot{background:var(--red)}.toast-msg{flex:1;font-size:13px}.toast-x{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px;display:inline-flex}@media (max-width:640px){.hide-xs,.hide-sm{display:none!important}.page-body{padding:14px 12px 36px}.session-grid{grid-template-columns:1fr}}.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-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:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:-moz-fit-content;width:fit-content}.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}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
