.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f0f2f5;--border:#dfe3e8;--border-strong:#c5ccd6;--text:#15191f;--text-2:#4d5766;--muted:#7a8494;--accent:#1f6fd0;--accent-hover:#1a5fb3;--accent-soft:#e4effc;--on-accent:#fff;--ok:#0f8a3c;--ok-soft:#e1f4e7;--info:#1f6fd0;--info-soft:#e4effc;--warn:#9a6400;--warn-soft:#fdf0d2;--bad:#c62f2f;--bad-soft:#fbe6e6;--bad-hover:#a82525;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-lg:0 12px 40px #10182838;--series-1:#2a78d6;--series-2:#eb6834;--grid:#e6e9ee;--radius:8px;--sidebar-w:232px;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101216;--surface:#191c22;--surface-2:#22262e;--border:#2c313a;--border-strong:#3d4450;--text:#eceef2;--text-2:#b4bcc8;--muted:#8690a0;--accent:#4b94ea;--accent-hover:#6aa7ef;--accent-soft:#1b2c44;--on-accent:#0b1220;--ok:#4cc777;--ok-soft:#15301f;--info:#6aa7ef;--info-soft:#1b2c44;--warn:#e6b450;--warn-soft:#382b10;--bad:#f07a7a;--bad-soft:#3d1c1c;--bad-hover:#f59a9a;--on-bad:#2a0d0d;--shadow:0 1px 2px #0006;--shadow-lg:0 12px 40px #0009;--series-1:#3987e5;--series-2:#d95926;--grid:#2a2f38;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#101216;--surface:#191c22;--surface-2:#22262e;--border:#2c313a;--border-strong:#3d4450;--text:#eceef2;--text-2:#b4bcc8;--muted:#8690a0;--accent:#4b94ea;--accent-hover:#6aa7ef;--accent-soft:#1b2c44;--on-accent:#0b1220;--ok:#4cc777;--ok-soft:#15301f;--info:#6aa7ef;--info-soft:#1b2c44;--warn:#e6b450;--warn-soft:#382b10;--bad:#f07a7a;--bad-soft:#3d1c1c;--bad-hover:#f59a9a;--on-bad:#2a0d0d;--shadow:0 1px 2px #0006;--shadow-lg:0 12px 40px #0009;--series-1:#3987e5;--series-2:#d95926;--grid:#2a2f38;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}h1{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-size:22px;font-weight:650}h2{margin:0;font-size:15px;font-weight:650}h3{color:var(--text-2);margin:0 0 8px;font-size:13px;font-weight:650}p{margin:0 0 12px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.num{font-variant-numeric:tabular-nums}.right{text-align:right}.shell{min-height:100%;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:none;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:var(--text);align-items:center;gap:10px;padding:18px 18px 14px;font-size:16px;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand-mark{background:var(--accent);border-radius:7px;flex:none;place-items:center;width:28px;height:28px;display:grid}.brand-mark svg{display:block}.nav{flex-direction:column;gap:2px;padding:4px 10px 12px;display:flex}.nav-group{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 10px 4px;font-size:11px;font-weight:650}.nav a{color:var(--text-2);border-radius:6px;padding:8px 10px;font-weight:500;display:block}.nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent)}.sidebar-foot{border-top:1px solid var(--border);color:var(--muted);overflow-wrap:anywhere;margin-top:auto;padding:12px 18px 16px;font-size:12px}.sidebar-foot strong{color:var(--text);font-size:13px;font-weight:600;display:block}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:20;justify-content:flex-end;align-items:center;gap:8px;padding:10px 24px;display:flex;position:sticky;top:0}.topbar-title{margin-right:auto;font-weight:700;display:none}.content{width:100%;max-width:1320px;margin:0 auto;padding:24px}.scrim{display:none}@media (max-width:860px){.sidebar{z-index:60;height:auto;box-shadow:var(--shadow-lg);width:min(280px,84vw);transition:transform .18s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.shell.nav-open .sidebar{transform:none}.shell.nav-open .scrim{z-index:50;background:#00000073;display:block;position:fixed;inset:0}.menu-btn{display:inline-grid}.topbar{padding:8px 12px}.topbar-title{display:block}.content{padding:16px 12px 32px}h1{font-size:19px}}.btn{border:1px solid var(--border-strong);background:var(--surface);min-height:34px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 13px;font-weight:550;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:var(--bad);border-color:var(--bad);color:var(--on-bad,#fff)}.btn-danger:hover:not(:disabled){background:var(--bad-hover);border-color:var(--bad-hover)}.btn-danger-ghost{color:var(--bad)}.btn-sm{min-height:28px;padding:3px 9px;font-size:12.5px}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.icon-btn{width:34px;height:34px;color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;font-size:20px;line-height:1;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.menu-btn{display:none}@media (max-width:860px){.menu-btn{display:inline-grid}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=url],select,textarea{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:34px;color:var(--text);font:inherit;border-radius:6px;padding:6px 10px}textarea{resize:vertical;min-height:84px;font-family:var(--mono);font-size:12.5px}input:disabled,select:disabled,textarea:disabled{opacity:.6;background:var(--surface-2)}input::placeholder,textarea::placeholder{color:var(--muted)}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-label{color:var(--text-2);font-size:12.5px;font-weight:600}.field-hint{color:var(--muted);font-size:12px}.form{flex-direction:column;gap:14px;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:start;gap:14px;display:grid}.form-inline{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.form-inline .field{flex:180px}.span-all{grid-column:1/-1}.check{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.check input{width:16px;height:16px;accent-color:var(--accent);flex:none;margin:3px 0 0}.check-list{flex-direction:column;gap:8px;display:flex}.seg{border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;max-width:100%;display:inline-flex;overflow:hidden}.seg-btn{color:var(--text-2);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:6px 12px;font-weight:550}.seg-btn+.seg-btn{border-left:1px solid var(--border-strong)}.seg-btn.active{background:var(--accent-soft);color:var(--accent)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.page-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar input[type=search]{max-width:320px}.toolbar select{width:auto}.toolbar .spacer{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;margin-bottom:16px;padding:16px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.card-danger{border-color:var(--bad)}.card>.table-wrap:last-child{margin-bottom:-4px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start;gap:16px;display:grid}.grid-2>.card{margin-bottom:0}.grid-2{margin-bottom:16px}.grid-2>div>.card:last-child{margin-bottom:0}.stats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:14px 16px}.stat-label{color:var(--text-2);font-size:12.5px;font-weight:550}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px;font-size:26px;font-weight:680}.stat-value small{color:var(--muted);letter-spacing:0;font-size:14px;font-weight:500}.stat-bad .stat-value{color:var(--bad)}.stat .bar-wrap{margin-top:8px}a.stat{color:inherit;display:block}a.stat:hover{border-color:var(--border-strong);text-decoration:none}.table-wrap{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.card.card-table{padding:0;overflow:hidden}.card.card-table .card-head{padding:14px 16px 0}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 12px}th{color:var(--text-2);white-space:nowrap;background:var(--surface-2);font-size:12px;font-weight:650}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:color-mix(in srgb, var(--surface-2) 55%, transparent)}td.actions{white-space:nowrap;text-align:right}td.actions .btn+.btn{margin-left:6px}th.right,td.right{text-align:right}.cell-main{font-weight:600}.cell-sub{color:var(--muted);font-size:12px}.ip-list{font-family:var(--mono);flex-direction:column;font-size:12.5px;display:flex}.err-text{color:var(--bad);white-space:pre-wrap;overflow-wrap:anywhere;max-width:420px;font-size:12.5px}.detail-json{font-family:var(--mono);color:var(--text-2);overflow-wrap:anywhere;white-space:pre-wrap;max-width:420px;font-size:12px}.empty{text-align:center;color:var(--muted);padding:28px 16px}.loading{color:var(--muted);justify-content:center;align-items:center;gap:10px;padding:40px 16px;display:flex}.error-box{border:1px solid var(--bad);background:var(--bad-soft);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 9px 2px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-bad{background:var(--bad-soft);color:var(--bad)}.badge-muted{background:var(--surface-2);color:var(--text-2)}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}.spinner-sm{width:13px;height:13px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.task-progress{color:var(--info);align-items:center;gap:7px;font-size:12.5px;font-weight:600;display:inline-flex}.busy-banner{border-radius:var(--radius);background:var(--info-soft);color:var(--info);align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;font-weight:600;display:flex;position:relative;overflow:hidden}.busy-banner:after{content:"";background:currentColor;width:35%;height:2px;animation:1.6s ease-in-out infinite slide;position:absolute;bottom:0;left:0}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(290%)}}@media (prefers-reduced-motion:reduce){.busy-banner:after{opacity:.4;width:100%;animation:none}}.bar-wrap{min-width:120px}.bar-text{justify-content:space-between;gap:10px;margin-bottom:4px;font-size:12.5px;display:flex}.bar{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:3px;height:100%}.bar-warn{background:var(--warn)}.bar-bad{background:var(--bad)}.note{background:var(--surface-2);color:var(--text-2);border-radius:6px;padding:10px 12px;font-size:13px}.note-warn{background:var(--warn-soft);color:var(--warn)}.note-bad{background:var(--bad-soft);color:var(--bad)}.kv{grid-template-columns:minmax(110px,max-content) 1fr;gap:7px 16px;margin:0;display:grid}.kv dt{color:var(--text-2)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.modal-back{z-index:100;background:#080c148c;justify-content:center;align-items:flex-start;padding:6vh 12px 12px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:10px;outline:none;width:100%;max-width:480px}.modal-wide{max-width:760px}.modal-head{justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 0;display:flex}.modal-head h2{overflow-wrap:anywhere;font-size:16px}.modal-body{padding:14px 16px}.modal-foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.confirm-body{color:var(--text-2)}.copy-field{margin-top:12px}.copy-field-head{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.secret{background:var(--surface-2);border:1px solid var(--border);white-space:pre-wrap;word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:6px;margin:0;padding:10px 12px}.toasts{z-index:200;flex-direction:column;gap:8px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--ok);box-shadow:var(--shadow-lg);overflow-wrap:anywhere;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.toast-error{border-left-color:var(--bad)}.toast-x{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:18px;line-height:1}.login-page{place-items:center;min-height:100%;padding:16px;display:grid}.login-box{width:100%;max-width:360px}.login-box .brand{justify-content:center;padding:0 0 18px;font-size:20px}.login-box .card{padding:22px}.login-box h1{margin-bottom:16px;font-size:18px}.login-tools{justify-content:center;gap:6px;margin-top:4px;display:flex}.form-error{color:var(--bad);font-size:13px}.vps-head{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px;display:flex}.vps-head .sub{color:var(--muted);font-family:var(--mono);font-size:13px}.crumbs{margin-bottom:6px;font-size:13px}.tabs{border-bottom:1px solid var(--border);scrollbar-width:thin;gap:2px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs a{color:var(--text-2);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 13px;font-weight:550}.tabs a:hover{color:var(--text);text-decoration:none}.tabs a.active{color:var(--accent);border-bottom-color:var(--accent)}.vps-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;display:grid}.vps-card{color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;min-width:0;padding:14px 16px;display:flex}.vps-card:hover{border-color:var(--border-strong);text-decoration:none}.vps-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.vps-card-top strong{overflow-wrap:anywhere}.steps{gap:6px;margin-bottom:18px;padding:0;list-style:none;display:flex;overflow-x:auto}.steps li{background:var(--surface);border:1px solid var(--border);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:550;display:flex}.steps li.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.steps li.done{color:var(--ok)}.step-n{background:var(--surface-2);border-radius:50%;place-items:center;width:20px;height:20px;font-size:11.5px;display:inline-grid}.steps li.active .step-n{background:var(--accent);color:var(--on-accent)}.wizard-foot{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px;display:flex}.choice-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px;display:grid}.choice{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;text-align:left;font:inherit;color:inherit;border-radius:8px;flex-direction:column;gap:3px;padding:11px 12px;display:flex}.choice:hover{border-color:var(--accent)}.choice.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.choice strong{overflow-wrap:anywhere}.choice span{color:var(--text-2);font-size:12.5px}.console-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.console-bar .spacer{flex:1}.console-wrap{border-radius:var(--radius);background:#000;flex-direction:column;display:flex;overflow:hidden}.console-wrap:fullscreen{border-radius:0}.console-wrap:fullscreen .console-screen{flex:1;height:100%}.console-wrap .console-bar{background:var(--surface);border-bottom:1px solid var(--border);margin:0;padding:8px 10px}.console-screen{height:min(72vh,760px);min-height:300px;position:relative}.console-screen.noscale{overflow:auto}.console-overlay{color:#d6dae1;text-align:center;z-index:2;background:#000000b3;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.console-overlay>div{flex-direction:column;align-items:center;gap:12px;display:flex}.chart-card{padding-bottom:10px}.chart{width:100%;min-width:0;position:relative}.chart .uplot{font-family:inherit}.chart-legend{color:var(--text-2);flex-wrap:wrap;gap:4px 16px;min-height:19px;margin-bottom:6px;font-size:12.5px;display:flex}.chart-legend-item{align-items:center;gap:6px;display:inline-flex}.chart-swatch{border-radius:2px;width:12px;height:3px}.chart-legend-item b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.chart-time{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.chart-empty{height:220px;color:var(--muted);place-items:center;display:grid}.node-host{flex-direction:column;gap:1px;font-size:12.5px;display:flex}.alerts{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.alerts li{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.alert-src{font-weight:600}.alert-text{min-width:0;color:var(--text-2);flex:260px}.alerts-ok{margin-bottom:16px}.more>summary{cursor:pointer;color:var(--text-2);font-weight:550}.more[open]>summary{margin-bottom:12px}.inline-select{width:auto!important;min-height:28px!important;padding:2px 6px!important}.os-section{flex-direction:column;gap:12px;display:flex}.os-section h3{color:var(--text);margin:0;font-size:14px}.os-family-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:650}tr.group-row td,tbody tr.group-row:hover td{background:var(--surface-2);color:var(--text-2);padding-top:7px;padding-bottom:7px;font-size:12.5px;font-weight:650}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);text-align:center;overflow-wrap:anywhere;flex-direction:column;align-items:center;gap:8px;padding:22px 16px;display:flex}.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.dropzone.disabled{opacity:.65}.bar.bar-lg{border-radius:5px;height:10px}.bar-lg .bar-fill{border-radius:5px;transition:width .2s linear}.card-table-foot{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 16px 14px;display:flex}.ip-added{margin:6px 0 0;padding-left:18px}.card-sep{border:0;border-top:1px solid var(--border);margin:16px 0}.form-group-title{margin:4px 0 -4px}input[aria-invalid=true]{border-color:var(--bad)}.fw-table td{vertical-align:top;padding:7px 8px}.fw-table td.fw-n{color:var(--muted);padding-top:14px}.fw-table select{min-width:124px}.fw-table input[type=text]{min-width:130px}.fw-table input.fw-port{min-width:104px}.fw-table .form-error{max-width:240px;margin-top:4px;font-size:12px}.fw-table tr.fw-locked td,.fw-table tbody tr.fw-locked:hover td{background:var(--surface-2);color:var(--text-2);padding-top:11px;padding-bottom:11px}.note-ok{background:var(--ok-soft);color:var(--ok)}.btn-link{color:var(--accent);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.btn-link:hover{color:var(--accent-hover);text-decoration:underline}.install-log{background:var(--surface-2);border:1px solid var(--border);min-height:160px;max-height:50vh;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;margin:0;padding:10px 12px;font-size:12px;line-height:1.5;overflow:auto}.install-reason{font-family:var(--mono);overflow-wrap:anywhere;margin:4px 0;font-size:12.5px}.page-intro{max-width:860px;margin-bottom:16px}.save-row{margin-bottom:16px}.apply-groups{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px 24px;display:grid}.plain-list{margin:0 0 12px;padding-left:18px}.warn-text{color:var(--warn)}.ok-text{color:var(--ok);font-weight:600}tr.row-off td,tbody tr.row-off:hover td{background:var(--surface-2);color:var(--muted)}tr.row-off .cell-main{color:var(--text-2)}.pager{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.pager .muted{white-space:nowrap}.brand-logo{object-fit:contain;flex:none;max-width:120px;height:28px;display:block}.brand-foot{flex-direction:column;gap:4px;margin-top:10px;display:flex}.brand-foot a{font-weight:500}.brand-footer-text{white-space:pre-line}.login-foot{text-align:center;color:var(--muted);align-items:center;margin-top:14px;font-size:12px}.badges{flex-wrap:wrap;align-items:center;gap:4px 6px;display:inline-flex}.vps-head-actions{gap:6px;margin-left:auto;display:flex}.qr-row{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.qr{box-sizing:border-box;background:#fff;border-radius:6px;flex:none;width:200px;height:200px;padding:4px}.qr-empty{background:var(--surface-2)}.rdns{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rdns input{width:220px;max-width:100%;padding:4px 8px;font-size:13px}textarea.script{white-space:pre;overflow-wrap:normal;min-height:280px;font-size:12.5px;line-height:1.45;overflow-x:auto}.chips{flex-wrap:wrap;align-items:center;gap:4px 6px;display:inline-flex}.chip{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border:0;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-family:inherit;font-size:12px;font-weight:550;display:inline-flex}button.chip{cursor:pointer}button.chip:hover{text-decoration:underline}.chip-x{color:inherit;font:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;padding:0 0 0 2px;line-height:1}.chip-x:hover{opacity:1}.tag-input{border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.tag-input input{background:0 0;border:0;flex:120px;min-width:120px;min-height:0;padding:2px 4px}.tag-input input:focus{box-shadow:none;outline:none}
