:root{
  --bg1:#e8f3ff; --bg2:#b8d9ff; --bg3:#315f9f; --ink:#142033; --muted:#60708b;
  --panel:rgba(255,255,255,.88); --line:rgba(34,62,105,.16); --blue:#2563eb; --red:#dc2626; --green:#16a34a; --amber:#d97706;
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);min-height:100vh;background:radial-gradient(circle at 20% 0%,#ffffff 0,#e8f3ff 28%,transparent 50%),linear-gradient(135deg,var(--bg1),var(--bg2) 48%,var(--bg3));}
body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px);background-size:44px 44px;pointer-events:none;opacity:.35}.shell{position:relative;max-width:1240px;margin:0 auto;padding:28px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:800;color:#25548f}h1{margin:0;font-size:40px;line-height:1}h2{margin:0 0 4px}.top-actions{display:flex;align-items:center;gap:10px}.who{font-weight:800;color:#1d3557}.panel{background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:0 18px 60px rgba(25,52,89,.18);backdrop-filter:blur(10px);padding:22px}.login-panel{max-width:460px;margin:40px auto}.muted{color:var(--muted);margin:0 0 14px}.login-form{display:grid;gap:14px}.login-form label{font-weight:800;color:#253756}.login-form input{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:16px}button{border:0;border-radius:14px;background:linear-gradient(135deg,#2f80ed,#1d4ed8);color:white;font-weight:900;padding:12px 16px;cursor:pointer;box-shadow:0 8px 18px rgba(37,99,235,.22)}button.secondary{background:rgba(255,255,255,.8);color:#1e3a5f;border:1px solid var(--line);box-shadow:none}button.danger{background:linear-gradient(135deg,#ef4444,#b91c1c)}button:disabled{opacity:.6;cursor:not-allowed}.hidden{display:none!important}.error{color:#b91c1c;font-weight:800;margin-top:12px}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-bottom:18px}.metric{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:18px;padding:16px}.metric .label{color:var(--muted);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.08em}.metric .num{font-size:32px;font-weight:950}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.stamp{font-size:12px;color:var(--muted);font-weight:700}.games{display:grid;gap:16px;margin-top:14px}.game{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:20px;padding:16px}.game-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.game-title{font-size:22px;font-weight:950}.status{font-size:12px;font-weight:950;border-radius:999px;padding:6px 10px}.ok{background:#dcfce7;color:#166534}.bad{background:#fee2e2;color:#991b1b}.stats{display:grid;grid-template-columns:repeat(5,minmax(96px,1fr));gap:10px;margin:12px 0}.stat{background:rgba(248,250,252,.9);border:1px solid var(--line);border-radius:14px;padding:10px}.stat b{display:block;font-size:20px}.actions{display:flex;gap:10px;flex-wrap:wrap}.details{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;max-height:280px;overflow:auto}.row{display:grid;grid-template-columns:1.2fr .9fr .8fr .8fr 1fr;gap:8px;padding:8px;border-radius:10px;font-size:13px}.row:nth-child(odd){background:rgba(255,255,255,.55)}.row.head{font-weight:950;color:#43536d;background:rgba(226,236,251,.8)}.version{position:fixed;right:14px;bottom:10px;font-size:12px;color:rgba(20,32,51,.66);font-weight:800}@media(max-width:800px){.shell{padding:18px}.topbar{align-items:flex-start;flex-direction:column}h1{font-size:32px}.summary-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.row{grid-template-columns:1fr;gap:2px}.panel-head{flex-direction:column}}
button.small{padding:7px 10px;border-radius:10px;font-size:12px;box-shadow:none;margin:2px 4px 2px 0}
.socket-actions{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
button.secondary-danger{background:rgba(255,255,255,.85);color:#991b1b;border:1px solid rgba(185,28,28,.28)}
