:root{--bg: #04060a;--panel: rgba(8, 15, 12, .82);--panel-solid: #0a120e;--line: rgba(57, 255, 136, .16);--line-strong: rgba(57, 255, 136, .4);--green: #39ff88;--green-dim: #1d7a47;--cyan: #3fd8ff;--amber: #ffb347;--orange: #ff9f1c;--red: #ff4d5e;--gray: #5a6470;--text: #c9e8d6;--text-dim: #6f8a7c;--font: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px}.app{position:relative;width:100vw;height:100vh}.map-root{position:absolute;top:0;right:0;bottom:0;left:0}.body-label{display:inline-flex;align-items:center;gap:7px;font-family:var(--font);font-size:24px;letter-spacing:.08em;color:#8caa988c;text-shadow:0 0 6px rgba(0,0,0,.9);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;transition:color .12s}.body-label.on{color:#c9ffe2;text-shadow:0 0 10px rgba(57,255,136,.7)}.status-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--gray);color:var(--gray);box-shadow:0 0 7px currentColor;transition:background .2s}.empty-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-dim);letter-spacing:.2em;text-transform:uppercase;font-size:13px;pointer-events:none;text-shadow:0 0 12px rgba(57,255,136,.25);animation:hint-pulse 3s ease-in-out infinite;z-index:60}@keyframes hint-pulse{0%,to{opacity:.55}50%{opacity:1}}.btn{font-family:var(--font);font-size:12px;letter-spacing:.06em;padding:5px 12px;color:var(--text);background:#39ff880f;border:1px solid var(--line);border-radius:3px;cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s}.btn:hover:not(:disabled){border-color:var(--line-strong);background:#39ff881f;box-shadow:0 0 10px #39ff8826}.btn:disabled{opacity:.4;cursor:default}.btn-primary{color:#06130b;background:var(--green);border-color:var(--green);font-weight:700}.btn-primary:hover:not(:disabled){background:#5cffa0;box-shadow:0 0 14px #39ff8880}.btn-danger{color:var(--red);border-color:#ff4d5e66;background:#ff4d5e12}.btn-danger:hover:not(:disabled){border-color:var(--red);background:#ff4d5e29;box-shadow:0 0 10px #ff4d5e40}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--line);box-shadow:none}.btn-ghost.active{color:var(--green);border-color:var(--line)}.btn-row{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}input,select,textarea{font-family:var(--font);font-size:12px;color:var(--text);background:#040a07d9;border:1px solid var(--line);border-radius:3px;padding:5px 8px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--line-strong);box-shadow:0 0 8px #39ff8826}select option{background:var(--panel-solid)}code{color:var(--green);background:#39ff8814;padding:0 4px;border-radius:2px}.muted{color:var(--text-dim)}.pad{padding:10px}.error-box{margin-top:8px;padding:7px 10px;border:1px solid rgba(255,77,94,.5);background:#ff4d5e14;color:#ffb9c0;border-radius:3px;white-space:pre-wrap;word-break:break-word;font-size:12px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#39ff882e;border-radius:4px}::-webkit-scrollbar-track{background:transparent}.topbar{position:absolute;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.wordmark{font-size:14px;font-weight:700;letter-spacing:.22em;color:var(--green);text-shadow:0 0 12px rgba(57,255,136,.5);white-space:nowrap}.wordmark-dim{color:var(--text-dim)}.conn-badge{font-size:10px;letter-spacing:.16em;padding:2px 8px;border-radius:2px;border:1px solid}.conn-online{color:var(--green);border-color:#39ff8880;text-shadow:0 0 8px rgba(57,255,136,.6)}.conn-connecting{color:var(--amber);border-color:#ffb34780;animation:hint-pulse 1.2s infinite}.conn-offline{color:var(--red);border-color:#ff4d5e80}.topbar-filters{display:flex;gap:6px;flex:1;min-width:0}.topbar-filters input{width:160px}.node-count{color:var(--text-dim);font-size:11px;letter-spacing:.1em;white-space:nowrap}.new-menu{position:relative}.new-menu-items{position:absolute;top:calc(100% + 4px);right:0;display:flex;flex-direction:column;min-width:130px;background:var(--panel-solid);border:1px solid var(--line);border-radius:3px;box-shadow:0 8px 24px #0009;z-index:110}.new-menu-items button{font-family:var(--font);font-size:12px;text-align:left;padding:8px 12px;color:var(--text);background:none;border:none;cursor:pointer}.new-menu-items button:hover{background:#39ff881a;color:var(--green)}.inspector{position:absolute;top:46px;right:0;bottom:0;width:390px;z-index:90;display:flex;flex-direction:column;background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:1px solid var(--line)}.inspector-head{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 14px 8px;border-bottom:1px solid var(--line)}.inspector-head h2{margin:0 0 2px;font-size:15px;letter-spacing:.08em;color:#e7fff1}.node-id{color:var(--text-dim);font-size:11px;margin-bottom:6px}.chip-row{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:1px 7px;border:1px solid var(--line);border-radius:8px;color:var(--text-dim)}.status-chip{display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:1px 7px;border:1px solid var(--line);border-radius:8px}.status-chip .dot{width:7px;height:7px;border-radius:50%;box-shadow:0 0 6px currentColor}.tabs{display:flex;gap:2px;padding:6px 10px 0;border-bottom:1px solid var(--line)}.tabs button{font-family:var(--font);font-size:11px;letter-spacing:.1em;padding:6px 12px;background:none;color:var(--text-dim);border:none;border-bottom:2px solid transparent;cursor:pointer}.tabs button.active{color:var(--green);border-bottom-color:var(--green)}.inspector-scroll{flex:1;overflow-y:auto;padding:10px 14px 90px}.overview section,.skill-tab,.logs-tab{margin-bottom:16px}.overview h3{margin:14px 0 8px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--green-dim);color:#39ff888c}.stat-row{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;margin-bottom:6px;color:var(--text-dim);font-size:11px}.bar{height:7px;background:#39ff8812;border:1px solid var(--line);border-radius:2px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,rgba(57,255,136,.45),var(--green));box-shadow:0 0 8px #39ff8880;transition:width .6s ease}.bar-fill.mem{background:linear-gradient(90deg,rgba(63,216,255,.4),var(--cyan));box-shadow:0 0 8px #3fd8ff80}.stat-val{color:var(--text);font-size:11px;white-space:nowrap}.kv{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:12px}.kv span:first-child{color:var(--text-dim);white-space:nowrap}.mono-break{word-break:break-all;text-align:right}.caps{margin-top:8px}.cap{display:flex;flex-direction:column;gap:1px;padding:5px 8px;margin-bottom:4px;border:1px solid var(--line);border-radius:3px;background:#39ff8808}.cap span{color:var(--text-dim);font-size:11px}.confirm-box{margin-top:10px;padding:10px;border:1px solid rgba(255,77,94,.4);border-radius:3px;background:#ff4d5e0d;display:flex;flex-direction:column;gap:8px;font-size:12px}.invoke-row{display:flex;gap:8px}.invoke-row input{flex:1}.output-pre{margin:10px 0 0;padding:8px 10px;max-height:260px;overflow:auto;font-size:11px;line-height:1.5;color:#aee8c6;background:#020604cc;border:1px solid var(--line);border-radius:3px;white-space:pre-wrap;word-break:break-word}.logs-pre{max-height:none}.skill-editor{width:100%;min-height:320px;resize:vertical;line-height:1.55;font-size:12px;color:#c5f2d8;-moz-tab-size:2;tab-size:2}.active-log{position:absolute;left:0;right:0;bottom:0;height:220px;z-index:95;display:flex;flex-direction:column;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}.log-head{display:flex;align-items:center;gap:12px;padding:5px 12px;border-bottom:1px solid var(--line)}.log-title{font-size:10px;letter-spacing:.22em;color:#39ff8899}.log-head input{width:220px}.log-head .muted{margin-left:auto;font-size:11px}.log-scroll{flex:1;overflow-y:auto}.log-scroll table{width:100%;border-collapse:collapse;font-size:11px}.log-row{cursor:pointer}.log-row:hover{background:#39ff880f}.log-row td{padding:2px 10px;border-bottom:1px solid rgba(57,255,136,.05);white-space:nowrap}.t-time{color:var(--text-dim);width:70px}.t-route{color:var(--text)}.t-route .arrow{color:var(--green)}.t-tool{color:var(--cyan)}.t-dur{color:var(--text-dim);text-align:right;width:70px}.kind-badge{font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:1px 6px;border-radius:2px;border:1px solid var(--line);color:var(--text-dim)}.k-mcp{color:var(--cyan);border-color:#3fd8ff66}.k-request,.k-response{color:var(--green);border-color:#39ff8859}.k-event{color:var(--amber);border-color:#ffb34766}.status-cell{font-size:10px;letter-spacing:.08em;text-transform:uppercase}.s-ok{color:var(--green)}.s-error{color:var(--red);text-shadow:0 0 6px rgba(255,77,94,.5)}.s-denied{color:var(--orange);text-shadow:0 0 6px rgba(255,159,28,.5)}.live-ticker{position:absolute;left:0;right:0;bottom:0;height:26px;z-index:95;display:flex;align-items:center;gap:14px;padding:0 12px;width:100%;font-family:var(--font);font-size:11px;text-align:left;color:var(--text);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;border-top:1px solid var(--line);cursor:pointer;overflow:hidden}.live-ticker:hover{background:#0c1812e0;border-top-color:var(--line-strong)}.ticker-live{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:10px;letter-spacing:.22em;color:#39ff88bf}.ticker-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:hint-pulse 1.6s ease-in-out infinite}.ticker-line{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;overflow:hidden;animation:ticker-in .26s ease-out}@keyframes ticker-in{0%{transform:translateY(110%);opacity:0}to{transform:translateY(0);opacity:1}}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#020407b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:480px;max-width:calc(100vw - 40px);max-height:calc(100vh - 80px);display:flex;flex-direction:column;background:var(--panel-solid);border:1px solid var(--line-strong);border-radius:4px;box-shadow:0 0 40px #39ff8814,0 20px 60px #000000b3}.modal.wide{width:760px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:12px;letter-spacing:.22em;color:var(--green)}.modal-body{padding:14px;overflow-y:auto}.form-row{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:center;margin-bottom:10px}.form-row label{color:var(--text-dim);font-size:11px;letter-spacing:.08em}.form-row .field-hint{grid-column:2;margin-top:-4px;font-size:10px;letter-spacing:.05em;color:var(--text-dim)}.context-limit{display:flex;gap:10px;align-items:center}.context-limit .check-label{display:flex;gap:6px;align-items:center;white-space:nowrap;cursor:pointer}.context-limit input[type=number]{flex:1;min-width:0}.context-limit input[type=number]:disabled{opacity:.4}.builder-editor{min-height:340px;margin-bottom:12px}.deploy-progress{display:flex;gap:8px;margin-top:12px}.stage{font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 10px;border:1px solid var(--line);border-radius:10px;color:var(--text-dim)}.stage.on{color:var(--cyan);border-color:#3fd8ff80;animation:hint-pulse 1.1s infinite}.stage.done{color:var(--green);border-color:#39ff8880}.stage.err{color:var(--red);border-color:#ff4d5e80}.hosts-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:14px}.hosts-table th{text-align:left;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);padding:4px 8px;border-bottom:1px solid var(--line)}.hosts-table td{padding:5px 8px;border-bottom:1px solid rgba(57,255,136,.06)}.host-actions{display:flex;flex-direction:column;gap:10px;margin:12px 0}.host-action{display:flex;gap:8px;align-items:center}.host-action input{width:180px}.guardrail-note{font-size:11px;line-height:1.6;color:var(--text-dim);border:1px solid rgba(255,179,71,.3);background:#ffb3470a;border-radius:3px;padding:8px 10px}.grant-head{display:flex;flex-direction:column;gap:3px;margin:14px 0 8px}.grant-title{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#39ff888c}.grant-note{font-size:11px;color:var(--text-dim)}.grant-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:12px}.grant-table th{text-align:left;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);padding:4px 8px;border-bottom:1px solid var(--line)}.grant-table td{padding:5px 8px;border-bottom:1px solid rgba(57,255,136,.06)}.grant-table th.grant-check,.grant-table td.grant-check{text-align:center;width:64px}.grant-label{margin-right:8px}.bundle-note{font-size:12px;line-height:1.6;color:var(--text-dim);border:1px solid rgba(255,179,71,.3);background:#ffb3470a;border-radius:3px;padding:8px 10px;margin-bottom:12px}.bundle-block{margin:0;padding:10px 12px;font-family:var(--font);font-size:12px;line-height:1.7;color:#aee8c6;background:#020604cc;border:1px solid var(--line);border-radius:3px;white-space:pre;overflow-x:auto;-webkit-user-select:all;user-select:all}.copy-tick{color:var(--green);font-size:11px;letter-spacing:.08em}.field-hint-bad{color:#ffb9c0}.person-hint{margin-top:6px;font-size:11px}.login-screen{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,rgba(20,60,38,.25),transparent 60%),var(--bg)}.login-card{display:flex;flex-direction:column;gap:12px;width:320px;padding:28px 26px;background:var(--panel);border:1px solid var(--line-strong);border-radius:4px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 60px #39ff8812,0 24px 60px #000000b3}.login-wordmark{font-size:26px;font-weight:700;letter-spacing:.34em;color:var(--green);text-shadow:0 0 18px rgba(57,255,136,.6);text-align:center;margin-bottom:8px}.login-sub{display:block;font-size:10px;letter-spacing:.3em;color:var(--text-dim);text-shadow:none;margin-top:4px}.login-card input{padding:9px 10px}.login-card .btn{padding:9px;letter-spacing:.24em}.login-hint{font-size:10px;text-align:center}
