:root{--g: #39a751;--g-bright: #5ec97e;--g-deep: #2b7d40;--g-soft: rgba(57, 167, 81, .14);--g-softer: rgba(57, 167, 81, .07);--g-line: rgba(57, 167, 81, .3);--bg: #0b0e0d;--bg-tint: #0e1311;--surface-1: #121815;--surface-2: #161d19;--border: rgba(255, 255, 255, .07);--border-strong: rgba(57, 167, 81, .28);--text: #e7efe9;--text-dim: #a7b7ad;--muted: #78897f;--font: "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", "Consolas", ui-monospace, monospace;--radius: 14px;--shadow: 0 8px 30px rgba(0, 0, 0, .45)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:radial-gradient(1100px 500px at 78% -10%,rgba(57,167,81,.1),transparent 60%),radial-gradient(900px 500px at 0% 110%,rgba(57,167,81,.06),transparent 55%),var(--bg);background-attachment:fixed}.app{position:relative;display:grid;grid-template-columns:232px 1fr;grid-template-rows:66px 1fr;grid-template-areas:"brand topbar" "nav main";height:100%}.brand{grid-area:brand;display:flex;align-items:center;gap:10px;padding:0 22px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--bg-tint)}.brand h1{font-size:21px;letter-spacing:6px;margin:0;font-weight:600;color:var(--text)}.brand h1:first-letter{color:var(--g)}.brand .rev{font-size:10px;letter-spacing:2px;color:var(--muted)}.topbar{grid-area:topbar;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid var(--border);background:var(--bg-tint);text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--muted)}.topbar-right{display:flex;align-items:center;gap:20px}.topbar-right .ver{font-family:var(--mono);color:var(--text-dim);font-size:11px;text-transform:none;letter-spacing:0}.nav{grid-area:nav;border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:2px;background:var(--bg-tint)}.nav a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:var(--text-dim);text-decoration:none;font-size:14px;letter-spacing:.4px;border:1px solid transparent;transition:background .15s ease,color .15s ease}.nav a:hover{color:var(--text);background:var(--g-softer)}.nav a.active{color:var(--text);background:var(--g-soft);border-color:var(--border-strong)}.nav a.active:before{content:"";width:3px;height:16px;border-radius:3px;background:var(--g);margin-right:-4px}.nav a.soon{opacity:.45}.nav .soon-tag{margin-left:auto;font-size:9px;letter-spacing:1px;color:var(--muted);border:1px solid var(--border);padding:1px 5px;border-radius:5px}.main{grid-area:main;padding:26px;overflow:auto}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:24px}.stat{border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;background:linear-gradient(158deg,var(--surface-2),var(--surface-1));box-shadow:var(--shadow);position:relative;overflow:hidden}.stat:after{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,var(--g-soft),transparent 70%)}.stat .label{text-transform:uppercase;letter-spacing:2px;font-size:11px;color:var(--muted)}.stat .value{font-family:var(--mono);font-size:32px;color:var(--g-bright);margin-top:8px}.panel{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(158deg,var(--surface-1),var(--bg-tint));margin-bottom:22px;overflow:hidden;box-shadow:var(--shadow)}.panel>header{padding:15px 20px;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--text-dim)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:11px 20px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:10.5px;font-weight:600}td{padding:12px 20px;border-top:1px solid var(--border);font-family:var(--mono);color:var(--text)}tbody tr:hover{background:var(--g-softer)}.empty{padding:26px 20px;color:var(--muted);font-style:italic}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}.dot.up{background:var(--g);box-shadow:0 0 0 3px var(--g-soft);animation:pulse 2s infinite}.dot.down{background:var(--muted)}@keyframes pulse{0%,to{box-shadow:0 0 0 3px var(--g-soft)}50%{box-shadow:0 0 0 5px #39a7510d}}.badge{font-family:var(--mono);font-size:11px;padding:2px 9px;border-radius:20px;border:1px solid var(--g-line);background:var(--g-soft);color:var(--g-bright)}.badge.offline{color:var(--muted);border-color:var(--border);background:transparent}.ticker{font-family:var(--mono);font-size:12px;max-height:260px;overflow:auto;padding:8px 0}.ticker .line{padding:5px 20px;color:var(--text-dim)}.ticker .line .k{color:var(--g-bright)}.ticker .line .t{color:var(--muted);margin-right:10px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-head h2{margin:0;font-size:20px;letter-spacing:3px;text-transform:uppercase;color:var(--text);font-weight:600}.btn{align-self:flex-start;background:var(--g);border:1px solid var(--g);color:#06120a;border-radius:9px;padding:9px 18px;font-size:13px;letter-spacing:.6px;font-weight:600;cursor:pointer;transition:background .15s ease,transform .05s ease}.btn:hover:not(:disabled){background:var(--g-bright)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{padding:5px 13px;font-size:11px;margin-right:8px}.btn.ghost{background:transparent;border-color:var(--border);color:var(--text-dim)}.btn.ghost:hover:not(:disabled){color:var(--text);border-color:var(--muted);background:transparent}.btn.danger{background:transparent;border-color:var(--border);color:var(--text-dim);padding:5px 13px;font-size:11px;font-weight:500}.btn.danger:hover:not(:disabled){color:var(--text);border-color:var(--muted);background:#ffffff0a}.row-action{text-align:right}.form{padding:20px;display:flex;flex-direction:column;gap:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form label{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.form input,.form select{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:10px 12px;color:var(--text);font-family:var(--mono);font-size:13px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.form input:focus,.form select:focus{border-color:var(--g);box-shadow:0 0 0 3px var(--g-soft)}.hint-inline{color:var(--muted);font-size:11px;text-transform:none;letter-spacing:0;margin:0}.form .check{flex-direction:row;align-items:center;gap:10px;text-transform:none;letter-spacing:0;font-size:13px;color:var(--text)}.form .check input{width:16px;height:16px;accent-color:var(--g)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}@media (max-width: 900px){.two-col,.form-row{grid-template-columns:1fr}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#040706a8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:60px 20px;overflow:auto}.modal{width:100%;max-width:620px;border:1px solid var(--border-strong);border-radius:var(--radius);background:linear-gradient(158deg,var(--surface-2),var(--surface-1));box-shadow:var(--shadow);animation:rise .18s ease}.modal>header{padding:16px 20px;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:2px;font-size:13px;color:var(--text)}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:6px}.form-actions .btn{align-self:auto}@keyframes rise{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.toast{position:fixed;bottom:24px;right:24px;z-index:30;padding:13px 20px;border-radius:11px;font-size:13px;font-family:var(--mono);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);box-shadow:var(--shadow);max-width:420px;animation:rise .18s ease}.toast:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:10px;background:var(--g);vertical-align:middle}.toast.err{color:var(--text)}.toast.err:before{background:var(--muted)}code{color:var(--g-bright);font-family:var(--mono)}.pager{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--border);font-family:var(--mono);font-size:12px;color:var(--muted)}.pager .btn.small{margin-left:8px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px;padding:32px;border:1px solid var(--border-strong);border-radius:var(--radius);background:linear-gradient(158deg,var(--surface-2),var(--surface-1));box-shadow:var(--shadow)}.login-brand{text-align:center;margin-bottom:8px}.login-brand h1{margin:0;font-size:28px;letter-spacing:8px;font-weight:600;color:var(--text)}.login-brand h1:first-letter{color:var(--g)}.login-brand .rev{font-size:10px;letter-spacing:3px;color:var(--muted);margin-top:4px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.login-card input{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:11px 12px;color:var(--text);font-size:14px;outline:none}.login-card input:focus{border-color:var(--g);box-shadow:0 0 0 3px var(--g-soft)}.login-card .btn{align-self:stretch;text-align:center;justify-content:center;margin-top:4px}.login-error{color:#d98a8a;font-size:12px;text-align:center}.restart-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin-bottom:18px;border-color:var(--g-line);background:var(--g-softer)}.restart-banner strong{color:var(--g-bright)}label.checkbox{flex-direction:row;align-items:center;gap:10px;font-size:13px;color:var(--text-dim);cursor:pointer}label.checkbox input{width:auto;margin:0;accent-color:var(--g)}
