/* Righteous + Viga, self-hosted: the same two families cwttc2026.com uses, so
   the embed matches its host page. Served from this origin rather than
   fonts.googleapis.com so the board renders identically when the spectator's
   network cannot reach Google, and so an embed adds no third-party requests
   to the host page. Both are SIL OFL 1.1 — see fonts/README.md.

   Split latin / latin-ext with unicode-range: the browser fetches the ext
   subset only when a name actually contains an accented character, which for
   a board full of international athlete names is the difference between
   sometimes and always. */
@font-face {
  font-family: "Righteous"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/fonts/righteous-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Righteous"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/fonts/righteous-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Viga"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/fonts/viga-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Viga"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/fonts/viga-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root{
  --blue:#003DA5; --blue-700:#002A73; --blue-900:#001B4D; --blue-050:#EAF1FB;
  --saffron:#FF7A1A; --saffron-deep:#E85D00;
  --ink:#0A1330; --paper:#F5F7FB; --line:#E2E8F2;
  --text:#16203A; --muted:#5A6784;
  --f-display:"Righteous",sans-serif; --f-body:"Viga",sans-serif;
  --radius:14px; --shadow-sm:0 2px 10px rgba(10,19,48,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:transparent;color:var(--text);font-family:var(--f-body)}

.board{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.bhead{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--blue-900);color:#fff}
.bhead .t{font-family:var(--f-display);font-size:16px;letter-spacing:.04em;text-transform:uppercase}
.bhead .spacer{flex:1}
.bhead .meta{font-size:12.5px;color:#9FB0D0}
.board.no-header .bhead{display:none}

.livedot{width:9px;height:9px;border-radius:50%;background:#2ecc71;animation:pulse 1.8s infinite}
.livedot.off{background:#8EA6D6;animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(46,204,113,.7)}70%{box-shadow:0 0 0 9px rgba(46,204,113,0)}100%{box-shadow:0 0 0 0 rgba(46,204,113,0)}}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;padding:16px;background:var(--paper)}
.grid:empty{display:none}
.empty{padding:46px 20px;text-align:center;color:var(--muted);font-size:14px;background:var(--paper)}
.empty .big{font-family:var(--f-display);color:var(--blue-900);font-size:17px;display:block;margin-bottom:6px}
.has-tables .empty{display:none}

.card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden}
.statusbar{padding:6px 13px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--saffron);font-family:var(--f-display)}
.card.finished .statusbar{background:var(--blue-700)}
.top{display:flex;align-items:flex-start;gap:8px;padding:9px 13px;border-bottom:1px solid var(--line)}
.tbl{font-family:var(--f-display);font-size:12.5px;color:var(--blue);letter-spacing:.08em;text-transform:uppercase}
.tie{font-size:11.5px;color:var(--muted);margin-left:auto;text-align:right;line-height:1.25}

.side{display:flex;align-items:center;gap:11px;padding:11px 13px}
.side + .side{border-top:1px solid #F0F3F9}
.side.serving{background:linear-gradient(90deg,rgba(255,122,26,.09),rgba(255,122,26,0))}
.flag{width:30px;height:20px;object-fit:contain;flex:none}
.flag[hidden]{display:none}
.who{flex:1;min-width:0}
.nm{font-size:14.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc{font-size:11px;color:var(--muted);letter-spacing:.09em;text-transform:uppercase;margin-top:1px}
.cc:empty{display:none}
.serve{width:8px;height:8px;border-radius:50%;background:transparent;flex:none}
.side.serving .serve{background:var(--saffron)}
.games{font-family:var(--f-display);font-size:25px;color:var(--blue-900);width:30px;text-align:center;line-height:1}
.side.lead .games{color:var(--saffron-deep)}
.pts{font-family:var(--f-display);font-size:25px;color:var(--ink);width:38px;text-align:center;background:var(--blue-050);border-radius:7px;padding:3px 0;line-height:1.15}

.setrow{display:flex;gap:5px;padding:8px 13px 11px;flex-wrap:wrap;border-top:1px solid #F0F3F9}
.setrow:empty{display:none}
.setpill{font-size:11px;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:2px 8px}
.setpill.w{color:var(--blue-700);border-color:#C9D8F0;background:var(--blue-050)}

@media (max-width:420px){ .grid{grid-template-columns:1fr} }
