:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #f8fafc; background: #08111f;
}
* { box-sizing: border-box; }
body {
  margin: 0; min-height: 100vh;
  background: radial-gradient(circle at 12% 0%, rgba(37,99,235,.22), transparent 30rem), #08111f;
}
.page { width: calc(100% - 16px); max-width: 1600px; margin: 0 auto; padding: 22px 0 54px; }
header, .panel { border: 1px solid #20304a; border-radius: 18px; background: rgba(15,23,42,.88); }
header { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:18px 20px; }
.brand { display:inline-flex; align-items:center; gap:10px; color:#fff; text-decoration:none; font-size:21px; font-weight:900; }
.brand::before {
  content:""; width:42px; height:42px; flex:0 0 42px; border-radius:12px;
  background:#fff8e8 url("/brand-mark.png") center/100% 100% no-repeat;
  box-shadow:0 6px 18px rgba(0,0,0,.22), inset 0 0 0 1px rgba(211,167,52,.24);
}
.home { color:#93c5fd; text-decoration:none; font-size:13px; font-weight:800; }
.hero { padding:38px 8px 24px; text-align:center; }
h1 { margin:0; font-size:clamp(30px,6vw,50px); letter-spacing:-.045em; }
.hero p { max-width:690px; margin:12px auto 0; color:#94a3b8; line-height:1.65; }
.badge { display:inline-block; margin-top:14px; padding:7px 10px; border-radius:999px; background:#102442; color:#bfdbfe; font-size:12px; font-weight:800; }
.game-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-bottom:14px; }
.game-nav a { text-align:center; text-decoration:none; color:#cbd5e1; padding:11px; border:1px solid #253550; border-radius:11px; background:#0e192b; font-size:12px; font-weight:800; }
.game-nav a[aria-current="page"] { color:#fff; border-color:#3b82f6; background:#14284b; }
.panel { padding:12px; }
.controls { display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
label { color:#a8bad0; font-size:12px; font-weight:800; }
select { min-height:40px; border:1px solid #33455f; border-radius:10px; background:#091426; color:#fff; padding:0 34px 0 12px; font:inherit; font-weight:800; }
.status { min-height:22px; color:#bfdbfe; font-size:13px; font-weight:800; text-align:center; margin:10px 0 16px; }
.table-wrap { overflow:auto; max-height:calc(100vh - 260px); border:1px solid #253550; border-radius:14px; background:#091426; overscroll-behavior:contain; }
table { width:100%; min-width:1320px; border-collapse:separate; border-spacing:0; table-layout:fixed; }
th,td { padding:9px 3px; border-right:1px solid #22334d; border-bottom:1px solid #22334d; text-align:center; white-space:nowrap; }
th:last-child, td:last-child { border-right:0; }
tbody tr:last-child td { border-bottom:0; }
th { position:sticky; top:0; z-index:5; color:#dbeafe; background:#102442; text-transform:uppercase; font-size:11px; letter-spacing:.04em; box-shadow:0 1px 0 #2a3d5a; }
th.month-col, td.month-col {
  position:sticky; left:0; width:74px; min-width:74px; z-index:6;
  font-weight:900; color:#93c5fd; background:#0d1a2e;
}
th.month-col { z-index:8; color:#dbeafe; background:#14284b; box-shadow:1px 1px 0 #2a3d5a; }
th.date-col { width:40px; min-width:40px; }
td { font-size:13px; font-weight:850; color:#f8fafc; }
td.empty-cell { color:#52657f; font-weight:700; }
tbody tr:hover td:not(.month-col) { background:#0f2039; }
footer { margin-top:24px; color:#64748b; text-align:center; font-size:12px; line-height:1.7; }
@media(min-width:1100px) {
  .table-wrap { overflow-x:hidden; overflow-y:auto; }
  table { min-width:0; }
  th.month-col, td.month-col { width:72px; min-width:72px; }
  th.date-col { width:auto; min-width:0; }
  th,td { padding-left:2px; padding-right:2px; }
}
@media(max-height:650px) {
  .table-wrap { max-height:calc(100vh - 210px); }
}
@media(max-width:650px) {
  .game-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  header { border-radius:14px; }
  .brand::before { width:36px; height:36px; flex-basis:36px; border-radius:10px; }
  .panel { padding:12px; }
  .page { width:calc(100% - 14px); }
  th,td { padding:9px 5px; }
}
