:root{
  --remote-unit:calc(var(--space) / 2);--remote-gap:var(--space);--remote-pad:calc(var(--space) * 2);
  --remote-caption:12px;--remote-body:13px;--remote-title:18px;--remote-terminal-size:14px;
  --remote-mono:Consolas,"Cascadia Mono","Microsoft YaHei",monospace;
  --remote-terminal-bg:#101b2c;--remote-terminal-ink:#e2e8f0;--remote-terminal-cursor:#5eead4;--remote-terminal-selection:#355c76;
  --remote-border:1px;--remote-focus:2px;--remote-window:1280px;--remote-clipboard:720px;
  --remote-inset:calc(var(--space) * 8);--remote-height:86vh;--remote-min-height:320px;
  --remote-name-width:360px;--remote-name-min:180px;--remote-progress-width:240px;
}
.remote-dialog{width:var(--remote-window);max-width:calc(100vw - var(--remote-inset));max-height:calc(100vh - var(--remote-inset));padding:var(--remote-pad);color:var(--text);background:var(--surface)}
.remote-dialog[open]{display:flex;flex-direction:column;gap:var(--remote-gap)}
.remote-workspace{height:var(--remote-height);min-height:var(--remote-min-height);overflow:hidden}
.remote-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--remote-pad)}
.remote-heading h3{font-size:var(--remote-title);color:var(--primary);margin:0 0 var(--remote-unit)}
.remote-target{margin:0;color:var(--muted);font-size:var(--remote-caption);overflow-wrap:anywhere}
.remote-actions,.remote-path,.remote-footer,.remote-transfer{display:flex;gap:var(--remote-gap);align-items:center;flex-wrap:wrap}
.remote-actions{flex-shrink:0}
.remote-path{flex-wrap:nowrap;margin:var(--remote-unit) 0}
.remote-path label{flex:1;min-width:0;margin:0}
.remote-path input{font-family:var(--remote-mono);font-size:var(--remote-body)}
.remote-hint{margin:0;font-size:var(--remote-caption);color:var(--muted);line-height:1.5}
.remote-status{margin:0;min-height:calc(var(--remote-unit) * 5);overflow-wrap:anywhere;font-size:var(--remote-body)}
.remote-status.err{margin:0}
.remote-state{font-size:var(--remote-caption);font-weight:600;color:var(--accent)}
.remote-terminal{flex:1;min-height:0;overflow:hidden;padding:var(--remote-gap);border-radius:var(--radius);background:var(--remote-terminal-bg);color:var(--remote-terminal-ink);font-family:var(--remote-mono);font-size:var(--remote-terminal-size)}
.remote-terminal .xterm{height:100%}
.remote-terminal .xterm-viewport{border-radius:var(--remote-unit)}
.remote-footer{justify-content:space-between}
.remote-tablewrap{flex:1;min-height:0;overflow:auto;border:var(--remote-border) solid var(--border);border-radius:var(--radius);box-shadow:none}
.remote-table thead{position:sticky;top:0;z-index:1}
.remote-table td:first-child{min-width:var(--remote-name-min);max-width:var(--remote-name-width);white-space:normal;overflow-wrap:anywhere}
.remote-table .remote-name{display:block;max-width:100%;padding:var(--remote-unit) 0;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere}
.remote-table .remote-row-actions{display:flex;gap:var(--remote-unit)}
.remote-table .remote-delete{color:var(--danger)}
.remote-transfer{padding:var(--remote-gap);border-radius:var(--radius);background:var(--surface-2)}
.remote-transfer progress{width:var(--remote-progress-width);height:var(--remote-gap);accent-color:var(--accent)}
.remote-transfer span{flex:1;font-size:var(--remote-caption);overflow-wrap:anywhere}
.remote-editor{flex:1;display:flex;min-height:0;flex-direction:column;margin:0;gap:var(--remote-gap)}
.remote-editor textarea{flex:1;min-height:0;resize:none;white-space:pre;tab-size:4;font-family:var(--remote-mono);font-size:var(--remote-body);line-height:1.6}
.remote-editor-options{display:flex;gap:var(--remote-pad);align-items:center;flex-wrap:wrap}
.remote-editor-options label{margin:0;display:flex;flex-direction:row;align-items:center;gap:var(--remote-gap)}
.remote-editor-options select{width:auto}
.remote-editor-options .checkbox input{width:auto}
.remote-dirty{color:var(--warning);font-size:var(--remote-caption)}
#remoteClipboardDialog{width:var(--remote-clipboard)}
#remoteClipboardText{font-family:var(--remote-mono);font-size:var(--remote-body);resize:vertical}
.remote-dialog :focus-visible{outline:var(--remote-focus) solid var(--primary-2);outline-offset:var(--remote-focus)}
.remote-terminal :focus-visible{outline-color:var(--remote-terminal-cursor)}
