:root{--bg: #0a0e0a;--panel: #0f150f;--panel-2: #121a12;--border: #1e2a1e;--fg: #c9f0c9;--fg-dim: #6f8f6f;--accent: #33ff66;--accent-dim: #1f9e3f;--red: #ff4d4d;--amber: #ffb454;--mono: "JetBrains Mono", "Fira Code", "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:13px;line-height:1.5}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 0%,rgba(51,255,102,.06),transparent 60%);z-index:0}a{color:var(--accent)}button{font-family:var(--mono);font-size:12px;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);padding:5px 10px;cursor:pointer;border-radius:3px;transition:background .12s}button:hover:not(:disabled){background:#33ff661a}button:disabled{opacity:.3;cursor:not-allowed}button.danger{color:var(--red);border-color:#7a2a2a}button.danger:hover:not(:disabled){background:#ff4d4d1a}button.small-btn{padding:2px 8px;font-size:11px}input,select{font-family:var(--mono);font-size:12px;background:var(--bg);color:var(--fg);border:1px solid var(--border);padding:6px 8px;border-radius:3px;outline:none}input:focus,select:focus{border-color:var(--accent-dim)}select{cursor:pointer}.app{position:relative;z-index:1;display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--panel)}.topbar .brand{font-weight:700;letter-spacing:1px;color:var(--accent);text-shadow:0 0 6px rgba(51,255,102,.4)}.topbar .spacer{flex:1}.topbar .conn{font-size:11px;color:var(--fg-dim)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}.dot.online{background:var(--accent);box-shadow:0 0 6px var(--accent)}.dot.offline{background:var(--red);box-shadow:0 0 4px var(--red)}.main-layout{flex:1;display:grid;grid-template-columns:280px 1fr 300px;gap:0;min-height:0}@media (max-width: 1100px){.main-layout{grid-template-columns:1fr;overflow-y:auto}}.left-col{display:flex;flex-direction:column;border-right:1px solid var(--border);min-height:0;overflow:hidden}.center-col{display:flex;flex-direction:column;min-height:0;overflow:hidden}.right-col{display:flex;flex-direction:column;border-left:1px solid var(--border);min-height:0;overflow:hidden}.panel{display:flex;flex-direction:column;min-height:0;background:var(--panel)}.panel .head{padding:8px 12px;border-bottom:1px solid var(--border);color:var(--fg-dim);text-transform:uppercase;font-size:10px;letter-spacing:1.5px;display:flex;align-items:center;gap:6px}.panel .head .spacer{flex:1}.panel .body{flex:1;overflow-y:auto;min-height:0}.agent{padding:8px 12px;border-bottom:1px solid var(--border);cursor:pointer}.agent:hover{background:var(--panel-2)}.agent.active{background:var(--panel-2);border-left:2px solid var(--accent);padding-left:10px}.agent .name{font-weight:600;font-size:12px}.agent .meta{font-size:10px;color:var(--fg-dim)}.addform{padding:8px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:5px}.addform .row{display:flex;gap:5px}.addform input{flex:1;min-width:0}.sysinfo-panel{border-bottom:1px solid var(--border)}.sysinfo-head{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--border);color:var(--fg-dim);font-size:10px;text-transform:uppercase;letter-spacing:1px}.sysinfo-body{padding:6px 12px;max-height:200px;overflow-y:auto}.sysinfo-row{display:flex;justify-content:space-between;padding:2px 0;font-size:11px;border-bottom:1px solid rgba(30,42,30,.5)}.sysinfo-key{color:var(--fg-dim)}.sysinfo-val{color:var(--fg);text-align:right;max-width:55%;overflow:hidden;text-overflow:ellipsis}.sysinfo-empty{padding:10px 12px;text-align:center}.quick-actions{display:flex;flex-wrap:wrap;gap:4px;padding:6px 12px;border-top:1px solid var(--border)}.quick-actions button{font-size:10px;padding:3px 8px}.quick-actions button.keylog-start{color:var(--amber);border-color:#7a5a2a}.quick-actions button.keylog-start:hover{background:#ffb4541a}.quick-actions button.keylog-dump{color:#6cf;border-color:#2a5a7a}.quick-actions button.keylog-dump:hover{background:#66ccff1a}.quick-actions button.keylog-stop{color:var(--red);border-color:#7a2a2a}.quick-actions button.keylog-stop:hover{background:#ff4d4d1a}.quick-actions button[title*=hashdump]{color:var(--red);border-color:#7a2a2a}.quick-actions button[title*=hashdump]:hover{background:#ff4d4d1a}.quick-actions button[title*=WiFi]{color:#6cf;border-color:#2a5a7a}.quick-actions button[title*=WiFi]:hover{background:#66ccff1a}.quick-actions button[title*=clipboard]{color:var(--accent);border-color:var(--accent-dim)}.quick-actions button[title*=clipboard]:hover{background:#33ff661a}.quick-actions button[title*=environment]{color:var(--amber);border-color:#7a5a2a}.quick-actions button[title*=environment]:hover{background:#ffb4541a}.file-browser{border-top:1px solid var(--border)}.file-path{padding:4px 12px;font-size:10px;color:var(--fg-dim);border-bottom:1px solid var(--border)}.file-list{font-size:11px}.file-row{display:flex;align-items:center;gap:6px;padding:3px 12px;border-bottom:1px solid rgba(30,42,30,.3)}.file-row.clickable{cursor:pointer}.file-row.clickable:hover{background:#33ff660d}.file-icon{width:12px;text-align:center;flex-shrink:0}.file-icon.dir{color:var(--accent)}.file-icon.file{color:var(--fg-dim)}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-btn{margin-left:auto;flex-shrink:0}.tab-bar{display:flex;border-bottom:1px solid var(--border);background:var(--panel)}.tab-bar button{flex:1;padding:6px 12px;border:none;border-bottom:2px solid transparent;border-radius:0;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--fg-dim);background:transparent}.tab-bar button:hover{background:#33ff660d}.tab-bar button.active{color:var(--accent);border-bottom-color:var(--accent)}.terminal{flex:1;overflow-y:auto;padding:10px 12px;white-space:pre-wrap;word-break:break-word;font-size:12px}.term-line .cmd{color:var(--accent)}.term-line .cmd:before{content:"$ ";color:var(--accent-dim)}.term-line .out{color:var(--fg)}.term-line .err{color:var(--red)}.term-line .sys{color:var(--fg-dim);font-style:italic}.output-block{position:relative;padding:6px 10px;margin:2px 0;background:#0f150fcc;border:1px solid var(--border);border-radius:3px;cursor:pointer;transition:border-color .15s}.output-block:hover{border-color:var(--accent-dim)}.output-block pre{margin:0;white-space:pre-wrap;word-break:break-word;font-size:12px}.output-block .copy-hint{position:absolute;top:4px;right:6px;font-size:9px;color:var(--fg-dim);opacity:0;transition:opacity .15s}.output-block:hover .copy-hint{opacity:1}.output-block.err pre{color:var(--red)}.prompt{display:flex;gap:6px;padding:8px 12px;border-top:1px solid var(--border);align-items:center}.prompt .sigil{color:var(--accent)}.prompt input{flex:1}.logrow{padding:5px 12px;border-bottom:1px solid var(--border);font-size:10px;display:flex;gap:6px}.logrow .ts{color:var(--fg-dim);flex-shrink:0}.logrow .act{color:var(--amber);flex-shrink:0;min-width:60px}.logrow .act.exec_failed{color:var(--red)}.logrow .detail{color:var(--fg);word-break:break-word}.empty{padding:20px 12px;color:var(--fg-dim);text-align:center;font-size:11px}.banner{padding:6px 12px;font-size:11px;border-bottom:1px solid var(--border)}.banner.err{color:var(--red);background:#ff4d4d12}.banner.token{color:var(--amber);background:#ffb45414;word-break:break-all}.gate{position:relative;z-index:1;height:100%;display:flex;align-items:center;justify-content:center}.gate .box{width:340px;max-width:90vw;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:24px;display:flex;flex-direction:column;gap:12px}.gate h1{margin:0;font-size:16px;color:var(--accent);letter-spacing:1px}.gate p{margin:0;color:var(--fg-dim);font-size:11px}.gate .err{color:var(--red);font-size:11px}
