:root { --fg:#1a1a1a; --mut:#666; --line:#ddd; --accent:#1452a8; --sel:#dff0d8; }
* { box-sizing: border-box; }
body {
  font: 15px/1.45 -apple-system, system-ui, "Segoe UI", Roboto, sans-serif;
  color: var(--fg); margin: 0; padding: 0 1rem 3rem;
}
header { display:flex; flex-wrap:wrap; align-items:baseline; gap:1rem;
  padding:0.75rem 0; border-bottom:2px solid var(--line); }
h1 { font-size:1.3rem; margin:0; }
h2 { font-size:1.1rem; margin:1.25rem 0 0.5rem; }
.selectors { display:flex; flex-wrap:wrap; gap:0.75rem; align-items:center;
  margin-left:auto; }
label { display:inline-flex; flex-direction:column; font-size:0.8rem;
  color:var(--mut); gap:2px; }
select, input, textarea, button { font-size:1rem; padding:0.35rem 0.5rem; }
button { cursor:pointer; border:1px solid var(--line); background:#f6f6f6;
  border-radius:4px; }
button:hover { background:#eee; }
.td-link { margin-left:auto; color:var(--accent); text-decoration:none; }

table { border-collapse:collapse; width:100%; margin:0.5rem 0; }
th, td { padding:0.3rem 0.5rem; border-bottom:1px solid var(--line);
  text-align:left; white-space:nowrap; }
th { font-size:0.8rem; color:var(--mut); text-transform:uppercase;
  letter-spacing:0.03em; }
.standings .rc, .standings .pts, .standings .tb { text-align:center;
  font-variant-numeric: tabular-nums; }
.standings .name { font-weight:600; }
.boards .bd { color:var(--mut); }
.boards .score { text-align:center; font-variant-numeric: tabular-nums; }
.boards .ongoing { color:var(--mut); }
.boards .black { font-weight:600; }
.bcast { color:var(--accent); text-decoration:none; font-size:0.85rem; }
.bcast-list { font-size:0.9rem; }
.byes { color:var(--mut); font-style:italic; }

/* Public standings & pairings: fixed-width sheet, like the printed version. */
pre.sheet { background:#fff; border:1px solid var(--line); border-radius:4px;
  padding:0.75rem 1rem; overflow-x:auto; font-size:13px; line-height:1.4;
  font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace; }

details { margin:0.75rem 0; }
summary { cursor:pointer; color:var(--accent); }
pre { background:#f7f7f7; padding:0.75rem; overflow:auto; font-size:12px;
  line-height:1.3; border:1px solid var(--line); border-radius:4px; }

/* TD view */
body.td .row { display:flex; flex-wrap:wrap; gap:0.5rem; align-items:center;
  margin:0.75rem 0; }
body.td textarea { width:100%; font-family:ui-monospace, monospace; }
button.score-cycle { min-width:4.5rem; font-variant-numeric:tabular-nums;
  font-weight:700; font-size:1.05rem; padding:0.4rem 0.75rem; cursor:pointer; }
button.score-cycle[data-score="1-0"],
button.score-cycle[data-score="0-1"] { background:var(--sel);
  border-color:#8bc48b; }
button.score-cycle[data-score="?-?"] { color:var(--mut); }
.hint { color:var(--mut); font-size:0.85rem; }
.correct-banner { background:#fff3cd; border:1px solid #e0c86a;
  padding:0.5rem 0.75rem; border-radius:4px; }
.bcast-in { width:12rem; }
.error { color:#b00020; font-weight:600; }
#who { color:var(--mut); margin-left:auto; }
footer { margin-top:2rem; color:var(--mut); font-size:0.85rem; }
