:root{color-scheme:dark;--bg:#08111f;--panel:#101d30;--line:#263a58;--text:#f5f8fc;--muted:#afbed2;--accent:#92c9ff;--good:#5bd6ad}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#10253c,#08111f 520px);color:var(--text);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}a{color:var(--accent)}.wrap{max-width:1400px;margin:auto;padding:24px}header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:24px}h1{font-size:clamp(32px,5vw,48px);line-height:1.1;letter-spacing:-.035em;margin:12px 0 8px}h2{font-size:22px;line-height:1.25;margin:0}p{margin:7px 0;color:var(--muted)}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--good);font-weight:700}.back{text-decoration:none;display:inline-block;padding:6px 0}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.btn{display:inline-flex;align-items:center;justify-content:center;background:#142a43;border:1px solid #36516d;border-radius:12px;padding:11px 16px;color:var(--text);font:inherit;font-weight:650;text-decoration:none;cursor:pointer}.btn.primary{background:#b9e8dc;border-color:#b9e8dc;color:#082c26}.btn:hover{filter:brightness(1.12)}button:disabled{opacity:.6;cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.status{padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(16,29,48,.6);color:var(--muted);font-size:14px;margin-bottom:18px}.status.error{color:#ffd6da;border-color:#aa4d57}.status.stale{color:#ffdf98;border-color:#a48037}.panel{background:rgba(16,29,48,.75);border:1px solid var(--line);border-radius:18px;padding:20px;margin:0 0 18px;min-width:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums}th{font-size:12px;font-weight:650;color:var(--muted)}th,td{padding:13px 10px;border-bottom:1px solid var(--line);vertical-align:middle}td{font-size:15px}tr:last-child td{border-bottom:0}.schedule td:first-child{font-size:21px;font-weight:700;color:var(--good);white-space:nowrap}.schedule td:last-child{text-align:right}.schedule a{font-weight:600;text-decoration:none}.schedule caption{text-align:left;padding-bottom:12px;font-size:22px;font-weight:650}.note,footer{font-size:13px;line-height:1.6;color:var(--muted)}footer{padding:10px 0 30px}.race{padding:0;overflow:hidden}.race summary{display:flex;align-items:center;gap:16px;padding:20px;cursor:pointer;list-style:none}.race summary::-webkit-details-marker{display:none}.race summary::after{content:'+';margin-left:auto;font-size:25px;color:var(--accent)}.race[open] summary::after{content:'−'}.race .time{font-weight:750;color:var(--good);font-size:22px}.race .summary-label{font-weight:700;font-size:18px}.race .count{display:block;font-size:13px;font-weight:400;color:var(--muted)}.race-content{padding:0 20px 18px}.race table{min-width:690px}.race td:nth-child(2){font-weight:650}.race .table-wrap{max-height:620px}.race thead{position:sticky;top:0;background:#101d30;z-index:1}.race input{background:#081523;border:1px solid #36516d;border-radius:10px;color:var(--text);padding:11px 12px;font:inherit;width:min(100%,440px);margin:0 0 10px}.completed{color:var(--good)}.weather th,.weather td{text-align:right;white-space:nowrap}.weather th:first-child,.weather td:first-child{text-align:left}.weather th{font-size:13px}.weather td{font-size:16px}.weather .current{background:rgba(91,214,173,.1)}.weather .current td:first-child{color:var(--good);font-weight:700}.arrow{display:inline-block;font-size:23px;color:var(--accent);margin-right:8px;line-height:1;vertical-align:middle;transform-origin:center}.degree{display:inline-block;min-width:39px}.weather caption{text-align:left;font-size:18px;font-weight:650;padding:0 0 15px}.weather th small{display:block;font-weight:400}.empty{color:var(--muted);padding:18px 0}
@media(max-width:650px){.wrap{padding:14px}header{gap:8px}.actions{margin-top:4px}.panel{padding:13px}.race{padding:0}.race summary{padding:16px 13px;gap:12px}.race-content{padding:0 13px 14px}.race .summary-label{font-size:16px}.schedule td{padding:12px 5px;font-size:14px}.schedule td:first-child{font-size:19px}.schedule td:last-child{font-size:12px}.weather th,.weather td{padding:12px 5px}.weather th{font-size:10px}.weather td{font-size:12px}.arrow{font-size:20px;margin-right:3px}.degree{min-width:30px}.weather-panel{padding:12px 6px}.weather caption{padding-left:7px}.note{font-size:12px}.btn{font-size:14px;padding:10px 13px}}

/* Keep weather column headings at the viewport top while scrolling. */
.weather-panel,.weather-panel>.table-wrap{overflow:visible}.weather th{position:sticky;top:0;z-index:5;background:#101d30;box-shadow:0 1px 0 var(--line)}.weather .race-hour{background:rgba(185,232,220,.14)}.weather .race-hour td:first-child{border-left:3px solid var(--good);font-weight:700;color:var(--good)}.race-start{display:block;font-size:12px;font-weight:500;white-space:normal;max-width:180px;margin-top:3px}.weather .current.race-hour{background:rgba(91,214,173,.23)}
@media(max-width:650px){.weather{table-layout:fixed}.weather th,.weather td{white-space:normal;overflow-wrap:anywhere}.weather th:first-child{width:26%}.weather th:last-child{width:18%}.race-start{font-size:10px}.race-detail .race-content{padding:12px 5px}.schedule .race-detail>td{padding:0}.race-toggle{font-size:12px}.weather th{padding:10px 3px}.weather td{padding:12px 3px}}

dialog{color:var(--text);background:#101d30;border:1px solid var(--line);border-radius:18px;width:min(1100px,calc(100% - 28px));max-height:90dvh;padding:20px}dialog::backdrop{background:rgba(0,0,0,.7)}.dialog-heading{display:flex;gap:16px;justify-content:space-between;align-items:center;margin-bottom:16px}.dialog-heading h2{font-size:20px}dialog .race-content{padding:0}dialog input{background:#081523;border:1px solid #36516d;border-radius:10px;color:var(--text);padding:11px 12px;font:inherit;width:min(100%,440px);margin-bottom:10px}dialog .table-wrap{max-height:60dvh}.participants{min-width:690px}.participants thead{position:sticky;top:0;background:#101d30;z-index:1}.participants td:nth-child(2){font-weight:650}

/* Respect the iPhone status bar and home indicator in home-screen mode. */
:root{--page-padding:24px}
.wrap{padding:calc(var(--page-padding) + env(safe-area-inset-top,0px)) max(var(--page-padding),env(safe-area-inset-right,0px)) calc(var(--page-padding) + env(safe-area-inset-bottom,0px)) max(var(--page-padding),env(safe-area-inset-left,0px))}
.weather th{top:env(safe-area-inset-top,0px)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:20;pointer-events:none}
@media(max-width:650px){:root{--page-padding:14px}}
