.login-page[data-v-fd31fea5]{height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card[data-v-fd31fea5]{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2rem;width:min(340px,calc(100% - 2rem));display:flex;flex-direction:column;gap:1.25rem}.logo[data-v-fd31fea5]{display:block;width:120px;margin:0 auto}.agent-link[data-v-fd31fea5]{display:block;text-align:center;font-size:.78rem;color:var(--text-muted);text-decoration:none;margin-top:-.5rem}.agent-link[data-v-fd31fea5]:hover{color:var(--primary)}form[data-v-fd31fea5]{display:flex;flex-direction:column;gap:.75rem}.field[data-v-fd31fea5]{display:flex;flex-direction:column;gap:.35rem}.field label[data-v-fd31fea5]{font-size:.8rem;color:var(--text-dim)}.field input[data-v-fd31fea5]{padding:.5rem .7rem;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.95rem;outline:none}.field input[data-v-fd31fea5]:focus{border-color:var(--primary)}.error[data-v-fd31fea5]{color:var(--danger);font-size:.82rem}button[type=submit][data-v-fd31fea5]{padding:.55rem;border-radius:4px;border:none;background:var(--primary);color:#fff;font-size:.95rem;font-weight:500;cursor:pointer;margin-top:.25rem}button[type=submit][data-v-fd31fea5]:hover:not(:disabled){background:var(--primary-h)}button[type=submit][data-v-fd31fea5]:disabled{background:var(--border);color:var(--text-muted);cursor:default}.sidebar[data-v-f90e0e51]{width:220px;min-width:220px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:transform .2s ease,width .2s ease,min-width .2s ease;z-index:200}.sidebar.collapsed[data-v-f90e0e51]{width:0;min-width:0;overflow:hidden;border-right:none}header[data-v-f90e0e51]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;font-size:.75rem;font-weight:600;color:var(--text-dim);border-bottom:1px solid var(--border);letter-spacing:.06em;flex-shrink:0}.agent-status[data-v-f90e0e51]{font-size:.68rem;font-weight:500;letter-spacing:.02em;border-radius:3px;padding:.1rem .3rem}.agent-status.online[data-v-f90e0e51]{color:#34d399}.agent-status.offline[data-v-f90e0e51]{color:var(--text-muted)}.session-list[data-v-f90e0e51]{flex:1;overflow-y:auto;padding:.4rem 0}.section-label[data-v-f90e0e51]{padding:.35rem .75rem .2rem;font-size:.7rem;color:var(--text-muted);letter-spacing:.04em}.session-item[data-v-f90e0e51]{display:flex;align-items:center;gap:.2rem;padding:.45rem .6rem;cursor:pointer;border-radius:4px;margin:0 .25rem;min-height:2.4rem}.session-item[data-v-f90e0e51]:hover{background:var(--border)}.session-item.active[data-v-f90e0e51]{background:#1d4ed8}.session-item.visible[data-v-f90e0e51]{background:#1d4ed840}.session-item.shared[data-v-f90e0e51]{opacity:.85}.name[data-v-f90e0e51]{font-size:.875rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.owner-tag[data-v-f90e0e51]{font-size:.7rem;color:var(--text-muted);background:var(--border);border-radius:3px;padding:.05rem .3rem;flex-shrink:0}.pin[data-v-f90e0e51]{color:var(--text-muted);font-size:.8rem;border-radius:3px;cursor:pointer;flex-shrink:0;white-space:nowrap;overflow:hidden;max-width:0;opacity:0;padding:.2rem 0;transition:max-width .2s ease,opacity .2s ease,padding .2s ease,color .15s,background .15s;pointer-events:none}.session-item:hover .pin[data-v-f90e0e51]{max-width:2rem;opacity:1;padding:.2rem .3rem;pointer-events:auto}.pin.pinned[data-v-f90e0e51]{max-width:2rem;opacity:1;padding:.2rem .3rem;color:var(--warn);pointer-events:auto}.pin[data-v-f90e0e51]:hover{color:var(--warn);background:#fbbf241a}.action[data-v-f90e0e51]{color:var(--text-muted);font-size:.8rem;padding:.2rem .3rem;border-radius:3px;cursor:pointer;flex-shrink:0;opacity:0;transform:translate(6px);transition:opacity .18s ease,transform .18s ease,color .15s,background .15s;pointer-events:none}.session-item:hover .action[data-v-f90e0e51],.session-item.renaming .action[data-v-f90e0e51]{opacity:1;transform:translate(0);pointer-events:auto}.share-btn[data-v-f90e0e51]:hover{color:#34d399;background:#34d3991a}.rename-btn[data-v-f90e0e51]:hover{color:#60a5fa;background:#60a5fa1a}.kill-btn[data-v-f90e0e51]:hover{color:var(--danger);background:#f871711a}.confirm-btn[data-v-f90e0e51]:hover{color:#34d399;background:#34d3991a}.cancel-btn[data-v-f90e0e51]:hover{color:var(--danger);background:#f871711a}.name-input[data-v-f90e0e51]{background:transparent;border:none;border-bottom:1px solid var(--primary);border-radius:0;outline:none;color:var(--text);font-family:inherit;font-size:.875rem;padding:0;min-width:0}.new-session[data-v-f90e0e51]{padding:.5rem .3rem;border-top:1px solid var(--border);display:flex;gap:.25rem;flex-shrink:0}.new-session input[data-v-f90e0e51]{flex:1;min-width:0;padding:.4rem .5rem;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.875rem;outline:none}.new-session input[data-v-f90e0e51]:focus{border-color:var(--primary)}.new-session button[data-v-f90e0e51]{padding:.4rem .75rem;border-radius:4px;border:none;background:var(--primary);color:#fff;font-size:1rem;min-width:2.2rem}.new-session button[data-v-f90e0e51]:hover{background:var(--primary-h)}.share-panel[data-v-f90e0e51]{width:min(360px,calc(100vw - 2rem))}.share-header[data-v-f90e0e51]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.share-title[data-v-f90e0e51]{font-size:.9rem;color:var(--text-dim)}.share-title strong[data-v-f90e0e51]{color:var(--text)}.close-btn[data-v-f90e0e51]{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:.1rem .3rem;border-radius:3px;line-height:1}.close-btn[data-v-f90e0e51]:hover{color:var(--danger);background:#f871711a}.share-section-label[data-v-f90e0e51]{font-size:.7rem;font-weight:600;letter-spacing:.05em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.35rem}.share-list[data-v-f90e0e51]{border:1px solid var(--border);border-radius:4px;min-height:2.5rem;max-height:160px;overflow-y:auto;margin-bottom:.85rem}.share-placeholder[data-v-f90e0e51]{padding:.6rem .75rem;font-size:.82rem;color:var(--text-muted)}.share-row[data-v-f90e0e51]{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-bottom:1px solid var(--border);font-size:.83rem}.share-row[data-v-f90e0e51]:last-child{border-bottom:none}.share-icon[data-v-f90e0e51]{flex-shrink:0;font-size:.85rem}.share-users[data-v-f90e0e51]{flex:1;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.del-btn[data-v-f90e0e51]{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.1rem .3rem;border-radius:3px;flex-shrink:0;font-size:.8rem}.del-btn[data-v-f90e0e51]:hover{color:var(--danger);background:#f871711a}.add-share-row[data-v-f90e0e51]{display:flex;gap:.4rem;margin-bottom:.4rem}.share-input[data-v-f90e0e51]{flex:1;padding:.35rem .5rem;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.82rem;outline:none;min-width:0}.share-input[data-v-f90e0e51]:focus{border-color:var(--primary)}.add-btn[data-v-f90e0e51]{padding:.35rem .65rem;border-radius:4px;border:none;background:var(--primary);color:#fff;font-size:.82rem;flex-shrink:0;cursor:pointer}.add-btn[data-v-f90e0e51]:hover{background:var(--primary-h)}.share-error[data-v-f90e0e51]{font-size:.78rem;color:var(--danger);margin:0}.kill-panel[data-v-f90e0e51]{width:min(320px,calc(100vw - 2rem));display:flex;flex-direction:column;gap:.6rem}.kill-msg[data-v-f90e0e51]{font-size:.92rem;color:var(--text);margin:0}.kill-warn[data-v-f90e0e51]{font-size:.8rem;color:var(--text-muted);margin:0}.kill-actions[data-v-f90e0e51]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.4rem}.kill-cancel-btn[data-v-f90e0e51]{padding:.35rem .8rem;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:.85rem;cursor:pointer}.kill-cancel-btn[data-v-f90e0e51]:hover{background:var(--border)}.kill-confirm-btn[data-v-f90e0e51]{padding:.35rem .8rem;border-radius:4px;border:none;background:var(--danger);color:#fff;font-size:.85rem;cursor:pointer}.kill-confirm-btn[data-v-f90e0e51]:hover{filter:brightness(1.15)}@media (max-width: 640px){.sidebar[data-v-f90e0e51]{position:fixed;top:0;left:0;height:100dvh;transform:translate(-100%);width:260px;min-width:260px}.sidebar.open[data-v-f90e0e51]{transform:translate(0)}.sidebar.collapsed[data-v-f90e0e51]{width:260px;min-width:260px;overflow:visible;border-right:1px solid var(--border)}}.toolbar[data-v-907f79f7]{display:flex;align-items:center;gap:.4rem;padding:.4rem .75rem;background:var(--surface);border-bottom:1px solid var(--border);font-size:.8rem;color:var(--text-muted);flex-shrink:0}.session-label[data-v-907f79f7]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.4rem}.shared-badge[data-v-907f79f7]{font-size:.65rem;background:#1d3a5f;color:#60a5fa;border-radius:3px;padding:.05rem .35rem;flex-shrink:0}.icon-btn[data-v-907f79f7]{background:none;border:1px solid var(--border);color:var(--text-dim);border-radius:3px;padding:.15rem .45rem;font-size:.8rem;line-height:1.4;flex-shrink:0}.icon-btn[data-v-907f79f7]:hover{border-color:var(--text-muted);color:var(--text)}.icon-btn.active[data-v-907f79f7]{border-color:var(--primary);color:#60a5fa}.menu-btn[data-v-907f79f7]{display:none;border:none;font-size:1.1rem;padding:.1rem .3rem}.sidebar-toggle[data-v-907f79f7]{border:none;font-size:1rem;padding:.1rem .3rem}.font-btn[data-v-907f79f7]{background:none;border:1px solid var(--border);color:var(--text-dim);border-radius:3px;padding:.1rem .4rem;font-size:.8rem;flex-shrink:0;line-height:1.4}.font-btn[data-v-907f79f7]:hover{border-color:var(--text-muted);color:var(--text)}.font-label[data-v-907f79f7]{color:#475569;font-size:.75rem;min-width:2em;text-align:center;flex-shrink:0}.toolbar-logo[data-v-907f79f7]{height:20px;width:auto;flex-shrink:0;opacity:.85}.logout[data-v-907f79f7]{color:var(--text-muted);cursor:pointer;font-size:.8rem;padding:.2rem .4rem;border-radius:3px;flex-shrink:0}.logout[data-v-907f79f7]:hover{color:var(--danger)}@media (max-width: 640px){.menu-btn[data-v-907f79f7]{display:inline-block}.sidebar-toggle[data-v-907f79f7]{display:none}}.key-bar[data-v-a665e155]{display:none;flex-wrap:nowrap;overflow-x:auto;gap:.3rem;padding:.3rem .5rem;padding-bottom:calc(.3rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.key-bar.multiline[data-v-a665e155]{flex-wrap:wrap;overflow-x:hidden}.key-bar button[data-v-a665e155]{padding:.35rem .6rem;border-radius:4px;border:none;background:var(--border);color:var(--text);font-size:.8rem;cursor:pointer;flex-shrink:0;white-space:nowrap}.key-bar button[data-v-a665e155]:active{background:#475569}.wrap-btn[data-v-a665e155]{background:#1e3a5f;color:#60a5fa}.add-btn[data-v-a665e155]{background:#0f3460;color:#60a5fa}.custom-btn[data-v-a665e155]{background:#1d3a5f;position:relative}.custom-btn.deleting[data-v-a665e155]{background:#7f1d1d}.divider[data-v-a665e155]{display:inline-block;width:1px;background:var(--border);margin:0 .15rem;align-self:stretch;flex-shrink:0}.enter-label[data-v-a665e155]{display:flex;align-items:center;gap:.4rem;color:var(--text-dim);font-size:.8rem;cursor:pointer}@media (max-width: 640px){.key-bar[data-v-a665e155]{display:flex}}.term-panel[data-v-e580deec]{display:flex;flex-direction:column;overflow:hidden;background:#0f172a;border:1px solid transparent;transition:border-color .15s;min-height:0}.term-panel.focused[data-v-e580deec]{border-color:#1d4ed8}.panel-header[data-v-e580deec]{display:flex;align-items:center;gap:.4rem;padding:.15rem .5rem;background:#2d3f55;border-bottom:1px solid #3d5270;transition:background .15s,box-shadow .15s;flex-shrink:0;min-height:1.6rem}.term-panel.focused .panel-header[data-v-e580deec]{background:#1a3560;box-shadow:inset 0 3px #3b82f6;border-bottom-color:#2d5090}.panel-name[data-v-e580deec]{font-size:.75rem;color:#c8d8ea;transition:color .15s;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.term-panel.focused .panel-name[data-v-e580deec]{color:#93c5fd;font-weight:600}.panel-user[data-v-e580deec]{font-size:.68rem;color:#94a3b8;background:#3d5270;border-radius:3px;padding:.05rem .3rem;flex-shrink:0}.panel-conn[data-v-e580deec]{font-size:.62rem;font-weight:700;padding:.07rem .3rem;border-radius:3px;flex-shrink:0;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:filter .15s}.panel-conn[data-v-e580deec]:hover{filter:brightness(1.3)}.conn-ws[data-v-e580deec]{color:#60a5fa;background:#60a5fa1f}.conn-ws-wait[data-v-e580deec]{color:#f59e0b;background:#f59e0b1f}.conn-ws-fallback[data-v-e580deec]{color:#f97316;background:#f9731626}.conn-rtc-wait[data-v-e580deec]{color:#fbbf24;background:#fbbf241f}.conn-rtc[data-v-e580deec]{color:#22c55e;background:#22c55e1f}.panel-rtc-btn[data-v-e580deec]{background:none;border:1px solid #3d5a7a;color:#60a5fa;cursor:pointer;font-size:.65rem;padding:.05rem .3rem;border-radius:3px;line-height:1.4;flex-shrink:0;transition:background .15s,color .15s}.panel-rtc-btn[data-v-e580deec]:hover{background:#60a5fa26;color:#93c5fd}.panel-status[data-v-e580deec]{font-size:.65rem;color:#f59e0b;flex-shrink:0}.panel-close[data-v-e580deec]{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.72rem;padding:.1rem .3rem;border-radius:3px;line-height:1;flex-shrink:0;opacity:0;transition:opacity .15s}.term-panel:hover .panel-close[data-v-e580deec],.term-panel.focused .panel-close[data-v-e580deec]{opacity:1}.panel-close[data-v-e580deec]:hover{color:var(--danger);background:#f871711a}.panel-term-container[data-v-e580deec]{flex:1;overflow:hidden;min-height:0}[data-v-e580deec] .xterm-viewport::-webkit-scrollbar{display:none}[data-v-e580deec] .xterm-viewport{scrollbar-width:none}.conn-log-popup{position:fixed;z-index:2000;background:#0f1e33;border:1px solid #2d4a6e;border-radius:6px;box-shadow:0 8px 24px #00000080;display:flex;flex-direction:column;max-height:320px;font-family:JetBrains Mono,Fira Code,Menlo,monospace;font-size:.72rem}.conn-log-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;border-bottom:1px solid #2d4a6e;color:#94a3b8;font-size:.7rem;font-weight:600;letter-spacing:.05em;flex-shrink:0}.conn-log-header button{background:none;border:none;color:#64748b;cursor:pointer;padding:.1rem .3rem;border-radius:3px;font-size:.72rem;line-height:1}.conn-log-header button:hover{color:#f87171;background:#f871711a}.conn-log-body{overflow-y:auto;padding:.3rem 0;flex:1}.conn-log-entry{display:flex;gap:.5rem;padding:.12rem .6rem;line-height:1.5}.conn-log-entry:hover{background:#ffffff0a}.log-time{color:#475569;flex-shrink:0;-webkit-user-select:none;user-select:none}.log-msg{color:#94a3b8}.log-ok .log-msg{color:#4ade80}.log-warn .log-ok,.log-warn .log-msg{color:#fb923c}.log-err .log-msg{color:#f87171}.log-empty{padding:.6rem;text-align:center;color:#475569;font-size:.72rem}.preview-modal[data-v-b5427226]{width:min(860px,calc(100vw - 2rem));max-height:88dvh;display:flex;flex-direction:column}.preview-header[data-v-b5427226]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.5rem;flex-shrink:0}.preview-title[data-v-b5427226]{font-size:.88rem;color:var(--text-dim);font-family:JetBrains Mono,Fira Code,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.close-btn[data-v-b5427226]{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:.1rem .3rem;border-radius:3px;line-height:1;flex-shrink:0}.close-btn[data-v-b5427226]:hover{color:var(--danger);background:#f871711a}.preview-body[data-v-b5427226]{flex:1;overflow:auto;min-height:0;border:1px solid var(--border);border-radius:4px;background:var(--bg)}.preview-placeholder[data-v-b5427226]{padding:2rem;text-align:center;color:var(--text-muted);font-size:.85rem}.preview-error[data-v-b5427226]{color:var(--danger)}.preview-image[data-v-b5427226]{max-width:100%;display:block;margin:auto;padding:.5rem;box-sizing:border-box}.preview-text[data-v-b5427226]{margin:0;padding:.75rem 1rem;font-family:JetBrains Mono,Fira Code,Menlo,monospace;font-size:.8rem;line-height:1.65;color:var(--text);white-space:pre;-moz-tab-size:4;tab-size:4;overflow:visible}.preview-markdown[data-v-b5427226]{padding:1.25rem 1.75rem;font-size:.9rem;line-height:1.75;color:var(--text)}.preview-markdown[data-v-b5427226] h1,.preview-markdown[data-v-b5427226] h2,.preview-markdown[data-v-b5427226] h3,.preview-markdown[data-v-b5427226] h4,.preview-markdown[data-v-b5427226] h5,.preview-markdown[data-v-b5427226] h6{font-weight:600;line-height:1.3;margin:1.4em 0 .5em;color:var(--text)}.preview-markdown[data-v-b5427226] h1{font-size:1.7em;border-bottom:1px solid var(--border);padding-bottom:.3em}.preview-markdown[data-v-b5427226] h2{font-size:1.35em;border-bottom:1px solid var(--border);padding-bottom:.25em}.preview-markdown[data-v-b5427226] h3{font-size:1.15em}.preview-markdown[data-v-b5427226] h4{font-size:1em}.preview-markdown[data-v-b5427226] h1:first-child,.preview-markdown[data-v-b5427226] h2:first-child,.preview-markdown[data-v-b5427226] h3:first-child{margin-top:0}.preview-markdown[data-v-b5427226] p{margin:.75em 0}.preview-markdown[data-v-b5427226] a{color:#60a5fa;text-decoration:underline}.preview-markdown[data-v-b5427226] a:hover{color:#93c5fd}.preview-markdown[data-v-b5427226] ul,.preview-markdown[data-v-b5427226] ol{margin:.6em 0;padding-left:1.6em}.preview-markdown[data-v-b5427226] li{margin:.25em 0}.preview-markdown[data-v-b5427226] li>ul,.preview-markdown[data-v-b5427226] li>ol{margin:.2em 0}.preview-markdown[data-v-b5427226] blockquote{border-left:3px solid var(--primary);margin:.75em 0;padding:.4em .9em;color:var(--text-dim);background:#ffffff08;border-radius:0 4px 4px 0}.preview-markdown[data-v-b5427226] blockquote p{margin:0}.preview-markdown[data-v-b5427226] code{font-family:JetBrains Mono,Fira Code,Menlo,monospace;font-size:.82em;background:#ffffff14;padding:.15em .4em;border-radius:3px;color:#e2e8f0}.preview-markdown[data-v-b5427226] pre{background:#0d1117;border:1px solid var(--border);border-radius:6px;padding:.9em 1.1em;overflow-x:auto;margin:.85em 0}.preview-markdown[data-v-b5427226] pre code{background:none;padding:0;font-size:.82em;line-height:1.6;color:#e2e8f0}.preview-markdown[data-v-b5427226] table{border-collapse:collapse;width:100%;margin:.85em 0;font-size:.85em}.preview-markdown[data-v-b5427226] th,.preview-markdown[data-v-b5427226] td{border:1px solid var(--border);padding:.45em .75em;text-align:left}.preview-markdown[data-v-b5427226] th{background:#ffffff0f;font-weight:600}.preview-markdown[data-v-b5427226] tr:nth-child(2n) td{background:#ffffff05}.preview-markdown[data-v-b5427226] hr{border:none;border-top:1px solid var(--border);margin:1.5em 0}.preview-markdown[data-v-b5427226] img{max-width:100%;border-radius:4px}.download-modal[data-v-1f5785e5]{width:min(480px,calc(100vw - 2rem));max-height:80dvh;display:flex;flex-direction:column}.breadcrumb[data-v-1f5785e5]{display:flex;flex-wrap:wrap;gap:.2rem;font-size:.78rem;color:var(--text-dim);margin-bottom:.5rem;overflow:hidden}.crumb[data-v-1f5785e5]{cursor:pointer;padding:.1rem .3rem;border-radius:3px}.crumb[data-v-1f5785e5]:not(.last):hover{background:var(--border);color:var(--text)}.crumb[data-v-1f5785e5]:not(:last-child):after{content:" /";margin-left:.2rem;color:var(--text-muted)}.crumb.last[data-v-1f5785e5]{color:var(--text);cursor:default}.file-list[data-v-1f5785e5]{flex:1;overflow-y:auto;border:1px solid var(--border);border-radius:4px;min-height:200px;max-height:380px}.placeholder[data-v-1f5785e5]{padding:1.5rem;text-align:center;color:var(--text-muted);font-size:.85rem}.file-item[data-v-1f5785e5]{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;cursor:pointer;font-size:.85rem;border-bottom:1px solid var(--border)}.file-item[data-v-1f5785e5]:last-child{border-bottom:none}.file-item[data-v-1f5785e5]:hover{background:var(--border)}.file-item.selected[data-v-1f5785e5]{background:#1d3a5f}.icon[data-v-1f5785e5]{flex-shrink:0;font-size:.9rem}.name[data-v-1f5785e5]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.size[data-v-1f5785e5]{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.btn-secondary[data-v-1f5785e5]{padding:.35rem .75rem;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:.85rem;cursor:pointer}.btn-secondary[data-v-1f5785e5]:hover:not(:disabled){background:var(--border)}.btn-secondary[data-v-1f5785e5]:disabled{opacity:.4;cursor:default}.upload-modal[data-v-3627f46f]{width:min(460px,calc(100vw - 2rem))}.dest-section[data-v-3627f46f]{margin-bottom:.75rem}.dest-label[data-v-3627f46f]{font-size:.75rem;color:var(--text-muted);margin-bottom:.25rem}.breadcrumb[data-v-3627f46f]{display:flex;flex-wrap:wrap;gap:.2rem;font-size:.78rem;color:var(--text-dim);margin-bottom:.3rem}.crumb[data-v-3627f46f]{cursor:pointer;padding:.1rem .3rem;border-radius:3px}.crumb[data-v-3627f46f]:not(.last):hover{background:var(--border);color:var(--text)}.crumb[data-v-3627f46f]:not(:last-child):after{content:" /";margin-left:.2rem;color:var(--text-muted)}.crumb.last[data-v-3627f46f]{color:var(--text);cursor:default}.dir-list[data-v-3627f46f]{border:1px solid var(--border);border-radius:4px;max-height:130px;overflow-y:auto}.dir-placeholder[data-v-3627f46f]{padding:.5rem .75rem;font-size:.8rem;color:var(--text-muted)}.dir-item[data-v-3627f46f]{display:flex;align-items:center;gap:.4rem;padding:.3rem .6rem;font-size:.82rem;cursor:pointer;border-bottom:1px solid var(--border)}.dir-item[data-v-3627f46f]:last-child{border-bottom:none}.dir-item[data-v-3627f46f]:hover{background:var(--border)}.drop-zone[data-v-3627f46f]{border:2px dashed var(--border);border-radius:6px;padding:1.5rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem}.drop-zone[data-v-3627f46f]:hover,.drop-zone.over[data-v-3627f46f]{border-color:var(--primary);background:#3b82f60f}.drop-zone.has-files[data-v-3627f46f]{align-items:stretch;cursor:default}.drop-icon[data-v-3627f46f]{font-size:2rem;color:var(--text-muted)}.drop-hint[data-v-3627f46f]{font-size:.82rem;color:var(--text-muted)}.pending-file[data-v-3627f46f]{display:flex;align-items:center;gap:.5rem;padding:.3rem .4rem;border-radius:4px;background:var(--bg);font-size:.82rem;text-align:left}.pending-file.conflict[data-v-3627f46f]{background:#7f1d1d4d;border:1px solid #7f1d1d}.fn[data-v-3627f46f]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fs[data-v-3627f46f]{color:var(--text-muted);flex-shrink:0}.rm[data-v-3627f46f]{color:var(--text-muted);cursor:pointer;padding:.1rem .3rem;border-radius:3px;flex-shrink:0}.rm[data-v-3627f46f]:hover{color:var(--danger);background:#f871711a}.conflict-msg[data-v-3627f46f]{font-size:.8rem;color:#fca5a5;background:#7f1d1d33;border:1px solid #7f1d1d;border-radius:4px;padding:.5rem .75rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.overwrite-label[data-v-3627f46f]{display:flex;align-items:center;gap:.3rem;cursor:pointer;color:var(--text-dim);white-space:nowrap}.progress-wrap[data-v-3627f46f]{position:relative;height:1.5rem;background:var(--border);border-radius:4px;overflow:hidden}.progress-bar[data-v-3627f46f]{position:absolute;inset:0 auto 0 0;background:var(--primary);transition:width .1s}.progress-text[data-v-3627f46f]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#fff;font-weight:600}.result-msg[data-v-3627f46f]{font-size:.82rem;color:var(--text-dim)}.main-layout[data-v-695efe11]{display:flex;height:100dvh;overflow:hidden;position:relative}.sidebar-backdrop[data-v-695efe11]{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:199}.main-column[data-v-695efe11]{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.panels-wrap[data-v-695efe11]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;gap:2px;background:#0a1020}.panels-wrap.layout-0[data-v-695efe11]{align-items:center;justify-content:center}.panels-wrap.layout-1[data-v-695efe11] .term-panel,.panels-wrap.layout-2[data-v-695efe11] .term-panel,.panels-wrap.layout-3[data-v-695efe11] .term-panel{flex:1;min-height:0}.panels-wrap.split-h[data-v-695efe11]{flex-direction:row}.panels-wrap.split-h.layout-2[data-v-695efe11] .term-panel,.panels-wrap.split-h.layout-3[data-v-695efe11] .term-panel{min-width:0}.panels-wrap.layout-4[data-v-695efe11]{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.panels-wrap.layout-4[data-v-695efe11] .term-panel{min-height:0}.no-session[data-v-695efe11]{color:var(--text-muted);font-size:.9rem;pointer-events:none}.input-bar[data-v-695efe11]{display:flex;gap:.3rem;padding:.3rem .5rem;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.cmd-input[data-v-695efe11]{flex:1;padding:.35rem .6rem;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:JetBrains Mono,Fira Code,Menlo,monospace;font-size:.85rem;outline:none}.cmd-input[data-v-695efe11]:focus{border-color:var(--primary)}.send-btn[data-v-695efe11]{padding:.35rem .7rem;border-radius:4px;border:none;background:var(--primary);color:#fff;font-size:.9rem;flex-shrink:0}.send-btn[data-v-695efe11]:hover{background:var(--primary-h)}.toast[data-v-695efe11]{position:fixed;bottom:4rem;left:50%;transform:translate(-50%);background:#1e293b;border:1px solid var(--border);color:var(--danger);padding:.5rem 1.25rem;border-radius:6px;font-size:.85rem;z-index:600;white-space:nowrap;pointer-events:none}.toast-enter-active[data-v-695efe11],.toast-leave-active[data-v-695efe11]{transition:opacity .25s,transform .25s}.toast-enter-from[data-v-695efe11],.toast-leave-to[data-v-695efe11]{opacity:0;transform:translate(-50%) translateY(.5rem)}@media (max-width: 640px){.sidebar-backdrop[data-v-695efe11]{display:block}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f172a;--surface: #1e293b;--border: #334155;--text: #e2e8f0;--text-muted: #64748b;--text-dim: #94a3b8;--primary: #3b82f6;--primary-h: #2563eb;--danger: #f87171;--warn: #fbbf24}html,body,#app{height:100%;height:100dvh;overflow:hidden;background:var(--bg);color:var(--text);font-family:system-ui,sans-serif}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:500;display:flex;align-items:center;justify-content:center}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem;width:min(380px,calc(100% - 2rem));display:flex;flex-direction:column;gap:.75rem}.modal-card h3{font-size:1rem;color:var(--text)}.modal-card label{font-size:.8rem;color:var(--text-dim)}.modal-input{width:100%;padding:.4rem .6rem;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.9rem;outline:none}.modal-input:focus{border-color:var(--primary)}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end}.modal-actions button{padding:.4rem .9rem;border-radius:4px;border:none;font-size:.875rem}.btn-cancel{background:var(--border);color:var(--text)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-h)}.btn-danger{background:#7f1d1d;color:var(--danger)}.error-text{color:var(--danger);font-size:.8rem;min-height:1.2em}/**
 * 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}
