zerogterm 0.7.0-alpha1 → 0.7.0-alpha2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +8 -6
- package/bin/zerogterm.cjs +23 -23
- package/dist/renderer/assets/index-BjXtNztF.css +1 -0
- package/dist/renderer/assets/index-Ogyjvi0e.js +19 -0
- package/dist/renderer/index.html +4 -4
- package/package.json +1 -1
- package/dist/renderer/assets/index-D5eoFnzh.css +0 -1
- package/dist/renderer/assets/index-EEjSxqRY.js +0 -19
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Stephen Phillips
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Stephen Phillips
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -7,7 +7,9 @@ ZeroG Terminal is an alpha project, but it is already useful as a multi-session
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
9
|
- Multi-pane workspaces with stack, vertical split, horizontal split, and four-pane grid layouts.
|
|
10
|
-
- Draggable dividers between panes and beside the sidebar, so a split does not have to be an even one. Sizes are remembered between launches.
|
|
10
|
+
- Draggable dividers between panes and beside the sidebar, so a split does not have to be an even one. Sizes are remembered between launches.
|
|
11
|
+
- A compact navigation rail for sessions, overview, settings, SSH connections, and opening a new local terminal, while keeping the sessions sidebar collapsible.
|
|
12
|
+
- Layout controls that restore a split, even up its pane sizes, and maximize or restore a pane in a predictable sequence.
|
|
11
13
|
- Maximize a focused pane and cycle between sessions without losing the other panes.
|
|
12
14
|
- Local sessions powered by Bash, PowerShell, WSL, and other supported shell backends; persistent sessions use `screen` where available, with a process-only fallback when it is unavailable.
|
|
13
15
|
- SSH sessions for hosts, `user@host`, and `user@host:port` targets.
|
|
@@ -32,7 +34,7 @@ See the project walkthrough on [YouTube](https://youtu.be/4aJZCxLHD14).
|
|
|
32
34
|
|
|
33
35
|
## Release status
|
|
34
36
|
|
|
35
|
-
ZeroG Terminal is currently a public alpha. The current release is `0.
|
|
37
|
+
ZeroG Terminal is currently a public alpha. The current release is `0.7.0-alpha2`; the version history is tracked in [versions.txt](versions.txt).
|
|
36
38
|
|
|
37
39
|
The npm package contains the built Electron application and project documentation. It is intended for early adopters and testing rather than production use.
|
|
38
40
|
|
|
@@ -90,12 +92,12 @@ OSC 7 — the sequence a shell emits to report its directory — and otherwise f
|
|
|
90
92
|
the path in the prompt; it never types `pwd` into your session to find out. When
|
|
91
93
|
neither is available the panel opens at the login directory.
|
|
92
94
|
|
|
93
|
-
Select files with a click, or several with Ctrl-click, then Upload or Download.
|
|
95
|
+
Select files with a click, or several with Ctrl-click or Shift-click, then Upload or Download.
|
|
94
96
|
Double-click a folder to open it, or type a path into the folder box. New folder,
|
|
95
97
|
rename, and delete act on one selected item; deleting asks first, and a folder
|
|
96
|
-
must be empty, so a single click can never remove a tree.
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
must be empty, so a single click can never remove a tree. Remote folders can be
|
|
99
|
+
downloaded recursively with the system `sftp` client; uploads remain file-only,
|
|
100
|
+
so a local folder is never copied accidentally as a different job.
|
|
99
101
|
|
|
100
102
|
Filenames containing quotes, backslashes, or the wildcard characters `* ? [ ]`
|
|
101
103
|
are refused with a message rather than acted on. The `sftp` client re-reads its
|
package/bin/zerogterm.cjs
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const { spawn } = require('node:child_process');
|
|
4
|
-
const path = require('node:path');
|
|
5
|
-
const electron = require('electron');
|
|
6
|
-
|
|
7
|
-
const packageRoot = path.resolve(__dirname, '..');
|
|
8
|
-
const child = spawn(electron, [packageRoot, ...process.argv.slice(2)], {
|
|
9
|
-
stdio: 'inherit'
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
child.on('error', (error) => {
|
|
13
|
-
console.error(`Failed to start ZeroG Terminal: ${error.message}`);
|
|
14
|
-
process.exitCode = 1;
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
child.on('close', (code, signal) => {
|
|
18
|
-
if (signal) {
|
|
19
|
-
process.kill(process.pid, signal);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
process.exitCode = code ?? 1;
|
|
23
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { spawn } = require('node:child_process');
|
|
4
|
+
const path = require('node:path');
|
|
5
|
+
const electron = require('electron');
|
|
6
|
+
|
|
7
|
+
const packageRoot = path.resolve(__dirname, '..');
|
|
8
|
+
const child = spawn(electron, [packageRoot, ...process.argv.slice(2)], {
|
|
9
|
+
stdio: 'inherit'
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
child.on('error', (error) => {
|
|
13
|
+
console.error(`Failed to start ZeroG Terminal: ${error.message}`);
|
|
14
|
+
process.exitCode = 1;
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
child.on('close', (code, signal) => {
|
|
18
|
+
if (signal) {
|
|
19
|
+
process.kill(process.pid, signal);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
process.exitCode = code ?? 1;
|
|
23
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#d8dee9;background:#0a0c10;font-size:13px;line-height:1.4;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:980px;overflow:hidden;background:#0a0c10}button,input{font:inherit}button{color:inherit;border:0;cursor:pointer}button:focus-visible,input:focus-visible{outline:1px solid #7aa2f7;outline-offset:2px}.app-shell{height:100vh;background:#0a0c10}.window-bar{height:48px;display:flex;align-items:center;border-bottom:1px solid #202630;background:#0f1218;padding:0 12px;gap:14px}.window-brand{width:120px;display:flex;align-items:center;gap:9px;flex:none}.brand-mark{display:grid;place-items:center;width:25px;height:25px;border:1px solid #3b82f6;border-radius:5px;color:#7aa2f7;font:700 9px JetBrains Mono,monospace}.brand-name{font-size:13px;font-weight:650;letter-spacing:.01em}.workspace-tabs{display:flex;align-items:center;gap:6px;min-width:0;overflow:auto}.workspace-tab{height:32px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid transparent;border-radius:5px;color:#8b93a3;background:transparent;white-space:nowrap}.workspace-tab.active{background:#151a22;border-color:#252d39;color:#d8dee9}.tab-dot,.connection-dot,.pane-live{width:6px;height:6px;border-radius:50%;background:#9ece6a;display:inline-block;flex:none}.tab-meta{font:11px JetBrains Mono,monospace;color:#697386;margin-left:2px}.window-actions{margin-left:auto;display:flex;align-items:center;gap:4px;flex:none}.bar-button{height:30px;display:flex;align-items:center;gap:7px;padding:0 9px;border-radius:4px;color:#8b93a3;background:transparent}.bar-button:hover{background:#1a202a;color:#d8dee9}.icon{font-size:14px;line-height:1;color:currentColor}.icon-svg{width:14px;height:14px;display:block;flex:none}.square-button .icon-svg,.rail-button .icon-svg,.layout-button .icon-svg,.inline-restore .icon-svg{width:15px;height:15px}.body-shell{height:calc(100vh - 48px);display:flex}.rail{width:48px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 0;border-right:1px solid #202630;background:#0d1015;flex:none}.rail-button{width:32px;height:32px;display:grid;place-items:center;border-radius:5px;color:#697386;background:transparent}.rail-button:hover,.rail-button.active{background:#1a202a;color:#d8dee9}.rail-button.active{box-shadow:inset 2px 0 #7aa2f7}.rail-spacer{flex:1}.session-drawer{width:238px;max-width:40vw;display:flex;flex-direction:column;border-right:1px solid #202630;background:#0f1218;flex:none}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 14px 12px;gap:8px}.drawer-head-actions{display:flex;align-items:center;gap:6px}.eyebrow{display:block;color:#697386;font-size:10px;font-weight:700;letter-spacing:.1em}.drawer-head h1{margin:3px 0 0;font-size:16px;font-weight:600;letter-spacing:-.01em}.square-button{width:27px;height:27px;display:grid;place-items:center;border:1px solid #2a3340;border-radius:4px;background:#151a22;color:#9aa4b2}.square-button:hover{border-color:#7aa2f7;color:#d8dee9}.drawer-tools{display:flex;gap:2px;padding:0 10px 10px;border-bottom:1px solid #202630}.drawer-tool{padding:5px 7px;border-radius:4px;color:#697386;background:transparent;font-size:11px}.drawer-tool span{margin-left:5px;color:#4e5969}.drawer-tool:hover,.drawer-tool.active{background:#1a202a;color:#d8dee9}.session-list{padding:8px 7px;overflow:auto;flex:1}.session-row{width:100%;display:flex;align-items:center;gap:9px;padding:9px 8px;text-align:left;border-radius:5px;background:transparent;color:#8b93a3}.session-row:hover{background:#151a22}.session-row.active{background:#1c2531;color:#d8dee9;box-shadow:inset 2px 0 #7aa2f7}.status-dot{width:6px;height:6px;border-radius:50%;background:#4e5969;flex:none}.status-dot.connected{background:#9ece6a}.status-dot.detached{background:#e0af68}.status-dot.error{background:#f7768e}.session-copy{min-width:0;display:flex;flex-direction:column;gap:2px;flex:1}.session-copy b{font-size:12px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-copy small{font:10px JetBrains Mono,monospace;color:#697386;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-state{font:11px JetBrains Mono,monospace;color:#697386}.session-empty{display:flex;flex-direction:column;gap:6px;padding:18px 10px;color:#697386}.session-empty b{color:#8b93a3;font-size:12px;font-weight:550}.session-empty small{font-size:11px;line-height:1.45}.session-group-label{padding:8px 10px 4px;color:#697386;font:10px JetBrains Mono,monospace;letter-spacing:.04em}.drawer-bottom{margin-top:auto;padding:10px 9px;border-top:1px solid #202630}.drawer-action{width:100%;display:flex;align-items:center;gap:8px;padding:7px 5px;color:#8b93a3;background:transparent;text-align:left;border-radius:4px;font-size:11px}.drawer-action:hover{background:#151a22;color:#d8dee9}.drawer-action kbd{margin-left:auto;color:#4e5969;font:9px JetBrains Mono,monospace}.drawer-status{display:flex;align-items:center;gap:8px;margin-top:13px;padding:5px;color:#697386;font:10px JetBrains Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace{display:flex;flex:1;flex-direction:column;min-width:0;background:#0a0c10}.workspace-head{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #202630;background:#0d1015}.location{display:flex;align-items:center;gap:8px;color:#8b93a3;font:11px JetBrains Mono,monospace;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inline-restore{width:24px;height:24px;display:grid;place-items:center;border-radius:4px;color:#8b93a3;background:#151a22;border:1px solid #2a3340}.inline-restore:hover{color:#d8dee9;border-color:#7aa2f7}.slash{color:#3d4654}.muted-text{color:#697386}.layout-controls{display:flex;align-items:center;gap:2px}.head-controls{display:flex;align-items:center;gap:18px}.control-label{font-size:9px;color:#4e5969;letter-spacing:.08em;margin-right:6px}.layout-button{width:26px;height:25px;display:grid;place-items:center;border-radius:4px;background:transparent;color:#697386}.layout-button:hover:not(:disabled),.layout-button.active{background:#1a202a;color:#9ece6a}.layout-button:disabled{opacity:.4;cursor:default}.layout-button .icon-svg{width:15px;height:15px}.pane-grid{display:grid;flex:1;min-height:0;gap:1px;background:#202630;padding:0;position:relative}.sidebar-resizer,.pane-resizer{background:transparent;border:none;padding:0;transition:background .12s ease}.sidebar-resizer:hover,.pane-resizer:hover,.sidebar-resizer.dragging,.pane-resizer.dragging{background:#7aa2f780}.sidebar-resizer:focus-visible,.pane-resizer:focus-visible{outline:none;background:#7aa2f7}.sidebar-resizer{width:5px;flex:none;margin-left:-3px;margin-right:-2px;cursor:col-resize;position:relative;z-index:2}.pane-resizer{position:absolute;z-index:3}.pane-resizer-column{top:0;bottom:0;width:7px;transform:translate(-50%);cursor:col-resize}.pane-resizer-row{left:0;right:0;height:7px;transform:translateY(-50%);cursor:row-resize}.pane-grid.maximized-pane-grid .pane-resizer{display:none}.pane-grid.split-v{grid-template-columns:1fr 1fr}.pane-grid.split-h{grid-template-rows:1fr 1fr}.pane-grid.grid{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.pane-grid.maximized-pane-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.pane-grid:not(.maximized-pane-grid) .overflow-pane,.pane-grid.maximized-pane-grid .pane:not(.maximized-pane){display:none}.pane{min-width:0;min-height:0;display:flex;flex-direction:column;background:#0a0c10}.terminal-pane{outline:1px solid #202630;outline-offset:-1px}.terminal-pane.focused{outline:1px solid #7aa2f7;outline-offset:-1px}.pane-title{height:29px;display:flex;align-items:center;justify-content:space-between;padding:0 9px;border-bottom:1px solid #202630;color:#8b93a3;font:10px JetBrains Mono,monospace}.pane-actions,.pane-dim{color:#4e5969;font-size:9px}.pane-actions{display:flex;align-items:center;gap:5px}.pane-nav,.pane-maximize,.pane-close,.pane-proceed,.pane-mic{width:19px;height:19px;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:3px;color:#697386;background:transparent}.pane-nav:hover,.pane-maximize:hover,.pane-mic:hover{color:#d8dee9;background:#1a202a;border-color:#2a3340}.pane-close:hover{color:#f7768e;background:#f7768e24;border-color:#f7768e66}.pane-proceed:hover{color:#9ece6a;background:#9ece6a24;border-color:#9ece6a73}.pane-mic:disabled{opacity:.4;cursor:default}.pane-mic.listening{color:#f7768e;background:#f7768e29;border-color:#f7768e8c;animation:mic-pulse 1.2s ease-in-out infinite}.pane-mic.transcribing{color:#e0af68;background:#e0af6824;border-color:#e0af6880;animation:mic-pulse .8s ease-in-out infinite}@keyframes mic-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.pane-nav .icon-svg,.pane-maximize .icon-svg,.pane-close .icon-svg,.pane-proceed .icon-svg,.pane-mic .icon-svg{width:13px;height:13px}.pane-live{width:5px;height:5px;margin-right:5px}.terminal{flex:1;min-height:0;min-width:0;padding:0;overflow:visible;position:relative;background:#0a0c10;line-height:1.2;font-variant-ligatures:none}.terminal .xterm{position:absolute;inset:0;height:100%!important;width:100%!important;padding:0;box-sizing:border-box}.terminal .xterm-viewport{overflow-y:auto!important}.terminal .xterm-screen{position:relative}.terminal .xterm-rows{line-height:inherit}.empty-pane{background:#0d1015}.empty-pane-body{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;height:100%;color:#697386}.empty-glyph{display:grid;place-items:center;width:30px;height:30px;border:1px dashed #344050;border-radius:5px;color:#697386;font-size:18px}.empty-pane-body strong{font-size:11px;color:#8b93a3;font-weight:550}.empty-pane-body small{font-size:10px}.empty-pane-body button{margin-top:8px;padding:6px 9px;border:1px solid #2a3340;border-radius:4px;background:#151a22;color:#8b93a3;font-size:10px}.empty-pane-body button:hover{border-color:#7aa2f7;color:#d8dee9}.status-bar{height:25px;display:flex;align-items:center;gap:8px;padding:0 10px;border-top:1px solid #202630;background:#0f1218;color:#697386;font:10px JetBrains Mono,monospace}.status-separator{width:1px;height:11px;background:#2a3340}.status-spacer{flex:1}.overview-layer,.modal-layer{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#07090dcc}.overview{width:min(780px,calc(100vw - 100px));background:#11161e;border:1px solid #303b4b;border-radius:8px;box-shadow:0 20px 80px #0009}.overview-head,.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px 14px;border-bottom:1px solid #202630}.overview-head h2,.modal-head h2{margin:4px 0 0;font-size:17px;font-weight:600}.close-button{padding:4px 7px;border:1px solid #2a3340;border-radius:4px;background:#151a22;color:#697386;font:10px JetBrains Mono,monospace}.close-button:hover{color:#d8dee9;border-color:#7aa2f7}.thumbnail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:18px 20px}.thumbnail{padding:0;text-align:left;background:#0d1015;border:1px solid #252f3c;border-radius:6px;overflow:hidden}.thumbnail:hover,.thumbnail.active{border-color:#7aa2f7}.thumbnail.active{box-shadow:0 0 0 1px #7aa2f733}.thumbnail-preview{height:100px;padding:13px;background:#0a0c10;border-bottom:1px solid #202630;display:flex;flex-direction:column;gap:6px;position:relative}.thumbnail-line{height:3px;width:70%;background:#4e5969;border-radius:2px}.thumbnail-line.short{width:43%}.thumbnail-line.cyan{background:#7dcfff}.thumbnail-line.green{background:#9ece6a;width:56%}.thumbnail-cursor{position:absolute;left:13px;bottom:15px;width:5px;height:9px;background:#9ece6a}.thumbnail-label{display:flex;flex-direction:column;gap:3px;padding:9px 10px}.thumbnail-label b{font-size:11px;font-weight:550;color:#d8dee9}.thumbnail-label small{font:10px JetBrains Mono,monospace;color:#697386}.overview-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:7px;padding:36px;color:#697386}.overview-empty span{font-size:24px}.overview-empty b{color:#d8dee9;font-size:12px}.overview-empty small{font-size:11px}.overview-foot{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid #202630}.overview-foot button{padding:7px 9px;border:1px solid #2a3340;border-radius:4px;background:#151a22;color:#8b93a3;font-size:10px}.overview-foot button:hover{color:#d8dee9;border-color:#7aa2f7}.overview-hint{margin-left:auto;color:#4e5969;font:10px JetBrains Mono,monospace}.modal-card{width:390px;padding:0 20px 18px;background:#11161e;border:1px solid #303b4b;border-radius:8px;box-shadow:0 20px 80px #0009}.modal-card p{color:#8b93a3;font-size:12px;line-height:1.5;margin:17px 0}.modal-card label{display:block;margin-top:14px;color:#8b93a3;font-size:11px}.modal-card input{display:block;width:100%;margin-top:6px;padding:9px 10px;border:1px solid #2a3340;border-radius:4px;background:#0a0c10;color:#d8dee9;font:12px JetBrains Mono,monospace}.modal-card input:focus{border-color:#7aa2f7;outline:0}.dialog-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:16px}.dialog-tab{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border:1px solid #252f3c;border-radius:6px;background:#0d1015;color:#8b93a3;text-align:left}.dialog-tab b{color:#d8dee9;font-size:12px;font-weight:550}.dialog-tab small{font:10px JetBrains Mono,monospace;color:#4e5969}.dialog-tab:hover:not(:disabled){border-color:#7aa2f7}.dialog-tab:disabled{opacity:.6}.dialog-tab.active{border-color:#7aa2f7;background:#172033;box-shadow:0 0 0 1px #7aa2f733}.modal-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:20px}.modal-actions button{padding:8px 11px;border:1px solid #2a3340;border-radius:4px;background:#151a22;color:#8b93a3;font-size:11px}.modal-actions button:hover{color:#d8dee9;border-color:#7aa2f7}.primary-button{background:#9ece6a!important;border-color:#9ece6a!important;color:#0a0c10!important;font-weight:600}.primary-button:disabled{opacity:.55;cursor:wait}.approval-card code{display:block;padding:11px;border:1px solid #2a3340;border-radius:4px;background:#0a0c10;color:#7dcfff;font:12px JetBrains Mono,monospace}.warning-text{color:#e0af68}@media(max-width:1100px){.session-drawer{max-width:30vw}.window-brand{width:90px}.brand-name,.bar-button span{display:none}.thumbnail-grid{grid-template-columns:repeat(2,1fr)}}.history-button{color:#7aa2f7}.session-ghosted{opacity:.58;border:1px dashed #344050}.session-ghosted:hover{opacity:.9}.session-error b{color:#f7768e}.session-empty button{align-self:flex-start;padding:5px 8px;border:1px solid #2a3340;border-radius:4px;background:#151a22;color:#8b93a3;font-size:10px}.history-empty button:hover{border-color:#7aa2f7;color:#d8dee9}.history-popover{position:fixed;z-index:30;top:58px;left:245px;width:285px;max-height:min(440px,calc(100vh - 76px));overflow:auto;padding:10px;border:1px solid #303b4b;border-radius:7px;background:#11161e;box-shadow:0 18px 55px #0009}.history-layer{position:fixed;inset:0;z-index:25}.history-head{display:flex;justify-content:space-between;align-items:center;padding:3px 4px 9px;color:#d8dee9}.history-head button{background:transparent;color:#697386;font-size:18px}.history-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px 5px;text-align:left;border-top:1px solid #202630;background:transparent;color:#8b93a3}.history-main{display:flex;align-items:center;gap:9px;min-width:0}.history-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.history-remove{margin-left:8px;background:transparent;color:#536176;border:none;cursor:pointer;font-size:16px;line-height:1}.history-item:hover .history-remove{color:#253044}:root[data-theme=light] .history-remove{color:#68768a}.history-item:hover{background:#1a202a;color:#d8dee9}.history-item b,.history-item small{display:block}.history-item small,.history-note,.history-empty{color:#697386;font-size:10px}.history-kind{min-width:43px;color:#7aa2f7;font:9px JetBrains Mono,monospace}.history-empty{padding:13px 5px}.history-note{display:block;padding:9px 4px 2px;line-height:1.4}:root[data-theme=light] .history-popover{background:#fff;border-color:#c7d2e1;color:#253044}:root[data-theme=light] .history-head{color:#253044}:root[data-theme=light] .history-head button{color:#536176}:root[data-theme=light] .history-item{border-top-color:#dbe2ec;color:#536176;background:transparent}:root[data-theme=light] .history-item:hover{background:#e1e9f4;color:#253044}:root[data-theme=light] .history-item small,:root[data-theme=light] .history-note,:root[data-theme=light] .history-empty{color:#68768a}:root[data-theme=light] .history-kind{color:#2459a6}:root[data-theme=light]{color:#253044;background:#f7f9fc;color-scheme:light}:root[data-theme=light] body,:root[data-theme=light] .app-shell,:root[data-theme=light] .workspace,:root[data-theme=light] .pane,:root[data-theme=light] .terminal,:root[data-theme=light] .thumbnail-preview{background:#f7f9fc}:root[data-theme=light] .window-bar,:root[data-theme=light] .session-drawer,:root[data-theme=light] .status-bar{background:#fff;border-color:#dbe2ec}:root[data-theme=light] .rail,:root[data-theme=light] .workspace-head,:root[data-theme=light] .empty-pane{background:#eef2f7;border-color:#dbe2ec}:root[data-theme=light] .pane-grid{background:#dbe2ec}:root[data-theme=light] .workspace-tab,:root[data-theme=light] .bar-button,:root[data-theme=light] .rail-button,:root[data-theme=light] .drawer-tool,:root[data-theme=light] .drawer-action,:root[data-theme=light] .location,:root[data-theme=light] .layout-button{color:#5c687b}:root[data-theme=light] .workspace-tab.active,:root[data-theme=light] .bar-button:hover,:root[data-theme=light] .rail-button:hover,:root[data-theme=light] .rail-button.active,:root[data-theme=light] .drawer-tool:hover,:root[data-theme=light] .drawer-tool.active,:root[data-theme=light] .session-row:hover,:root[data-theme=light] .inline-restore,:root[data-theme=light] .layout-button:hover:not(:disabled),:root[data-theme=light] .layout-button.active{background:#e1e9f4;color:#253044}:root[data-theme=light] .workspace-tab.active,:root[data-theme=light] .session-row.active{border-color:#c7d5e8;background:#dbe7f5;color:#253044}:root[data-theme=light] .session-row,:root[data-theme=light] .pane-title,:root[data-theme=light] .drawer-head h1,:root[data-theme=light] .empty-pane-body strong,:root[data-theme=light] .thumbnail-label b,:root[data-theme=light] .overview-empty b{color:#253044}:root[data-theme=light] .eyebrow,:root[data-theme=light] .tab-meta,:root[data-theme=light] .session-copy small,:root[data-theme=light] .session-state,:root[data-theme=light] .session-empty,:root[data-theme=light] .drawer-status,:root[data-theme=light] .muted-text,:root[data-theme=light] .pane-actions,:root[data-theme=light] .pane-dim,:root[data-theme=light] .status-bar,:root[data-theme=light] .overview-hint,:root[data-theme=light] .thumbnail-label small,:root[data-theme=light] .overview-empty,:root[data-theme=light] .modal-card p,:root[data-theme=light] .modal-card label{color:#68768a}:root[data-theme=light] .brand-mark{color:#2459a6;border-color:#6d9bd6}:root[data-theme=light] .square-button,:root[data-theme=light] .inline-restore,:root[data-theme=light] .empty-pane-body button,:root[data-theme=light] .overview-foot button,:root[data-theme=light] .close-button,:root[data-theme=light] .modal-actions button,:root[data-theme=light] .modal-card input,:root[data-theme=light] .approval-card code{background:#fff;border-color:#c7d2e1;color:#536176}:root[data-theme=light] .session-row.active{box-shadow:inset 2px 0 #2459a6}:root[data-theme=light] .rail-button.active{box-shadow:inset 2px 0 #2459a6}:root[data-theme=light] .layout-button.active{color:#16803c}:root[data-theme=light] .pane-close:hover{color:#c53030}:root[data-theme=light] .pane-proceed:hover{color:#16803c;background:#16803c1a;border-color:#16803c59}:root[data-theme=light] .pane-mic.listening{color:#c53030}:root[data-theme=light] .pane-mic.transcribing{color:#b7791f}:root[data-theme=light] .overview,:root[data-theme=light] .modal-card{background:#fff;border-color:#c7d2e1;box-shadow:0 20px 80px #53617633}:root[data-theme=light] .overview-head,:root[data-theme=light] .modal-head,:root[data-theme=light] .overview-foot,:root[data-theme=light] .pane-title{border-color:#dbe2ec}:root[data-theme=light] .thumbnail{background:#eef2f7;border-color:#c7d2e1}:root[data-theme=light] .thumbnail-preview,:root[data-theme=light] .approval-card code,:root[data-theme=light] .modal-card input{background:#f7f9fc;border-color:#dbe2ec}:root[data-theme=light] .modal-layer,:root[data-theme=light] .overview-layer{background:#25304433}:root[data-theme=light] .empty-glyph{border-color:#b8c6d8}:root[data-theme=light] .primary-button{background:#16803c!important;border-color:#16803c!important;color:#fff!important}.settings-card{display:flex;flex-direction:column;width:min(860px,calc(100vw - 80px));max-height:min(680px,calc(100vh - 90px));background:#11161e;border:1px solid #303b4b;border-radius:8px;box-shadow:0 20px 80px #0009;overflow:hidden}.settings-body{display:grid;grid-template-columns:196px 1fr;min-height:0;flex:1}.settings-nav{display:flex;flex-direction:column;gap:2px;padding:12px 10px;border-right:1px solid #202630;background:#0d1015;overflow:auto}.settings-nav-item{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid transparent;border-radius:5px;background:none;color:#8b93a3;text-align:left}.settings-nav-item b{font-size:12px;font-weight:550}.settings-nav-item small{font:10px JetBrains Mono,monospace;color:#4e5969}.settings-nav-item:hover{background:#151a22;color:#d8dee9}.settings-nav-item.active{background:#172033;border-color:#2a3852;color:#d8dee9;box-shadow:inset 2px 0 #7aa2f7}.settings-page{padding:16px 20px 18px;overflow:auto}.settings-blurb{margin:0 0 4px;color:#8b93a3;font-size:12px;line-height:1.5}.settings-field{display:block;margin-top:14px;color:#8b93a3;font-size:11px}.settings-field-label{display:block;margin-bottom:6px}.settings-field small{display:block;margin-top:5px;color:#697386;font-size:10px;line-height:1.45}.settings-field select,.settings-field input{display:block;width:100%;padding:8px 10px;border:1px solid #2a3340;border-radius:4px;background:#0a0c10;color:#d8dee9;font:12px JetBrains Mono,monospace}.settings-field select:focus,.settings-field input:focus{border-color:#7aa2f7;outline:0}.settings-range{display:flex;align-items:center;gap:10px}.settings-range input[type=range]{flex:1;padding:0;border:0;background:none;accent-color:#7aa2f7}.settings-range output{min-width:88px;text-align:right;color:#d8dee9;font:11px JetBrains Mono,monospace}.settings-toggle{display:flex;align-items:flex-start;gap:9px;margin-top:16px}.settings-toggle input{margin-top:2px;accent-color:#9ece6a}.settings-toggle span{display:flex;flex-direction:column;gap:3px}.settings-toggle b{color:#d8dee9;font-size:12px;font-weight:550}.settings-toggle small{color:#697386;font-size:10px;line-height:1.45}.settings-preview{display:flex;flex-direction:column;margin-top:16px;padding:12px;border:1px solid #202630;border-radius:5px;background:#0a0c10;color:#9ece6a;overflow-x:auto;white-space:pre}.settings-engines{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.settings-engine{display:flex;flex-direction:column;gap:5px;padding:11px 12px;border:1px solid #252f3c;border-radius:6px;background:#0d1015;color:#8b93a3;text-align:left}.settings-engine b{color:#d8dee9;font-size:12px;font-weight:600}.settings-engine small{font-size:10px;line-height:1.45}.settings-engine:hover{border-color:#7aa2f7}.settings-engine.active{border-color:#7aa2f7;box-shadow:0 0 0 1px #7aa2f733}.settings-test{margin-top:18px;padding:12px;border:1px solid #252f3c;border-radius:6px;background:#0d1015}.settings-test-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.settings-test-head b{display:block;color:#d8dee9;font-size:12px;font-weight:550}.settings-test-head small{color:#697386;font-size:10px;line-height:1.45}.settings-test-button{flex:none;padding:7px 11px;border:1px solid #2a3340;border-radius:4px;background:#151a22;color:#8b93a3;font-size:11px}.settings-test-button:hover:not(:disabled){border-color:#7aa2f7;color:#d8dee9}.settings-test-button:disabled{opacity:.6;cursor:wait}.settings-test-button.recording{border-color:#f7768e;color:#f7768e}.settings-test-status,.settings-test-metrics{margin:9px 0 0;color:#697386;font:10px JetBrains Mono,monospace}.settings-test-error{margin:9px 0 0;color:#f7768e;font-size:11px;line-height:1.45}.settings-test-transcript{display:block;margin-top:9px;padding:10px;border:1px solid #2a3340;border-radius:4px;background:#0a0c10;color:#7dcfff;font:12px JetBrains Mono,monospace;white-space:pre-wrap}.settings-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px;padding-top:14px;border-top:1px solid #202630}.settings-hint{color:#4e5969;font:10px JetBrains Mono,monospace}.settings-foot button{padding:7px 11px;border:1px solid #2a3340;border-radius:4px;background:#151a22;color:#8b93a3;font-size:11px}.settings-foot button:hover{border-color:#e0af68;color:#e0af68}@media(max-width:780px){.settings-body{grid-template-columns:1fr}.settings-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid #202630}.settings-engines{grid-template-columns:1fr}}:root[data-theme=light] .dialog-tab{background:#f2f5fa;border-color:#dbe2ec;color:#5c687b}:root[data-theme=light] .dialog-tab b{color:#253044}:root[data-theme=light] .dialog-tab small{color:#68768a}:root[data-theme=light] .dialog-tab.active{background:#dbe7f5;border-color:#6d9bd6}:root[data-theme=light] .settings-card{background:#fff;border-color:#c7d2e1}:root[data-theme=light] .settings-nav,:root[data-theme=light] .settings-engine,:root[data-theme=light] .settings-test{background:#f2f5fa;border-color:#dbe2ec}:root[data-theme=light] .settings-nav{border-right-color:#dbe2ec}:root[data-theme=light] .settings-nav-item{color:#5c687b}:root[data-theme=light] .settings-nav-item:hover{background:#e1e9f4;color:#253044}:root[data-theme=light] .settings-nav-item.active{background:#dbe7f5;border-color:#c7d5e8;color:#253044;box-shadow:inset 2px 0 #2459a6}:root[data-theme=light] .settings-nav-item small,:root[data-theme=light] .settings-blurb,:root[data-theme=light] .settings-field,:root[data-theme=light] .settings-field small,:root[data-theme=light] .settings-toggle small,:root[data-theme=light] .settings-engine small,:root[data-theme=light] .settings-test-head small,:root[data-theme=light] .settings-test-status,:root[data-theme=light] .settings-test-metrics,:root[data-theme=light] .settings-hint{color:#68768a}:root[data-theme=light] .settings-toggle b,:root[data-theme=light] .settings-engine b,:root[data-theme=light] .settings-test-head b,:root[data-theme=light] .settings-range output{color:#253044}:root[data-theme=light] .settings-field select,:root[data-theme=light] .settings-field input,:root[data-theme=light] .settings-preview,:root[data-theme=light] .settings-test-transcript,:root[data-theme=light] .settings-test-button,:root[data-theme=light] .settings-foot button{background:#fff;border-color:#c7d2e1;color:#536176}:root[data-theme=light] .settings-preview{color:#16803c}:root[data-theme=light] .settings-test-transcript{color:#2459a6}:root[data-theme=light] .settings-foot{border-top-color:#dbe2ec}.sftp-layer{position:fixed;inset:0;z-index:22;display:grid;place-items:center;background:#07090dcc}.sftp-panel{display:flex;flex-direction:column;width:min(1180px,calc(100vw - 80px));height:min(760px,calc(100vh - 90px));background:#11161e;border:1px solid #303b4b;border-radius:8px;box-shadow:0 20px 80px #0009;overflow:hidden}.sftp-head{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px 13px;border-bottom:1px solid #202630}.sftp-head h2{margin:4px 0 0;font-size:16px;font-weight:600}.sftp-body{display:grid;grid-template-columns:1fr 1fr;gap:1px;flex:1;min-height:0;background:#202630}.sftp-pane{display:flex;flex-direction:column;min-height:0;min-width:0;background:#11161e}.sftp-pane-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px 8px}.sftp-pane-head .eyebrow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sftp-pane-tools{display:flex;gap:2px;flex:none}.sftp-pane-tools button{width:26px;height:25px;display:grid;place-items:center;border-radius:4px;background:transparent;color:#697386}.sftp-pane-tools button:hover:not(:disabled){background:#1a202a;color:#9ece6a}.sftp-pane-tools button:disabled{opacity:.4;cursor:default}.sftp-pane-tools .sftp-danger:hover:not(:disabled){color:#f7768e}.sftp-pane-tools .icon-svg{width:15px;height:15px}.sftp-path{padding:0 12px 8px}.sftp-path input{width:100%;padding:6px 8px;border:1px solid #2a3340;border-radius:4px;background:#0a0c10;color:#d8dee9;font:11px JetBrains Mono,monospace}.sftp-path input:focus{border-color:#7aa2f7;outline:0}.sftp-list{flex:1;min-height:0;overflow-y:auto;border-top:1px solid #202630}.sftp-row{display:grid;grid-template-columns:16px 1fr auto auto;align-items:center;gap:9px;width:100%;padding:6px 12px;background:transparent;color:#8b93a3;text-align:left;border-bottom:1px solid #171d26}.sftp-row:hover{background:#151a22}.sftp-row.selected{background:#1a202a;color:#d8dee9;box-shadow:inset 2px 0 #9ece6a}.sftp-row.is-directory{color:#7aa2f7}.sftp-row.is-directory.selected{color:#9ecbff}.sftp-row .icon-svg{width:15px;height:15px}.sftp-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:12px JetBrains Mono,monospace}.sftp-size,.sftp-modified{font:10px JetBrains Mono,monospace;color:#4e5969;white-space:nowrap}.sftp-modified{min-width:96px;text-align:right}.sftp-empty{display:grid;gap:4px;padding:26px 16px;text-align:center;color:#8b93a3}.sftp-empty small{color:#4e5969}.sftp-error b{color:#f7768e}.sftp-pane-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-top:1px solid #202630}.sftp-pane-foot .primary-button{display:inline-flex;align-items:center;gap:6px}.sftp-pane-foot .icon-svg{width:14px;height:14px}.sftp-count{font-size:10px;color:#4e5969}.sftp-prompt,.sftp-inline-form{padding:14px 20px;border-top:1px solid #202630;background:#151a22}.sftp-prompt pre{margin:8px 0 0;padding:9px 10px;max-height:120px;overflow:auto;border:1px solid #2a3340;border-radius:4px;background:#0a0c10;color:#e0af68;font:11px JetBrains Mono,monospace;white-space:pre-wrap}.sftp-prompt label,.sftp-inline-form label{display:block;margin-top:12px;color:#8b93a3;font-size:11px}.sftp-prompt input,.sftp-inline-form input{display:block;width:100%;margin-top:6px;padding:8px 10px;border:1px solid #2a3340;border-radius:4px;background:#0a0c10;color:#d8dee9;font:12px JetBrains Mono,monospace}.sftp-inline-form p{margin:10px 0 0;color:#8b93a3;font-size:12px}.sftp-danger-button{background:#f7768e;color:#11161e}.sftp-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 20px;border-top:1px solid #202630;font-size:11px;color:#8b93a3}.sftp-hint{color:#4e5969;font-size:10px;white-space:nowrap}.sftp-notice{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sftp-progress{position:relative;flex:1;min-width:0;padding:4px 8px;border:1px solid #2a3340;border-radius:4px;background:#0a0c10;overflow:hidden}.sftp-progress-fill{position:absolute;inset:0 auto 0 0;background:#1e3a2a;transition:width .18s linear}.sftp-progress span{position:relative;font:10px JetBrains Mono,monospace;color:#9ece6a}:root[data-theme=light] .sftp-layer{background:#1c2a3ab3}:root[data-theme=light] .sftp-panel,:root[data-theme=light] .sftp-pane{background:#fff;border-color:#dbe2ec}:root[data-theme=light] .sftp-head,:root[data-theme=light] .sftp-list,:root[data-theme=light] .sftp-pane-foot,:root[data-theme=light] .sftp-foot,:root[data-theme=light] .sftp-prompt,:root[data-theme=light] .sftp-inline-form{border-color:#dbe2ec}:root[data-theme=light] .sftp-body{background:#dbe2ec}:root[data-theme=light] .sftp-prompt,:root[data-theme=light] .sftp-inline-form{background:#eef2f7}:root[data-theme=light] .sftp-row{color:#536176;border-bottom-color:#eef2f7}:root[data-theme=light] .sftp-row:hover{background:#f2f6fb}:root[data-theme=light] .sftp-row.selected{background:#dbe7f5;color:#253044;box-shadow:inset 2px 0 #16803c}:root[data-theme=light] .sftp-row.is-directory{color:#2459a6}:root[data-theme=light] .sftp-path input,:root[data-theme=light] .sftp-prompt input,:root[data-theme=light] .sftp-inline-form input,:root[data-theme=light] .sftp-prompt pre,:root[data-theme=light] .sftp-progress{background:#fff;border-color:#c7d2e1;color:#253044}:root[data-theme=light] .sftp-prompt pre{color:#a15c00}:root[data-theme=light] .sftp-size,:root[data-theme=light] .sftp-modified,:root[data-theme=light] .sftp-count,:root[data-theme=light] .sftp-hint,:root[data-theme=light] .sftp-empty small{color:#68768a}:root[data-theme=light] .sftp-notice,:root[data-theme=light] .sftp-empty,:root[data-theme=light] .sftp-inline-form p,:root[data-theme=light] .sftp-foot{color:#536176}:root[data-theme=light] .sftp-pane-tools button{color:#68768a}:root[data-theme=light] .sftp-pane-tools button:hover:not(:disabled){background:#dbe7f5;color:#16803c}:root[data-theme=light] .sftp-progress-fill{background:#d6efdd}:root[data-theme=light] .sftp-progress span{color:#16803c}:root[data-theme=light] .sftp-danger-button{color:#fff;background:#c53030}
|