:root {
  --bg: #f1f4f7;
  --bg-elevated: #ffffff;
  --ink: #0f1b2d;
  --ink-muted: #526477;
  --line: #cfd9e4;
  --court: #0b3a6e;
  --court-deep: #062b50;
  --ball: #f05a28;
  --ball-hover: #d9481a;
  --ok: #1f8a5b;
  --warn: #c98500;
  --danger: #c62828;
  --loser-edge: #b33a3a;
  --live-soft: #fff1eb;
  --done-soft: #e8f6ef;
  --zebra: #f7f9fb;
  --row-hover: #e8eef5;
  --shadow: 0 1px 2px rgba(15, 27, 45, 0.06);
  --shadow-hover: 0 4px 12px rgba(15, 27, 45, 0.1);
  --radius-tile: 14px;
  --radius-control: 10px;
  --radius-badge: 6px;
  --font: "Outfit", system-ui, sans-serif;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;
  --nav-h: 56px;
  --nav-height: 56px;
  --control-h: 40px;
  --content-width: 1280px;
  --measure: 66ch;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  background-color: var(--bg);
  background-image:
    radial-gradient(ellipse 80% 50% at 10% -10%, rgba(11, 58, 110, 0.06), transparent 55%),
    repeating-linear-gradient(
      -18deg,
      transparent,
      transparent 11px,
      rgba(11, 58, 110, 0.015) 11px,
      rgba(11, 58, 110, 0.015) 12px
    );
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: var(--court);
  text-decoration: none;
}

a:hover {
  color: var(--ball);
}

h1,
h2,
h3 {
  margin: 0 0 var(--space-3);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

p {
  margin: 0 0 var(--space-4);
}

.tabular {
  font-variant-numeric: tabular-nums;
}
