:root,:root[data-theme=light]{--primary:#2e7d32;--on-primary:#fff;--primary-container:#c8e6c9;--on-primary-container:#1b5e20;--secondary-container:#e8f5e9;--on-secondary-container:#1b5e20;--background:#f5f5f5;--surface:#fff;--on-surface:#000;--on-surface-variant:#555;--divider:#00000014;--chip-bg:#0000000d;--live:#c62828;--live-pill:#c62828}:root[data-theme=dark]{--primary:#4caf50;--on-primary:#000;--primary-container:#1b5e20;--on-primary-container:#c8e6c9;--secondary-container:#2a3b2a;--on-secondary-container:#c8e6c9;--background:#121212;--surface:#1e1e1e;--on-surface:#fff;--on-surface-variant:#aaa;--divider:#ffffff14;--chip-bg:#ffffff0f;--live:#ff5252;--live-pill:#c62828}*{box-sizing:border-box}body{background:var(--background);color:var(--on-surface);margin:0;font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px}button{font:inherit;color:inherit;cursor:pointer;text-align:inherit;background:0 0;border:none;padding:0}.app{background:var(--surface);flex-direction:column;max-width:720px;min-height:100vh;margin:0 auto;display:flex}.mobile-app-banner{z-index:40;background:var(--primary-container);color:var(--on-primary-container);border-bottom:1px solid var(--divider);align-items:center;gap:10px;padding:9px 12px;display:flex;position:sticky;top:0}.mobile-app-banner-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mobile-app-banner-copy strong{font-size:12px}.mobile-app-banner-copy span{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.mobile-app-banner-action{background:var(--primary);color:var(--on-primary);border-radius:6px;flex-shrink:0;padding:6px 9px;font-size:11px;font-weight:700;text-decoration:none}.mobile-app-banner-close{color:var(--on-primary-container);flex-shrink:0;padding:2px 5px;font-size:20px;line-height:1}.download-links{border-top:1px solid var(--divider);text-align:center;padding:24px 16px 18px}.download-links h2{margin:0;font-size:17px}.download-links p{color:var(--on-surface-variant);margin:6px 0 14px;font-size:13px}.download-link-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.download-link{background:#000;border-radius:8px;justify-content:center;align-items:center;width:190px;min-height:58px;padding:6px 10px;text-decoration:none;transition:opacity .15s;display:flex}.download-link:hover{opacity:.82}.download-link img{object-fit:contain;width:170px;max-height:50px;display:block}.app-header{background:var(--surface);border-bottom:1px solid var(--divider);z-index:20;align-items:center;gap:4px;padding:10px 12px;display:flex;position:sticky;top:0}.league-title{flex:1;align-items:center;gap:8px;min-width:0;font-size:18px;font-weight:600;display:flex}.league-title .caret{color:var(--on-surface-variant)}.team-title>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-button{border-radius:50%;padding:4px 10px;font-size:20px}.icon-button:hover{background:var(--chip-bg)}.header-menu{position:relative}.dropdown{background:var(--surface);border:1px solid var(--divider);z-index:30;border-radius:8px;min-width:190px;position:absolute;top:110%;right:0;overflow:hidden;box-shadow:0 4px 16px #0003}.dropdown-item{align-items:center;gap:6px;width:100%;padding:10px 14px;display:flex}.dropdown-item:hover{background:var(--chip-bg)}.dropdown-item .check{width:16px;color:var(--primary)}.tab-row,.filter-tabs{border-bottom:2px solid var(--divider);background:var(--surface);display:flex}.tab{text-align:center;color:var(--on-surface-variant);border-bottom:2px solid #0000;flex:1;margin-bottom:-2px;padding:12px 4px;font-weight:600}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.team-chips{scrollbar-width:thin;gap:8px;padding:12px;display:flex;overflow-x:auto}.chip{background:var(--chip-bg);border:1px solid var(--divider);white-space:nowrap;border-radius:20px;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.chip.selected{background:var(--primary);color:var(--on-primary);border-color:var(--primary);font-weight:700}.team-logo{object-fit:contain;flex-shrink:0}.team-crest{background:color-mix(in srgb, var(--on-surface) 10%, transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.team-crest .team-logo{width:92%;height:92%}.team-crest-empty{color:color-mix(in srgb, var(--on-surface) 55%, transparent);font-weight:700;line-height:1}.league-crest{box-sizing:border-box;background:#f5f5f5;border-radius:50%;padding:1px}.date-header{background:var(--primary-container);color:var(--on-primary-container);top:var(--header-h,56px);z-index:10;justify-content:space-between;align-items:center;padding:8px 16px;font-weight:700;display:flex;position:sticky}.match-row{border-bottom:1px solid var(--divider);cursor:pointer;flex-direction:column;padding:8px 12px;display:flex}.match-row.even{background:var(--chip-bg)}.match-main{align-items:center;gap:10px;display:flex}.match-state{flex-direction:column;flex:0 0 62px;align-items:center;gap:2px;width:62px;display:flex}.match-time{color:var(--on-surface-variant);white-space:nowrap;font-size:13px}.match-state-label{color:var(--on-surface-variant);text-align:center;font-size:11px;font-weight:700;line-height:1.2}.match-state-label.live{color:var(--live)}.match-teams{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.match-team-line{min-width:0;height:26px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.match-team-line .team-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.match-team-line .team-name.beaten,.match-score.beaten{opacity:.5}.match-scores{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.match-score{justify-content:flex-end;align-items:center;min-width:12px;height:26px;font-weight:700;display:flex}.match-score.live{color:var(--live)}.match-info{align-items:center;gap:7px;min-width:0;padding-top:4px;padding-left:72px;display:flex;overflow:hidden}.match-competition{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:700;overflow:hidden}.match-competition-group{align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.broadcaster{background:color-mix(in srgb, var(--primary) 15%, transparent);max-width:100%;color:var(--primary);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;align-items:center;padding:2px 6px;font-size:11px;font-weight:700;line-height:1.3;display:inline-flex;overflow:hidden}.empty-state{text-align:center;color:var(--on-surface-variant);padding:48px 16px}.spinner{border:3px solid var(--divider);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.standing-header,.standing-row{align-items:center;gap:2px;padding:12px 8px;display:flex}.standing-header{background:var(--primary-container);color:var(--on-primary-container);top:var(--header-h,56px);z-index:10;font-weight:700;position:sticky}.standing-row{border-bottom:1px solid var(--divider)}.standing-row.even{background:var(--chip-bg)}.standing-row.highlighted{background:color-mix(in srgb, var(--primary) 18%, transparent);border:1.5px solid var(--primary);border-radius:10px;margin:3px 4px}.standing-row.highlighted .col-team .team-name{color:var(--primary);font-weight:700}.col-band{border-radius:2px;flex-shrink:0;width:4px;height:24px}.col-rank{text-align:center;flex-shrink:0;width:26px;font-weight:700}.standing-header .col-team,.standing-row .col-team{flex:3;align-items:center;gap:6px;min-width:0;display:flex}.col-team .team-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.col-num{text-align:center;flex:.8}.col-points{font-weight:700}.col-form{flex:1.8;justify-content:center;align-items:center;gap:4px;display:flex}.form-dot{border-radius:50%;width:8px;height:8px}.form-w{background:#4caf50}.form-d{background:#9e9e9e}.form-l{background:#e53935}.scorers-season{color:var(--on-surface-variant,#666);text-align:right;padding:6px 8px;font-size:.8rem}.scorers-header,.scorer-row{align-items:center;gap:2px;padding:12px 8px;display:flex}.scorers-header{background:var(--primary-container);color:var(--on-primary-container);top:var(--header-h,56px);z-index:10;font-weight:700;position:sticky}.scorer-row{border-bottom:1px solid var(--divider)}.scorer-row.even{background:var(--chip-bg)}.scorers-header .col-rank,.scorer-row .col-rank{width:30px}.col-player{text-overflow:ellipsis;white-space:nowrap;flex:3;font-weight:500;overflow:hidden}.scorers-header .col-team,.scorer-row .col-team{flex:2.5;align-items:center;gap:6px;min-width:0;display:flex}.col-goals{color:var(--primary);flex:1.2;font-weight:700}.modal-overlay{z-index:50;background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet{background:var(--surface);border-radius:16px 16px 0 0;width:100%;max-width:720px;max-height:75vh;padding:8px 16px 24px;overflow-y:auto}.sheet-title{margin:16px 0;font-size:20px}.league-item{border-radius:24px;align-items:center;gap:12px;width:100%;margin:4px 0;padding:12px;display:flex}.league-item:hover{background:var(--chip-bg)}.league-item.selected{background:var(--secondary-container);color:var(--on-secondary-container);font-weight:600}.badge{background:var(--primary-container);color:var(--on-primary-container);border-radius:6px;padding:2px 6px;font-size:11px}.dialog{background:var(--surface);border-radius:16px;width:calc(100% - 48px);max-width:400px;margin:auto;padding:20px 24px}.dialog h2{margin-top:0}.dialog-teams{font-size:16px;font-weight:700}.dialog-league{color:var(--on-surface-variant);align-items:center;gap:6px;font-size:14px;display:flex}.accent{color:var(--primary)}.dialog-actions{justify-content:flex-end;margin-top:16px;display:flex}.text-button{color:var(--primary);border-radius:8px;padding:8px 12px;font-weight:600}.text-button:hover{background:var(--chip-bg)}.coming-soon{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 32px;display:flex}.coming-soon-emoji{font-size:64px}.coming-soon p{color:var(--on-surface-variant);max-width:420px}.coming-soon .coming-soon-note{color:var(--primary);font-weight:600}.league-page{flex-direction:column;flex:1;display:flex}.league-intro{color:var(--on-surface-variant);border-top:1px solid var(--divider);margin:24px 0 0;padding:16px;font-size:13px}.app-footer{text-align:center;border-top:1px solid var(--divider);padding:16px}.app-footer a{color:var(--on-surface-variant);font-size:13px}.privacy-page{padding:24px;line-height:1.6}.privacy-page a{color:var(--primary)}.adsbygoogle{min-height:0}.today-row{border-bottom:1px solid var(--divider)}.today-row.even{background:var(--chip-bg)}.today-row .match-row.even{background:0 0}.today-row .match-row{border-bottom:none;padding-bottom:6px}.match-row.plain{cursor:default}.today-competition{color:var(--on-surface-variant);align-items:center;gap:5px;padding:0 12px 8px 72px;font-size:11px;font-weight:600;display:flex}.today-competition img{flex:none}.today-date-header{top:var(--header-h,56px)}.today-updated{color:var(--on-surface-variant);text-align:center;margin:0;padding:12px 16px 0;font-size:11px}.today-button{background:var(--secondary-container);color:var(--on-secondary-container);white-space:nowrap;border-radius:14px;flex:none;margin-right:12px;padding:5px 11px;font-size:13px;font-weight:700}.today-button:hover{background:var(--chip-bg)}.league-title>span:not(.caret){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.today-button.selected{background:var(--primary);color:var(--on-primary)}.today-button.selected:hover{background:var(--primary)}.date-group{scroll-margin-top:var(--header-h,56px)}
