*{box-sizing:border-box}body{margin:0;background:#f3f6f8;color:#152b3c;font:16px system-ui,sans-serif}header,nav,main,footer{max-width:1500px;margin:auto;padding:18px 24px}header{display:flex;align-items:center;justify-content:space-between;gap:16px}h1{margin:4px 0;font-size:clamp(24px,4vw,36px)}.eyebrow{color:#506579;font-size:13px;text-transform:uppercase;letter-spacing:.1em}.admin-link{font-size:14px}a{color:#125b83}nav{display:flex;gap:8px;padding-top:0;flex-wrap:wrap}nav a{padding:10px 16px;border-radius:7px;background:white;text-decoration:none;border:1px solid #d2dce3}nav a[aria-current]{color:white;background:#125b83;border-color:#125b83}main{padding-top:0}h2{font-size:24px}.table-scroll{overflow:auto;border:1px solid #d2dce3;border-radius:8px;background:white;margin-bottom:24px}table{border-collapse:collapse;width:100%;font-size:15px;text-align:left}th{background:#e5edf2;white-space:nowrap}td,th{padding:10px 12px;border-bottom:1px solid #dce4e9}tbody tr{background:var(--class-colour,white)}tbody tr:hover{filter:brightness(.96)}.numeric{font-variant-numeric:tabular-nums;white-space:nowrap}.winner{font-weight:750;text-decoration:underline}.selected{outline:3px solid #137caf;outline-offset:-3px}.photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:18px}figure{margin:0;border:1px solid #d2dce3;border-radius:10px;overflow:hidden;background:white}figure img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#e6edf2}figcaption{display:grid;gap:6px;padding:14px;background:var(--class-colour,white)}figcaption span,footer{font-size:14px;color:#4d6273}.notice{padding:16px;background:#fff;border:1px solid #d2dce3;border-radius:8px}footer{padding-bottom:28px}@media(max-width:600px){header,nav,main,footer{padding-left:12px;padding-right:12px}td,th{padding:8px;font-size:14px}}

tbody tr[data-race-id]{color:var(--class-text,inherit)}
tbody tr[data-race-id][style]:hover{filter:none}

.outdoor-plan tbody{color:var(--class-text,inherit)}
.outdoor-plan tbody+tbody{border-top:3px solid #fff}
.outdoor-plan tbody tr:hover{filter:none}
.outdoor-plan .race-summary{vertical-align:top;width:42%;line-height:1.4}

.public-plan>main>.table-scroll{overflow:visible}
.public-plan td,.public-plan th{overflow-wrap:anywhere}
.public-plan thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px #dce4e9}
.public-view>footer{padding-top:8px;padding-bottom:max(8px,env(safe-area-inset-bottom));background:#f3f6f8;border-top:1px solid #d2dce3}
#public-message{margin:0 0 4px;font-weight:650;color:#152b3c;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-height:540px){.public-view>header{padding-top:4px;padding-bottom:6px}.public-view>nav{padding-bottom:6px}.public-view nav a{padding:4px 10px}.public-plan>main>h2{font-size:18px;margin:3px 0 6px}}

.points-table tbody tr{color:var(--class-text,inherit)}
.points-table tbody tr:hover{filter:none}
.points-team{background:transparent;white-space:normal;overflow-wrap:anywhere}
.points-label{display:none}
.points-runs{display:flex;flex-wrap:wrap;gap:6px}
.points-run{display:inline-flex;align-items:baseline;gap:8px;padding:4px 8px;border-radius:5px;background:#f3f6f8;color:#152b3c;white-space:nowrap}
.points-run strong{font-size:1.05em}
@media(max-width:600px){
  .points-scroll{overflow:visible;border:0;background:transparent}
  .points-table,.points-table tbody{display:block}
  .points-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .points-table tbody tr{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"team team" "total rank" "runs runs";margin-bottom:10px;padding:10px 12px;border:1px solid #d2dce3;border-inline-start:5px solid var(--class-colour,#137caf);border-radius:8px;background:#fff;color:#152b3c}
  .points-table tbody :is(td,th){padding:5px 0;border:0;min-width:0}
  .points-table .points-team{grid-area:team;font-size:1rem}
  .points-detail{grid-area:runs}
  .points-total{grid-area:total}
  .points-rank{grid-area:rank}
  .points-total strong,.points-rank{font-size:1.1rem}
  .points-label{display:block;margin-bottom:3px;color:#4d6273;font-size:.8rem;font-weight:600}
}

.team-markers{display:flex;align-items:end;flex-wrap:wrap;gap:8px 12px;margin:0 0 14px}
.team-markers[hidden],.team-markers [hidden]{display:none}
.team-markers label{display:grid;gap:5px;min-width:0;max-width:100%;font-size:.9rem;font-weight:650}
.team-markers select,.team-markers button{font:inherit;padding:6px 10px;border:1px solid #8eabbc;border-radius:6px;background:#fff;color:#152b3c}
.team-markers select{min-height:36px;max-width:100%}
.marked-teams{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.marked-teams:empty{display:none}
.marked-teams button,.public-view .team-marked{background:#fff09e;color:#252003;box-shadow:inset 0 0 0 2px #8a6a13}
.marked-teams button{overflow-wrap:anywhere;max-width:100%;cursor:pointer}
