:root{color-scheme:dark;--font-ui: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--bg-base: #0a0e12;--bg-sunken: #06090c;--surface-1: #10151b;--surface-2: #161c24;--surface-3: #1e2630;--border: #202832;--border-strong: #364250;--accent: #5cc07d;--accent-strong: #3f9e60;--accent-soft: rgba(92, 192, 125, .13);--text: #e8eef4;--text-muted: #8b9aab;--ok: #5cc07d;--warn: #e0a52e;--danger: #e05a52;--info: #57a9d6;--radius: 9px;--radius-lg: 14px;--ease: cubic-bezier(.2, .7, .2, 1);--dur: .2s}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:var(--font-ui);background:radial-gradient(900px 420px at 12% -8%,rgba(92,192,125,.12),transparent 55%),var(--bg-base);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.rail{background:var(--bg-sunken);border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:8px}.brand{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 4px}.brand-sub{font-size:18px;font-weight:650;margin:0 0 24px}.nav-link{display:block;padding:10px 12px;border-radius:var(--radius);color:var(--text-muted);text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-link:hover,.nav-link.active{background:var(--accent-soft);color:var(--text);text-decoration:none}.main{padding:28px 32px 48px;max-width:1100px}.page-title{margin:0 0 6px;font-size:1.6rem;font-weight:650}.page-sub{margin:0 0 24px;color:var(--text-muted)}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:16px}.panel-title{margin:0 0 12px;font-size:1.05rem;font-weight:650}.server-name{font-weight:600}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:var(--radius);padding:9px 14px;background:var(--accent);color:#062012;font-weight:600;cursor:pointer;transition:transform var(--dur) var(--ease),filter var(--dur) var(--ease)}.btn:hover{filter:brightness(1.05)}.btn:active{transform:translateY(1px)}.btn.secondary{background:var(--surface-3);color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px;min-width:180px;flex:1}.field label{font-size:12px;color:var(--text-muted)}.field input,.field select,.field textarea{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius);padding:9px 11px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--text-muted);font-weight:500;font-size:12px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.badge.ok{background:#5cc07d26;color:var(--ok)}.badge.off{background:#8b9aab26;color:var(--text-muted)}.badge.warn{background:#e0a52e26;color:var(--warn)}.mono{font-family:var(--font-mono);font-size:12px}.muted{color:var(--text-muted)}.err{color:var(--danger);margin:0 0 12px}.ok-msg{color:var(--ok);margin:0 0 12px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(400px,100%);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 24px;box-shadow:0 24px 60px #0006;animation:rise .42s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.secret-once{background:var(--bg-sunken);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:12px;word-break:break-all}@media(max-width:800px){.shell{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;flex-wrap:wrap;align-items:center}.brand-sub{margin:0 16px 0 0}.main{padding:20px 16px 40px}}
