:root{--bg:#080e1a;--surface:#101a2b;--surface2:#142238;--line:#243650;--text:#e9f1ff;--muted:#91a4bf;--blue:#5b9cff;--cyan:#59d0d2;--green:#45c99a;--red:#ff7684;--amber:#f2c36e;--shadow:0 18px 44px #0004}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(900px 420px at 75% -18%,#1a3861 0,transparent 62%),var(--bg);color:var(--text);font-family:Tahoma,"Segoe UI",sans-serif;font-size:14px;line-height:1.75}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted,small{color:var(--muted)}.tiny{font-size:11px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#7ea9df;margin:0 0 5px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:linear-gradient(160deg,#142239,#0d1728);border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:var(--shadow)}.login-card h1{font-size:24px;margin:0}.login-card label{display:block;margin:16px 0 5px;color:var(--muted);font-size:12px}.login-card input,.field input,.field select{width:100%;background:#091321;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 13px;outline:none}.login-card input{margin-top:6px}.login-card input:focus,.field input:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #5b9cff22}.login-card small{display:block;text-align:center;margin-top:18px;font-size:11px}.brand-mark{height:48px;width:48px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,#3488e8,#8064e9);font-size:27px;font-weight:800;margin-bottom:20px;box-shadow:0 10px 22px #347fdc33}.btn{border:1px solid var(--line);background:#1a2b43;color:var(--text);padding:9px 14px;border-radius:10px;font-size:12px;transition:.15s}.btn:hover{filter:brightness(1.14)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:#245da8;border-color:#377bce}.btn.subtle{background:transparent}.btn.wide{width:100%;margin-top:18px}.error{color:var(--red);min-height:22px;font-size:12px}.app-shell{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;background:#0c1524;border-left:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 7px 28px}.brand .brand-mark{margin:0;height:42px;width:42px;font-size:22px}.brand b{display:block;font-size:15px}.brand small{display:block;font-size:10px;letter-spacing:1px}.sidebar nav{display:grid;gap:7px}.nav-item{display:flex;align-items:center;gap:12px;border:1px solid transparent;background:transparent;color:#a8bad3;text-align:right;border-radius:10px;padding:11px 13px}.nav-item.active{background:#1c3454;border-color:#31547e;color:#fff}.nav-item span{font-size:13px}.sidebar-bottom{margin-top:auto;color:var(--muted);font-size:11px}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-left:7px}.main{min-width:0;padding:27px clamp(15px,3vw,42px) 20px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.topbar h1{font-size:23px;margin:0}.top-actions{display:flex;align-items:center;gap:10px}.chip{border:1px solid var(--line);border-radius:30px;color:var(--muted);padding:7px 11px;font-size:10px}.notice{padding:13px 16px;border:1px solid #765e31;background:#302817;color:#ffdfa2;border-radius:12px;margin-bottom:20px;font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:13px}.metric{background:linear-gradient(155deg,#142239,#101a2b);border:1px solid var(--line);border-radius:15px;padding:17px;min-width:0;box-shadow:var(--shadow)}.metric span{display:block;color:var(--muted);font-size:11px}.metric strong{display:block;font-size:31px;line-height:1.35;margin:7px 0;font-weight:800}.metric small{font-size:10px}.metric-grid.compact .metric{padding:13px 16px}.metric-grid.compact .metric strong{font-size:21px}.small-value{font-size:16px!important}.panel-card{background:linear-gradient(160deg,#121f33,#0e192a);border:1px solid var(--line);border-radius:16px;padding:19px;margin-bottom:16px;box-shadow:var(--shadow)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.card-head h2,.panel-card h2{font-size:16px;margin:0 0 3px}.card-head p{font-size:11px;margin:0}.tab{display:none}.tab.active{display:block}.node-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.node-tile{border:1px solid var(--line);background:#0e1929;border-radius:13px;padding:14px}.node-tile b{display:block}.node-tile .role{font-size:10px;color:var(--muted)}.node-tile .node-host{font:11px ui-monospace,monospace;direction:ltr;text-align:right;margin-top:9px;display:block;color:#9db9dc}.status{display:inline-block;border-radius:20px;padding:3px 8px;font-size:9px;font-weight:700;letter-spacing:.3px}.status.online{background:#153d33;color:#76e1b8}.status.offline{background:#46232d;color:#ffa5ad}.status.pending{background:#43361f;color:#f4cc7f}.status.draining{background:#30315a;color:#bdc0ff}.status.disabled{background:#343b49;color:#aeb7c6}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:950px}th,td{text-align:right;padding:12px 10px;border-bottom:1px solid #1e3048;font-size:11px;white-space:nowrap}th{color:#8299b7;font-weight:500}td{color:#d9e5f7}.empty{text-align:center!important;color:var(--muted);padding:25px}.actions{display:flex;gap:5px}.actions .btn{padding:5px 8px;font-size:10px}.legend{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.arch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.arch-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:linear-gradient(160deg,#162640,#101a2a);min-height:195px}.arch-card.control{border-top:3px solid var(--blue)}.arch-card.game{border-top:3px solid var(--cyan)}.arch-card.database{border-top:3px solid var(--green)}.arch-tag{font-size:10px;letter-spacing:1px;color:#9dbce7}.arch-card h2{margin:12px 0 8px}.arch-card p{font-size:12px;line-height:2;color:#d4e1f5}.arch-card small{font-size:10px}.feature-list{padding-right:20px;color:#c3d1e5;font-size:12px}.feature-list li{margin:9px 0}footer{text-align:center;color:#5f7490;font-size:10px;padding:12px}.modal{position:fixed;inset:0;display:grid;place-items:center;background:#030812c9;padding:16px;z-index:10}.modal-card{width:min(560px,100%);max-height:90vh;overflow:auto;background:#101d30;border:1px solid var(--line);border-radius:18px;padding:21px;box-shadow:var(--shadow)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h2{font-size:17px;margin:0}.icon-btn{border:0;background:transparent;color:var(--muted);font-size:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field label{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.field.full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.token-box{background:#07111f;border:1px solid #33547b;border-radius:10px;padding:12px;direction:ltr;word-break:break-all;font-family:ui-monospace,monospace;font-size:12px;color:#a8d0ff}.command-note{background:#14263d;border:1px solid #294665;color:#bed5f2;padding:12px;border-radius:10px;font-size:11px;margin-top:12px}.toast{position:fixed;bottom:20px;left:20px;background:#1c3452;border:1px solid #37618d;color:#fff;border-radius:11px;padding:11px 15px;z-index:15;box-shadow:var(--shadow);font-size:12px;max-width:400px}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.node-grid,.arch-grid{grid-template-columns:1fr}.app-shell{grid-template-columns:205px minmax(0,1fr)}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-left:0;border-bottom:1px solid var(--line);padding:12px}.brand{padding-bottom:12px}.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.nav-item{justify-content:center;padding:8px 5px;font-size:11px}.nav-item span{font-size:10px}.sidebar-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.sidebar-bottom .btn{width:auto;margin:0}.main{padding:17px 12px}.topbar{align-items:flex-start;flex-direction:column}.topbar h1{font-size:20px}.metric-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:470px){.metric-grid{gap:8px}.metric{padding:12px}.metric strong{font-size:24px}.metric-grid.compact .metric strong{font-size:18px}.panel-card{padding:13px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.chip{display:none}}

/* Global TCP transport controls */
.transport-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.transport-status-grid>div{background:#0b1728;border:1px solid var(--line);border-radius:12px;padding:13px;min-width:0}.transport-status-grid small{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}.transport-status-grid b{display:block;font-size:13px;overflow-wrap:anywhere}.transport-message{line-height:1.9;margin:14px 0 0}.transport-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.transport-form .field select,.transport-form .field input{width:100%;box-sizing:border-box}.transport-submit{grid-column:1/-1;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:4px}.transport-submit small{color:var(--muted);font-size:10px;line-height:1.8}.transport-submit button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:900px){.transport-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.transport-form{grid-template-columns:1fr 1fr}}@media(max-width:560px){.transport-status-grid,.transport-form{grid-template-columns:1fr}.transport-submit{grid-column:auto;align-items:flex-start;flex-direction:column}}
