@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;0,14..32,800;1,14..32,400&display=swap";.app{min-height:100vh;background:var(--color-bg);display:flex;flex-direction:column}.app-main{flex:1;display:flex;flex-direction:column;width:100%}.schedules-page{max-width:1200px;margin:0 auto;width:100%;padding:24px 24px 56px}.schedules-page .controls-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);display:flex;align-items:flex-start;gap:0;flex-wrap:wrap}.error-message{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);margin-bottom:16px;font-size:.875rem;font-weight:500;border:1px solid;background:#fef2f2;color:#991b1b;border-color:#fecaca}.error-message.info{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:72px 24px;color:var(--color-text-secondary);gap:12px}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{font-size:.9rem;font-weight:500}.no-matches{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:72px 24px;text-align:center;color:var(--color-text-secondary);gap:8px}.no-matches svg{opacity:.25;margin-bottom:4px}.no-matches p{font-size:.95rem;font-weight:500}.no-matches .no-matches-hint{font-size:.82rem;color:var(--color-text-muted);font-weight:400}@media (max-width: 768px){.schedules-page{padding:16px 16px 40px}.schedules-page .controls-bar{padding:16px;gap:16px}.controls-divider{display:none}}.app-header{background:var(--color-primary);box-shadow:0 2px 12px #00000059;position:sticky;top:0;z-index:100}.app-header-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:flex-start;gap:16px}.header-menu-btn{background:none;border:none;color:#fff;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:background-color .2s ease;flex-shrink:0}.header-menu-btn:hover{background-color:#ffffff1a}.header-menu-btn:active{background-color:#ffffff26}.header-title{font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:-.3px;margin:0;display:flex;align-items:center;gap:4px}.header-subtitle{font-weight:500;opacity:.95;font-size:1rem}@media (max-width: 768px){.app-header-inner{padding:0 16px}.header-title{font-size:1.1rem}.header-subtitle{font-size:.9rem}}.nav-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:99;animation:fadeIn .2s ease}.nav-menu{position:fixed;top:0;left:0;width:280px;height:100vh;background:var(--color-surface);box-shadow:2px 0 12px #00000026;z-index:101;transform:translate(-100%);transition:transform .3s ease;display:flex;flex-direction:column;overflow-y:auto}.nav-menu.open{transform:translate(0)}.nav-header{padding:20px 24px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.nav-header h2{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0}.nav-close-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:background-color .2s ease}.nav-close-btn:hover{background-color:var(--color-bg)}.nav-links{list-style:none;padding:0;margin:0;flex:1}.nav-link{display:block;width:100%;padding:16px 24px;background:none;border:none;text-align:left;font-size:1rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:background-color .2s ease;border-left:3px solid transparent}.nav-link:hover{background-color:var(--color-bg);border-left-color:var(--color-accent)}.nav-link:active{background-color:var(--color-bg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 768px){.nav-menu{width:100%}}.home-page{flex:1;display:flex;justify-content:center;padding:40px 24px}.home-container{max-width:1100px;width:100%}.home-content{text-align:center}.home-title{font-size:2.5rem;font-weight:700;color:var(--color-primary);margin:0 0 8px;letter-spacing:-.5px}.home-subtitle{font-size:1.1rem;color:var(--color-text-secondary);margin:0 0 48px;font-weight:400}.home-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:48px}.home-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);text-decoration:none;transition:all .3s ease;box-shadow:var(--shadow-sm);cursor:pointer}.home-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-4px)}.home-card.schedules-card:hover{border-color:#3b82f6}.home-card.standings-card:hover{border-color:#10b981}.home-card.analytics-card:hover{border-color:#8b5cf6}.card-icon{font-size:3rem;margin-bottom:16px}.home-card h3{font-size:1.5rem;font-weight:700;color:var(--color-text);margin:0 0 8px}.home-card p{font-size:.95rem;color:var(--color-text-secondary);margin:0;line-height:1.5}.quick-stats-bar{display:flex;justify-content:center;gap:24px;margin:48px 0 0;flex-wrap:wrap}.stat-pill{display:flex;flex-direction:column;align-items:center;padding:16px 28px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.stat-value{font-size:1.5rem;font-weight:700;color:var(--color-primary)}.stat-label{font-size:.8rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.home-loading{margin:48px 0;color:var(--color-text-secondary);font-size:.95rem}.home-section{margin-top:48px;text-align:left}.section-title{font-size:1.25rem;font-weight:700;color:var(--color-text);margin-bottom:16px;text-align:center}.age-tabs{display:flex;gap:4px;justify-content:center;margin-bottom:20px;overflow-x:auto;-webkit-overflow-scrolling:touch}.age-tab{padding:8px 18px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.age-tab:hover{border-color:var(--color-primary);color:var(--color-text)}.age-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.elo-leaderboards{display:grid;grid-template-columns:1fr 1fr;gap:24px}.elo-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.elo-table-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border)}.elo-table-header h4{font-size:.95rem;font-weight:700;color:var(--color-text);margin:0}.view-all-link{font-size:.8rem;color:var(--color-accent);text-decoration:none;font-weight:500}.view-all-link:hover{text-decoration:underline}.elo-table{width:100%;border-collapse:collapse;font-size:.85rem}.elo-table th{padding:8px 12px;text-align:left;font-weight:600;color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.elo-table td{padding:10px 12px;border-bottom:1px solid var(--color-border-light);color:var(--color-text)}.elo-table tr:last-child td{border-bottom:none}.rank-cell{font-weight:700;color:var(--color-text-secondary);width:32px}.team-cell{display:flex;align-items:center;gap:8px;font-weight:600}.team-logo-sm{width:22px;height:22px;object-fit:contain;flex-shrink:0}.region-cell{color:var(--color-text-secondary);font-size:.8rem}.elo-cell{font-weight:700;font-variant-numeric:tabular-nums}.delta-cell{font-weight:600;font-variant-numeric:tabular-nums;font-size:.8rem}.delta-cell.positive{color:var(--color-success)}.delta-cell.negative{color:var(--color-error)}td.positive{color:var(--color-success);font-weight:600}td.negative{color:var(--color-error);font-weight:600}.spotlight-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}.spotlight-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px;text-align:center}.spotlight-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);margin-bottom:4px}.spotlight-program{font-size:.7rem;font-weight:600;color:var(--color-accent);text-transform:uppercase;margin-bottom:16px}.matchup{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}.matchup-team{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;min-width:0}.matchup-team.winner .team-name{color:var(--color-success)}.matchup-team.loser .team-name{color:var(--color-text-secondary)}.team-logo-md{width:36px;height:36px;object-fit:contain}.matchup .team-name{font-size:.8rem;font-weight:600;color:var(--color-text);text-align:center;word-break:break-word}.elo-badge{font-size:.7rem;font-weight:700;background:var(--color-bg);color:var(--color-text-secondary);padding:2px 8px;border-radius:var(--radius-sm);font-variant-numeric:tabular-nums}.matchup-score{font-size:1.1rem;font-weight:800;color:var(--color-primary);flex-shrink:0}.matchup-vs{font-size:.85rem;font-weight:800;color:var(--color-text-muted);flex-shrink:0}.upset-diff{font-size:.85rem;font-weight:700;color:var(--color-accent);margin-bottom:4px}.motw-combined{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:4px}.spotlight-date{font-size:.75rem;color:var(--color-text-muted)}.no-data-msg{text-align:center;color:var(--color-text-muted);font-size:.9rem;padding:16px}.fest-tables{display:grid;grid-template-columns:1fr 1fr;gap:24px}.fest-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.fest-table-wrapper h4{font-size:.95rem;font-weight:700;color:var(--color-text);padding:14px 16px;margin:0;border-bottom:1px solid var(--color-border)}.fest-table{width:100%;border-collapse:collapse;font-size:.85rem}.fest-table th{padding:8px 12px;text-align:left;font-weight:600;color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.fest-table td{padding:10px 12px;border-bottom:1px solid var(--color-border-light);color:var(--color-text)}.fest-table tr:last-child td{border-bottom:none}@media (max-width: 768px){.home-page{padding:24px 16px}.home-title{font-size:2rem}.home-subtitle{font-size:1rem;margin-bottom:36px}.home-cards{gap:16px;margin-top:36px}.home-card{padding:32px 20px}.card-icon{font-size:2.5rem;margin-bottom:12px}.home-card h3{font-size:1.25rem}.quick-stats-bar{gap:12px;margin-top:36px}.stat-pill{padding:12px 18px}.stat-value{font-size:1.2rem}.elo-leaderboards,.spotlight-row,.fest-tables{grid-template-columns:1fr}.age-tabs{justify-content:flex-start;padding-bottom:4px}.matchup{gap:10px}.team-logo-md{width:28px;height:28px}}.league-selector{display:flex;flex-direction:column;gap:8px;flex:1;min-width:200px}.league-buttons{display:flex;gap:6px;flex-wrap:wrap}.league-btn{display:flex;align-items:center;gap:8px;padding:9px 18px;background:var(--color-primary);border:1.5px solid var(--color-primary);border-radius:var(--radius-xl);color:#fff;font-size:.875rem;font-weight:600;cursor:default;transition:all .15s ease;white-space:nowrap;box-shadow:0 2px 8px #0a162840}.league-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 2px 8px #0a162840}.league-btn:disabled{opacity:1}@media (max-width: 600px){.league-selector{width:100%}.league-buttons{flex-direction:row}}.program-selector{display:flex;flex-direction:column;gap:8px;flex:1;min-width:200px}.selector-label{font-size:.7rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.8px}.program-buttons{display:flex;gap:6px;flex-wrap:wrap}.program-btn{display:flex;align-items:center;gap:8px;padding:9px 18px;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-xl);color:var(--color-text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.program-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface);transform:none}.program-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 2px 8px #0a162840}.program-btn.active:hover{background:var(--color-primary-light);border-color:var(--color-primary-light);color:#fff}.program-btn svg{width:15px;height:15px;flex-shrink:0}@media (max-width: 600px){.program-selector{width:100%}.program-buttons{flex-direction:row}}.season-selector{display:flex;flex-direction:column;gap:8px;flex:1;min-width:200px}.season-buttons{display:flex;gap:6px;flex-wrap:wrap}.season-button{padding:9px 18px;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-xl);color:var(--color-text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.season-button:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface);transform:none}.season-button.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 2px 8px #0a162840}.season-button.active:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}@media (max-width: 600px){.season-selector{width:100%}}.match-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow .2s ease,transform .2s ease;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.match-card:hover{box-shadow:var(--shadow-md)}.match-card-accent{height:3px;background:var(--color-primary)}.match-card-accent.accent-academy{background:var(--color-primary)}.match-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 0;gap:8px;flex-wrap:wrap}.match-badges{display:flex;gap:6px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:99px;font-size:.72rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.badge-clickable{cursor:pointer;transition:filter .15s ease,transform .1s ease}.badge-clickable:hover{filter:brightness(.88);transform:scale(1.06)}.badge-age{background:#eef2ff;color:#3730a3}.badge-gender{background:#f0fdf4;color:#166534}.badge-region{background:#fef9c3;color:#854d0e;margin-left:auto}.match-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;padding:16px}.team{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.team-crest{width:44px;height:44px;border-radius:50%;background:var(--color-bg);border:1.5px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:800;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;overflow:hidden}.team-logo{width:100%;height:100%;object-fit:contain;padding:4px}.team-crest--logo{background:transparent;border-color:transparent}.team-crest-clickable{cursor:pointer;transition:opacity .15s ease,transform .1s ease}.team-crest-clickable:hover{opacity:.75;transform:scale(1.08)}.team-name{font-size:.82rem;font-weight:700;color:var(--color-text);text-align:center;word-break:break-word;line-height:1.3;transition:color .15s ease}.team-name-clickable{cursor:pointer;color:var(--color-primary)}.team-name-clickable:hover{color:var(--color-primary-dark, #1d3a8a);text-decoration:underline}.home-team .team-name{text-align:right;align-items:flex-end}.away-team .team-name{text-align:left;align-items:flex-start}.home-team{align-items:flex-end}.away-team{align-items:flex-start}.team-elo{font-size:.68rem;font-weight:600;color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:99px;padding:1px 8px;letter-spacing:.3px}.win-probability{font-size:.62rem;font-weight:700;color:var(--color-text-muted);letter-spacing:.5px;margin-top:3px}.match-score{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:center;min-width:64px;padding:10px 14px;border-radius:var(--radius-md);flex-shrink:0}.match-score.scored{background:var(--color-primary)}.match-score.tbd{background:var(--color-bg);border:1.5px solid var(--color-border)}.score-value{font-size:1.3rem;font-weight:800;color:#fff;letter-spacing:1px;line-height:1}.score-tbd{font-size:.72rem;font-weight:800;color:var(--color-text-muted);letter-spacing:1.5px;text-transform:uppercase}.score-label{font-size:.6rem;font-weight:600;color:#ffffff80;letter-spacing:.5px;text-transform:uppercase;margin-top:2px}.match-footer{border-top:1px solid var(--color-border-light);padding:12px 16px;display:flex;flex-direction:column;gap:6px;background:var(--color-bg);min-height:90px;box-sizing:border-box;margin-top:auto}.detail{display:flex;align-items:center;gap:7px;color:var(--color-text-secondary);font-size:.815rem;line-height:1.3}.detail svg{flex-shrink:0;color:var(--color-text-muted)}.detail-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.venue-link{color:inherit;text-decoration:none}.venue-link:hover{color:var(--color-primary);text-decoration:underline}.detail-calendar{all:unset;display:flex;align-items:center;gap:5px;cursor:pointer;border-radius:var(--radius-sm);padding:1px 3px;margin:-1px -3px;transition:color .15s,background-color .15s;font-size:.815rem;line-height:1.3;color:var(--color-text-secondary)}.detail-calendar:hover{color:var(--color-primary)}.detail-calendar:hover .detail-text{text-decoration:underline}@media (max-width: 480px){.match-teams{gap:8px;padding:12px}.team-name{font-size:.78rem}.match-score{min-width:52px;padding:8px 10px}.score-value{font-size:1.1rem}}.match-list{margin-top:4px}.match-list-header{display:flex;align-items:baseline;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.match-count{font-size:1rem;font-weight:700;color:var(--color-text)}.match-count-label{font-size:.85rem;color:var(--color-text-muted);font-weight:400}.match-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}@media (max-width: 768px){.match-grid{grid-template-columns:1fr;gap:12px}}.filter-bar{background:var(--color-surface);padding:16px 20px 52px;border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:24px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:10px;position:relative}.filter-section{display:flex;flex-direction:row;align-items:center;gap:12px}.filter-section label{font-weight:600;color:var(--color-text);font-size:.8rem;text-transform:uppercase;letter-spacing:.4px;width:58px;flex-shrink:0;margin:0}.filter-select,.filter-input{flex:1;min-width:0;padding:7px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text);background:var(--color-surface);transition:border-color .2s,box-shadow .2s;font-family:inherit}.team-search-container{flex:1;min-width:0;position:relative;display:flex;align-items:center;overflow:visible;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);transition:border-color .2s,box-shadow .2s}.team-search-container:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #0a16281a}.team-search-container .filter-input{flex:1;min-width:0;border:none;background:transparent;box-shadow:none!important;padding-right:4px}.team-search-container .filter-input:focus{outline:none;border:none;box-shadow:none}.team-clear-button{flex-shrink:0;background:none;border:none;color:var(--color-text-muted);font-size:18px;line-height:1;cursor:pointer;padding:0 8px 0 4px;height:100%;display:flex;align-items:center;justify-content:center;border-radius:0 var(--radius-sm) var(--radius-sm) 0;transition:color .15s,background-color .15s}.team-clear-button:hover{color:var(--color-text);background-color:var(--color-bg)}.autocomplete-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);max-height:200px;overflow-y:auto;box-shadow:var(--shadow-md);z-index:10}.suggestion-item{padding:10px 12px;cursor:pointer;color:var(--color-text);font-size:.9rem;transition:background-color .15s;border-bottom:1px solid var(--color-border)}.suggestion-item:hover{background-color:var(--color-bg)}.suggestion-item:last-child{border-bottom:none}.filter-select:focus,.filter-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0a16281a}.age-group-checkboxes{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.checkbox-label{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--color-text);font-size:.875rem;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}@media (max-width: 768px){.filter-section label{min-width:48px}}.reset-button{position:absolute;bottom:14px;right:20px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);font-family:inherit;cursor:not-allowed;opacity:.5;transition:all .2s}.reset-button--active{border-color:var(--color-primary);opacity:1;cursor:pointer}.reset-button--active:hover{background:var(--color-primary)}.reset-button--active:hover .reset-icon{filter:brightness(0) invert(1)}.reset-icon{width:16px;height:16px;object-fit:contain}.standings-page{max-width:1200px;margin:0 auto;width:100%;padding:24px 24px 56px}.standings-page .controls-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);display:flex;align-items:flex-start;gap:0;flex-wrap:wrap}.controls-divider{width:1px;background:var(--color-border);align-self:stretch;margin:0 28px;flex-shrink:0}.standings-page .standings-filters{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:24px;box-shadow:var(--shadow-sm);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.standings-page .standings-filter-group{display:flex;flex-direction:column;gap:8px}.standings-page .standings-filter-group label{font-size:.875rem;font-weight:600;color:var(--color-text);text-transform:uppercase;letter-spacing:.3px}.standings-page .standings-filter-select{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.95rem;cursor:pointer;transition:border-color .2s ease}.standings-page .standings-filter-select:hover{border-color:var(--color-primary)}.standings-page .standings-filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0a16281a}.standings-page .standings-error{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);margin-bottom:16px;font-size:.875rem;font-weight:500;border:1px solid #fecaca;background:#fef2f2;color:#991b1b}.standings-page .standings-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:72px 24px;color:var(--color-text-secondary);gap:12px}.standings-page .standings-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:standings-spin .7s linear infinite}@keyframes standings-spin{to{transform:rotate(360deg)}}.standings-page .standings-loading p{font-size:.9rem;font-weight:500}.standings-page .no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:72px 24px;text-align:center;color:var(--color-text-secondary)}.standings-page .no-results p{font-size:.95rem;font-weight:500}.standings-group{margin-bottom:32px}.standings-region-heading{font-size:1rem;font-weight:700;color:var(--color-text);text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px;padding:0 4px}.standings-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.standings-table{width:100%;border-collapse:collapse;font-size:.9rem}.standings-table thead{background:var(--color-bg);border-bottom:2px solid var(--color-border);position:sticky;top:0}.standings-table th{padding:12px 8px;text-align:left;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;font-size:.75rem;letter-spacing:.3px;white-space:nowrap}.standings-table td{padding:12px 8px;border-bottom:1px solid var(--color-border);color:var(--color-text)}.standings-table tbody tr.even{background:var(--color-bg)}.standings-table tbody tr.odd{background:var(--color-surface)}.standings-table tbody tr:hover{background:#0a162808}.standings-team-row{cursor:pointer;transition:background .15s ease}.standings-team-row:hover{background:#0a16280f!important}.standings-team-row.expanded{background:#0a16280a!important}.standings-chevron{font-size:.6rem;color:var(--color-text-secondary);margin-right:4px;display:inline-block;transition:transform .2s ease;flex-shrink:0}.standings-chevron.open{transform:rotate(90deg)}.team-matches-expansion td{padding:0;background:var(--color-bg);border-top:1px solid var(--color-border);border-bottom:2px solid var(--color-border)}.team-matches-loading,.team-matches-empty{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:.85rem;color:var(--color-text-secondary)}.standings-spinner.small{width:16px;height:16px;border-width:2px}.team-matches-list{list-style:none;margin:0;padding:8px 16px;display:flex;flex-direction:column;gap:6px}.team-match-row{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.85rem;padding:4px 52px;border-bottom:1px solid var(--color-border);position:relative}.team-match-row:last-child{border-bottom:none}.match-date{position:absolute;left:0;width:48px;color:var(--color-text-secondary);font-size:.8rem;padding-top:2px}.match-home,.match-away{display:flex;align-items:flex-start;gap:6px;flex:1;max-width:190px;font-weight:500;min-width:0}.match-home{justify-content:flex-end;text-align:right}.match-away{justify-content:flex-start}.match-name{overflow-wrap:break-word;word-break:break-word}.match-logo{width:auto;max-width:20px;height:20px;object-fit:contain;flex-shrink:0;align-self:flex-start;margin-top:1px}.match-score{font-weight:700;font-size:.9rem;color:var(--color-text);flex-shrink:0;min-width:36px;text-align:center}@media (max-width: 400px){.match-home,.match-away{max-width:130px}}.col-rank{width:40px;text-align:center;font-weight:600}.col-team{min-width:200px;display:flex;align-items:center;gap:10px}.standings-table .standings-team-logo{width:32px;height:32px;object-fit:contain;object-position:right center;flex-shrink:0}.standings-table .standings-team-name{font-weight:500}.col-gp{width:45px;text-align:center}.col-record{width:70px;text-align:center;font-weight:500}.col-goals{width:45px;text-align:center}.col-gpm{width:60px;text-align:center;font-weight:500;color:var(--color-primary)}.col-pts{width:50px;text-align:center;font-weight:600}.col-ppm{width:60px;text-align:center;font-weight:700;color:var(--color-accent);background:#c8102e0d}.col-wpm{width:60px;text-align:center;font-weight:500}.col-gdpm{width:65px;text-align:center;font-weight:500}.qop-table .col-division{color:var(--color-text-secondary);font-size:.8rem;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qop-table .col-mp{width:45px;text-align:center}.qop-table .col-att,.qop-table .col-def{width:60px;text-align:center;font-variant-numeric:tabular-nums}.qop-table .col-qop{width:65px;text-align:center;font-weight:700;color:var(--color-accent);background:#c8102e0d;font-variant-numeric:tabular-nums}.qop-table tr.qop-championship{border-left:3px solid #10b981}.qop-table tr.qop-premier{border-left:3px solid #3b82f6}.qop-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:.65rem;font-weight:700;color:#fff;flex-shrink:0;margin-left:6px}.qop-badge-championship{background:#10b981}.qop-badge-premier{background:#3b82f6}.qop-legend{display:flex;gap:20px;justify-content:center;margin-top:12px;font-size:.8rem;color:var(--color-text-secondary)}.qop-legend-item{display:flex;align-items:center;gap:6px}@media (max-width: 768px){.standings-page{padding:16px 16px 40px}.standings-page .controls-bar{padding:16px;gap:16px}.controls-divider{display:none}.standings-page .standings-filters{padding:16px;gap:16px}.standings-table{font-size:.8rem}.standings-table th,.standings-table td{padding:8px 6px}.col-team{min-width:150px}.standings-table .standings-team-logo{width:26px;height:26px}.standings-table .standings-team-name{font-size:.85rem}.col-gpm,.col-wpm,.col-gdpm{width:50px}.col-ppm{width:55px;font-size:.85rem}}@media (max-width: 480px){.standings-table{font-size:.75rem}.standings-table th,.standings-table td{padding:6px 4px}.col-rank{width:30px}.col-team{min-width:130px}.col-gp,.col-goals{width:35px}.col-record{width:60px}.col-pts,.col-gpm,.col-wpm,.col-gdpm{width:45px}.col-ppm{width:50px}}.analytics-page{max-width:1200px;margin:0 auto;width:100%;padding:24px 24px 56px}.analytics-page .controls-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);display:flex;align-items:flex-start;gap:0;flex-wrap:wrap}.analytics-page .analytics-filters{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:24px;box-shadow:var(--shadow-sm);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.analytics-page .analytics-filter-group{display:flex;flex-direction:column;gap:8px}.analytics-page .analytics-filter-group label{font-size:.875rem;font-weight:600;color:var(--color-text);text-transform:uppercase;letter-spacing:.3px}.analytics-page .analytics-filter-select,.analytics-page .analytics-filter-input{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.95rem;cursor:pointer;transition:border-color .2s ease}.analytics-page .analytics-filter-input{cursor:text}.analytics-page .analytics-filter-select:hover,.analytics-page .analytics-filter-input:hover{border-color:var(--color-primary)}.analytics-page .analytics-filter-select:focus,.analytics-page .analytics-filter-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0a16281a}.analytics-page .analytics-error{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);margin-bottom:16px;font-size:.875rem;font-weight:500;border:1px solid #fecaca;background:#fef2f2;color:#991b1b}.analytics-page .analytics-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:72px 24px;color:var(--color-text-secondary);gap:12px}.analytics-page .analytics-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:#8b5cf6;border-radius:50%;animation:analytics-spin .7s linear infinite}@keyframes analytics-spin{to{transform:rotate(360deg)}}.analytics-page .analytics-loading p{font-size:.9rem;font-weight:500}.analytics-page .no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:72px 24px;text-align:center;color:var(--color-text-secondary)}.analytics-page .no-results p{font-size:.95rem;font-weight:500}.analytics-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.analytics-table{width:100%;border-collapse:collapse;font-size:.9rem}.analytics-table thead{background:var(--color-bg);border-bottom:2px solid var(--color-border);position:sticky;top:0}.analytics-table th{padding:12px 8px;text-align:left;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;font-size:.75rem;letter-spacing:.3px;white-space:nowrap}.analytics-table td{padding:12px 8px;border-bottom:1px solid var(--color-border);color:var(--color-text)}.analytics-table tbody tr.even{background:var(--color-bg)}.analytics-table tbody tr.odd{background:var(--color-surface)}.analytics-table tbody tr:hover{background:#0a162808}.analytics-table .col-rank{width:40px;text-align:center;font-weight:600}.analytics-table .col-team{min-width:200px}.team-cell-inner{display:flex;align-items:center;gap:10px}.analytics-team-logo{width:32px;height:32px;object-fit:contain;flex-shrink:0}.analytics-team-name{font-weight:500}.analytics-table .col-region{min-width:120px;font-size:.85rem;color:var(--color-text-secondary)}.analytics-table .col-gp{width:45px;text-align:center}.analytics-table .col-sos{width:60px;text-align:center}.analytics-table .col-last5{width:120px}.analytics-table .col-momentum{width:110px;text-align:center}.analytics-table .col-elo{width:100px;text-align:center}.analytics-table .col-delta{width:90px;text-align:center}.elo-rating{font-weight:700;font-size:.95rem}.elo-delta{font-weight:600;font-size:.9rem}.elo-delta.positive{color:#16a34a}.elo-delta.negative{color:#dc2626}.elo-delta.neutral{color:var(--color-text-secondary)}.elo-na{color:var(--color-text-secondary);font-size:.85rem}.limited-data-note{display:block;font-size:.72rem;color:var(--color-text-secondary);margin-top:2px;opacity:.8}.last5-badges{display:flex;gap:4px;align-items:center}.result-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0}.result-badge.win{background:#16a34a}.result-badge.draw{background:#ca8a04}.result-badge.loss{background:#dc2626}.result-badge.deemphasized{opacity:.45}.momentum-badge{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:.95rem;color:var(--color-text)}.momentum-arrow{font-size:1rem;line-height:1}.elo-info-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--color-text-secondary);background:none;color:var(--color-text-secondary);font-size:.6rem;font-weight:700;cursor:pointer;margin-left:4px;padding:0;vertical-align:middle;line-height:1}.elo-info-btn:hover{background:var(--color-text-secondary);color:var(--color-surface)}.elo-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.elo-modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:28px 32px;max-width:480px;width:90%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0000004d}.elo-modal h3{margin:0 0 12px;font-size:1.1rem;color:var(--color-text)}.elo-modal h4{margin:16px 0 8px;font-size:.9rem;color:var(--color-text)}.elo-modal p{margin:0 0 8px;font-size:.875rem;line-height:1.5;color:var(--color-text-secondary)}.elo-modal ul{margin:0;padding-left:20px}.elo-modal li{font-size:.875rem;line-height:1.6;color:var(--color-text-secondary)}.elo-modal-close{position:absolute;top:12px;right:16px;border:none;background:none;font-size:1.4rem;color:var(--color-text-secondary);cursor:pointer;padding:4px;line-height:1}.elo-modal-close:hover{color:var(--color-text)}@media (max-width: 768px){.analytics-page{padding:16px 16px 40px}.analytics-page .controls-bar,.analytics-page .analytics-filters{padding:16px;gap:16px}.analytics-table{font-size:.8rem}.analytics-table th,.analytics-table td{padding:8px 6px}.analytics-table .col-team{min-width:150px}.analytics-team-logo{width:26px;height:26px}.analytics-team-name{font-size:.85rem}}@media (max-width: 480px){.analytics-table{font-size:.75rem}.analytics-table th,.analytics-table td{padding:6px 4px}.analytics-table .col-rank{width:30px}.analytics-table .col-team{min-width:130px}.result-badge{width:17px;height:17px;font-size:.65rem}}*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #0a1628;--color-primary-light: #162440;--color-accent: #c8102e;--color-accent-hover: #a50d26;--color-bg: #f0f2f5;--color-surface: #ffffff;--color-surface-hover: #f8fafc;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-text: #0f172a;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-success: #16a34a;--color-warning: #d97706;--color-error: #dc2626;--shadow-sm: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 16px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 8px 32px rgba(0,0,0,.1), 0 4px 8px rgba(0,0,0,.05);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh}button{font-family:inherit;cursor:pointer}a{color:var(--color-accent);text-decoration:none}
