.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:#171717;--ink-muted:#737373;--ink-subtle:#a3a3a3;--line:#e5e5e5;--line-strong:#d4d4d4;--surface:#fff;--surface-2:#fafafa;--surface-3:#f5f5f5;--accent:#2563eb;--accent-soft:#eff6ff;--accent-deep:#1d4ed8;--danger:#dc2626;--ok:#16a34a;--warn:#d97706;--sidebar:#fff;--shadow-sm:0 1px 2px #0000000a;--shadow:0 4px 12px #0000000f;--shadow-lg:0 12px 40px #00000014;--radius:10px;--radius-lg:12px;color:var(--ink);background:var(--surface-2);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:var(--surface-2);min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}.brand{color:var(--ink);letter-spacing:-.03em;align-items:center;gap:.55rem;min-height:56px;padding:1.1rem 1rem .85rem;font-size:.95rem;font-weight:700;text-decoration:none;transition:opacity .14s;display:flex}.brand:hover{color:var(--ink);opacity:.85}.brand span{color:var(--accent)}.brand-mark{background:var(--ink);border-radius:2px;flex-shrink:0;width:8px;height:8px}.brand-collapsed{font-size:1rem;font-weight:700}.app-shell.ant-layout{background:var(--surface-2);min-height:100vh}.app-main.ant-layout{background:var(--surface-2)}.app-sider.ant-layout-sider{border-right:1px solid var(--line);box-shadow:none;background:var(--sidebar)!important}.app-sider .ant-menu{padding:.35rem .5rem;border-inline-end:none!important}.app-nav-menu .ant-menu-item{font-weight:500;border-radius:8px!important;margin-block:2px!important}.app-nav-menu .ant-menu-item-selected{font-weight:600}.app-header{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:100;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0;background:#ffffffeb!important;height:52px!important;padding:0 1.25rem!important;line-height:normal!important}.app-header-left{flex:1;align-items:center;gap:.25rem;min-width:0;display:flex}.app-header-right{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.sidebar-toggle{flex-shrink:0;color:var(--ink-muted)!important;width:36px!important;height:36px!important}.sidebar-toggle:hover{color:var(--ink)!important;background:var(--surface-3)!important}.app-breadcrumb{align-items:center;gap:.5rem;min-width:0;display:flex}.app-breadcrumb-icon{color:var(--ink-muted);font-size:.9375rem;display:none}@media (width>=640px){.app-breadcrumb-icon{display:inline-flex}}.app-breadcrumb-list{flex-wrap:nowrap;align-items:center;min-width:0;margin:0;padding:0;list-style:none;display:flex}.app-breadcrumb-item{align-items:center;min-width:0;display:inline-flex}.app-breadcrumb-sep{color:var(--ink-subtle);-webkit-user-select:none;user-select:none;margin:0 .4rem;font-size:.8125rem}.app-breadcrumb-link{color:var(--ink-muted);white-space:nowrap;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .12s}.app-breadcrumb-link:hover{color:var(--ink)}.app-breadcrumb-current{color:var(--ink);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.app-header-action{height:32px!important;padding-inline:.75rem!important;font-size:.8125rem!important;font-weight:500!important}.app-header-action-label{display:none}@media (width>=640px){.app-header-action-label{display:inline}}.account-chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;color:var(--ink);border-radius:999px;align-items:center;gap:.45rem;max-width:220px;padding:.2rem .45rem .2rem .2rem;transition:border-color .14s,box-shadow .14s,background .14s;display:inline-flex}.account-chip:hover{border-color:var(--line-strong);background:var(--surface-2);box-shadow:var(--shadow-sm)}.account-avatar{flex-shrink:0;font-weight:600;background:var(--ink)!important;color:#fff!important;font-size:11px!important}.account-email{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.8125rem;display:none;overflow:hidden}.account-chevron{color:var(--ink-subtle);flex-shrink:0;font-size:.625rem;display:none}@media (width>=768px){.account-email,.account-chevron{display:block}.account-chip{max-width:260px;padding-right:.65rem}}.account-menu-user{flex-direction:column;gap:.1rem;min-width:180px;padding:.15rem 0;display:flex}.account-menu-name{color:var(--ink);font-size:.875rem;font-weight:600}.account-menu-email{color:var(--ink-muted);word-break:break-all;font-size:.8125rem}.account-dropdown .ant-dropdown-menu-item-disabled{cursor:default;opacity:1!important}.account-dropdown .ant-dropdown-menu-item a{color:inherit}.app-content-wrap{background:0 0;width:100%;max-width:1200px;min-height:calc(100vh - 52px);margin:0 auto;padding:1.5rem 1.75rem 2rem}.app-content-panel{box-shadow:none;background:0 0;border:none;min-height:auto;padding:0}@media (width<=640px){.app-content-wrap{padding:1rem}.app-header{padding-inline:.75rem!important}}.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:.06em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.35rem;font-size:.6875rem;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:Inter,ui-sans-serif,system-ui,sans-serif}.stat-link{color:var(--accent);margin-top:.55rem;font-size:.85rem;font-weight:500;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);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.85rem 1rem;transition:border-color .16s,box-shadow .16s;display:grid}.host-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:none}@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}.server-detail{max-width:1040px}.server-hero{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;gap:1rem;margin-bottom:1.25rem;padding:1.25rem 1.35rem;display:flex}.server-hero--loading{min-height:160px}.server-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.server-hero-identity{align-items:center;gap:.85rem;min-width:0;display:flex}.server-hero-avatar{background:var(--surface-3);border:1px solid var(--line);letter-spacing:-.03em;width:2.75rem;height:2.75rem;color:var(--ink);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:inline-flex}.server-hero-title{letter-spacing:-.035em;margin:0;font-size:1.5rem;font-weight:700;line-height:1.2}.server-hero-host{color:var(--ink-muted);margin:.25rem 0 0;font-size:.875rem}.server-hero-port{color:var(--ink-subtle)}.server-hero-status{text-align:right;flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}@media (width<=640px){.server-hero-status{text-align:left;align-items:flex-start}}.server-check-meta{color:var(--ink-subtle);font-size:.75rem}.server-check-error{color:var(--danger);max-width:220px;font-size:.75rem;line-height:1.35}.server-meta-chips{flex-wrap:wrap;gap:.45rem;display:flex}.server-chip{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-muted);border-radius:999px;align-items:center;padding:.28rem .6rem;font-size:.75rem;font-weight:500;display:inline-flex}.server-chip--link{color:var(--ink-muted);text-decoration:none;transition:border-color .14s,color .14s}.server-chip--link:hover{border-color:var(--line-strong);color:var(--ink)}.server-chip--ok{color:#15803d;background:#ecfdf3;border-color:#bbf7d0}.server-chip--warn{color:#b45309;background:#fffbeb;border-color:#fde68a}.server-actions{flex-wrap:wrap;gap:.5rem;display:flex}.server-hero-note{color:var(--ink-subtle);border-top:1px solid var(--line);margin:0;padding-top:.85rem;font-size:.75rem;line-height:1.45}.server-setup-banner{border-radius:var(--radius-lg);background:linear-gradient(135deg,#eff6ff 0%,#f8fafc 100%);border:1px solid #bfdbfe;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.15rem;display:flex}.server-setup-banner-icon{width:2.5rem;height:2.5rem;color:var(--accent-deep);background:#fff;border:1px solid #dbeafe;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.server-setup-banner-body{flex-direction:column;flex:1;gap:.2rem;min-width:200px;display:flex}.server-setup-banner-body strong{color:var(--ink);font-size:.9375rem;font-weight:600}.server-setup-banner-body span{color:var(--ink-muted);font-size:.8125rem;line-height:1.45}.server-detail-grid,.server-overview-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}@media (width<=900px){.server-detail-grid,.server-overview-grid{grid-template-columns:1fr}}.server-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:1.15rem 1.25rem 1.25rem}.server-panel--audit{padding-bottom:.65rem}.server-panel-head{align-items:flex-start;gap:.75rem;margin-bottom:1.1rem;display:flex}.server-panel-head-row{flex:1;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.server-panel-head h2{letter-spacing:-.02em;margin:0;font-size:.9375rem;font-weight:600}.server-panel-head p{color:var(--ink-muted);margin:.2rem 0 0;font-size:.8125rem;line-height:1.4}.server-panel-icon{background:var(--surface-3);border:1px solid var(--line);width:2rem;height:2rem;color:var(--ink-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;display:inline-flex}.server-panel-icon--key{color:var(--accent-deep);background:#eff6ff;border-color:#dbeafe}.server-panel-icon--muted{background:var(--surface-2)}.server-cred-ok{border-radius:var(--radius);background:#ecfdf3;border:1px solid #bbf7d0;align-items:flex-start;gap:.65rem;margin-bottom:1rem;padding:.75rem .85rem;display:flex}.server-cred-ok-copy{flex:1;min-width:0}.server-cred-ok-icon{color:var(--ok);flex-shrink:0;margin-top:.1rem;font-size:1rem}.server-cred-ok strong{color:#15803d;font-size:.8125rem;font-weight:600;display:block}.server-cred-ok span{color:#166534;margin-top:.1rem;font-size:.75rem;line-height:1.4;display:block}.server-auth-toggle{width:100%}.server-auth-toggle .ant-radio-button-wrapper{text-align:center;flex:1}.server-secret-input{font-size:.8125rem!important}.server-audit-table .ant-table{background:0 0}.server-audit-table .ant-table-thead>tr>th{color:var(--ink-muted);font-size:.75rem;font-weight:600;background:var(--surface-2)!important}.server-create{width:100%;max-width:none}.server-create-top{margin-bottom:1.5rem}.server-create-top .back-link{margin-bottom:1rem}.server-create-hero{align-items:flex-start;gap:1rem;display:flex}.server-create-icon{width:2.75rem;height:2.75rem;color:var(--accent-deep);background:#eff6ff;border:1px solid #dbeafe;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.15rem;display:inline-flex}.server-create-title{letter-spacing:-.035em;margin:0;font-size:clamp(1.5rem,2.5vw,1.875rem);font-weight:700;line-height:1.2}.server-create-lead{color:var(--ink-muted);max-width:52rem;margin:.4rem 0 0;font-size:.9375rem;line-height:1.5}.server-stepper{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;padding:1.35rem 1.5rem 1.15rem}.server-stepper-list{align-items:flex-start;margin:0;padding:0;list-style:none;display:flex}.server-stepper-item{text-align:center;flex-direction:column;flex:none;align-items:center;gap:.45rem;width:9.5rem;display:flex}.server-stepper-dot{border:2px solid var(--line-strong);background:var(--surface);letter-spacing:-.02em;width:2rem;height:2rem;color:var(--ink-subtle);border-radius:999px;justify-content:center;align-items:center;font-size:.8125rem;font-weight:700;transition:background .16s,border-color .16s,color .16s,box-shadow .16s;display:inline-flex}.server-stepper-label{letter-spacing:-.02em;color:var(--ink-muted);font-size:.875rem;font-weight:600;line-height:1.2}.server-stepper-hint{color:var(--ink-subtle);max-width:8.5rem;font-size:.6875rem;line-height:1.35}.server-stepper-item--active .server-stepper-dot{border-color:var(--ink);background:var(--ink);color:#fff;box-shadow:0 0 0 4px #17171714}.server-stepper-item--active .server-stepper-label{color:var(--ink)}.server-stepper-item--active .server-stepper-hint{color:var(--ink-muted)}.server-stepper-item--upcoming .server-stepper-dot{background:var(--surface-2)}.server-stepper-rail{background:var(--line);border-radius:1px;flex:1;min-width:1.5rem;height:2px;margin-top:1rem}.server-stepper-rail--partial{background:linear-gradient(90deg, var(--ink) 0%, var(--line) 100%)}@media (width<=720px){.server-stepper{padding:1rem;overflow-x:auto}.server-stepper-list{min-width:520px}.server-stepper-item{width:8.5rem}.server-stepper-hint{display:none}}.server-create-layout{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}@media (width<=900px){.server-create-layout{grid-template-columns:1fr}}.server-create-aside{flex-direction:column;gap:.85rem;display:flex;position:sticky;top:1rem}@media (width<=900px){.server-create-aside{grid-template-columns:1fr 1fr;gap:.75rem;display:grid;position:static}}@media (width<=640px){.server-create-aside{grid-template-columns:1fr}}.server-create-guide{border-radius:var(--radius-lg);background:linear-gradient(135deg,#eff6ff 0%,#f8fafc 100%);border:1px solid #bfdbfe;padding:1rem 1.05rem}.server-create-guide-kicker{letter-spacing:.05em;text-transform:uppercase;color:var(--accent-deep);margin:0 0 .35rem;font-size:.6875rem;font-weight:600}.server-create-guide h2{letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:600}.server-create-guide p{color:var(--ink-muted);margin:.45rem 0 0;font-size:.8125rem;line-height:1.45}.server-create-tip,.server-create-next{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:.85rem 1rem}.server-create-tip{align-items:flex-start;gap:.65rem;display:flex}.server-create-tip .anticon{color:var(--ok);flex-shrink:0;margin-top:.1rem;font-size:1rem}.server-create-tip strong,.server-create-next h3{color:var(--ink);font-size:.8125rem;font-weight:600;display:block}.server-create-tip span{color:var(--ink-muted);margin-top:.15rem;font-size:.75rem;line-height:1.4;display:block}.server-create-next h3{margin:0 0 .55rem}.server-create-next ul{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.server-create-next li{color:var(--ink-muted);align-items:center;gap:.45rem;font-size:.75rem;display:flex}.server-create-next .anticon{color:var(--ink-subtle)}.server-create-main{min-width:0}.server-create-form{margin-bottom:0}.server-create-form-grid .ant-form-item{margin-bottom:1rem}.server-create-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:.65rem;margin-top:.25rem;padding-top:.35rem;display:flex}.server-info-list{flex-direction:column;gap:.65rem;display:flex}.server-info-row{border-bottom:1px solid var(--line);flex-direction:column;gap:.15rem;padding-bottom:.65rem;display:flex}.server-info-row:last-child{border-bottom:none;padding-bottom:0}.server-info-label{color:var(--ink-subtle);font-size:.75rem;font-weight:500}.server-info-value{color:var(--ink);word-break:break-word;font-size:.875rem;line-height:1.4}.server-insights-grid{flex-direction:column;gap:.75rem;display:flex}.server-insight{align-items:flex-start;gap:.65rem;display:flex}.server-insight-icon{border:1px solid var(--line);background:var(--surface-2);width:2rem;height:2rem;color:var(--ink-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;display:inline-flex}.server-insight--memory .server-insight-icon{color:#2563eb;background:#eff6ff;border-color:#dbeafe}.server-insight--storage .server-insight-icon{color:#16a34a;background:#ecfdf3;border-color:#bbf7d0}.server-insight--cpu .server-insight-icon{color:#7c3aed;background:#faf5ff;border-color:#e9d5ff}.server-insight-body{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.server-insight-label{color:var(--ink-muted);font-size:.75rem;font-weight:500}.server-insight-value{letter-spacing:-.02em;color:var(--ink);font-size:1.05rem;font-weight:600}.server-insight-detail{color:var(--ink-subtle);font-size:.75rem}.server-insight-bar{margin:-.15rem 0 .35rem 2.65rem}.server-insights-foot{color:var(--ink-subtle);margin:.25rem 0 0;font-size:.75rem}.server-insights-empty{text-align:center;border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--ink-muted);flex-direction:column;align-items:center;gap:.65rem;padding:1.5rem 1rem;display:flex}.server-insights-empty .anticon{color:var(--ink-subtle);font-size:1.35rem}.server-insights-empty p{max-width:18rem;margin:0;font-size:.875rem;line-height:1.45}.server-drawer-lead{color:var(--ink-muted);margin:0 0 1rem;font-size:.8125rem;line-height:1.45}.server-settings-drawer .ant-drawer-body{padding-top:.5rem}.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;border:1px dashed var(--line);border-radius:var(--radius-lg);background:var(--surface);margin-top:.5rem;padding: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-radius:var(--radius);border-color:var(--line);box-shadow:var(--shadow-sm);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:var(--surface-2);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-page{background:var(--surface);grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.auth-brand{color:#fafafa;background:linear-gradient(145deg,#0a0a0a 0%,#171717 40%,#262626 100%);border-right:1px solid #262626;justify-content:center;align-items:center;padding:2.5rem;display:flex}.auth-brand-inner{max-width:380px}.auth-logo{letter-spacing:-.04em;color:#fff;margin-bottom:1.25rem;font-size:1.35rem;font-weight:700;text-decoration:none;display:inline-block}.auth-logo span{color:#60a5fa}.auth-tagline{color:#d4d4d4;letter-spacing:-.02em;margin:0 0 1.75rem;font-size:1.125rem;line-height:1.55}.auth-points{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.auth-points li{color:#a3a3a3;padding-left:1.25rem;font-size:.9375rem;position:relative}.auth-points li:before{content:"";background:#60a5fa;border-radius:50%;width:6px;height:6px;position:absolute;top:.55em;left:0}.auth-main{background:var(--surface);justify-content:center;align-items:center;padding:2rem;display:flex}.auth-form-wrap{width:min(100%,400px)}.auth-form-head h1{letter-spacing:-.03em;color:var(--ink);margin:0 0 .35rem;font-size:1.5rem;font-weight:700}.auth-form-head p{color:var(--ink-muted);margin:0 0 1.5rem;font-size:.9375rem}.auth-card{width:min(100%,420px);overflow:hidden;border-radius:var(--radius-lg)!important}.auth-footer{color:var(--ink-muted);margin-top:1.25rem;margin-bottom:0;font-size:.875rem}.auth-footer a{font-weight:500}@media (width<=900px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-main{min-height:100vh}}.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:1rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--ink)}.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;pointer-events:none}.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}}.db-tab-badge{letter-spacing:.02em;color:#5eead4;vertical-align:middle;background:#2dd4bf33;border-radius:4px;margin-right:.35rem;padding:0 .3rem;font-size:.6rem;font-weight:700;display:inline-block}.db-manager{color:#0f172a;background:#fff;border:1px solid #1e3a46;border-radius:12px;flex:1;gap:0;min-height:0;display:flex;overflow:hidden}.db-manager-tree{background:#f8fafc;border-right:1px solid #e5e7eb;flex:0 0 260px;width:260px;min-height:0;padding:.5rem;overflow:auto}.db-manager-tree-head{justify-content:space-between;align-items:center;margin-bottom:.35rem;padding:0 .15rem;display:flex}.db-manager-main{flex:1;min-width:0;min-height:0;padding:.5rem .85rem;overflow:auto}.db-manager-output{color:#e2e8f0;white-space:pre-wrap;background:#0f172a;border-radius:6px;max-height:320px;padding:12px;font-size:12px;overflow:auto}.db-manager-tree-empty{text-align:center;padding:1.5rem .5rem}.row-edit-grid{flex-direction:column;gap:.75rem;max-height:60vh;padding-right:.35rem;display:flex;overflow:auto}.row-edit-field{flex-direction:column;gap:.25rem;display:flex}.row-edit-label{justify-content:space-between;align-items:center;font-size:12px;display:flex}.sidebar-toggle{color:var(--ink-muted)!important}.status-pill{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex}.status-pill-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.status-pill--live{color:var(--ok);background:#ecfdf3;border-color:#abefc6}.status-pill--live .status-pill-dot{background:var(--ok)}.status-pill--busy{color:#175cd3;background:#eff8ff;border-color:#b2ddff}.status-pill--busy .status-pill-dot{background:#175cd3}.status-pill--failed{color:var(--danger);background:#fef3f2;border-color:#fecdca}.status-pill--draft{color:var(--warn);background:#fffaeb;border-color:#fedf89}.project-card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.project-card-wrap{flex-direction:column;gap:.45rem;display:flex}.project-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit;box-shadow:var(--shadow-sm);padding:1rem 1.05rem;text-decoration:none;transition:border-color .16s,box-shadow .16s;display:block}.project-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:none}.project-card-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.project-card-name{letter-spacing:-.02em;font-size:1.02rem;font-weight:700}.project-card-meta,.project-card-sub{color:var(--ink-muted);margin:0;font-size:.82rem}.project-card-sub{margin-top:.15rem;font-size:.78rem}.project-card-actions{gap:.4rem;padding-left:.15rem;display:flex}.home-page .home-section{margin-top:1.75rem}.home-page{flex-direction:column;gap:1.5rem;display:flex}.home-hero{flex-direction:column;gap:1.25rem;padding-bottom:.25rem;display:flex}.home-title{letter-spacing:-.035em;color:var(--ink);margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.home-subtitle{color:var(--ink-muted);max-width:32rem;margin:.35rem 0 0;font-size:.9375rem;line-height:1.5}.home-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;width:100%;display:grid}@media (width<=720px){.home-stats{grid-template-columns:1fr}}.home-stat{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);min-height:108px;box-shadow:var(--shadow-sm);color:inherit;flex-direction:column;gap:.35rem;padding:1rem 1.05rem;text-decoration:none;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex}a.home-stat:hover{border-color:var(--line-strong);box-shadow:var(--shadow);color:inherit;transform:translateY(-1px)}.home-stat-head{align-items:center;gap:.45rem;display:flex}.home-stat-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.875rem;display:inline-flex}.home-stat-icon--apps{color:var(--ink);border:1px solid var(--line);background:#f5f5f5}.home-stat-icon--servers{color:#2563eb;background:#eff6ff;border:1px solid #dbeafe}.home-stat-icon--live{color:#16a34a;background:#ecfdf3;border:1px solid #bbf7d0}.home-stat-label{color:var(--ink-muted);letter-spacing:-.01em;font-size:.8125rem;font-weight:500}.home-stat-value{letter-spacing:-.04em;color:var(--ink);margin-top:.15rem;font-size:2rem;font-weight:700;line-height:1}.home-stat-detail{color:var(--ink-subtle);margin-top:auto;padding-top:.15rem;font-size:.8125rem;line-height:1.35}.home-stat--live{cursor:default}.home-onboard{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:1.25rem 1.35rem}.home-onboard-lead{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);margin:0 0 1rem;font-size:.8125rem;font-weight:600}.home-onboard-steps{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=768px){.home-onboard-steps{grid-template-columns:repeat(3,1fr);gap:.75rem}}.home-onboard-step{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:.65rem;min-height:140px;padding:1rem;display:flex}.home-onboard-step--active{border-color:var(--ink);background:var(--surface);box-shadow:var(--shadow-sm)}.home-onboard-step strong{color:var(--ink);margin-bottom:.2rem;font-size:.9375rem;font-weight:600;display:block}.home-onboard-step span:not(.home-onboard-num){color:var(--ink-muted);font-size:.8125rem;line-height:1.45;display:block}.home-onboard-num{background:var(--surface-3);width:1.5rem;height:1.5rem;color:var(--ink);border-radius:6px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.home-onboard-step--active .home-onboard-num{background:var(--ink);color:#fff}.home-next-banner{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);color:inherit;align-items:center;gap:1rem;padding:1rem 1.15rem;text-decoration:none;transition:border-color .16s,box-shadow .16s;display:flex}.home-next-banner:hover{border-color:var(--line-strong);box-shadow:var(--shadow);color:inherit}.home-next-banner-icon{background:var(--surface-3);width:2.5rem;height:2.5rem;color:var(--ink);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.home-next-banner-body{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.home-next-banner-body strong{color:var(--ink);font-size:.9375rem;font-weight:600}.home-next-banner-body span{color:var(--ink-muted);font-size:.8125rem;line-height:1.45}.home-next-banner-action{color:var(--accent);white-space:nowrap;flex-shrink:0;font-size:.8125rem;font-weight:600}.home-grid{gap:1.25rem;display:grid}@media (width>=960px){.home-grid{grid-template-columns:1fr 1fr;align-items:start}}.home-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.home-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.15rem;display:flex}.home-panel-title{align-items:center;gap:.65rem;min-width:0;display:flex}.home-panel-icon-wrap{background:var(--surface-3);border:1px solid var(--line);width:2.25rem;height:2.25rem;color:var(--ink-muted);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:flex}.home-panel-title h2{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:.9375rem;font-weight:600;line-height:1.2}.home-panel-count{color:var(--ink-muted);margin-top:.1rem;font-size:.75rem;font-weight:400;display:block}.home-panel-action{flex-shrink:0}.home-panel-body{flex:1;padding:.85rem}.home-panel-loading{flex-direction:column;gap:.65rem;display:flex}.home-panel-footer{border-top:1px solid var(--line);color:var(--accent);background:var(--surface-2);justify-content:center;align-items:center;gap:.35rem;padding:.7rem 1.15rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:background .14s,color .14s;display:flex}.home-panel-footer:hover{color:var(--accent-deep);background:var(--surface-3)}.home-card-stack{flex-direction:column;gap:.55rem;display:flex}.home-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit;align-items:center;gap:.85rem;padding:.85rem .9rem;text-decoration:none;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex;position:relative}.home-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);color:inherit}.home-card:hover .home-card-arrow{opacity:1;transform:translate(2px)}.home-card-icon{letter-spacing:-.02em;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:.9375rem;font-weight:700;display:flex}.home-card-icon--app{color:var(--ink);border:1px solid var(--line);background:#f5f5f5}.home-card-icon--server{color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe}.home-card-icon--ok{color:#16a34a;background:#ecfdf3;border-color:#bbf7d0}.home-card-icon--pending{color:#d97706;background:#fffbeb;border-color:#fde68a}.home-card-icon--bad{color:#dc2626;background:#fef2f2;border-color:#fecaca}.home-card-body{flex:1;min-width:0}.home-card-row{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.15rem;display:flex}.home-card-name{letter-spacing:-.02em;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:600;overflow:hidden}.home-card-sub{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;margin:0 0 .45rem;font-size:.8125rem;overflow:hidden}.home-card-tags{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.home-card-tag{color:var(--ink-muted);background:var(--surface-3);border:1px solid var(--line);border-radius:6px;align-items:center;gap:.25rem;padding:.12rem .45rem;font-size:.6875rem;font-weight:500;display:inline-flex}.home-card-tag--muted{color:var(--ink-subtle);background:0 0;border-color:#0000;padding-inline:0}.home-card-row .status-pill{flex-shrink:0;padding:.1rem .45rem;font-size:.6875rem}.home-card-arrow{color:var(--ink-subtle);opacity:0;flex-shrink:0;font-size:.75rem;transition:opacity .16s,transform .16s}.home-empty{padding:.5rem}.home-empty-inner{text-align:center;border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface-2);padding:2rem 1.25rem}.home-empty-icon{background:var(--surface);border:1px solid var(--line);width:2.75rem;height:2.75rem;color:var(--ink-muted);border-radius:12px;justify-content:center;align-items:center;margin:0 auto .85rem;font-size:1.2rem;display:flex}.home-empty-title{letter-spacing:-.02em;color:var(--ink);margin:0 0 .35rem;font-size:.9375rem;font-weight:600}.home-empty-desc{color:var(--ink-muted);margin:0 0 1rem;max-width:260px;margin-inline:auto;font-size:.8125rem;line-height:1.5}.home-section-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.home-section-head h4{margin:0!important}.home-see-all{margin-top:.75rem;font-size:.86rem;font-weight:600;display:inline-block}.onboarding-steps{gap:.75rem;margin-bottom:.5rem;display:grid}.onboarding-step{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:auto 1fr;gap:1rem;padding:1.1rem 1.15rem;display:grid}.onboarding-step--muted{opacity:.72}.onboarding-num{background:var(--surface-3);width:2rem;height:2rem;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;display:inline-flex}.empty-stage.compact{padding:1.5rem 1.25rem}.project-hero{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;padding:1.25rem 1.35rem;display:flex}.project-hero-url{align-items:center;gap:.25rem;margin-top:.35rem;display:flex}.project-hero-url a{color:var(--accent);font-size:.9375rem;font-weight:500}.project-hero-actions{margin-left:auto}.setup-panel,.activity-panel{margin-bottom:1.25rem}.setup-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:1.1rem 1.15rem}.setup-panel-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.85rem;display:flex}.setup-checklist{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.setup-step{border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.65rem .5rem;display:grid}.setup-step--done{opacity:.88}.setup-step-icon{color:var(--ok);font-size:1.1rem;line-height:1}.setup-step-ring{border:2px solid var(--line);border-radius:50%;width:14px;height:14px;display:inline-block}.setup-step-body{flex-direction:column;gap:.1rem;min-width:0;display:flex}.setup-step-detail{font-size:.82rem!important}.setup-step-action,.setup-step-link{white-space:nowrap;font-size:.82rem;font-weight:600}.project-settings .ant-tabs-left>.ant-tabs-nav{min-width:160px}.project-settings-panel{min-height:200px;padding-left:.25rem}.project-detail-card>.ant-card-body{padding-top:.35rem}.project-detail{width:100%}.project-detail-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.project-detail-title{letter-spacing:-.035em;margin:0;font-size:clamp(1.375rem,2.5vw,1.75rem);font-weight:700;line-height:1.2}.project-detail-sub{color:var(--ink-muted);margin:.35rem 0 0;font-size:.875rem}.publish-page{width:100%}.publish-readiness{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.15rem;display:flex}.publish-readiness-list{flex:1;align-items:center;min-width:280px;margin:0;padding:0;list-style:none;display:flex}.publish-readiness-item{text-align:center;flex-direction:column;flex:none;align-items:center;gap:.35rem;width:7rem;display:flex}.publish-readiness-dot{border:2px solid var(--line-strong);background:var(--surface);width:1.75rem;height:1.75rem;color:var(--ink-subtle);border-radius:999px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.publish-readiness-item--active .publish-readiness-dot{border-color:var(--ink);background:var(--ink);color:#fff}.publish-readiness-item--done .publish-readiness-dot{border-color:var(--ok);color:var(--ok);background:#ecfdf3;font-size:.6875rem}.publish-readiness-label{color:var(--ink-muted);font-size:.75rem;font-weight:500}.publish-readiness-item--active .publish-readiness-label{color:var(--ink);font-weight:600}.publish-readiness-rail{background:var(--line);flex:1;min-width:1.25rem;height:2px;margin-top:.85rem}.publish-readiness-rail--done{background:var(--ok)}.publish-readiness-cta{font-weight:500;height:auto!important;padding:0!important}.publish-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:1rem;display:grid}@media (width<=960px){.publish-grid{grid-template-columns:1fr}}.publish-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);min-height:280px;padding:1.15rem 1.25rem 1.25rem}.publish-panel-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:.75rem;margin-bottom:1.1rem;padding-bottom:1rem;display:flex}.publish-panel-head h2{letter-spacing:-.02em;margin:0;font-size:.9375rem;font-weight:600}.publish-panel-head p{color:var(--ink-muted);margin:.2rem 0 0;font-size:.8125rem;line-height:1.4}.publish-panel-icon{border:1px solid var(--line);background:var(--surface-2);width:2rem;height:2rem;color:var(--ink-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;display:inline-flex}.publish-panel-icon--github{color:var(--ink);background:#f5f5f5}.publish-panel-icon--deploy{color:var(--accent-deep);background:#eff6ff;border-color:#dbeafe}.publish-source-options{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=560px){.publish-source-options{grid-template-columns:1fr}}.publish-source-option{appearance:none;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.45rem;padding:1rem 1.05rem;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex}.publish-source-option:hover:not(:disabled){border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-1px)}.publish-source-option:disabled{opacity:.6;cursor:not-allowed}.publish-source-option strong{color:var(--ink);font-size:.9375rem;font-weight:600}.publish-source-option span:last-child{color:var(--ink-muted);font-size:.8125rem;line-height:1.4}.publish-source-option-icon{border-radius:10px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.1rem;display:inline-flex}.publish-source-option-icon--github{border:1px solid var(--line);color:var(--ink);background:#f5f5f5}.publish-source-option-icon--zip{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.publish-github-accounts{border-radius:var(--radius)!important}.publish-deploy-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;margin-bottom:1rem;display:flex}.publish-deploy-actions{flex-wrap:wrap;gap:.5rem;display:flex}.publish-banner{border-radius:var(--radius);flex-direction:column;gap:.15rem;margin-bottom:.75rem;padding:.75rem .85rem;font-size:.8125rem;line-height:1.4;display:flex}.publish-banner strong{font-weight:600}.publish-banner span{color:var(--ink-muted)}.publish-banner--warn{background:#fffbeb;border:1px solid #fde68a}.publish-banner--warn strong{color:#b45309}.publish-banner--info{background:#eff6ff;border:1px solid #dbeafe}.publish-banner--info strong{color:var(--accent-deep);font-family:IBM Plex Mono,ui-monospace,Menlo,monospace;font-size:.8125rem}.publish-retention-note{color:var(--ink-subtle);margin:0 0 .85rem;font-size:.75rem}.publish-history-table .ant-table{background:0 0}.publish-history-table .ant-table-thead>tr>th{color:var(--ink-muted);font-size:.75rem;font-weight:600;background:var(--surface-2)!important}.publish-history-table .ant-table-placeholder .ant-table-cell{padding:2rem 1rem!important}.publish-panel--configure{margin-bottom:1rem}.publish-grid--secondary .publish-panel{opacity:.92}.publish-panel--locked{position:relative}.publish-panel--locked .publish-deploy-toolbar,.publish-panel--locked .publish-history-table{pointer-events:none;opacity:.45}.publish-locked-note{text-align:center;color:var(--ink-muted);border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface-2);padding:1.25rem 1rem;font-size:.875rem}.publish-readiness-done{color:var(--ok);align-items:center;gap:.35rem;font-size:.8125rem;font-weight:500;display:inline-flex}.publish-ops-banner{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.publish-ops-meta{color:var(--ink-muted)}.project-access-alert{margin-bottom:1.25rem}.publish-edit-stack{appearance:none;font:inherit;color:var(--accent-deep);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8125rem;font-weight:500}.publish-edit-stack:hover{text-decoration:underline}.build-setup-lead{color:var(--ink-muted);margin:0 0 1rem;font-size:.875rem;line-height:1.45}.build-setup-detected{background:var(--surface-raised,#f5f5f5);border:1px solid var(--border-subtle,#eaeaea);color:var(--ink-muted);border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.build-setup-detected p{margin:0 0 .35rem}.build-setup-env-hint{font-size:.8125rem}.build-setup-alert{margin-bottom:1rem}.build-setup-types{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}@media (width<=720px){.build-setup-types{grid-template-columns:1fr}}.build-setup-type{appearance:none;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.4rem;padding:1rem;transition:border-color .16s,box-shadow .16s;display:flex}.build-setup-type:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.build-setup-type--active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.build-setup-type-icon{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1rem;display:inline-flex}.build-setup-type--active .build-setup-type-icon{background:var(--ink);border-color:var(--ink);color:#fff}.build-setup-type strong{color:var(--ink);font-size:.9375rem;font-weight:600}.build-setup-type span:last-child{color:var(--ink-muted);font-size:.8125rem;line-height:1.4}.build-setup-field-label{color:var(--ink);margin:0 0 .5rem;font-size:.8125rem;font-weight:600}.build-setup-topology{margin-bottom:1rem}.build-setup-topology-options{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}@media (width<=560px){.build-setup-topology-options{grid-template-columns:1fr}}.build-setup-topology-option{appearance:none;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer;flex-direction:column;gap:.2rem;padding:.75rem .85rem;display:flex}.build-setup-topology-option--active{border-color:var(--ink);background:var(--surface-2)}.build-setup-topology-option strong{font-size:.8125rem;font-weight:600}.build-setup-topology-option span{color:var(--ink-muted);font-size:.75rem}.build-setup-form{max-width:420px}.build-setup-actions{flex-wrap:wrap;align-items:center;gap:.65rem;padding-top:.25rem;display:flex}@media (width<=768px){.project-hero{flex-direction:column}.project-hero-actions{width:100%;margin-left:0}.project-settings .ant-tabs-left{flex-direction:column}}
