/* Three equal navigation targets, including four-digit match counts. */
.mode-tabs {
  gap:8px; padding:6px 10px;
  padding-bottom:calc(6px + max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom,0px),var(--tg-content-safe-area-inset-bottom,0px)));
}
.mode-tabs .mode-tab { position:relative; flex-direction:row; height:44px; gap:8px; padding:6px; border-radius:12px; }
/* Keep translated names available to screen readers, without visible labels. */
.app-shell .mode-tabs .mode-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.mode-tabs .mode-icon { flex:none; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.mode-tabs .mode-tab.is-active .mode-icon { color:#f39aeb; }
.mode-tabs .mode-tab .mode-count { min-width:24px; height:22px; padding:0 6px; font-size:12px; }
.mode-tab:focus-visible, .favorite-toggle:focus-visible { outline:2px solid var(--pink,#ff42ee); outline-offset:2px; }

.favorite-toggle {
  display:grid; place-items:center; flex:0 0 44px; width:44px; min-height:44px;
  padding:10px; border:0; border-radius:12px; background:transparent;
  color:#afa0c5; cursor:pointer; -webkit-tap-highlight-color:transparent;
}
.favorite-toggle svg, .favorites-empty > svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linejoin:round; }
.favorite-toggle.is-favorite { color:#f18ae9; }
.favorite-toggle.is-favorite svg { fill:rgba(241,138,233,.24); }
.favorite-toggle:active { background:rgba(241,138,233,.12); }
.league-match-content { position:relative; }
/* One grid aligns the two scores with their teams, including shootout scores. */
.has-favorite .league-match-row {
  grid-template-columns:26px minmax(0,1fr) max-content minmax(20px,max-content);
  grid-template-rows:repeat(2,minmax(26px,auto));
  gap:5px 7px; padding:7px 12px 7px 44px;
}
.has-favorite .league-match-row:not(.is-live):not(.is-finished) { grid-template-columns:26px minmax(0,1fr) max-content; }
.has-favorite .league-match-teams, .has-favorite .league-match-team { display:contents; }
.has-favorite .league-match-team:first-child > * { grid-row:1; }
.has-favorite .league-match-team:last-child > * { grid-row:2; }
.has-favorite .league-match-team > .league-team-logo,
.has-favorite .league-match-team > .league-team-logo-fallback { grid-column:1; }
.has-favorite .league-match-team > strong { grid-column:2; }
.has-favorite .league-match-team > .league-match-score { grid-column:4; justify-self:end; }
.has-favorite .league-match-datetime {
  grid-column:3; grid-row:1 / 3; justify-self:center; align-self:center;
  min-width:48px; max-width:64px; padding:0; gap:3px; text-align:center;
}
.app-shell .has-favorite .league-match-datetime > strong { font-size:10px; }
.app-shell .has-favorite .league-match-datetime .league-match-live-label { color:#ee80e6; font-size:10px; font-weight:700; }
.league-match-content > .favorite-toggle { position:absolute; left:0; top:0; bottom:0; z-index:1; }
.favorite-league { padding:9px 12px 0; font-size:11px; line-height:1.4; color:var(--muted,#b5a7c6); overflow-wrap:anywhere; }
.match-page-league > .favorite-toggle { margin-left:auto; }
.match-page-league > .collected-back { flex:1; min-width:0; }
.match-page-league > .collected-back > span:last-child { overflow-wrap:anywhere; }

html[data-active-mode="favorites"]:not([data-content-view="league"]) .calendar-toolbar,
html[data-active-mode="favorites"] .match-filter-section,
html[data-active-mode="favorites"] .filters-toggle { display:none !important; }
html[data-active-mode="favorites"] .app-shell { grid-template-rows:auto minmax(0,1fr) auto !important; }
html[data-active-mode="favorites"][data-content-view="league"] .app-shell { grid-template-rows:auto auto minmax(0,1fr) auto !important; }
.favorites-heading { padding:10px 4px 4px; color:#f4eaff; }
.favorites-heading h2 { margin:0 0 6px; font-size:20px; line-height:1.3; }
.favorites-heading p, .favorites-empty p, .favorites-notice { margin:0; color:var(--muted,#b5a7c6); font-size:12px; line-height:1.6; }
.favorites-notice { padding:10px; border:1px solid var(--line,#65418c); border-radius:12px; }
.favorites-empty {
  display:flex; flex-direction:column; align-items:center; gap:14px; padding:42px 24px;
  border:1px solid rgba(132,85,226,.38); border-radius:20px; text-align:center; color:#f4eaff;
  background:radial-gradient(ellipse at 50% 0,rgba(163,64,255,.14),transparent 80%),rgba(12,7,31,.8);
}
.favorites-empty > svg { width:40px; height:40px; color:#f18ae9; }
.favorites-empty strong { font-size:16px; }

.country-league-item { display:flex; align-items:center; min-width:0; border-bottom:1px solid rgba(138,91,205,.12); }
.country-league-item > .country-league { flex:1; min-width:0; margin:0; border-bottom:0; padding-left:2px; }
.country-league-item .country-league-marker { display:none; }
.country-league-item > .country-league { grid-template-columns:minmax(0,1fr) auto; }
.league-stage-title > .favorite-toggle { margin-left:auto; }
.favorite-league-back { border:0; background:transparent; color:#f18ae9; font-size:30px; cursor:pointer; min-width:28px; min-height:44px; padding:0; }
.favorite-league-back:focus-visible, .favorite-competition-open:focus-visible,
.favorites-sports-tabs button:focus-visible, .favorites-section-tabs button:focus-visible { outline:2px solid #f18ae9; outline-offset:-3px; border-radius:12px; }
.favorites-sports-tabs, .favorites-section-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; min-width:0; }
.favorites-sports-tabs { padding:5px; border:1px solid #53316e; border-radius:17px; background:linear-gradient(120deg,#211131,#0e091e); }
.favorites-sports-tabs button, .favorites-section-tabs button { display:flex; align-items:center; justify-content:center; gap:6px; min-width:0; min-height:46px; padding:5px 4px; border:1px solid transparent; border-radius:12px; background:transparent; color:#a99bbd; font:600 12px/1.25 var(--sil7-font,Inter,system-ui,sans-serif); cursor:pointer; -webkit-tap-highlight-color:transparent; }
.favorites-sports-tabs button[aria-selected="true"] { color:#fff; border-color:#e358da; background:linear-gradient(145deg,#522052,#261037); box-shadow:0 0 12px #cd34d321; }
.favorites-sport-icon { display:grid; place-items:center; flex:0 0 22px; width:22px; height:22px; }
.favorites-sport-icon svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.favorites-sports-tabs [aria-selected="true"] .favorites-sport-icon { color:#f59aed; }
.favorites-section-tabs { margin:10px 0 14px; padding:0 0 5px; border-bottom:1px solid #452653; gap:5px; }
.favorites-section-tabs button { min-height:44px; border-radius:11px; position:relative; }
.favorites-section-tabs button[aria-selected="true"] { color:#f7edf9; background:#35203e; }
.favorites-section-tabs button[aria-selected="true"]::after { content:''; position:absolute; height:2px; left:20%; right:20%; bottom:-6px; background:#eb75e5; border-radius:2px; }
.favorites-section-tabs small { padding:2px 5px; border-radius:6px; background:#9b72ba20; color:inherit; font-size:10px; font-variant-numeric:tabular-nums; }
.favorites-items { display:grid; gap:8px; min-width:0; }
.favorite-search-person { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.favorite-search-person .sil7-search-entity { flex:1; min-width:0; }
.collected-match-page .match-hero-team > .favorite-toggle { min-height:36px; height:36px; padding:6px 10px; }
.match-hero-team-visual[role="button"] { cursor:pointer; border-radius:8px; }
.match-hero-team-visual[role="button"]:focus-visible { outline:2px solid #f18ae9; outline-offset:3px; }
.favorite-competition { display:flex; align-items:center; min-width:0; border:1px solid rgba(132,85,226,.28); border-radius:12px; background:rgba(8,5,26,.7); }
.favorite-competition-open { display:flex; align-items:center; gap:9px; flex:1; min-width:0; min-height:62px; border:0; padding:10px 10px 10px 0; background:transparent; color:#f4eaff; text-align:left; font:inherit; cursor:pointer; }
.favorite-competition-open > span:nth-last-child(2) { min-width:0; flex:1; }
.favorite-competition-open strong { display:block; font-size:13px; line-height:1.35; overflow-wrap:anywhere; }
.favorite-competition-open small { display:block; margin-top:3px; font-size:11px; color:#b5a7c6; }
.favorite-competition-open > span:last-child { color:#dd80dc; font-size:22px; }
@media (max-width:340px) {
  .mode-tabs { gap:6px; padding-inline:8px; }
  .mode-tabs .mode-label { font-size:11px; }
  .has-favorite .league-match-row { column-gap:5px; padding-right:10px; }
}
