/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.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;right:0;left:0;top:0;bottom: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,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.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{--bg0: #06080f;--bg1: #0c1019;--surface: rgba(18, 24, 38, .72);--surface2: rgba(24, 32, 50, .85);--border: rgba(120, 140, 180, .14);--border-bright: rgba(120, 180, 255, .22);--text: #eef2ff;--muted: #8b9cb8;--cyan: #22d3ee;--violet: #a78bfa;--green: #34d399;--amber: #fbbf24;--red: #fb7185;--gradient: linear-gradient(135deg, #22d3ee 0%, #818cf8 50%, #c084fc 100%);font-family:DM Sans,system-ui,sans-serif;color:var(--text);background:var(--bg0);line-height:1.5}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse 80% 60% at 10% -10%,rgba(34,211,238,.12),transparent),radial-gradient(ellipse 60% 50% at 90% 0%,rgba(167,139,250,.1),transparent),radial-gradient(ellipse 50% 40% at 50% 100%,rgba(129,140,248,.06),transparent),var(--bg0)}#root{min-height:100vh}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh;height:100vh;overflow:hidden}.sidebar{padding:1.5rem 1rem;border-right:1px solid var(--border);background:#080b1299;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;gap:1.5rem}.brand{padding:0 .75rem}.brand-mark{width:42px;height:42px;border-radius:12px;background:var(--gradient);display:grid;place-items:center;font-weight:700;font-size:1.1rem;color:#06080f;margin-bottom:.75rem;box-shadow:0 8px 32px #22d3ee40}.brand h1{margin:0;font-size:1.02rem;line-height:1.35;letter-spacing:-.02em}.brand p{margin:.25rem 0 0;font-size:.78rem;color:var(--muted)}.nav{display:flex;flex-direction:column;gap:.35rem}.nav-btn{display:flex;align-items:center;gap:.65rem;padding:.65rem .85rem;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:.9rem;cursor:pointer;text-align:left;transition:.18s ease}.nav-btn:hover{color:var(--text);background:#ffffff0a}.nav-btn.active{color:var(--text);background:#22d3ee14;border-color:#22d3ee33;box-shadow:inset 0 0 0 1px #22d3ee0f}.nav-icon{width:18px;text-align:center;opacity:.85}.sidebar-footer{margin-top:auto;padding:.75rem;font-size:.75rem;color:var(--muted);border-top:1px solid var(--border)}.main{padding:1.75rem 2rem 2.5rem;overflow:auto;min-height:0}.main.main-agent{display:flex;flex-direction:column;overflow:hidden;padding-bottom:1rem}.main.main-agent .page-header{flex-shrink:0;margin-bottom:1rem}.main.main-agent .agent-page{flex:1;min-height:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.75rem}.page-header h2{margin:0;font-size:1.65rem;letter-spacing:-.03em}.page-header p{margin:.35rem 0 0;color:var(--muted);font-size:.9rem}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn{padding:.55rem 1rem;border-radius:10px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font:inherit;font-size:.85rem;cursor:pointer;transition:.18s ease}.btn:hover:not(:disabled){border-color:var(--border-bright);transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#22d3ee33,#818cf833);border-color:#22d3ee59}.btn-primary:hover:not(:disabled){box-shadow:0 4px 24px #22d3ee26}.grid{display:grid;gap:1rem}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.main{padding:1rem}.grid-4,.grid-2{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.15rem 1.25rem;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 8px 32px #0003}.card-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.5rem}.card-value{font-size:1.65rem;font-weight:700;letter-spacing:-.03em}.card-sub{margin-top:.35rem;font-size:.8rem;color:var(--muted)}.hero-card{grid-column:1 / -1;display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:center;padding:1.5rem 1.75rem;background:linear-gradient(135deg,#22d3ee0f,#a78bfa0f),var(--surface)}.status-orb{width:88px;height:88px;border-radius:50%;position:relative;display:grid;place-items:center}.status-orb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:conic-gradient(from 180deg,var(--cyan),var(--violet),var(--cyan));opacity:.35;animation:spin 8s linear infinite}.status-orb:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:var(--bg1)}.status-orb-inner{position:relative;z-index:1;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.5rem}.status-orb-inner.ok{background:#34d39926;box-shadow:0 0 40px #34d39959;animation:pulse-ok 2.5s ease-in-out infinite}.status-orb-inner.warn{background:#fbbf2426;box-shadow:0 0 40px #fbbf244d}.status-orb-inner.bad{background:#fb718526;box-shadow:0 0 40px #fb71854d}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-ok{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.hero-title{font-size:1.35rem;font-weight:700;margin:0 0 .35rem}.hero-meta{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;color:var(--muted);font-size:.85rem}.hero-meta span strong{color:var(--text);font-weight:600}.tag{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;border:1px solid var(--border)}.tag.ok{color:var(--green);border-color:#34d3994d;background:#34d39914}.tag.warn{color:var(--amber);border-color:#fbbf244d;background:#fbbf2414}.tag.bad{color:var(--red);border-color:#fb71854d;background:#fb718514}.timeline{display:flex;gap:4px;align-items:flex-end;height:48px;margin-top:.75rem}.timeline-bar{flex:1;min-width:4px;border-radius:3px 3px 0 0;background:#788cb433;transition:height .3s ease}.timeline-bar.ok{background:linear-gradient(to top,rgba(52,211,153,.5),var(--green))}.timeline-bar.bad{background:linear-gradient(to top,rgba(251,113,133,.5),var(--red))}.table-wrap{overflow:auto;border-radius:12px;border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;background:#00000026}tr.check-row{cursor:pointer;transition:background .15s ease}tr.check-row:hover{background:#60a5fa0f}tr.check-row.expanded{background:#60a5fa1a}tr.check-row-detail td{padding:0;border-bottom:1px solid var(--border);background:#0f172a73}.monitor-toolbar{flex-wrap:wrap;gap:.5rem}.monitor-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle}.monitor-switch input{position:absolute;opacity:0;width:0;height:0;margin:0}.monitor-switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#d1d5db;border-radius:999px;transition:background .2s ease}.monitor-switch-slider:before{content:"";position:absolute;width:20px;height:20px;left:2px;top:2px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #00000038;transition:transform .2s ease}.monitor-switch input:checked+.monitor-switch-slider{background:#22c55e}.monitor-switch input:checked+.monitor-switch-slider:before{transform:translate(20px)}.monitor-switch input:disabled+.monitor-switch-slider{opacity:.45;cursor:not-allowed}.monitor-switch input:focus-visible+.monitor-switch-slider{outline:2px solid var(--accent);outline-offset:2px}.check-heal-detail{padding:1rem 1.25rem 1.25rem}.check-heal-detail-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.85rem}.check-heal-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem 1.25rem;margin:0 0 1rem}.check-heal-dl dt{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem}.check-heal-dl dd{margin:0;font-size:.88rem}.check-heal-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--border);padding-top:.75rem}.check-heal-steps li{display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:.35rem 0;font-size:.82rem;color:var(--muted)}.check-heal-steps li span:nth-child(2){color:var(--text);min-width:6rem}tr:last-child td{border-bottom:none}.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8rem}.log-list{max-height:520px;overflow:auto;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem;line-height:1.6}.log-row{display:grid;grid-template-columns:170px 64px 1fr;gap:.75rem;padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.04)}.log-row .level-info{color:var(--cyan)}.log-row .level-warn{color:var(--amber)}.log-row .level-error{color:var(--red)}.form-grid{display:grid;gap:1rem}.form-field label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.35rem}.form-field input,.form-field textarea{width:100%;padding:.6rem .75rem;border-radius:10px;border:1px solid var(--border);background:#00000040;color:var(--text);font:inherit}.form-field textarea{min-height:280px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.82rem;resize:vertical}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:#22d3ee73;box-shadow:0 0 0 3px #22d3ee1a}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(420px,100%);padding:2rem;border-radius:20px;background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 24px 64px #00000059}.login-card h1{margin:0 0 .35rem;font-size:1.5rem}.login-card p{margin:0 0 1.5rem;color:var(--muted);font-size:.9rem}.login-error{color:var(--red);font-size:.85rem;margin-bottom:.75rem}.flash{padding:.65rem .85rem;border-radius:10px;font-size:.85rem;margin-bottom:1rem}.flash-dismissible{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.flash-msg{flex:1;min-width:0}.flash-close{flex:0 0 auto;border:none;background:transparent;color:inherit;opacity:.75;font-size:1.1rem;line-height:1;padding:0 .15rem;cursor:pointer}.flash-close:hover{opacity:1}.flash.warn{background:#fbbf241a;border:1px solid rgba(251,191,36,.25);color:var(--amber)}.agent-install-queue-chip{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap}.agent-install-queue-chip-close{min-width:1.75rem;padding-left:.35rem;padding-right:.35rem}.flash.ok{background:#34d3991a;border:1px solid rgba(52,211,153,.25);color:var(--green)}.flash.err{background:#fb71851a;border:1px solid rgba(251,113,133,.25);color:var(--red)}.section-title{margin:0 0 1rem;font-size:1rem;font-weight:600}.empty{color:var(--muted);font-size:.9rem;padding:2rem;text-align:center}.info-box{padding:.85rem 1rem;margin-bottom:1rem;border-radius:10px;font-size:.85rem;line-height:1.55;color:var(--muted);background:#22d3ee0f;border:1px solid rgba(34,211,238,.18)}.info-box code{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem;color:var(--cyan)}.info-box strong{color:var(--text)}.bind-page{display:flex;flex-direction:column;gap:1rem}.bind-summary{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.bind-stats{display:flex;gap:1.25rem}.bind-stat{display:flex;flex-direction:column;align-items:center;min-width:72px}.bind-stat-val{font-size:1.5rem;font-weight:700;line-height:1.1;background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.bind-stat-label{font-size:.75rem;color:var(--muted);margin-top:.2rem}.bind-layout{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(320px,1.15fr);gap:1rem;align-items:start}.bind-panel{display:flex;flex-direction:column;min-height:480px;max-height:calc(100vh - 280px);overflow:hidden}.bind-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.bind-panel-title{font-weight:600;font-size:.95rem}.bind-toolbar{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.bind-search{width:100%;padding:.55rem .75rem;border-radius:10px;border:1px solid var(--border);background:#00000040;color:var(--text);font:inherit;font-size:.88rem}.bind-search:focus{outline:none;border-color:#22d3ee73;box-shadow:0 0 0 3px #22d3ee1a}.bind-seg{display:flex;gap:.35rem}.bind-seg-btn{flex:1;padding:.35rem .5rem;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);font:inherit;font-size:.78rem;cursor:pointer}.bind-seg-btn.active{color:var(--text);border-color:#22d3ee59;background:#22d3ee14}.bind-node-list,.bind-inst-list{flex:1;overflow:auto;display:flex;flex-direction:column;gap:.35rem;padding-right:.15rem}.bind-node-item{display:flex;align-items:center;gap:.65rem;width:100%;padding:.65rem .75rem;border-radius:10px;border:1px solid transparent;background:#00000026;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.bind-node-item:hover{border-color:var(--border)}.bind-node-item.active{border-color:#22d3ee66;background:#22d3ee14}.bind-node-item.bound .bind-node-name{color:var(--green)}.bind-node-dot{width:8px;height:8px;border-radius:50%;background:#8b9cb859;flex-shrink:0}.bind-node-dot.on{background:var(--green);box-shadow:0 0 8px #34d39980}.bind-node-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.bind-node-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bind-node-meta{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bind-node-tail{flex-shrink:0}.bind-inst-row{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-radius:10px;border:1px solid var(--border);background:#0000001f;cursor:pointer;transition:border-color .15s,background .15s}.bind-inst-row:hover:not(.disabled){border-color:#22d3ee4d}.bind-inst-row.checked{border-color:#34d39973;background:#34d39914}.bind-inst-row.disabled{opacity:.55;cursor:not-allowed}.bind-inst-check{width:18px;height:18px;margin-top:.15rem;accent-color:var(--green);flex-shrink:0;cursor:inherit}.bind-inst-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.bind-inst-title{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.bind-inst-meta{font-size:.78rem;color:var(--muted)}.bind-inst-id{font-size:.72rem;color:var(--muted);opacity:.85;word-break:break-all}.bind-inst-tags{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex-shrink:0}.bind-save-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--border);background:var(--surface)}.bind-save-bar.dirty{border-color:#fbbf2459;background:#fbbf240f}.bind-recommend-bar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.bind-score-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}.bind-score-label input[type=range]{width:120px;accent-color:var(--cyan)}.bind-recommend-preview{border-color:#a78bfa59;background:#a78bfa0f}.bind-score-hint{margin:0;padding:.5rem .65rem;border-radius:8px;background:#22d3ee0f;border:1px solid rgba(34,211,238,.15)}.bind-inst-row.suggest{border-color:#a78bfa59;background:#a78bfa0f}.bind-inst-row.best-match{border-color:#34d39980;background:#34d3991a;box-shadow:0 0 0 1px #34d39926}.bind-auto-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;margin-bottom:.75rem;border-radius:12px;border:1px solid rgba(52,211,153,.35);background:#34d39914}.bind-auto-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--green);margin-bottom:.35rem}.bind-auto-title{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;font-size:1.05rem}.bind-json{width:100%;min-height:200px;padding:.75rem;border-radius:10px;border:1px solid var(--border);background:#00000040;color:var(--text);font-family:JetBrains Mono,ui-monospace,monospace;font-size:.82rem;resize:vertical}@media(max-width:960px){.bind-layout{grid-template-columns:1fr}.bind-panel{max-height:none;min-height:320px}}.agent-list-title{display:flex;align-items:baseline;gap:.65rem;flex-wrap:wrap;margin-bottom:.85rem}.agent-list-count{font-size:.85rem;font-weight:400;color:var(--muted)}.agent-section-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.agent-device-row.selectable{cursor:pointer}.agent-device-row:not(.selectable){cursor:default}.agent-device-row.active td{background:#22d3ee0f}.agent-col-check{width:44px;text-align:center;vertical-align:middle}.agent-col-status{white-space:nowrap;min-width:148px}.agent-row-status-offline,.agent-row-status-wrap{display:inline-flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:.45rem}.agent-row-check{width:16px;height:16px;margin:0;accent-color:var(--cyan);cursor:pointer;vertical-align:middle}.agent-row-check:disabled{cursor:not-allowed;opacity:.35}.agent-col-status .btn{white-space:nowrap}.agent-row-status{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--muted);white-space:nowrap}.agent-row-status.ok{color:var(--green)}.agent-row-status.warn{color:var(--amber)}.agent-row-status.inline{margin-left:.5rem}.agent-device-cmd-row td{padding-top:0;border-top:none}.agent-page{display:flex;flex-direction:column;gap:.75rem;min-height:0;overflow:hidden}.agent-page-top{flex-shrink:0;display:flex;flex-direction:column;gap:.75rem}.agent-workbench{flex-shrink:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}@media(max-width:960px){.agent-workbench{grid-template-columns:1fr}}.agent-list-toolbar{flex-shrink:0;margin-bottom:.65rem}.agent-list-toolbar-grid{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);grid-template-rows:auto auto;gap:.5rem .65rem;align-items:stretch}.agent-list-toolbar-grid--no-chart{grid-template-columns:minmax(240px,360px)}.agent-list-head-card{grid-column:1;grid-row:1}.agent-list-search-card{grid-column:1;grid-row:2}.agent-list-toolbar-right{grid-column:2;grid-row:1 / span 2;min-width:0;min-height:0;display:flex}.agent-list-head-card,.agent-list-search-card{border:1px solid var(--border);border-radius:8px;padding:.55rem .65rem;background:#ffffff05}.agent-list-head-card{display:flex;align-items:center}.agent-list-head-card .agent-list-title{margin-bottom:0}.agent-list-search-card{display:flex;flex-direction:column;gap:.45rem}.agent-list-search-card .agent-search{width:100%;max-width:none}.agent-list-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.agent-traffic-chart{flex:1;width:100%;height:100%;min-height:0;border:1px solid var(--border);border-radius:8px;padding:.45rem .55rem;background:#ffffff05;box-sizing:border-box;display:flex;flex-direction:column}.agent-traffic-chart-head{display:flex;align-items:center;flex-wrap:nowrap;gap:.5rem;font-size:.72rem;margin-bottom:.3rem;flex-shrink:0;overflow:hidden;white-space:nowrap}.agent-traffic-chart-title{font-weight:600;color:var(--text);flex-shrink:0}.agent-traffic-chart-meta{display:inline-flex;align-items:baseline;gap:.45rem;font-variant-numeric:tabular-nums;color:var(--muted);flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.agent-traffic-down{color:var(--cyan)}.agent-traffic-up{color:var(--green)}.agent-traffic-n{color:var(--muted)}.agent-traffic-window{margin-left:auto;color:var(--muted);font-size:.68rem;flex-shrink:0}.agent-traffic-legend-inline{display:inline-flex;align-items:center;gap:.55rem;font-size:.65rem;color:var(--muted)}.agent-traffic-legend-inline .dot{display:inline-block;width:.45rem;height:.45rem;border-radius:999px;margin-right:.2rem;vertical-align:middle}.agent-traffic-legend-inline .dot.rx{background:var(--cyan)}.agent-traffic-legend-inline .dot.tx{background:var(--green)}.agent-traffic-chart-body{flex:1;min-height:0;position:relative}.agent-traffic-chart-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.agent-traffic-grid{stroke:#ffffff0a;stroke-width:.5;vector-effect:non-scaling-stroke}.agent-traffic-now{stroke:#ffffff1f;stroke-width:1;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.agent-traffic-axis{stroke:#ffffff14;stroke-width:.6;vector-effect:non-scaling-stroke}.agent-traffic-line{stroke-width:1.8;vector-effect:non-scaling-stroke}.agent-traffic-area-rx{fill:#22d3ee1f}.agent-traffic-area-tx{fill:#34d3991a}.agent-traffic-line-rx{stroke:var(--cyan)}.agent-traffic-line-tx{stroke:var(--green)}.agent-traffic-chart-legend{display:flex;gap:.75rem;margin-top:.3rem;font-size:.65rem;color:var(--muted);flex-shrink:0}.agent-traffic-chart-legend .dot{display:inline-block;width:.45rem;height:.45rem;border-radius:999px;margin-right:.25rem;vertical-align:middle}.agent-traffic-chart-legend .dot.rx{background:var(--cyan)}.agent-traffic-chart-legend .dot.tx{background:var(--green)}@media(max-width:960px){.agent-list-toolbar-grid{grid-template-columns:1fr;grid-template-rows:auto auto auto}.agent-list-head-card{grid-column:1;grid-row:1}.agent-list-search-card{grid-column:1;grid-row:2}.agent-list-toolbar-right{grid-column:1;grid-row:3;min-height:6rem}}.agent-search{max-width:420px}.agent-device-list{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin-bottom:0}.agent-device-scroll{flex:1;min-height:0;overflow:auto;margin:0 -.25rem;padding:0 .25rem}.agent-device-scroll thead th{position:sticky;top:0;z-index:2;background:#182032fa;box-shadow:0 1px 0 var(--border)}.agent-workbench-empty{min-height:120px;display:flex;align-items:center;justify-content:center;text-align:center;padding:1rem}.agent-workbench-log .agent-log-box{max-height:360px}.agent-quick-actions{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.agent-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#06080fc7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.agent-modal{width:min(980px,100%);max-height:min(88vh,760px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-bright);border-radius:14px;background:var(--bg1);box-shadow:0 24px 64px #00000073}.agent-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;border-bottom:1px solid var(--border);flex-shrink:0}.agent-modal-title{margin:0}.agent-modal-sub{margin:.35rem 0 0}.agent-modal-close{flex-shrink:0}.agent-modal-header-actions{display:flex;gap:.5rem;flex-shrink:0}.agent-modal-terminal{width:min(1080px,100%);max-height:min(92vh,860px)}.agent-modal-body-terminal{display:flex;flex-direction:column;gap:.65rem;overflow:hidden;padding-top:.75rem}.agent-terminal-layout{display:grid;grid-template-columns:minmax(260px,300px) 1fr;gap:.75rem;flex:1;min-height:0}.agent-terminal-sidebar{min-height:0;overflow:auto;border:1px solid var(--border);border-radius:10px;background:#0a0e17a6;display:flex;flex-direction:column}.agent-terminal-main{display:flex;flex-direction:column;gap:.65rem;min-height:0}.agent-cmd-panel{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;flex:1;min-height:0}.agent-cmd-panel.empty{font-size:.85rem;color:var(--muted);justify-content:center;align-items:center;text-align:center;padding:1.5rem .75rem}.agent-cmd-panel-head{flex-shrink:0;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.agent-cmd-panel-title{margin:0;font-weight:700;font-size:.95rem;letter-spacing:.02em}.agent-cmd-panel-hint{margin:.25rem 0 0;font-size:.78rem;color:var(--text-muted, var(--muted));line-height:1.35}.agent-cmd-products{display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0;overflow:auto}.agent-cmd-product-block{display:flex;flex-direction:column;gap:.55rem}.agent-cmd-product-block.collapsed{gap:0}.agent-cmd-product-toggle{display:flex;align-items:center;gap:.55rem;width:100%;padding:.55rem .65rem;border-radius:10px;background:#34d39924;border:1px solid rgba(52,211,153,.38);color:inherit;cursor:pointer;text-align:left;transition:background .15s,border-color .15s,box-shadow .15s}.agent-cmd-product-toggle:hover{background:#34d39933;border-color:#34d39985}.agent-cmd-product-block.expanded .agent-cmd-product-toggle{background:#34d3992e;box-shadow:0 0 0 1px #34d3991f}.agent-cmd-product-chevron{flex-shrink:0;width:1rem;font-size:1.1rem;line-height:1;font-weight:700;color:#34d399;transform:rotate(0);transition:transform .2s ease}.agent-cmd-product-chevron.open{transform:rotate(90deg)}.agent-cmd-product-icon{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:.72rem;font-weight:700;letter-spacing:.03em;background:#34d39938;color:#6ee7b7}.agent-cmd-product-name{font-weight:700;font-size:.9rem;line-height:1.25;color:#ecfdf5}.agent-cmd-product-desc{font-size:.72rem;color:#a7f3d0bf;line-height:1.3;margin-top:.1rem}.agent-cmd-product-count{flex-shrink:0;min-width:1.35rem;height:1.35rem;padding:0 .35rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:.72rem;font-weight:600;background:#34d39940;color:#a7f3d0}.agent-cmd-product-meta{flex:1;min-width:0}.agent-cmd-command-list{display:flex;flex-direction:column;gap:.45rem;padding:.55rem 0 0 .75rem;margin-top:.35rem;border-left:2px solid rgba(52,211,153,.25);margin-left:.5rem}.agent-cmd-command-card{display:flex;align-items:flex-start;gap:.55rem;width:100%;padding:.6rem .65rem;border:1px solid var(--border);border-radius:8px;background:#ffffff08;color:inherit;cursor:pointer;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s}.agent-cmd-command-card:hover{border-color:#7dd3fc59;background:#7dd3fc0f}.agent-cmd-command-card.selected{border-color:#7dd3fc8c;background:#7dd3fc1a;box-shadow:0 0 0 1px #7dd3fc26}.agent-cmd-command-play{flex-shrink:0;width:1.35rem;height:1.35rem;margin-top:.05rem;display:flex;align-items:center;justify-content:center;border-radius:999px;font-size:.55rem;background:#34d39926;color:#34d399}.agent-cmd-command-card.selected .agent-cmd-command-play{background:#34d39947}.agent-cmd-command-body{display:flex;flex-direction:column;gap:.2rem;min-width:0}.agent-cmd-command-title{font-size:.88rem;font-weight:600;line-height:1.3;color:#f1f5f9}.agent-cmd-command-desc{font-size:.72rem;line-height:1.35;color:var(--text-muted, var(--muted))}.agent-cmd-run-sheet{flex-shrink:0;margin-top:auto;padding:.75rem;border-radius:10px;border:1px solid rgba(251,191,36,.35);background:#fbbf240f}.agent-cmd-run-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}.agent-cmd-run-sheet-kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:#fbbf24;margin-bottom:.15rem}.agent-cmd-run-sheet-title{font-size:.92rem;line-height:1.3}.agent-cmd-run-sheet-empty{margin:0 0 .65rem;font-size:.8rem;color:var(--text-muted, var(--muted))}.agent-cmd-form-grid{display:flex;flex-direction:column;gap:.55rem;margin-bottom:.65rem}.agent-cmd-form-grid .form-field label{font-size:.78rem;margin-bottom:.2rem}.agent-cmd-form-grid input{font-size:.85rem;padding:.4rem .55rem;width:100%}.agent-cmd-playbook-hint{margin:.45rem 0 0;font-size:.72rem;line-height:1.35}.agent-cmd-run-btn{width:100%;font-weight:600}@media(max-width:900px){.agent-terminal-layout{grid-template-columns:1fr}}.agent-terminal-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;flex-shrink:0}.agent-terminal-host{flex:1;min-height:min(52vh,480px);border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0a0e17}.agent-terminal-host .xterm{height:100%;padding:.35rem .5rem}.agent-session-tabs{display:flex;flex-wrap:wrap;gap:.45rem;padding:.55rem 1rem 0;border-bottom:1px solid var(--border)}.agent-session-tab{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.82rem}.agent-session-tab.active{border-color:var(--accent);color:var(--text);background:#38bdf814}.agent-active-sessions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem}.agent-active-sessions-label{font-size:.82rem;color:var(--text-muted)}.agent-session-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border:1px solid var(--border);border-radius:999px;background:#ffffff08;color:var(--text);cursor:pointer;font-size:.82rem}.tag.xs{font-size:.68rem;padding:.08rem .35rem}.agent-modal-body{flex:1;min-height:0;overflow:auto;padding:1rem 1.15rem 1.15rem}.agent-workbench-modal{min-height:0}.agent-workbench-modal .agent-workbench-log .agent-log-box{max-height:min(36vh,320px)}.agent-col-action{white-space:nowrap;min-width:120px}.agent-row-actions{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:.35rem}.agent-action-placeholder{visibility:hidden;pointer-events:none}.agent-col-check{width:36px;text-align:center}.agent-install-queue{margin:0}.agent-modal-install-queue{width:min(720px,92vw);max-height:min(85vh,720px);display:flex;flex-direction:column}.agent-install-queue-modal-body{flex:1;min-height:0;overflow:auto;padding:0 1rem 1rem}.agent-install-queue-item-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.agent-install-queue-log{margin:0;padding:.5rem .6rem;max-height:180px;overflow:auto;font-size:.68rem;line-height:1.35;background:#00000040;border-radius:6px;white-space:pre-wrap;word-break:break-all;width:100%;box-sizing:border-box}.agent-modal-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.agent-install-queue-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.agent-install-queue-item{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;padding:.5rem 0;font-size:.82rem;border-bottom:1px solid var(--border)}.agent-install-queue-item:last-child{border-bottom:none}.agent-install-queue-err{color:var(--red, #f87171);font-size:.78rem}.agent-col-metrics{width:300px;min-width:300px;max-width:300px}.agent-metrics-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem .5rem;width:100%;box-sizing:border-box;padding:.35rem .45rem;border:1px solid var(--border);border-radius:8px;background:#ffffff05}.agent-metrics-compact .agent-metric-compact .agent-metric-head{display:flex;align-items:baseline;justify-content:space-between;gap:.25rem;font-size:.68rem;margin-bottom:.15rem}.agent-metrics-compact .agent-metric-label-group{display:inline-flex;align-items:baseline;gap:.35rem;min-width:0;flex:1 1 auto}.agent-metrics-compact .agent-metric-spec,.agent-metrics-panel .agent-metric-spec{font-size:.62rem;color:var(--muted);white-space:nowrap}.agent-metrics-compact .agent-metric-label{flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.agent-metrics-compact .agent-metric-val{flex:0 0 auto;text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";white-space:nowrap}.agent-metrics-compact .agent-metric-val-pct{width:3.4em}.agent-metrics-compact .agent-metric-val:not(.agent-metric-val-pct):not(.agent-metric-val-net){flex:0 0 auto;overflow:visible}.agent-metrics-compact .agent-metric-net-speeds{display:flex;flex:0 0 auto;gap:.35rem;flex-wrap:nowrap}.agent-metrics-compact .agent-metric-val-net{flex:0 0 auto;font-size:.62rem;overflow:visible}.agent-metrics-compact .agent-metric-compact .agent-metric-bar{height:4px}.agent-metrics-compact .agent-metric-net{grid-column:1 / -1;margin-top:.05rem}.agent-metrics-compact .agent-metric-net .agent-metric-head{font-size:.66rem}.cmd-modules-settings{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.cmd-modules-product{border:1px solid var(--border);border-radius:10px;overflow:hidden}.cmd-modules-product-head{padding:.65rem .85rem;border-bottom:1px solid var(--border);background:#ffffff05}.cmd-modules-table{width:100%;border-collapse:collapse;font-size:.85rem}.cmd-modules-table th,.cmd-modules-table td{padding:.5rem .85rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.cmd-modules-table tr:last-child td{border-bottom:none}.cmd-modules-table .tag{margin:0 .25rem .25rem 0}.cmd-editor-page{min-height:0}.cmd-editor-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.cmd-editor-layout{display:grid;grid-template-columns:220px 1fr;gap:1rem;min-height:520px}.cmd-editor-sidebar{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#ffffff05}.cmd-editor-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:.65rem .75rem;border-bottom:1px solid var(--border)}.cmd-editor-product-list{list-style:none;margin:0;padding:0}.cmd-editor-product-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;padding:.6rem .75rem;border:none;border-bottom:1px solid var(--border);background:transparent;color:inherit;cursor:pointer;text-align:left}.cmd-editor-product-btn:hover{background:#7dd3fc0f}.cmd-editor-product-btn.active{background:#7dd3fc1f}.cmd-editor-main{min-width:0}.cmd-editor-section{margin-bottom:1.25rem}.cmd-editor-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.cmd-editor-command-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.cmd-editor-command-tab{padding:.35rem .65rem;border:1px solid var(--border);border-radius:999px;background:transparent;color:inherit;cursor:pointer;font-size:.85rem}.cmd-editor-command-tab.active{border-color:#7dd3fc73;background:#7dd3fc1a}.cmd-editor-categories{margin:1rem 0}.cmd-editor-categories-label{display:block;font-size:.85rem;margin-bottom:.45rem}.cmd-editor-category-grid{display:flex;flex-wrap:wrap;gap:.65rem 1rem}.cmd-editor-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;cursor:pointer}.cmd-editor-params{margin:1rem 0}.cmd-editor-inline-input{width:100%;min-width:0;padding:.3rem .45rem;font-size:.85rem}.cmd-editor-script{width:100%;min-height:280px;padding:.65rem .75rem;font-size:.82rem;line-height:1.45;border:1px solid var(--border);border-radius:8px;background:#00000040;color:inherit;resize:vertical}@media(max-width:960px){.cmd-editor-layout{grid-template-columns:1fr}}.agent-metrics-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .85rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:10px;background:#ffffff05;flex-shrink:0;min-height:118px}.agent-metrics-empty{margin:0;flex-shrink:0}.agent-metric-head{display:flex;justify-content:space-between;gap:.5rem;font-size:.78rem;margin-bottom:.25rem}.agent-metric-bar{height:6px;border-radius:999px;background:#ffffff0f;overflow:hidden}.agent-metric-fill{height:100%;border-radius:inherit;background:var(--accent)}.agent-metric-fill.ok{background:#34d399}.agent-metric-fill.warn{background:#fbbf24}.agent-metric-fill.bad{background:#f87171}.agent-metric-net{grid-column:1 / -1}.agent-metric-net-total{margin:.15rem 0 0;font-size:.72rem}.agent-category-tabs{display:flex;flex-wrap:wrap;gap:.5rem}.agent-category-tab{padding:.5rem .85rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;font:inherit;font-size:.85rem}.agent-category-tab.active{border-color:var(--border-bright);color:var(--text);background:#22d3ee14}.agent-section .section-title{margin-bottom:.35rem}.agent-install-cmd{margin-top:.75rem;padding:.75rem;background:#00000040;border-radius:10px;border:1px solid var(--border);display:flex;gap:.75rem;align-items:flex-start}.agent-install-cmd code{flex:1;font-size:.78rem;word-break:break-all;white-space:pre-wrap}.agent-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}.agent-dot.on{background:var(--green)}.agent-param-form{display:flex;flex-direction:column;gap:.65rem;margin:.75rem 0}.agent-param-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.agent-param-field input,.agent-param-field select,.agent-job-select{padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border);background:#00000040;color:var(--text);font:inherit}.agent-log-box{margin:.75rem 0 0;padding:.75rem;max-height:360px;overflow:auto;background:#00000059;border:1px solid var(--border);border-radius:10px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}
