.custom-select{position:relative;min-width:200px}.custom-select__trigger{width:100%;min-width:100%;padding:6px 6px 6px 8px;gap:20px;border:none;border-bottom:1px solid #ddd;border-radius:0;font-size:17px;font-weight:700;text-transform:uppercase;color:#ea0039;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:border-bottom-color .2s ease}.custom-select__trigger:hover{border-bottom-color:#ea0039}.custom-select__trigger:focus{outline:none;border-bottom-color:#ea0039}.custom-select__value{flex:1;text-align:left}.custom-select__arrow{display:flex;align-items:center;color:#ea0039;padding-right:6px;transition:transform .2s ease}.custom-select--open .custom-select__arrow{transform:rotate(180deg)}.custom-select__dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;list-style:none;margin:0;padding:0;max-height:300px;overflow-y:auto;z-index:1000;box-shadow:0 4px 6px #0000001a}.custom-select__option{padding:10px 12px;cursor:pointer;color:#000;background:#fff;transition:all .15s ease;font-size:15px;font-weight:600;text-transform:uppercase}.custom-select__option:hover,.custom-select__option--highlighted{background:#ea0039;color:#fff}.custom-select__option--selected{background:#f8f8f8;font-weight:700}.custom-select__option--selected:hover,.custom-select__option--selected.custom-select__option--highlighted{background:#ea0039;color:#fff}.custom-select__dropdown::-webkit-scrollbar{width:8px}.custom-select__dropdown::-webkit-scrollbar-track{background:#f1f1f1}.custom-select__dropdown::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.custom-select__dropdown::-webkit-scrollbar-thumb:hover{background:#999}.custom-select--disabled .custom-select__trigger{opacity:.5;cursor:not-allowed}.custom-select--disabled .custom-select__trigger:hover{border-bottom-color:#ddd}.selector-group{display:flex;align-items:center;gap:8px}.view-selector{display:flex;align-items:center;gap:30px}.selector-group label{font-weight:400;font-size:16px;text-transform:uppercase;letter-spacing:.8px;color:#000;white-space:nowrap}.view-dropdown{min-width:200px;padding:6px 28px 6px 8px;border:none;border-bottom:1px solid #ddd;border-radius:0;font-size:17px;font-weight:700;text-transform:uppercase;color:#ea0039;background:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ea0039' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.view-dropdown:hover{border-bottom-color:#ea0039}.view-dropdown:focus{outline:none;border-bottom-color:#ea0039}.view-dropdown option{color:#000;background:#fff;padding:8px}.competition-overview{background:#fff;border-radius:6px;padding:20px}.overview-loading{padding:40px;text-align:center;color:#666}.results-table-wrapper{overflow-x:auto}.results-table{width:100%;border-collapse:collapse;font-size:14px}.results-table thead{background:#f8f9fa;border-bottom:2px solid #dee2e6}.results-table th{padding:12px 8px;text-align:center;font-weight:600;color:#2c3e50;white-space:nowrap}.results-table th:first-child{text-align:left;min-width:150px}.results-table tbody tr{border-bottom:1px solid #e9ecef;transition:background-color .15s}.results-table tbody tr:hover{background-color:#f8f9fa}.athlete-cell{padding:12px 8px;font-weight:500;color:#2c3e50}.score-cell{text-align:center;padding:12px 8px;color:#495057}.run-scores{display:flex;flex-direction:column;gap:4px;align-items:center}.mobile-view{padding:16px}.athlete-cards-container{display:flex;flex-direction:column;gap:16px}.athlete-result-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #00000014;transition:box-shadow .2s}.athlete-result-card:hover{box-shadow:0 4px 12px #0000001f}.card-athlete-header{padding:16px;background:#f8f9fa;border-bottom:1px solid #dee2e6}.card-section{padding:16px;border-bottom:1px solid #e9ecef}.card-section:last-child{border-bottom:none}.section-title{font-size:14px;font-weight:700;color:#2c3e50;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.section-content{display:flex;flex-direction:column;gap:12px}.data-row{display:flex;align-items:flex-start;gap:12px}.data-label{font-weight:600;color:#6c757d;font-size:13px;min-width:60px;padding-top:4px}.data-value{flex:1}.points-section{background:#f8f9fa}.points-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.points-item{text-align:center}.points-label{display:block;font-size:12px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.points-value{font-size:18px;font-weight:600;color:#2c3e50}.total-points-item .points-value{font-size:32px;font-weight:700;color:#000}.athlete-card{display:flex;align-items:center;gap:12px;padding:4px 0}.athlete-card__avatar{flex-shrink:0;width:65px;height:65px;border-radius:50%;overflow:hidden;background:#f0f0f0;border:2px solid #e0e0e0}.athlete-card__image{width:100%;height:100%;object-fit:cover}.athlete-card__initials{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:18px;letter-spacing:.5px}.athlete-card__info{display:flex;flex-direction:column;gap:4px;min-width:0}.athlete-card__name{font-weight:600;font-size:16px;color:#2c3e50;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.athlete-card__details{display:flex;align-items:center;gap:8px;font-size:12px;color:#6c757d}.athlete-card__country{display:inline-flex;align-items:center}.athlete-card__country .fi{font-size:16px}.athlete-card__bib{font-weight:600;color:#495057;font-size:11px;text-transform:uppercase;letter-spacing:.3px}.athlete-card__seed{font-weight:700;color:#2c3e50;font-size:13px}@media (max-width: 768px){.athlete-card{gap:8px}.athlete-card__avatar{width:50px;height:50px}.athlete-card__initials,.athlete-card__name,.athlete-card__country .fi{font-size:14px}.athlete-card__bib{font-size:10px}}.run-scores-wrapper{display:flex;align-items:center;justify-content:center;gap:12px}.run-scores{display:flex;flex-direction:column;gap:4px;align-items:center;font-size:19.6px}.run-score-item{display:flex;align-items:center;gap:6px}.run-label{font-size:10px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px;min-width:40px}.run-value{font-weight:500}.run-score-item.best-score .run-value{font-weight:700;color:#000}.qualification-icon{display:flex;align-items:center}.qualification-icon svg{display:block}.qf-view{width:100%;padding:20px;box-sizing:border-box}.qf-table-wrapper{width:100%;overflow-x:auto;box-sizing:border-box}.qf-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.qf-table thead{background:#f8f9fa}.qf-table th{padding:16px 12px;text-align:left;font-weight:600;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:#6b7280;border-bottom:2px solid #e5e7eb}.qf-table th:nth-child(4),.qf-table th:nth-child(5),.qf-table th:nth-child(6),.qf-table th:nth-child(7){text-align:center}.qf-table td{padding:16px 12px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.qf-table .matchup-cell{font-weight:400;font-size:21px;color:#1f2937;text-align:center;background:#f9fafb;border-right:2px solid #e5e7eb}.qf-table .seed-cell{font-weight:600;color:#6b7280;text-align:center;width:60px}.qf-table .athlete-cell{min-width:200px}.qf-table .score-cell{text-align:center;font-weight:500;font-size:16px;color:#374151;padding:16px 20px}.qf-table .score-cell.best-run{background:#d1fae5;font-weight:700;color:#047857}.qf-table .result-cell{text-align:center}.qf-table .result-cell svg{display:inline-block;vertical-align:middle}.qf-table .winner-row{background:#f0fdf4}.qf-table .loser-row{background:#fff}.qf-table .matchup-separator td{padding:8px 0;border-bottom:2px solid #e5e7eb;background:#fafafa}@media (max-width: 768px){.qf-table{font-size:14px}.qf-table th,.qf-table td{padding:12px 8px}.qf-table .score-cell{font-size:14px;width:70px}.qf-table .athlete-cell{min-width:150px}}.heat-view{width:100%;padding:20px;box-sizing:border-box}.heat-table-wrapper{width:100%;overflow-x:auto;box-sizing:border-box}.heat-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.heat-table thead{background:#f8f9fa}.heat-table th{padding:16px 12px;text-align:left;font-weight:600;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:#6b7280;border-bottom:2px solid #e5e7eb}.heat-table th:nth-child(2),.heat-table th:nth-child(3),.heat-table th:nth-child(4),.heat-table th:nth-child(5){text-align:center}.heat-table td{padding:16px 12px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.heat-table .athlete-cell{min-width:200px}.heat-table .score-cell{text-align:center;font-weight:500;font-size:16px;color:#374151;padding:16px 20px}.heat-table .best-run-cell{font-weight:700}.heat-table .best-run-cell.qualified{background:#d1fae5;color:#047857}.heat-table .rank-cell{text-align:center;font-weight:600;font-size:16px;color:#374151}.heat-table .qualified-row{background:#f0fdf4}@media (max-width: 768px){.heat-table{font-size:14px}.heat-table th,.heat-table td{padding:12px 8px}.heat-table .score-cell{font-size:14px}.heat-table .athlete-cell{min-width:150px}}.qualifying-overview{width:100%;padding:20px;box-sizing:border-box}.qualifying-table-wrapper{width:100%;overflow-x:auto;box-sizing:border-box}.qualifying-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.qualifying-table thead{background:#f8f9fa}.qualifying-table th{padding:16px 12px;text-align:left;font-weight:600;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:#6b7280;border-bottom:2px solid #e5e7eb}.qualifying-table th:not(:first-child){text-align:center}.qualifying-table td{padding:12px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.qualifying-table .athlete-cell{min-width:200px}.qualifying-table .heat-cell{text-align:center;min-width:120px}.qualifying-table .heat-cell.empty{color:#9ca3af;font-style:italic}.heat-runs{display:flex;align-items:center;justify-content:center;gap:12px}.heat-runs>div:first-child{display:flex;flex-direction:column;gap:2px}.heat-runs .run-row{display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap}.heat-runs .run-label{font-weight:600;color:#6b7280;font-size:11px;min-width:20px}.heat-runs .run-score{font-weight:500;color:#374151;text-align:right;min-width:45px}.heat-runs .qualification-icon{display:flex;align-items:center}.heat-runs .qualification-icon svg{display:block}@media (max-width: 1024px){.qualifying-table{font-size:13px}.qualifying-table th,.qualifying-table td{padding:10px 8px}.qualifying-table .heat-cell{min-width:100px}.heat-runs .run-row{font-size:12px}}@media (max-width: 768px){.qualifying-table .athlete-cell{min-width:150px}.qualifying-table .heat-cell{min-width:90px}.heat-runs{gap:4px}.heat-runs .qualification-icon svg{width:16px;height:16px}}.live-results-react{background:#fff}.header{display:flex;align-items:center;justify-content:center;padding:20px;gap:30px;flex-wrap:wrap}.contest-selector{display:flex;align-items:center;gap:8px}.contest-selector label{font-weight:400;font-size:16px;text-transform:uppercase;letter-spacing:.8px;color:#000;white-space:nowrap}.contest-dropdown{min-width:250px;padding:4px 24px 4px 4px;border:none;border-bottom:1px solid #ddd;border-radius:0;font-size:17px;font-weight:700;text-transform:uppercase;color:#ea0039;background:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ea0039' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.contest-dropdown:hover{border-bottom-color:#ea0039}.contest-dropdown:focus{outline:none;border-bottom-color:#ea0039}.contest-dropdown option{color:#000;background:#fff;padding:8px}.contest-dropdown option:hover{background:#ea0039;color:#fff}.live-results-loading,.live-results-error{padding:60px 20px;text-align:center;font-size:16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.live-results-loading{display:flex;flex-direction:column;align-items:center;gap:20px}.live-results-loading .spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #0073aa;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.live-results-error{color:#d63638;background:#fff5f5;border:1px solid #fdd}.live-results-error strong{color:#b32d2e}.heat-view{background:#fff;padding:30px;border-radius:6px;box-shadow:0 1px 3px #0000001a;text-align:center}.heat-view h3{margin:0 0 10px;color:#2c3e50}.heat-view p{margin:0;color:#666}@media (max-width: 900px){.header{flex-direction:column;gap:20px;padding:16px}.contest-selector{width:100%;flex-direction:column;align-items:stretch;gap:12px}.contest-selector label{text-align:center}.contest-dropdown{width:100%;min-width:unset}}.season-standings{max-width:1400px;margin:0 auto;padding:20px 0}.season-standings__filters{display:flex;gap:20px;margin-bottom:30px;flex-wrap:wrap;align-items:center}.season-standings__filter{display:flex;flex-direction:row;gap:12px;align-items:center;min-width:auto}.season-standings__filter-label{font-size:14px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.season-standings__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.spinner{width:40px;height:40px;border:4px solid #f3f4f6;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.season-standings__error{background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;padding:20px;text-align:center}.season-standings__error p{color:#991b1b;margin:0 0 12px}.retry-button{background:#dc2626;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-weight:500}.retry-button:hover{background:#b91c1c}.standings-table__scroll-container{display:none;overflow-x:auto;border-radius:12px;box-shadow:0 1px 3px #0000001a}.standings-table__table{width:100%;border-collapse:collapse;background:#fff;min-width:800px}.standings-table__table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.standings-table__table th{padding:16px 12px;text-align:left;font-size:12px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.standings-table__table th.rank-column{text-align:center;width:80px}.standings-table__table th.athlete-column{min-width:200px}.standings-table__table th.country-column{text-align:center;width:80px}.standings-table__table th.event-column{text-align:center;width:100px}.standings-table__table th.total-column{text-align:center;width:120px;background:#eff6ff;font-weight:800;color:#1e40af}.standings-table__table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .2s}.standings-table__table tbody tr:hover{background:#f9fafb}.standings-table__table td{padding:16px 12px;vertical-align:middle}.rank-cell{text-align:center;font-weight:700;font-size:18px;color:#374151}.athlete-cell{min-width:200px}.country-cell{text-align:center}.country-cell .fi{font-size:24px}.event-points-cell{text-align:center;font-weight:500;color:#6b7280}.total-points-cell{text-align:center;font-weight:800;font-size:18px;color:#1e40af;background:#eff6ff}.standings-cards{display:flex;flex-direction:column;gap:16px}.standings-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.standings-card__header{display:flex;align-items:center;gap:12px;padding:16px;background:#f9fafb;border-bottom:1px solid #e5e7eb}.standings-card__rank{font-size:24px;font-weight:800;color:#374151;min-width:50px;text-align:center}.standings-card__athlete{flex:1}.standings-card__total{font-size:18px;font-weight:800;color:#1e40af;background:#eff6ff;padding:8px 16px;border-radius:6px}.standings-card__events{padding:16px;display:flex;flex-direction:column;gap:12px}.standings-card__event{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f3f4f6}.standings-card__event:last-child{border-bottom:none}.standings-card__event .event-name{font-weight:500;color:#374151}.standings-card__event .event-points{font-weight:600;color:#6b7280}.standings-table__empty{text-align:center;padding:60px 20px;color:#6b7280}@media (min-width: 768px){.standings-table__scroll-container{display:block}.standings-cards{display:none}.season-standings__filters{justify-content:flex-start}}
