.navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;margin-bottom:2rem;border-bottom:1px solid #e1e1e1}.navbar-brand{display:flex;align-items:center}.logo{font-size:1.8rem;font-weight:700;color:#333;text-decoration:none}.navbar-menu{display:flex;gap:2rem;align-items:center}.nav-item{font-size:1rem;color:#555;text-decoration:none;transition:color .3s ease}.nav-item:hover{color:#000}.nav-button{background-color:#3b82f6;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;text-decoration:none;transition:background-color .3s ease}.nav-button:hover{background-color:#2563eb}.logout-button{background-color:#ef4444}@media (max-width: 768px){.navbar{flex-direction:column;gap:1rem}.navbar-menu{width:100%;justify-content:center;flex-wrap:wrap;gap:1rem}}.footer{margin-top:4rem;padding:3rem 0 1rem;background-color:#f8f9fa;color:#333}.footer-content{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2rem;margin-bottom:2rem}.footer-section{flex:1;min-width:200px}.footer-section h3{margin-bottom:1rem;font-weight:600}.footer-section ul{list-style:none;padding:0}.footer-section ul li{margin-bottom:.5rem}.footer-section a{color:#555;text-decoration:none;transition:color .3s ease}.footer-section a:hover{color:#000}.footer-bottom{padding-top:1.5rem;border-top:1px solid #e1e1e1;text-align:center;font-size:.9rem}@media (max-width: 768px){.footer-content{flex-direction:column;gap:2rem}.footer-section{width:100%}}.error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;text-align:center;padding:0 1rem}.error-page h1{font-size:6rem;margin-bottom:0;color:#ef4444}.error-page h2{font-size:2rem;margin-bottom:1.5rem}.error-page p{font-size:1.1rem;margin-bottom:2rem;color:#6b7280;max-width:500px}.back-home-button{background-color:#3b82f6;color:#fff;padding:.75rem 1.5rem;border-radius:4px;text-decoration:none;font-weight:500;transition:background-color .3s ease}.back-home-button:hover{background-color:#2563eb}.race-card{display:flex;flex-direction:column;border-radius:8px;overflow:hidden;box-shadow:0 4px 6px #0000001a;transition:transform .3s ease,box-shadow .3s ease;background-color:#fff;height:100%;width:100%}.race-card:hover{transform:translateY(-5px);box-shadow:0 8px 12px #00000026}.race-card-image{position:relative;height:0;padding-bottom:60%;overflow:hidden}.race-card-image img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.race-badge{position:absolute;top:10px;right:10px;padding:5px 10px;border-radius:4px;font-size:.75rem;font-weight:600;color:#fff}.inaugural{background-color:#3b82f6}.registration-closed{background-color:#ef4444}.race-card-content{padding:1.25rem;display:flex;flex-direction:column;flex-grow:1}.race-card h3{margin-bottom:.75rem;font-size:1.1rem;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:2.86rem}.race-date{font-weight:500;color:#4b5563;margin-bottom:.75rem;font-size:.95rem}.race-location{color:#4b5563;margin-bottom:.75rem;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width: 768px){.race-card-content{padding:1.5rem}.race-card h3{font-size:1.25rem}}.race-description{color:#6b7280;margin-bottom:1.5rem;flex-grow:1}.race-card-footer{margin-top:auto;display:grid;grid-template-columns:1fr;gap:.5rem;width:100%}.view-details-button,.find-similar-button{display:flex;justify-content:center;align-items:center;min-height:2.5rem;padding:.5rem .75rem;border-radius:4px;text-decoration:none;text-align:center;font-size:.9rem;white-space:nowrap}.view-details-button{background-color:#3b82f6;color:#fff;font-weight:500;transition:background-color .3s ease}.view-details-button:hover{background-color:#2563eb;color:#fff}.find-similar-button{background-color:transparent;color:#4b5563;border:1px solid #d1d5db;transition:all .3s ease}.find-similar-button:hover{background-color:#f3f4f6;border-color:#9ca3af}@media (min-width: 400px){.race-card-footer{grid-template-columns:1fr 1fr}}@media (min-width: 640px) and (max-width: 767px){.race-card-footer{grid-template-columns:1fr}}@media (min-width: 768px){.view-details-button,.find-similar-button{padding:.5rem 1rem;font-size:1rem}}.home-page{display:flex;flex-direction:column;gap:4rem}.hero-section{position:relative;background:linear-gradient(#0009,#0009),url(https://images.unsplash.com/photo-1541252260730-0412e8e2108e?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80);background-size:cover;background-position:center;color:#fff;padding:5rem 2rem;border-radius:10px;text-align:center}.hero-content{max-width:800px;margin:0 auto}.hero-section h1{font-size:3rem;margin-bottom:1rem}.hero-section p{font-size:1.25rem;margin-bottom:2rem;opacity:.9}.hero-buttons{display:flex;gap:1rem;justify-content:center}.primary-button{background-color:#3b82f6;color:#fff;padding:.75rem 1.5rem;border-radius:4px;text-decoration:none;font-weight:500;transition:background-color .3s ease}.primary-button:hover{background-color:#2563eb}.secondary-button{background-color:transparent;color:#fff;padding:.75rem 1.5rem;border-radius:4px;border:1px solid white;text-decoration:none;font-weight:500;transition:background-color .3s ease}.secondary-button:hover{background-color:#ffffff1a}.upcoming-races{display:flex;flex-direction:column;gap:1.5rem}.section-header{display:flex;justify-content:space-between;align-items:center}.section-header h2{font-size:1.75rem}.see-all-link{color:#3b82f6;text-decoration:none;font-weight:500;transition:color .3s ease}.see-all-link:hover{color:#2563eb}.race-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;width:100%}@media (min-width: 600px){.race-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media (min-width: 900px){.race-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1200px){.race-grid{grid-template-columns:repeat(3,1fr);gap:2rem}}.no-races,.loading-state,.error-state{background-color:#f9fafb;padding:3rem;text-align:center;border-radius:8px;color:#6b7280}.features-section{display:flex;flex-direction:column;gap:2rem}.features-section h2{font-size:1.75rem;text-align:center}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.feature-card{background-color:#f9fafb;padding:2rem;border-radius:8px;text-align:center;transition:transform .3s ease,box-shadow .3s ease}.feature-card:hover{transform:translateY(-5px);box-shadow:0 10px 15px -3px #0000001a}.feature-card h3{margin-bottom:1rem;font-size:1.25rem}.feature-card p{color:#6b7280}@media (max-width: 768px){.hero-section{padding:3rem 1rem}.hero-section h1{font-size:2rem}.hero-buttons{flex-direction:column;gap:.75rem}.race-grid{grid-template-columns:1fr}}.races-page{display:flex;flex-direction:column;gap:2rem}.races-page h1{font-size:2rem;margin-bottom:.5rem}.filters-container{display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem;background-color:#f9fafb;border-radius:8px;margin-bottom:1.5rem}.search-filter{width:100%}.search-input{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:4px;font-size:.95rem}.checkbox-filters{display:grid;grid-template-columns:1fr 1fr;gap:1rem .5rem;width:100%}.filter-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.filter-label input{cursor:pointer;width:16px;height:16px}@media (min-width: 640px){.filters-container{flex-direction:row;flex-wrap:wrap;gap:1.5rem;padding:1.5rem}.search-filter{flex:1;min-width:250px}.checkbox-filters{display:flex;gap:1.5rem}.filter-label{font-size:.95rem;white-space:nowrap}}.races-count{font-size:.95rem;color:#6b7280}.races-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;width:100%}.race-grid-item{display:flex;height:100%;min-width:0}@media (min-width: 600px){.races-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media (min-width: 900px){.races-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1200px){.races-grid{grid-template-columns:repeat(3,1fr);gap:2rem}}.no-races-found,.loading-state,.error-state{padding:3rem;text-align:center;background-color:#f9fafb;border-radius:8px;color:#6b7280}.loading-state{background-color:#f0f9ff}.error-state{background-color:#fee2e2;color:#b91c1c}.diagnostic-info{margin-top:20px;padding:15px;background-color:#f3f4f6;border-radius:5px;text-align:left;font-size:.8rem;color:#374151}@media (max-width: 768px){.filters-container{flex-direction:column;gap:1rem}.checkbox-filters{flex-direction:column;align-items:flex-start;gap:.75rem}}.review{background-color:#f9f9f9;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000000d}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.review-author{font-size:1.1rem}.review-date{color:#6b7280;font-size:.9rem}.review-rating{display:flex;align-items:center;margin-bottom:.75rem}.star{color:#d1d5db;font-size:1.25rem;margin-right:.25rem}.star.filled,.star.half-filled{color:#fbbf24}.rating-number{margin-left:.5rem;font-weight:600}.review-comment{color:#4b5563;line-height:1.6}@media (max-width: 768px){.review-header{flex-direction:column;align-items:flex-start;gap:.25rem}}.review-form-container{background-color:#fff;border-radius:8px;padding:1.5rem;margin-bottom:2rem;box-shadow:0 2px 6px #0000001a}.review-form-container h3{margin-bottom:1rem;font-size:1.25rem;font-weight:600}.review-form{display:flex;flex-direction:column;gap:1.25rem}.rating-input{display:flex;flex-direction:column;gap:.5rem}.rating-input label{font-weight:500}.stars-container{display:flex}.star-button{background:none;border:none;font-size:1.75rem;color:#d1d5db;cursor:pointer;padding:0;margin-right:.25rem}.star-button.selected{color:#fbbf24}.comment-input{display:flex;flex-direction:column;gap:.5rem}.comment-input label{font-weight:500}.comment-input textarea{padding:.75rem;border:1px solid #d1d5db;border-radius:4px;resize:vertical;font-family:inherit}.error-message{color:#ef4444;font-size:.9rem}.submit-button{background-color:#3b82f6;color:#fff;border:none;padding:.75rem 1rem;border-radius:4px;font-weight:500;cursor:pointer;transition:background-color .3s ease}.submit-button:hover:not(:disabled){background-color:#2563eb}.submit-button:disabled{background-color:#93c5fd;cursor:not-allowed}.login-prompt{color:#6b7280;text-align:center;padding:1rem;border:1px dashed #d1d5db;border-radius:4px}.race-detail-page{display:flex;flex-direction:column;gap:3rem}.race-header{display:flex;gap:3rem}.race-header-content{flex:1;display:flex;flex-direction:column;gap:1.5rem}.race-header-content h1{font-size:2.5rem;font-weight:700;line-height:1.2}.race-date-location{display:flex;flex-direction:column;gap:.5rem}.race-date{font-size:1.2rem;font-weight:500}.race-location{font-size:1.1rem;color:#4b5563}.race-stats{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:.5rem}.race-stat{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.85rem;color:#6b7280;text-transform:uppercase}.stat-value{font-size:1.1rem;font-weight:600}.stat-value.open{color:#10b981}.stat-value.closed{color:#ef4444}.stat-value.rating{display:flex;align-items:center;gap:.25rem}.stat-value .star{color:#fbbf24}.register-button{display:inline-block;background-color:#10b981;color:#fff;font-weight:600;padding:.75rem 1.5rem;border-radius:4px;text-decoration:none;text-align:center;transition:background-color .3s ease;margin-top:auto}.register-button:hover{background-color:#059669}.race-header-image{flex:1;min-width:0;max-width:500px}.race-header-image img{width:100%;height:100%;max-height:350px;object-fit:cover;border-radius:8px}.race-detail-content{display:flex;gap:3rem}.race-main-content{flex:2;display:flex;flex-direction:column;gap:3rem}.race-sidebar{flex:1;min-width:300px}.race-description-section,.race-course-section,.race-categories-section,.previous-races-section{display:flex;flex-direction:column;gap:1.5rem}.race-description-section h2,.race-course-section h2,.race-categories-section h2,.previous-races-section h2,.reviews-section h2{font-size:1.5rem;font-weight:600;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.course-content{display:flex;flex-direction:column;gap:1.5rem}.course-thumbnail img{width:100%;border-radius:8px}.course-description{line-height:1.6}.categories-content{display:flex;gap:3rem}.age-groups,.special-prizes{flex:1}.age-groups h3,.special-prizes h3{font-size:1.1rem;margin-bottom:1rem}.categories-list,.prizes-list{list-style-type:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.categories-list li,.prizes-list li{padding:.5rem 0;border-bottom:1px solid #e5e7eb}.previous-races-list{display:flex;flex-direction:column;gap:1.5rem}.previous-race-card{background-color:#f9fafb;padding:1.5rem;border-radius:8px}.previous-race-card h3{margin-bottom:1rem;font-size:1.2rem}.previous-race-stats{display:flex;justify-content:space-between;margin-bottom:1.5rem}.previous-race-links{display:flex;gap:1rem}.previous-race-link{display:inline-block;padding:.5rem 1rem;background-color:#e5e7eb;color:#374151;border-radius:4px;text-decoration:none;font-size:.9rem;font-weight:500;transition:background-color .3s ease}.previous-race-link:hover{background-color:#d1d5db}.reviews-section{display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:2rem}.reviews-list{display:flex;flex-direction:column;gap:1.5rem}.no-reviews{background-color:#f9fafb;padding:1.5rem;border-radius:8px;text-align:center;color:#6b7280}.loading-state{background-color:#f0f9ff;padding:3rem;text-align:center;border-radius:8px;color:#0c4a6e;margin:2rem auto;max-width:600px}.error-state{background-color:#fee2e2;padding:3rem;text-align:center;border-radius:8px;color:#b91c1c;margin:2rem auto;max-width:600px}.error-state h2{margin-bottom:.75rem;font-size:1.5rem}.error-state p{margin-bottom:2rem}.back-button{display:inline-block;background-color:#3b82f6;color:#fff;padding:.75rem 1.5rem;border-radius:4px;text-decoration:none;font-weight:500;transition:background-color .3s ease}.back-button:hover{background-color:#2563eb}@media (max-width: 1024px){.race-header{flex-direction:column}.race-header-image{max-width:100%}.race-detail-content{flex-direction:column}.race-sidebar{min-width:auto}.categories-content{flex-direction:column;gap:2rem}}.auth-page{display:flex;justify-content:center;align-items:center;min-height:70vh}.auth-container{width:100%;max-width:500px;padding:2.5rem;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a}.auth-container h1{font-size:1.75rem;margin-bottom:.5rem;text-align:center}.auth-subtitle{text-align:center;color:#6b7280;margin-bottom:2rem}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500}.form-group input{padding:.75rem;border:1px solid #d1d5db;border-radius:4px;font-size:1rem}.error-message{background-color:#fee2e2;color:#b91c1c;padding:.75rem;border-radius:4px;font-size:.9rem}.auth-button{background-color:#3b82f6;color:#fff;border:none;padding:.75rem;border-radius:4px;font-weight:500;font-size:1rem;cursor:pointer;transition:background-color .3s ease}.auth-button:hover:not(:disabled){background-color:#2563eb}.auth-button:disabled{background-color:#93c5fd;cursor:not-allowed}.auth-footer{margin-top:2rem;text-align:center;color:#6b7280}.auth-footer a{color:#3b82f6;font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-help{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.demo-credentials{background-color:#f3f4f6;padding:1rem;border-radius:4px;font-size:.9rem;color:#4b5563}@media (max-width: 640px){.auth-container{padding:1.5rem}}.profile-page{display:flex;flex-direction:column;gap:3rem}.profile-header{display:flex;justify-content:space-between;align-items:center;background-color:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000000d}.profile-info h1{font-size:1.75rem;margin-bottom:.25rem}.user-email{color:#6b7280}.logout-button{background-color:#ef4444;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:4px;font-weight:500;cursor:pointer;transition:background-color .3s ease}.logout-button:hover{background-color:#dc2626}.profile-section{background-color:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000000d}.profile-section h2{font-size:1.5rem;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.loading-message{padding:2rem;text-align:center;color:#6b7280}.races-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}.race-grid-item{display:flex;height:100%}.empty-state{padding:3rem;text-align:center;background-color:#f9fafb;border-radius:8px}.empty-state p{color:#6b7280;margin-bottom:1.5rem}.browse-races-button{background-color:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;font-weight:500;cursor:pointer;transition:background-color .3s ease}.browse-races-button:hover{background-color:#2563eb}@media (max-width: 768px){.profile-header{flex-direction:column;gap:1.5rem;align-items:flex-start}.races-grid{grid-template-columns:1fr}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;min-width:320px;min-height:100vh}#root{width:100%;max-width:1280px;margin:0 auto;padding:0 1rem}@media (min-width: 640px){#root{padding:0 1.5rem}}@media (min-width: 1024px){#root{padding:0 2rem}}h1{font-size:2.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
