*{box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color:#fff;background-color:#0a0a14;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh}button{font-family:inherit}.app{max-width:600px;margin:0 auto;padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top));padding-bottom:calc(1rem + env(safe-area-inset-bottom));padding-left:calc(1rem + env(safe-area-inset-left));padding-right:calc(1rem + env(safe-area-inset-right))}header{margin-bottom:1rem}header h1{font-size:1.5rem;font-weight:700;color:#fff;margin:0}.view-tabs{display:flex;background:#1a1a2e;border-radius:10px;padding:4px;margin-bottom:1rem}.view-tab{flex:1;padding:.6rem 1rem;border:none;border-radius:8px;background:transparent;color:#888;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.view-tab.active{background:#4a4ae8;color:#fff}.view-tab:not(.active):hover{color:#fff}.sport-selector{display:flex;gap:.5rem;padding:1rem;overflow-x:auto;background:#1a1a2e;border-radius:8px;margin-bottom:1rem}.sport-btn{padding:.5rem 1rem;border:none;border-radius:6px;background:transparent;color:#888;font-size:.9rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.sport-btn:hover{background:#2a2a4e;color:#fff}.sport-btn.active{background:#4a4ae8;color:#fff}.game-card{background:#1a1a2e;border-radius:12px;padding:1rem;transition:transform .2s,box-shadow .2s}.game-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.game-card.live{border:2px solid #4ae84a}.game-status{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.8rem}.live-indicator{background:#4ae84a;color:#000;padding:.15rem .4rem;border-radius:4px;font-weight:700;font-size:.7rem;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.status-detail{color:#888}.broadcast{margin-left:auto;color:#666;font-size:.75rem}.teams{display:flex;flex-direction:column;gap:.5rem}.team{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:8px;background:#0f0f1a}.favorite-btn{background:none;border:none;color:#444;font-size:1.1rem;cursor:pointer;padding:.25rem;line-height:1;transition:color .2s,transform .2s}.favorite-btn:hover{color:gold;transform:scale(1.2)}.favorite-btn.is-favorite{color:gold}.team.winner{background:#1a2e1a}.team-logo{width:32px;height:32px;object-fit:contain}.team-name{flex:1;font-weight:500;color:#fff}.team-score{font-size:1.5rem;font-weight:700;color:#fff;min-width:2rem;text-align:right}.team.winner .team-score{color:#4ae84a}.game-card.expanded .teams{flex-direction:row;justify-content:space-between;gap:1rem}.game-card.expanded .team{flex:1;justify-content:center;background:transparent;padding:.25rem}.game-card.expanded .team:first-child{flex-direction:row}.game-card.expanded .team:last-child{flex-direction:row-reverse}.game-card.expanded .team-name{flex:none}@media(max-width:480px){.game-card.expanded .team-name{display:none}}.game-card.expanded .team-score{font-size:2rem}.game-card.expanded .favorite-btn{display:none}.game-detail-expanded{background:#0f0f1a;border-radius:0 0 12px 12px;margin-top:-8px;padding:1rem 1rem 1.25rem;animation:expandDown .4s ease-out;overflow:hidden}@keyframes expandDown{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0}to{opacity:1;max-height:600px;padding-top:1rem;padding-bottom:1.25rem}}@keyframes flattenCorners{0%{border-radius:12px}to{border-radius:12px 12px 0 0}}.detail-loading{text-align:center;color:#666;padding:2rem}.detail-teams-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0 1rem;margin-bottom:.5rem;border-bottom:1px solid #2a2a3e}.detail-team{display:flex;align-items:center;gap:.5rem}.detail-team.away,.detail-team.home{flex-direction:row}.detail-team-logo{width:32px;height:32px;object-fit:contain}.detail-team-name{font-weight:600;color:#aaa;font-size:.9rem}.detail-team-score{font-size:1.5rem;font-weight:700;color:#fff}.detail-section{margin-bottom:1.5rem}.section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:#666;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid #2a2a3e}.events-list{display:flex;flex-direction:column;gap:.5rem}.event-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#1a1a2e;border-radius:8px;max-width:75%}.event-row.away{align-self:flex-start;border-left:3px solid #4a4ae8}.event-row.home{align-self:flex-end;flex-direction:row-reverse;border-right:3px solid #4ae84a}.event-row.home .event-minute{color:#4ae84a}.event-minute{font-size:.8rem;color:#4a4ae8;font-weight:600;min-width:35px}.event-icon{font-size:1rem}.card-icon{width:14px;height:18px;border-radius:2px;flex-shrink:0}.card-icon.yellow{background:gold}.card-icon.red{background:#e84a4a}.event-player{flex:1;color:#fff;font-size:.9rem}.event-note{color:#888;font-size:.8rem}.stats-grid{display:flex;flex-direction:column;gap:.5rem}.stats-header{display:flex;align-items:center;padding:.5rem 0;margin-bottom:.25rem}.stats-team-name{width:60px;font-weight:600;color:#888;font-size:.8rem;text-transform:uppercase}.stats-team-name:first-child{text-align:right}.stats-team-name:last-child{text-align:left}.stats-spacer{flex:1}.stat-row{display:flex;align-items:center;padding:.5rem 0}.stat-value{width:60px;font-weight:600;color:#fff}.stat-value.away{text-align:right}.stat-value.home{text-align:left}.stat-label{flex:1;text-align:center;color:#888;font-size:.85rem}.detail-footer{text-align:center;margin-top:1rem;padding-top:1rem;border-top:1px solid #2a2a3e}.detail-venue{color:#777;font-size:.85rem;margin-bottom:.25rem}.detail-attendance{color:#555;font-size:.8rem}.detail-note{text-align:center;color:#666;font-style:italic;padding:2rem 1rem}.scoring-plays{display:flex;flex-direction:column;gap:.75rem}.scoring-play{background:#1a1a2e;border-radius:8px;padding:.75rem;max-width:85%}.scoring-play.away{align-self:flex-start;border-left:3px solid #4a4ae8}.scoring-play.home{align-self:flex-end;border-right:3px solid #4ae84a}.scoring-play-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.scoring-play-logo{width:20px;height:20px;object-fit:contain}.scoring-play-type{font-weight:600;color:#4ae84a;font-size:.85rem}.scoring-play.away .scoring-play-type{color:#4a4ae8}.scoring-play-time{color:#888;font-size:.8rem}.scoring-play-score{margin-left:auto;font-weight:600;color:#fff;font-size:.9rem}.scoring-play-desc{color:#aaa;font-size:.8rem;line-height:1.4}.detail-tabs{display:flex;gap:.25rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #2a2a3e}.detail-tab{flex:1;background:#1a1a2e;border:none;color:#888;padding:.5rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;text-align:center}.detail-tab:hover{background:#252540;color:#aaa}.detail-tab.active{background:#4a4ae8;color:#fff}.formation-view{padding:.5rem 0}.formation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.formation-team{font-weight:600;color:#fff;font-size:1rem}.formation-shape{background:#1a1a2e;color:#4a4ae8;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.formation-pitch{background:linear-gradient(180deg,#1a3d1a,#164016);border-radius:12px;padding:1.5rem .5rem;display:flex;flex-direction:column-reverse;gap:1rem;min-height:280px}.formation-row{display:flex;justify-content:space-evenly;align-items:center}.formation-player{display:flex;flex-direction:column;align-items:center;gap:.25rem}.player-jersey{background:#fff;color:#000;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem}.player-name{color:#fff;font-size:.7rem;text-align:center;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.5)}.formation-subs{margin-top:1rem;padding-top:1rem;border-top:1px solid #2a2a3e}.subs-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:#666;margin:0 0 .75rem}.subs-list{display:flex;flex-wrap:wrap;gap:.5rem}.sub-player{display:flex;align-items:center;gap:.5rem;background:#1a1a2e;padding:.4rem .75rem;border-radius:6px;font-size:.8rem}.sub-jersey{color:#4a4ae8;font-weight:600;min-width:20px}.sub-name{color:#ccc}.sub-pos{color:#666;font-size:.7rem}.scoreboard{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.game-wrapper{display:contents}.game-wrapper:has(.game-detail-expanded){display:block;grid-column:1 / -1}.game-wrapper:has(.game-detail-expanded) .game-card{animation:flattenCorners .15s ease-out forwards}.scoreboard-loading,.scoreboard-error,.scoreboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#888}.spinner{width:40px;height:40px;border:3px solid #333;border-top-color:#4a4ae8;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.scoreboard-error{color:#e84a4a}.team-picker{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.picker-header{text-align:center;padding:1.5rem 1rem 1rem;padding-top:calc(1.5rem + env(safe-area-inset-top))}.picker-header h1{font-size:1.5rem;margin:0 0 .25rem}.picker-header p{color:#888;margin:0;font-size:.9rem}.league-tabs{display:flex;gap:.5rem;padding:.75rem 1rem;overflow-x:auto;background:#1a1a2e;position:sticky;top:env(safe-area-inset-top);z-index:10}.league-tab{padding:.5rem .75rem;border:none;border-radius:6px;background:transparent;color:#888;font-size:.85rem;cursor:pointer;white-space:nowrap}.league-tab.active{background:#4a4ae8;color:#fff}.teams-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;padding:1rem;overflow-y:auto}.team-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .5rem;background:#1a1a2e;border:2px solid transparent;border-radius:12px;cursor:pointer;position:relative;transition:all .2s}.team-btn:hover{background:#2a2a4e}.team-btn.selected{border-color:#4ae84a;background:#1a2e1a}.team-btn .team-logo{width:48px;height:48px;object-fit:contain}.team-btn .team-name{font-size:.8rem;color:#fff;text-align:center;line-height:1.2}.team-btn .check{position:absolute;top:.5rem;right:.5rem;color:#4ae84a;font-size:1rem}.loading{grid-column:1 / -1;text-align:center;padding:2rem;color:#888}.picker-footer{padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom));background:#0a0a14;position:sticky;bottom:0}.done-btn{width:100%;padding:1rem;border:none;border-radius:12px;background:#4a4ae8;color:#fff;font-size:1rem;font-weight:600;cursor:pointer}.done-btn:disabled{background:#333;color:#666;cursor:not-allowed}.update-link{display:block;width:100%;margin-top:.75rem;padding:.5rem;background:transparent;border:none;color:#666;font-size:.85rem;cursor:pointer;text-align:center}.update-link:hover{color:#888}.team-search{padding:.75rem 1rem 0}.team-search input{width:100%;padding:.65rem .85rem;border:1px solid #2a2a40;border-radius:10px;background:#1a1a2e;color:#fff;font-size:1rem;font-family:inherit}.team-search input:focus{outline:none;border-color:#4a4ae8}.team-picker:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top);background:#0a0a14;z-index:11}.my-teams-view{padding:0 1rem}.my-teams-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.my-teams-header h2{font-size:1.25rem;margin:0}.edit-btn{background:none;border:1px solid #444;color:#888;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;cursor:pointer}.edit-btn:hover{border-color:#666;color:#fff}.loading-state{display:flex;flex-direction:column;align-items:center;padding:3rem;color:#888}.spinner{width:32px;height:32px;border:3px solid #333;border-top-color:#4a4ae8;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.no-games{text-align:center;padding:2rem;color:#888}.no-games .hint{font-size:.85rem;color:#555}.games-list{display:flex;flex-direction:column;gap:.75rem}.games-list .game-wrapper.expanded .game-card{border-radius:12px 12px 0 0}.my-teams-actions{display:flex;gap:.5rem;align-items:center}.fetch-warning{background:#2a2016;border:1px solid #5a4020;color:#e8b060;border-radius:8px;padding:.6rem .8rem;margin-bottom:1rem;font-size:.85rem}.my-teams-header{position:relative}.alerts-btn.on{border-color:#4a4ae8;color:#fff}.alerts-message{position:absolute;top:calc(100% + .25rem);right:0;max-width:280px;background:#1a1a2e;border:1px solid #2a2a40;border-radius:8px;padding:.6rem .8rem;font-size:.85rem;color:#ccc;z-index:5}
