.grid[data-v-f85aebff]{display:grid;grid-template-columns:1fr 1fr;column-gap:1rem}.span-2[data-v-f85aebff]{grid-column:1 / -1}.hint[data-v-f85aebff]{margin:.2rem 0 0;font-size:.8rem;color:var(--muted)}@media(max-width:640px){.grid[data-v-f85aebff]{grid-template-columns:1fr}}.grid[data-v-296162b9]{display:grid;grid-template-columns:1fr 1fr;column-gap:1rem}.span-2[data-v-296162b9]{grid-column:1 / -1}@media(max-width:640px){.grid[data-v-296162b9]{grid-template-columns:1fr}}.chart[data-v-be126d68]{position:relative;width:100%;height:120px}.chart-svg[data-v-be126d68]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.chart-grid[data-v-be126d68]{stroke:var(--border-soft);stroke-width:1;vector-effect:non-scaling-stroke}.chart-empty[data-v-be126d68]{height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.75rem;color:var(--faint)}/**
 * 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:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;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}.ssh-bar[data-v-f51b0734]{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.76rem;color:var(--muted);padding:.4rem 0}.ssh-bar .dot.open[data-v-f51b0734]{background:var(--up);box-shadow:0 0 6px var(--up)}.ssh-bar .dot.error[data-v-f51b0734],.ssh-bar .dot.closed[data-v-f51b0734]{background:var(--down)}.ssh-bar .dot.connecting[data-v-f51b0734]{background:var(--accent)}.ssh-term[data-v-f51b0734]{height:420px;padding:.5rem;background:#0d1829;border:1px solid var(--border);border-radius:6px}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-vietnamese-600-normal-DUi7WF5p.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-600-normal-D6zpsUhD.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-600-normal-VcznFIpX.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2) format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0a1120;--bg-grid: rgba(34, 211, 238, .035);--panel: #111c31;--panel-top: #16233b;--field: #0d1829;--card: #0f1a2d;--border: #22324a;--border-soft: #1a2740;--text: #e7edf7;--muted: #8a9bb4;--faint: #5c6e88;--accent: #22d3ee;--accent-strong: #67e8f9;--accent-dim: rgba(34, 211, 238, .14);--up: #34d399;--down: #f9736b;--unknown: #64748b;--font-display: "Space Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background-color:var(--bg);background-image:linear-gradient(var(--bg-grid) 1px,transparent 1px),linear-gradient(90deg,var(--bg-grid) 1px,transparent 1px);background-size:44px 44px;color:var(--text);font-family:var(--font-display);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.masthead{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding:.9rem 1.5rem;border-bottom:1px solid var(--border);background:#0a1120b3}.brand-block{display:flex;align-items:center;gap:.85rem}.logo{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;color:var(--accent);background:var(--accent-dim);border:1px solid rgba(34,211,238,.4)}.brand-name{font-weight:700;font-size:1.12rem;letter-spacing:.06em}.brand-sub{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;color:var(--faint);margin-top:.15rem}.status-group{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.status-item{display:flex;flex-direction:column;gap:.3rem}.status-label{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--faint)}.status-value{font-family:var(--font-mono);font-size:1.02rem;font-weight:500}.status-value.accent{color:var(--accent)}.status-pill{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;padding:.22rem .55rem;border-radius:6px;width:fit-content}.status-pill.on{color:var(--up);border:1px solid rgba(52,211,153,.4);background:#34d39914}.status-pill.off{color:var(--down);border:1px solid rgba(249,115,107,.4);background:#f9736b14}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--unknown)}.dot.on,.status-pill.on .dot{background:var(--up);box-shadow:0 0 6px var(--up)}.status-pill.off .dot{background:var(--down);box-shadow:0 0 6px var(--down)}.nav{display:flex;align-items:center;gap:1.75rem;padding:0 1.5rem;border-bottom:1px solid var(--border);background:#0d182980}.nav-tab{font-family:var(--font-mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);text-decoration:none;padding:.85rem 0;border-bottom:2px solid transparent;transition:color .12s,border-color .12s}.nav-tab:hover{color:var(--text)}.nav-tab.router-link-exact-active{color:var(--accent);border-bottom-color:var(--accent)}.nav-alarm{font-family:var(--font-mono);font-size:.66rem;color:var(--down);background:#f9736b1f;border:1px solid rgba(249,115,107,.35);border-radius:5px;padding:.1rem .4rem}.nav-spacer{flex:1}.nav-user{display:flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.76rem;color:var(--muted)}.nav-logout{font-family:var(--font-mono);font-size:.76rem;color:var(--accent);cursor:pointer;text-decoration:none}.nav-logout:hover{color:var(--accent-strong)}.shell{padding:1.5rem}.panel{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--panel-top),var(--panel));border:1px solid var(--border);border-radius:12px;padding:1.4rem 1.5rem}.panel+.panel{margin-top:1.25rem}.panel:before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,var(--accent),transparent 55%);opacity:.75}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.panel-head h2{margin:.15rem 0 0}.head-meta{font-family:var(--font-mono);font-size:.74rem;color:var(--faint);text-align:right}.eyebrow{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;font-size:.67rem;color:var(--faint);margin-bottom:.4rem}.eyebrow:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--accent);box-shadow:0 0 8px var(--accent)}.panel h2{font-weight:600;font-size:1.2rem;letter-spacing:-.01em;margin:.1rem 0 1.1rem}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:1.25rem}.kpi{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--panel-top),var(--panel));border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.2rem}.kpi-num{font-weight:700;font-size:2.15rem;line-height:1;letter-spacing:-.02em}.kpi-num.c-up{color:var(--up)}.kpi-num.c-down{color:var(--down)}.kpi-num.c-unknown{color:var(--muted)}.kpi-num.c-accent{color:var(--accent)}.kpi-label{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-top:.5rem}.dash{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1.25rem;align-items:start}.dash-side{display:flex;flex-direction:column;gap:1.25rem}.dash-side .panel+.panel{margin-top:0}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:.8rem}.dcard{background:var(--card);border:1px solid var(--border-soft);border-left:3px solid var(--unknown);border-radius:10px;padding:.85rem .95rem}.dcard--up{border-left-color:var(--up)}.dcard--down{border-left-color:var(--down)}.dcard--unknown{border-left-color:var(--faint)}.dcard{display:block;text-decoration:none;color:inherit;transition:background .12s}.dcard:hover{background:#14223c}.dcard:hover .dcard-name{color:var(--accent)}.hostlink{text-decoration:none}.hostlink:hover{text-decoration:underline}.dcard-eyebrow{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;color:var(--faint);margin-bottom:.45rem}.dcard-name{font-family:var(--font-mono);font-size:.98rem;font-weight:500;color:var(--accent-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dcard-host,.sub-host{font-family:var(--font-mono);font-size:.72rem;color:var(--faint);margin-top:.15rem}.dcard-foot{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem}.dcard-seen{font-family:var(--font-mono);font-size:.72rem;color:var(--faint)}.side-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:.6rem;margin-bottom:.85rem;border-bottom:1px solid var(--border-soft)}.eyebrow-inline{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:var(--text)}.eyebrow-inline:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--accent);box-shadow:0 0 8px var(--accent)}.side-count{font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}.rec{display:flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;color:var(--down)}.rec-dot{width:7px;height:7px;border-radius:50%;background:var(--down);box-shadow:0 0 6px var(--down)}.alarm-item{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--border-soft)}.alarm-item:last-child{border-bottom:none}.alarm-tag{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;color:var(--down);background:#f9736b1f;border:1px solid rgba(249,115,107,.3);border-radius:5px;padding:.12rem .4rem}.alarm-host{font-family:var(--font-mono);font-size:.85rem;color:var(--accent-strong)}.alarm-loc{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);margin-left:auto}.events{display:flex;flex-direction:column}.event-row{display:flex;align-items:baseline;gap:.55rem;padding:.32rem 0;font-family:var(--font-mono);font-size:.8rem;line-height:1.35}.event-time{color:var(--faint);flex:none}.event-verb{font-weight:500}.event-subj{color:var(--text)}.t-ok{color:var(--up)}.t-down{color:var(--down)}.t-info{color:var(--accent)}.legend{display:flex;gap:1.4rem;margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--border-soft)}.legend-item{display:flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}.swatch{width:11px;height:11px;border-radius:3px}.swatch.s-up{background:var(--up)}.swatch.s-down{background:var(--down)}.swatch.s-unknown{background:var(--unknown)}.back-link{display:inline-block;font-family:var(--font-mono);font-size:.78rem;color:var(--accent);text-decoration:none}.back-link:hover{color:var(--accent-strong)}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.detail-host{font-family:var(--font-mono);color:var(--accent-strong);margin:.15rem 0 .6rem}.detail-meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.82rem;color:var(--muted)}.detail-meta .sep{color:var(--faint)}.fw-badge{font-family:var(--font-mono);font-size:.68rem;color:#f5b544;background:#f5b5441f;border:1px solid rgba(245,181,68,.35);border-radius:5px;padding:.12rem .45rem}.up-arrow{color:#f5b544}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.25rem;align-items:stretch}.info-grid .panel{margin-top:0;display:flex;flex-direction:column}.info-grid .panel .kv{flex:1}.charts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.25rem;align-items:start}.charts .chart-panel{margin-top:0}.detail-page>*+*{margin-top:1.25rem}.info-grid .kv-key{min-width:110px}.meter{margin-bottom:1rem}.meter:last-child{margin-bottom:0}.meter-head{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.78rem;color:var(--muted);margin-bottom:.45rem}.meter-track{height:8px;background:var(--field);border-radius:999px;overflow:hidden;border:1px solid var(--border-soft)}.meter-fill{height:100%;border-radius:999px;transition:width .3s}.chart-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.9rem}.tput-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}@media(max-width:720px){.tput-grid{grid-template-columns:1fr}}.chart-value{font-family:var(--font-display);font-weight:700;font-size:1.8rem;line-height:1}.chart-foot{font-family:var(--font-mono);font-size:.72rem;color:var(--faint);margin-top:.6rem}@media(max-width:1080px){.charts,.info-grid{grid-template-columns:1fr}}.fleet{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.84rem;padding:.75rem 1rem;margin-bottom:1.2rem;border:1px solid var(--border-soft);border-radius:10px;background:#16233b73}.fleet .stat{display:flex;align-items:center;gap:.5rem;color:var(--muted)}.fleet .num{color:var(--text);font-weight:600}.fleet .sep{color:var(--faint)}.led{width:9px;height:9px;border-radius:50%;flex:none}.led-up{background:var(--up);box-shadow:0 0 8px var(--up)}.led-down{background:var(--down);box-shadow:0 0 8px var(--down)}.led-unknown{background:var(--unknown)}.field{margin-bottom:1rem}label{display:block;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);margin-bottom:.4rem}input{width:100%;padding:.6rem .7rem;background:var(--field);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-mono);font-size:.9rem;transition:border-color .12s,box-shadow .12s}input::placeholder{color:var(--faint)}input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.btn{font-family:var(--font-mono);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;padding:.6rem 1.1rem;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:background .12s,border-color .12s,color .12s,opacity .12s}.btn-primary{background:var(--accent);color:#042028}.btn-primary:hover{background:var(--accent-strong)}.btn-ghost{background:transparent;color:var(--accent);border-color:var(--border)}.btn-ghost:hover{border-color:var(--accent);background:var(--accent-dim)}.btn-quiet{color:var(--muted)}.btn-quiet:hover{color:var(--down);border-color:var(--down);background:#f9736b14}.btn-danger{background:var(--down);color:#2a0806}.btn-danger:hover{background:#ff8a83}.btn:disabled{opacity:.5;cursor:not-allowed}.row-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.86rem}thead th{text-align:left;font-size:.66rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--faint);padding:.5rem .75rem;border-bottom:1px solid var(--border);white-space:nowrap}tbody td{padding:.72rem .75rem;border-bottom:1px solid var(--border-soft);color:var(--text)}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .12s}tbody tr:hover{background:#22d3ee0b}.host{color:var(--accent-strong)}.muted-cell{color:var(--faint)}.pill{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;padding:.2rem .55rem;border-radius:999px;border:1px solid transparent}.pill:before{content:"";width:7px;height:7px;border-radius:50%}.pill-up{color:var(--up);background:#34d3991a;border-color:#34d39947}.pill-up:before{background:var(--up);box-shadow:0 0 6px var(--up)}.pill-down{color:var(--down);background:#f9736b1a;border-color:#f9736b47}.pill-down:before{background:var(--down)}.pill-unknown{color:var(--muted);background:#64748b1f;border-color:#64748b47}.pill-unknown:before{background:var(--unknown)}.msg-err{font-family:var(--font-mono);font-size:.82rem;color:var(--down);margin-bottom:.75rem}.msg-ok{font-family:var(--font-mono);font-size:.82rem;color:var(--up);margin-bottom:.75rem}.state{font-family:var(--font-mono);font-size:.85rem;color:var(--muted);padding:.4rem 0}.ilink{color:var(--accent);text-decoration:none}.ilink:hover{color:var(--accent-strong)}.kv{display:flex;flex-direction:column}.kv-row{display:flex;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--border-soft)}.kv-row:last-child{border-bottom:none}.kv-key{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);min-width:170px}.kv-val{font-family:var(--font-mono);font-size:.85rem;color:var(--text)}.kv-note{color:var(--faint);font-size:.72rem;margin-left:.5rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#040912b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlay-in .14s ease-out}.modal{position:relative;overflow:hidden auto;width:100%;max-width:640px;max-height:90vh;background:linear-gradient(180deg,var(--panel-top),var(--panel));border:1px solid var(--border);border-radius:12px;padding:1.5rem;animation:modal-in .16s ease-out}.modal:before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,var(--accent),transparent 55%);opacity:.8}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.modal-head h2{margin:.15rem 0 0}.modal-close{background:transparent;border:1px solid var(--border);color:var(--muted);width:32px;height:32px;border-radius:8px;cursor:pointer;font-family:var(--font-mono);font-size:.85rem;transition:color .12s,border-color .12s}.modal-close:hover{color:var(--accent);border-color:var(--accent)}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-soft)}.modal-wide{max-width:920px}.config-view{font-family:var(--font-mono);font-size:.78rem;line-height:1.5;white-space:pre;overflow:auto;max-height:65vh;background:var(--field);border:1px solid var(--border-soft);border-radius:8px;padding:.75rem 1rem}.cfg-line{color:var(--muted)}.cfg-add{color:var(--up)}.cfg-del{color:var(--down)}.cfg-hunk{color:var(--accent)}.subtabs{display:flex;gap:.4rem;flex-wrap:wrap}.subtab{display:inline-flex;align-items:center;gap:.45rem;background:linear-gradient(180deg,var(--panel-top),var(--panel));border:1px solid var(--border);color:var(--muted);font-family:var(--font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;padding:.6rem 1.15rem;border-radius:9px;cursor:pointer;transition:color .12s,background .12s,border-color .12s}.subtab:hover{color:var(--text)}.subtab.active{color:#042028;background:var(--accent);border-color:var(--accent);font-weight:600}.subtab-dot{width:7px;height:7px;border-radius:50%;background:var(--down);box-shadow:0 0 6px var(--down)}.subtab.active .subtab-dot{box-shadow:none}.tab-pane>*+*{margin-top:1.25rem}.tools-tabs{display:flex;gap:.5rem;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:1.1rem}.tools-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);font-family:var(--font-mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;padding:.55rem .4rem;cursor:pointer;transition:color .12s,border-color .12s}.tools-tab:hover{color:var(--text)}.tools-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.diag-form{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.diag-form input{margin-bottom:0}.diag-summary{display:flex;gap:1.4rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.85rem;color:var(--muted);margin-bottom:1rem}.diag-summary .num{color:var(--text);font-weight:600}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}select.tz-select{font-family:var(--font-mono);font-size:.85rem;color:var(--text);background:var(--field);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem}select.tz-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.tz-field{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.tz-now{font-family:var(--font-mono);font-size:.8rem;color:var(--accent)}.sched-field{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.sched-field select{text-transform:none;letter-spacing:0}.login-wrap{min-height:68vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{width:100%;max-width:400px}@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:980px){.dash{grid-template-columns:1fr}.dash-side{flex-direction:row;flex-wrap:wrap}.dash-side .panel{flex:1 1 300px}}@media(max-width:720px){.masthead{gap:1rem}.status-group{gap:1.25rem}.kpis{grid-template-columns:repeat(2,1fr)}.nav{gap:1.1rem;overflow-x:auto}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.modal-overlay,.modal{animation:none!important}}.field-label{display:block;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);margin-bottom:.4rem}.field-note{font-family:var(--font-mono);font-size:.72rem;color:var(--faint);margin:.35rem 0 0}.input{width:100%;padding:.6rem .7rem;background:var(--field);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-mono);font-size:.9rem;transition:border-color .12s,box-shadow .12s}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding-right:1.6rem}.input:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input-inline{width:auto;min-width:8.5rem;padding:.35rem .5rem;font-size:.8rem}.form-error{font-family:var(--font-mono);font-size:.8rem;color:var(--down);margin:.5rem 0 0}.form-ok{font-family:var(--font-mono);font-size:.8rem;color:var(--up);margin:.5rem 0 0}.form-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.add-user,.password-form{max-width:30rem;border:1px solid var(--border-soft);border-radius:10px;padding:1.1rem;margin-bottom:1.25rem;background:var(--card)}.col-actions{display:flex;gap:.5rem;flex-wrap:wrap}.row-form-line td,.row-error-line td{background:var(--field)}.row-form{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap}.row-form .input{width:auto;min-width:14rem}.row-form .field-label{margin-bottom:.25rem}.nav{flex-wrap:wrap;row-gap:.25rem;align-items:stretch}.nav-group{display:flex;align-items:center;gap:.9rem;padding-right:1.25rem;border-right:1px solid var(--border-soft)}.nav-group:last-of-type{border-right:none}.nav-group-label{font-family:var(--font-mono);font-size:.6rem;font-weight:600;letter-spacing:.18em;color:var(--faint);white-space:nowrap}.nav-group-tabs{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}.nav-tab:focus-visible,.nav-logout:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}@media(max-width:1024px){.nav{flex-direction:column;align-items:stretch;padding:.5rem 1rem;gap:.4rem}.nav-group{border-right:none;border-bottom:1px solid var(--border-soft);padding:.35rem 0;flex-wrap:wrap}.nav-spacer{display:none}}.page{display:flex;flex-direction:column;gap:1.25rem}.page-header{display:flex;flex-direction:column;gap:.35rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.page-header h1{margin:0;font-size:1.5rem;font-weight:600;letter-spacing:-.01em}.page-header p{margin:0;max-width:68ch;color:var(--muted);font-size:.9rem}.kicker{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;color:var(--faint)}.page-actions{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.card{border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 1.1rem;border-bottom:1px solid var(--border-soft);background:var(--panel-top)}.card-title{margin:0;font-size:.95rem;font-weight:600;letter-spacing:.01em}.card-body{padding:1.1rem}.card-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}.card-body.card-grid{padding:1.1rem}.scenario-card{display:flex;flex-direction:column;gap:.5rem}.scenario-card .card-head{background:transparent;border-bottom:1px solid var(--border-soft);padding:.75rem .9rem}.scenario-card .card-body{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.card-body .card-head{margin:0 -1.1rem}.note{margin:0;color:var(--muted);font-size:.85rem;line-height:1.5}.empty{margin:0;font-family:var(--font-mono);font-size:.85rem;color:var(--faint)}.spec{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .9rem;margin:0;font-size:.82rem}.spec dt{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}.spec dd{margin:0;color:var(--muted)}.status-row{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.status-card{border:1px solid var(--border-soft);border-radius:10px;background:var(--card);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.5rem}.status-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.status-title{font-size:.92rem}.callout{margin:0;padding:.85rem 1rem;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:.87rem;line-height:1.55}.callout strong{display:block;color:var(--text);margin-bottom:.2rem}.callout-warn{border-color:#fbbf2466;background:#fbbf2412}.pill-warn{color:#fbbf24;background:#fbbf241a;border-color:#fbbf2452}.pill-warn:before{background:#fbbf24}.panel-head-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.step-rail{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;list-style:none;margin:0;padding:0}.step-marker{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.06em;color:var(--faint)}.step-marker.active{color:var(--accent)}.step-marker.done{color:var(--muted)}.step-no{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:50%;border:1px solid currentColor;font-size:.7rem}.intent-form{display:flex;flex-direction:column;gap:.25rem;max-width:34rem}.target-row{display:flex;align-items:center;gap:.6rem;padding:.3rem 0}.target-row input{width:auto}.target-row label{margin:0;text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--text)}.required{color:var(--down);margin-left:.15rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}fieldset{border:1px solid var(--border-soft);border-radius:8px;padding:.8rem 1rem}legend{padding:0 .4rem}
