*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#050505;--bg-2:#0b0b0c;--fg:#f0f0f0;--muted:#888;--dim:#5c5c5c;--ink:255,255,255;--accent-rgb:220,38,38;--red:rgb(var(--accent-rgb));--red-light:var(--accent-light,#ef4444);--red-dim:var(--accent-text-dark,#f87171);--on-accent:var(--accent-ink,#fff);--danger-rgb:220,38,38;--danger:rgb(var(--danger-rgb));--danger-text:#f87171;--green:#4ade80;--amber:#fbbf24;--amber-text:#e7cf8d;--violet:#c4b5fd;--line2:#a1a1aa;--border:rgba(var(--ink),.06);--border-2:rgba(var(--ink),.1);--glass:rgba(var(--ink),.02);--glass-2:rgba(var(--ink),.04);--surface:#0c0c0d;--surface-2:#111113;--topbar-bg:#050505b8;--overlay:#000000a6;--shadow:0 10px 40px #00000080;--card-shadow:none;--halo:rgba(var(--accent-rgb),.09);--noise:.015;--radius:16px;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"Sora", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f5f5f6;--bg-2:#fff;--fg:#121214;--muted:#5d6169;--dim:#8b9099;--ink:0,0,0;--red-dim:var(--accent-text-light,#c81e1e);--danger-text:#c81e1e;--green:#15803d;--amber:#b45309;--amber-text:#92400e;--violet:#6d28d9;--line2:#71717a;--border:#00000014;--border-2:#00000021;--glass:#fff;--glass-2:#00000009;--surface:#fff;--surface-2:#fff;--topbar-bg:#ffffffd1;--overlay:#14141a59;--shadow:0 12px 40px #00000024;--card-shadow:0 1px 2px #0000000a, 0 6px 20px #0000000a;--halo:rgba(var(--accent-rgb),.07);--noise:.02;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{font-family:var(--sans);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5}body:before{content:"";z-index:9999;pointer-events:none;opacity:var(--noise);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");background-size:256px 256px;position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side, var(--halo), transparent);width:90vw;height:60vh;position:fixed;top:-30vh;left:50%;transform:translate(-50%)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.35);border-radius:99px}*{scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.35) transparent}a{color:var(--red-dim);text-decoration:none}a:hover{color:var(--red-light)}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.dim{color:var(--dim)}.small{font-size:.85rem}[hidden]{display:none!important}:focus-visible{outline-offset:2px;border-radius:6px;outline:2px solid #ef4444b3}.topbar{z-index:50;background:var(--topbar-bg);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border);align-items:center;gap:1.5rem;padding:.9rem clamp(1rem,4vw,2.5rem);display:flex;position:sticky;top:0}.brand{color:var(--fg);letter-spacing:-.01em;align-items:center;gap:.6rem;font-weight:700;display:flex}.brand:hover{color:var(--fg)}.logo{background:linear-gradient(135deg, var(--red-light), var(--red));width:30px;height:30px;color:var(--on-accent);box-shadow:0 0 22px rgba(var(--accent-rgb),.35);border-radius:9px;place-items:center;font-size:.95rem;font-weight:800;display:grid}.brand small{color:var(--muted);margin-left:.2rem;font-size:.8rem;font-weight:400}.nav{flex:1;gap:.25rem;display:flex}.nav a{color:var(--muted);border-radius:9999px;padding:.45rem .85rem;font-size:.9rem;transition:all .2s}.nav a:hover{color:var(--fg);background:var(--glass-2)}.nav a.active{color:var(--fg);background:rgba(var(--accent-rgb),.12)}.user-chip{color:var(--muted);align-items:center;gap:.75rem;font-size:.85rem;display:flex}.avatar{background:var(--glass-2);border:1px solid var(--border-2);width:30px;height:30px;color:var(--fg);border-radius:50%;place-items:center;font-size:.8rem;font-weight:600;display:grid}main{max-width:1180px;margin:0 auto;padding:2.2rem clamp(1rem,4vw,2.5rem) 4rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.8rem;display:flex}.page-head p{color:var(--muted);margin-top:.25rem}.eyebrow{font-family:var(--mono);color:var(--red-dim);letter-spacing:.08em;margin-bottom:.4rem;font-size:.75rem}.grid{gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.grid-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-charts .full{grid-column:1/-1}.grid-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}.stack>*+*{margin-top:1rem}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.spacer{flex:1}.btn{font:inherit;cursor:pointer;border:1px solid var(--border-2);background:var(--glass-2);color:var(--fg);white-space:nowrap;border-radius:9999px;justify-content:center;align-items:center;gap:.45rem;padding:.6rem 1.1rem;font-size:.88rem;font-weight:500;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn svg{flex:none;width:16px;height:16px}.btn-primary:hover:not(:disabled){background:var(--red-light);border-color:var(--red-light);box-shadow:0 0 32px rgba(var(--accent-rgb),.4)}.btn-danger{color:var(--danger-text);border-color:rgba(var(--danger-rgb),.25);background:rgba(var(--danger-rgb),.06)}.btn-danger:hover:not(:disabled){background:rgba(var(--danger-rgb),.14);border-color:rgba(var(--danger-rgb),.45)}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--fg);background:var(--glass-2);border-color:#0000}.btn-sm{padding:.4rem .8rem;font-size:.8rem}.btn-block{width:100%}.btn.loading{pointer-events:none;position:relative;color:#0000!important}.btn.loading:after{content:"";border:2px solid rgba(var(--ink),.25);border-top-color:var(--fg);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;position:absolute}.field{margin-bottom:1rem;display:block}.field>span{color:var(--muted);margin-bottom:.4rem;font-size:.8rem;display:block}.input,select.input{width:100%;font:inherit;color:var(--fg);background:rgba(var(--ink),.03);border:1px solid var(--border-2);border-radius:12px;padding:.7rem .9rem;font-size:.92rem;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:rgba(var(--accent-rgb),.6);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15);outline:none}.input::placeholder{color:var(--dim)}select.input option{background:var(--surface);color:var(--fg)}.input-wrap{position:relative}.input-wrap .input{padding-right:5.5rem}.input-wrap .addon{gap:.15rem;display:flex;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.hint{color:var(--dim);margin-top:.35rem;font-size:.78rem}.check{color:var(--muted);cursor:pointer;align-items:center;gap:.5rem;font-size:.88rem;display:flex}.form-error{color:var(--danger-text);background:rgba(var(--danger-rgb),.08);border:1px solid rgba(var(--danger-rgb),.2);border-radius:10px;margin-bottom:1rem;padding:.6rem .8rem;font-size:.85rem}.status{border:1px solid var(--border-2);background:var(--glass-2);border-radius:9999px;align-items:center;gap:.45rem;padding:.25rem .65rem;font-size:.78rem;font-weight:500;display:inline-flex}.status:before{content:"";background:var(--dim);border-radius:50%;width:7px;height:7px}.status.running{color:var(--green);background:#4ade800f;border-color:#4ade8033}.status.running:before{background:var(--green);box-shadow:0 0 10px var(--green);animation:2s ease-in-out infinite pulse}.status.stopped{color:var(--muted)}.status.paused,.status.locked{color:var(--amber);border-color:#fbbf2433}.status.paused:before,.status.locked:before{background:var(--amber)}.status.missing{color:var(--danger-text);border-color:rgba(var(--danger-rgb),.25)}.status.missing:before{background:var(--danger)}.badge{font-family:var(--mono);color:var(--muted);background:var(--glass-2);border:1px solid var(--border);border-radius:6px;padding:.15rem .5rem;font-size:.72rem}.badge.red{color:var(--danger-text);background:rgba(var(--danger-rgb),.08);border-color:rgba(var(--danger-rgb),.2)}.vm-card{cursor:pointer;flex-direction:column;gap:1.1rem;padding:1.3rem;transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .25s,background .25s;display:flex}.vm-card:hover{border-color:rgba(var(--accent-rgb),.28);background:rgba(var(--accent-rgb),.025);transform:translateY(-3px)}.vm-card .top{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.vm-card .name{letter-spacing:-.01em;word-break:break-word;font-size:1.05rem;font-weight:600}.vm-card .meta{font-family:var(--mono);color:var(--dim);margin-top:.15rem;font-size:.75rem}.vm-card .actions{border-top:1px solid var(--border);gap:.4rem;padding-top:1rem;display:flex}.meter{gap:.35rem;display:grid}.meter .lbl{color:var(--muted);justify-content:space-between;font-size:.78rem;display:flex}.meter .lbl b{font-family:var(--mono);color:var(--fg);font-weight:500}.bar{background:rgba(var(--ink),.06);border-radius:99px;height:5px;overflow:hidden}.bar>i{border-radius:inherit;background:linear-gradient(90deg, var(--red), var(--red-light));height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);display:block}.vm-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.2rem;margin-bottom:1.6rem;display:flex}.vm-head h1{letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:.8rem;font-size:clamp(1.5rem,3vw,2.1rem);font-weight:700;display:flex}.back{color:var(--muted);align-items:center;gap:.35rem;margin-bottom:1rem;font-size:.85rem;display:inline-flex}.back:hover{color:var(--fg)}.back svg{width:16px;height:16px}.power{flex-wrap:wrap;gap:.4rem;display:flex}.tabs{box-shadow:inset 0 -1px 0 var(--border);scrollbar-width:none;-ms-overflow-style:none;gap:.25rem;margin-bottom:1.5rem;display:flex;overflow:auto hidden}.tabs::-webkit-scrollbar{display:none}.tabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:none;padding:.7rem 1rem;font-size:.9rem;transition:color .2s,box-shadow .2s}.tabs button.active{color:var(--fg);box-shadow:inset 0 -2px 0 var(--red)}.stat{padding:1.1rem 1.2rem}.stat .k{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.stat .v{font-family:var(--mono);margin-top:.3rem;font-size:1.35rem;font-weight:500}.stat .s{color:var(--dim);font-size:.78rem;font-family:var(--mono);margin-top:.15rem}.kv{grid-template-columns:auto 1fr;gap:.6rem 1.5rem;font-size:.9rem;display:grid}.kv dt{color:var(--muted)}.kv dd{font-family:var(--mono);text-align:right;word-break:break-all;font-size:.85rem}.ip-list{gap:.5rem;display:grid}.ip{background:rgba(var(--ink),.025);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .8rem;display:flex}.ip code{font-family:var(--mono);word-break:break-all;font-size:.88rem}.chart{width:100%;height:150px;display:block}.chart .grid-line{stroke:rgba(var(--ink),.05)}.chart .area{fill:url(#redfade)}.chart .line{fill:none;stroke:var(--red-light);stroke-width:1.6px;vector-effect:non-scaling-stroke}.chart .line2{fill:none;stroke:var(--line2);stroke-width:1.4px;vector-effect:non-scaling-stroke;stroke-dasharray:3 3}.chart-head{justify-content:space-between;align-items:baseline;margin-bottom:.6rem;display:flex}.chart-head h3{margin:0}.legend{color:var(--muted);gap:.9rem;font-size:.75rem;display:flex}.legend i{vertical-align:middle;background:var(--red-light);width:10px;height:2px;margin-right:.35rem;display:inline-block}.legend i.alt{background:var(--line2)}.seg{background:var(--glass-2);border:1px solid var(--border);border-radius:9999px;padding:3px;display:inline-flex}.seg button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9999px;padding:.3rem .8rem;font-size:.78rem}.seg button.active{background:rgba(var(--accent-rgb),.18);color:var(--fg)}.console-cta{text-align:center;padding:3rem 1.5rem}.console-cta .ico{background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.2);width:56px;height:56px;color:var(--red-light);border-radius:16px;place-items:center;margin:0 auto 1rem;display:grid}.console-cta .ico svg{width:26px;height:26px}.console-cta h2{margin-bottom:.4rem;font-size:1.2rem}.console-cta p{color:var(--muted);max-width:440px;margin:0 auto 1.5rem;font-size:.9rem}.notice{color:var(--amber-text);background:#fbbf240d;border:1px solid #fbbf242e;border-radius:12px;gap:.75rem;padding:.9rem 1rem;font-size:.86rem;display:flex}.notice.info{background:rgba(var(--ink),.025);border-color:var(--border-2);color:var(--muted)}.notice svg{flex:none;width:18px;height:18px;margin-top:1px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th{text-align:left;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:.75rem 1rem;font-size:.72rem;font-weight:500}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.8rem 1rem}tr:last-child td{border-bottom:none}tbody tr{transition:background .15s}td.mono,td .mono{font-size:.82rem}.ok-dot{background:var(--green);border-radius:50%;width:7px;height:7px;display:inline-block}.ok-dot.bad{background:var(--danger)}.auth{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-box{width:100%;max-width:400px;padding:2.2rem;position:relative}.auth-box:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg, rgba(var(--accent-rgb),.4), transparent 55%, rgba(var(--accent-rgb),.18));-webkit-mask-composite:xor;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.auth-box .brand{justify-content:center;margin-bottom:1.8rem;font-size:1.15rem}.auth-box h1{text-align:center;letter-spacing:-.01em;margin-bottom:.3rem;font-size:1.35rem}.auth-box>p{text-align:center;color:var(--muted);margin-bottom:1.8rem;font-size:.88rem}.auth-foot{text-align:center;color:var(--dim);justify-content:center;align-items:center;gap:.4rem;margin-top:1.5rem;font-size:.75rem;display:flex}.auth-foot svg{width:13px;height:13px}.modal-back{z-index:200;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:1rem;animation:.2s fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border-2);width:100%;max-width:460px;max-height:calc(100vh - 2rem);box-shadow:var(--shadow);border-radius:18px;padding:1.6rem;animation:.25s cubic-bezier(.22,1,.36,1) pop;overflow:auto}.modal.wide{max-width:640px}.modal h2{margin-bottom:.4rem;font-size:1.15rem}.modal>p{color:var(--muted);margin-bottom:1.3rem;font-size:.9rem}.modal .foot{justify-content:flex-end;gap:.5rem;margin-top:1.4rem;display:flex}.toasts{z-index:300;gap:.5rem;max-width:min(380px,100vw - 2.4rem);display:grid;position:fixed;bottom:1.2rem;right:1.2rem}.toast{background:var(--surface-2);border:1px solid var(--border-2);box-shadow:var(--shadow);border-radius:12px;align-items:flex-start;gap:.6rem;padding:.8rem 1rem;font-size:.88rem;animation:.3s cubic-bezier(.22,1,.36,1) pop;display:flex}.toast:before{content:"";background:var(--green);border-radius:50%;flex:none;width:8px;height:8px;margin-top:.4rem}.toast.error:before{background:var(--danger)}.empty{text-align:center;color:var(--muted);padding:4rem 1.5rem}.empty h2{color:var(--fg);margin-bottom:.4rem;font-size:1.15rem}.skeleton{background:linear-gradient(90deg, rgba(var(--ink),.03), rgba(var(--ink),.07), rgba(var(--ink),.03));border-radius:var(--radius);background-size:200% 100%;min-height:180px;animation:1.4s infinite shimmer}.spinner{border:2px solid rgba(var(--ink),.1);border-top-color:var(--red-light);border-radius:50%;width:22px;height:22px;margin:3rem auto;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes fade{0%{opacity:0}}@keyframes fadeout{to{opacity:0;transform:translateY(6px)}}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes shimmer{to{background-position:-200% 0}}.fade-in{animation:.45s cubic-bezier(.22,1,.36,1) both pop}@media (max-width:720px){.topbar{flex-wrap:wrap;gap:.8rem}.nav{flex-basis:100%;order:3;overflow-x:auto}.user-chip{margin-left:auto}.grid-charts{grid-template-columns:1fr}.brand small{display:none}.vm-head .power{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.mb{margin-bottom:1rem}.mb-lg{margin-bottom:1.6rem}.mt{margin-top:.8rem}.ml{margin-left:.4rem}.right{text-align:right}.nowrap{white-space:nowrap}.fg{color:var(--fg)}.ok-text{color:var(--green)}.align-start{align-items:start}.list{gap:.3rem;padding-left:1.1rem;display:grid}.meters{gap:.8rem}.vm-card .uptime{align-self:center}.grid.tight{gap:0 1rem}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.7rem;font-size:.72rem;font-weight:600}.assign{align-items:flex-end}.assign .field{margin:0}.grow-2{flex:2;min-width:200px}.grow-1{flex:1;min-width:140px}.console-cta .btn svg{width:16px;height:16px}.auth-foot svg,.notice svg{flex:none}.exp-badge{border:1px solid var(--border-2);color:var(--muted);background:var(--glass-2);white-space:nowrap;border-radius:9999px;align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.75rem;display:inline-flex}.exp-badge svg{width:12px;height:12px}.exp-badge.soon{color:var(--amber);background:#fbbf240f;border-color:#fbbf2440}.exp-badge.suspended{color:var(--danger-text);border-color:rgba(var(--danger-rgb),.3);background:rgba(var(--danger-rgb),.08);font-weight:500}.exp-badge.none{color:var(--dim)}.vm-card .billing{flex-wrap:wrap;gap:.4rem;display:flex}.vm-card.is-suspended{border-color:rgba(var(--danger-rgb),.22)}.vm-card.is-suspended .meters{opacity:.45}.vm-card .renew{color:var(--red-dim);align-self:center;font-size:.8rem}.service-banner{border-radius:14px;gap:.9rem;margin-bottom:1.4rem;padding:1rem 1.2rem;font-size:.9rem;display:flex}.service-banner svg{flex:none;width:20px;height:20px;margin-top:2px}.service-banner>div>b{margin-bottom:.2rem;display:block}.service-banner p{color:var(--muted)}.service-banner p+p{margin-top:.35rem}.service-banner.suspended{background:rgba(var(--danger-rgb),.07);border:1px solid rgba(var(--danger-rgb),.28)}.service-banner.suspended>svg,.service-banner.suspended>div>b{color:var(--danger-text)}.service-banner.soon{background:#fbbf240d;border:1px solid #fbbf2438}.service-banner.soon>svg,.service-banner.soon>div>b{color:var(--amber)}.support b{color:var(--fg)}.days{font-family:var(--mono);font-size:.82rem}.days.soon{color:var(--amber)}.days.past{color:var(--red-dim)}.quick{flex-wrap:wrap;gap:.4rem;margin:-.3rem 0 1rem;display:flex}.billing-box{background:rgba(var(--ink),.025);border:1px solid var(--border);border-radius:12px;margin-bottom:1.2rem;padding:1rem}.billing-box .row{justify-content:space-between}.tabs button.locked{opacity:.45}.err-text{color:var(--danger-text)}.row.end{flex-wrap:nowrap;justify-content:flex-end}.perm-list{gap:.5rem;display:grid}.perm{cursor:pointer;background:rgba(var(--ink),.025);border:1px solid var(--border);border-radius:10px;align-items:flex-start;gap:.75rem;padding:.7rem .85rem;transition:border-color .2s;display:flex}.perm:hover{border-color:var(--border-2)}.perm.fixed{cursor:default;opacity:.7}.perm input{accent-color:var(--red);margin-top:.2rem}.perm b{font-size:.88rem;font-weight:500;display:block}.perm span{color:var(--muted);font-size:.78rem}.perm:has(input:checked):not(.fixed){border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.05)}tr.sub td:first-child{padding-left:2.2rem;position:relative}tr.sub td:first-child:before{content:"↳";color:var(--dim);position:absolute;top:.85rem;left:1rem}.badge.sub{color:var(--violet);background:#a78bfa14;border-color:#a78bfa38}.badge.reseller{color:var(--amber-text);background:#f59e0b14;border-color:#f59e0b40}.perm-chips{flex-wrap:wrap;gap:.3rem;display:flex}.shared-note{color:var(--muted);align-items:center;gap:.4rem;font-size:.8rem;display:inline-flex}.btn-primary.loading:after{border-color:#fff #ffffff4d #ffffff4d}.theme-toggle{background:var(--glass-2);border:1px solid var(--border);border-radius:9999px;gap:2px;padding:3px;display:inline-flex}.theme-toggle button{width:28px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9999px;place-items:center;transition:all .2s;display:grid}.theme-toggle button:hover{color:var(--fg)}.theme-toggle svg{width:14px;height:14px}.lang-toggle button{letter-spacing:.02em;width:30px;font-family:inherit;font-size:.68rem;font-weight:600}.auth-theme{position:fixed;top:1rem;right:1rem}.auth-tools{align-items:center;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}:root[data-theme=light] .vm-card:hover{box-shadow:0 8px 28px rgba(var(--accent-rgb),.08);background:#fff}:root[data-theme=light] .status.running:before{box-shadow:none}:root[data-theme=light] .btn-primary{box-shadow:0 4px 14px rgba(var(--accent-rgb),.25)}:root[data-theme=light] .logo{box-shadow:0 4px 14px rgba(var(--accent-rgb),.3)}:root[data-theme=light] .modal-back{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.card-ip{background:rgba(var(--ink),.025);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.6rem;padding:.45rem .45rem .45rem .8rem;display:flex}.card-ip .k{letter-spacing:.1em;color:var(--muted);font-size:.7rem}.card-ip code{font-family:var(--mono);word-break:break-all;flex:1;font-size:.88rem}.card-ip.muted{padding-block:.6rem}.grid-5{grid-template-columns:repeat(auto-fit,minmax(min(100%,165px),1fr))}.stat.stat-warn{border-color:#fbbf244d}.stat.stat-warn .s{color:var(--amber)}.stat.stat-alert{border-color:rgba(var(--danger-rgb),.3)}.stat .v.err-text{font-family:var(--sans);font-size:1.15rem;font-weight:600}.conn{margin-bottom:1rem}.conn-head{align-items:center;gap:.9rem;margin-bottom:1.1rem;display:flex}.conn-head h3{margin:0 0 .2rem}.conn-head .ico{background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.2);width:40px;height:40px;color:var(--red-light);border-radius:12px;flex:none;place-items:center;display:grid}.conn-head .ico svg{width:20px;height:20px}.conn-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.5rem;margin-bottom:1rem;display:grid}.conn-field{background:rgba(var(--ink),.025);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.6rem;min-height:42px;padding:.45rem .45rem .45rem .8rem;display:flex}.conn-field .k{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.7rem}.conn-field code{font-family:var(--mono);word-break:break-all;flex:1;font-size:.86rem}.steps{color:var(--muted);gap:.45rem;margin-bottom:.8rem;padding-left:1.2rem;font-size:.86rem;display:grid}.steps b{color:var(--fg);font-weight:500}.steps code,.steps kbd{font-family:var(--mono);background:rgba(var(--ink),.05);border:1px solid var(--border);color:var(--fg);border-radius:5px;padding:.05rem .35rem;font-size:.8rem}.announcements{gap:.6rem;margin-bottom:1.4rem;display:grid}.announcement{background:rgba(var(--ink),.03);border:1px solid var(--border-2);border-radius:12px;align-items:flex-start;gap:.8rem;padding:.85rem 1rem;font-size:.88rem;display:flex}.announcement>svg{width:18px;height:18px;color:var(--muted);flex:none;margin-top:2px}.announcement b{display:block}.announcement p{color:var(--muted);white-space:pre-line;margin-top:.15rem}.announcement.warning{background:#fbbf240f;border-color:#fbbf2440}.announcement.warning>svg,.announcement.warning b{color:var(--amber)}.announcement.critical{background:rgba(var(--danger-rgb),.08);border-color:rgba(var(--danger-rgb),.32)}.announcement.critical>svg,.announcement.critical b{color:var(--danger-text)}.grow{flex:1;min-width:0}.badge.warn{color:var(--amber);background:#fbbf2414;border-color:#fbbf2440}.clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:520px;display:-webkit-box;overflow:hidden}.nav-badge{background:var(--red);min-width:18px;height:18px;color:var(--on-accent);font-size:.7rem;font-weight:600;font-family:var(--mono);border-radius:9999px;place-items:center;margin-left:.4rem;padding:0 5px;display:inline-grid}tr.clickable .row-link{color:var(--fg);align-items:center;gap:.45rem;display:inline-flex}tr.clickable .row-link:hover{color:var(--red-dim)}tr.unread .row-link{font-weight:600}.dot-new{background:var(--red);width:8px;height:8px;box-shadow:0 0 8px rgba(var(--accent-rgb),.6);border-radius:50%;flex:none}.narrow{max-width:760px}.ticket-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.4rem;display:flex}.ticket-head h1{letter-spacing:-.02em;word-break:break-word;margin-bottom:.5rem;font-size:clamp(1.3rem,2.6vw,1.7rem)}.messages{gap:.8rem;margin-bottom:1.2rem;display:grid}.msg{background:var(--glass);border:1px solid var(--border-2);max-width:min(760px,92%);box-shadow:var(--card-shadow);border-radius:14px;padding:.85rem 1rem}.msg.mine{background:rgba(var(--accent-rgb),.06);border-color:rgba(var(--accent-rgb),.2);justify-self:end}.msg.staff:not(.mine){border-left:3px solid var(--red)}.msg-meta{color:var(--muted);margin-bottom:.4rem;font-size:.75rem}.msg-meta b{color:var(--fg);font-weight:500}.msg-body{white-space:pre-wrap;word-break:break-word;font-size:.9rem;line-height:1.55}.reply textarea{resize:vertical;min-height:96px}.code-input{text-align:center;letter-spacing:.35em;font-size:1.4rem}.auth-links{flex-direction:column;align-items:center;gap:.5rem;margin-top:1.2rem;display:flex}.auth-or{color:var(--dim,var(--muted));align-items:center;gap:.7rem;margin:.9rem 0;font-size:.8rem;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--border);flex:1;height:1px}.btn-block svg{width:16px;height:16px}button.link,a.link{color:var(--red-dim);font:inherit;cursor:pointer;background:0 0;border:none;font-size:.82rem}button.link:hover,a.link:hover{text-decoration:underline}.qr-box{background:#fff;border-radius:12px;padding:10px;display:inline-block}.qr-box img{display:block}.recovery-grid{grid-template-columns:repeat(2,1fr);gap:.4rem;display:grid}.recovery-grid code{font-family:var(--mono);text-align:center;background:rgba(var(--ink),.04);border:1px solid var(--border);border-radius:8px;padding:.45rem;font-size:.95rem}.twofa-state{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.dropzone{position:relative}.dropzone.over textarea{border-color:var(--red);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}.drop-hint{pointer-events:none;background:rgba(var(--accent-rgb),.08);border:2px dashed rgba(var(--accent-rgb),.5);color:var(--red-dim);border-radius:12px;place-items:center;font-weight:500;display:grid;position:absolute;inset:0}.att-pending,.att-list{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.att-chip{background:rgba(var(--ink),.03);border:1px solid var(--border-2);max-width:280px;color:var(--fg);border-radius:10px;align-items:center;gap:.6rem;padding:.35rem .4rem .35rem .35rem;text-decoration:none;display:flex}a.att-chip:hover{border-color:rgba(var(--accent-rgb),.4);color:var(--fg)}.att-chip img{object-fit:cover;border-radius:6px;flex:none;width:38px;height:38px}.att-ico{background:rgba(var(--ink),.05);width:38px;height:38px;color:var(--muted);border-radius:6px;flex:none;place-items:center;display:grid}.att-ico svg{width:18px;height:18px}.att-meta{flex-direction:column;min-width:0;display:flex}.att-name{white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.att-sub{color:var(--muted);font-size:.72rem}.att-chip.uploading .att-sub{color:var(--amber)}.att-chip.error{border-color:rgba(var(--accent-rgb),.4)}.att-chip.error .att-sub{color:var(--red-dim)}.att-x{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.2rem .4rem}.att-x:hover{color:var(--fg);background:rgba(var(--ink),.06)}.att-images{flex-wrap:wrap;gap:.5rem;width:100%;display:flex}.att-thumb{border:1px solid var(--border-2);cursor:zoom-in;background:rgba(var(--ink),.04);border-radius:10px;padding:0;overflow:hidden}.att-thumb img{object-fit:contain;max-width:260px;max-height:180px;display:block}.att-thumb:hover{border-color:rgba(var(--accent-rgb),.4)}.lightbox img{border-radius:8px;max-width:100%;max-height:72vh;margin:0 auto;display:block}.msg .att-list{margin-top:.5rem}.suspended-modal{text-align:center;padding:.4rem .2rem 0}.suspended-modal .sm-ico{background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.3);width:60px;height:60px;color:var(--red-light);box-shadow:0 0 32px rgba(var(--accent-rgb),.2);border-radius:18px;place-items:center;margin:0 auto 1rem;display:grid}.suspended-modal .sm-ico svg{width:26px;height:26px}.suspended-modal h2{margin-bottom:.2rem;font-size:1.35rem}.suspended-modal .sm-vm{margin-bottom:1rem;font-weight:500}.suspended-modal p{color:var(--muted);font-size:.9rem;line-height:1.6}.suspended-modal .sm-actions{gap:.5rem;margin:1.4rem 0 .4rem;display:grid}.suspended-modal .sm-alt{margin-top:.8rem}.imp-bar{top:env(safe-area-inset-top,0px);z-index:60;color:#fff;background:#7c3aed;flex-wrap:wrap;justify-content:center;align-items:center;gap:.8rem;padding:.55rem 1rem;font-size:.86rem;display:flex;position:sticky}.imp-bar svg{width:16px;height:16px}.imp-bar .btn{color:#fff;background:#ffffff29;border-color:#ffffff59}.imp-bar .btn:hover{background:#ffffff47}.imp-bar+.topbar{top:2.6rem}.notif,.notif-btn{position:relative}.notif-btn svg{width:17px;height:17px}.notif-count{background:var(--red);min-width:16px;height:16px;color:var(--on-accent);font-size:.65rem;font-weight:700;font-family:var(--mono);border-radius:9999px;place-items:center;padding:0 4px;display:grid;position:absolute;top:0;right:0}.notif-panel{z-index:80;background:var(--surface);border:1px solid var(--border-2);width:min(380px,100vw - 2rem);box-shadow:var(--shadow);border-radius:14px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.8rem 1rem;font-size:.88rem;display:flex}.notif-list{max-height:60vh;overflow:auto}.notif-item{text-align:left;border:none;border-bottom:1px solid var(--border);width:100%;color:var(--fg);font:inherit;cursor:pointer;background:0 0;gap:.7rem;padding:.75rem 1rem;display:flex}.notif-item .dot{background:0 0;border-radius:50%;flex:none;width:8px;height:8px;margin-top:.4rem}.notif-item.unread .dot{background:var(--amber)}.notif-item.unread.critical .dot{background:var(--danger)}.notif-item .t{font-size:.86rem;font-weight:500}.notif-item:not(.unread) .t{color:var(--muted);font-weight:400}.notif-item .b{color:var(--muted);margin-top:.15rem;font-size:.78rem}.notif-item .d{color:var(--dim);margin-top:.25rem;font-size:.72rem}.notif-empty{padding:1.2rem 1rem}.gsearch{background:var(--glass-2);border:1px solid var(--border);border-radius:9999px;align-items:center;gap:.5rem;width:min(340px,100%);padding:0 .7rem;display:flex;position:relative}.gsearch:focus-within{border-color:rgba(var(--accent-rgb),.5)}.gsearch>svg{width:15px;height:15px;color:var(--muted);flex:none}.gsearch-input{min-width:0;color:var(--fg);font:inherit;background:0 0;border:none;outline:none;flex:1;padding:.5rem 0;font-size:.85rem}.gsearch-input::placeholder{color:var(--dim)}.gsearch-kbd{font-family:var(--mono);color:var(--dim);border:1px solid var(--border-2);white-space:nowrap;border-radius:5px;padding:.05rem .35rem;font-size:.65rem}.gsearch-panel{z-index:80;background:var(--surface);border:1px solid var(--border-2);min-width:320px;max-height:65vh;box-shadow:var(--shadow);border-radius:14px;padding:.4rem;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto}.gsearch-group{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:.55rem .6rem .3rem;font-size:.68rem}.gsearch-hit{text-align:left;width:100%;color:var(--fg);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9px;flex-direction:column;padding:.5rem .6rem;display:flex}.gsearch-hit .t{font-size:.86rem}.gsearch-hit .s{color:var(--muted);font-size:.75rem;font-family:var(--mono)}@media (max-width:900px){.gsearch-kbd{display:none}}@media (max-width:720px){.gsearch{order:4;width:100%}}.alert-rules{background:rgba(var(--ink),.025);border:1px solid var(--border);border-radius:12px;gap:.7rem;padding:.9rem;display:grid}.alert-rules.off{opacity:.5}.alert-rule{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.88rem;display:flex}.input.num{text-align:center;width:5.2rem;padding:.45rem .6rem}.inline-ico svg{vertical-align:-2px;width:14px;height:14px}.modal-title-row{flex-wrap:nowrap;align-items:flex-start;margin-bottom:1rem}.modal-title-row h2{margin-bottom:.2rem}.btn svg{flex:none}.tpl-card{flex-direction:column;gap:.7rem;display:flex}.tpl-body{white-space:pre-wrap;color:var(--muted);max-height:9em;font-size:.84rem;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,#0000);mask-image:linear-gradient(#000 70%,#0000)}.tpl-vars{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.tpl-var{cursor:pointer}.tpl-var:hover{color:var(--red-dim);border-color:rgba(var(--accent-rgb),.35)}.tpl-picker select{max-width:320px;padding:.45rem .8rem;font-size:.85rem}.rename-btn{opacity:.55;padding:.3rem .45rem}.rename-btn:hover{opacity:1}.rename-btn svg{width:16px;height:16px}.uptime-pct{font-family:var(--mono);letter-spacing:-.03em;font-size:2.6rem;font-weight:600;line-height:1.1}.uptime-pct span{color:var(--muted);margin-left:.15rem;font-size:1.3rem}.uptime-pct.good{color:var(--green)}.uptime-pct.warn{color:var(--amber)}.uptime-pct.bad{color:var(--red-dim)}.uptime-bar{gap:3px;height:34px;display:flex}.uptime-bar span{background:var(--green);opacity:.85;border-radius:3px;flex:1}.uptime-bar span.partial{background:var(--amber)}.uptime-bar span.down{background:var(--danger)}.uptime-bar span:hover{opacity:1;transform:scaleY(1.08)}.uptime-legend{margin-top:.35rem}.timeline{gap:.9rem;display:grid}.tl-item{gap:.75rem;display:flex}.tl-dot{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px;margin-top:.35rem}.tl-item.renewal .tl-dot,.tl-item.reactivated .tl-dot{background:var(--green)}.tl-item.suspended .tl-dot{background:var(--danger)}.tl-item.expiry_change .tl-dot{background:var(--amber)}.tl-item .t{font-size:.9rem;font-weight:500}.traffic-stats .k{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.72rem}.traffic-stats .v{font-family:var(--mono);margin-top:.2rem;font-size:1.2rem}.traffic-stats .s{font-size:.75rem;font-family:var(--mono)}.traffic-stats .s.up{color:var(--amber)}.traffic-stats .s.down{color:var(--green)}.tbars{align-items:flex-end;gap:4px;height:170px;padding-top:.5rem;display:flex}.tbar{flex-direction:column;flex:1;align-items:center;gap:.3rem;min-width:0;height:100%;display:flex}.tbar .tstack{flex-direction:column;flex:1;justify-content:flex-end;width:100%;max-width:38px;display:flex}.tbar .tstack i{width:100%;display:block}.tbar .tstack i.rx{background:var(--red-light);border-radius:0 0 3px 3px}.tbar .tstack i.tx{background:var(--line2);opacity:.8;border-radius:3px 3px 0 0}.tbar span{color:var(--dim);font-size:.65rem;font-family:var(--mono);white-space:nowrap}.tbar:hover .stack i{filter:brightness(1.2)}@media (max-width:720px){.tbar span{font-size:0}}.daypick{flex-wrap:wrap;gap:.35rem;margin-top:.8rem;display:flex}.daypick button{border:1px solid var(--border-2);background:rgba(var(--ink),.03);width:38px;height:38px;color:var(--muted);font:inherit;cursor:pointer;border-radius:10px;font-weight:600}.daypick button.on{background:rgba(var(--accent-rgb),.15);border-color:rgba(var(--accent-rgb),.45);color:var(--red-dim)}.sched-action{width:auto;min-width:140px}.sched-time{width:120px}.sched.paused{opacity:.6}.sched-form{border-top:1px solid var(--border);padding-top:1rem}.os-icon{background:color-mix(in srgb, currentColor 12%, transparent);border:1px solid color-mix(in srgb, currentColor 28%, transparent);border-radius:10px;flex:none;place-items:center;padding:6px;display:grid}.os-icon svg{width:100%;height:100%}a.avatar{text-decoration:none;transition:border-color .2s,box-shadow .2s,color .2s}a.avatar:hover,a.avatar.active{color:var(--fg);border-color:rgba(var(--accent-rgb),.55);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}.col-stack{grid-template-columns:minmax(0,1fr);align-content:start;gap:1rem;display:grid}.fs-list{gap:.9rem}.fs-item.warn .bar>i{background:linear-gradient(90deg, #d97706, var(--amber))}.fs-item.full .bar>i{background:linear-gradient(90deg, #b91c1c, var(--danger))}.fs-item.full .lbl b{color:var(--danger-text)}.upg{gap:.5rem;margin-bottom:1rem;display:grid}.upg-row{background:rgba(var(--ink),.025);border:1px solid var(--border);border-radius:10px;grid-template-columns:minmax(130px,1fr) auto auto;align-items:center;gap:.6rem;padding:.65rem .8rem;display:grid}.upg-val{align-items:center;gap:.4rem;min-width:8.5rem;display:inline-flex}@media (max-width:520px){.upg-row{grid-template-columns:1fr}}.upg-row.on{border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.05)}.stat-link{color:inherit;text-decoration:none;transition:border-color .2s,transform .2s}.stat-link:hover{color:inherit;border-color:rgba(var(--accent-rgb),.35);transform:translateY(-2px)}.stat .v.warn{color:var(--amber)}.stat .v.bad{color:var(--red-dim)}.nodes{gap:1.2rem}.node{gap:.6rem;display:grid}.node+.node{border-top:1px solid var(--border);padding-top:1.2rem}.dash-list{display:grid}.dash-item{border-bottom:1px solid var(--border);color:var(--fg);align-items:center;gap:.7rem;padding:.6rem .2rem;text-decoration:none;display:flex}.dash-item:last-child{border-bottom:none}.dash-item:hover{color:var(--fg);background:rgba(var(--ink),.02)}.dash-item .grow{flex-direction:column;min-width:0;display:flex}.dash-item b{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:500;overflow:hidden}.prio{border:1px solid var(--border-2);color:var(--muted);white-space:nowrap;border-radius:9999px;padding:.15rem .5rem;font-size:.7rem}.prio.high{color:var(--red-dim);border-color:rgba(var(--accent-rgb),.35)}.warn-text{color:var(--amber)}:root{--viz-in:#ef4444;--viz-out:#3987e5;--st-ok:#22c55e;--st-warn:#f59e0b;--st-bad:#ef4444;--st-off:#52525b;--st-susp:#a855f7}:root[data-theme=light]{--viz-in:#dc2626;--viz-out:#2a78d6;--st-ok:#16a34a;--st-warn:#d97706;--st-bad:#dc2626;--st-off:#a1a1aa;--st-susp:#9333ea}.dash2{grid-template-columns:minmax(0,1fr);gap:1.1rem;display:grid}.dash2 .card{padding:1.25rem 1.35rem}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.card-head h3{margin:0 0 .15rem}.dash-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.dash-hero h2{letter-spacing:-.02em;font-size:clamp(1.3rem,2.4vw,1.65rem)}.dash-date{color:var(--muted);margin-bottom:.15rem;font-size:.8rem}.health{border:1px solid var(--border-2);background:var(--glass-2);border-radius:9999px;align-items:center;gap:.55rem;padding:.5rem .95rem;font-size:.85rem;font-weight:500;display:inline-flex}.health-dot{background:var(--st-ok);width:9px;height:9px;box-shadow:0 0 0 4px color-mix(in srgb, var(--st-ok) 20%, transparent);border-radius:50%}.health.warning .health-dot{background:var(--st-warn);box-shadow:0 0 0 4px color-mix(in srgb, var(--st-warn) 20%, transparent)}.health.critical .health-dot{background:var(--st-bad);box-shadow:0 0 0 4px color-mix(in srgb, var(--st-bad) 22%, transparent);animation:2s infinite pulse}.attn{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:.75rem;display:grid}.attn-card{color:var(--fg);border:1px solid var(--border-2);background:var(--glass);border-radius:14px;align-items:center;gap:.8rem;padding:.85rem 1rem;text-decoration:none;transition:transform .2s,border-color .2s;display:flex}.attn-card:hover{color:var(--fg);transform:translateY(-2px)}.attn-card.critical{border-color:color-mix(in srgb, var(--st-bad) 40%, transparent);background:color-mix(in srgb, var(--st-bad) 7%, var(--glass))}.attn-card.warning{border-color:color-mix(in srgb, var(--st-warn) 40%, transparent);background:color-mix(in srgb, var(--st-warn) 6%, var(--glass))}.attn-ico{border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid}.attn-ico svg{width:18px;height:18px}.attn-card.critical .attn-ico{color:var(--st-bad);background:color-mix(in srgb, var(--st-bad) 14%, transparent)}.attn-card.warning .attn-ico{color:var(--st-warn);background:color-mix(in srgb, var(--st-warn) 14%, transparent)}.attn-body{flex-direction:column;flex:1;min-width:0;display:flex}.attn-body b{font-size:.9rem;font-weight:600}.attn-body span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.attn-cta{color:var(--muted);white-space:nowrap;font-size:.78rem}.attn-card:hover .attn-cta{color:var(--fg)}.kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.75rem;display:grid}.kpi{color:var(--fg);flex-direction:column;min-height:150px;padding:1.1rem 1.2rem 1rem;text-decoration:none;transition:transform .2s,border-color .2s;display:flex}.kpi:hover{color:var(--fg);border-color:rgba(var(--accent-rgb),.3);transform:translateY(-2px)}.kpi-l{color:var(--muted);font-size:.8rem}.kpi-v{letter-spacing:-.03em;margin-top:.35rem;font-size:2.1rem;font-weight:600;line-height:1.15}.kpi-v small{color:var(--muted);margin-left:.1rem;font-size:1.1rem;font-weight:500}.kpi.warn .kpi-v{color:var(--st-warn)}.kpi-s{color:var(--dim);margin-top:.2rem;font-size:.78rem}.kpi-chart{margin-top:auto;padding-top:.6rem}.delta{font-weight:600}.delta.up{color:var(--st-ok)}.kpi-meter{background:color-mix(in srgb, var(--st-ok) 15%, transparent);border-radius:99px;height:6px;overflow:hidden}.kpi-meter i{border-radius:inherit;background:var(--st-ok);height:100%;display:block}.spark{width:100%;height:34px;display:block;overflow:visible}.spark-line{fill:none;stroke:var(--viz-in);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.spark-dot{fill:var(--viz-in);stroke:var(--surface);stroke-width:2px}.dash-row{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);align-items:start;gap:1.1rem;display:grid}.dash-row>.col-stack{gap:1.1rem;min-width:0}.kpis>*,.attn>*{min-width:0}@media (max-width:980px){.dash-row{grid-template-columns:minmax(0,1fr)}}.legend .lk{vertical-align:middle;border-radius:2px;width:14px;height:2px;margin-right:.4rem;display:inline-block}.lk.in{background:var(--viz-in)}.lk.out{background:var(--viz-out)}.tarea{touch-action:pan-y;outline:none;position:relative}.tarea:focus-visible{box-shadow:0 0 0 2px rgba(var(--accent-rgb),.5);border-radius:8px}.tarea svg{width:100%;height:auto;display:block}.tarea .axis{fill:var(--dim);font-size:11px;font-family:var(--mono);font-variant-numeric:tabular-nums}.tarea .grid-line{stroke:var(--border);stroke-width:1px}.ta-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.ta-line.in{stroke:var(--viz-in)}.ta-line.out{stroke:var(--viz-out)}.ta-area.in{fill:var(--viz-in);opacity:.1}.ta-area.out{fill:var(--viz-out);opacity:.1}.ta-dot{stroke:var(--surface);stroke-width:2px}.ta-dot.in{fill:var(--viz-in)}.ta-dot.out{fill:var(--viz-out)}.crosshair{stroke:var(--muted);stroke-width:1px}.viz-tip{pointer-events:none;z-index:5;background:var(--surface);border:1px solid var(--border-2);min-width:150px;box-shadow:var(--shadow);border-radius:10px;padding:.55rem .7rem;font-size:.8rem;position:absolute;top:.4rem;transform:translate(12px)}.viz-tip.left{transform:translate(calc(-100% - 12px))}.tip-h{color:var(--muted);margin-bottom:.3rem;font-size:.74rem}.tip-r{align-items:center;gap:.45rem;display:flex}.tip-r b{font-family:var(--mono);font-weight:600}.tip-r span{color:var(--muted)}.tip-r .k{border-radius:2px;width:12px;height:2px;display:inline-block}.tip-r .k.in{background:var(--viz-in)}.tip-r .k.out{background:var(--viz-out)}.node2+.node2{border-top:1px solid var(--border);margin-top:1.1rem;padding-top:1.1rem}.node2-h{flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.8rem;display:flex}.node2-h .small{margin-left:auto}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot.ok{background:var(--st-ok)}.dot.bad{background:var(--st-bad)}.rings{justify-content:space-between;gap:.5rem;display:flex}.ring{text-align:center;flex-direction:column;align-items:center;display:flex}.ring svg{width:100%;height:auto}.ring-track{fill:none;stroke:rgba(var(--ink),.08);stroke-width:8px}.ring-fill{fill:none;stroke-width:8px;stroke-linecap:round;transition:stroke-dasharray .6s cubic-bezier(.22,1,.36,1)}.ring-fill.ok{stroke:var(--st-ok)}.ring-fill.warn{stroke:var(--st-warn)}.ring-fill.bad{stroke:var(--st-bad)}.ring-v{fill:var(--fg);font-size:17px;font-weight:600;font-family:var(--sans)}.ring-l{margin-top:.2rem;font-size:.8rem;font-weight:500}.ring-s{color:var(--dim);font-size:.7rem}.legend .sq,.tile .sq{vertical-align:0;border-radius:3px;width:9px;height:9px;margin-right:.35rem;display:inline-block}.sq.ok,.tile.ok .sq{background:var(--st-ok)}.sq.off,.tile.off .sq{background:var(--st-off)}.sq.bad,.tile.bad .sq{background:var(--st-bad)}.sq.susp,.tile.susp .sq{background:var(--st-susp)}.board{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;display:grid}.tile{color:var(--fg);background:rgba(var(--ink),.025);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.2rem;padding:.75rem .8rem;text-decoration:none;transition:transform .2s,border-color .2s;display:flex}.tile:hover{color:var(--fg);border-color:var(--border-2);transform:translateY(-2px)}.tile.bad{border-color:color-mix(in srgb, var(--st-bad) 45%, transparent);background:color-mix(in srgb, var(--st-bad) 7%, transparent)}.tile.susp{border-color:color-mix(in srgb, var(--st-susp) 35%, transparent)}.tile.off b{color:var(--muted)}.tile-top{justify-content:space-between;align-items:center;font-size:.7rem;display:flex}.tile b{white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:500;overflow:hidden}.tile-sub{color:var(--muted);font-size:.72rem}.tile-bar{background:rgba(var(--ink),.08);border-radius:99px;height:3px;margin-top:.35rem;overflow:hidden}.tile-bar i{background:var(--st-ok);border-radius:inherit;height:100%;display:block}.days-chip{text-align:center;min-width:3.2rem;font-family:var(--mono);background:rgba(var(--ink),.05);color:var(--muted);border-radius:8px;padding:.2rem .4rem;font-size:.75rem}.days-chip.warn{background:color-mix(in srgb, var(--st-warn) 14%, transparent);color:var(--st-warn)}.days-chip.bad{background:color-mix(in srgb, var(--st-susp) 14%, transparent);color:var(--st-susp)}.feed{display:grid}.feed-item{border-bottom:1px solid var(--border);align-items:center;gap:.7rem;padding:.55rem 0;display:flex}.feed-item:last-child{border-bottom:none}.feed-item .grow{flex-direction:column;min-width:0;display:flex}.feed-item b{white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;font-weight:500;overflow:hidden}.feed-ico{background:rgba(var(--ink),.05);width:28px;height:28px;color:var(--muted);border-radius:8px;flex:none;place-items:center;display:grid}.feed-ico svg{width:14px;height:14px}.feed-item.bad .feed-ico{color:var(--st-bad);background:color-mix(in srgb, var(--st-bad) 12%, transparent)}.dash-foot{text-align:right}:root{--side-w:248px;--side-w-min:72px;--imp-h:0px}.shell.imp{--imp-h:2.6rem}.shell .imp-bar{height:var(--imp-h);z-index:70;position:fixed;top:0;left:0;right:0}.sidebar{top:var(--imp-h);z-index:60;width:var(--side-w);padding:calc(1rem + env(safe-area-inset-top,0px)) .8rem calc(.9rem + env(safe-area-inset-bottom,0px));background:var(--bg-2);border-right:1px solid var(--border);flex-direction:column;gap:.5rem;transition:width .25s cubic-bezier(.22,1,.36,1),transform .25s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;bottom:0;left:0}.side-top{justify-content:space-between;align-items:center;gap:.4rem;padding:0 .35rem .6rem;display:flex}.side-top .brand{white-space:nowrap;font-size:1.02rem;overflow:hidden}.side-collapse svg{width:17px;height:17px}.side-nav{scrollbar-width:none;flex:1;align-content:start;gap:1.1rem;display:grid;overflow:hidden auto}.side-nav::-webkit-scrollbar{display:none}.side-section{gap:2px;display:grid}.side-title{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);white-space:nowrap;padding:0 .75rem .4rem;font-size:.66rem;font-weight:600}.side-link{color:var(--muted);white-space:nowrap;border-radius:10px;align-items:center;gap:.75rem;padding:.55rem .75rem;font-size:.89rem;text-decoration:none;transition:background .15s,color .15s;display:flex;position:relative}.side-link:hover{color:var(--fg);background:rgba(var(--ink),.045)}.side-link.active{color:var(--fg);background:rgba(var(--accent-rgb),.12)}.side-link.active:before{content:"";background:var(--red);border-radius:0 3px 3px 0;width:3px;position:absolute;top:22%;bottom:22%;left:-.8rem}.side-ico{flex:none;place-items:center;width:20px;height:20px;display:grid}.side-label{text-overflow:ellipsis;overflow:hidden}.side-badge{background:var(--red);min-width:20px;height:20px;color:var(--on-accent);font-size:.7rem;font-weight:600;font-family:var(--mono);border-radius:9999px;place-items:center;margin-left:auto;padding:0 6px;display:grid}.side-bottom{border-top:1px solid var(--border);gap:.7rem;padding-top:.8rem;display:grid}.side-prefs{align-items:center;gap:.5rem;margin-left:.35rem;display:flex}.side-user{align-items:center;gap:.3rem;display:flex}.side-profile{min-width:0;color:var(--fg);border-radius:10px;flex:1;align-items:center;gap:.65rem;padding:.45rem;text-decoration:none;display:flex}.side-profile:hover{color:var(--fg);background:rgba(var(--ink),.045)}.side-who{flex-direction:column;min-width:0;line-height:1.25;display:flex}.side-who b{text-overflow:ellipsis;font-size:.85rem;font-weight:500;overflow:hidden}.side-who span{color:var(--dim);font-size:.72rem}.side-logout svg{width:17px;height:17px}.shell.collapsed .sidebar{width:var(--side-w-min)}.shell.collapsed .side-label,.shell.collapsed .side-title,.shell.collapsed .side-prefs{display:none}.shell.collapsed .side-top{flex-direction:column;padding-bottom:.4rem}.shell.collapsed .side-link{justify-content:center;padding:.6rem 0}.shell.collapsed .side-badge{min-width:16px;height:16px;padding:0 4px;font-size:.6rem;position:absolute;top:2px;right:6px}.shell.collapsed .side-section+.side-section{border-top:1px solid var(--border);padding-top:.9rem}.shell.collapsed .side-user{flex-direction:column}.shell.collapsed .side-profile{flex:none;padding:.3rem}.content{margin-left:var(--side-w);padding-top:var(--imp-h);min-height:100vh;transition:margin-left .25s cubic-bezier(.22,1,.36,1)}.topbar2{top:var(--imp-h);z-index:50;background:var(--topbar-bg);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border);align-items:center;gap:.8rem;height:60px;padding:0 clamp(1rem,3vw,2rem);display:flex;position:sticky}.top-title{letter-spacing:-.01em;white-space:nowrap;font-size:1rem;font-weight:600}.menu-btn{display:none}.menu-btn svg{width:20px;height:20px}.content main{max-width:1240px;padding-top:1.8rem}.side-overlay{display:none}@media (max-width:900px){.sidebar{width:min(280px,85vw);box-shadow:var(--shadow);transform:translate(-100%)}.shell.collapsed .sidebar{width:min(280px,85vw)}.shell.collapsed .side-label{display:inline}.shell.collapsed .side-title{display:block}.shell.collapsed .side-prefs{display:flex}.shell.collapsed .side-user{flex-direction:row}.shell.collapsed .side-profile{flex:1;padding:.45rem}.shell.collapsed .side-who{display:flex}.shell.collapsed .side-link{justify-content:flex-start;padding:.55rem .75rem}.shell.menu-open .sidebar{transform:none}.side-collapse{display:none}.side-overlay{z-index:55;background:var(--overlay);opacity:0;pointer-events:none;transition:opacity .2s;display:block;position:fixed;inset:0}.shell.menu-open .side-overlay{opacity:1;pointer-events:auto}.content,.shell.collapsed .content{margin-left:0}.menu-btn{display:inline-flex}.topbar2{height:56px}.topbar2 .gsearch{flex:1;order:0;width:auto;max-width:340px}}@media (max-width:520px){.top-title{display:none}.topbar2 .gsearch{max-width:none}}.member-off{opacity:.6}.notice.warn{color:var(--text);background:#fbbf2414;border-color:#fbbf244d}.notice.warn svg{color:var(--amber)}.badge.ok{color:var(--green);background:#22c55e14;border-color:#22c55e40}.text-red{color:var(--red)}.plain-list{color:var(--muted);gap:.45rem;margin:0;padding-left:1.1rem;line-height:1.5;display:grid}.maint-box{text-align:center}.maint-box .brand{justify-content:center}.maint-ico{width:56px;height:56px;color:var(--amber);background:#fbbf241a;border:1px solid #fbbf2440;border-radius:16px;place-items:center;margin:.4rem auto 1rem;display:grid}.maint-ico svg{width:26px;height:26px}.maint-msg{white-space:pre-line}.maint-bar{background:#fbbf241a;border-bottom:1px solid #fbbf244d;align-items:center;gap:.6rem;padding:.55rem 1.2rem;font-size:.84rem;display:flex}.maint-bar svg{width:16px;height:16px;color:var(--amber);flex:none}.maint-bar a{margin-left:auto}.sec-bar{background:var(--border);border-radius:4px;width:90px;height:4px;margin-top:.35rem;overflow:hidden}.sec-bar span{background:var(--amber);border-radius:4px;height:100%;display:block}.sec-bar span.full{background:var(--danger)}.row-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:.35rem;max-width:50%;display:flex}.ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.ip>div:first-child{flex:1;min-width:0}.grid>*{min-width:0}.ip .ellipsis{white-space:normal;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.ban-form{grid-template-columns:1.3fr .9fr 1.3fr auto;gap:.5rem;display:grid}@media (max-width:720px){.ban-form{grid-template-columns:1fr}.row-actions{justify-content:flex-start;max-width:none}}.sec-event{border-bottom:1px solid var(--border);align-items:baseline;gap:.7rem;padding:.55rem 0;display:flex}.sec-event:last-child{border-bottom:none}.audit-filters{grid-template-columns:2fr 1.3fr 1fr 1fr;gap:.5rem;display:grid}@media (max-width:820px){.audit-filters{grid-template-columns:1fr 1fr}.audit-filters input{grid-column:1/-1}}.link-plain{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.link-plain:hover{color:var(--red);text-decoration:underline}.tabs .side-badge{vertical-align:1px;margin-left:.45rem;display:inline-grid;position:static}.ip-chips{flex-wrap:wrap;gap:6px;display:flex}.ip-chips code{background:var(--glass-2);border:1px solid var(--border);border-radius:8px;padding:3px 8px;font-size:.8rem}.ip-list .ip svg{vertical-align:-2px;width:14px;height:14px}.modal form .foot{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.input.input-sm{min-width:190px;padding:.35rem .6rem;font-size:.82rem}.brand-preview{border:1px dashed var(--border);background:var(--glass-2);border-radius:12px;padding:1rem}.brand-preview .brand{align-items:center;gap:.6rem;margin-bottom:.6rem;font-weight:700;display:flex}img.logo.logo-img{object-fit:contain;box-shadow:none;background:0 0;width:auto;max-width:110px;padding:0}.logo-preview{object-fit:contain;max-width:160px;max-height:40px}.dns-table{gap:4px;font-size:.8rem;display:grid}.dns-table>div{grid-template-columns:70px 1fr 1fr;align-items:center;gap:8px;display:grid}.dns-table code{word-break:break-all;background:var(--glass-2);border:1px solid var(--border);border-radius:6px;padding:4px 6px}.dns-table .k{text-transform:uppercase;letter-spacing:.06em;color:var(--dim);font-size:.7rem}.input.grow{flex:1}.input.search-sm{flex:0 260px;width:260px;max-width:100%}.field-label{color:var(--muted);margin-bottom:.45rem;font-size:.8rem;display:block}.swatches{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:9px;width:30px;height:30px;padding:0;position:relative;box-shadow:inset 0 0 0 1px #00000026}.swatch.on{border-color:var(--fg)}.swatch.custom{background:conic-gradient(#ef4444,#f59e0b,#22c55e,#06b6d4,#6366f1,#d946ef,#ef4444);place-items:center;display:grid;overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;border:none;width:100%;height:100%}.look-preview{border:1px solid var(--border);background:var(--bg-2);border-radius:14px;padding:1.2rem}.look-preview .brand{align-items:center;gap:.6rem;margin-bottom:1rem;font-weight:700;display:flex}.look-preview h4{margin-bottom:.25rem;font-size:1.05rem}.look-preview .btn{pointer-events:none}.look-nav{gap:.5rem;display:flex}.look-nav .side-link{pointer-events:none;padding:.45rem .8rem}.rcpt-list{border:1px solid var(--border);background:var(--glass);border-radius:12px;max-height:260px;padding:.3rem;overflow:auto}.rcpt-list .rcpt{border-radius:8px;align-items:flex-start;padding:.45rem .55rem}.rcpt-list .rcpt:hover{background:var(--glass-2)}.mail-preview{border:1px dashed var(--border-2);background:var(--glass);border-radius:12px;padding:1rem 1.1rem}.mail-preview p{white-space:pre-line;color:var(--muted);margin-top:.6rem;font-size:.9rem}.mail-preview .mail-btn{pointer-events:none;margin-top:.8rem}.secret-box{max-width:480px}.secret-box .conn-field{align-items:center;gap:.5rem;display:flex}.secret-box .conn-field code{word-break:break-all;flex:1}.secret-box .conn-fields{grid-template-columns:1fr}.vm-mail{border-top:1px solid var(--border);padding-top:.9rem}.vm-mail .field-label svg{vertical-align:-2px;width:14px;height:14px}.mail-preview .mail-btn+.mail-btn{margin-left:.5rem}.rescue-card{margin-top:1rem}.rescue-card h3 svg{vertical-align:-2px;width:15px;height:15px;margin-right:4px}.rescue-card.on{border-color:#fbbf2459}.chart-head h3 svg{vertical-align:-2px;width:15px;height:15px;margin-right:4px}.tabs button.tab-rescue.on:after{content:"";background:var(--amber);vertical-align:2px;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}.rescue-banner{background:#fbbf241a;border:1px solid #fbbf2473;border-radius:14px;flex-wrap:wrap;align-items:center;gap:.9rem;margin-bottom:1rem;padding:.9rem 1.1rem;display:flex}.rescue-banner>svg{width:22px;height:22px;color:var(--amber);flex:none}.rescue-banner b{color:var(--fg)}.rescue-banner p{color:var(--muted);margin-top:2px;font-size:.86rem}.rescue-main{text-align:center;padding:2rem 1.5rem}.rescue-main.on{border-color:#fbbf2473}.rescue-main h2{margin:.6rem 0 .4rem}.rescue-main p{color:var(--muted);max-width:440px;margin:0 auto}.rescue-ico{width:56px;height:56px;color:var(--amber);background:#fbbf241f;border-radius:16px;place-items:center;margin:0 auto;display:grid}.rescue-ico svg{width:26px;height:26px}.rescue-go{justify-items:center;gap:.6rem;margin-top:1.2rem;display:grid}.rescue-go .field{text-align:left;width:min(100%,320px)}.row.center{justify-content:center}.exp-badge.rescue{color:var(--amber-text);background:#fbbf241a;border-color:#fbbf2466}.exp-badge.rescue svg{width:12px;height:12px}select.input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:14px;padding-right:2.2rem}select.input.input-sm{background-position:right .6rem center;padding-right:2rem}select.input:disabled{opacity:.55;cursor:not-allowed}select.input optgroup{color:var(--muted);background:var(--surface);font-style:normal;font-weight:600}.dmenu{max-width:100%;display:inline-block;position:relative}.dmenu-btn{max-width:100%;font:inherit;color:var(--fg);background:rgba(var(--ink),.03);border:1px solid var(--border-2);cursor:pointer;border-radius:10px;align-items:center;gap:.5rem;padding:.42rem .7rem;font-size:.84rem;transition:border-color .2s,background .2s,box-shadow .2s;display:inline-flex}.dmenu-btn:hover:not(:disabled){border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--ink),.05)}.dmenu-btn:focus-visible{border-color:rgba(var(--accent-rgb),.6);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15);outline:none}.dmenu-btn:disabled{opacity:.55;cursor:not-allowed}.dmenu-btn>svg:first-child{width:15px;height:15px;color:var(--red-dim);flex:none}.dmenu-label{text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}.dmenu-chev{fill:none;width:14px;height:14px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform .2s}.dmenu.open .dmenu-chev{transform:rotate(180deg)}.dmenu-panel{z-index:80;background:var(--surface);border:1px solid var(--border-2);width:max-content;min-width:100%;max-width:min(360px,100vw - 2rem);max-height:min(420px,60vh);box-shadow:var(--shadow);text-align:left;border-radius:12px;padding:.35rem;animation:.14s ease-out dmenu-in;position:absolute;top:calc(100% + 6px);overflow:auto}.dmenu-panel.right{right:0}.dmenu-panel.left{left:0}@keyframes dmenu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.dmenu-group+.dmenu-group{border-top:1px solid var(--border);margin-top:.3rem;padding-top:.3rem}.dmenu-head{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:.4rem .6rem .25rem;font-size:.66rem}.dmenu-item{text-align:left;width:100%;color:var(--fg);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;gap:.1rem;padding:.5rem .6rem;display:flex}.dmenu-item:hover,.dmenu-item:focus-visible{background:rgba(var(--accent-rgb),.1);outline:none}.dmenu-item.active{background:rgba(var(--accent-rgb),.14)}.dmenu-item .t{font-size:.86rem;font-weight:500}.dmenu-item .h{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-size:.76rem;overflow:hidden}@media (max-width:720px){.dmenu-label{max-width:160px}}.os-pick{align-items:center;gap:.55rem;display:flex}.os-pick .os-icon{flex:none}.os-pick select{flex:1;min-width:0}.mail-vm-os{align-items:center;gap:.6rem;display:flex}.fw .chart-head h3 svg{color:var(--red-dim)}.fw-policy{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.fw-opt{border:1px solid var(--border-2);cursor:pointer;border-radius:12px;align-items:flex-start;gap:.6rem;padding:.75rem .85rem;transition:border-color .2s,background .2s;display:flex}.fw-opt:hover{border-color:rgba(var(--accent-rgb),.35)}.fw-opt.on{border-color:rgba(var(--accent-rgb),.6);background:rgba(var(--accent-rgb),.06)}.fw-opt input{accent-color:var(--red);margin-top:.2rem}.fw-opt b{font-size:.88rem;font-weight:600;display:block}.fw-opt span{color:var(--muted);margin-top:.15rem;font-size:.78rem;display:block}.fw-head-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin:.4rem 0 .6rem;display:flex}.fw-head-row .field-label{margin:0}.fw-rules{gap:.45rem;display:grid}.fw-rule{grid-template-columns:120px 150px minmax(120px,1fr) minmax(130px,1fr) minmax(110px,1fr) 34px;align-items:center;gap:.45rem;display:grid}.fw-rule .input.input-sm{width:100%;min-width:0}.fw-rule.deny select:first-child{color:var(--danger);border-color:#ef444459}.fw-labels{color:var(--dim);font-size:.72rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em}.fw-script{background:rgba(var(--ink),.04);border:1px solid var(--border);max-height:55vh;font-family:var(--mono);white-space:pre;border-radius:10px;padding:.8rem .9rem;font-size:.76rem;line-height:1.5;overflow:auto}.link-btn{color:var(--red-dim);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}@media (max-width:860px){.fw-policy{grid-template-columns:1fr}.fw-labels{display:none}.fw-rule{border:1px solid var(--border);border-radius:12px;grid-template-columns:1fr 1fr 34px;padding:.6rem}.fw-rule>:nth-child(3),.fw-rule>:nth-child(4),.fw-rule>:nth-child(5){grid-column:span 2}.fw-rule>:nth-child(6){grid-area:1/3}}.kb-search{max-width:640px;position:relative}.kb-search svg{width:17px;height:17px;color:var(--dim);pointer-events:none;position:absolute;top:50%;left:.95rem;transform:translateY(-50%)}.kb-search .input{padding-left:2.6rem;font-size:.98rem}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{font:inherit;border:1px solid var(--border-2);color:var(--muted);cursor:pointer;background:0 0;border-radius:9999px;padding:.32rem .75rem;font-size:.8rem}.chip:hover{color:var(--fg)}.chip.on{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.5);color:var(--fg)}.kb-cat{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0 0 .6rem;font-size:.72rem;font-weight:500}.kb-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;display:grid}.kb-card{color:var(--fg);flex-direction:column;gap:.35rem;padding:1rem 1.1rem;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}.kb-card:hover{border-color:rgba(var(--accent-rgb),.45);transform:translateY(-1px)}.kb-card b{font-size:.95rem;font-weight:600}.kb-card span{color:var(--muted);font-size:.82rem;line-height:1.45}.kb-empty{text-align:center;padding:2rem 1rem}.kb-empty>svg{width:30px;height:30px;color:var(--dim)}.kb-cta{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.8rem;margin-top:1.5rem;font-size:.9rem;display:flex}.kb-article{max-width:820px;padding:1.6rem 1.8rem}.kb-article h1{margin:.2rem 0 .3rem;font-size:1.7rem}.kb-body{margin-top:1.2rem;font-size:.95rem;line-height:1.65}.kb-body h2{margin:1.6rem 0 .5rem;font-size:1.15rem}.kb-body h3{margin:1.2rem 0 .4rem;font-size:1rem}.kb-body p{margin:0 0 .85rem}.kb-body ul,.kb-body ol{gap:.3rem;margin:0 0 .9rem;padding-left:1.3rem;display:grid}.kb-body code{font-family:var(--mono);background:rgba(var(--ink),.06);border-radius:5px;padding:.1rem .35rem;font-size:.86em}.kb-body pre{background:rgba(var(--ink),.05);border:1px solid var(--border);border-radius:10px;margin:0 0 .9rem;padding:.8rem 1rem;overflow-x:auto}.kb-body pre code{background:0 0;padding:0;font-size:.85rem}.kb-body a{color:var(--red-dim)}.kb-note{border-left:3px solid var(--amber);background:#fbbf2412;border-radius:0 10px 10px 0;margin:0 0 .9rem;padding:.7rem .9rem}.kb-vote{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.6rem;padding-top:1.1rem;font-size:.9rem;display:flex}.kb-suggest{border:1px dashed rgba(var(--accent-rgb),.35);border-radius:12px;flex-direction:column;gap:.3rem;margin-top:-.4rem;padding:.7rem .9rem;display:flex}.kb-suggest svg{vertical-align:-2px;width:14px;height:14px}.kb-suggest a{color:var(--red-dim);font-size:.88rem}@media (max-width:720px){.kb-article{padding:1.1rem 1rem}.kb-article h1{font-size:1.35rem}}.kb-preview{border:1px solid var(--border);border-radius:12px;max-height:50vh;padding:.4rem 1.1rem;overflow:auto}.kb-preview .kb-body{margin-top:.6rem}.kb-vote .btn svg{width:15px;height:15px}.icon-badge{color:var(--amber);align-items:center;padding:.15rem .35rem;display:inline-flex}.icon-badge svg{fill:currentColor;width:12px;height:12px}.vote-n{align-items:center;gap:.25rem;display:inline-flex}.vote-n svg{width:13px;height:13px}.ok-line{align-items:center;gap:.4rem;display:flex}.ok-line svg{width:15px;height:15px;color:var(--green)}.fw-rule .btn svg,.att-x svg,.announcement .btn svg{width:14px;height:14px}.badge .link svg{vertical-align:-1px;width:11px;height:11px}.stars{vertical-align:-2px;gap:1px;display:inline-flex}.stars .star{width:var(--s);height:var(--s);display:inline-block;position:relative}.stars .star svg{width:100%;height:100%;position:absolute;inset:0}.stars .star svg:first-child{color:rgba(var(--ink),.25)}.stars .star svg:last-child{color:var(--amber);fill:var(--amber);clip-path:inset(0 calc(100% - var(--f)) 0 0)}.star-input{align-items:center;gap:.15rem;margin-top:.5rem;display:flex}.star-input button{cursor:pointer;color:rgba(var(--ink),.3);background:0 0;border:none;border-radius:6px;padding:.15rem;line-height:0}.star-input button svg{width:26px;height:26px;transition:transform .12s}.star-input button.on{color:var(--amber)}.star-input button.on svg{fill:var(--amber)}.star-input button:hover svg{transform:scale(1.12)}.star-input button:focus-visible{outline:2px solid rgba(var(--accent-rgb),.6)}.star-input .small{margin-left:.5rem}.rate-box{background:#fbbf240d;border:1px solid #fbbf2459;border-radius:14px;margin:1rem 0;padding:1rem 1.1rem}.rate-box.done{border-color:var(--border-2);background:rgba(var(--ink),.02);gap:.35rem;display:grid}.rate-box.low{background:#ef44440d;border-color:#ef444466}.rate-box p{margin:.2rem 0 0}.mt-xs{margin-top:.25rem}.rating-sum{grid-template-columns:170px 1fr 1.4fr;align-items:start;gap:1.5rem;display:grid}.rs-avg{margin:.3rem 0 .2rem;font-size:2.2rem;font-weight:700;line-height:1.1}.rs-avg span{color:var(--muted);font-size:.95rem;font-weight:500}.rs-dist{gap:.3rem;padding-top:1.2rem;display:grid}.rs-row{grid-template-columns:12px 14px 1fr 26px;align-items:center;gap:.4rem;display:grid}.rs-row>svg{width:12px;height:12px;color:var(--amber);fill:var(--amber)}.rs-bar{background:rgba(var(--ink),.07);border-radius:9999px;height:7px;overflow:hidden}.rs-bar i{background:var(--amber);border-radius:9999px;height:100%;display:block}.rs-bar i.low{background:var(--danger)}.rs-recent{gap:.4rem;display:grid}.rs-item{border:1px solid var(--border);color:var(--fg);border-radius:10px;gap:.15rem;padding:.45rem .6rem;text-decoration:none;display:grid}.rs-item:hover{border-color:rgba(var(--accent-rgb),.4)}.rs-item.low{border-color:#ef444459}@media (max-width:900px){.rating-sum{grid-template-columns:1fr;gap:1rem}.rs-dist{padding-top:0}}.kb-rs{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.kb-rs .check{align-items:flex-start}.block{display:block}.rate-box.done .link-btn{justify-self:start}.rating-sum .eyebrow{white-space:nowrap}.rating-sum{grid-template-columns:200px 1fr 1.4fr}@media (max-width:900px){.rating-sum{grid-template-columns:1fr}}td .badge{white-space:nowrap}.ticket-closed{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.ticket-closed>svg{width:20px;height:20px;color:var(--muted);flex:none}.ticket-closed p{margin:.2rem 0 0}:root{--bg:#09090b;--bg-2:#0b0b0d;--card:#0e0e11;--fg:#fafafa;--muted:#a1a1aa;--dim:#71717a;--ink:255,255,255;--border:#ffffff14;--border-2:#ffffff21;--glass:var(--card);--glass-2:#18181b;--hover:#1f1f23;--surface:#111114;--surface-2:#111114;--topbar-bg:var(--bg-2);--overlay:#0009;--shadow:0 10px 30px -10px #000000b3, 0 4px 12px -4px #00000080;--card-shadow:0 1px 2px #0000004d;--radius:12px;--r-sm:8px;--ring:#a1a1aa59;--sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}:root[data-theme=light]{--bg:#fafafa;--bg-2:#fff;--card:#fff;--fg:#09090b;--muted:#71717a;--dim:#a1a1aa;--ink:9,9,11;--border:#e4e4e7;--border-2:#d4d4d8;--glass:#fff;--glass-2:#f4f4f5;--hover:#f4f4f5;--surface:#fff;--surface-2:#fff;--topbar-bg:#fff;--overlay:#09090b73;--shadow:0 10px 30px -10px #0000002e, 0 4px 10px -4px #00000014;--card-shadow:0 1px 3px #0000000f, 0 1px 2px -1px #0000000f;--ring:#71717a4d}html{font-size:15px}body{font-family:var(--sans);font-feature-settings:"cv11", "ss01";letter-spacing:-.006em}body:before,body:after{display:none}::-webkit-scrollbar-thumb{background:rgba(var(--ink),.18)}*{scrollbar-color:rgba(var(--ink),.18) transparent}::selection{background:rgba(var(--accent-rgb),.25);color:inherit}:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:6px}.glass{background:var(--card);-webkit-backdrop-filter:none;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--card-shadow)}.card{padding:1.35rem 1.45rem}.card h3{text-transform:none;letter-spacing:-.01em;color:var(--fg);margin-bottom:.9rem;font-size:.98rem;font-weight:600}.chart-head h3 svg{color:var(--muted)}.eyebrow{font-family:var(--sans);color:var(--muted);letter-spacing:0;margin-bottom:.25rem;font-size:.78rem;font-weight:500}.page-head{align-items:flex-end;margin-bottom:1.5rem}.page-head .eyebrow{display:none}.page-head h1{letter-spacing:-.025em;font-size:1.6rem;font-weight:700}.page-head p{margin-top:.2rem;font-size:.95rem}.btn{border-radius:var(--r-sm);background:var(--card);border:1px solid var(--border-2);height:36px;color:var(--fg);gap:.45rem;padding:0 .95rem;font-size:.89rem;font-weight:500;box-shadow:0 1px 2px #0000000d}.btn:hover:not(:disabled){background:var(--hover);border-color:var(--border-2)}.btn-sm{height:32px;padding:0 .75rem;font-size:.84rem}.btn-primary{background:var(--red);border-color:var(--red);color:var(--on-accent);box-shadow:0 1px 2px #0000001a}.btn-primary:hover:not(:disabled){background:var(--red);border-color:var(--red);filter:brightness(1.08);box-shadow:0 1px 2px #0000001a}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger);filter:brightness(1.08)}.btn-ghost{box-shadow:none;color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--hover);color:var(--fg);border-color:#0000}.btn-block{height:40px}.field>span{color:var(--fg);margin-bottom:.45rem;font-size:.86rem;font-weight:500}.input,select.input{border-radius:var(--r-sm);border:1px solid var(--border-2);background:0 0;min-height:36px;padding:.5rem .75rem;font-size:.9rem;box-shadow:0 1px 2px #0000000a}:root[data-theme=light] .input,:root[data-theme=light] select.input{background:#fff}.input:focus{border-color:var(--dim);box-shadow:0 0 0 3px var(--ring)}.input.input-sm{min-height:32px;padding:.3rem .6rem}textarea.input{min-height:0}select.input option,select.input optgroup{background:var(--surface)}.hint{color:var(--muted)}.check input{accent-color:var(--red)}.tabs{background:var(--glass-2);max-width:100%;box-shadow:none;border-radius:10px;gap:2px;margin-bottom:1.4rem;padding:3px;display:inline-flex;overflow-x:auto}.tabs button{color:var(--muted);white-space:nowrap;box-shadow:none;border-radius:7px;margin:0;padding:.38rem .85rem;font-size:.86rem;font-weight:500}.tabs button:hover{color:var(--fg)}.tabs button.active{color:var(--fg);background:var(--card);box-shadow:0 1px 3px #0000001f, 0 0 0 1px var(--border)}.tabs button.tab-rescue{color:var(--amber)}.seg{background:var(--glass-2);border:none;border-radius:10px;padding:3px}.seg button{border-radius:7px;padding:.34rem .8rem;font-size:.84rem;font-weight:500}.seg button.active{background:var(--card);color:var(--fg);box-shadow:0 1px 3px #0000001f, 0 0 0 1px var(--border)}table{font-size:.89rem}th{text-transform:none;letter-spacing:0;color:var(--muted);background:0 0;padding:.7rem 1rem;font-size:.84rem;font-weight:500}td{padding:.75rem 1rem}tbody tr:hover{background:rgba(var(--ink),.025)}.badge{font-family:var(--sans);border-radius:6px;padding:.12rem .45rem;font-size:.73rem;font-weight:500}.status{border-radius:6px;font-weight:500}.status.running:before{box-shadow:none}.vm-card{padding:1.2rem 1.25rem}.vm-card:hover{border-color:var(--border-2);background:var(--card);box-shadow:var(--shadow);transform:none}.vm-card .meta,.stat .s{font-family:var(--sans)}.stat .k{text-transform:none;letter-spacing:0;color:var(--fg);font-size:.86rem;font-weight:500}.stat .v{font-family:var(--sans);letter-spacing:-.02em;font-size:1.55rem;font-weight:700}.stat .s{color:var(--muted)}.logo{background:var(--red);box-shadow:none;border-radius:8px;font-weight:700}.avatar{background:var(--glass-2);border:none;font-weight:600}.notice{border-radius:10px}.empty h2{font-weight:600}.modal-back{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--overlay)}.modal{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px}.modal h2{letter-spacing:-.015em;font-weight:600}.toast{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px}.dmenu-panel,.notif-panel,.gsearch-panel{border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px}.dmenu-btn{border-radius:var(--r-sm);background:var(--card);border-color:var(--border-2);height:32px}.dmenu-item:hover,.dmenu-item:focus-visible,.gsearch-hit.sel{background:var(--hover)}.dmenu-head,.gsearch-group{font-family:var(--sans);text-transform:none;letter-spacing:0;color:var(--muted);font-size:.75rem;font-weight:500}.sidebar{background:var(--bg);padding:calc(.75rem + env(safe-area-inset-top,0px)) .65rem calc(.75rem + env(safe-area-inset-bottom,0px));border-right:none}:root[data-theme=light] .sidebar{background:var(--bg)}.side-top{padding:.25rem .35rem .75rem}.side-top .brand{gap:.65rem;font-size:.92rem}.side-top .logo{width:32px;height:32px}.brand-txt{flex-direction:column;min-width:0;line-height:1.2;display:flex}.brand-txt b{text-overflow:ellipsis;font-weight:600;overflow:hidden}.brand-txt span{color:var(--muted);font-size:.74rem;font-weight:400}.side-nav{gap:1.2rem}.side-title{letter-spacing:0;text-transform:none;color:var(--muted);padding:0 .6rem .3rem;font-size:.76rem;font-weight:500}.side-link{border-radius:var(--r-sm);color:var(--fg);opacity:.86;gap:.6rem;padding:.45rem .6rem;font-size:.9rem}.side-link:hover{background:var(--hover);opacity:1}.side-link.active{background:var(--hover);opacity:1;font-weight:500}.side-link.active:before{display:none}.side-link.active .side-ico{color:var(--red)}.side-ico svg{width:17px;height:17px}.side-badge{min-width:19px;height:19px;font-family:var(--sans);font-size:.7rem}.side-bottom{border-top:none;padding-top:.4rem}.side-profile{border-radius:var(--r-sm);padding:.45rem}.side-profile:hover{background:var(--hover)}.side-who b{font-weight:600}.side-who span{color:var(--muted)}.shell.collapsed .side-top{align-items:center;padding:.25rem 0 .75rem}.content{margin:.5rem .5rem .5rem var(--side-w);background:var(--bg-2);border:1px solid var(--border);min-height:calc(100vh - 1rem);box-shadow:var(--card-shadow);border-radius:14px;padding-top:0}.shell.imp .content{margin-top:calc(var(--imp-h) + .5rem)}.shell.collapsed .content{margin-left:var(--side-w-min)}.topbar2{top:var(--imp-h);background:var(--bg-2);-webkit-backdrop-filter:none;border-bottom:none;border-radius:14px 14px 0 0;gap:.6rem;height:60px;padding:0 clamp(1rem,2.5vw,1.75rem)}.side-toggle{justify-content:center;width:32px;padding:0}.side-toggle svg{width:16px;height:16px}.top-sep{background:var(--border-2);width:1px;height:18px}.top-title{font-size:.93rem;font-weight:500}.top-prefs{align-items:center;gap:.4rem;display:flex}.content main{max-width:1280px;margin:0;padding:.9rem clamp(1rem,2.5vw,1.75rem) 2.5rem}.maint-bar{border:1px solid #fbbf244d;border-radius:10px;margin:0 clamp(1rem,2.5vw,1.75rem)}.theme-toggle{border:1px solid var(--border-2);border-radius:var(--r-sm);background:0 0;padding:2px}.theme-toggle button{border-radius:6px;height:26px}.theme-toggle button.active{background:var(--hover);color:var(--fg)}.gsearch{border-radius:var(--r-sm);border:1px solid var(--border-2);background:0 0;height:34px;box-shadow:0 1px 2px #0000000a}.gsearch-kbd{font-family:var(--sans);background:var(--glass-2);border-color:var(--border)}.auth-box:before{display:none}.auth-box{border-radius:14px}@media (max-width:900px){.content,.shell.collapsed .content{box-shadow:none;border:none;border-radius:0;min-height:100vh;margin:0}.shell.imp .content{margin-top:var(--imp-h)}.topbar2{border-bottom:1px solid var(--border);border-radius:0}.sidebar{background:var(--bg-2)}}@media (max-width:640px){.top-prefs .lang-toggle,.top-sep{display:none}}.btn.btn-primary,.btn.btn-primary:hover:not(:disabled){box-shadow:0 1px 2px #0000001f}.btn.btn-danger{color:var(--danger-text);border-color:rgba(var(--danger-rgb),.35);filter:none;background:0 0;box-shadow:0 1px 2px #0000000d}.btn.btn-danger:hover:not(:disabled){background:rgba(var(--danger-rgb),.08);border-color:rgba(var(--danger-rgb),.55);filter:none}.btn.err-text,.btn-ghost.err-text{color:var(--danger-text)}.btn.err-text:hover:not(:disabled){color:var(--danger-text);background:rgba(var(--danger-rgb),.08)}.dot-new{box-shadow:none}.section-title,.conn-field .k,.traffic-stats .k,.dns-table .k,.fw-labels,.kb-cat{font-family:var(--sans);text-transform:none;letter-spacing:0;color:var(--muted);font-size:.82rem;font-weight:500}.kb-cat{color:var(--fg);font-size:.9rem;font-weight:600}.gsearch{background:var(--card);border:1px solid var(--border-2);border-radius:var(--r-sm);gap:.5rem;width:min(380px,100%);height:36px;padding:0 .4rem 0 .75rem;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 2px #0000000a}.gsearch:hover{border-color:var(--dim)}.gsearch:focus-within{border-color:var(--dim);box-shadow:0 0 0 3px var(--ring)}.gsearch-input,.gsearch-input:focus,.gsearch-input:focus-visible{box-shadow:none;background:0 0;border:none;outline:none;height:100%;padding:0}.gsearch>svg{width:15px;height:15px;color:var(--muted)}.gsearch-kbd{font-family:var(--sans);color:var(--muted);background:var(--glass-2);border:1px solid var(--border);border-radius:5px;padding:.1rem .4rem;font-size:.68rem;font-weight:500}.gsearch-clear{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;font-size:1.1rem;line-height:1;display:grid}.gsearch-clear:hover{background:var(--hover);color:var(--fg)}.gsearch-panel{background:var(--surface);min-width:0;max-height:min(70vh,480px);padding:.35rem;top:calc(100% + 6px);left:-1px;right:-1px}.gsearch-group{padding:.5rem .55rem .25rem}.gsearch-hit{border-radius:7px;flex-direction:row;align-items:center;gap:.65rem;padding:.45rem .55rem}.gsearch-hit.sel{background:var(--hover)}.gsearch-ico{border:1px solid var(--border);width:28px;height:28px;color:var(--muted);background:var(--card);border-radius:7px;flex:none;place-items:center;display:grid}.gsearch-ico svg{width:14px;height:14px}.gsearch-hit.sel .gsearch-ico{color:var(--fg)}.gsearch-txt{flex-direction:column;min-width:0;display:flex}.gsearch-hit .t{white-space:nowrap;text-overflow:ellipsis;font-size:.87rem;font-weight:500;overflow:hidden}.gsearch-hit .s{font-family:var(--sans);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;overflow:hidden}.gsearch-empty{padding:.9rem .7rem}@media (max-width:900px){.topbar2 .gsearch{flex:1;width:auto;max-width:none}}@media (max-width:720px){.gsearch{order:0;width:auto}}.side-prefs-m{display:none}.topbar2 .gsearch{min-width:0}@media (max-width:640px){.top-prefs{display:none}.side-prefs-m{padding:0 .35rem .3rem;display:flex}}.toasts{gap:.5rem;width:min(360px,100vw - 2rem);max-width:none;bottom:1rem;right:1rem}.toast{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--fg);border-radius:10px;align-items:center;gap:.65rem;padding:.7rem .6rem .7rem .8rem;font-size:.87rem;font-weight:500;animation:.28s cubic-bezier(.22,1,.36,1) toast-in;display:flex}.toast.out{animation:.2s forwards toast-out}.toast-ico svg{stroke-width:3px;width:13px;height:13px}.toast.error .toast-ico{background:var(--danger)}.toast.error .toast-ico svg{stroke-width:2.4px}.toast.info .toast-ico{color:var(--muted);background:0 0}.toast.info .toast-ico svg{stroke-width:2px;width:18px;height:18px}:root[data-theme=light] .toast-ico{background:#16a34a}:root[data-theme=light] .toast.error .toast-ico{background:var(--danger)}:root[data-theme=light] .toast.info .toast-ico{background:0 0}.toast-msg{flex:1;min-width:0;line-height:1.4}.toast-x{width:24px;height:24px;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;flex:none;place-items:center;transition:opacity .15s,background .15s;display:grid}.toast:hover .toast-x,.toast-x:focus-visible{opacity:1}.toast-x svg{width:14px;height:14px}@keyframes toast-in{0%{opacity:0;transform:translateY(100%)}}@keyframes toast-out{to{opacity:0;transform:translate(16px)}}@media (max-width:640px){.toasts{width:auto;bottom:.75rem;left:1rem;right:1rem}.toast-x{opacity:1}}.notif-btn{border-radius:var(--r-sm);justify-content:center;width:36px;height:36px;padding:0}.notif-btn.on{background:var(--hover);color:var(--fg)}.notif-count{min-width:15px;height:15px;font-size:.6rem;font-family:var(--sans);border:2px solid var(--bg-2);box-sizing:content-box;top:3px;right:3px}.notif-panel{background:var(--surface);border-radius:12px;width:min(380px,100vw - 2rem);animation:.14s ease-out dmenu-in;top:calc(100% + 6px)}.notif-head{border-bottom:1px solid var(--border);padding:.75rem .9rem}.notif-head>div{align-items:center;gap:.45rem;display:flex}.notif-head b{font-size:.92rem;font-weight:600}.notif-pill{background:var(--red);color:var(--on-accent);border-radius:9999px;padding:.05rem .4rem;font-size:.68rem;font-weight:600}.notif-readall{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.3rem;padding:.25rem .4rem;font-size:.78rem;display:inline-flex}.notif-readall:hover{color:var(--fg);background:var(--hover)}.notif-readall svg{width:13px;height:13px}.notif-list{max-height:min(60vh,440px);padding:.3rem}.notif-item{border:none;border-radius:8px;align-items:flex-start;gap:.7rem;margin:0;padding:.65rem .6rem;display:flex;position:relative}.notif-item+.notif-item{margin-top:1px}.notif-item:hover{background:var(--hover)}.notif-ico{border:1px solid var(--border);background:var(--card);width:32px;height:32px;color:var(--muted);border-radius:8px;flex:none;place-items:center;display:grid}.notif-ico svg{width:15px;height:15px}.notif-item.warning .notif-ico{color:var(--amber);background:#fbbf2412;border-color:#fbbf244d}.notif-item.critical .notif-ico{color:var(--danger-text);border-color:rgba(var(--danger-rgb),.3);background:rgba(var(--danger-rgb),.07)}.notif-txt{text-align:left;flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.notif-top{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.notif-item .t{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:500;overflow:hidden}.notif-item:not(.unread) .t{color:var(--fg);opacity:.75;font-weight:400}.notif-item .d{color:var(--dim);white-space:nowrap;flex:none;margin:0;font-size:.72rem}.notif-item .b{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.79rem;line-height:1.4;display:-webkit-box;overflow:hidden}.notif-times{color:var(--muted);background:var(--glass-2);border-radius:5px;align-self:flex-start;margin-top:.15rem;padding:.05rem .35rem;font-size:.68rem;font-weight:500}.notif-dot{background:var(--red);border-radius:50%;width:7px;height:7px;position:absolute;top:.95rem;right:.55rem}.notif-item.unread .d{margin-right:.8rem}.notif-item .dot{display:none}.notif-empty{text-align:center;flex-direction:column;align-items:center;gap:.35rem;padding:2rem 1.5rem;display:flex}.notif-empty-ico{background:var(--glass-2);width:40px;height:40px;color:var(--muted);border-radius:50%;place-items:center;margin-bottom:.3rem;display:grid}.notif-empty-ico svg{width:18px;height:18px}@media (max-width:640px){.notif-panel{width:auto;position:fixed;top:3.6rem;left:1rem;right:1rem}}:root{--t-ok-bg:#001f0f;--t-ok-bd:#003d1c;--t-ok-fg:#59f3a6;--t-err-bg:#2d0607;--t-err-bd:#4d0408;--t-err-fg:#ff9ea1;--t-info-bg:#000d1f;--t-info-bd:#10233d;--t-info-fg:#5896f3}:root[data-theme=light]{--t-ok-bg:#ecfdf3;--t-ok-bd:#bffcd9;--t-ok-fg:#008a2e;--t-err-bg:#fff0f0;--t-err-bd:#ffe0e1;--t-err-fg:#e60000;--t-info-bg:#f0f8ff;--t-info-bd:#d3e0fd;--t-info-fg:#0973dc}.toasts{z-index:300;width:min(356px,100vw - 2rem);height:54px;margin:0;padding:0;list-style:none;display:block;position:fixed;bottom:1.25rem;left:auto;right:1.25rem}.toasts:hover:before{content:"";height:260px;position:absolute;bottom:0;left:0;right:0}.toast{background:var(--t-ok-bg);border:1px solid var(--t-ok-bd);width:100%;min-height:54px;color:var(--t-ok-fg);transform-origin:bottom;transform:translateY(calc(var(--i) * -14px)) scale(calc(1 - var(--i) * .05));border-radius:9px;align-items:center;gap:.6rem;padding:.85rem .9rem;font-size:.87rem;font-weight:500;line-height:1.4;transition:transform .4s cubic-bezier(.21,1.02,.73,1),opacity .4s,box-shadow .2s;animation:.4s cubic-bezier(.21,1.02,.73,1) toast-in;display:flex;position:absolute;bottom:0;right:0;box-shadow:0 4px 12px #0000001f}.toast.error{background:var(--t-err-bg);border-color:var(--t-err-bd);color:var(--t-err-fg)}.toast.info{background:var(--t-info-bg);border-color:var(--t-info-bd);color:var(--t-info-fg)}.toast:before{display:none}.toast>*{transition:opacity .3s}.toast:not([data-front])>*{opacity:0}.toast.hidden{opacity:0;pointer-events:none}.toasts:hover .toast{transform:translateY(calc(var(--i) * (-100% - 8px)))}.toasts:hover .toast>*{opacity:1}.toasts:hover .toast.hidden{opacity:1;pointer-events:auto}.toast.out{opacity:0;transform:translateY(calc(var(--i) * -14px + 30%)) scale(calc(.96 - var(--i) * .05));animation:none}.toast-ico{color:currentColor;background:0 0;border-radius:0;flex:none;place-items:center;width:18px;height:18px;display:grid}.toast-ico svg,.toast.error .toast-ico svg,.toast.info .toast-ico svg{stroke-width:2px;width:18px;height:18px}:root[data-theme=light] .toast-ico,:root[data-theme=light] .toast.error .toast-ico{background:0 0}.toast-msg{flex:1;min-width:0}.toast-x{color:currentColor;opacity:0;border-radius:6px;width:22px;height:22px}.toast-x:hover{background:color-mix(in srgb, currentColor 14%, transparent);color:currentColor}.toast:hover .toast-x{opacity:.8}@media (max-width:640px){.toasts{width:auto;bottom:1rem;left:1rem;right:1rem}.toast-x{opacity:.8}}@media (prefers-reduced-motion:reduce){.toast{transition:none}}.toast .toast-ico,.toast.error .toast-ico,.toast.info .toast-ico,.toast.ok .toast-ico{color:currentColor;background:0 0}.toasts:not(:hover) .toast-x{opacity:0}.toasts:hover .toast-x{opacity:.6}.toasts:hover .toast:hover .toast-x{opacity:1}.modal-back{animation:.15s ease-out fade}.modal{padding:1.5rem;animation:.18s cubic-bezier(.22,1,.36,1) modal-in}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)scale(.97)}}.modal.confirm{max-width:440px}.confirm-body{align-items:flex-start;gap:.9rem;display:flex}.confirm-ico{background:var(--glass-2);width:38px;height:38px;color:var(--muted);border-radius:50%;flex:none;place-items:center;display:grid}.confirm-ico svg{width:18px;height:18px}.confirm-ico.danger{background:rgba(var(--danger-rgb),.12);color:var(--danger-text)}.modal.confirm h2{margin:.35rem 0;font-size:1.05rem}.modal.confirm p{color:var(--muted);margin:0;font-size:.89rem;line-height:1.55}.modal.confirm .foot{margin-top:1.4rem}.btn.btn-destructive{background:var(--danger);border-color:var(--danger);color:#fff;box-shadow:0 1px 2px #0000001f}.btn.btn-destructive:hover:not(:disabled){background:var(--danger);border-color:var(--danger);filter:brightness(1.1)}@media (max-width:480px){.confirm-body{text-align:center;flex-direction:column;align-items:center}.modal.confirm .foot{flex-direction:column-reverse}.modal.confirm .foot .btn{width:100%}}.state-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:min(70vh,560px);padding:3rem 1rem;animation:.25s ease-out fade;display:flex}.state-ico{background:var(--glass-2);width:52px;height:52px;color:var(--muted);border:1px solid var(--border);border-radius:14px;place-items:center;margin-bottom:1.1rem;display:grid}.state-ico svg{width:22px;height:22px}.state-ico.danger{background:rgba(var(--danger-rgb),.1);color:var(--danger-text);border-color:rgba(var(--danger-rgb),.25)}.state-ico.warn{color:var(--amber);background:#fbbf241a;border-color:#fbbf244d}.state-code{letter-spacing:.06em;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:.35rem;font-size:.78rem;font-weight:600}.state-page p{color:var(--muted);max-width:440px;line-height:1.55}.state-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1.5rem;display:flex}.error-box{text-align:center;flex-direction:column;align-items:center;gap:.2rem;padding:2.5rem 1.5rem;display:flex}.error-box .state-ico{border-radius:12px;width:44px;height:44px;margin-bottom:.8rem}.error-box .state-ico svg{width:19px;height:19px}.error-box h2{font-size:1.05rem;font-weight:600}.error-box p{color:var(--muted);max-width:420px;margin-bottom:.9rem;font-size:.9rem}.error-box p:last-child{margin-bottom:0}.offline-bar{background:var(--t-err-bg);border:1px solid var(--t-err-bd);color:var(--t-err-fg);border-radius:10px;align-items:center;gap:.6rem;margin:0 clamp(1rem,2.5vw,1.75rem);padding:.55rem .9rem;font-size:.85rem;display:flex}.offline-bar svg{flex:none;width:16px;height:16px}:root[data-theme=light] .modal-back,.modal-back{-webkit-backdrop-filter:none}.state-big{letter-spacing:-.04em;color:var(--fg);font-variant-numeric:tabular-nums;margin-bottom:1.6rem;font-size:clamp(5rem,14vw,8.5rem);font-weight:800;line-height:1}.state-page h1{letter-spacing:-.01em;margin-bottom:.55rem;font-size:1.12rem;font-weight:700}.state-page p{max-width:400px;font-size:1rem;line-height:1.6}.state-actions{gap:.9rem;margin-top:1.9rem}.state-actions .btn{height:40px;padding:0 1.1rem;font-size:.92rem}.state-page.compact{min-height:min(60vh,460px)}.state-page .state-code{display:none}.content main{max-width:none}.field>span.hint,.field>.hint{color:var(--muted);margin:.35rem 0 0;font-size:.8rem;font-weight:400}.sec .chart-head h3 svg{color:var(--muted)}.sec-empty{text-align:center;flex-direction:column;align-items:center;gap:.4rem;padding:1.5rem 1rem .5rem;display:flex}.sec-empty .state-ico{margin-bottom:.4rem}.sec-empty p{max-width:460px}.sec-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:1.2rem;margin-bottom:.4rem;padding:.4rem 0 1.2rem;display:flex}.grade{letter-spacing:-.03em;color:#fff;border-radius:18px;flex:none;place-items:center;width:76px;height:76px;font-size:2.6rem;font-weight:800;display:grid}.grade-A,.grade-bg-A{background:#16a34a}.grade-B,.grade-bg-B{background:#65a30d}.grade-C,.grade-bg-C{background:#d97706}.grade-D,.grade-bg-D{background:#ea580c}.grade-F,.grade-bg-F{background:#dc2626}.sec-head>div:nth-child(2){flex:1;min-width:220px}.sec-score{color:var(--muted);font-size:.95rem}.sec-score b{color:var(--fg);letter-spacing:-.02em;font-size:1.6rem;font-weight:700}.sec-score span{color:var(--muted);margin-right:.2rem}.sec-bar{background:var(--glass-2);border-radius:9999px;max-width:420px;height:6px;margin-top:.6rem;overflow:hidden}.sec-bar i{border-radius:9999px;height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);display:block}.sec-counts{flex-wrap:wrap;gap:.5rem;display:flex}.sec-counts span{border:1px solid var(--border);border-radius:9999px;padding:.25rem .6rem;font-size:.78rem;font-weight:500}.c-fail{color:var(--danger-text);border-color:rgba(var(--danger-rgb),.3)!important}.c-warn{color:var(--amber);border-color:#fbbf244d!important}.c-ok{color:var(--green);border-color:#4ade804d!important}.sec-list{display:grid}.sec-item{border-bottom:1px solid var(--border);gap:.8rem;padding:.9rem .2rem;display:flex}.sec-item:last-child{border-bottom:none}.sec-ico{flex:none;width:20px;height:20px;margin-top:1px}.sec-ico svg{width:20px;height:20px}.sec-item.fail .sec-ico{color:var(--danger-text)}.sec-item.warn .sec-ico{color:var(--amber)}.sec-item.ok .sec-ico{color:var(--green)}.sec-body{flex:1;min-width:0}.sec-body>b{font-size:.92rem;font-weight:600}.sec-body>p{color:var(--muted);margin-top:.15rem;font-size:.86rem}.sec-fix{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.sec-fix>p{flex-basis:100%;margin:0}.sec-cmd{background:var(--glass-2);border:1px solid var(--border);border-radius:8px;flex-basis:100%;align-items:center;gap:.4rem;padding:.35rem .4rem .35rem .75rem;display:flex}.sec-cmd code{min-width:0;font-family:var(--mono);white-space:nowrap;flex:1;font-size:.78rem;overflow-x:auto}.sec-list.ok .sec-item{padding:.6rem .2rem}.sec-list.ok .sec-body>p{font-size:.8rem}.sec-perfect{color:var(--green);align-items:center;gap:.5rem;padding:1rem .2rem;font-weight:500;display:flex}.sec-perfect svg{width:18px;height:18px}.upd-running{background:var(--glass-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.9rem;padding:1rem;display:flex}.upd-running p{margin-top:.15rem}.upd-spin{border:2.5px solid rgba(var(--ink),.15);border-top-color:var(--red);border-radius:50%;flex:none;width:22px;height:22px;animation:.8s linear infinite spin}.upd-history{border-top:1px solid var(--border);margin-top:1.4rem;padding-top:1rem}.upd-item{align-items:center;gap:.7rem;padding:.55rem 0;display:flex}.upd-ico{border:1px solid var(--border);border-radius:7px;flex:none;place-items:center;width:26px;height:26px;display:grid}.upd-ico svg{width:13px;height:13px}.upd-item.ok .upd-ico{color:var(--green)}.upd-item.error .upd-ico{color:var(--danger-text)}@media (max-width:640px){.sec-counts{width:100%}}.sec-list{grid-template-columns:minmax(0,1fr)}.sec-item,.sec-body,.sec-fix,.sec-cmd{min-width:0}.sec2 .card{margin-bottom:1rem}.sec2-empty{text-align:center;flex-direction:column;align-items:center;gap:.6rem;padding:3rem 1.5rem;display:flex}.sec2-shield{background:linear-gradient(145deg, rgba(var(--accent-rgb),.18), rgba(var(--accent-rgb),.04));width:84px;height:84px;color:var(--red);border:1px solid rgba(var(--accent-rgb),.25);border-radius:24px;place-items:center;margin-bottom:.5rem;display:grid}.sec2-shield svg{width:38px;height:38px}.sec2-empty h2{letter-spacing:-.02em;font-size:1.35rem;font-weight:700}.sec2-empty p{color:var(--muted);max-width:420px}.sec2-hero{flex-wrap:wrap;align-items:center;gap:1.6rem;padding:1.5rem 1.6rem;display:flex}.sec2-hero-txt{flex:1;gap:.45rem;min-width:220px;display:grid}.sec2-grade-name{text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;font-weight:600}.sec2-hero-txt h2{letter-spacing:-.02em;font-size:1.45rem;font-weight:700}.sec2-hero-act{align-self:flex-start}.sec2-pills{gap:.4rem;display:flex}.pill{border:1px solid var(--border);color:var(--dim);border-radius:9999px;align-items:center;gap:.3rem;padding:.22rem .6rem;font-size:.82rem;font-weight:600;display:inline-flex}.pill svg{width:14px;height:14px}.pill.fail{color:var(--danger-text);background:rgba(var(--danger-rgb),.08);border-color:rgba(var(--danger-rgb),.25)}.pill.warn{color:var(--amber);background:#fbbf2414;border-color:#fbbf2440}.pill.ok{color:var(--green);background:#4ade8014;border-color:#4ade8040}.gauge{flex:none;width:132px;height:132px;position:relative}.gauge svg{width:100%;height:100%;transform:rotate(-90deg)}.gauge circle{fill:none;stroke-width:11px}.gauge-track{stroke:var(--glass-2)}.gauge-val{stroke-linecap:round;transition:stroke-dasharray 1s cubic-bezier(.22,1,.36,1)}.gauge.spin svg{animation:1.4s linear infinite spin}.gauge-in{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.gauge-in b{letter-spacing:-.04em;font-size:2.6rem;font-weight:800;line-height:1}.gauge-in span{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:.2rem;font-size:.78rem}.sec2-tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;display:grid}.sec2-tile{text-align:left;font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--fg);border-radius:12px;flex-direction:column;align-items:flex-start;gap:.55rem;padding:.85rem .9rem;transition:border-color .15s,background .15s,transform .15s;display:flex}.sec2-tile:hover{border-color:var(--border-2);transform:translateY(-1px)}.sec2-tile.sel{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg)}.sec2-tile-ico{border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.sec2-tile-ico svg{width:18px;height:18px}.sec2-tile.ok .sec2-tile-ico{color:var(--green);background:#4ade801a}.sec2-tile.warn .sec2-tile-ico{color:var(--amber);background:#fbbf241f}.sec2-tile.fail .sec2-tile-ico{background:rgba(var(--danger-rgb),.12);color:var(--danger-text)}.sec2-tile-name{font-size:.88rem;font-weight:600;line-height:1.25}.sec2-tile-st{align-items:center;gap:.25rem;font-size:.75rem;font-weight:500;display:inline-flex}.sec2-tile-st svg{width:13px;height:13px}.sec2-tile.ok .sec2-tile-st{color:var(--green)}.sec2-tile.warn .sec2-tile-st{color:var(--amber)}.sec2-tile.fail .sec2-tile-st{color:var(--danger-text)}.sec2-detail{border:1px solid var(--border);background:var(--glass-2);border-radius:12px;gap:.8rem;margin-top:1rem;padding:1rem 1.1rem;animation:.2s ease-out fade;display:flex}.sec2-detail-ico{flex:none;width:22px;height:22px;margin-top:1px}.sec2-detail-ico svg{width:22px;height:22px}.sec2-detail.ok .sec2-detail-ico{color:var(--green)}.sec2-detail.warn .sec2-detail-ico{color:var(--amber)}.sec2-detail.fail .sec2-detail-ico{color:var(--danger-text)}.sec2-detail b{font-size:.95rem}.sec2-detail p{color:var(--muted);margin-top:.2rem;font-size:.87rem}.sec2-fix{gap:.55rem;min-width:0;margin-top:.75rem;display:grid}.sec2-fix .sec-cmd{background:var(--card)}.sec2-detail .grow{min-width:0}.upd2{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.2rem;display:flex}.upd2-stat{align-items:center;gap:.9rem;display:flex}.upd2-stat>div{gap:.1rem;display:grid}.upd2-stat b{font-size:1rem}.upd2-num{letter-spacing:-.03em;background:var(--glass-2);width:56px;height:56px;color:var(--muted);border-radius:14px;flex:none;place-items:center;font-size:1.6rem;font-weight:800;display:grid}.upd2-stat.ok .upd2-num{color:var(--green);background:#4ade801a}.upd2-stat.warn .upd2-num{color:var(--amber);background:#fbbf241f}.upd2-stat.fail .upd2-num{background:rgba(var(--danger-rgb),.12);color:var(--danger-text)}.upd2-stat.busy .upd-spin{border-width:3px;width:40px;height:40px;margin:8px}.upd2-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.upd2-sched{color:var(--muted);align-items:center;gap:.4rem;margin-top:1rem;font-size:.84rem;display:inline-flex}.upd2-sched:hover{color:var(--fg)}.upd2-sched svg{width:14px;height:14px}.upd2-timeline{border-top:1px solid var(--border);margin:1.3rem 0 0;padding:1rem 0 0;list-style:none}.upd2-timeline li{align-items:center;gap:.8rem;padding:.45rem 0 .45rem 1.4rem;display:flex;position:relative}.upd2-timeline li:before{content:"";background:var(--border);width:2px;position:absolute;top:0;bottom:0;left:4px}.upd2-timeline li:first-child:before{top:50%}.upd2-timeline li:last-child:before{bottom:50%}.upd2-timeline li:only-child:before{display:none}.upd2-timeline .dot{background:var(--green);width:10px;height:10px;box-shadow:0 0 0 3px var(--card);border-radius:50%;margin-top:-5px;position:absolute;top:50%;left:0}.upd2-timeline li.error .dot{background:var(--danger)}.upd2-timeline .grow{min-width:0;display:grid}.upd2-timeline .t{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:500;overflow:hidden}.upd2-timeline .s{color:var(--muted);font-size:.76rem}@media (max-width:640px){.sec2-hero{text-align:center;flex-direction:column}.sec2-hero-txt{justify-items:center}.sec2-hero-act{align-self:center}.sec2-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.upd2-actions{width:100%}}.tab-dot{background:var(--amber);vertical-align:2px;border-radius:50%;width:7px;height:7px;margin-left:.4rem;display:inline-block}.fw-off{background:#fbbf2414;border:1px solid #fbbf244d;border-radius:12px;align-items:center;gap:.8rem;padding:.8rem 1rem;display:flex}.fw-off>svg{width:20px;height:20px;color:var(--amber);flex:none}.fw-off .grow{gap:.1rem;min-width:0;display:grid}.fw-off b{font-size:.92rem}.fw-off span{color:var(--muted);font-size:.85rem}.fw-off.big{padding:1rem 1.15rem}.fw-off.big>svg{width:24px;height:24px}.exp-badge.fw-badge{color:var(--amber);background:#fbbf2412;border-color:#fbbf2459}@media (max-width:640px){.fw-off{flex-wrap:wrap}}.logs-loading{place-items:center;gap:.3rem;padding:2.5rem 1rem;display:grid}.logs-loading .spinner{margin:0}.logs-stats{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:stretch;gap:.75rem;margin-bottom:1rem;display:grid}.logs-stat{border-radius:var(--radius);border:1px solid var(--border);background:var(--card);gap:.15rem;padding:1rem 1.15rem;display:grid}.logs-stat .n{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--dim);font-size:2rem;font-weight:800;line-height:1.1}.logs-stat .l{color:var(--muted);font-size:.84rem}.logs-stat.ok .n{color:var(--green)}.logs-stat.fail .n{color:var(--danger-text)}.logs-stat.warn .n{color:var(--amber)}.logs-stat.fail{border-color:rgba(var(--danger-rgb),.3);background:rgba(var(--danger-rgb),.04)}.logs-stat-tools{flex-direction:column;justify-content:space-between;align-items:flex-end;gap:.5rem;display:flex}.atk-list{gap:.55rem;display:grid}.atk{grid-template-columns:minmax(130px,200px) 1fr auto auto;align-items:center;gap:.8rem;display:grid}.atk-ip{text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.atk-bar{background:var(--glass-2);border-radius:9999px;height:8px;overflow:hidden}.atk-bar i{background:linear-gradient(90deg, rgba(var(--danger-rgb),.55), var(--danger));border-radius:9999px;height:100%;display:block}.atk-n{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.8rem}.acc-list{display:grid}.acc{border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,1fr) auto 90px;align-items:center;gap:.75rem;padding:.6rem .2rem;display:grid}.acc:last-child{border-bottom:none}.acc-ico svg{width:18px;height:18px;display:block}.acc.ok .acc-ico{color:var(--green)}.acc.fail .acc-ico{color:var(--danger-text)}.acc-main{align-items:baseline;gap:.6rem;min-width:0;display:flex}.acc-main b{font-size:.88rem;font-weight:600}.acc-main .mono{color:var(--muted);text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.acc-method{color:var(--muted);background:var(--glass-2);white-space:nowrap;border-radius:6px;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.75rem;display:inline-flex}.acc-method svg{width:12px;height:12px}.acc-time{color:var(--dim);text-align:right;white-space:nowrap;font-size:.78rem}.logs-none{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:.4rem;padding:2rem 1rem;display:flex}.logs-none svg{width:24px;height:24px;color:var(--green)}.svc-failed{background:rgba(var(--danger-rgb),.06);border:1px solid rgba(var(--danger-rgb),.25);color:var(--danger-text);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.7rem .9rem;font-size:.88rem;display:flex}.svc-failed>svg{width:17px;height:17px}.chip.on-danger{border-color:rgba(var(--danger-rgb),.4);color:var(--danger-text);font-family:var(--mono);font-size:.76rem}.logs-filters{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.logs-unit{align-items:center;gap:.2rem;display:flex}.logs-unit .input{width:190px;min-width:0}.logs-q{flex:1;min-width:200px;max-width:none}.logs-q .input{min-height:32px;padding-top:.3rem;padding-bottom:.3rem;font-size:.85rem}.log-list{border:1px solid var(--border);border-radius:10px;max-height:65vh;display:grid;overflow:hidden auto}.log{border-bottom:1px solid var(--border);grid-template-columns:64px 92px minmax(90px,160px) minmax(0,1fr);align-items:baseline;gap:.75rem;padding:.5rem .8rem;font-size:.82rem;display:grid}.log:last-child{border-bottom:none}.log:nth-child(2n){background:rgba(var(--ink),.015)}.log-lvl{text-transform:uppercase;letter-spacing:.04em;text-align:center;color:var(--muted);background:var(--glass-2);border-radius:5px;padding:.08rem .4rem;font-size:.68rem;font-weight:600}.log.err .log-lvl{color:var(--danger-text);background:rgba(var(--danger-rgb),.1)}.log.warning .log-lvl{color:var(--amber);background:#fbbf241a}.log-time{color:var(--dim);white-space:nowrap;font-size:.76rem}.log-src{font-family:var(--mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.log-msg{font-family:var(--mono);word-break:break-word;font-size:.78rem}@media (max-width:760px){.logs-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.logs-stat-tools{flex-direction:row;grid-column:1/-1;justify-content:space-between}.logs-stat{padding:.75rem}.logs-stat .n{font-size:1.5rem}.logs-stat .l{font-size:.75rem}.atk{grid-template-columns:minmax(0,1fr) auto}.atk-bar{grid-area:2/1/auto/-1}.acc{grid-template-columns:22px minmax(0,1fr) auto}.acc-method{display:none}.acc-main{flex-direction:column;gap:0}.log{grid-template-columns:58px minmax(0,1fr)}.log-src{grid-column:2}.log-time{grid-area:1/2}.log-msg{grid-column:1/-1}.logs-unit .input{width:150px}}.exp-badge.fw-badge svg{width:12px;height:12px}.logs-q svg{width:15px;height:15px;left:.7rem}.logs-q .input.input-sm{padding-left:2.1rem}.acc-more{justify-self:center;margin-top:.6rem}.fwt-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.7rem;display:grid}.fwt{border:1px solid var(--border);background:var(--card);border-radius:12px;align-content:start;gap:.4rem;padding:.75rem;display:grid}.fwt-head{align-items:center;gap:.2rem;display:flex}.fwt-head .input{flex:1;font-weight:500}.fwt-down svg{transform:rotate(180deg)}.fwt-rule{grid-template-columns:110px minmax(0,1fr) 32px;gap:.35rem;display:grid}.fwt-rule .input{width:100%;min-width:0}.fwt .btn svg{width:14px;height:14px}.fwt .link-btn{justify-self:start;font-size:.82rem;text-decoration:none}.svc-item{align-items:center;gap:.35rem;display:inline-flex}.svc-failed{flex-wrap:wrap}.sshk-list{gap:.4rem;display:grid}.sshk{border:1px solid var(--border);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.55rem .7rem;display:grid}.sshk-ico{background:var(--muted-bg,#7f7f7f1f);width:30px;height:30px;color:var(--muted);border-radius:8px;place-items:center;display:grid}.sshk-ico.mine{color:var(--ok,#22c55e);background:#22c55e1f}.sshk-ico svg{width:15px;height:15px}.sshk-main{gap:.1rem;min-width:0;display:grid}.sshk-main b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sshk-main .badge{padding:0 .35rem;font-size:.68rem}.sshk-input{resize:vertical;word-break:break-all;font-size:.78rem}.snap-wrap{gap:1rem;display:grid}.snap-head{align-items:flex-start;gap:.9rem;display:flex}.snap-head h3{margin:0 0 .2rem}.snap-ico{background:rgba(var(--accent-rgb), .12);width:42px;height:42px;color:var(--red);border-radius:12px;flex:none;place-items:center;display:grid}.snap-ico svg{width:20px;height:20px}.snap-meter{flex:none;justify-items:end;gap:.35rem;display:grid}.snap-meter .n{font-size:1.5rem;font-weight:700;line-height:1}.snap-meter .n small{color:var(--muted);font-size:.85rem;font-weight:500}.snap-meter .bar{gap:3px;display:flex}.snap-meter .bar i{background:var(--border);border-radius:3px;width:14px;height:6px}.snap-meter .bar i.on{background:var(--red)}.snap-new{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1rem;display:flex}.snap-new .input{flex:240px;min-width:0}.snap-list{gap:.55rem;margin:0;padding:0 0 0 .4rem;list-style:none;display:grid;position:relative}.snap-list:before{content:"";background:var(--border);width:2px;position:absolute;top:1.2rem;bottom:1.2rem;left:.4rem}.snap{border:1px solid var(--border);background:var(--card);border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.8rem;margin-left:1.3rem;padding:.8rem 1rem;display:grid;position:relative}.snap .dot{background:var(--card);border:2px solid var(--red);border-radius:50%;width:12px;height:12px;margin-top:-6px;position:absolute;top:50%;left:-1.62rem}.snap.auto .dot{border-color:#3b82f6}.snap.support .dot{border-color:var(--muted)}.snap-main{gap:.15rem;min-width:0;display:grid}.snap-main b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.snap-max{width:90px}.upd2-actions .check svg{vertical-align:-2px;width:14px;height:14px}@media (max-width:640px){.snap{grid-template-columns:minmax(0,1fr)}.snap-head{flex-wrap:wrap}}.ab.on{border-color:#22c55e59}.ab-rule{flex-wrap:wrap;align-items:center;gap:.45rem;margin:.9rem 0;font-size:.92rem;display:flex}.ab-rule .input{width:auto}.ab-n{width:70px!important}.ab-list{border-top:1px solid var(--border);gap:.4rem;margin-top:1rem;padding-top:.9rem;display:grid}.ab-ip{border:1px solid var(--border);border-radius:10px;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.45rem .6rem;display:grid}.ab-ip .mono{font-weight:600}@media (max-width:640px){.ab-ip{grid-template-columns:minmax(0,1fr);gap:.3rem}}.chart-head a.badge{align-items:center;gap:.3rem;text-decoration:none;display:inline-flex}.chart-head a.badge svg,.chart-head .btn svg{width:13px;height:13px}.ab-rule .input{flex:none;min-width:0;width:auto!important}.ab-rule select.input{padding-right:2rem}.card h3>svg{vertical-align:-2px;width:15px;height:15px;color:var(--muted);flex:none;margin-right:4px}
