:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1013;--surface:#15171b;--surface-2:#1b1e23;--surface-3:#23272e;--border:#2a2e36;--border-strong:#3a3f49;--text:#eceef1;--text-2:#b4b9c2;--text-3:#868c97;--accent:#22c55e;--accent-strong:#16a34a;--accent-ink:#052e14;--accent-soft:#22c55e1f;--danger:#ef4444;--danger-soft:#ef44441f;--warning:#fab219;--warning-soft:#fab2191f;--info:#3987e5;--info-soft:#3987e51f;--status-good:#0ca30c;--status-warning:#fab219;--status-critical:#d03b3b;--status-off:#6b7280;--series-cpu:#3987e5;--series-mem:#d95926;--series-players:#199e70;--grid:#262a31;--console-bg:#0a0b0d;--shadow:0 10px 30px #00000073;--radius:10px;--radius-sm:7px;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5f7;--surface:#fff;--surface-2:#f7f8fa;--surface-3:#eef0f3;--border:#e3e6eb;--border-strong:#cfd4dc;--text:#0f1115;--text-2:#474d57;--text-3:#6b7280;--accent:#16a34a;--accent-strong:#15803d;--accent-ink:#fff;--accent-soft:#16a34a1a;--danger:#dc2626;--danger-soft:#dc262614;--warning-soft:#fab21929;--info:#2a78d6;--info-soft:#2a78d61a;--series-cpu:#2a78d6;--series-mem:#eb6834;--series-players:#1baf7a;--grid:#eceef2;--console-bg:#101215;--shadow:0 10px 30px #0f11151f}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5f7;--surface:#fff;--surface-2:#f7f8fa;--surface-3:#eef0f3;--border:#e3e6eb;--border-strong:#cfd4dc;--text:#0f1115;--text-2:#474d57;--text-3:#6b7280;--accent:#16a34a;--accent-strong:#15803d;--accent-ink:#fff;--accent-soft:#16a34a1a;--danger:#dc2626;--danger-soft:#dc262614;--warning-soft:#fab21929;--info:#2a78d6;--info-soft:#2a78d61a;--series-cpu:#2a78d6;--series-mem:#eb6834;--series-players:#1baf7a;--grid:#eceef2;--console-bg:#101215;--shadow:0 10px 30px #0f11151f}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{margin:0;line-height:1.25}h1{letter-spacing:-.01em;font-size:22px;font-weight:650}h2{font-size:16px;font-weight:600}h3{font-size:14px;font-weight:600}p{margin:0}code,.mono{font-family:var(--mono);font-size:.92em}.muted{color:var(--text-3)}.dim{color:var(--text-2)}.small{font-size:12.5px}.nowrap{white-space:nowrap}.num{font-variant-numeric:tabular-nums}.grow{flex:1;min-width:0}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:12px;display:flex}.stack.lg{gap:20px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{min-height:100%;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:248px;height:100vh;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:18px 18px 14px;font-weight:650;display:flex}.brand-logo{background:var(--accent-strong);border-radius:7px;place-items:center;width:28px;height:28px;display:grid}.brand small{color:var(--text-3);font-size:12px;font-weight:450;display:block}.nav{flex:1;padding:6px 10px;overflow-y:auto}.nav-section{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:14px 10px 6px;font-size:11px;font-weight:600}.nav a{border-radius:var(--radius-sm);color:var(--text-2);align-items:center;gap:10px;padding:7px 10px;font-weight:500;display:flex}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a.active{background:var(--surface-3);color:var(--text)}.nav a svg{opacity:.85;flex-shrink:0}.sidebar-foot{border-top:1px solid var(--border);align-items:center;gap:8px;padding:10px;display:flex}.avatar{background:var(--surface-3);width:30px;height:30px;color:var(--text-2);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid}.main{flex-direction:column;flex:1;min-width:0;display:flex}.content{width:100%;max-width:1240px;margin:0 auto;padding:28px 32px 48px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.page-head p{color:var(--text-2);margin-top:4px}.topbar{display:none}@media (width<=860px){.sidebar{z-index:40;box-shadow:var(--shadow);transition:transform .2s;position:fixed;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:30;align-items:center;gap:10px;padding:10px 16px;display:flex;position:sticky;top:0}.content{padding:18px 16px 40px}.scrim{z-index:35;background:#00000073;position:fixed;inset:0}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.card-head h2,.card-head h3{align-items:center;gap:8px;display:flex}.card-body{padding:18px}.card-body.tight{padding:8px}.card-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.grid{gap:16px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1080px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.grid.cols-2,.grid.cols-3{grid-template-columns:minmax(0,1fr)}.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:12px 14px}.stat .stat-value{font-size:20px}}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:7px;height:34px;padding:0 14px;font-weight:550;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.input:focus-visible,.select:focus-visible,.icon-btn:focus-visible,.toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.btn.danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.btn.danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn.sm{height:28px;padding:0 10px;font-size:13px}.btn.lg{height:40px;padding:0 18px;font-size:15px}.icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-2);cursor:pointer;background:0 0;border:none;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:6px;display:flex}.field>label,.label{color:var(--text);font-size:13px;font-weight:550}.field .help{color:var(--text-3);font-size:12.5px}.field .error{color:var(--danger);font-size:12.5px}.input,.select,.textarea{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;width:100%;height:36px;padding:0 11px;transition:border-color .12s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.textarea{resize:vertical;height:auto;padding:10px 11px}.input-group{align-items:stretch;display:flex}.input-group .input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .suffix{border:1px solid var(--border-strong);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-3);color:var(--text-2);white-space:nowrap;border-left:none;align-items:center;padding:0 11px;display:flex}.input-icon{position:relative}.input-icon svg{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.input-icon .input{padding-left:34px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;display:grid}@media (width<=640px){.form-grid{grid-template-columns:minmax(0,1fr)}}.span-2{grid-column:1/-1}input[type=range]{width:100%;accent-color:var(--accent)}.toggle{background:var(--border-strong);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:38px;height:22px;transition:background .15s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0000004d}.toggle.on{background:var(--accent-strong)}.toggle.on:after{transform:translate(16px)}.toggle:disabled{opacity:.5;cursor:not-allowed}.setting-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.setting-row:last-child{border-bottom:none}.setting-row .info{min-width:0}.setting-row .info .help{color:var(--text-3);margin-top:2px;font-size:12.5px}.setting-row .control{flex-shrink:0;justify-content:flex-end;width:240px;display:flex}@media (width<=640px){.setting-row{flex-direction:column;align-items:stretch}.setting-row .control{justify-content:flex-start;width:100%}}.badge{background:var(--surface-3);height:22px;color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.badge.green{background:var(--accent-soft);color:var(--accent)}.badge.red{background:var(--danger-soft);color:var(--danger)}.badge.yellow{background:var(--warning-soft);color:var(--warning)}.badge.blue{background:var(--info-soft);color:var(--info)}.status{white-space:nowrap;align-items:center;gap:7px;font-size:13px;font-weight:600;display:inline-flex}.status-dot{background:var(--status-off);border-radius:50%;flex-shrink:0;width:9px;height:9px}.status.online .status-dot{background:var(--status-good);box-shadow:0 0 0 3px #0ca30c33}.status.starting .status-dot,.status.stopping .status-dot{background:var(--status-warning);animation:1.2s ease-in-out infinite pulse}.status.unresponsive .status-dot{background:var(--status-critical)}.status.sleeping .status-dot{background:var(--info)}@keyframes pulse{50%{opacity:.35}}.alert{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.alert svg{flex-shrink:0;margin-top:2px}.alert.info{background:var(--info-soft);border-color:#0000}.alert.info>svg{color:var(--info)}.alert.warning{background:var(--warning-soft);border-color:#0000}.alert.warning>svg{color:var(--warning)}.alert.danger{background:var(--danger-soft);border-color:#0000}.alert.danger>svg{color:var(--danger)}.alert.success{background:var(--accent-soft);border-color:#0000}.alert.success>svg{color:var(--accent)}.alert .grow{min-width:0}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:2px;margin-bottom:22px;display:flex;overflow-x:auto}.tabs a,.tabs button{color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:10px 14px;font-weight:550;display:inline-flex}.tabs a:hover,.tabs button:hover{color:var(--text)}.tabs a.active,.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;padding:2px;display:inline-flex}.segmented button{cursor:pointer;color:var(--text-2);background:0 0;border:none;border-radius:5px;padding:4px 10px;font-size:13px;font-weight:550}.segmented button.active{background:var(--surface-3);color:var(--text)}.table-wrap{position:relative;overflow-x:auto}table.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}.table tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--surface-2)}.table td.actions{text-align:right;white-space:nowrap}.table tr.clickable{cursor:pointer}.modal-backdrop{z-index:100;background:#05060899;grid-template-columns:minmax(0,1fr);place-items:center;padding:16px;animation:.12s fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;width:100%;max-width:480px;max-height:calc(100vh - 32px);animation:.14s pop;display:flex}.modal.wide{max-width:720px}.modal.full{max-width:1100px;height:calc(100vh - 32px)}.modal-head{justify-content:space-between;align-items:center;gap:12px;padding:16px 20px 12px;display:flex}.modal-body{flex:1;padding:4px 20px 16px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.97)}}.toasts{z-index:200;flex-direction:column;gap:8px;max-width:min(380px,100vw - 36px);display:flex;position:fixed;bottom:18px;right:18px}.toast{border-radius:var(--radius);background:var(--surface-3);border:1px solid var(--border-strong);box-shadow:var(--shadow);align-items:flex-start;gap:10px;padding:12px 14px;animation:.15s pop;display:flex}.toast.success svg{color:var(--accent)}.toast.error svg{color:var(--danger)}.toast.info svg{color:var(--info)}.toast svg{flex-shrink:0;margin-top:2px}.empty{text-align:center;color:var(--text-2);padding:48px 20px}.empty .empty-icon{background:var(--surface-3);width:48px;height:48px;color:var(--text-2);border-radius:12px;place-items:center;margin:0 auto 14px;display:grid}.empty h3{color:var(--text);margin-bottom:6px;font-size:15px}.empty p{max-width:420px;margin:0 auto}.empty .btn{margin-top:16px}.progress{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.progress>div{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.progress.indeterminate>div{width:35%;animation:1.2s ease-in-out infinite indet}@keyframes indet{0%{transform:translate(-100%)}to{transform:translate(300%)}}.meter{background:var(--surface-3);border-radius:999px;height:6px;margin-top:10px;overflow:hidden}.meter>div{background:var(--accent);border-radius:999px;height:100%}.meter.warn>div{background:var(--status-warning)}.meter.crit>div{background:var(--status-critical)}.divider{background:var(--border);height:1px;margin:4px 0}.kbd{font-family:var(--mono);border:1px solid var(--border-strong);color:var(--text-2);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:11.5px}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--surface-3), var(--surface-2));background-size:200% 100%;border-radius:6px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.center-page{place-items:center;min-height:100%;padding:24px;display:grid}.copy-field{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--mono);align-items:center;gap:4px;padding:4px 4px 4px 12px;font-size:14px;display:flex}.copy-field span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--text-2);padding:22px;transition:border-color .12s,background .12s}.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 14px;display:flex}.list-item:last-child{border-bottom:none}.player-head{width:28px;height:28px;image-rendering:pixelated;background:var(--surface-3);border-radius:5px;flex-shrink:0}.addon-icon{background:var(--surface-3);object-fit:cover;width:40px;height:40px;color:var(--text-3);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.chip{border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer;height:26px;color:var(--text-2);border-radius:999px;align-items:center;padding:0 10px;font-size:12.5px;display:inline-flex}.chip:hover{color:var(--text);background:var(--surface-3)}.stat{padding:16px 18px}.stat .stat-label{color:var(--text-2);align-items:center;gap:7px;font-size:13px;font-weight:500;display:flex}.stat .stat-value{letter-spacing:-.01em;margin-top:6px;font-size:24px;font-weight:650}.stat .stat-sub{color:var(--text-3);margin-top:2px;font-size:12.5px}.chart{position:relative}.chart svg{width:100%;display:block;overflow:visible}.chart .axis text{fill:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.chart .gridline{stroke:var(--grid);stroke-width:1px}.chart .crosshair{stroke:var(--text-3);stroke-width:1px}.chart-tooltip{pointer-events:none;background:var(--surface-3);border:1px solid var(--border-strong);box-shadow:var(--shadow);white-space:nowrap;z-index:5;border-radius:8px;padding:7px 10px;font-size:12px;position:absolute}.chart-tooltip strong{font-size:13.5px;display:block}.chart-tooltip .key{vertical-align:middle;border-radius:1px;width:12px;height:2px;margin-right:6px;display:inline-block}.chart-empty{color:var(--text-3);place-items:center;font-size:13px;display:grid}.console{background:var(--console-bg);color:#d6dae0;font-family:var(--mono);border-radius:var(--radius) var(--radius) 0 0;white-space:pre-wrap;word-break:break-word;height:calc(100vh - 360px);min-height:320px;padding:12px 14px;font-size:12.5px;line-height:1.55;overflow-y:auto}.console .l-warn{color:#f5c451}.console .l-error{color:#ff7b72}.console .l-cmd{color:#7ee787}.console .l-sys{color:#79c0ff}.console .l-dim{color:#7d8590}.console-input{border-radius:0 0 var(--radius) var(--radius);background:#121418;border-top:1px solid #23262c;align-items:center;gap:8px;padding:8px 10px;display:flex}.console-input span{color:#7ee787;font-family:var(--mono)}.console-input input{color:#e6e8eb;font-family:var(--mono);background:0 0;border:none;outline:none;flex:1;height:30px;font-size:13px}.console-input input:disabled{opacity:.5}.editor{resize:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--console-bg);color:#e6e8eb;width:100%;height:100%;min-height:300px;font-family:var(--mono);tab-size:2;outline:none;padding:12px 14px;font-size:13px;line-height:1.55}.server-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.server-head .title{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.server-head .meta{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:14px;margin-top:8px;display:flex}.address-btn{font-family:var(--mono);border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:4px 10px;font-size:13.5px;display:inline-flex}.address-btn:hover{border-color:var(--border-strong);background:var(--surface-3)}.power{flex-wrap:wrap;gap:8px;display:flex}.server-card{padding:18px;transition:border-color .12s,transform .12s;display:block}.server-card:hover{border-color:var(--border-strong)}.sticky-save{z-index:10;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:10px 12px 10px 16px;display:flex;position:sticky;bottom:16px}.type-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.type-card{text-align:left;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer;padding:12px 14px}.type-card:hover{border-color:var(--text-3)}.type-card.selected{border-color:var(--accent);background:var(--accent-soft)}.type-card strong{margin-bottom:2px;display:block}.type-card span{color:var(--text-2);font-size:12.5px}.breadcrumb{flex-wrap:wrap;align-items:center;gap:2px;font-size:13.5px;display:flex}.breadcrumb button{cursor:pointer;color:var(--text-2);background:0 0;border:none;border-radius:5px;padding:3px 6px}.breadcrumb button:hover{background:var(--surface-3);color:var(--text)}.breadcrumb button:last-child{color:var(--text);font-weight:600}.file-row td:first-child{width:34px;padding-right:0}.file-name{cursor:pointer;align-items:center;gap:9px;display:flex}.file-name:hover span{text-decoration:underline}input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}.menu{position:relative}.menu-pop{z-index:150;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius);min-width:180px;box-shadow:var(--shadow);padding:4px}.menu-pop button{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:9px;width:100%;padding:7px 10px;display:flex}.menu-pop button:hover{background:var(--surface-2)}.menu-pop button.danger{color:var(--danger)}.login-card{width:100%;max-width:380px;padding:30px 28px}.login-card .brand{justify-content:center;padding:0 0 22px}
