:root{color-scheme:dark;--navy-950: #07111f;--navy-900: #0b1728;--navy-850: #102036;--navy-800: #152942;--blue: #2d7ff9;--blue-bright: #55a4ff;--red: #f05252;--green: #39d98a;--amber: #f6c453;--text-primary: #f7f9fc;--text-secondary: #a9b6c8;--text-muted: #75849a;--border-color: rgba(255, 255, 255, .09);--card-background: rgba(16, 32, 54, .88);--background-color: var(--navy-950);--primary-color: var(--blue);--secondary-color: var(--red);--shadow: 0 14px 40px rgba(0, 0, 0, .24);--shadow-hover: 0 18px 48px rgba(0, 0, 0, .34);--border-radius: 16px;--transition: .16s ease}*{box-sizing:border-box;margin:0;padding:0}html{min-height:100%;background:var(--navy-950)}body{min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-primary);line-height:1.5;background:radial-gradient(circle at 15% -10%,rgba(45,127,249,.22),transparent 32rem),radial-gradient(circle at 90% 10%,rgba(240,82,82,.1),transparent 28rem),var(--navy-950)}button,select{font:inherit}button{-webkit-tap-highlight-color:transparent}.header{border-bottom:1px solid var(--border-color);background:#07111fd6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.header-content{width:min(1440px,100%);min-height:88px;margin:0 auto;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.eyebrow{color:var(--blue-bright);font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.main-title{margin-top:.12rem;font-size:clamp(1.65rem,3vw,2.25rem);line-height:1;letter-spacing:-.04em}.main-title span{color:var(--text-secondary);font-weight:650}.connection-status{display:flex;justify-content:flex-end}.live-indicator,.offline-indicator{display:none;align-items:center;gap:.5rem;border:1px solid var(--border-color);border-radius:999px;padding:.42rem .72rem;font-size:.75rem;font-weight:700}.live-indicator.visible,.offline-indicator.visible{display:flex}.live-indicator{color:#b9f7d7;background:#39d98a1f}.live-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--green);box-shadow:0 0 #39d98a8c;animation:live-pulse 1.8s infinite}.offline-indicator{color:#ffe2a5;background:#f6c4531f}.offline-icon{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}@keyframes live-pulse{70%{box-shadow:0 0 0 7px #39d98a00}to{box-shadow:0 0 #39d98a00}}.main-container{width:min(1440px,100%);min-height:calc(100vh - 160px);margin:0 auto;padding:1.25rem 1.5rem 2.5rem}.main-container.game-detail-mode,.main-container.team-schedule-mode{padding-top:1.25rem}.loading-container,.error-container{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.spinner{width:38px;height:38px;margin-bottom:1rem;border:3px solid rgba(255,255,255,.12);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-content{max-width:420px;padding:2rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--card-background);box-shadow:var(--shadow)}.error-content h2{margin-bottom:.5rem}.error-content p{color:var(--text-secondary)}.retry-button,.back-button,.nav-button,.clear-filters{border:0;cursor:pointer;transition:transform var(--transition),background var(--transition),border-color var(--transition)}.retry-button,.back-button{margin-top:1rem;padding:.7rem 1rem;border-radius:10px;color:#fff;background:var(--blue);font-weight:750}.retry-button:hover,.back-button:hover,.nav-button:hover:not(:disabled){transform:translateY(-1px)}.error-container,.week-navigation,.scoreboard-toolbar,.games-container,.game-detail-container,.team-schedule-container,.no-games-message{display:none}.error-container.visible,.week-navigation.visible,.scoreboard-toolbar.visible,.games-container.visible,.game-detail-container.visible,.team-schedule-container.visible,.no-games-message.visible{display:block}.week-navigation{position:sticky;top:0;z-index:20;margin:-1px -.4rem .85rem;padding:.65rem;border:1px solid var(--border-color);border-radius:14px;background:#0b1728eb;box-shadow:0 8px 30px #0003;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.nav-container{display:grid;grid-template-columns:minmax(110px,1fr) minmax(180px,2fr) minmax(110px,1fr);align-items:center;gap:.6rem}.nav-button{min-height:44px;padding:.55rem .85rem;display:flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);background:#ffffff0f;font-size:.86rem;font-weight:750}.nav-button:hover:not(:disabled){border-color:#55a4ff80;background:#2d7ff92e}.nav-button:disabled{cursor:not-allowed;opacity:.32}.nav-arrow{color:var(--blue-bright);font-size:1.05rem}.current-week-info{min-width:0;text-align:center}.week-title{font-size:1.12rem;letter-spacing:-.02em;white-space:nowrap}.week-dates{color:var(--text-secondary);font-size:.76rem;white-space:nowrap}.week-selector{margin-top:.6rem;display:flex;align-items:center;justify-content:center;gap:.55rem;color:var(--text-muted);font-size:.75rem;font-weight:700}.week-selector label{flex:0 0 auto;white-space:nowrap}.week-selector select{width:7.25rem;min-width:0;flex:0 0 auto}select{min-height:40px;border:1px solid var(--border-color);border-radius:9px;padding:.48rem 2rem .48rem .72rem;color:var(--text-primary);background-color:var(--navy-800);cursor:pointer}select:focus-visible,button:focus-visible,.game-card:focus-visible,.team-game-card:focus-visible{outline:2px solid var(--blue-bright);outline-offset:2px}.scoreboard-toolbar{margin-bottom:1.15rem;padding:.9rem 1rem .8rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background:#102036ad}.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.7rem;align-items:end}.filter-field{display:grid;gap:.3rem}.filter-field span{color:var(--text-muted);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.filter-field select{width:100%}.clear-filters{min-height:40px;display:none;padding:.48rem .9rem;border:1px solid rgba(240,82,82,.35);border-radius:9px;color:#ffb6b6;background:#f052521a;font-size:.8rem;font-weight:750}.clear-filters.visible{display:block}.scoreboard-summary{margin-top:.75rem;padding-top:.65rem;display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.77rem}#games-summary{color:var(--text-primary);font-weight:750}.interaction-hint{color:var(--text-muted)}.games-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;align-items:start}.game-day-heading{grid-column:1 / -1;margin-top:.45rem;padding:.4rem .15rem .1rem;color:var(--blue-bright);font-size:.74rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.game-card{min-width:0;overflow:hidden;border:1px solid var(--border-color);border-radius:var(--border-radius);background:linear-gradient(145deg,#152942f5,#0b1728f5);box-shadow:0 8px 24px #00000029;transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition)}.game-card:hover{transform:translateY(-2px);border-color:#55a4ff52;box-shadow:var(--shadow-hover)}.game-header{min-height:40px;padding:.55rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-bottom:1px solid var(--border-color);background:#ffffff06}.game-header .game-time{margin:0;color:var(--text-secondary);font-size:.76rem;font-weight:700}.game-status{width:fit-content;padding:.22rem .52rem;border-radius:999px;font-size:.65rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.game-status.scheduled,.game-detail-status.scheduled{color:#a8d1ff;background:#2d7ff926}.game-status.live,.game-detail-status.live{color:#ffb4b4;background:#f0525229}.game-status.completed,.game-detail-status.completed{color:#b9f7d7;background:#39d98a21}.teams-container{padding:.48rem .75rem}.team-matchup{display:grid;gap:.12rem}.team{min-width:0;min-height:50px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.32rem 0}.team-logo{width:34px;height:34px;object-fit:contain}.team-info{min-width:0}.team-name{width:fit-content;max-width:100%;padding:.15rem .2rem;display:inline-flex;align-items:baseline;gap:.5rem;border:0;border-radius:6px;color:inherit;background:transparent;cursor:pointer;text-align:left;touch-action:manipulation;user-select:none;-webkit-user-select:none}.team-name:hover{background:#2d7ff91f}.team-abbreviation{min-width:2.2rem;color:var(--text-primary);font-size:.88rem;font-weight:850}.team-city{overflow:hidden;color:var(--text-secondary);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.team-score{min-width:2rem;color:var(--text-secondary);font-size:1.45rem;font-variant-numeric:tabular-nums;font-weight:800;text-align:right}.team-score.winner{color:#fff}.game-details{min-height:38px;padding:.5rem .75rem .65rem;border-top:1px solid var(--border-color);color:var(--text-muted);background:#00000017}.venue-info{overflow:hidden;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.betting-odds{margin-top:.5rem;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid var(--border-color);border-radius:8px}.odds-item{padding:.4rem;text-align:center}.odds-item+.odds-item{border-left:1px solid var(--border-color)}.odds-label{color:var(--text-muted);font-size:.58rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.odds-value{color:var(--text-primary);font-size:.72rem;font-weight:700}.broadcast-info{margin-top:.45rem;font-size:.68rem}.broadcast-networks{color:var(--blue-bright);font-weight:750}.live-game-info{margin-top:.5rem;padding:.55rem;border-radius:8px;color:#d7ffea;background:#39d98a1f;font-size:.72rem}.game-clock,.possession-info{display:flex;align-items:center;gap:.35rem}.game-clock{font-weight:800}.down-distance{margin-top:.2rem;color:var(--text-secondary)}.click-hint,.vs-separator{display:none}.no-games-message,.no-data-message{padding:3rem 1.5rem;border:1px dashed rgba(255,255,255,.14);border-radius:var(--border-radius);color:var(--text-secondary);text-align:center}.game-detail-container,.team-schedule-container{max-width:1180px;margin:0 auto}.game-detail-nav,.team-schedule-nav{margin-bottom:.8rem}.back-button{margin-top:0;color:var(--text-primary);background:#ffffff12}.game-detail-header,.game-section,.team-schedule-header,.team-schedule-games{border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--card-background);box-shadow:var(--shadow)}.game-detail-header{padding:1.25rem;margin-bottom:.9rem}.game-detail-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}.team-detail{min-width:0;display:flex;align-items:center;gap:.75rem}.team-detail:last-child{justify-content:flex-end;text-align:right}.team-detail.winner{padding:.65rem;border-radius:12px;background:#39d98a14}.team-detail-logo{width:clamp(48px,7vw,72px);height:clamp(48px,7vw,72px);object-fit:contain}.team-detail-info{min-width:0}.team-detail-name{color:var(--text-primary);font-size:clamp(.9rem,2vw,1.25rem);font-weight:800}.team-detail-record{color:var(--text-secondary);font-size:.78rem}.team-detail-score{min-width:2.4rem;font-size:clamp(2rem,5vw,3.2rem);font-variant-numeric:tabular-nums;font-weight:850;text-align:center}.team-detail.winner .team-detail-score{color:var(--green)}.vs-detail{text-align:center}.game-detail-status{padding:.3rem .65rem;border-radius:999px;font-size:.68rem;font-weight:850;text-transform:uppercase}.game-detail-time{margin-top:.4rem;color:var(--text-secondary);font-size:.76rem}.game-detail-meta{margin-top:1rem;padding-top:.8rem;display:flex;justify-content:center;gap:.5rem 1rem;flex-wrap:wrap;border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.78rem}.game-detail-meta .game-date{color:var(--text-primary);font-weight:700}.venue-detail{color:var(--text-muted)}.game-detail-content{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:.9rem;align-items:start}.game-section{min-width:0;padding:1rem}.game-section:first-child{grid-column:1 / -1}.section-title{margin-bottom:.75rem;color:var(--text-primary);font-size:.82rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.box-score-container{overflow-x:auto}.box-score-table{width:100%;border-collapse:collapse;font-size:.82rem}.box-score-table th,.box-score-table td{padding:.65rem;border-bottom:1px solid var(--border-color);text-align:center}.box-score-table th{color:var(--text-muted);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase}.team-cell{min-width:105px;display:flex;align-items:center;gap:.55rem;color:var(--text-primary);font-weight:800;text-align:left}.box-score-logo{width:26px;height:26px;object-fit:contain}.period-cell{color:var(--text-secondary);font-variant-numeric:tabular-nums}.total-cell{color:var(--text-primary);font-size:1rem;font-weight:850}.total-cell.winner,.team-cell.winner{color:var(--green)}.leaders-grid{display:grid;gap:.65rem}.leader-section,.info-section{padding:.75rem;border:1px solid var(--border-color);border-radius:10px;background:#ffffff06}.leader-category,.info-section h4{margin-bottom:.55rem;color:var(--blue-bright);font-size:.72rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.leader-card{display:flex;align-items:center;gap:.65rem}.leader-card+.leader-card{margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--border-color)}.leader-photo{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#ffffff14}.leader-info{min-width:0}.leader-name{font-size:.82rem;font-weight:800}.leader-position,.leader-team{display:inline;color:var(--text-muted);font-size:.68rem}.leader-team:before{content:" · "}.leader-stats{margin-top:.15rem;color:var(--text-secondary);font-size:.74rem}.game-info-grid{display:grid;gap:.65rem}.info-content{color:var(--text-secondary);font-size:.76rem}.info-content div+div{margin-top:.25rem}.team-schedule-container{overflow:hidden;border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--card-background);box-shadow:var(--shadow)}.team-schedule-nav{padding:.8rem .8rem 0}.team-schedule-header{margin:0 .8rem;padding:1rem 1.2rem;box-shadow:none}.team-schedule-title{display:flex;align-items:center;gap:1rem}.team-schedule-logo{width:64px;height:64px;object-fit:contain}.team-schedule-name{font-size:clamp(1.35rem,3vw,2rem);line-height:1.05}.team-schedule-record{margin-top:.25rem;font-size:1rem;font-weight:750}.schedule-stats{margin-top:.85rem;display:flex;gap:.55rem}.stat-item{min-width:76px;padding:.42rem .7rem;display:grid;border-radius:8px;background:#00000029}.stat-label{font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stat-value{font-size:.9rem;font-weight:850}.team-schedule-games{margin:.8rem;padding:.8rem;box-shadow:none}.team-schedule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.team-game-card{position:relative;min-width:0;padding:.75rem;border:1px solid var(--border-color);border-radius:10px;background:#ffffff06;cursor:pointer;transition:transform var(--transition),border-color var(--transition)}.team-game-card:hover{transform:translateY(-1px);border-color:#55a4ff66}.team-game-card.result-w{border-left:3px solid var(--green)}.team-game-card.result-l{border-left:3px solid var(--red)}.team-game-card.result-t{border-left:3px solid var(--amber)}.game-week{color:var(--blue-bright);font-size:.62rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.game-matchup{margin-top:.5rem;display:grid;grid-template-columns:auto 34px minmax(0,1fr);align-items:center;gap:.5rem}.matchup-indicator{color:var(--text-muted);font-size:.7rem;font-weight:800}.opponent-logo{width:34px;height:34px;object-fit:contain}.opponent-info{min-width:0}.opponent-name{overflow:hidden;font-size:.78rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.game-matchup .game-date{color:var(--text-muted);font-size:.68rem}.game-result{margin-top:.6rem;display:flex;align-items:center;justify-content:space-between;color:var(--text-secondary)}.final-score{display:flex;gap:.35rem}.score{min-width:30px;padding:.2rem .35rem;border-radius:6px;background:#ffffff0f;font-size:.9rem;font-weight:800;text-align:center}.score.winner{color:var(--navy-950);background:var(--green)}.result-badge{padding:.2rem .48rem;border-radius:999px;font-size:.65rem;font-weight:850}.result-badge.result-w{color:var(--green);background:#39d98a1f}.result-badge.result-l{color:#ffb4b4;background:#f052521f}.result-badge.result-t{color:#ffe2a5;background:#f6c4531f}.team-game-card .game-time{color:var(--text-primary);font-size:.78rem;font-weight:800}.team-game-card .game-status{padding:0;color:var(--text-muted);background:none}.footer{padding:1.4rem;border-top:1px solid var(--border-color);color:var(--text-muted);font-size:.72rem;text-align:center}@media (max-width: 1020px){.games-grid,.team-schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.header-content{min-height:74px;padding:.85rem 1rem}.main-container{padding:.8rem .75rem 1.75rem}.week-navigation{margin-inline:-.1rem}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.clear-filters{width:100%}.scoreboard-summary{align-items:flex-start;flex-direction:column;gap:.18rem}.game-detail-content{grid-template-columns:1fr}.game-section:first-child{grid-column:auto}.game-detail-teams{grid-template-columns:1fr}.vs-detail{order:-1}.team-detail:last-child{flex-direction:row-reverse;justify-content:flex-start;text-align:left}}@media (max-width: 620px){.nav-container{grid-template-columns:44px minmax(0,1fr) 44px}.nav-button{min-width:44px;padding-inline:.5rem}.nav-button-label{display:none}.games-grid,.team-schedule-grid{grid-template-columns:1fr}.team-schedule-title{align-items:flex-start}}@media (max-width: 440px){.connection-status{max-width:46%}.live-indicator,.offline-indicator{font-size:.67rem}.filter-grid{grid-template-columns:1fr}.team-city{display:none}.team-name{align-items:center}.team-abbreviation{font-size:.95rem}.game-detail-header{padding:.85rem}.team-detail{gap:.5rem}.team-detail-logo{width:44px;height:44px}.team-schedule-header,.team-schedule-games{margin-inline:.55rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
