/* styles.css */
:root {
  --bg: #3c3c3c;
  --text: #eaeaea;
  --muted: #cfcfcf;
  --table-border: rgba(255, 255, 255, 0.22);
  --cell-bg: rgba(0, 0, 0, 0.08);
  --focus: rgba(255, 255, 255, 0.35);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);

  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  letter-spacing: 0.2px;
}

.page {
  min-height: 100vh;
  display: grid;
  place-items: center; /* centers the whole page content (header + table + footer) */
  padding: 28px 18px;
  text-align: center;
}

.page > * {
  width: 100%;
  display: block;
}

.top, .bottom {
  max-width: 860px;
  margin: 0 auto;
}

.brand {
  font-weight: 700;
  font-size: clamp(20px, 3.2vw, 34px);
  line-height: 1.15;
  margin-bottom: 8px;
}

.subtitle, .note {
  color: var(--muted);
  font-size: clamp(14px, 2vw, 18px);
}

.table-wrap {
  width: min(820px, 100%);
  margin: 18px auto;
}

.grid {
  width: 100%;
  border-collapse: collapse;
  background: transparent;
  overflow: hidden;
  border: 1px solid var(--table-border);
  border-radius: 12px;
}

.grid th,
.grid td {
  border: 1px solid var(--table-border);
  padding: 14px 12px;
  text-align: center;
  background: var(--cell-bg);
  color: var(--text);
  font-size: 16px;
}

.grid thead th {
  font-weight: 700;
  background: rgba(255, 255, 255, 0.06);
}

.grid tbody td {
  font-weight: 500;
}

.grid th:focus,
.grid td:focus {
  outline: 2px solid var(--focus);
  outline-offset: -2px;
}

a:link {
  color: #cfcfcf;
  background-color: transparent;
  text-decoration: none;
}

a:visited {
  color: pink;
  background-color: transparent;
  text-decoration: none;
}

a:hover {
  color: #eaeaea;
  background-color: transparent;
  text-decoration: underline;
}

a:active {
  color: yellow;
  background-color: transparent;
  text-decoration: underline;
}
