:root{--bg:#f7f7f3;--panel:#fbfbf7;--terminal:#f1f1eb;--green:#2f8f4e;--text:#343434;--dim:rgba(52,52,52,.54);--line:rgba(52,52,52,.14);--danger:#9b3d44}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font:13px/1.4 "Courier New",ui-monospace,monospace}.hidden{display:none!important}.scanlines{position:fixed;z-index:20;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(52,52,52,.025),rgba(52,52,52,.025) 1px,transparent 1px,transparent 3px);opacity:.45}button,input{font:inherit}button{border:1px solid var(--line);background:#f2f2ec;color:var(--text);padding:8px 12px;font-weight:700;cursor:pointer}button:hover,button.active{border-color:var(--green);color:var(--green);background:#eeeeE7}input{width:100%;border:1px solid var(--line);background:#fff;color:var(--green);padding:11px;outline:0;border-radius:0}input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(47,143,78,.10)}.prompt{color:var(--dim)}.prompt span,.prompt b{color:var(--green)}h1{margin:18px 0 4px;color:var(--green);font-size:22px;letter-spacing:.08em}.login{min-height:100dvh;display:grid;place-content:center;padding:18px}.auth-card{width:min(460px,calc(100vw - 24px));padding:28px;border:1px solid var(--line);background:rgba(251,251,247,.96);box-shadow:0 22px 70px rgba(0,0,0,.06)}.auth-card p{margin:4px 0 20px;color:var(--dim)}.auth-card label{display:block;margin:0 0 5px;color:var(--dim)}.auth-card button{width:100%;margin-top:12px}.trust{display:flex!important;align-items:center;gap:8px;margin-top:12px!important}.trust input{width:auto}.auth-card .error{height:18px;margin:10px 0 0;color:var(--danger)}
main{height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;padding:8px;background:var(--bg)}header,footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);background:var(--panel)}header{padding:7px 9px;border-bottom:0}.identity{display:flex;align-items:center;gap:9px;min-width:0}.identity div{display:grid}.identity b{color:var(--green)}.identity small{color:var(--dim)}.status-dot{width:8px;height:8px;background:#b49b7d;box-shadow:0 0 8px rgba(180,155,125,.28)}.status-dot.online{background:var(--green);box-shadow:0 0 10px rgba(47,143,78,.32)}.actions{display:flex;gap:4px}#tabs{display:flex;min-width:0;overflow-x:auto;border:1px solid var(--line);border-bottom:0;background:#eeeeE7}#tabs button{display:flex;align-items:center;gap:7px;min-width:115px;padding:6px 8px;border:0;border-right:1px solid var(--line);background:#f4f4ef;color:var(--dim);text-align:left}#tabs button.active{background:#fbfbf7;color:var(--green)}#tabs i{width:6px;height:6px;background:#b49b7d}#tabs i.online{background:var(--green);box-shadow:0 0 7px rgba(47,143,78,.35)}#tabs span{flex:1}#tabs b{padding:0 2px;font-size:16px;color:var(--dim)}#tabs b:hover{color:var(--danger)}.terminal-panel{min-width:0;min-height:0;overflow:hidden;border:1px solid var(--line);background:var(--terminal);box-shadow:inset 0 0 46px rgba(52,52,52,.055)}#terminals{position:relative;min-width:0;min-height:0;width:100%;height:100%;overflow:hidden}.term-host{position:absolute;inset:0;display:none;overflow:hidden;padding:8px}.term-host.active{display:block}.xterm{height:100%;max-width:100%}.xterm-screen{max-width:100%}#terminals.selecting,.selecting .xterm,.selecting .xterm-viewport{cursor:crosshair!important;touch-action:none}footer{padding:5px 9px;border-top:0;color:var(--dim);font-size:10px}footer #status{color:var(--green)}.copy-view{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:12px;background:rgba(247,247,243,.86);backdrop-filter:blur(10px)}.copy-dialog{display:grid;grid-template-rows:auto auto minmax(0,1fr);width:min(1100px,100%);height:min(90dvh,900px);border:1px solid var(--green);background:var(--panel);box-shadow:0 24px 90px rgba(0,0,0,.10)}.copy-dialog header{position:relative;z-index:2;border:0;border-bottom:1px solid var(--line)}.copy-dialog header div{display:flex;gap:4px}.copy-dialog p{margin:0;padding:8px 10px;color:var(--dim);border-bottom:1px solid var(--line)}#copy-text-close{border-color:var(--green);color:var(--green);min-width:110px;touch-action:manipulation}#copy-text{margin:0;padding:12px;overflow:auto;color:var(--text);background:#fff;white-space:pre-wrap;word-break:break-word;user-select:text;-webkit-user-select:text;cursor:text}
@media(max-width:700px){main{padding:3px}header{display:grid;padding:6px}.identity small{display:none}.actions{display:grid;grid-template-columns:repeat(7,1fr)}.actions button{padding:7px 2px;font-size:8px}#tabs button{min-width:98px}.term-host{padding:3px}footer{padding:4px 6px}footer span:last-child{display:none}.copy-view{padding:4px}.copy-dialog{height:96dvh}.copy-dialog header{display:grid}.copy-dialog header div{display:grid;grid-template-columns:1fr 1fr}}
#files-panel{position:fixed;z-index:25;top:0;right:0;bottom:0;width:min(440px,100vw);background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .18s ease;box-shadow:-10px 0 36px rgba(0,0,0,.09)}
#files-panel.open{transform:translateX(0)}
.fp-header{display:flex;align-items:center;gap:6px;padding:7px 8px;border-bottom:1px solid var(--line)}
.fp-header input{flex:1;padding:5px 8px;font-size:11px}
.fp-header button{padding:5px 9px;font-size:13px}
.fp-tabs{display:flex;border-bottom:1px solid var(--line)}
.fp-tab{flex:1;border:0;border-bottom:2px solid transparent;background:transparent;padding:6px;font-size:11px;color:var(--dim);cursor:pointer}
.fp-tab.active{border-bottom-color:var(--green);color:var(--green)}
.fp-list{flex:1;overflow-y:auto;padding:6px 8px}
.fp-folder{margin-bottom:10px}
.fp-folder-name{color:var(--dim);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:2px 0;border-bottom:1px solid var(--line);margin-bottom:3px}
.fp-file{display:flex;align-items:center;gap:5px;padding:3px 0;border-bottom:1px solid rgba(52,52,52,.05)}
.fp-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.fp-meta{color:var(--dim);font-size:9px;white-space:nowrap}
.fp-dl{padding:2px 7px;font-size:9px;font-weight:700;border-color:var(--green);color:var(--green);text-decoration:none;border:1px solid;display:inline-block;font-family:inherit}
.fp-empty{color:var(--dim);padding:16px;text-align:center;font-size:11px}
#upload-toast{position:fixed;z-index:35;bottom:36px;left:50%;transform:translateX(-50%);background:var(--panel);border:1px solid var(--green);color:var(--green);padding:9px 18px;font-size:11px;white-space:nowrap;box-shadow:0 6px 24px rgba(0,0,0,.1);pointer-events:none}
#upload-toast.error{border-color:var(--danger);color:var(--danger)}
#drop-overlay{position:fixed;z-index:40;inset:0;background:rgba(47,143,78,.08);border:3px dashed var(--green);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:var(--green);letter-spacing:.1em;pointer-events:none}
