:root{--bg0:#07111f;--bg1:#0c1a2e;--bg2:#12233a;--panel:#0f1c30eb;--border:#7da0c829;--text:#e8eef7;--muted:#8aa0b8;--accent:#2eb8a0;--accent-2:#3d9be9;--danger:#e85d6a;--warn:#e6a23c;--ok:#3dcc8c;--radius:12px;--font:"DM Sans", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg0);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.45}button,input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:.85em}.block{display:block}.boot-screen{min-height:100%;color:var(--muted);place-items:center;display:grid}.login-page{place-items:center;min-height:100%;padding:24px;display:grid;position:relative}.login-backdrop{z-index:0;background:radial-gradient(80% 60% at 20% 10%,#2eb8a02e,#0000 55%),radial-gradient(70% 50% at 90% 80%,#3d9be929,#0000 50%),linear-gradient(160deg,#061018 0%,#0a1c33 45%,#07111f 100%);position:absolute;inset:0}.login-card{z-index:1;background:var(--panel);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);flex-direction:column;gap:14px;width:min(400px,100%);padding:28px;animation:.45s ease-out rise;display:flex;position:relative;box-shadow:0 24px 60px #00000059}.login-brand{text-align:center;margin-bottom:8px}.login-brand h1{letter-spacing:-.02em;margin:10px 0 4px;font-size:1.55rem}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--accent-2));letter-spacing:.04em;border-radius:10px;place-items:center;width:36px;height:36px;font-size:.75rem;font-weight:700;display:inline-grid}.brand-mark.lg{border-radius:14px;width:48px;height:48px;font-size:.9rem}.app-shell{grid-template-columns:260px 1fr;min-height:100%;display:grid}.sidebar{background:linear-gradient(180deg, #12233af2, #08101cfa), var(--bg1);border-right:1px solid var(--border);flex-direction:column;gap:8px;padding:16px 12px;display:flex}.sidebar-brand{align-items:center;gap:10px;padding:4px 8px 12px;display:flex}.brand-name{letter-spacing:-.02em;font-weight:700}.brand-meta{color:var(--muted);align-items:center;gap:6px;font-size:.75rem;display:flex}.ws-dot,.status-dot{background:#64748b;border-radius:50%;flex-shrink:0;width:8px;height:8px}.ws-dot.on,.status-dot.online{background:var(--ok);box-shadow:0 0 0 3px #3dcc8c33}.ws-dot.off,.status-dot.offline{background:var(--danger)}.status-dot.lg{width:12px;height:12px}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.nav-item{color:var(--muted);border-radius:8px;padding:8px 10px}.nav-item:hover,.nav-item.active{color:var(--text);background:#3d9be91f}.sidebar-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:10px;padding:0 10px;font-size:.7rem}.server-list{flex-direction:column;flex:1;gap:2px;min-height:0;display:flex;overflow:auto}.server-item{color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.server-item:hover,.server-item.active{background:#2eb8a01f}.server-item-text{flex-direction:column;flex:1;min-width:0;display:flex}.server-item-name{white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;overflow:hidden}.server-item-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.lock-badge{color:var(--warn);background:#e6a23c33;border-radius:4px;padding:2px 5px;font-size:.65rem;font-weight:700}.lock-badge.large{align-self:center;padding:3px 8px;font-size:.7rem}.logout-btn{margin-top:auto}.main-pane{background:radial-gradient(ellipse 60% 40% at 100% 0%, #2eb8a012, transparent 50%), radial-gradient(ellipse 50% 35% at 0% 100%, #3d9be90f, transparent 45%), var(--bg0);min-width:0;overflow:auto}.page{max-width:1280px;padding:24px 28px 40px;animation:.3s fade}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.03em;margin:0;font-size:1.6rem}.page-title-row{align-items:center;gap:10px;display:flex}.host-uptime{color:var(--text);margin:6px 0 0;font-size:.95rem}.host-uptime strong{letter-spacing:-.02em;font-weight:600}.pad{padding:8px 10px}.stat-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.stat-label{color:var(--muted);margin-bottom:4px;font-size:.75rem;display:block}.stat-value{letter-spacing:-.03em;font-size:1.6rem;font-weight:700}.stat-value.ok{color:var(--ok)}.stat-value.bad{color:var(--danger)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px 18px}.panel-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.panel-head h2{margin:0;font-size:1.05rem}.overview-servers{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.overview-server{border:1px solid var(--border);background:#ffffff05;border-radius:10px;align-items:flex-start;gap:10px;padding:12px;transition:border-color .15s,transform .15s;display:flex}.overview-server:hover{border-color:#2eb8a066;transform:translateY(-1px)}.alerts-feed{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.alert-row{border:1px solid var(--border);background:#00000026;border-radius:10px;padding:10px 12px}.alert-top{color:var(--muted);justify-content:space-between;gap:8px;font-size:.78rem;display:flex}.alert-type{font-family:var(--mono);color:var(--warn)}.alert-msg{margin:6px 0 4px;font-size:.92rem}.alert-meta{color:var(--muted);font-size:.75rem}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.tab{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:8px 14px}.tab:hover{color:var(--text)}.tab.active{color:var(--bg0);background:linear-gradient(135deg, var(--accent), #4ec4e8);border-color:#0000;font-weight:600}.charts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.chart-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px 8px}.chart-panel-head{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.chart-panel-head h3{margin:0;font-size:.95rem}.chart-empty{place-items:center;height:220px;display:grid}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.field input,.field textarea,.exec-form input{border:1px solid var(--border);color:var(--text);background:#00000040;border-radius:8px;outline:none;padding:10px 12px}.field input:focus,.field textarea:focus,.exec-form input:focus{border-color:#2eb8a08c;box-shadow:0 0 0 3px #2eb8a01f}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:9px 14px;font-size:.9rem;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--accent), #3aa8d8);color:#041018}.btn-secondary{color:#b8d9f7;background:#3d9be926;border-color:#3d9be959}.btn-danger{color:#ffb4bb;background:#e85d6a2e;border-color:#e85d6a66}.btn-warning{color:#ffd39a;background:#e6a23c2e;border-color:#e6a23c66}.btn-ghost{border-color:var(--border);color:var(--muted);background:0 0}.btn-ghost:hover{color:var(--text)}.form-error{color:#ff8f9a;margin:0;font-size:.88rem}.form-ok{color:var(--ok);margin:0;font-size:.88rem}.hint{color:var(--muted);font-size:.85rem}.hint code{font-family:var(--mono);font-size:.8em}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0;display:grid}.checkbox-row{flex-wrap:wrap;gap:14px 20px;margin-bottom:14px;display:flex}.check{align-items:center;gap:8px;font-size:.9rem;display:flex}.warnings-form .btn,.settings-form .btn{align-self:flex-start}.settings-form,.warnings-form{flex-direction:column;gap:12px;max-width:640px;display:flex}.actions-layout{flex-direction:column;gap:4px;display:flex}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.exec-form{gap:8px;display:flex}.exec-form input{flex:1}.exec-out{border:1px solid var(--border);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;background:#02080f;border-radius:8px;max-height:320px;margin-top:12px;padding:12px;font-size:.78rem;overflow:auto}.logs-form{flex-direction:column;gap:12px;display:flex}.logs-filters{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.logs-reverse{align-self:end;padding-bottom:10px}.logs-out{border:1px solid var(--border);font-family:var(--mono);background:#02080f;border-radius:8px;flex-direction:column;gap:4px;max-height:min(70vh,640px);margin-top:14px;padding:10px 12px;font-size:.75rem;display:flex;overflow:auto}.logs-line{border-bottom:1px solid #94a3b814;grid-template-columns:11.5rem minmax(6rem,10rem) 1fr;gap:8px;padding-bottom:4px;line-height:1.35;display:grid}@media (width<=900px){.logs-line{grid-template-columns:1fr;gap:2px}}.logs-ts{color:#7dd3fc;white-space:nowrap}.logs-unit{color:#a5b4fc;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.logs-msg{color:var(--text);white-space:pre-wrap;word-break:break-word}.pulse{animation:1.2s ease-in-out infinite pulse}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.svc-filters{flex-wrap:wrap;align-items:end;gap:12px 20px;margin:0 0 14px;display:flex}.svc-search{flex:220px;max-width:360px;margin:0}.svc-filter-checks{align-items:center;margin:0}.svc-filter-count{white-space:nowrap;font-size:.85rem}.svc-card-list{flex-direction:column;gap:8px;max-height:min(70vh,900px);margin:0;padding:0;list-style:none;display:flex;overflow:auto}.svc-card{--svc-accent:#94a3b8;border:1px solid color-mix(in srgb, var(--svc-accent) 45%, transparent);clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%);box-shadow:inset 3px 0 0 var(--svc-accent);background:#080e18b8;flex-direction:column;gap:0;padding:0;transition:border-color .15s,background .15s;display:flex}.svc-card-main{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:10px 14px;display:grid}.svc-card-main:hover{background:#94a3b80f}.svc-card-open .svc-card-main{border-bottom:1px solid #94a3b81f}.svc-expand-hint{-webkit-user-select:none;user-select:none;margin-left:auto;font-size:.75rem}.svc-card-charts{padding:12px 14px 14px}.svc-charts-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.svc-charts-grid .chart-panel{margin:0}.svc-charts-grid .chart-body{min-height:180px}.svc-charts-grid .recharts-responsive-container{min-height:180px!important}@media (width<=900px){.svc-charts-grid{grid-template-columns:1fr}}.svc-card.svc-active{--svc-accent:var(--ok);background:#3dcc8c0f}.svc-card.svc-failed{--svc-accent:var(--danger);background:#e85d6a1a}.svc-card.svc-stopped{--svc-accent:#7b8fa6;background:#0f172a66}.svc-card.svc-transient{--svc-accent:var(--warn);background:#e6a23c14}.svc-card.svc-unknown{--svc-accent:#64748b}.svc-card-body{flex-direction:column;gap:4px;min-width:0;display:flex}.svc-card-top{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.svc-card-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.95rem;font-weight:700;overflow:hidden}.svc-pill,.svc-enable-badge{border:1px solid var(--border);white-space:nowrap;background:#00000040;border-radius:999px;flex-shrink:0;padding:2px 10px;font-size:.68rem;font-weight:600}.svc-pill{color:var(--svc-accent);border-color:color-mix(in srgb, var(--svc-accent) 65%, transparent)}.svc-enable-badge{color:var(--muted)}.svc-enable-badge.svc-enable-on{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 55%, transparent)}.svc-enable-badge.svc-enable-off{color:var(--muted);border-color:#94a3b873}.svc-enable-badge.svc-enable-other{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.svc-card-metrics{color:var(--muted);flex-wrap:wrap;gap:6px 14px;font-size:.78rem;display:flex}.svc-card-metrics>span{white-space:nowrap}.svc-metric-val{font-weight:600}.svc-metric-ram{color:var(--accent-2)}.svc-metric-cpu{color:var(--warn)}.svc-metric-uptime{color:var(--ok)}.svc-card-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;max-width:280px}.service-status-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.service-status-row{border:1px solid var(--border);background:#0f172a59;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.service-status-row.svc-failed{background:#ef44441f;border-color:#ef44448c;box-shadow:inset 3px 0 #ef4444}.service-status-row.svc-active{box-shadow:inset 3px 0 0 var(--ok);border-color:#3dcc8c59}.service-status-row.svc-stopped{border-color:#94a3b859;box-shadow:inset 3px 0 #94a3b8}.service-status-row.svc-transient{border-color:#fbbf2473;box-shadow:inset 3px 0 #fbbf24}.service-status-main{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.service-unit{font-weight:600}.service-state-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:#94a3b833;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:700}.service-state-badge.svc-failed{color:#fca5a5;background:#ef444440}.service-state-badge.svc-active{color:#86efac;background:#3dcc8c33}.service-state-badge.svc-stopped{color:#cbd5e1;background:#94a3b833}.service-state-badge.svc-transient{color:#fde68a;background:#fbbf2433}.service-uptime{font-size:.85rem}.service-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end}.service-status-list.dense{gap:4px;max-height:min(70vh,900px);overflow:auto}.service-status-list.dense .service-status-row{border-radius:8px;gap:8px;padding:6px 8px}.service-monitor{cursor:pointer;flex-shrink:0;align-items:center;margin:0;display:flex}.service-monitor input{width:16px;height:16px;accent-color:var(--accent)}.service-file-state{min-width:4.5rem;font-size:.78rem}.btn-xs{padding:4px 8px;font-size:.75rem}.proc-table-wrap{border:1px solid var(--border);border-radius:8px;max-height:min(70vh,900px);overflow:auto}.proc-table{border-collapse:collapse;width:100%;font-size:.85rem}.proc-table th,.proc-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 10px}.proc-table th{background:var(--bg2);z-index:1;color:var(--muted);white-space:nowrap;font-weight:600;position:sticky;top:0}.proc-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.proc-table th.sortable:hover{color:var(--text)}.proc-table tbody tr:hover{background:#2eb8a00f}.proc-name{white-space:nowrap}.proc-args{text-overflow:ellipsis;white-space:nowrap;max-width:42vw;font-family:var(--mono);color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:none;margin:0;padding:0;font-size:.78rem;display:block;overflow:hidden}.proc-args:hover{color:var(--accent-2);text-decoration:underline}.modal-backdrop{z-index:100;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:12px;width:min(480px,100%);padding:20px;display:flex}.modal h3{margin:0;font-size:1.1rem}@media (width<=960px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);max-height:42vh}.charts-grid,.stat-row,.form-grid{grid-template-columns:1fr}.page{padding:16px}.svc-card-main{grid-template-columns:auto minmax(0,1fr)}.svc-card-actions{grid-column:1/-1;justify-content:flex-start;max-width:none}.service-status-row{flex-wrap:wrap}.proc-args{max-width:50vw}}
