*{box-sizing:border-box}body{margin:0;padding:0}#root{width:100%;min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f9f7;min-height:100vh;color:#1f2937;line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:#fff;padding:1rem 1rem .75rem;box-shadow:0 1px 3px #0000000d;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:100}.header h1{font-size:1.25rem;font-weight:800;color:#111827;margin-bottom:.375rem;letter-spacing:-.01em;text-align:center}.header p{font-size:.8125rem;color:#6b7280;text-align:center;margin-bottom:.75rem;line-height:1.4}.nav{display:flex;gap:.5rem;padding:.5rem 0;margin-top:.5rem;justify-content:center;flex-wrap:wrap}.nav-link{padding:.5rem .875rem;background:#fff;color:#374151;text-decoration:none;border-radius:999px;font-weight:600;font-size:.875rem;transition:all .2s ease;border:1px solid #e5e7eb;white-space:nowrap;flex-shrink:0}.nav-link:hover{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.nav-link.active{background:#065f46;color:#ecfdf5;border-color:#065f46}.main{flex:1;padding:1rem;width:100%;max-width:100%}.footer{text-align:center;padding:1.25rem 1rem 1.5rem;color:#6b7280;font-size:.8125rem}.footer p{line-height:1.5}.search-section{margin-bottom:1.5rem}.search-container{position:relative;width:100%}.search-input{width:100%;padding:.875rem 1rem;font-size:1rem;border:1px solid #d1d5db;border-radius:10px;background:#fff;transition:all .2s ease}.search-input:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.search-results{position:absolute;top:100%;left:0;right:0;background:#fff;border-radius:10px;border:1px solid #e5e7eb;box-shadow:0 10px 20px #0000001a;z-index:10;max-height:280px;overflow-y:auto;margin-top:6px}.search-result-item{padding:.75rem 1rem;cursor:pointer;transition:background-color .15s ease;border-bottom:1px solid #f3f4f6;color:#374151;font-size:.9375rem}.search-result-item:hover,.search-result-item.selected{background:#f0fdf4;color:#065f46}.search-result-item:last-child{border-bottom:0}.no-results{padding:1rem;text-align:center;color:#6b7280;font-style:italic;font-size:.875rem}.records-section{background:#fff;border-radius:12px;padding:1.25rem 1rem;border:1px solid #e5e7eb;margin-bottom:1rem}.course-title{font-size:1.25rem;font-weight:700;color:#111827;text-align:center;margin-bottom:1rem}.records-grid{display:grid;grid-template-columns:1fr;gap:1rem;width:100%}.record-card{background:#fff;border-radius:10px;padding:.85rem;border:1px solid #e5e7eb;transition:transform .15s ease,box-shadow .15s ease;display:flex;flex-direction:column;gap:.5rem;text-align:center}.record-card:active{transform:scale(.98)}.record-card.male{border-left:3px solid #60a5fa}.record-card.female{border-left:3px solid #f472b6}.record-card h3{font-size:.8125rem;font-weight:700;color:#111827;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}.athlete-name{font-size:1rem;font-weight:700;color:#111827}.time{font-size:1.6rem;font-weight:800;color:#047857;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Source Code Pro,monospace;margin:.15rem 0 .35rem}.details{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;color:#6b7280;margin-top:.25rem}.no-record{font-style:italic;color:#9ca3af;padding:.5rem 0;font-size:.875rem}.records-toggle{display:flex;justify-content:center;gap:.5rem;margin-bottom:1rem}.records-toggle .nav-link{padding:.5rem 1rem;font-size:.875rem}.leaderboard-subtitle{text-align:center;color:#6b7280;font-size:.875rem;margin-top:-.5rem;margin-bottom:1.25rem}.leaderboard-section{margin-top:1.5rem}.leaderboard-heading{font-size:1rem;font-weight:700;color:#111827;text-align:center;margin-bottom:.75rem}.leaderboard-grid{display:grid;grid-template-columns:1fr;gap:.75rem;max-width:520px;margin:0 auto}.leaderboard-card{background:#fff;border-radius:10px;padding:.85rem 1rem;border:1px solid #e5e7eb;display:flex;flex-direction:column;gap:.4rem;align-items:center;text-align:center}.leaderboard-card.male{border-left:3px solid #60a5fa}.leaderboard-card.female{border-left:3px solid #f472b6}.leaderboard-rank{font-size:.9rem;font-weight:700;color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;padding:.15rem .5rem;border-radius:999px}.leaderboard-name{font-size:1rem;font-weight:700;color:#111827;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .2s ease}.leaderboard-count{font-size:.85rem;color:#6b7280}.leaderboard-name:hover,.leaderboard-name:focus-visible{text-decoration-color:#10b981;outline:none}.leaderboard-records{width:100%;border-top:1px dashed #e5e7eb;margin-top:.5rem;padding-top:.5rem;display:grid;grid-template-columns:1fr;gap:.4rem}.leaderboard-record{display:flex;justify-content:space-between;gap:.75rem;font-size:.85rem;color:#374151}.leaderboard-record-course{text-align:left}.leaderboard-record-time{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Source Code Pro,monospace;color:#047857;text-align:right}.welcome-section{text-align:center;background:#fff;border-radius:12px;padding:1.5rem 1rem;border:1px solid #e5e7eb}.welcome-section p{font-size:.9375rem;color:#6b7280;margin-bottom:.5rem;line-height:1.6}.welcome-section p:last-child{margin-bottom:0;font-weight:600;color:#374151}.contact-page{width:100%}.contact-container{background:#fff;border-radius:12px;padding:1.5rem 1rem;border:1px solid #e5e7eb;max-width:600px;margin:0 auto}.contact-container h2{font-size:1.5rem;font-weight:700;color:#111827;margin-bottom:1rem;text-align:center}.contact-container>p{text-align:center}.contact-info{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.25rem}.contact-item{text-align:center}.contact-item h3{font-size:1rem;font-weight:600;color:#111827;margin-bottom:.5rem}.contact-item p{font-size:.9375rem;color:#6b7280;line-height:1.6}.contact-link{color:#065f46;text-decoration:none;font-weight:500}.contact-link:hover{text-decoration:underline}.loading,.error{display:flex;justify-content:center;align-items:center;min-height:50vh;font-size:1rem;color:#374151;padding:1rem}.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin:1rem}@media(min-width:768px){.header{padding:1.5rem 1rem 1rem}.header h1{font-size:1.75rem;margin-bottom:.5rem}.header p{font-size:.9375rem;margin-bottom:1rem}.nav{justify-content:center;gap:.75rem}.nav-link{padding:.5rem 1rem;font-size:.9375rem}.main{padding:2rem 1.5rem;max-width:1100px;margin:0 auto}.search-container{max-width:560px;margin:0 auto}.records-section{padding:1.5rem}.course-title{font-size:1.5rem;margin-bottom:1.25rem}.records-grid{grid-template-columns:1fr 1fr;gap:1rem;max-width:900px;margin:0 auto}.record-card{padding:1.25rem}.record-card:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000014}.record-card:active{transform:translateY(0)}.athlete-name{font-size:1.1rem}.time{font-size:2rem;margin:.5rem 0 .75rem}.details{font-size:.9rem}.contact-container{padding:2rem 1.5rem;max-width:700px;margin:0 auto}.contact-container h2{font-size:1.75rem}.contact-info{gap:2rem}.welcome-section{padding:2rem 1.5rem}.welcome-section p{font-size:1rem}}@media(min-width:1024px){.header h1{font-size:2rem}.header p{font-size:1rem}}
