:root{--page-bg: #f1ecec;--card-bg: #ffffff;--card-shadow: 0 4px .75rem rgba(0, 0, 0, .04);--card-shadow-mb: 0 5px 10px rgba(0, 0, 0, .04);--text-main: #111;--text-muted: #555;--text-subtle: #777;--accent: #37003c;--accent-soft: #ede6f0;--accent-minute: #b07a00;--accent-red: #d8234a;--accent-yellow: #f5c500;--border-subtle: rgba(0, 0, 0, .08);--score-separator: #111;--border-radius: .4rem}@media(prefers-color-scheme:dark){:root{--page-bg: #05060a;--card-bg: #151621;--card-shadow: 0 20px 45px rgba(0, 0, 0, .75);--text-main: #f5f5f7;--text-muted: #d5d6de;--text-subtle: #a0a2b2;--accent-minute: hsl(44, 88%, 62%, .75);--accent-red: #ff4b6a;--accent-soft: #37003c;--accent: #ede6f0;--border-subtle: rgba(255, 255, 255, .12);--score-separator: #f5f5f7;--league-color: hsl(42, 56%, 72%, .85)}.team-badge,.goal-ball{filter:brightness(1.05) contrast(1.05)}.team-badge.tottenham,.tottenham{filter:invert()}}html{box-sizing:border-box;overflow-y:scroll}*,*:before,*:after{box-sizing:inherit}body.dark-mode{--page-bg: #05060a;--card-bg: #151621;--card-shadow: 0 20px 45px rgba(0, 0, 0, .75);--text-main: #f5f5f7;--text-muted: #d5d6de;--text-subtle: #a0a2b2;--accent-minute: #f3c548;--accent-red: #ff4b6a;--border-subtle: rgba(255, 255, 255, .12);--score-separator: #f5f5f7}:root{font-family:inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.me-1{margin-right:1rem!important}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.mono{font-family:monospace;letter-spacing:3px;font-size:1rem}body{margin:0;background:var(--page-bg);color:var(--text-main)}header{text-align:center;padding:0 1rem 1rem}h1{margin-bottom:.25rem}footer{text-align:center;padding:1rem 1rem .5rem;font-size:.9rem}.text-link,.text-link:visited{color:var(--accent);text-decoration:underline;text-decoration-thickness:.06rem;text-decoration-color:var(--accent);text-underline-offset:3px}.league-title{display:flex;align-items:center;justify-content:center;gap:1rem}.league-logo,.goal-ball,.sub-arrow{fill:var(--accent);transition:fill .5s ease-in-out}.var-goal-cancelled-icon,.missed-pen-ball{fill:var(--accent-minute)}.league-logo svg{display:block}.site-tagline{text-transform:capitalize;font-variant-numeric:tabular-nums}#app{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:.5rem 1rem 1rem}.matchday-header{display:flex;justify-content:center;gap:.5rem}.matchday-container{text-align:end}.show-all-container{text-align:start}.match-list{display:grid;gap:1rem}.ht-cont,.at-cont{flex-direction:column;align-items:center;justify-content:center;gap:0rem;margin:0}@media(min-width:960px){.match-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:flex-start}}.match-card{max-width:640px;padding:.75rem;border-radius:var(--border-radius);background:var(--card-bg);box-shadow:var(--card-shadow);height:100%}.match-date{text-align:center;font-weight:400;margin-bottom:.25rem;text-transform:capitalize;font-variant-numeric:tabular-nums;color:var(--league-color, var(--text-muted))}.match-header{display:grid;grid-template-columns:1fr auto 1fr;font-weight:600}.ht-cont,.at-cont{display:flex;align-items:center;gap:1.5rem;min-width:0}.ht-cont{justify-content:flex-end;margin-right:0}.at-cont{justify-content:flex-start;margin-left:0}.at-cont .badge{margin-left:1rem}.team-badge.sunderland{width:73px;height:73px;position:relative;right:.25rem;bottom:1px}.team-badge{height:100%;max-height:61px;width:auto;aspect-ratio:1 / 1;object-fit:contain}.team.away{justify-self:self-start}.team.home,.team.away{text-transform:capitalize;font-size:1.5em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.5rem}.team-link,.tbl-link,.season-link{color:inherit;text-decoration:none}.team-link{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;min-width:0;text-align:center}.score{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"home_score  vertical_line  away_score";font-weight:500;align-items:center;font-size:3.3rem;line-height:1.1;padding:0 4px;font-variant-numeric:tabular-nums}.separator{border-left:.125rem solid var(--score-separator);display:inline-block;margin:.25rem 1rem 0;grid-area:vertical_line;height:2.2rem}.match-status,.half-time{display:flex;justify-content:center;align-items:baseline;font-weight:600;color:var(--text-subtle);font-size:.95rem}.full-time{margin-right:.35rem}.half-time{font-weight:400;letter-spacing:.03em;font-variant-numeric:tabular-nums}.pm-grid{display:grid;grid-template-columns:auto 1fr auto 2.75rem;grid-template-rows:auto auto;gap:.5rem .5rem;align-items:center}.pm-grid .pm-row__name{grid-column:1}.pm-grid .pm-bar{grid-column:2}.pm-grid .pm-row__val{grid-column:3}.pm-power{grid-column:4;grid-row:1 / span 2;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding-left:.25rem}.pm-power__num{font-size:1.85rem;font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.pm-power__label{font-size:.85rem;opacity:.75;line-height:1.1}.power-meter{margin:1.1rem auto 1rem;width:min(720px,100%);display:grid;grid-template-columns:1fr 1fr;gap:1rem;font-size:smaller}.power-meter[hidden]{display:none!important}.pm-team{padding:.85rem .9rem;border:1px solid var(--border-subtle);border-radius:.4rem;background:var(--card-bg);color:var(--accent)}.pm-team__label{font-weight:700;margin-bottom:.6rem;text-align:center;display:none}.pm-grid .pm-row{display:contents}.pm-row__name{font-weight:600;opacity:.8}.pm-row__val{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.pm-bar{position:relative;height:12px;background:var(--border-subtle);overflow:hidden}.pm-bar__fill{height:100%;background:currentColor;opacity:.65}.pm-exbar{display:grid;grid-template-columns:1fr 5px 1fr;align-items:center;gap:0;height:14px}.pm-exbar__half{position:relative;height:12px;background:#00000014;overflow:hidden}.pm-exbar__fill{position:absolute;top:0;bottom:0}.pm-exbar__fill--neg{right:0;background:#c0392b}.pm-exbar__fill--pos{left:0;background:#2e8b57}.pm-exbar__mid{font-size:.72rem;line-height:1;text-align:center;opacity:.75;font-weight:700}.pm-stats{padding:.85rem .9rem;border:1px solid var(--border-subtle);border-radius:.4rem;background:var(--card-bg);color:var(--accent);display:grid;grid-template-columns:1fr 1fr 1fr;gap:.35rem .9rem}.pm-stat{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;font-size:smaller}.pm-stat .k{opacity:.75;font-weight:600}.pm-stat .v{font-variant-numeric:tabular-nums;font-weight:700}.match-body{padding-top:.65rem;border:1px solid var(--border-subtle);border-radius:.4rem}.match-body .row{display:grid;grid-template-columns:1fr auto 1fr;min-height:1.5rem;align-items:baseline}.event.home{text-align:right}.event.away{text-align:left}.minute{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0 .8rem;font-weight:500;color:var(--accent-minute);width:3rem;text-align:center;transform:translateY(-0px)}.player{font-style:normal;font-weight:400}.player-goal,.player-red{font-weight:700}.sub,.sub-arrow,.event-meta,.player-yellow,.subbed{opacity:.85}.evt-svg{display:inline-block;line-height:0;vertical-align:middle;transform:translateY(-1.5px)}.evt-svg svg{display:block}.sub-arrow{margin:0 .25rem}.goal-ball,.og-goal-ball,.missed-pen-ball,.var-goal-cancelled-icon{margin-left:.15rem}.og-goal-ball{fill:var(--accent-red)}.missed-pen-label,.goal-detail,.var{opacity:.85;margin-left:.15rem}.foul{font-style:italic;opacity:.85}.var-event{color:var(--card-bg);background-color:var(--accent);padding:0 4.5px 0 3px;font-style:italic;opacity:1!important;font-weight:600}.var-goal-confirmed{margin-left:0}.var,.foul{font-size:14px}.card{display:inline-block;width:10px;height:14px;margin:0 .18rem 0 .12rem;border-radius:2px;vertical-align:middle;position:relative;top:-1px}.card.red{background:var(--accent-red)}.card.yellow{background:var(--accent-yellow)}.card.yellow.second-yellow{margin-right:-10px}.match-footer{margin-top:1rem;display:flex;justify-content:center;align-items:baseline;font-size:.9rem;font-weight:300}.footer-label,.footer-data{margin-right:.25rem}.footer-data{font-weight:600;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.timeline-toggle,.matchday-select,.show-all-timelines,.show-stats{margin-left:.25rem;cursor:pointer;background:var(--card-bg);border:1px solid var(--accent);color:var(--accent);padding:4px 7px;border-radius:6px;font-size:.85rem}.show-all-timelines{margin-left:0;padding:4.5px 7px}.timeline-toggle:hover,select:hover,.show-all-timelines:hover{background:var(--accent);color:var(--accent-soft)}span.player,span.var-player{white-space:nowrap}span.assist,span.sub{white-space:normal}.assist{margin-left:.15rem}.event-meta{display:inline;white-space:nowrap}.matchday-control{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.9rem}.nav-container,.nav-container a{color:var(--text-main)}.season-hub p{padding:0 .5rem}.season-hub h2{text-align:center;margin-top:0}.season-links{display:flex;flex-wrap:wrap;justify-content:center;margin-bottom:1rem}.matchweek-grid{display:grid;gap:1.5rem;padding:2rem .25rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.mw-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem .5rem;background:var(--card-bg);border:1px solid #e0e0e0;border-radius:.75rem;text-decoration:none;color:var(--text-main);transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #00000005}.mw-number{font-size:2.5rem;font-weight:800;line-height:1;margin-bottom:.25rem}.mw-label{font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:1rem}.mw-divider{width:40px;height:2px;background-color:#eee;margin-bottom:1rem}.mw-date{font-size:.9rem;color:#666}.mw-card:hover{background-color:#4a1a5c;border-color:#4a1a5c;transform:translateY(-4px);box-shadow:0 10px 20px #4a1a5c26;--accent: #ede6f0}.mw-card:hover .var-event{background-color:#ede6f0;color:#4a1a5c}.mw-card:hover .mw-number,.mw-card:hover .mw-label,.mw-card:hover .mw-date,.mw-card:hover .mw-status,.mw-card:hover .mw-stats{color:#fff}.mw-card:hover .mw-divider{background-color:#ffffff4d}.mw-nav{display:flex;flex-direction:column;gap:.5rem;align-items:center}.mw-nav__pager{display:flex;justify-content:space-between;gap:1rem}.mw-nav a{text-decoration:none}.mw-nav a:hover,.tbl-link:hover{text-decoration:underline}.nav-arrow{vertical-align:middle}.mw-status{font-size:.95rem;margin-top:.3rem;font-weight:500}.mw-status--completed{opacity:.85}.mw-status--in-progress{font-weight:600}.mw-status--not-started{opacity:.6}.mw-stats{display:flex;gap:.4rem;margin-top:1.25rem;font-size:.875rem;flex-wrap:wrap}.mw-stats span{white-space:nowrap}.mw-stat{display:inline-flex;align-items:center;gap:.25rem}.mw-stat__num{font-variant-numeric:tabular-nums}.is-disabled{opacity:.5}td{white-space:nowrap}.table-team{font-size:larger}thead tr{background:var(--accent-soft);border:solid 1px var(--accent)}.team-page,.league-table-page{max-width:980px;margin:0 auto}.league-table,.team-matches{width:100%;border-collapse:collapse;background-color:var(--card-bg);border-radius:.75rem}.league-table caption{text-align:left;padding:8px 0;font-weight:600}.league-table th,.league-table td,.team-matches th,.team-matches td{padding:10px;border-bottom:1px solid rgba(0,0,0,.1);vertical-align:middle}.league-table thead th,.team-matches thead th{font-size:.85rem;letter-spacing:.02em;text-transform:uppercase;color:var(--text-main)}.league-table tbody tr:hover,.team-matches tbody tr:hover{background:#00000008}.tbl-team{display:flex;align-items:center;gap:10px}.tbl-team img{border-radius:4px}.team-header{display:flex;align-items:center;gap:14px;margin-bottom:10px;justify-content:center}.team-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:.75rem;border:1px solid rgba(0,0,0,.1);border-radius:.75rem;margin:.75rem 0;background:#00000005}.team-strip>div{display:grid;gap:4px}.team-strip .muted{font-size:.8rem;color:var(--text-muted)}.team-venue{display:flex;gap:14px;align-items:center;padding:.75rem;border:1px solid rgba(0,0,0,.1);border-radius:.75rem;margin:10px 0 14px;background:#00000005;text-transform:capitalize}.team-venue__img{width:420px;height:264px;object-fit:cover;border-radius:10px;border:1px solid rgba(0,0,0,.1)}.team-venue__name{font-size:1.4rem;margin-bottom:.3rem}.page-nav{display:flex;gap:1rem;margin-top:1rem;justify-content:center;color:var(--text-muted)}.page-nav a{color:inherit;text-decoration:none}.page-nav a:hover{text-decoration:underline}.team-header,.team-venue,.team-strip,.team-matches,.league-table{background:var(--card-bg);border-radius:.4rem;padding:.75rem}table{font-variant-numeric:tabular-nums}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll table{border-collapse:collapse}@media(max-width:720px){#app{padding:2rem .75rem}.match-card{padding:1.5rem 1.25rem;border-radius:1rem}.team.home,.team.away{font-size:1.4rem}.minute{margin:0 .6rem}.table-scroll{border-radius:10px}.table-scroll:before{content:"Swipe for more →";display:block;padding:8px 10px;font-size:.8rem;color:var(--text-muted);border-bottom:1px solid rgba(0,0,0,.1)}}@media(max-width:480px){#app{min-height:100vh;display:block}.match-date{margin-top:.5rem;margin-bottom:1rem}.matchweek-grid{padding:2rem}.match-card{padding:.25rem .15rem;box-shadow:var(--card-shadow-mb)}.match-body .row{min-height:1.7rem;line-height:1.4;vertical-align:middle}.at-cont{margin-right:1rem}.ht-cont{margin-left:1rem}.team-badge-cont{width:61px;height:61px}.team-badge.sunderland{width:67px;height:67px;position:relative;bottom:.35rem}.team-badge{height:100%;max-height:51px;width:auto;aspect-ratio:1 / 1;object-fit:contain}.team-badge.sunderland{max-height:61px}.team.home,.team.away{font-size:1.15rem}.score{font-size:2.8rem}.match-status{margin:0 .25rem}.separator{margin-left:8px;margin-right:8px}.match-header{margin-bottom:0}.match-status,.half-time{margin-top:0}.match-footer{margin:.5rem 0}.footer-data{max-width:10.75rem}.event .player,.event .var-player{display:inline}.event .assist,.event .sub,.event .missed-pen-label,.event .var-label,.event .goal-detail,.var{display:block;white-space:normal;margin-left:0}.event .event-meta{display:inline-block}.event .event-meta .assist,.event .event-meta .sub,.event .event-meta .missed-pen-label,.event .event-meta .var-label{white-space:nowrap}.event .event-meta .evt-svg{margin-left:.25rem;vertical-align:baseline}.matchday-control{justify-content:center}.matchday-control select{font-size:.9rem;padding:.2rem .5rem;max-width:6rem}.mw-label,.mw-divider{margin-bottom:.4rem}.mw-date,.mw-status{font-size:1rem}.mw-status{font-size:.95rem;margin-top:.3rem;font-weight:500}.mw-stats{transform:scale(1.2);margin-top:1.25rem}.team-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.team-venue{flex-direction:column;align-items:flex-start}.team-venue__img{width:100%;height:auto}.league-table th,.league-table td,.team-matches th,.team-matches td{padding:.333rem}.power-meter{grid-template-columns:1fr;gap:.75rem}.pm-team__label{text-align:left;display:block}}
