/**
 * 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;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{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{--bg: #0f1420;--panel: #171e2e;--panel2: #1e2740;--panel-hover: #233152;--line: #2a3550;--line-strong: #3a4a72;--text: #e6ebf5;--text-strong: #ffffff;--muted: #8a97b3;--accent: #4f8cff;--accent-hover: #6a9dff;--accent-soft: rgba(79, 140, 255, .14);--focus: rgba(79, 140, 255, .6);--on: #2ecc71;--off: #64748b;--susp: #f59e0b;--warn: #f59e0b;--danger: #ef4444;--info: #60a5fa;--on-bg: rgba(46, 204, 113, .14);--off-bg: rgba(100, 116, 139, .22);--warn-bg: rgba(245, 158, 11, .14);--danger-bg: rgba(239, 68, 68, .16);--info-bg: rgba(96, 165, 250, .16);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28), 0 0 0 1px rgba(255, 255, 255, .015) inset;--shadow-md: 0 10px 30px rgba(0, 0, 0, .38);--sidebar-w: 248px;--chead-h: 56px}*{box-sizing:border-box}html{scrollbar-color:var(--line-strong) transparent}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sol-screen *:focus-visible,.console-screen *:focus-visible{outline:none}.wrap{max-width:980px;margin:0 auto;padding:24px 20px 60px}input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text);padding:8px 10px;font:inherit;font-size:13px;line-height:1.3;min-width:0;transition:border-color .12s ease,box-shadow .12s ease}input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:var(--line-strong)}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.7}select{cursor:pointer}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);padding:7px 13px;cursor:pointer;font:inherit;font-size:13px;line-height:1.25;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}button:hover:not(:disabled){background:var(--panel-hover);border-color:var(--line-strong)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover:not(:disabled){background:var(--panel2);border-color:var(--line);color:var(--text)}button.danger{background:var(--danger-bg);border-color:#ef444473;color:#ffb4b4}button.danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff}button.warn{background:var(--warn);border-color:var(--warn);color:#1b1300;font-weight:600}button.warn:hover:not(:disabled){filter:brightness(1.08);background:var(--warn);border-color:var(--warn)}button.ok{background:var(--on);border-color:var(--on);color:#05230f;font-weight:600}button.ok:hover:not(:disabled){filter:brightness(1.08);background:var(--on);border-color:var(--on)}button.sm,.sm{padding:4px 9px;font-size:12px;border-radius:var(--r-sm)}button.exp{background:transparent;border:none;color:var(--muted);padding:2px 6px}button.link{display:inline;background:none;border:none;color:var(--accent);cursor:pointer;padding:0 4px;font-size:12px;white-space:normal}button.link:hover:not(:disabled){background:none;text-decoration:underline}button.navon{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.navon:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--panel);border-right:1px solid var(--line);padding:16px 0 20px;position:sticky;top:0;height:100vh;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column}.sidebar .brand{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700;letter-spacing:-.01em;padding:2px 20px 16px;color:var(--text-strong)}.sidebar .brand .dot{color:var(--accent)}.brandmark{width:26px;height:26px;border-radius:8px;flex-shrink:0;background:linear-gradient(135deg,var(--accent) 0%,#7c5cff 100%);box-shadow:0 0 0 1px #ffffff14 inset,0 4px 12px #4f8cff4d}.userbox{display:flex;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:14px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.uname{font-weight:600;font-size:14px}.umail{font-size:12px}.menu{display:flex;flex-direction:column;gap:14px;padding:0 12px}.menugroup{display:flex;flex-direction:column;gap:2px}.menugroup-title{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);opacity:.85;padding:2px 12px 6px}.menuitem{position:relative;display:flex;align-items:center;gap:11px;width:100%;text-align:left;justify-content:flex-start;background:transparent;border:none;color:var(--muted);padding:8px 12px;border-radius:var(--r-md);font-size:13.5px;font-weight:500;cursor:pointer;white-space:nowrap}.menuitem:hover:not(:disabled){background:var(--panel2);border-color:transparent;color:var(--text)}.menuitem.active{background:var(--accent-soft);color:var(--text-strong)}.menuitem.active:before{content:"";position:absolute;left:-12px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.menuitem .mi{flex-shrink:0;opacity:.75}.menuitem.active .mi{color:var(--accent);opacity:1}.menuitem .ml{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menuitem .soon{margin-left:auto;font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:10px;padding:1px 6px}.content{flex:1;min-width:0;display:flex;flex-direction:column}.cbody{flex:1;padding:20px 28px 60px}.chead{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;min-height:var(--chead-h);padding:8px 28px;background:#171e2eeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.chead .ctitle{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}.chead .ctitle .dot{color:var(--accent)}.modeswitch{display:inline-flex;align-items:center;gap:2px;padding:3px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-pill)}.modebtn{border:none;background:transparent;color:var(--muted);padding:5px 14px;border-radius:var(--r-pill);font-size:12.5px;font-weight:600;letter-spacing:.01em}.modebtn:hover:not(:disabled){background:var(--panel2);border-color:transparent;color:var(--text)}.modebtn.active,.modebtn.active:hover:not(:disabled){background:var(--accent);color:#fff;box-shadow:0 2px 8px #4f8cff59}.csection{display:flex;align-items:center;gap:8px;font-size:14px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.csection .crumb-mode{color:var(--muted)}.csection .crumb-sep{color:var(--line-strong)}.csection .crumb-view{font-weight:600}.chead .logout{margin-left:auto}.card,.statcard,.rescard,.filterpanel,.planform,.poolform{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.filterpanel{padding:16px 18px;margin-bottom:14px}.filtergrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.fl{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:500;color:var(--muted)}.fl input,.fl select,.fl textarea{width:100%;font-weight:400}.filteractions{flex-direction:row;align-items:flex-end;gap:8px}.countbanner{background:var(--warn-bg);border:1px solid rgba(245,158,11,.45);border-radius:var(--r-md);padding:10px 16px;margin-bottom:14px;font-size:14px}.placeholder{background:var(--panel);border:1px dashed var(--line);border-radius:var(--r-lg);padding:44px;text-align:center}.placeholder h3{margin:0 0 8px}.subtle{font-size:11px;color:var(--muted);margin-top:2px}.usage{display:flex;flex-direction:column;gap:3px;min-width:168px}.ubar{display:flex;align-items:center;gap:6px;font-size:11px}.ubar .ulabel{width:26px;color:var(--muted)}.ubar .utrack{flex:1;height:6px;background:var(--panel2);border-radius:4px;overflow:hidden}.ubar .ufill{display:block;height:100%;background:var(--on);border-radius:4px}.ubar .ufill.mid{background:var(--warn)}.ubar .ufill.hi{background:var(--danger)}.ubar .utext{width:88px;text-align:right;color:var(--muted);white-space:nowrap}.diskline{font-size:11px;color:var(--muted)}.pager{display:flex;align-items:center;gap:14px;margin-top:12px;font-size:13px;flex-wrap:wrap}.pager .pgbtns{display:flex;gap:4px}.pager .pgbtns button{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:var(--r-sm);padding:4px 10px;cursor:pointer}.pager .pgbtns button:disabled{opacity:.4;cursor:default}.pager .psize{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.pager .psize select{padding:4px 8px}.topbar{display:flex;align-items:center;gap:14px;margin-bottom:20px}.topbar h1{font-size:22px;margin:0;font-weight:700}.topbar h1 .dot{color:var(--accent)}.topbar .muted{margin-left:auto}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.statcard{padding:16px 18px;transition:border-color .12s ease,transform .12s ease}.statcard.clickable{cursor:pointer}.statcard.clickable:hover{border-color:var(--accent);transform:translateY(-1px)}.statcard .cardlbl{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.statcard .cardnum{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}.statcard.tone-on .cardnum{color:var(--on)}.statcard.tone-off .cardnum{color:var(--muted)}.statcard.tone-warn .cardnum{color:var(--warn)}.statcard.tone-danger .cardnum{color:var(--danger)}.statcard.tone-info .cardnum{color:var(--info)}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.pagetitle{margin:0 0 2px;font-size:20px;font-weight:700;letter-spacing:-.01em}.quicklinks{display:flex;gap:8px;flex-wrap:wrap}.subnav{display:inline-flex;gap:4px;margin-bottom:18px;flex-wrap:wrap;padding:4px;max-width:100%;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md)}.subnav button{border-color:transparent;background:transparent;color:var(--muted);font-weight:500}.subnav button:hover:not(:disabled){background:var(--panel2);border-color:transparent;color:var(--text)}.subnav button.navon,.subnav button.navon:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.rescards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:8px}.rescard{padding:18px 20px}.rescard-title{font-size:14px;font-weight:600;color:var(--accent);margin-bottom:12px}.rescard-num{font-size:24px;font-weight:700;margin-bottom:14px;font-variant-numeric:tabular-nums}.rescard-sub{font-size:12px;font-weight:400;color:var(--muted);margin-left:4px}.rescard-bar{height:8px;background:var(--bg);border-radius:6px;overflow:hidden}.rescard-fill{height:100%;border-radius:6px}.sec{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:24px 0 10px}.nav{display:flex;gap:6px;margin-left:18px}.poolform,.planform{padding:16px 18px;margin-bottom:16px}.planhead{display:flex;justify-content:flex-end;margin-bottom:12px}.planform h4{margin:0 0 14px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.pfgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pfgrid .span2{grid-column:1 / -1}.pfgrid .fl input,.pfgrid .fl select{width:100%}.pfgrid .fl{font-size:12px;color:var(--muted)}.hint{font-size:11px;color:var(--muted)}.pfactions{display:flex;align-items:center;gap:10px;margin-top:14px}.taginput{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 7px}.taginput input{border:none!important;background:transparent!important;flex:1;min-width:120px;padding:4px!important}.taginput .tag{display:inline-flex;align-items:center;gap:5px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:2px 4px 2px 8px;font-size:12px;color:var(--text)}.taginput .tag button{border:none;background:transparent;color:var(--muted);padding:0 3px;cursor:pointer;font-size:14px;line-height:1}.taginput .tag button:hover{color:var(--danger);background:transparent}.ipactions{display:flex;gap:10px;justify-content:flex-end;margin-bottom:14px;flex-wrap:wrap}.filterbtns{display:flex;gap:10px;justify-content:center;margin-top:12px}.ipv4banner{display:flex;align-items:center;gap:12px}.ipv4banner .bigt{font-weight:700;color:var(--warn)}.infonote{background:var(--warn-bg);border:1px solid rgba(245,158,11,.45);border-radius:var(--r-md);padding:11px 16px;margin:16px 0;font-size:13px;color:var(--muted)}.sectionh{font-size:15px;font-weight:600;margin:22px 0 12px}.warnbox{background:var(--warn-bg);border:1px solid rgba(245,158,11,.45);border-radius:var(--r-md);padding:12px 16px;margin-bottom:14px;color:var(--danger);font-weight:600;font-size:13px}.warnbox.muted-warn{color:var(--muted);font-weight:400}.ipbox{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);padding:10px 12px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;resize:vertical}.enforcenote{background:var(--panel);border:1px dashed var(--line);border-radius:var(--r-md);padding:9px 14px;margin-bottom:14px;font-size:12px;color:var(--muted)}.setlist{display:flex;flex-direction:column}.setrow{display:flex;align-items:center;gap:16px;padding:12px 2px;border-bottom:1px solid var(--line)}.setrow:last-child{border-bottom:none}.setmeta{flex:1;min-width:0}.setlabel{font-weight:600;font-size:14px}.sethelp{font-size:12px;color:var(--muted);margin-top:2px}.setctrl{flex-shrink:0;width:210px}.setctrl input,.setctrl select{width:100%}.setctrl .switch input{width:auto;height:18px}.poolform h4{margin:0 0 10px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.formrow{display:flex;gap:8px;flex-wrap:wrap}.formrow input{flex:1;min-width:110px}.formrow input[type=number]{flex:0 0 auto;min-width:0}.chk{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--muted)}.chk input{width:auto}.chk.span2{align-items:flex-start;gap:8px;color:var(--text);line-height:1.4}.chk.span2 input{margin-top:2px}table.iplist{width:100%;border-collapse:collapse;font-size:13px}.iplist th{text-align:left;color:var(--muted);font-weight:600;font-size:12px;padding:6px 10px;border-bottom:1px solid var(--line)}.iplist td{padding:6px 10px;border-bottom:1px solid var(--line)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.muted{color:var(--muted)}.small{font-size:12px}.error{background:var(--danger-bg);border:1px solid rgba(239,68,68,.55);color:#ffd2d2;padding:10px 14px;border-radius:var(--r-md);margin-bottom:14px}table.vms{width:100%;border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.vms th{position:sticky;top:var(--chead-h);z-index:2;text-align:left;color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;padding:11px 14px;background:var(--panel);border-bottom:1px solid var(--line);white-space:nowrap}.vms thead th:first-child{border-top-left-radius:11px}.vms thead th:last-child{border-top-right-radius:11px}.vms td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.vms tbody tr:last-child td{border-bottom:none}.vms tbody tr:last-child td:first-child{border-bottom-left-radius:11px}.vms tbody tr:last-child td:last-child{border-bottom-right-radius:11px}.vms tbody tr:nth-child(2n){background:#ffffff05}.vms tbody tr:hover,.vms tr.sel{background:var(--panel2)}.vms td.name{font-weight:600}.acts{display:flex;gap:6px;align-items:center}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--r-pill);font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap;vertical-align:middle}.badge.on{background:var(--on-bg);color:var(--on)}.badge.off{background:var(--off-bg);color:#a9b4c9}.badge.susp,.badge.warn,.badge.unknown{background:var(--warn-bg);color:var(--warn)}.badge.danger,.badge.pasif{background:var(--danger-bg);color:#ff9b9b}.badge.info{background:var(--info-bg);color:var(--info)}.badge.avail{background:#7c5cff2e;color:#b9a6ff}.badge.neutral{background:var(--panel2);color:var(--muted)}.badge.pulse{animation:badge-pulse 1.2s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.55}}.detailrow td{background:#121829;padding:0}.detail{padding:16px 18px}.detail .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.detail h4{margin:0 0 8px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.detail .row{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.detail label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.detail input{padding:6px 8px;width:110px}.snaps{list-style:none;margin:8px 0 0;padding:0}.snaps li{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--line)}.snaps li:last-child{border-bottom:none}.snaps em{color:var(--accent);font-style:normal;font-size:12px}.metrics{display:flex;flex-direction:column;gap:8px}.metline{display:flex;align-items:center;gap:8px;font-size:13px}.metline>span:first-child{width:34px;color:var(--muted)}.metval{margin-left:auto;font-variant-numeric:tabular-nums}.bar{flex:1;height:6px;background:var(--bg);border:1px solid var(--line);border-radius:4px;overflow:hidden}.barfill{height:100%;background:var(--accent)}.sparkwrap{margin-top:10px;display:flex;flex-direction:column;gap:4px}.spark{width:100%;height:40px;background:var(--bg);border:1px solid var(--line);border-radius:6px}.msg{margin-top:14px;padding:8px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);font-size:13px}.foot{margin-top:30px;text-align:center;font-size:12px}.console-overlay{position:fixed;inset:0;z-index:1000;background:#000000d9;display:flex;flex-direction:column}.console-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.console-bar .console-spacer{flex:1}.console-bar select{padding:4px 8px;font-size:12px}.console-bar .chk{gap:6px}.console-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.console-status{color:var(--muted)}.console-status.ok{color:var(--on)}.console-power{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 8px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md)}.console-msg{margin-left:4px;white-space:nowrap}.console-msg.ok{color:var(--on)}.console-msg.warn{color:var(--warn);font-weight:600}.console-msg.err{color:#ffb4b4}.console-msg.info{color:var(--muted)}.console-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}@media (max-width: 1200px){.console-power{order:3;flex-basis:100%}}.console-screen{flex:1;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center}.console-screen canvas{outline:none}.detail .props{margin-bottom:14px}.propgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 18px}.prop{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-bottom:1px solid var(--line)}.prop .plabel{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.prop .pvalue{font-size:14px;color:var(--text);word-break:break-word}.iptable{width:100%;border-collapse:collapse;font-size:13px}.iptable th,.iptable td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}.iptable th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase}.vms .vmrow{cursor:pointer}.vms .vmrow:hover{background:var(--panel-hover)}.vmlink{color:var(--accent);font-weight:600}.sd{display:flex;flex-direction:column;gap:14px}.sd-top{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.sd-name{margin:0;font-size:18px;letter-spacing:-.01em}.sd-spacer{flex:1}.sd-msg{background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-md);padding:10px 14px;font-size:13px;word-break:break-word}.sd-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sd-grid .card.span2{grid-column:1 / -1}@media (max-width: 900px){.sd-grid{grid-template-columns:1fr}.sd-grid .card.span2{grid-column:auto}}.card{padding:16px 18px}.card h4{margin:0 0 12px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.opbtns{display:flex;flex-wrap:wrap;gap:8px}.opbtns button{padding:9px 14px;font-size:13px;border-radius:var(--r-md)}.resizerow{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.resizerow label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.resizerow input,.resizerow select{min-width:120px}.console-send{display:flex;gap:8px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.console-send input{flex:1;padding:7px 10px;font-family:ui-monospace,SF Mono,Menlo,monospace}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-card{display:flex;flex-direction:column;gap:10px;padding:28px 26px;min-width:320px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}.login-title{font-size:22px;font-weight:700;color:var(--text)}.login-card input{padding:10px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);font-size:14px}.login-card button{padding:10px 12px;background:var(--accent);border:none;border-radius:var(--r-md);color:#fff;font-weight:600;cursor:pointer}.login-card button:hover:not(:disabled){background:var(--accent-hover)}.login-card button:disabled{opacity:.6;cursor:default}.login-err{color:var(--danger);font-size:13px}.ippicker{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:10px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-md)}.ippicker select{padding:6px 8px;background:var(--panel)}.hamburger{display:none;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:var(--r-md);font-size:18px;line-height:1;padding:6px 10px;cursor:pointer}.nav-backdrop{display:none;position:fixed;inset:0;background:#00000080;z-index:40}.tablewrap{width:100%;overflow:auto;max-height:min(78vh,900px);-webkit-overflow-scrolling:touch;scrollbar-width:thin}.tablewrap .vms th{top:0}.vms .vms th{position:static}@media (max-width: 768px){.sidebar{position:fixed;left:0;top:0;z-index:50;width:82%;max-width:290px;transform:translate(-100%);transition:transform .22s ease;box-shadow:2px 0 18px #00000073}.sidebar.open{transform:translate(0)}.sidebar.open~.nav-backdrop,.nav-backdrop.show{display:block}.hamburger{display:inline-flex}.cbody{padding:14px 14px 56px}.chead{position:static;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px}.chead .ctitle{font-size:15px}.modebtn{padding:4px 11px;font-size:12px}.csection{flex-basis:100%;order:5;font-size:13px}.vms th{top:0}table.vms{min-width:680px}.grid2,.form-grid,.row2,.pfgrid{grid-template-columns:1fr!important}.setrow{flex-wrap:wrap}.setctrl{width:100%}.modal,.dialog,.sheet{max-width:94vw!important;width:94vw!important}}.lockbadge{display:inline-block;font-size:12px;font-weight:600;color:var(--warn);white-space:nowrap}.bmcwarn{color:var(--warn);cursor:help;margin-left:4px}.pfgrid .fl textarea{width:100%;min-height:60px;resize:vertical}.credgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}.credgrid .credbox{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.credgrid .credbox h5{margin:0;font-size:12px;color:var(--muted);font-weight:600}.credgrid .credbox input{background:var(--panel);width:100%}.vms tr.rowwarn td{background:#f59e0b0f}.sol-screen{flex:1;min-height:0;overflow:hidden;background:#000;padding:6px 8px}.sol-screen .xterm{height:100%}.sol-screen.vga{display:flex;align-items:center;justify-content:center}.sol-screen.vga .xterm{height:auto}.sol-keys{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.sol-keys .sol-hint{border:0;padding:0 0 0 8px;background:transparent}.sol-hint{padding:6px 12px;background:var(--panel);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.rackgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.rackcard{display:flex;flex-direction:column;gap:10px;text-align:left;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color .12s ease,transform .12s ease}.rackcard:hover{border-color:var(--accent);transform:translateY(-1px)}.rackcard-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.rackcard-name{font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--text-strong);word-break:break-word}.rackcard-name.muted{color:var(--muted);font-weight:600}.rackcard-count{font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.rackpwr{display:inline-flex;flex-wrap:wrap;gap:6px}.rackcard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px}.rackhead{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px}.rackhead-name{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em}.rackhead-count{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.vms tr.chassisrow td{background:var(--panel2);border-top:1px solid var(--line-strong);font-weight:600;letter-spacing:.02em}.grid4,.grid5{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px;margin:6px 0 12px}.grid5{grid-template-columns:repeat(5,minmax(0,1fr))}@media (max-width: 900px){.grid4,.grid5{grid-template-columns:repeat(2,minmax(0,1fr))}}.skuedit{display:flex;gap:10px;align-items:center}.skuedit .chk{white-space:nowrap;margin:0}.skuedit input.mono{flex:1;min-width:0}.skuedit input:disabled{opacity:.6}input.sm{width:110px;padding:4px 6px}.nowrap,.skucell,.pricecell,.pricecell .small{white-space:nowrap}.speccell{min-width:240px}
