/* Shared snowmobile timing office. Mobile uses labeled cards, no sideways table. */
.name-input{width:9em;background:#0d2634;color:#e6f6fb;border:1px solid #6fd4ea;font:900 10px Arial;letter-spacing:.08em;text-transform:uppercase}
.board-screen{z-index:90;background:#030b12c9;backdrop-filter:blur(12px);padding:24px;overflow:auto}.board-window{width:min(1080px,100%);margin:auto;border:1px solid #b8ccd936;border-radius:16px;overflow:hidden;color:#e9f3f7;background:radial-gradient(ellipse at 100% 0,#284152 0,transparent 55%),#0b1722;box-shadow:0 28px 100px #0009;font-family:Arial,sans-serif;max-height:90dvh;overflow-y:auto}.board-header{display:flex;justify-content:space-between;align-items:start;gap:16px;padding:30px 30px 16px!important;background:transparent!important;border:0!important}.board-header small{font:700 9px monospace;letter-spacing:.19em;color:#d9b47b}.board-header h2{font:900 clamp(26px,3vw,40px)/.95 Arial!important;letter-spacing:-.04em;color:#f3f2ec;margin:13px 0!important}.board-header h2 em{font-style:normal;color:#d9b47b}.board-header p{font:11px/1.6 monospace!important;color:#a8bdca!important;margin:12px 0 0!important}.board-window button,.board-window select{min-height:44px;min-width:44px;border:1px solid #b1cddd33;border-radius:6px;background:linear-gradient(160deg,#203443,#101f2c);color:#e3edf1;font:800 10px Arial;padding:10px 13px;cursor:pointer;touch-action:manipulation}.board-window button:hover,.board-window select:focus-visible{border-color:#ecc68a}.board-window button:focus-visible{outline:2px solid #f1cc90;outline-offset:2px}.board-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 30px 18px}.board-modes button[aria-pressed=true]{color:#ffe1ad;border-color:#e8c280;background:linear-gradient(145deg,#5c4e39,#302b24)}.board-filters{display:flex;gap:10px;flex-wrap:wrap;padding:0 30px 18px}.board-filters label{display:flex;flex-direction:column;gap:7px;min-width:0;flex:1 1 160px;color:#9eb5c3;font:700 8px monospace;letter-spacing:.1em}.board-filters [hidden]{display:none!important}.board-window .board-filters select{width:100%;max-width:100%;letter-spacing:0;background:#122431}.board-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 30px 22px}.board-podium:empty{display:none}.board-podium-card{position:relative;min-width:0;padding:18px;border:1px solid #b7cbd126;border-radius:9px;background:linear-gradient(135deg,#20324099,#0d1c28)}.board-podium-1{border-color:#cdb17e88;background:linear-gradient(135deg,#54483488,#122230)}.board-podium-card small{color:#b9cbd4;font:9px monospace;letter-spacing:.12em}.board-podium-1 small{color:#ffe0a7}.board-podium-card h3{margin:12px 0 8px;font-size:15px;overflow-wrap:anywhere}.board-podium-card strong{font:800 26px monospace;color:#eee8d8}.board-podium-card p{font:9px/1.5 monospace;color:#9ab2bf;margin:9px 0 0;overflow-wrap:anywhere}.board-you{display:inline-block;font:8px monospace;color:#a2ebc8;margin-top:9px}.board-table-label{display:flex;justify-content:space-between;align-items:center;margin:0 30px 8px;color:#b5c6d0;font:9px monospace;letter-spacing:.1em}.board-table-label button{font-size:9px}.board-scroll{margin:0 30px 20px;overflow:auto;border:1px solid #9cb3c126;border-radius:8px}.board-table{width:100%;border-collapse:collapse;font:11px Arial;white-space:nowrap}.board-table th{padding:13px 10px;color:#9ab2c1;background:#142734;text-align:right;font:8px monospace;letter-spacing:.08em;position:sticky;top:0}.board-table td{padding:15px 10px;border-top:1px solid #9bb0be16;text-align:right;color:#d3e2e9}.board-table :is(th,td):nth-child(-n+4){text-align:left}.board-table td:nth-child(1){color:#dab781;font:800 16px monospace}.board-table td:nth-child(2){font-weight:800}.board-table td:nth-child(5){color:#ede4cd;font:800 14px monospace}.board-table tr.me{background:#23635133}.board-table tr.me td:nth-child(2){color:#a7efd0}.board-window footer{padding:16px 30px 22px;border-top:1px solid #aabfca22;background:transparent;color:#8da6b5;font:10px/1.6 monospace}.board-empty{text-align:center!important;white-space:normal;padding:30px!important;line-height:1.7}.board-receipt{margin:0 30px 18px;padding:13px 16px;border:1px solid #74cbb85c;border-left:3px solid #85dfbf;border-radius:5px;background:#163e3533;color:#b4efd4;font:700 11px/1.6 monospace}.board-receipt:empty{display:none}
@media(max-width:720px){.board-screen{padding:12px}.board-window{border-radius:12px;max-height:95dvh}.board-header{padding:22px 16px 14px!important}.board-header h2{font-size:27px!important}.board-header small{font-size:7px;letter-spacing:.09em}.board-header p{font-size:9px!important}.board-header button{font-size:8px;padding:9px}.board-modes{margin:0 16px 16px;gap:6px}.board-modes button{font-size:8px;padding:8px 4px}.board-filters{padding:0 16px 15px;gap:9px}.board-filters label{flex:1 1 140px;font-size:7px}.board-window .board-filters select{font-size:9px;padding:8px}.board-podium{margin:0 16px 18px;gap:6px}.board-podium-card{padding:12px 9px}.board-podium-card small{font-size:7px;letter-spacing:0}.board-podium-card h3{font-size:11px}.board-podium-card strong{font-size:17px}.board-podium-card p{font-size:7px}.board-table-label{margin:0 16px 8px;font-size:7px}.board-scroll{margin:0 16px 16px;border:0;overflow:visible}.board-table,.board-table tbody{display:block;white-space:normal}.board-table thead{display:none}.board-table tr{display:grid;grid-template-columns:42px 1fr 1fr;gap:8px;padding:14px;border:1px solid #a6bdcb25;border-radius:7px;margin-bottom:8px;background:#15263277}.board-table td{padding:0;border:0;text-align:left!important;font-size:11px;min-width:0;overflow-wrap:anywhere}.board-table td:nth-child(1){grid-column:1;grid-row:1/4;font-size:25px;padding-top:4px}.board-table td:nth-child(2){grid-column:2/4;font-size:13px}.board-table td:nth-child(3){grid-column:2/4;font-size:9px;color:#97b1c0}.board-table td:nth-child(n+4)::before{content:attr(data-label);display:block;font:7px monospace;color:#89a5b6;margin-bottom:4px}.board-table td:nth-child(5){font-size:14px}.board-table td:nth-child(8){grid-column:3}.board-table .board-empty{grid-column:1/4;padding:14px!important}.board-window footer{padding:15px 16px;font-size:8px}.board-receipt{margin:0 16px 16px;font-size:9px}}

/* ------------------------------------------------------------------- duels
   A run you can take off somebody. The row has to read as a target - not a
   statistic - because the whole feature lives or dies on whether a rider
   looks at a time and wants it. */
.board-table tbody tr.challengeable{cursor:pointer;transition:background .12s,box-shadow .12s}
.board-table tbody tr.challengeable:hover,
.board-table tbody tr.challengeable:focus-visible{background:#f2653d1f;outline:none;
  box-shadow:inset 3px 0 0 #f2653d}
.board-table tbody tr.challengeable:hover td:first-child::after,
.board-table tbody tr.challengeable:focus-visible td:first-child::after{
  content:'TAKE IT';margin-left:9px;display:inline-block;white-space:nowrap;
  font:800 7px/1 monospace;letter-spacing:.14em;color:#ff9a6b}
/* A run nobody has beaten wears it. */
.board-table tbody tr.challengeable[data-streak]{box-shadow:inset 3px 0 0 #e7c68e55}
.board-table tbody tr.challengeable[data-streak] td:nth-child(2)::after{
  content:' · ' attr(data-streak);content:'';}
.board-duel{margin:14px 0 0}
.board-duel-card{position:relative;overflow:hidden;padding:18px;border-radius:11px;
  background:linear-gradient(145deg,#2a140bf2,#120807f7);border:1px solid #f2653d55;
  box-shadow:inset 0 1px #ffb59a1f,0 14px 40px #2c0b0340}
.board-duel-head small{display:block;font:800 8px/1 monospace;letter-spacing:.24em;color:#f7a583}
.board-duel-head h3{margin:9px 0 2px;font:900 25px/1.05 Arial,sans-serif;letter-spacing:-.03em;color:#fff1e8}
.board-duel-head strong{display:block;font:800 30px/1.1 Consolas,monospace;color:#ffd7a8}
/* The streak badge and the ghost note sit side by side and must WRAP, not
   overlap: inline-block let the note run straight through the badge on a
   phone. */
.board-duel-head{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.board-duel-streak,.board-duel-note{align-self:flex-start;max-width:100%}
.board-duel-streak{margin-top:10px;padding:4px 9px;border-radius:4px;
  background:#e7c68e22;border:1px solid #e7c68e55;font:800 8px/1.4 monospace;letter-spacing:.14em;color:#f0d6a4}
.board-duel-note{margin-top:7px;font:700 8px/1.5 monospace;letter-spacing:.1em;color:#c99683}
.board-duel-stakes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0 13px}
.board-duel-stakes>div{padding:11px 12px;border-radius:7px;background:#0b141aa8;border:1px solid #ffffff14}
.board-duel-stakes small{display:block;font:800 7px/1.5 monospace;letter-spacing:.16em;color:#9db3bd}
.board-duel-stakes b{font:800 17px/1.3 Consolas,monospace;color:#a5e1c1}
.board-duel-stakes>div:last-child b{color:#f1ad91}
.board-duel-card p{margin:0 0 15px;font:11px/1.65 Arial,sans-serif;color:#dcbcae}
.board-duel-actions{display:grid;grid-template-columns:1fr auto;gap:9px}
.board-duel-actions button{min-height:46px;border-radius:9px;border:1px solid #ffffff22;
  background:#16242ce8;color:#dfeaef;font:800 10px/1 Arial,sans-serif;letter-spacing:.1em;cursor:pointer}
.board-duel-go{background:linear-gradient(130deg,#f2793d,#c6421f)!important;border-color:#ffa374!important;
  color:#1b0d06!important;font-size:11px!important}
.board-duel-go:disabled{opacity:.6;cursor:progress}
@media(max-width:640px){
  .board-duel-head h3{font-size:21px}.board-duel-head strong{font-size:25px}
  .board-duel-stakes{grid-template-columns:1fr}
  .board-duel-actions{grid-template-columns:1fr}
}
/* Why a challenge was refused, on the card rather than in the status line at
   the top of a long table - on a phone that line is nowhere near the button
   that was just tapped, so a refusal read as the button being dead. */
.board-duel-problem{margin:12px 0 0;padding:11px 12px;border-radius:7px;
  background:#3a160bcc;border:1px solid #f2653d66;
  font:700 10px/1.6 Arial,sans-serif;color:#ffcbb4}
.board-duel-problem[hidden]{display:none}
