@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2) format("woff2-variations");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:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2) format("woff2-variations");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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-wght-normal-cHuGMAiY.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-wght-normal-DwHjdM4S.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-wght-normal-ece1310W.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-wght-normal-D-yuW59g.woff2) format("woff2-variations");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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-wght-normal-CxNHBx-q.woff2) format("woff2-variations");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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-wght-normal-D9elroTD.woff2) format("woff2-variations");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}/**
* 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}:root{color-scheme:light;--font-sans: "Schibsted Grotesk Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "Source Serif 4 Variable", ui-serif, Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--bg: #fafafa;--surface: #f0f0f0;--card: #ffffff;--inset: #f0f0f0;--text: #1a1a1a;--text-secondary: #6e6e6e;--text-faint: #9c9c9c;--border: rgba(0, 0, 0, .09);--border-strong: rgba(0, 0, 0, .18);--hover: rgba(0, 0, 0, .05);--active: rgba(0, 0, 0, .08);--accent: #1a1a1a;--accent-strong: #000000;--accent-soft: rgba(0, 0, 0, .07);--on-accent: #ffffff;--good: #3d8168;--good-soft: rgba(61, 129, 104, .13);--medium: #a8742f;--medium-soft: rgba(168, 116, 47, .14);--bad: #c25e32;--bad-soft: rgba(194, 94, 50, .14);--danger: #ab2b3f;--danger-soft: rgba(171, 43, 63, .1);--info: #4a7ba6;--info-soft: rgba(74, 123, 166, .13);--neutral-soft: rgba(0, 0, 0, .07);--highlight: rgba(0, 0, 0, .14);--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236e6e6e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--shadow-card: 0 1px 2px rgba(0, 0, 0, .03);--shadow-control: 0 1px 2px rgba(0, 0, 0, .04);--shadow-overlay: 0 12px 48px rgba(0, 0, 0, .22);--radius-card: 16px;--radius-control: 10px;--control-height: 30px;--sidebar-width: 232px}[data-theme=dark]{color-scheme:dark;--bg: #1e1e1e;--surface: #181818;--card: #292929;--inset: #1e1e1e;--text: #ededed;--text-secondary: #a8a8a8;--text-faint: #7d7d7d;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .2);--hover: rgba(255, 255, 255, .06);--active: rgba(255, 255, 255, .1);--accent: #ededed;--accent-strong: #ffffff;--accent-soft: rgba(255, 255, 255, .12);--on-accent: #1a1a1a;--good: #7cb89e;--good-soft: rgba(124, 184, 158, .16);--medium: #d3a45e;--medium-soft: rgba(211, 164, 94, .16);--bad: #db8a62;--bad-soft: rgba(219, 138, 98, .16);--danger: #e3838f;--danger-soft: rgba(227, 131, 143, .14);--info: #8fb4d6;--info-soft: rgba(143, 180, 214, .16);--neutral-soft: rgba(255, 255, 255, .09);--highlight: rgba(255, 255, 255, .22);--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8a8a8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--shadow-card: 0 1px 2px rgba(0, 0, 0, .16);--shadow-control: 0 1px 2px rgba(0, 0, 0, .12);--shadow-overlay: 0 12px 48px rgba(0, 0, 0, .55)}*{box-sizing:border-box}html,body,#root{height:100%}html{background:var(--surface)}body{margin:0;font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}input,select,textarea{font:inherit}a{color:var(--text);text-decoration-color:var(--border-strong);text-underline-offset:3px;transition:text-decoration-color .15s ease}a:hover{text-decoration-color:var(--accent)}::selection{background:var(--accent-soft)}.app{display:flex;height:100%}.mobile-topbar,.sidebar-scrim{display:none}.sidebar{width:var(--sidebar-width);flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--surface);padding:18px 12px 14px;gap:1px}.sidebar-brand{font-family:var(--font-serif);font-size:21px;font-weight:540;letter-spacing:-.015em;padding:0 10px 14px;display:flex;flex-direction:column;gap:1px}.sidebar-brand-version{font-family:var(--font-mono);font-size:10.5px;font-weight:400;letter-spacing:0;color:var(--text-faint)}.nav-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;border-radius:var(--radius-control);padding:7px 10px;font-size:13.5px;font-weight:480;color:var(--text-secondary);cursor:pointer;text-align:left;transition:background .12s ease,color .12s ease}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:var(--active);color:var(--text);font-weight:560}.nav-item .icon{flex-shrink:0;color:var(--text-faint);transition:color .12s ease}.nav-item:hover .icon,.nav-item.active .icon{color:var(--text-secondary)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border);padding:12px 10px 0;display:flex;flex-direction:column;gap:4px}.service-state{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;color:var(--text-secondary)}.service-state .uptime{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.state-dot{width:8px;height:8px;border-radius:50%;background:var(--text-faint);flex-shrink:0}.state-dot.good{background:var(--good)}.state-dot.medium{background:var(--medium)}.state-dot.bad{background:var(--danger)}.state-dot.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.server-picker{position:relative;margin:0 0 10px}.server-picker-button{display:flex;align-items:center;gap:8px;width:100%;border:1px solid var(--border);background:var(--bg);border-radius:var(--radius-control);padding:6px 10px;font-size:12.5px;font-weight:520;color:var(--text-secondary);cursor:pointer;transition:border-color .12s ease,color .12s ease}.server-picker-button:hover{border-color:var(--border-strong);color:var(--text)}.server-picker-button .server-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-picker-button .icon:last-child{color:var(--text-faint)}.menu{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-overlay);padding:5px;z-index:30;animation:menu-in .14s ease}@keyframes menu-in{0%{transform:translateY(-3px);opacity:0}}.menu-item{display:flex;align-items:center;gap:4px;width:100%;border:0;background:transparent;border-radius:8px;padding:6px 8px;font-size:13px;color:var(--text);cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item:hover{background:var(--hover)}.menu-check{width:18px;flex-shrink:0;display:inline-flex;align-items:center;color:var(--accent-strong)}.menu-divider{border-top:1px solid var(--border);margin:5px 8px}.menu-anchor{position:relative}.menu.align-right{left:auto;right:0;width:max-content;min-width:180px}.menu-label{padding:6px 8px 2px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.submenu{position:relative}.submenu:hover>.menu-item{background:var(--hover)}.submenu-arrow{margin-left:auto;display:inline-flex;color:var(--text-faint)}.menu.submenu-panel{top:-6px;left:auto;right:100%;width:max-content;min-width:160px}.menu-item.danger,.menu-item.danger .menu-check{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-soft)}.content{flex:1;min-width:0;overflow-y:auto}.page{padding:30px 36px 56px;animation:page-in .25s ease-out}.page-full{display:flex;flex-direction:column;height:100%;padding-bottom:24px}@keyframes page-in{0%{transform:translateY(4px);opacity:0}}.page-header{display:flex;align-items:center;gap:12px;margin-bottom:22px;flex-shrink:0}.page-title{font-family:var(--font-serif);font-size:27px;font-weight:540;letter-spacing:-.02em;margin:0}.page-header .actions{margin-left:auto;display:flex;align-items:center;gap:8px}.back-button{display:inline-flex;align-items:center;gap:3px;border:0;background:transparent;border-radius:8px;padding:4px 9px 4px 5px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background .12s ease,color .12s ease}.back-button:hover{background:var(--hover);color:var(--text)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:18px;transition:border-color .15s ease}.card-header{display:flex;align-items:center;gap:8px;font-weight:560;font-size:13.5px;margin-bottom:10px}.card-header .icon{color:var(--text-faint)}.card-header .actions{margin-left:auto;display:flex;align-items:center;gap:6px}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card-grid .wide{grid-column:1 / -1}@media(max-width:360px){.card-grid{grid-template-columns:1fr}}.settings-stack{display:flex;flex-direction:column;gap:16px}.data-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:3px 0;font-size:13px}.data-line .label{color:var(--text-secondary)}.data-line .value{font-weight:500;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metric{font-size:22px;font-weight:560;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.metric-sub{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-bottom:8px}.list-section-title{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:0 4px 7px}.nav-list{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.nav-row{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;padding:12px 16px;font-size:13.5px;font-weight:500;color:var(--text);cursor:pointer;text-align:left;transition:background .12s ease}.nav-row+.nav-row{border-top:1px solid var(--border)}.nav-row:hover{background:var(--hover)}.nav-row>.icon:first-child{color:var(--text-faint)}.nav-row>span{flex:1}.nav-row>.icon:last-child{color:var(--text-faint)}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:var(--control-height);border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:var(--radius-control);padding:0 13px;font-size:13px;font-weight:520;cursor:pointer;text-decoration:none;box-shadow:var(--shadow-control);transition:background .12s ease,border-color .12s ease,opacity .12s ease;white-space:nowrap}.button:hover{background:var(--inset)}.button:disabled{opacity:.5;cursor:default}.button.primary{background:var(--accent);border-color:transparent;color:var(--on-accent)}.button.primary:hover{background:var(--accent-strong)}.button.danger{color:var(--danger)}.button.danger:hover{background:var(--danger-soft);border-color:transparent}.button.small{height:24px;padding:0 10px;font-size:12px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height);height:var(--control-height);border:0;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .12s ease,color .12s ease;flex-shrink:0}.icon-button:hover{background:var(--hover);color:var(--text)}.icon-button.active{background:var(--accent-soft);color:var(--accent-strong)}.icon-button:disabled{opacity:.4;cursor:default}.segmented{display:inline-flex;background:var(--inset);border:1px solid var(--border);border-radius:var(--radius-control);padding:2px;gap:2px;height:var(--control-height)}.segmented button{border:0;background:transparent;border-radius:8px;padding:0 14px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.segmented button.active{background:var(--card);color:var(--text);box-shadow:0 1px 3px #0000001a}.segmented.full{display:flex;width:100%}.segmented.full button{flex:1;overflow:hidden;text-overflow:ellipsis}.segmented-measure{position:absolute;visibility:hidden;height:0;overflow:hidden;pointer-events:none}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:560;border-radius:99px;padding:1.5px 8px;background:var(--neutral-soft);color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.badge.good{background:var(--good-soft);color:var(--good)}.badge.medium{background:var(--medium-soft);color:var(--medium)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.accent{background:var(--accent-soft);color:var(--accent-strong)}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field>label{font-size:12px;font-weight:560;color:var(--text-secondary)}.input,.select{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-control);height:var(--control-height);padding:0 11px;font-size:13px;color:var(--text);width:100%;box-shadow:var(--shadow-control);transition:border-color .12s ease,box-shadow .12s ease}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:28px;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right 8px center;background-size:14px;cursor:pointer}.input::placeholder{color:var(--text-faint)}.input:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.toggle-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;font-size:13px}.switch{position:relative;width:36px;height:21px;border-radius:99px;border:0;background:var(--border-strong);cursor:pointer;transition:background .15s ease;flex-shrink:0}.switch:after{content:"";position:absolute;top:2.5px;left:2.5px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s ease;box-shadow:0 1px 2px #0003}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(15px)}.search-input{position:relative;display:flex;align-items:center}.search-input .icon{position:absolute;left:9px;color:var(--text-faint);pointer-events:none}.search-input input{padding-left:30px}.card-manage-list{display:flex;flex-direction:column}.card-manage-row{display:flex;align-items:center;gap:10px;padding:9px 4px;font-size:13px;border-radius:8px}.card-manage-row+.card-manage-row{border-top:1px solid var(--border)}.card-manage-row.dragging{background:var(--hover);opacity:.7}.card-manage-row .drag-handle{display:inline-flex;color:var(--text-faint);cursor:grab}.card-manage-row>.icon{color:var(--text-secondary)}.card-manage-title{flex:1;font-weight:500}.settings-section{margin-bottom:38px}.settings-section-title{font-size:15px;font-weight:600;letter-spacing:-.005em;margin:0 0 4px}.settings-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border);font-size:13.5px}.settings-row-label{flex:1}.settings-row-main{display:flex;align-items:center;gap:6px;flex:1;min-width:0;border:0;background:transparent;border-radius:8px;padding:2px 4px 2px 0;font:inherit;cursor:pointer;text-align:left}.settings-row-main:hover .server-row-name{color:var(--text)}.server-row-name{font-weight:520;white-space:nowrap}.server-row-url{color:var(--text-faint);font-family:var(--font-mono);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-row-chevron{margin-left:auto;display:inline-flex;color:var(--text-faint)}.settings-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.settings-section-header .settings-section-title{margin:0}.icon-segmented{display:inline-flex;background:var(--neutral-soft);border-radius:10px;padding:2px;gap:2px}.icon-segmented button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:26px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .12s ease,color .12s ease}.icon-segmented button:hover{color:var(--text)}.icon-segmented button.active{background:var(--active);color:var(--text)}.setup{min-height:100%;display:flex;align-items:center;justify-content:center;padding:32px;background:var(--bg)}.setup-panel{width:380px;max-width:100%;background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-card);padding:30px 32px 28px;animation:page-in .3s ease-out}.setup-brand{font-family:var(--font-serif);font-size:19px;font-weight:540;letter-spacing:-.015em;display:flex;align-items:baseline;gap:7px;margin-bottom:26px}.setup-brand small{font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase}.setup-panel h1{font-family:var(--font-serif);font-size:24px;font-weight:540;letter-spacing:-.02em;margin:0 0 18px}.group-card{margin-bottom:14px}.group-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:9px;margin-top:12px}.group-item{border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:9px 11px;cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:border-color .12s ease,background .12s ease;text-align:left}.group-item:hover{border-color:var(--border-strong)}.group-item.selected{border-color:var(--accent);background:var(--accent-soft)}.group-item .item-tag{font-size:12.5px;font-weight:560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-item .item-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11.5px;color:var(--text-faint)}.delay-text{font-weight:560;font-variant-numeric:tabular-nums}.delay-text.good{color:var(--good)}.delay-text.medium{color:var(--medium)}.delay-text.bad{color:var(--bad)}.group-dots{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px}.group-dot{width:11px;height:11px;border-radius:3.5px;background:var(--neutral-soft);position:relative}.group-dot.good{background:var(--good)}.group-dot.medium{background:var(--medium)}.group-dot.bad{background:var(--bad)}.group-dot.selected:after{content:"";position:absolute;top:3.5px;right:3.5px;bottom:3.5px;left:3.5px;border-radius:50%;background:#fff}.connection-row{width:100%;text-align:left;border:1px solid var(--border);background:var(--card);border-radius:12px;padding:10px 14px;margin-bottom:8px;cursor:pointer;font-family:var(--font-mono);font-size:12px;display:flex;flex-direction:column;gap:5px;transition:border-color .12s ease}.connection-row:hover{border-color:var(--border-strong)}.connection-row .head{display:flex;align-items:center;gap:8px;font-weight:560;font-size:12.5px}.connection-row .head .destination{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-row .head .spacer{flex:1}.connection-row .columns{display:flex;gap:18px;color:var(--text-secondary);flex-wrap:wrap}.connection-row .columns>div{display:flex;flex-direction:column;gap:1px;min-width:90px}.connection-row .columns .right{margin-left:auto;text-align:right}.log-view{flex:1;min-height:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);font-family:var(--font-mono);font-size:11.5px;line-height:1.65;padding:12px 14px;overflow-y:auto;white-space:pre-wrap;overflow-wrap:anywhere}.page:not(.page-full) .log-view{height:calc(100vh - 170px)}.log-line{display:block}.log-line mark{background:var(--highlight);color:inherit;border-radius:2px}.tool-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}@media(max-width:860px){.tool-columns{grid-template-columns:1fr}}.overlay{position:fixed;inset:env(safe-area-inset-top,0px) 0 0 0;background:#00000052;display:flex;justify-content:flex-end;z-index:40}.drawer{width:420px;max-width:92vw;height:100%;background:var(--bg);border-left:1px solid var(--border);box-shadow:var(--shadow-overlay);padding:22px 24px;overflow-y:auto;animation:slide-in .18s ease}@keyframes slide-in{0%{transform:translate(24px);opacity:0}}.drawer h3{font-family:var(--font-serif);font-size:19px;font-weight:560;margin:0 0 4px;display:flex;align-items:center;gap:8px}.drawer-section{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin:18px 0 6px}.dialog-overlay{position:fixed;inset:env(safe-area-inset-top,0px) 0 0 0;background:#0000005c;display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.dialog{background:var(--bg);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-overlay);padding:22px 24px;width:480px;max-width:100%;max-height:90vh;overflow-y:auto;animation:dialog-in .18s ease-out}@keyframes dialog-in{0%{transform:scale(.97);opacity:0}}.dialog h3{font-family:var(--font-serif);font-size:19px;font-weight:560;margin:0 0 12px}.dialog-message{margin:0;font-size:13.5px;color:var(--text-secondary);overflow-wrap:anywhere}.terminal-dialog{width:min(960px,94vw);height:min(620px,88vh);display:flex;flex-direction:column;padding:14px 16px 16px}.terminal-dialog .terminal-host{flex:1;min-height:0;border-radius:10px;overflow:hidden;background:#1f1e1c;padding:8px}.empty-state{text-align:center;color:var(--text-faint);padding:64px 20px;font-size:13.5px}.empty-state .icon{display:block;margin:0 auto 10px;color:var(--border-strong)}.empty-state .spinner{margin:0 auto}.spinner{width:15px;height:15px;border:2px solid var(--neutral-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.banner{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--medium);background:var(--medium-soft);color:var(--text);border-radius:12px;padding:12px 14px;font-size:13px;margin-bottom:16px}.banner.error{border-color:var(--danger);background:var(--danger-soft)}.banner .icon{flex-shrink:0;margin-top:1px;color:var(--medium)}.banner.error .icon{color:var(--danger)}.hint{font-size:12px;color:var(--text-faint)}.divider{border:0;border-top:1px solid var(--border);margin:14px 0}.copy-value{display:inline-flex;align-items:center;gap:6px}.row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.peer-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--border);padding:9px 4px;cursor:pointer;font-size:13px}.peer-row:last-child{border-bottom:0}.peer-row:hover{background:var(--hover)}.peer-row .peer-name{font-weight:500}.peer-row .peer-address{color:var(--text-faint);font-family:var(--font-mono);font-size:11.5px}.peer-row .badges{margin-left:auto;display:flex;gap:5px}@media(max-width:720px){:root{--control-height: 36px}.app{flex-direction:column}.mobile-topbar{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:calc(6px + env(safe-area-inset-top)) 10px 6px;border-bottom:1px solid var(--border);background:var(--surface);position:relative;z-index:56}.mobile-topbar-brand{font-family:var(--font-serif);font-size:18px;font-weight:540;letter-spacing:-.015em}.mobile-topbar .service-state{margin-left:auto;min-width:0}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:60;width:min(78vw,300px);padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:calc(14px + env(safe-area-inset-bottom));transform:translate(-100%);transition:transform .2s ease}.sidebar.open{transform:translate(0);box-shadow:var(--shadow-overlay)}.sidebar-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:55;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}}.nav-item{padding:10px;font-size:14.5px}.content{min-height:0}.page{padding:18px 16px calc(40px + env(safe-area-inset-bottom))}.page-full{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.page-title{font-size:22px}.page-header{flex-wrap:wrap;row-gap:10px;margin-bottom:16px}.page-header .actions{flex-wrap:wrap;justify-content:flex-end;row-gap:8px}.card{padding:14px}.card-grid{gap:10px}.page:not(.page-full) .log-view{height:calc(100dvh - 230px)}.group-items{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.drawer{width:100%;max-width:100%;border-left:0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.dialog-overlay{padding:14px}.dialog{padding:18px 16px;max-height:88dvh}.setup{padding:20px 14px}.setup-panel{padding:24px 20px 22px}.input,.select{font-size:16px}.button.small{height:28px}.settings-section{margin-bottom:30px}}
