:root{color:#1d252c;background:#f5f7f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}button,input,select{font:inherit}main{flex:1;padding:28px}.app-shell{display:flex;min-height:100vh;flex-direction:column}.app-footer{padding:0 28px 24px;color:#9aa5ad;font-size:.9rem;text-align:center}.app-footer a{color:inherit;text-decoration:none}.app-footer a:hover{color:#7f8a92}.shell{width:min(1280px,100%);margin:0 auto}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.landing-hero{display:grid;gap:16px;margin-bottom:28px}.landing-copy{max-width:680px;margin:0;color:#53606a;font-size:1rem;line-height:1.6}.eyebrow{margin:0;color:#b24935;font-size:1.8rem;font-weight:800;letter-spacing:0;text-transform:uppercase;text-decoration:none}h1{margin:0;color:#18222b;font-size:clamp(2rem,4vw,3.4rem);line-height:1;letter-spacing:0}.refresh-button,.sort-button,.back-button,.external-button,.secondary-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #ccd5dc;background:#fff;color:#1d252c;cursor:pointer}.refresh-button{min-height:42px;padding:0 14px;border-radius:8px;font-weight:700}.header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.back-button{min-height:40px;margin-bottom:18px;padding:0 12px;border-radius:8px;background:#fff;font-weight:800}.secondary-link{min-height:42px;padding:0 14px;border-radius:8px;background:#fff;color:#1d252c;font-weight:800;text-decoration:none}.external-button{min-height:42px;padding:0 14px;border-radius:8px;background:#18222b;color:#fff;font-weight:800;text-decoration:none}.refresh-button:disabled{color:#7b8790;cursor:wait}.controls{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.75fr) minmax(260px,2fr) repeat(2,minmax(130px,1fr));gap:12px;align-items:end;margin-bottom:16px}.race-overview{margin-bottom:18px;border:1px solid #dce3e8;border-radius:18px;background:linear-gradient(135deg,#18222bf5,#38493df5),#18222b;color:#fff;overflow:clip}.race-overview[open]{box-shadow:0 18px 40px #18222b24}.race-overview summary{list-style:none}.race-overview summary::-webkit-details-marker{display:none}.race-overview-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;cursor:pointer;padding:22px}.race-overview-summary-copy{min-width:0}.race-overview-summary .eyebrow{color:#ffffffb8}.race-overview-summary h2{margin:0;font-size:clamp(1.45rem,2vw,2.2rem);line-height:1.05}.race-overview-summary-meta{margin:10px 0 0;color:#ffffffc7;font-weight:700}.race-overview-toggle{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#ffffff14;color:#fff;flex-shrink:0;font-size:.88rem;font-weight:800;padding:10px 14px}.race-overview-toggle svg{transition:transform .14s ease}.race-overview[open] .race-overview-toggle svg{transform:rotate(180deg)}.race-overview-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.9fr);gap:20px;padding:0 22px 22px}.race-overview-copy{display:grid;align-content:start;gap:18px}.race-overview-description{margin:0;color:#ffffffd6;line-height:1.65}.race-overview-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.race-overview-facts>div{border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#ffffff14;padding:14px}.race-overview-facts .summary-label{color:#ffffffa8}.race-overview-facts strong{display:inline-flex;align-items:center;gap:8px;margin-top:8px;color:#fff;overflow-wrap:anywhere}.race-overview-actions{display:flex;flex-wrap:wrap;gap:10px}.race-overview-actions .external-button{border-color:#ffffff2e;background:#fff;color:#18222b}.race-overview-distances{display:flex;flex-wrap:wrap;gap:10px}.race-overview-distance-action{display:inline-flex}.race-overview-distance-pill{transition:transform .14s ease,box-shadow .14s ease,outline-color .14s ease}.race-overview-distance-action:hover .race-overview-distance-pill,.race-overview-distance-action:focus-visible .race-overview-distance-pill{transform:translateY(-2px);box-shadow:0 12px 24px #00000038}.race-overview-distance-action:focus-visible{outline:none}.race-overview-distance-action.is-active .race-overview-distance-pill{outline:2px solid rgba(255,255,255,.9);outline-offset:2px;box-shadow:0 0 0 4px #ffffff29}.race-overview-image-wrap{min-height:240px;border-radius:14px;overflow:hidden}.race-overview-image{display:block;width:100%;height:100%;object-fit:cover}.race-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.race-card{display:grid;gap:18px;min-height:220px;border:1px solid #dce3e8;border-radius:18px;background:linear-gradient(180deg,#fffffffa,#f7fafcf2),linear-gradient(135deg,#b2493514,#25516114);color:#18222b;padding:22px;text-decoration:none;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.race-card-button,.distance-pill-action{border:0;background:transparent;cursor:pointer;font:inherit;padding:0;text-align:left}.race-card:hover{transform:translateY(-2px);border-color:#c8d3da;box-shadow:0 18px 36px #18222b14}.race-card-button{display:grid;gap:18px}.race-card-header{display:grid;gap:10px}.race-card-kicker{color:#68747e;font-size:.76rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.race-card h2{margin:0;font-size:clamp(1.5rem,2vw,2rem);line-height:1}.race-card-meta{margin:0;color:#53606a;font-weight:700}.race-card-distances{display:flex;flex-wrap:wrap;gap:10px}.distance-pill-action{display:inline-flex}label{display:grid;gap:7px;color:#53606a;font-size:.8rem;font-weight:800}select,input{width:100%;min-height:42px;border:1px solid #ccd5dc;border-radius:8px;background:#fff;color:#1d252c;outline:none}select{padding:0 12px}input{border:0;padding:0;background:transparent}.search-input{display:flex;min-height:42px;align-items:center;gap:10px;border:1px solid #ccd5dc;border-radius:8px;background:#fff;padding:0 12px}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:18px 0}.summary>div{min-height:76px;border:1px solid #dce3e8;border-radius:8px;background:#fff;padding:14px}.summary-label{display:block;color:#68747e;font-size:.76rem;font-weight:800;text-transform:uppercase}.summary strong{display:block;margin-top:6px;color:#18222b;font-size:1.5rem}.summary-meta{display:block;margin-top:8px;color:#68747e;font-size:.78rem;font-weight:700}.summary-action{display:inline-flex;min-height:30px;align-items:center;gap:6px;margin-top:10px;border:1px solid #ccd5dc;border-radius:8px;background:#fff;color:#1d252c;cursor:pointer;font-size:.78rem;font-weight:800;padding:0 10px}.table-wrap{overflow:auto;border:1px solid #dce3e8;border-radius:8px;background:#fff}table{width:100%;min-width:700px;border-collapse:collapse}th,td{border-bottom:1px solid #e8edf1;padding:13px 14px;text-align:left;vertical-align:middle}th{position:sticky;top:0;z-index:1;background:#f9fbfc}tbody tr:hover{background:#f6fafc}.sort-button{min-height:32px;border:0;background:transparent;color:#41505b;font-size:.78rem;font-weight:800;text-transform:uppercase}.sort-direction{color:#b24935;font-size:.68rem}.table-label{color:#41505b;font-size:.78rem;font-weight:800;text-transform:uppercase}.primary-cell{color:#18222b;font-weight:800}.name-link{border:0;background:transparent;color:#b24935;cursor:pointer;font-weight:800;padding:0;text-align:left}.name-link:hover{text-decoration:underline}.mono-cell{color:#53606a;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.86rem}.index-cell{min-width:108px}.index-value,.index-placeholder{display:inline-flex;min-width:52px;justify-content:center;border-radius:999px;padding:4px 10px;font-weight:800}.index-value{background:#edf5f7;color:#255161}.index-placeholder{background:#f4f6f8;color:#7b8790}.tag{display:inline-flex;min-width:44px;justify-content:center;border-radius:999px;background:#edf5f7;color:#255161;padding:4px 9px;font-weight:800}.distance-pill{display:inline-flex;min-width:58px;justify-content:center;align-items:center;border-radius:999px;background:#edf5f7;color:#000d44;font-weight:800;line-height:1;padding:6px 10px}.distance-pill-20k{background:#ff0}.distance-pill-50k{background:#fc5a00}.distance-pill-100k{background:#7ddf64}.distance-pill-100m{background:#f42525}.distance-pill:hover{transform:translateY(-2px);border-color:#c8d3da;box-shadow:0 18px 36px #18222b14}.loading-state,.empty-state,.error-state{border:1px solid #dce3e8;border-radius:8px;background:#fff;padding:28px}.error-state{border-color:#e7b2a8;background:#fff8f6;color:#9c3523;font-weight:800}.empty-state h2{margin:0 0 8px;font-size:1.2rem}.empty-state p{margin:0;color:#53606a}.runner-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.runner-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:22px}.runner-facts>div,.index-card{border:1px solid #dce3e8;border-radius:8px;background:#fff;padding:14px}.runner-facts strong{display:block;margin-top:6px;color:#18222b;overflow-wrap:anywhere}.runner-description{max-width:850px;color:#41505b;line-height:1.6}.profile-section{margin-top:26px}.profile-section h2{margin:0 0 12px;color:#18222b;font-size:1.25rem}.index-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.index-card span{color:#68747e;font-size:.78rem;font-weight:900}.index-card strong{display:block;margin-top:8px;color:#18222b;font-size:2rem}.results-table{min-width:940px}.result-race{color:#18222b;font-weight:800}.result-meta{margin-top:4px;color:#68747e;font-size:.84rem}@media (max-width: 920px){main{padding:18px}.app-footer{padding:0 18px 18px}.app-header,.runner-header,.controls,.summary{grid-template-columns:1fr}.app-header,.runner-header{display:grid}.header-actions{justify-content:stretch}.refresh-button,.external-button,.secondary-link{width:100%}.race-overview-summary{display:grid;padding:18px}.race-overview-toggle{justify-content:space-between;width:100%}.race-overview-body{grid-template-columns:1fr;padding:0 18px 18px}.race-overview-image-wrap{min-height:180px;order:-1}}
