/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.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{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{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;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}:root{color-scheme:dark;--bg: #050505;--bg-soft: #090909;--panel: #0b0b0b;--panel-raised: #111111;--line: rgba(255, 255, 255, .12);--line-strong: rgba(255, 255, 255, .22);--text: #ededed;--muted: #a3a3a3;--faint: #707070;--accent: #f2f2f2;--accent-deep: #c9c9c9;--blue: #c4c4c4;--amber: #b3b3b3;--red: #8a8a8a;--radius: 14px;--mono: "JetBrains Mono", "Cascadia Code", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--sans: "Inter", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:focus-visible,[role=tab]:focus-visible,input:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.55}code{font-family:var(--mono)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#b4b4b42e;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#b4b4b44d}*{scrollbar-width:thin;scrollbar-color:rgba(180,180,180,.2) transparent}.app-shell{position:relative;display:flex;height:100vh;height:100dvh;background:radial-gradient(circle at 12% -12%,rgba(255,255,255,.07),transparent 38%),radial-gradient(circle at 94% -4%,rgba(255,255,255,.045),transparent 34%),linear-gradient(180deg,#080808,#050505 60%)}.sidebar{position:relative;z-index:20;display:flex;flex-direction:column;flex:0 0 292px;width:292px;min-height:0;border-right:1px solid var(--line);background:linear-gradient(180deg,#0e0e0ef5,#070707fa);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sidebar:after{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);pointer-events:none}.brand{display:flex;align-items:center;gap:11px;height:74px;padding:0 18px;flex:0 0 auto}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#0a0a0a;background:linear-gradient(145deg,#fff,#c9c9c9 55%,#8f8f8f);box-shadow:0 0 0 1px #ffffff59,0 6px 18px #ffffff47}.brand-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.brand-title{font-size:13.5px;font-weight:650;letter-spacing:-.01em;white-space:nowrap}.brand-subtitle{font-size:10.5px;color:var(--faint);letter-spacing:.09em;text-transform:uppercase}.sidebar-close{display:none;margin-left:auto}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 12px 18px}.sidebar-section{padding:14px 6px;border-top:1px solid rgba(180,180,180,.08)}.sidebar-section:first-child{border-top:0;padding-top:4px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:10px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.heading-actions{display:flex;align-items:center;gap:7px}.text-toggle{padding:2px 6px;border:1px solid transparent;border-radius:5px;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.text-toggle:hover{color:var(--muted);border-color:var(--line)}.text-toggle.is-on{color:var(--accent);border-color:#ffffff4d;background:#ffffff12}.count-badge{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 6px;border-radius:99px;background:#b4b4b41a;color:var(--muted);font-size:9.5px;font-weight:600;letter-spacing:.02em}.icon-button{display:inline-grid;place-items:center;width:27px;height:27px;border:1px solid transparent;border-radius:7px;color:var(--faint);transition:color .12s ease,background .12s ease,border-color .12s ease}.icon-button:hover{color:var(--text);border-color:var(--line);background:#b4b4b414}.icon-button.is-spinning svg{animation:spin .7s linear infinite}.workspace-card{border:1px solid var(--line);border-radius:13px;margin-top:2px;padding:12px;background:linear-gradient(160deg,rgba(255,255,255,.045),transparent 52%),#ffffff05;box-shadow:inset 0 1px #ffffff08}.workspace-card .section-heading{margin-bottom:10px}.workspace-title{display:flex;align-items:center;gap:9px;min-width:0}.workspace-folder{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border-radius:8px;color:var(--accent);background:#ffffff17;border:1px solid rgba(255,255,255,.16)}.workspace-name{font-size:12.5px;font-weight:620;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-path{margin-top:1px;font-family:var(--mono);font-size:9.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left}.workspace-facts{display:flex;flex-direction:column;gap:5px;margin-top:11px}.fact{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden}.fact svg{flex:0 0 auto;color:var(--faint)}.fact span{overflow:hidden;text-overflow:ellipsis}.fact em{color:var(--amber);font-style:normal}.sidebar-skeleton{display:flex;flex-direction:column;gap:8px}.sidebar-skeleton span{height:10px;border-radius:5px;background:linear-gradient(90deg,#b4b4b414,#b4b4b429,#b4b4b414);background-size:200% 100%;animation:shimmer 1.6s linear infinite}.sidebar-skeleton span:nth-child(2){width:76%}.sidebar-skeleton span:nth-child(3){width:54%}.session-list{display:flex;flex-direction:column;gap:3px}.session-item{display:flex;align-items:stretch;border-radius:8px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.session-item:hover{background:#b4b4b40e}.session-item.is-active{background:#ffffff0f;border-color:#ffffff24}.session-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:7px 4px 7px 8px;text-align:left}.session-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.session-name{font-size:11.5px;font-weight:550;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-cwd{font-family:var(--mono);font-size:9.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-close{display:grid;place-items:center;width:24px;margin-right:3px;border-radius:6px;color:transparent}.session-item:hover .session-close,.session-item.is-active .session-close{color:var(--faint)}.session-close:hover{color:var(--red);background:#ffffff17}.files-section{padding-bottom:8px}.file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.file-item{display:flex;align-items:center;gap:7px;width:100%;padding:5px 7px;border-radius:6px;text-align:left;color:var(--muted);transition:background .11s ease,color .11s ease}.file-item:hover{background:#b4b4b412;color:var(--text)}.file-item.is-hidden{opacity:.55}.file-icon{display:inline-flex;flex:0 0 auto;color:var(--faint)}.file-icon.directory{color:#c9c9c9}.file-name{flex:1;min-width:0;font-family:var(--mono);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{flex:0 0 auto;font-family:var(--mono);font-size:9px;color:var(--faint)}.show-more{margin-top:7px;padding:5px 7px;font-size:10px;color:var(--faint);border-radius:6px}.show-more:hover{color:var(--accent);background:#ffffff0f}.muted-note{margin:4px 6px;font-size:10.5px;line-height:1.5;color:var(--faint)}.capabilities{padding-bottom:20px}.capability-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.capability{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid rgba(180,180,180,.09);border-radius:7px;font-family:var(--mono);font-size:10px;color:var(--faint);background:#ffffff03}.capability .status-dot{background:#555;box-shadow:none}.capability.is-ready{color:var(--muted)}.capability.is-ready .status-dot{background:var(--accent);box-shadow:0 0 7px #ffffff80}.sidebar-footer{display:flex;align-items:flex-start;gap:8px;flex:0 0 auto;padding:13px 18px;border-top:1px solid var(--line);background:#0606068c;font-size:10px;line-height:1.55;color:var(--faint)}.sidebar-footer svg{flex:0 0 auto;margin-top:1px;color:var(--faint)}.sidebar-footer strong{color:var(--muted);font-weight:600}.main-panel{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.topbar{display:flex;align-items:center;gap:12px;height:66px;flex:0 0 auto;padding:0 18px;border-bottom:1px solid var(--line);background:#07070773;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-menu{display:none}.breadcrumbs{display:flex;align-items:center;gap:7px;min-width:0;font-size:11.5px;color:var(--faint)}.breadcrumbs svg{color:#5a5a5a;flex:0 0 auto}.crumb-muted{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.crumb-current{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--text)}.crumb-divider{width:1px;height:14px;margin:0 2px;background:var(--line)}.branch-chip{display:inline-flex;align-items:center;gap:5px;max-width:190px;overflow:hidden;padding:3px 7px;border:1px solid var(--line);border-radius:6px;background:#b4b4b40a;font-family:var(--mono);font-size:9.5px;color:var(--muted);white-space:nowrap}.branch-chip svg{color:var(--blue)}.branch-chip i{width:5px;height:5px;border-radius:50%;background:var(--amber)}.topbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.status-pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px;border-radius:99px;border:1px solid var(--line);background:#b4b4b40a;font-size:10px;font-weight:550;letter-spacing:.02em;color:var(--muted)}.status-pill.is-online{border-color:#fff3;background:#ffffff0e;color:#ededed}.status-pill.is-offline{border-color:#ffffff38;background:#ffffff0f;color:#d0d0d0}.backend-chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 8px;border-radius:6px;border:1px solid var(--line);font-family:var(--mono);font-size:9.5px;color:var(--faint)}.backend-chip svg{color:var(--blue)}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:31px;padding:0 12px;border-radius:8px;border:1px solid rgba(255,255,255,.35);background:linear-gradient(180deg,#fff,#d4d4d4);color:#0a0a0a;font-size:11.5px;font-weight:680;letter-spacing:-.005em;box-shadow:0 1px #ffffff52 inset,0 6px 18px #ffffff29;transition:transform .11s ease,box-shadow .11s ease,filter .11s ease}.primary-button:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 1px #ffffff5c inset,0 8px 22px #ffffff3d}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button.large{height:38px;padding:0 16px;font-size:12.5px}.status-dot{display:inline-block;flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--faint)}.dot-connected{background:var(--accent);box-shadow:0 0 8px #ffffffa6}.dot-connecting,.dot-reconnecting{background:var(--amber);box-shadow:0 0 8px #ffffff8c;animation:pulse-dot 1.3s ease-in-out infinite}.dot-closed{background:var(--red);box-shadow:0 0 7px #ffffff73}.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:31px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#b4b4b409;color:var(--muted);font-size:11.5px;font-weight:560;transition:color .11s ease,border-color .11s ease,background .11s ease}.ghost-button:hover{color:var(--text);border-color:#ffffff42;background:#ffffff0e}.ghost-button svg{color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:24px;background:#020202a8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:modal-fade .14s ease-out}.connect-modal{display:flex;flex-direction:column;width:min(700px,100%);max-height:min(88vh,860px);overflow:hidden;border:1px solid var(--line-strong);border-radius:18px;background:linear-gradient(180deg,#121212,#0a0a0a);box-shadow:0 40px 100px #0000008c,inset 0 1px #ffffff0b;animation:modal-in .17s cubic-bezier(.2,.75,.25,1)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex:0 0 auto;padding:20px 22px 18px;border-bottom:1px solid var(--line);background:radial-gradient(circle at 0% 0%,rgba(255,255,255,.075),transparent 55%),transparent}.modal-title-wrap{display:flex;gap:12px;min-width:0}.modal-mark{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:11px;color:var(--accent);background:#ffffff14;border:1px solid rgba(255,255,255,.18)}.modal-title-wrap h2{margin:1px 0 3px;font-size:17px;font-weight:650;letter-spacing:-.02em}.modal-title-wrap p{margin:0;font-size:11.5px;line-height:1.5;color:var(--muted)}.modal-body{flex:1;min-height:0;overflow-y:auto;padding:18px 22px 20px}.connect-session-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#ffffff05}.connect-session-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.connect-label{font-size:9px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.connect-session-copy strong{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connect-session-copy code{font-size:9.5px;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connect-mode-tabs{display:inline-flex;gap:3px;margin:15px 0 13px;padding:3px;border:1px solid var(--line);border-radius:9px;background:#0404048c}.connect-mode-tabs button{height:27px;padding:0 12px;border:1px solid transparent;border-radius:6px;color:var(--faint);font-size:11px;font-weight:550}.connect-mode-tabs button:hover{color:var(--muted)}.connect-mode-tabs button.is-active{color:var(--text);border-color:var(--line-strong);background:var(--panel-raised);box-shadow:inset 0 1px #ffffff0a}.modal-help{margin:11px 0;font-size:11.5px;line-height:1.62;color:var(--muted)}.modal-help code{padding:1px 5px;border-radius:4px;background:#b4b4b417;color:var(--accent);font-size:10.5px}.command-group{margin:9px 0;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#070707}.command-label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;font-size:10px;font-weight:570;color:var(--faint);background:#b4b4b409}.command-label strong{color:var(--muted);font-weight:600}.command-label button{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;height:22px;padding:0 7px;border:1px solid transparent;border-radius:5px;color:var(--faint);font-size:9.5px}.command-label button:hover{color:var(--accent);border-color:#fff3;background:#ffffff0f}.command-group pre{margin:0;padding:10px 12px;overflow-x:auto;border-top:1px solid rgba(180,180,180,.08);background:#050505}.command-group code{font-family:var(--mono);font-size:10.5px;line-height:1.55;color:#d8d8d8;white-space:pre}.single-command{margin:10px 0;border:1px dashed rgba(180,180,180,.16);border-radius:9px;padding:0 10px 2px}.single-command summary{padding:8px 0;cursor:pointer;font-size:10.5px;color:var(--faint);-webkit-user-select:none;user-select:none}.single-command summary:hover{color:var(--muted)}.ticket-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:10px 12px;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:#ffffff0b}.ticket-main{display:flex;align-items:flex-start;gap:9px;min-width:0}.ticket-main svg{flex:0 0 auto;margin-top:2px;color:var(--amber)}.ticket-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.ticket-copy span{font-size:9px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:#bdbdbd}.ticket-copy code{font-family:var(--mono);font-size:10px;color:#e2e2e2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-actions{display:flex;gap:5px;flex:0 0 auto}.ticket-actions button{display:inline-flex;align-items:center;gap:4px;height:23px;padding:0 7px;border:1px solid rgba(255,255,255,.22);border-radius:5px;color:#d0d0d0;font-size:9.5px}.ticket-actions button:hover{color:#f2f2f2;background:#ffffff14}.ticket-note{margin:8px 1px 0;font-size:10px;line-height:1.55;color:gray}.connect-loading,.connect-empty{display:flex;align-items:center;justify-content:center;gap:9px;padding:22px 14px;border:1px solid var(--line);border-radius:9px;background:#ffffff04;font-size:11px;line-height:1.55;color:var(--faint);text-align:center}.connect-empty{margin-top:12px}.connect-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff0f;color:#d0d0d0;font-size:11px}.connect-error button{height:23px;padding:0 8px;border:1px solid currentColor;border-radius:5px;font-size:10px;flex:0 0 auto}.connect-footer{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px;padding-top:13px;border-top:1px solid var(--line);font-size:9.5px;color:#707070}.connect-footer span{display:inline-flex;align-items:center;gap:5px}.connect-footer svg{color:var(--accent);opacity:.75}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.command-note{margin:0;padding:8px 12px 10px;border-top:1px solid rgba(255,255,255,.07);font-size:9.5px;line-height:1.6;color:#707070}.command-note code{color:#c9c9c9;font-size:9.5px}.tabbar{display:flex;align-items:center;gap:10px;height:47px;flex:0 0 auto;padding:0 12px;border-bottom:1px solid var(--line);background:#0808086b}.tab-scroll{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.tab-scroll::-webkit-scrollbar{display:none}.tab{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:96px;max-width:218px;height:31px;padding:0 5px 0 9px;border:1px solid transparent;border-radius:8px;color:var(--faint);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s ease,color .12s ease,border-color .12s ease}.tab:hover{color:var(--muted);background:#b4b4b40e}.tab.is-active{color:var(--text);border-color:var(--line-strong);background:linear-gradient(180deg,#151515,#101010);box-shadow:inset 0 1px #ffffff09,0 2px 7px #0000002e}.tab-icon{display:inline-flex;flex:0 0 auto;color:var(--accent);opacity:.85}.tab-icon.is-exited{color:var(--amber)}.tab-title{flex:1;min-width:0;font-size:11.5px;font-weight:540;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tab-rename{flex:1;min-width:60px;height:22px;padding:0 5px;border:1px solid rgba(255,255,255,.5);border-radius:5px;background:#070707;color:var(--text);font-size:11px}.tab-close{display:grid;place-items:center;flex:0 0 auto;width:20px;height:20px;border-radius:5px;color:transparent;transition:color .12s ease,background .12s ease}.tab:hover .tab-close,.tab.is-active .tab-close{color:var(--faint)}.tab-close:hover{color:var(--red);background:#ffffff1a}.tab-add{display:grid;place-items:center;flex:0 0 auto;width:29px;height:29px;margin-left:2px;border:1px dashed rgba(180,180,180,.22);border-radius:8px;color:var(--faint);transition:color .12s ease,border-color .12s ease,background .12s ease}.tab-add:hover:not(:disabled){color:var(--accent);border-color:#ffffff61;background:#ffffff0e}.tabbar-hint{flex:0 0 auto;font-size:9.5px;color:#5f5f5f;letter-spacing:.02em}.terminal-stage{position:relative;flex:1;min-height:0;padding:12px}.terminal-pane{position:absolute;top:12px;right:12px;bottom:12px;left:12px;display:none;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#070707;box-shadow:0 24px 60px #00000052,0 0 0 1px #00000040}.terminal-pane.is-active{display:flex;animation:pane-in .16s ease-out}.pane-toolbar{display:flex;align-items:center;gap:10px;height:37px;flex:0 0 auto;padding:0 10px 0 12px;border-bottom:1px solid rgba(180,180,180,.09);background:linear-gradient(180deg,#111,#0c0c0c);color:var(--faint)}.pane-state{display:flex;align-items:center;gap:7px;min-width:0;font-size:10px;letter-spacing:.02em}.pane-state-label{color:var(--muted)}.toolbar-divider{width:1px;height:12px;margin:0 2px;background:var(--line)}.pane-cwd{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:10px;color:var(--faint)}.pane-actions{display:flex;align-items:center;gap:5px;margin-left:auto}.pane-actions button{height:23px;padding:0 8px;border:1px solid transparent;border-radius:6px;color:var(--faint);font-size:10px;font-weight:540;transition:color .11s ease,background .11s ease,border-color .11s ease}.pane-actions button:hover{color:var(--text);border-color:var(--line);background:#b4b4b412}.terminal-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;padding:7px 12px;border-bottom:1px solid transparent;font-size:11px}.exit-banner{color:#d8d8d8;background:#ffffff12;border-bottom-color:#ffffff26}.error-banner{color:#d0d0d0;background:#ffffff13;border-bottom-color:#ffffff29}.banner-actions{display:flex;gap:6px;flex:0 0 auto}.banner-actions button{height:23px;padding:0 8px;border:1px solid currentColor;border-radius:6px;font-size:10px;opacity:.8}.banner-actions button:hover{opacity:1;background:#ffffff0d}.terminal-surface{position:relative;flex:1;min-height:0}.terminal-link-bar{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.14);background:#ffffff0e;font-size:11px}.link-bar-label{flex:0 0 auto;font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.link-bar-url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 7px;border:1px solid var(--line);border-radius:6px;background:#ffffff0a;color:var(--text);font-family:var(--mono);font-size:10.5px;text-align:left;transition:color .11s ease,border-color .11s ease,background .11s ease}.link-bar-url:hover{color:#fff;border-color:#ffffff4d;background:#ffffff14}.link-bar-actions{display:flex;flex:0 0 auto;gap:6px}.link-bar-actions button{height:23px;padding:0 8px;border:1px solid currentColor;border-radius:6px;font-size:10px;color:var(--muted);opacity:.85}.link-bar-actions button:hover{color:var(--text);opacity:1;background:#ffffff0f}.link-bar-dismiss{color:var(--faint)!important}.terminal-mount{position:absolute;top:9px;right:6px;bottom:6px;left:11px}.terminal-mount .xterm{height:100%;padding:0}.terminal-mount .xterm-viewport{background-color:transparent!important;scrollbar-width:thin}.terminal-mount .xterm-screen{padding-bottom:2px}.xterm .xterm-helper-textarea{opacity:0}.pane-loading{display:flex;align-items:center;justify-content:center;gap:9px;height:100%;color:var(--faint);font-size:11.5px}.empty-state{position:absolute;top:12px;right:12px;bottom:12px;left:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;text-align:center;border:1px dashed rgba(180,180,180,.16);border-radius:var(--radius);background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.05),transparent 45%),#0a0a0a66}.empty-mark{display:grid;place-items:center;width:54px;height:54px;margin-bottom:4px;border-radius:16px;color:var(--accent);background:#fff1;border:1px solid rgba(255,255,255,.18);box-shadow:0 12px 36px #ffffff1a}.empty-state h2{margin:0;font-size:19px;font-weight:650;letter-spacing:-.02em}.empty-state p{max-width:460px;margin:0 0 6px;font-size:12px;line-height:1.65;color:var(--muted)}.empty-state code{font-size:10.5px;color:var(--accent)}.empty-shortcut{margin-top:6px;font-family:var(--mono);font-size:9.5px;color:#5f5f5f}.statusbar{display:flex;align-items:center;gap:10px;height:29px;flex:0 0 auto;padding:0 14px;border-top:1px solid var(--line);background:#0707079e;font-family:var(--mono);font-size:9.5px;color:var(--faint);white-space:nowrap}.status-segment{display:inline-flex;align-items:center;gap:5px}.status-segment svg{color:var(--accent);opacity:.8}.status-segment+.status-segment{padding-left:10px;border-left:1px solid rgba(180,180,180,.1)}.status-cwd{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:gray}.status-right{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:#666}.status-divider{width:1px;height:10px;margin:0 2px;background:var(--line)}.boot-screen{position:relative;display:grid;place-items:center;height:100vh;height:100dvh;overflow:hidden;background:radial-gradient(circle at 50% 22%,rgba(255,255,255,.06),transparent 42%),radial-gradient(circle at 82% 86%,rgba(255,255,255,.04),transparent 36%),#050505}.boot-glow{position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.07);box-shadow:0 0 0 80px #ffffff04,0 0 0 160px #ffffff03;pointer-events:none}.boot-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:min(430px,calc(100vw - 40px));padding:38px 34px 32px;text-align:center;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#111111e6,#090909f0);box-shadow:0 34px 90px #00000073,inset 0 1px #ffffff0a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.boot-mark{display:grid;place-items:center;width:58px;height:58px;margin-bottom:18px;border-radius:17px;color:#0a0a0a;background:linear-gradient(145deg,#fff,#c9c9c9 60%,#8f8f8f);box-shadow:0 14px 38px #ffffff40}.boot-card h1{margin:0;font-size:22px;font-weight:650;letter-spacing:-.025em}.boot-hint{max-width:320px;margin:10px 0 0;font-size:12px;line-height:1.6;color:var(--muted)}.boot-error{max-width:330px;margin:12px 0 0;padding:9px 12px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff0f;color:#d0d0d0;font-size:11px;line-height:1.5}.boot-card .primary-button{margin-top:20px}.boot-meta{margin-top:20px;font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:#5f5f5f}.boot-loader{display:flex;gap:7px;margin-top:22px}.boot-loader span{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.3;animation:boot-bounce 1.1s ease-in-out infinite}.boot-loader span:nth-child(2){animation-delay:.13s}.boot-loader span:nth-child(3){animation-delay:.26s}.toast{position:fixed;right:18px;bottom:44px;z-index:100;max-width:min(420px,calc(100vw - 36px));padding:10px 14px;border:1px solid var(--line-strong);border-radius:10px;background:#111111f5;box-shadow:0 16px 46px #0006;color:var(--text);font-size:11.5px;line-height:1.5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:toast-in .18s ease-out}.mini-spinner{display:inline-block;flex:0 0 auto;width:12px;height:12px;border:1.7px solid rgba(255,255,255,.3);border-top-color:var(--accent);border-radius:50%;animation:spin .65s linear infinite}.primary-button .mini-spinner{border-color:#00000040;border-top-color:#0a0a0a}.sidebar-backdrop{display:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes boot-bounce{0%,to{opacity:.25;transform:translateY(0)}45%{opacity:1;transform:translateY(-4px)}}@keyframes pane-in{0%{opacity:.6;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1120px){.sidebar{flex-basis:264px;width:264px}.tabbar-hint{display:none}}@media(max-width:960px){.backend-chip{display:none}.sidebar{position:fixed;top:0;bottom:0;left:0;width:288px;flex-basis:288px;transform:translate(-101%);transition:transform .2s cubic-bezier(.2,.7,.2,1);box-shadow:24px 0 60px #00000073}.sidebar.is-open{transform:translate(0)}.sidebar-close{display:inline-grid}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;display:block;background:#02020294;opacity:0;pointer-events:none;transition:opacity .18s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar-backdrop.is-open{opacity:1;pointer-events:auto}.mobile-menu{display:inline-grid}}@media(max-width:700px){.topbar{height:58px;padding:0 12px;gap:8px}.crumb-muted,.crumb-divider,.branch-chip{display:none}.crumb-current{max-width:130px}.status-pill{padding:0 7px;font-size:9px}.topbar-actions .primary-button span,.connect-button span{display:none}.topbar-actions .primary-button,.connect-button{width:31px;padding:0}.modal-backdrop{padding:10px}.connect-modal{max-height:94vh;border-radius:14px}.modal-header{padding:16px}.modal-body{padding:14px 16px 18px}.ticket-panel{flex-direction:column;align-items:stretch}.ticket-actions{justify-content:flex-end}.tabbar{padding:0 8px}.tab{max-width:160px}.terminal-stage{padding:8px}.terminal-pane,.empty-state{top:8px;right:8px;bottom:8px;left:8px}.pane-actions button{padding:0 6px;font-size:9.5px}.pane-state-label{display:none}.statusbar{padding:0 10px;gap:8px}.status-segment:nth-child(2),.status-segment:nth-child(3),.status-right .status-divider{display:none}.terminal-banner{flex-direction:column;align-items:flex-start;gap:6px}}@media(max-height:680px){.sidebar-footer{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.ports-button.is-open{color:var(--text);border-color:#ffffff42;background:#ffffff0e}.ports-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:#ffffff1f;font-family:var(--mono);font-size:9.5px;color:var(--text)}.ports-panel{position:fixed;top:58px;right:16px;z-index:95;display:flex;flex-direction:column;gap:12px;width:min(340px,calc(100vw - 32px));padding:14px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#0b0b0bfa;box-shadow:0 24px 60px #0009;animation:modal-fade .12s ease-out}.ports-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ports-title{display:block;font-size:12px;font-weight:650;color:var(--text)}.ports-host{display:block;max-width:220px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:9.5px;color:var(--faint)}.ports-head-actions{display:flex;align-items:center;gap:4px}.ports-manual{display:flex;gap:8px}.ports-manual input{flex:1;min-width:0;height:31px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg-soft);color:var(--text);font-family:var(--mono);font-size:11.5px}.ports-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}.port-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.port-badge{font-family:var(--mono);font-size:12px;font-weight:650;color:var(--text)}.port-address{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:9.5px;color:var(--faint)}.port-actions{display:flex;align-items:center;gap:4px}.port-action{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--line);border-radius:7px;background:#b4b4b40a;color:var(--muted);transition:color .11s ease,border-color .11s ease,background .11s ease}.port-action:hover{color:var(--text);border-color:#ffffff42;background:#ffffff0f}.ports-hint{margin:0;font-size:10px;line-height:1.5;color:var(--faint)}.ports-hint code{padding:1px 4px;border-radius:4px;background:#ffffff0f;font-size:10px}
