.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: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}:root{--ink:#0f1c24;--ink-muted:#5b6b76;--line:#d7e0e6;--surface:#fff;--surface-2:#f4f7f8;--surface-3:#eef3f5;--accent:#0f766e;--accent-soft:#ccfbf1;--accent-deep:#115e59;--danger:#b42318;--ok:#067647;--warn:#b54708;--sidebar:#0b1f2a;--sidebar-2:#123040;--shadow:0 18px 40px -28px #0f1c2473;color:var(--ink);background:var(--surface-2);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(1200px 480px at 10% -10%, #d8f3ee 0%, transparent 55%), radial-gradient(900px 420px at 100% 0%, #e7eef2 0%, transparent 50%), var(--surface-2);min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}.brand{color:#ecfeff;letter-spacing:-.03em;padding:1.15rem 1.2rem .85rem;font-size:1.08rem;font-weight:700}.brand span{color:#2dd4bf}.brand-sub{color:#7f9eab;letter-spacing:.04em;text-transform:uppercase;margin-top:.15rem;font-size:.68rem;font-weight:500;display:block}.app-shell.ant-layout{background:0 0;min-height:100vh}.app-sider.ant-layout-sider{border-right:1px solid #ffffff0f;background:linear-gradient(180deg, var(--sidebar) 0%, var(--sidebar-2) 100%)!important}.app-sider .ant-menu-dark{background:0 0}.app-sider .ant-menu-dark .ant-menu-item-selected{background:#2dd4bf29!important}.app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;display:flex;background:#ffffffd1!important;height:64px!important;padding-inline:1.35rem!important;line-height:64px!important}.app-header-meta{flex-direction:column;justify-content:center;line-height:1.2;display:flex}.app-header-meta strong{color:var(--ink);font-size:.92rem}.app-header-meta span{color:var(--ink-muted);font-size:.75rem}.app-content-wrap{background:0 0;min-height:calc(100vh - 96px);margin:1rem 1.1rem 1.25rem;padding:0}.app-content-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;min-height:calc(100vh - 112px);padding:1.35rem 1.4rem 1.5rem}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header h1,.page-header .ant-typography{margin:0!important}.page-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.35rem;font-size:.72rem;font-weight:600}.page-lead{max-width:42rem;color:var(--ink-muted)!important;margin:.35rem 0 0!important}.stat-grid .ant-card{border-color:var(--line);box-shadow:none;border-radius:14px}.stat-grid .ant-statistic-content-value{letter-spacing:-.03em;font-family:IBM Plex Sans,sans-serif}.stat-link{color:var(--accent-deep);margin-top:.55rem;font-size:.85rem;font-weight:600;display:inline-block}.page-title,.workspace-title{letter-spacing:-.035em;color:var(--ink);margin:.1rem 0 0;font-size:1.65rem;font-weight:700}.muted{color:var(--ink-muted)}.app-content-panel.is-workspace{background:linear-gradient(#f7fbfb 0%,#fff 28% 100%);padding:.85rem .9rem .95rem}body.workspace-body{background:#07151c;overflow:hidden}body.workspace-body #root{height:100vh;min-height:100vh}.workspace-shell{color:#e8f1f5;background:radial-gradient(900px 320px at 10% -10%,#2dd4bf14,#0000 55%),#07151c;width:100vw;height:100vh;overflow:hidden}.workspace-shell .session-workspace.is-fullscreen{box-sizing:border-box;gap:.45rem;height:100vh;min-height:100vh;padding:.55rem .65rem .65rem}.workspace-shell .workspace-head{flex-shrink:0}.workspace-brand{flex-direction:column;gap:.1rem;display:flex}.workspace-brand-mark{letter-spacing:-.02em;color:#ecfeff;font-size:.72rem;font-weight:700}.workspace-brand-mark span{color:#2dd4bf}.workspace-shell .workspace-title{color:#ecfeff;margin:0;font-size:1.15rem}.workspace-shell .session-tab{background:#ffffff0a;border-color:#ffffff1a}.workspace-shell .session-tab.is-active{background:#2dd4bf1f;border-color:#2dd4bf73;box-shadow:inset 0 -2px #2dd4bf}.workspace-shell .session-tab-label{color:#e8f1f5}.workspace-shell .session-tab-host{color:#7f9eab}.workspace-shell .session-tab-close{color:#7f9eab;border-left-color:#ffffff1a}.workspace-shell .ftp-surface{min-height:0;box-shadow:none;background:#0b1f2a;border-color:#1e3a46;flex:1}.workspace-shell .ftp-subbar{background:#0f2833;border-bottom-color:#1e3a46}.workspace-shell .ftp-table th{color:#7f9eab;background:#0b1f2a;border-bottom-color:#1e3a46}.workspace-shell .ftp-table td{color:#d7e6ec;border-bottom-color:#16323f}.workspace-shell .ftp-table tr:hover,.workspace-shell .ftp-table tr.is-dir:hover{background:#123040}.workspace-shell .ftp-table tr.is-selected{background:#134e4a}.workspace-shell .ftp-name{color:#e8f1f5}.workspace-shell .ftp-name.dir{color:#5eead4}.workspace-shell .ghost-btn{color:#d7e6ec;background:0 0;border-color:#2a4552}.workspace-shell .crumb{color:#5eead4}.workspace-shell .ftp-empty,.workspace-shell .muted{color:#7f9eab}.workspace-shell .term-surface{border-radius:12px;flex:1;min-height:0}.workspace-shell .xterm-host{flex:1;height:100%;min-height:0}.workspace-shell .session-empty.workspace-empty{color:#e8f1f5;max-width:36rem;margin:10vh auto 0;padding:2rem}.workspace-shell .page-lead,.workspace-shell .page-kicker{color:#7f9eab}.workspace-shell .empty-stage{background:#ffffff08;border-color:#2a4552}.workspace-shell .empty-stage h2{color:#ecfeff}.session-workspace.is-fullscreen{flex-direction:column;display:flex}.session-workspace.is-fullscreen .term-surface,.session-workspace.is-fullscreen .ftp-surface{flex:1;min-height:0}.session-stack{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.session-layer{flex-direction:column;flex:1;min-height:0;display:flex}.session-layer[hidden]{display:none!important}.session-layer.is-active{display:flex}.session-reconnect{z-index:5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#07151cb8;place-items:center;display:grid;position:absolute;inset:0}.term-surface,.ftp-surface{position:relative}.session-reconnect-card{color:#e8f1f5;text-align:center;background:#0b1f2a;border:1px solid #2dd4bf59;border-radius:14px;width:min(100% - 2rem,360px);padding:1.15rem 1.25rem;box-shadow:0 24px 50px -28px #000000b3}.session-reconnect-card strong{letter-spacing:-.02em;font-size:1rem;display:block}.session-reconnect-card p{color:#7f9eab;margin:.45rem 0 .95rem;font-size:.86rem}.ftp-loading{text-align:center;color:var(--ink-muted);padding:2.5rem 1rem;font-size:.9rem}.workspace-shell .ftp-loading{color:#7f9eab}.ftp-loading-row td{color:var(--ink-muted);font-size:.8rem;padding:.55rem .85rem!important}.ftp-listing.is-loading .ftp-table tbody tr:not(.ftp-loading-row){opacity:.55}.cmd-bar{background:#00000038;border-bottom:1px solid #ffffff0f;flex-shrink:0;align-items:center;gap:.55rem;padding:.35rem .55rem;display:flex}.ftp-cmd-bar{background:#0f2833;border-bottom-color:#1e3a46}.cmd-bar-label{letter-spacing:.08em;text-transform:uppercase;color:#7f9eab;flex-shrink:0;font-size:.65rem;font-weight:700}.cmd-bar-scroll{scrollbar-width:thin;flex-wrap:nowrap;flex:1;gap:.35rem;min-width:0;padding-bottom:1px;display:flex;overflow-x:auto}.cmd-chip{appearance:none;color:#99f6e4;font:inherit;white-space:nowrap;cursor:pointer;background:#2dd4bf14;border:1px solid #2dd4bf47;border-radius:999px;padding:.28rem .65rem;font-size:.74rem;font-weight:600;transition:background .12s,border-color .12s}.cmd-chip:hover:not(:disabled){background:#2dd4bf2e;border-color:#2dd4bf8c}.cmd-chip:disabled{opacity:.35;cursor:not-allowed}.cmd-chip-danger{color:#fecaca;background:#f8717114;border-color:#f8717159}.cmd-chip-danger:hover:not(:disabled){background:#f8717129;border-color:#f871718c}.session-idle-clock{background:#00000040;border:1px solid #7f9eab59;border-radius:999px;flex-shrink:0;align-items:center;gap:.28rem;margin-left:.15rem;padding:.15rem .35rem .15rem .45rem;display:inline-flex}.session-idle-clock.is-urgent{background:#fbbf241a;border-color:#fbbf248c}.session-idle-time{letter-spacing:.04em;color:#b6d0da;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600}.session-idle-clock.is-urgent .session-idle-time{color:#fcd34d}.session-idle-info-btn{appearance:none;color:#99f6e4;width:1.05rem;height:1.05rem;font:inherit;cursor:pointer;background:#2dd4bf1f;border:1px solid #99f6e473;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.65rem;font-weight:700;line-height:1;display:inline-flex}.session-idle-info-btn:hover{background:#2dd4bf38;border-color:#99f6e4bf}.session-idle-info{color:#334155;max-width:16.5rem;font-size:.82rem;line-height:1.45}.session-idle-info p{margin:0 0 .55rem}.session-idle-info p:last-child{margin-bottom:0}.session-idle-info-lead{color:#0f172a;font-weight:600}.session-idle-info-foot{color:#64748b;font-size:.78rem}.term-chrome-inline{color:#7f9eab;text-transform:lowercase;flex-shrink:0;align-items:center;gap:.35rem;margin-left:.25rem;font-size:.7rem;display:inline-flex}.ctx-menu{z-index:10000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(160deg,#12303afa 0%,#0b1f2afa 100%);border:1px solid #2dd4bf47;border-radius:12px;min-width:220px;max-width:min(320px,100vw - 16px);padding:.35rem;animation:.12s ease-out ctx-in;position:fixed;box-shadow:0 24px 48px -20px #000000bf,0 0 0 1px #ffffff0a}@keyframes ctx-in{0%{opacity:0;transform:translateY(4px)scale(.98)}to{opacity:1;transform:none}}.ctx-sep{background:#ffffff14;height:1px;margin:.3rem .4rem}.ctx-item{appearance:none;color:#e8f1f5;text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .55rem;font-size:.84rem;font-weight:500;display:flex}.ctx-item:hover:not(:disabled){background:#2dd4bf24}.ctx-item:disabled{opacity:.35;cursor:not-allowed}.ctx-item.is-danger{color:#fecaca}.ctx-item.is-danger:hover:not(:disabled){background:#f8717124}.ctx-item-hint{color:#7f9eab;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.68rem}.term-surface .term-chrome{display:none}.host-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.host-row{border:1px solid var(--line);background:linear-gradient(135deg,#ccfbf147 0%,#fff 42%,#f7fafb 100%);border-radius:14px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.9rem 1rem;transition:border-color .16s,transform .16s;display:grid}.host-row:hover{border-color:#b7d4ce;transform:translateY(-1px)}@media (width<=960px){.host-row{grid-template-columns:1fr}}.host-row-main{min-width:0;color:inherit;flex-direction:column;gap:.15rem;text-decoration:none;display:flex}.host-row-label{letter-spacing:-.02em;font-size:1.02rem;font-weight:700}.host-row-addr{color:var(--ink-muted);font-size:.84rem}.host-row-region{color:var(--ink-muted);margin-top:.2rem;font-size:.75rem}.host-row-status{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.host-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.cred-ok{color:var(--ok);font-size:.78rem;font-weight:600}.cred-miss{color:var(--warn);font-size:.78rem;font-weight:600}.vps-action{appearance:none;border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:10px;padding:.55rem .9rem;font-size:.86rem;font-weight:600;transition:background .14s,border-color .14s,color .14s}.vps-action:hover:not(:disabled){border-color:var(--accent);color:var(--accent-deep)}.vps-action:disabled{opacity:.45;cursor:not-allowed}.vps-action-primary{background:var(--accent);border-color:var(--accent);color:#fff}.vps-action-primary:hover:not(:disabled){background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}.vps-action-sm{border-radius:8px;padding:.35rem .65rem;font-size:.78rem}.vps-action.danger{color:var(--danger);border-color:#f0c4c0}.vps-action.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:#fef3f2}.vps-stage{border:1px solid var(--line);background:radial-gradient(700px 220px at 0 0,#2dd4bf29,#0000 55%),linear-gradient(145deg,#f8fcfb 0%,#fff 50%,#f3f7f8 100%);border-radius:16px;grid-template-columns:1.35fr 1fr;gap:1.1rem;margin-bottom:1.15rem;padding:1.25rem 1.3rem;display:grid}@media (width<=900px){.vps-stage{grid-template-columns:1fr}}.vps-stage-title{letter-spacing:-.04em;margin:.15rem 0 .4rem;font-size:clamp(1.6rem,2.4vw,2rem);font-weight:700}.vps-stage-host{color:var(--ink-muted);margin:0;font-size:.95rem}.vps-stage-port{color:#8aa0ab}.vps-stage-meta{color:var(--ink-muted);flex-wrap:wrap;gap:.55rem 1rem;margin-top:.9rem;font-size:.8rem;display:flex}.vps-stage-ops{flex-direction:column;justify-content:space-between;gap:.75rem;padding-left:.25rem;display:flex}.vps-status-block{flex-direction:column;align-items:flex-start;gap:.3rem;display:flex}.vps-action-row{flex-wrap:wrap;gap:.45rem;display:flex}.vps-stage-note{color:var(--ink-muted);margin:0;font-size:.75rem;line-height:1.4}.panel{border:1px solid var(--line);background:#fff;border-radius:14px;margin-bottom:1rem;padding:1rem 1.1rem 1.15rem}.panel-flush{padding-bottom:.5rem}.panel-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.panel-head h2{letter-spacing:-.02em;margin:0;font-size:.95rem}.panel-lead{color:var(--ink-muted);margin:0 0 .85rem;font-size:.86rem}.audit-meta{color:var(--ink-muted);word-break:break-all}.empty-stage{text-align:center;background:radial-gradient(500px 180px at 50% 0%, #ccfbf18c, transparent 70%), var(--surface-2);border:1px dashed #c5d4db;border-radius:16px;margin-top:.5rem;padding:2.2rem 1.5rem}.empty-stage h2{letter-spacing:-.03em;margin:0 0 .4rem}.empty-stage p{color:var(--ink-muted);margin:0 0 1rem}.check-meta{color:var(--ink-muted);margin-top:.65rem;font-size:.8rem}.check-error{color:var(--danger);margin-top:.35rem;font-size:.8rem}.status-pill{border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.28rem .7rem;font-size:.78rem;font-weight:600;display:inline-flex}.status-dot{background:currentColor;border-radius:50%;width:.45rem;height:.45rem}.status-hint{opacity:.75;margin-left:.25rem;font-weight:500}.status-pending{color:#7a5a00;background:#fff7e6;border-color:#ffe0a3}.status-checking{color:#185fa5;background:#eaf3ff;border-color:#bfdfff}.status-reachable{color:var(--ok);background:#eaf8ef;border-color:#b7e4c7}.status-unreachable{color:var(--danger);background:#fef3f2;border-color:#f9c6c1}.section-card.ant-card{border-color:var(--line);border-radius:14px;margin-bottom:1rem}.section-card .ant-card-head{border-bottom-color:var(--line);min-height:48px}.detail-grid{grid-template-columns:1.1fr .9fr;gap:1rem;display:grid}@media (width<=980px){.detail-grid{grid-template-columns:1fr}}.auth-shell{background:radial-gradient(circle at 0 0,#ccfbf1 0%,#0000 40%),linear-gradient(160deg,#0f172a 0%,#134e4a 48%,#0f172a 100%);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{width:min(100%,420px);overflow:hidden;border-radius:16px!important}.auth-footer{margin-top:1rem;margin-bottom:0}.mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.back-link{color:var(--ink-muted);align-items:center;gap:.35rem;margin-bottom:.85rem;font-size:.88rem;display:inline-flex}.back-link:hover{color:var(--accent-deep)}.empty-hint{text-align:center;color:var(--ink-muted);border:1px dashed var(--line);background:var(--surface-2);border-radius:12px;padding:1.5rem}.session-workspace{flex-direction:column;gap:.65rem;min-height:calc(100vh - 140px);display:flex}.session-empty .page-title{margin-bottom:.35rem}.workspace-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1rem;display:flex}.workspace-head-actions{flex-wrap:wrap;align-items:center;gap:.55rem;max-width:100%;display:flex}.workspace-title{font-size:1.35rem}.session-tabs{flex-wrap:wrap;gap:.35rem;max-width:100%;display:flex}.session-tab{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:stretch;display:inline-flex;overflow:hidden}.session-tab.is-active{border-color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);background:#f0fdfa}.session-tab-main{appearance:none;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;flex-direction:column;gap:.05rem;min-width:0;padding:.4rem .65rem;display:flex}.session-tab-label{letter-spacing:-.02em;font-size:.82rem;font-weight:650}.session-tab-host{color:var(--ink-muted);font-size:.68rem}.session-tab-close{appearance:none;border:0;border-left:1px solid var(--line);cursor:pointer;width:1.7rem;color:var(--ink-muted);background:0 0;font-size:1rem;line-height:1}.session-tab-close:hover{color:var(--danger);background:#fef3f2}.path-bridge{background:#0b1f2a;border:1px solid #1e3a46;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:.45rem .55rem;display:grid}.path-bridge-label{letter-spacing:.08em;text-transform:uppercase;color:#7f9eab;padding-left:.25rem;font-size:.68rem;font-weight:700}.path-bridge-input{appearance:none;color:#e8f1f5;background:0 0;border:0;outline:none;width:100%;min-width:0;padding:.35rem .25rem;font-size:.88rem}.path-bridge-input::placeholder{color:#5b7582}.path-cross{appearance:none;color:#99f6e4;font:inherit;cursor:pointer;white-space:nowrap;background:#2dd4bf1f;border:1px solid #2dd4bf73;border-radius:8px;padding:.4rem .7rem;font-size:.78rem;font-weight:650}.path-cross:hover:not(:disabled){background:#2dd4bf38}.path-cross:disabled{opacity:.4;cursor:not-allowed}.term-surface{background:#07151c;border:1px solid #16323f;border-radius:14px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden;box-shadow:0 24px 50px -36px #07151cd9}.term-chrome{color:#7f9eab;text-transform:lowercase;border-bottom:1px solid #ffffff0f;align-items:center;gap:.45rem;padding:.4rem .7rem;font-size:.72rem;display:flex}.term-chrome-label{letter-spacing:.04em}.session-error{color:#fca5a5}.dot{background:#94a3b8;border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.dot-ready,.dot-connected{background:#34d399}.dot-connecting{background:#fbbf24}.dot-error,.dot-closed{background:#f87171}.xterm-host{flex:1;min-height:min(62vh,640px);padding:.4rem .55rem .55rem}.xterm-host .xterm{height:100%}.xterm-host .xterm-viewport{overflow-y:auto!important}.ftp-surface{border:1px solid var(--line);min-height:min(68vh,720px);box-shadow:var(--shadow);background:#fff;border-radius:14px;flex-direction:column;flex:1;display:flex;overflow:hidden}.ftp-pathbar{background:#0b1f2a;border-bottom:1px solid #16323f;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.4rem;padding:.55rem .6rem;display:grid}.path-nav{appearance:none;color:#e8f1f5;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:8px;width:2.1rem;height:2.1rem;font-size:1rem}.path-nav:disabled{opacity:.35;cursor:not-allowed}.path-field{background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:.45rem;min-width:0;padding:0 .35rem;display:flex}.path-prefix{letter-spacing:.08em;text-transform:uppercase;color:#7f9eab;padding-left:.25rem;font-size:.65rem;font-weight:700}.path-input.ant-input{font-size:.88rem;color:#e8f1f5!important;box-shadow:none!important;background:0 0!important}.ftp-pathbar .path-cross{background:#2dd4bf24}.ftp-subbar{border-bottom:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.55rem;padding:.45rem .75rem;display:flex}.ftp-crumbs{flex-wrap:wrap;align-items:center;gap:.1rem;font-size:.8rem;display:flex}.crumb{appearance:none;color:var(--accent-deep);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:.1rem .2rem;font-weight:600}.crumb:hover:not(:disabled){background:var(--accent-soft)}.crumb:disabled{opacity:.45;cursor:not-allowed}.crumb-sep{color:#9aafb8;margin:0 .05rem}.ftp-sub-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.ghost-btn{appearance:none;border:1px solid var(--line);font:inherit;cursor:pointer;color:var(--ink);background:#fff;border-radius:8px;padding:.28rem .55rem;font-size:.76rem;font-weight:600}.ghost-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-deep)}.ghost-btn:disabled{opacity:.4;cursor:not-allowed}.ftp-status{color:var(--ink-muted);text-transform:lowercase;align-items:center;gap:.35rem;margin-left:.25rem;font-size:.72rem;display:inline-flex}.ftp-listing{flex:1;min-height:0;overflow:auto}.session-workspace.is-fullscreen .ftp-listing{min-height:0}.ftp-listing.is-loading{opacity:.65}.ftp-listing.is-dragover{outline-offset:-8px;background:#2dd4bf0f;outline:2px dashed #2dd4bf8c}.ftp-drop-hint{z-index:2;text-align:center;color:#99f6e4;pointer-events:none;background:#0d948840;border-bottom:1px solid #2dd4bf59;padding:.65rem 1rem;font-size:.85rem;font-weight:600;position:sticky;top:0}.ftp-upload-backdrop,.ws-connect-backdrop{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#07151cb8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.ftp-upload-dialog,.ws-connect-panel{color:#e8f1f5;background:#0b1f2a;border:1px solid #2dd4bf59;border-radius:14px;flex-direction:column;width:min(100%,520px);max-height:min(85vh,640px);display:flex;overflow:hidden;box-shadow:0 24px 50px -28px #000000b3}.ftp-upload-dialog-head,.ws-connect-head{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1rem 1.1rem .65rem;display:flex}.ftp-upload-dialog-head strong,.ws-connect-head strong{letter-spacing:-.02em;font-size:1rem;display:block}.ws-connect-head p,.ftp-upload-lead{color:#7f9eab;margin:.35rem 0 0;padding:0 1.1rem;font-size:.84rem;line-height:1.45}.ftp-upload-x,.ws-connect-x{appearance:none;color:#7f9eab;cursor:pointer;background:0 0;border:0;padding:.1rem .35rem;font-size:1.35rem;line-height:1}.ftp-upload-error{color:#fecaca;background:#f871711a;border:1px solid #f8717159;border-radius:8px;margin:.5rem 1.1rem 0;padding:.55rem .7rem;font-size:.82rem}.ftp-upload-overall{padding:.65rem 1.1rem 0}.ftp-upload-overall-meta,.ftp-root-meta{color:#7f9eab;font-size:.78rem}.ftp-upload-bar{background:#ffffff14;border-radius:999px;height:5px;margin-top:.4rem;overflow:hidden}.ftp-upload-bar-sm{height:3px;margin-top:.3rem}.ftp-upload-bar-fill{border-radius:inherit;background:linear-gradient(90deg,#14b8a6,#2dd4bf);height:100%;transition:width .12s}.ftp-upload-roots,.ws-connect-list{flex-direction:column;flex:1;gap:.55rem;margin:.75rem 0 0;padding:0 1.1rem;list-style:none;display:flex;overflow:auto}.ftp-root-top{justify-content:space-between;gap:.75rem;font-size:.85rem;display:flex}.ftp-root-error{color:#fca5a5;margin-top:.25rem;font-size:.75rem}.ftp-upload-dialog-foot{border-top:1px solid #16323f;justify-content:flex-end;gap:.5rem;margin-top:.85rem;padding:.9rem 1.1rem 1.05rem;display:flex}.ftp-upload-btn,.ws-connect-btn{appearance:none;font:inherit;cursor:pointer;color:#99f6e4;background:#2dd4bf1a;border:1px solid #2dd4bf59;border-radius:8px;padding:.4rem .85rem;font-size:.82rem;font-weight:650}.ftp-upload-btn.primary,.ws-connect-btn.is-primary{color:#ecfeff;background:#0f766e;border-color:#14b8a6}.ftp-upload-btn.ghost{color:#b6d0da;background:0 0;border-color:#7f9eab66}.ws-connect-btn{white-space:nowrap;flex-shrink:0}.ws-connect-btn:hover{background:#2dd4bf2e}.ws-connect-panel-lg{width:min(100%,600px);max-height:min(90vh,780px)}.ws-connect-panel-lg .ws-connect-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.ws-connect-search{flex-shrink:0;padding:0 1.1rem .65rem}.ws-connect-search-input{box-sizing:border-box;appearance:none;color:#e8f1f5;width:100%;font:inherit;background:#00000040;border:1px solid #1e3a46;border-radius:8px;padding:.55rem .75rem;font-size:.85rem}.ws-connect-search-input::placeholder{color:#5b6b76}.ws-connect-search-input:focus{border-color:#2dd4bf8c;outline:none}.ws-connect-list{max-height:min(62vh,560px);padding-bottom:.85rem}.ws-connect-row.is-active:not(.is-disabled){background:#2dd4bf1f;border-color:#2dd4bf8c}.ws-connect-muted{color:#7f9eab;margin:.5rem 1.1rem;font-size:.88rem}.ws-connect-row{appearance:none;text-align:left;color:#e8f1f5;cursor:pointer;width:100%;font:inherit;background:#ffffff08;border:1px solid #1e3a46;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .8rem;display:flex}.ws-connect-row:hover:not(:disabled){background:#2dd4bf14;border-color:#2dd4bf73}.ws-connect-row.is-disabled,.ws-connect-row:disabled{opacity:.45;cursor:not-allowed}.ws-connect-row-main{flex-direction:column;gap:.15rem;min-width:0;display:flex}.ws-connect-row-label{font-size:.9rem;font-weight:650}.ws-connect-row-host{color:#7f9eab;font-size:.75rem}.ws-connect-row-status{color:#5eead4;flex-shrink:0;font-size:.75rem;font-weight:650}.ws-connect-row.is-disabled .ws-connect-row-status{color:#7f9eab}.workspace-shell .ftp-cmd-menus .ant-btn{color:#d7e6ec;background:#ffffff0a;border-color:#ffffff1f}.workspace-shell .ftp-cmd-menus .ant-btn-primary{color:#ecfeff;background:#0f766ed9;border-color:#2dd4bf73}.workspace-shell .ftp-cmd-menus .ant-btn-dangerous{color:#fecaca;background:#f8717114;border-color:#f8717159}.ftp-native-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ftp-transfer-dropdown{background:#0b1f2a;border:1px solid #1e3a46;border-radius:10px;flex-direction:column;gap:.2rem;min-width:180px;padding:.35rem;display:flex;box-shadow:0 12px 28px -18px #000000bf}.ftp-transfer-action{color:#e8f1f5;cursor:pointer;border-radius:8px;margin:0;padding:.55rem .75rem;font-size:.84rem;font-weight:600;display:block}.ftp-transfer-action:hover{color:#99f6e4;background:#2dd4bf1f}.ftp-transfer-action.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.ftp-upload-head{color:#e8f1f5;justify-content:space-between;align-items:center;gap:.75rem;font-size:.82rem;display:flex}.ftp-upload-overall-meta{color:#7f9eab;margin-left:.5rem;font-size:.75rem;font-weight:500}.ftp-upload-dismiss{appearance:none;color:#b6d0da;font:inherit;cursor:pointer;background:0 0;border:1px solid #7f9eab66;border-radius:6px;padding:.2rem .55rem;font-size:.72rem}.ftp-upload-overall-bar,.ftp-upload-file-bar{background:#ffffff14;border-radius:999px;height:4px;margin-top:.4rem;overflow:hidden}.ftp-upload-overall-fill,.ftp-upload-file-fill{border-radius:inherit;background:linear-gradient(90deg,#14b8a6,#2dd4bf);height:100%;transition:width .12s}.ftp-upload-list{flex-direction:column;gap:.35rem;margin:.45rem 0 0;padding:0;list-style:none;display:flex}.ftp-upload-row-top{justify-content:space-between;gap:.75rem;font-size:.74rem;display:flex}.ftp-upload-name{color:#d7e6ec;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ftp-upload-row-meta{color:#7f9eab;flex-shrink:0}.ftp-upload-row.status-error .ftp-upload-row-meta{color:#fca5a5}.ftp-upload-row.status-done .ftp-upload-row-meta{color:#6ee7b7}.ftp-conflict-body p{margin:0 0 .65rem;line-height:1.45}.ftp-conflict-meta{color:#64748b;font-size:.85rem}.ftp-conflict-hint{color:#64748b;font-size:.8rem}.ftp-conflict-actions{flex-wrap:wrap;gap:.4rem;margin-top:.85rem;display:flex}.ftp-conflict-btn{appearance:none;color:#0f172a;font:inherit;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.4rem .7rem;font-size:.8rem;font-weight:600}.ftp-conflict-btn:hover{border-color:#94a3b8}.ftp-conflict-btn.primary{color:#ecfeff;background:#0f766e;border-color:#0f766e}.ftp-conflict-btn.ghost{color:#64748b;background:0 0}.ftp-empty{text-align:center;color:var(--ink-muted);padding:2.5rem 1rem}.ftp-table{border-collapse:collapse;width:100%;font-size:.88rem}.ftp-table th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);border-bottom:1px solid var(--line);background:#fff;padding:.55rem .85rem;font-size:.72rem;font-weight:650;position:sticky;top:0}.ftp-table td{border-bottom:1px solid #edf2f4;padding:.48rem .85rem}.ftp-table tr.is-dir:hover,.ftp-table tr:hover{background:#f4faf9}.ftp-table tr.is-selected{background:#ecfdf8}.ftp-table .num{text-align:right;white-space:nowrap;width:7rem}.ftp-name{appearance:none;color:var(--ink);cursor:default;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:.45rem;padding:0;display:inline-flex}.ftp-name.dir{cursor:pointer;color:var(--accent-deep);font-weight:650}.ftp-name.dir:hover{text-decoration:underline}.ftype{border-radius:3px;flex-shrink:0;width:.85rem;height:.85rem;display:inline-block}.ftype-dir{background:linear-gradient(145deg,#5eead4,#0f766e);box-shadow:inset 0 -2px #0000001f}.ftype-file{background:#d7e0e6;border:1px solid #b8c6cf}@media (width<=720px){.ftp-pathbar{grid-template-columns:auto minmax(0,1fr)}.ftp-pathbar .ant-btn,.ftp-pathbar .path-cross{grid-column:span 1}.path-bridge{grid-template-columns:auto minmax(0,1fr)}.path-bridge .path-cross{grid-column:1/-1}}
