/* FMC mode-hub palette: dark competition surfaces with high-contrast match data. */
:root {
  --ink: #f7f8ff;
  --paper: #030513;
  --muted: #9aa4c2;
  --line: rgba(173, 195, 255, .18);
  --lime: #38d6ff;
  --cyan: #9a6bff;
  --dark-green: #070b22;
  --fmc-bg: #030513;
  --fmc-panel: #090e27;
  --fmc-panel-raised: #0d1433;
  --fmc-panel-soft: #111a3d;
  --fmc-line: rgba(173, 195, 255, .18);
  --fmc-line-strong: rgba(112, 191, 255, .44);
  --fmc-text: #f7f8ff;
  --fmc-muted: #9aa4c2;
  --fmc-subtle: #7481a3;
  --fmc-blue: #3b8cff;
  --fmc-cyan: #38d6ff;
  --fmc-violet: #7c4dff;
  --fmc-pink: #db4dff;
  --fmc-red: #ff496b;
  --fmc-yellow: #ffd95a;
  --fmc-green: #72e9a4;
  --fmc-lime: #d8ff3f;
}

body {
  background:
    radial-gradient(circle at 82% 4%, rgba(124, 77, 255, .2), transparent 30%),
    radial-gradient(circle at 8% 46%, rgba(56, 214, 255, .11), transparent 31%),
    var(--fmc-bg);
  color: var(--fmc-text);
}

.app-shell {
  background-color: transparent;
  background-image:
    linear-gradient(115deg, transparent 0 68%, rgba(56, 214, 255, .035) 68.1% 68.3%, transparent 68.4%),
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size: auto, 48px 48px, 48px 48px;
}

.app-shell::before {
  border-left-color: rgba(56, 214, 255, .2);
  background: linear-gradient(140deg, rgba(124, 77, 255, .12), transparent 58%);
}

.topbar {
  border-bottom: 1px solid rgba(173, 195, 255, .13);
  background: rgba(3, 5, 19, .9);
  color: var(--fmc-text);
}
.topbar::after { background: linear-gradient(90deg, transparent, var(--fmc-blue), var(--fmc-pink)); }
.brand-mark {
  border: 1px solid rgba(76, 177, 255, .55);
  background: linear-gradient(145deg, rgba(59, 140, 255, .45), rgba(124, 77, 255, .48));
  color: white;
  box-shadow: 0 0 24px rgba(59, 140, 255, .18);
}
.topbar-kicker { color: #8793b3; }
.status-pill { border-color: var(--fmc-line); background: rgba(255,255,255,.045); color: #dfe6fb; }
.status-pill i { background: var(--fmc-green); box-shadow: 0 0 10px rgba(114, 233, 164, .8); }
.status-pill.is-live i { background: var(--fmc-red); box-shadow: 0 0 0 4px rgba(255,73,107,.14), 0 0 12px rgba(255,73,107,.6); }

.hero {
  background:
    radial-gradient(circle at 78% 35%, rgba(219, 77, 255, .2), transparent 27%),
    linear-gradient(110deg, rgba(17, 73, 163, .72), rgba(65, 37, 149, .62) 62%, rgba(86, 25, 118, .5)),
    #07112d;
  color: white;
}
.hero::before { color: rgba(111, 173, 255, .08); }
.hero::after { background: linear-gradient(90deg, var(--fmc-cyan) 0 13%, var(--fmc-violet) 13% 17%, rgba(172,192,255,.2) 17% 100%); }
.eyebrow { color: #b9dcff; }
.eyebrow::before { background: var(--fmc-cyan); box-shadow: 0 0 12px rgba(56,214,255,.55); }
.hero h1 { color: white; text-shadow: 0 16px 50px rgba(0,0,0,.34); }
.hero h1 em { -webkit-text-stroke-color: #72dfff; }
.intro { color: #c3cce5; }
.season-stamp { border-color: rgba(117, 210, 255, .58); background: rgba(8, 16, 51, .38); box-shadow: 0 0 28px rgba(56,214,255,.09); }
.season-stamp span { color: #b6e9ff; }
.season-stamp i { color: #bdacff; }

.league-selector,
.league-clubs,
.mode-switcher,
.season-subnav {
  border-color: var(--fmc-line);
  background: rgba(8, 13, 37, .96);
  box-shadow: 0 18px 42px rgba(0,0,0,.3);
}
.league-selector button,
.club-rail button,
.mode-tabs button,
.season-subnav button {
  border-color: var(--fmc-line);
  background: var(--fmc-panel);
  color: var(--fmc-muted);
}
.league-selector button > span,
.league-clubs-heading span,
.mode-switcher-copy span,
.mode-tabs button span { color: var(--fmc-cyan); }
.league-selector button > strong,
.mode-switcher-copy strong { color: var(--fmc-text); }
.league-selector button > small { color: var(--fmc-subtle); }
.league-selector button::after,
.club-rail button::after,
.mode-tabs button::after { background: linear-gradient(90deg, var(--fmc-cyan), var(--fmc-violet)); }
.league-selector button:hover:not(:disabled),
.club-rail button:hover,
.mode-tabs button:hover { background: #111a3f; color: white; }
.league-selector button.active,
.mode-tabs button.active,
.season-subnav button.active {
  border-color: var(--fmc-line-strong);
  background: linear-gradient(115deg, rgba(37, 105, 214, .68), rgba(101, 52, 195, .62));
  color: white;
}
.league-clubs-heading { border-right-color: var(--fmc-line); background: #070b20; }
.league-clubs-heading p { color: var(--fmc-subtle); }
.club-rail { scrollbar-color: #334267 transparent; }
.club-rail button { border-right-color: rgba(173,195,255,.11); }
.club-rail button.selected { background: linear-gradient(180deg, rgba(45,123,231,.22), rgba(111,61,202,.2)); color: #a8e8ff; }
.season-subnav > span { color: var(--fmc-subtle); }

.setup-panel,
.season-start,
.next-match-card,
.results-card,
.table-card,
.season-finished-card,
.management-controls,
.condition-ribbon,
.player-inspector,
.lineup-card,
.squad-card,
.statistics-kpis,
.stat-leaderboard,
.club-statistics,
.season-records,
.season-finale,
.matchday-brief {
  border-color: var(--fmc-line);
  background: var(--fmc-panel);
  color: var(--fmc-text);
  box-shadow: 0 18px 45px rgba(0,0,0,.24);
}
.setup-panel::before { background: linear-gradient(90deg, var(--fmc-cyan), var(--fmc-violet)); box-shadow: 0 0 15px rgba(56,214,255,.35); }
.section-heading > span,
.section-heading p { color: var(--fmc-cyan); }
.section-heading h2 { color: var(--fmc-text); }
.field-label { color: var(--fmc-muted); }
.team-select-wrap { border-color: var(--fmc-line); background: rgba(255,255,255,.035); }
.team-select-wrap:hover { border-color: rgba(56,214,255,.42); }
.team-select-wrap:focus-within { border-color: var(--fmc-cyan); background: rgba(56,214,255,.06); box-shadow: 0 0 0 3px rgba(56,214,255,.09); }
.team-select-wrap select { color: var(--fmc-text); }
.team-select-wrap select option { background: #0c1230; color: white; }
.team-select-wrap::after { color: var(--fmc-cyan); }
.rating-row { color: var(--fmc-subtle); }
.rating-row strong { color: #cdeeff; }
.divider { background: var(--fmc-line); }
.tactic-list button { color: #e8edff; }
.tactic-list button:hover { background: rgba(255,255,255,.045); }
.tactic-list button.active { border-color: rgba(56,214,255,.34); background: linear-gradient(100deg, rgba(43,126,235,.18), rgba(124,77,255,.13)); box-shadow: inset 3px 0 var(--fmc-cyan); }
.radio-dot { border-color: #617097; }
.active .radio-dot { border-color: #071027; background: var(--fmc-cyan); box-shadow: 0 0 0 1px var(--fmc-cyan), 0 0 12px rgba(56,214,255,.45); }
.tactic-list small { color: var(--fmc-subtle); }

.match-card,
.season-live-match {
  border-color: rgba(112, 191, 255, .25);
  background:
    radial-gradient(circle at 50% 23%, rgba(68, 116, 255, .22), transparent 36%),
    linear-gradient(145deg, #0b1435, #05091c 65%, #120b2d);
  box-shadow: 0 30px 80px rgba(0,0,0,.4), inset 0 0 45px rgba(62,113,255,.04);
}
.match-card::before { background-image: linear-gradient(115deg, transparent 0 69%, rgba(124,77,255,.15) 69.2% 69.5%, transparent 69.7%), repeating-linear-gradient(90deg, transparent 0 14.1%, rgba(255,255,255,.018) 14.2% 28.2%); }
.match-card::after { background: linear-gradient(90deg, var(--fmc-cyan), var(--fmc-violet), var(--fmc-pink)); }
.match-card-top { border-bottom-color: rgba(147,180,255,.14); color: #8796ba; }
.match-card-top span:first-child,
.club span:not(.team-badge),
.score-center small { color: #79dcff; }
.club p { color: #8492b3; }
.score i { color: var(--fmc-cyan); }
.pitch-preview { border-color: rgba(92,190,255,.23); background: linear-gradient(90deg, rgba(56,214,255,.035), rgba(124,77,255,.04)); }
.pitch-line--center, .pitch-circle, .pitch-box { border-color: rgba(123,195,255,.18); }
.player { border-color: #071027; background: var(--fmc-cyan); box-shadow: 0 0 10px rgba(56,214,255,.75); }
.player--away { background: #b27cff; box-shadow: 0 0 10px rgba(178,124,255,.72); }
.primary-button {
  background: linear-gradient(105deg, #256fd7, #5841d2 68%, #842fb2);
  color: white;
  box-shadow: 0 13px 34px rgba(45, 83, 210, .3);
}
.primary-button:hover:not(:disabled) { background: linear-gradient(105deg, #3188f2, #7153ed 68%, #a83bd5); }
.primary-button b { background: rgba(3,7,24,.34); color: white; }
.match-actions p { color: #7f8caf; }
.speed-control--compact button.active { border-color: var(--fmc-cyan); background: rgba(56,214,255,.14); color: #8be5ff; }

.mode-switcher-copy strong { color: var(--fmc-text); }
.season-start-copy {
  background:
    radial-gradient(circle at 86% 20%, rgba(219,77,255,.22), transparent 26%),
    linear-gradient(120deg, rgba(32,105,218,.96), rgba(87,54,195,.96) 66%, rgba(118,38,153,.96));
}
.season-start-copy h2 em { -webkit-text-stroke-color: #9de9ff; }
.season-start-copy > p:not(.season-kicker) { color: #d6def2; }
.season-start-copy li span { color: #b5c0dd; }
.season-start-club > span,
.next-match-topline span,
.season-card-heading span { color: var(--fmc-cyan); }
.season-start-club > p,
.season-start-club > div,
.season-start-club small,
.next-match-topline strong,
.season-card-heading strong { color: var(--fmc-muted); }
.season-start-club > div strong { color: var(--fmc-text); }
.management-header,
.statistics-header,
.season-finale-hero {
  background:
    linear-gradient(120deg, rgba(49, 124, 236, .26), transparent 47%),
    linear-gradient(90deg, #08112e, #0c0c27 70%, #180a30);
}
.management-club span,
.statistics-header > div:first-child > span,
.season-finale-hero > div > span { color: #6edcff; }
.management-club p,
.statistics-header p,
.statistics-header > div:last-child span,
.season-finale-hero p { color: #8997b8; }
.statistics-kpis article { border-color: var(--fmc-line); }
.statistics-kpis span,
.statistics-kpis small { color: var(--fmc-muted); }
.statistics-kpis strong { color: var(--fmc-text); }
.statistics-kpis strong i { color: var(--fmc-cyan); }
.next-match-teams div > span { color: var(--fmc-muted); }
.next-match-teams > strong { color: #596684; }
.season-tactic-row,
.season-speed-row { border-top-color: var(--fmc-line); }
.season-tactic-row p span,
.season-speed-row > span { color: var(--fmc-muted); }
.season-tactic-row button,
.speed-control button,
.season-speed-row .speed-control--compact button,
.formation-buttons button {
  border-color: var(--fmc-line);
  background: #111733;
  color: var(--fmc-muted);
}
.speed-control button strong,
.season-speed-row .speed-control--compact button strong { color: #dbe3f8; }
.season-tactic-row button.active,
.speed-control button.active,
.season-speed-row .speed-control--compact button.active,
.formation-buttons button.active { border-color: var(--fmc-cyan); background: linear-gradient(110deg, rgba(37,111,215,.55), rgba(98,56,197,.52)); color: white; box-shadow: inset 0 -3px var(--fmc-cyan); }
.speed-control button.active strong,
.season-speed-row .speed-control--compact button.active strong { color: white; }
.season-save-note { color: var(--fmc-subtle); }
.results-grid > div { border-color: rgba(173,195,255,.12); background: #0e1532; }
.results-grid > div.user-result { border-color: rgba(56,214,255,.34); background: rgba(42,113,219,.16); }
.results-grid span { color: var(--fmc-muted); }
.table-card th { border-color: var(--fmc-line); background: #101733; color: #909cbb; }
.table-card td { border-bottom-color: rgba(173,195,255,.1); color: #aab5d1; }
.table-card tbody tr:hover { background: rgba(255,255,255,.035); }
.table-card tbody tr.user-club { background: rgba(55,132,236,.15); }
.table-card td:nth-child(2) strong,
.table-card td:last-child strong { color: var(--fmc-text); }
.table-card td:nth-child(2) span,
.table-legend { color: var(--fmc-muted); }

.management-strength > span,
.management-controls > div:first-child span,
.management-controls > p { color: var(--fmc-muted); }
.management-strength > strong { color: var(--fmc-cyan); }
.management-strength > div { color: #c4cee6; }
.management-controls { border-color: var(--fmc-line); }
.development-ribbon { border-color: var(--fmc-line); background: #0b112c; }
.development-ribbon > div:first-child span { color: var(--fmc-cyan); }
.development-ribbon > div:first-child strong { color: var(--fmc-text); }
.development-ribbon > p { color: var(--fmc-muted); }
.development-ribbon-values > span { border-color: var(--fmc-line); background: #111735; }
.development-ribbon-values b { color: var(--fmc-text); }
.development-ribbon-values small { color: var(--fmc-muted); }
.development-ribbon-values .is-up b { color: var(--fmc-lime); }
.development-ribbon-values .is-down b { color: var(--fmc-red); }
.condition-ribbon { border-color: var(--fmc-line); background: #0d1330; }
.condition-ribbon > div:first-child span { color: var(--fmc-lime); }
.condition-ribbon > div:first-child strong { color: var(--fmc-text); }
.condition-ribbon > p { color: var(--fmc-muted); }
.condition-ribbon-values > span { border-color: var(--fmc-line); background: #111735; }
.condition-ribbon-values b { color: var(--fmc-text); }
.condition-ribbon-values small { color: var(--fmc-muted); }
.condition-ribbon-values .is-fit b { color: var(--fmc-lime); }
.condition-ribbon-values .is-tired b { color: #ffd35b; }
.condition-ribbon-values .is-out b { color: var(--fmc-red); }
.condition-badge { border-color: var(--fmc-line); background: #161d3e; color: #aeb9d5; }
.condition-badge.is-fit { border-color: rgba(104,221,145,.25); background: rgba(104,221,145,.1); color: var(--fmc-lime); }
.condition-badge.is-tired { border-color: rgba(255,211,91,.28); background: rgba(255,211,91,.1); color: #ffd35b; }
.condition-badge.is-out { border-color: rgba(255,75,98,.28); background: rgba(255,75,98,.1); color: #ff6276; }
.next-match-squad-status { border-color: var(--fmc-line); background: #0e1534; }
.next-match-squad-status > span, .next-match-squad-status > small { color: var(--fmc-muted); }
.next-match-squad-status > strong { color: var(--fmc-text); }
.next-match-squad-status > button { border-color: var(--fmc-line); background: #151d3f; color: var(--fmc-cyan); }
.next-match-squad-status > button:hover { border-color: var(--fmc-cyan); color: white; }
.matchday-brief > header { background: linear-gradient(115deg, rgba(45,123,231,.34), rgba(111,61,202,.22) 50%, transparent 70%), #090e27; }
.matchday-brief > header span, .matchday-brief > header > strong { color: var(--fmc-cyan); }
.matchday-brief > header p { color: var(--fmc-muted); }
.matchday-brief-kpis { border-bottom-color: var(--fmc-line); }
.matchday-brief-kpis section { border-right-color: var(--fmc-line); background: #0d1330; }
.matchday-brief-kpis span, .matchday-brief-kpis small { color: var(--fmc-muted); }
.matchday-brief-kpis strong { color: var(--fmc-text); }
.matchday-brief-kpis strong i { color: var(--fmc-lime); }
.matchday-brief-kpis strong em { color: var(--fmc-red); }
.matchday-brief-details { background: var(--fmc-line); }
.matchday-brief-details > section { background: #0b112c; }
.matchday-brief-heading { border-bottom-color: var(--fmc-line); background: #111735; }
.matchday-brief-heading span { color: var(--fmc-cyan); }
.matchday-brief-heading strong { color: var(--fmc-muted); }
.incident-row, .brief-leaders > div:not(.brief-empty) { border-bottom-color: var(--fmc-line); }
.incident-row > span strong, .brief-leaders strong, .brief-empty strong { color: var(--fmc-text); }
.incident-row > span small, .brief-leaders em, .brief-empty span { color: var(--fmc-muted); }
.incident-row > b { background: rgba(255,75,98,.12); color: #ff6276; }
.incident-row--return > b { background: rgba(104,221,145,.12); color: var(--fmc-lime); }
.brief-leaders small, .brief-leaders b { color: var(--fmc-cyan); }
.player-inspector { border-color: var(--fmc-line); background: linear-gradient(120deg, #0c1230 0 52%, #101638 52% 100%); }
.player-inspector-identity > div > span { color: var(--fmc-cyan); }
.player-inspector-identity h3 { color: var(--fmc-text); }
.player-inspector-identity p,
.player-inspector-identity small,
.player-attributes span { color: var(--fmc-muted); }
.player-inspector-identity small { border-color: var(--fmc-line); }
.player-inspector-identity small.official { border-color: rgba(56,214,255,.3); background: rgba(56,214,255,.08); color: #78ddff; }
.player-overall { background: linear-gradient(145deg, #1f65c6, #6640c4); }
.player-overall span { color: #a9eaff; }
.player-overall em { background: #36b76e; }
.player-overall em.is-down { background: var(--fmc-red); }
.player-attributes strong { color: var(--fmc-text); }
.player-attributes i { background: #283250; }
.player-attributes i b { background: linear-gradient(90deg, var(--fmc-blue), var(--fmc-cyan)); }
.player-portrait--hero { border-color: var(--fmc-line); background: linear-gradient(145deg, #e7edff, #b9c6e7); }
.management-card-heading { border-bottom-color: var(--fmc-line); }
.management-card-heading span { color: var(--fmc-cyan); }
.management-card-heading strong { color: var(--fmc-muted); }
.lineup-pitch { background: linear-gradient(90deg, transparent 49.8%, rgba(125,202,255,.16) 50%, transparent 50.2%), radial-gradient(circle at center, transparent 0 76px, rgba(125,202,255,.14) 77px 78px, transparent 79px), repeating-linear-gradient(90deg, rgba(255,255,255,.016) 0 12.5%, transparent 12.5% 25%), linear-gradient(145deg, #0e1b40, #070b20); }
.lineup-pitch::before { border-color: rgba(111,196,255,.18); }
.lineup-row button { border-color: rgba(150,187,255,.18); background: rgba(6,10,30,.84); }
.lineup-row button:hover { border-color: rgba(56,214,255,.62); }
.lineup-row button.selected { border-color: var(--fmc-cyan); background: rgba(46,121,226,.24); box-shadow: 0 0 0 2px rgba(56,214,255,.13); }
.lineup-row button > small { color: #80e0ff; }
.dynamic-rating { color: var(--fmc-text); }
.dynamic-rating.is-up em { background: #36b76e; }
.dynamic-rating.is-down em { background: var(--fmc-red); }
.lineup-row button > .dynamic-rating,
.bench-strip button > .dynamic-rating { color: #80e0ff; }
.bench-strip,
.management-actions { border-color: var(--fmc-line); background: #0b112c; }
.bench-strip button { border-color: var(--fmc-line); background: #111735; color: var(--fmc-text); }
.bench-strip button.selected { border-color: var(--fmc-cyan); background: rgba(48,125,229,.18); }
.bench-strip button small,
.management-actions > span,
.player-copy small { color: var(--fmc-muted); }
.bench-strip button b,
.squad-list section h3 span { color: var(--fmc-cyan); }
.squad-list section h3 { border-bottom-color: var(--fmc-line); background: #101630; color: var(--fmc-muted); }
.squad-list section > button { border-bottom-color: rgba(173,195,255,.1); background: var(--fmc-panel); color: var(--fmc-text); }
.squad-list section > button:hover { background: #111a3b; }
.squad-list section > button.selected { background: rgba(46,121,226,.17); box-shadow: inset 3px 0 var(--fmc-cyan); }
.management-actions button { background: linear-gradient(105deg, #256fd7, #6a42d0); }

.statistics-header > div:last-child strong { color: var(--fmc-cyan); }
.season-development { border-color: var(--fmc-line); background: #070c22; }
.development-columns { background: var(--fmc-line); }
.development-columns > article { background: var(--fmc-panel); }
.development-columns > article > header { border-bottom-color: var(--fmc-line); background: linear-gradient(110deg, #0c173a, #15102f); }
.development-columns > article > header span,
.development-columns > article > header b { color: var(--fmc-lime); }
.development-columns > article:last-child > header span,
.development-columns > article:last-child > header b { color: var(--fmc-red); }
.development-player-row { border-bottom-color: rgba(173,195,255,.1); }
.development-player-row > div strong,
.development-empty strong { color: var(--fmc-text); }
.development-player-row > div small,
.development-empty span { color: var(--fmc-muted); }
.stat-leaderboard { border-color: var(--fmc-line); background: var(--fmc-panel); }
.stat-leaderboard > header { border-bottom-color: var(--fmc-line); background: linear-gradient(110deg, #0c173a, #15102f); }
.stat-leaderboard > header span,
.stat-leaderboard > header > strong { color: var(--fmc-cyan); }
.stat-player-row { border-bottom-color: rgba(173,195,255,.1); }
.stat-player-row:hover { background: rgba(255,255,255,.035); }
.stat-rank { color: #8290b1; }
.stat-player-row:nth-child(-n+3) .stat-rank { color: var(--fmc-cyan); }
.stat-player-copy strong { color: var(--fmc-text); }
.stat-player-copy small,
.stat-empty span { color: var(--fmc-muted); }
.stat-empty strong { color: var(--fmc-text); }
.stat-value { color: #83e4ff; }
.stat-leaderboard--assists .stat-value { color: #6fcfff; }
.stat-leaderboard--red .stat-value { color: var(--fmc-red); }
.statistics-section-heading { border-bottom-color: var(--fmc-line); background: #0d1432; }
.statistics-section-heading span { color: var(--fmc-cyan); }
.statistics-section-heading h3 { color: var(--fmc-text); }
.statistics-section-heading p { color: var(--fmc-muted); }
.club-statistics,
.season-records { border-color: var(--fmc-line); background: #070c22; }
.club-stat-grid,
.record-grid { background: var(--fmc-line); }
.club-stat-grid article,
.record-card { background: var(--fmc-panel); }
.club-stat-grid article > div > span,
.record-card > span { color: var(--fmc-cyan); }
.club-stat-grid article > div > strong,
.club-stat-grid article > p b,
.record-card > strong { color: var(--fmc-text); }
.club-stat-grid article > p small,
.record-card > small { color: var(--fmc-muted); }
.record-card::after { background: rgba(124,77,255,.08); }
.record-card--dark { background: #0b1029; }
.season-finale { background: var(--fmc-panel); }
.season-finale-hero h2 em { color: #7edfff; }
.season-finale-user,
.season-finale-heading,
.season-awards article,
.season-decisions,
.season-decision-grid > article { border-color: var(--fmc-line); }
.season-finale-user > div span,
.season-finale-heading span,
.season-awards article > span small { color: var(--fmc-cyan); }
.season-finale-user > div strong,
.season-finale-user > p b,
.season-awards article > span strong,
.season-awards article > b,
.season-decision-grid p strong { color: var(--fmc-text); }
.season-finale-user > p small,
.season-finale-heading strong,
.season-awards article > span em,
.season-decision-grid > article > span { color: var(--fmc-muted); }

footer { border-top-color: var(--fmc-line); color: var(--fmc-subtle); }
footer p { color: var(--fmc-cyan); }

@media (max-width: 940px) {
  .player-inspector { background: #0c1230; }
}

@media (max-width: 700px) {
  .statistics-kpis article:nth-child(-n+2),
  .season-awards article,
  .season-decision-grid > article { border-color: var(--fmc-line); }
}

@media (max-width: 560px) {
  .mode-tabs button,
  .season-finale-user > p { border-color: var(--fmc-line); }
}

/* KICKOFF V5: tighter season hub, match-specific management and sequential calendar. */
.app-shell--active-season .season-dashboard {
  margin-top: 16px;
}

.manager-overview-grid {
  grid-template-columns: minmax(0, 1.5fr) minmax(380px, .72fr);
  gap: 14px;
}

.manager-short-table article {
  min-height: 39px;
  padding-top: 4px;
  padding-bottom: 4px;
}

.manager-short-table article > span strong {
  font-size: 8px;
}

.manager-short-table article > span small {
  font-size: 6px;
}

.manager-match-start {
  min-width: 210px;
  gap: 7px;
}

.manager-overview-main .manager-next-match {
  grid-template-columns: minmax(0, 1fr) minmax(210px, .48fr) minmax(0, 1fr);
}

.manager-match-start > button {
  width: 100%;
  min-height: 34px;
}

.manager-match-start > .manager-quick-sim {
  min-height: 38px;
  border-color: rgba(56, 214, 255, .45);
  background: linear-gradient(115deg, rgba(22, 62, 127, .88), rgba(57, 35, 118, .9));
  box-shadow: inset 0 -2px rgba(56, 214, 255, .68);
  color: var(--fmc-text);
  display: grid;
  gap: 2px;
  padding: 6px 12px;
}

.manager-match-start > .manager-quick-sim strong {
  font-size: 7px;
}

.manager-match-start > .manager-quick-sim small {
  color: #9fdbff;
  letter-spacing: .12em;
  font-size: 5px;
  font-weight: 900;
}

.manager-match-start > .manager-team-management {
  min-height: 29px;
  border-color: var(--fmc-line);
  background: rgba(255, 255, 255, .035);
  box-shadow: none;
  color: var(--fmc-cyan);
  font-size: 6px;
}

.manager-overview-main .manager-newsdesk article,
.matchday-overview-sidebar .manager-newsdesk article {
  min-height: 142px;
}

.manager-newsdesk .news-story-focus > strong {
  font-size: 15px;
  line-height: 1.18;
}

.manager-overview-main .manager-newsdesk article > p,
.matchday-overview-sidebar .manager-newsdesk article > p {
  font-size: 10px;
  line-height: 1.55;
}

.matchday-preview-list > div > article {
  min-height: 96px;
}

.matchday-preview-teams strong {
  font-size: 11px;
}

.matchday-preview-teams small {
  font-size: 7px;
}

.matchday-preview-news > p {
  white-space: normal;
  font-size: 9px;
  line-height: 1.42;
}

.season-calendar {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(350px, .64fr);
  grid-template-areas:
    "header header"
    "fixtures matchdays";
  align-items: start;
  gap: 14px;
  padding-bottom: 14px;
}

.season-calendar-header {
  grid-area: header;
}

.calendar-detail-grid--fixtures-only {
  grid-area: fixtures;
  min-width: 0;
  margin: 0 0 0 14px;
}

.calendar-matchday-grid {
  grid-area: matchdays;
  grid-template-columns: repeat(4, minmax(72px, 1fr));
  gap: 7px;
  max-height: 730px;
  margin: 0 14px 0 0;
  padding: 0;
  overflow-y: auto;
  scrollbar-color: var(--fmc-cyan) transparent;
}

.calendar-matchday-grid button {
  min-width: 0;
  min-height: 76px;
  border: 1px solid var(--fmc-line);
}

.calendar-matchday-grid button > span {
  font-size: 16px;
}

.calendar-matchday-grid button img {
  width: 27px;
  height: 30px;
}

.calendar-simulation-actions {
  display: flex;
  gap: 8px;
}

.calendar-simulation-actions > button {
  min-width: 188px;
}

.season-sim-matchday {
  border: 1px solid var(--fmc-cyan);
  background: linear-gradient(115deg, rgba(37, 105, 214, .55), rgba(101, 52, 195, .52));
  color: var(--fmc-text);
  cursor: pointer;
  display: grid;
  gap: 4px;
  padding: 10px 15px;
  text-align: left;
}

.season-sim-matchday span,
.calendar-simulation-actions button span {
  color: var(--fmc-cyan);
  letter-spacing: .12em;
  font-size: 6px;
  font-weight: 900;
}

.season-sim-matchday strong,
.calendar-simulation-actions button strong {
  letter-spacing: .05em;
  font-size: 8px;
}

.calendar-simulation-actions button:disabled {
  cursor: not-allowed;
  opacity: .48;
}

.calendar-round-results article.is-result-revealed {
  animation: kickoff-result-in .28s ease both;
  box-shadow: inset 3px 0 var(--fmc-cyan);
}

@keyframes kickoff-result-in {
  from { opacity: .42; transform: translateX(-8px); }
  to { opacity: 1; transform: translateX(0); }
}

.management-header {
  min-height: 94px;
  padding: 14px 22px;
}

.management-club .team-badge {
  width: 58px;
  height: 63px;
}

.management-controls {
  grid-template-columns: 120px minmax(0, 1fr) auto;
  gap: 12px;
  padding: 9px 15px;
}

.formation-buttons {
  flex-wrap: wrap;
}

.formation-buttons button {
  min-height: 33px;
}

.formation-buttons .auto-best-eleven {
  border-color: rgba(216, 255, 63, .58);
  background: linear-gradient(115deg, rgba(53, 113, 87, .5), rgba(41, 72, 102, .72));
  color: var(--fmc-lime);
  display: grid;
  gap: 2px;
  min-width: 142px;
}

.formation-buttons .auto-best-eleven small {
  color: #b7c4dc;
  letter-spacing: .08em;
  font-size: 5px;
}

.lineup-row button.out-of-position {
  border-color: rgba(255, 73, 107, .92);
  box-shadow: 0 0 0 2px rgba(255, 73, 107, .18), 0 13px 25px rgba(0, 0, 0, .28);
}

.position-warning {
  z-index: 5;
  position: absolute;
  right: 5px;
  bottom: 28px;
  border: 1px solid rgba(255, 73, 107, .6);
  background: rgba(56, 7, 25, .92);
  color: #ff8aa0;
  padding: 2px 4px;
  letter-spacing: .06em;
  font-size: 5px;
  font-weight: 950;
}

.bench-strip button > .dynamic-rating,
.reserve-strip button > .dynamic-rating {
  z-index: 6;
  position: absolute;
  top: 7px;
  right: 7px;
  left: auto;
  width: 43px;
  min-width: 43px;
  min-height: 34px;
  margin: 0;
  padding: 4px 5px 3px;
  border-color: rgba(56, 214, 255, .72);
  background: rgba(2, 8, 23, .94);
  box-shadow: 0 5px 16px rgba(0, 0, 0, .3);
  display: grid;
  place-items: center;
  gap: 1px;
}

.bench-strip button,
.reserve-strip button {
  position: relative;
}

.bench-strip button > .dynamic-rating::before,
.reserve-strip button > .dynamic-rating::before {
  content: "GES";
  color: var(--fmc-cyan);
  letter-spacing: .08em;
  font-size: 5px;
  font-weight: 950;
  line-height: 1;
}

.bench-strip button > .dynamic-rating strong,
.reserve-strip button > .dynamic-rating strong {
  color: white;
  font-size: 18px;
  line-height: 1;
}

.squad-card--standalone {
  margin-top: 14px;
}

.squad-list--overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-height: none;
}

.squad-list--overview > section {
  border-right: 1px solid var(--fmc-line);
}

.squad-list--overview > section:last-child {
  border-right: 0;
}

.squad-overview-player {
  border-bottom: 1px solid rgba(173, 195, 255, .1);
  display: grid;
  grid-template-columns: 28px 38px minmax(0, 1fr) 48px;
  align-items: center;
  gap: 8px;
  min-height: 65px;
  padding: 7px 10px;
}

.squad-overview-player.is-unavailable {
  opacity: .66;
  background: rgba(255, 73, 107, .06);
}

.squad-overview-player > .dynamic-rating {
  justify-self: end;
  color: var(--fmc-cyan);
}

.squad-overview-player > .dynamic-rating strong {
  font-size: 18px;
}

.open-team-management {
  border: 1px solid var(--fmc-cyan);
  background: linear-gradient(115deg, rgba(37, 105, 214, .65), rgba(101, 52, 195, .6));
  color: var(--fmc-text);
  cursor: pointer;
  min-height: 39px;
  padding: 0 16px;
  letter-spacing: .08em;
  font-family: inherit;
  font-size: 7px;
  font-weight: 950;
}

@media (max-width: 1100px) {
  .season-calendar {
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  }

  .calendar-matchday-grid {
    grid-template-columns: repeat(3, minmax(72px, 1fr));
  }

  .squad-list--overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .manager-overview-grid {
    grid-template-columns: 1fr;
  }

  .manager-overview-main .manager-next-match {
    grid-template-columns: minmax(0, 1fr) minmax(150px, .7fr) minmax(0, 1fr);
  }

  .season-calendar {
    grid-template-columns: 1fr;
    grid-template-areas:
      "header"
      "matchdays"
      "fixtures";
  }

  .calendar-simulation-actions {
    width: 100%;
  }

  .calendar-simulation-actions > button {
    flex: 1;
    min-width: 0;
  }

  .calendar-matchday-grid {
    grid-template-columns: repeat(4, minmax(68px, 1fr));
    max-height: 310px;
    margin: 0 10px;
  }

  .calendar-detail-grid--fixtures-only {
    margin: 0 10px;
  }

  .management-controls {
    grid-template-columns: 84px minmax(0, 1fr);
  }

  .management-controls > p {
    display: none;
  }

  .squad-list--overview {
    grid-template-columns: 1fr;
  }

  .squad-list--overview > section {
    border-right: 0;
  }
}

@media (max-width: 520px) {
  .manager-overview-main .manager-next-match {
    grid-template-columns: 1fr;
  }

  .manager-match-start {
    width: 100%;
  }

  .calendar-matchday-grid {
    grid-template-columns: repeat(3, minmax(68px, 1fr));
  }

  .calendar-simulation-actions {
    flex-direction: column;
  }
}

/* KICKOFF V7: versionierte Karriere-Slots und sichtbarer Saisonwechsel. */
.career-save-controls {
  display: flex;
  align-items: center;
  gap: 7px;
}

.career-save-slots {
  display: inline-flex;
  overflow: hidden;
  border: 1px solid var(--fmc-line);
  background: rgba(5, 9, 31, .72);
}

.career-save-slots button {
  position: relative;
  display: grid;
  width: 32px;
  min-height: 30px;
  place-items: center;
  border: 0;
  border-right: 1px solid var(--fmc-line);
  background: transparent;
  color: var(--fmc-muted);
  font: 900 7px/1 var(--font-body), sans-serif;
  letter-spacing: .08em;
  cursor: pointer;
}

.career-save-slots button:last-child { border-right: 0; }
.career-save-slots button.active { background: linear-gradient(135deg, rgba(29, 105, 231, .45), rgba(132, 44, 223, .38)); color: var(--fmc-text); }
.career-save-slots button:disabled { cursor: not-allowed; opacity: .48; }
.career-save-slots button i { position: absolute; right: 3px; bottom: 3px; width: 4px; height: 4px; border-radius: 50%; background: rgba(156, 166, 199, .35); }
.career-save-slots button i.occupied { background: var(--fmc-cyan); box-shadow: 0 0 7px rgba(55, 214, 255, .8); }

.career-save-status {
  display: inline-flex;
  max-width: 180px;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  color: var(--fmc-muted);
  font-size: 6px;
  font-weight: 900;
  letter-spacing: .08em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.career-save-status > i { width: 5px; height: 5px; flex: 0 0 auto; border-radius: 50%; background: var(--fmc-cyan); }
.career-save-status--saving > i, .career-save-status--loading > i { animation: fmc-save-pulse 1s ease-in-out infinite; }
.career-save-status--error { color: #ff708a; }
.career-save-status--error > i { background: #ff4e72; }
.career-save-status--recovered { color: #ffc75f; }
.career-save-status--recovered > i { background: #ffc75f; }

.career-save-delete {
  min-height: 30px;
  border: 1px solid rgba(255, 78, 114, .28);
  padding: 0 8px;
  background: rgba(255, 78, 114, .05);
  color: #ff7890;
  font: 900 6px/1 var(--font-body), sans-serif;
  letter-spacing: .08em;
  cursor: pointer;
}

.career-save-delete:hover { border-color: #ff4e72; background: rgba(255, 78, 114, .12); }

.season-finale-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 16px 20px 20px;
}

.season-finale-actions .primary-button { width: 100%; margin: 0; }
.season-finale-movement { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0; border-top: 1px solid var(--fmc-line); padding: 14px 20px; background: rgba(55, 214, 255, .06); }
.season-finale-movement strong { color: var(--fmc-cyan); font-size: 9px; text-transform: uppercase; }
.season-finale-movement span { color: var(--fmc-muted); font-size: 8px; }
.season-finale-boundary { grid-column: 1 / -1; margin: 0; border: 1px solid rgba(255, 199, 95, .35); padding: 13px; color: #ffc75f; font-size: 8px; line-height: 1.55; }

.career-archive-strip { margin-top: 14px; border: 1px solid var(--fmc-line); background: rgba(7, 12, 39, .82); }
.career-archive-strip > header { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--fmc-line); padding: 10px 16px; }
.career-archive-strip > header span, .career-archive-strip > header strong { display: block; }
.career-archive-strip > header span { color: var(--fmc-cyan); font-size: 7px; font-weight: 900; letter-spacing: .13em; }
.career-archive-strip > header strong { margin-top: 4px; color: var(--fmc-text); font-size: 12px; }
.career-archive-strip > header > b { color: var(--fmc-text); font-size: 24px; font-style: italic; }
.career-archive-strip > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.career-archive-strip article { min-width: 0; border-right: 1px solid var(--fmc-line); padding: 13px 16px; }
.career-archive-strip article > span { color: var(--fmc-cyan); font-size: 7px; font-weight: 900; letter-spacing: .1em; }
.career-archive-strip article > strong { display: block; margin-top: 5px; color: var(--fmc-text); font-size: 11px; }
.career-archive-strip article > p { margin: 8px 0 0; color: var(--fmc-muted); font-size: 8px; }
.career-archive-strip article > p b { color: var(--fmc-text); font-size: 15px; }
.career-archive-strip article > small { display: block; margin-top: 6px; overflow: hidden; color: rgba(158, 171, 208, .72); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }

@keyframes fmc-save-pulse {
  50% { opacity: .25; transform: scale(.75); }
}

@media (max-width: 1180px) {
  .career-save-status { display: none; }
}

@media (max-width: 760px) {
  .career-save-delete { display: none; }
  .career-save-slots button { width: 28px; min-height: 28px; }
  .season-finale-actions { grid-template-columns: 1fr; padding: 12px; }
}

.career-save-mobile { display: none; }
@media (max-width: 760px) {
  .career-save-mobile { display: block; margin: 10px 12px; border: 1px solid var(--fmc-line); background: var(--fmc-panel); color: var(--fmc-text); }
  .career-save-mobile summary { padding: 12px; cursor: pointer; font-size: 11px; font-weight: 800; }
  .career-save-mobile summary span { float: right; color: var(--fmc-cyan); font-size: 10px; }
  .career-save-mobile p { padding: 0 12px; color: var(--fmc-muted); font-size: 12px; overflow-wrap: anywhere; }
  .career-save-mobile > div { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px; }
  .career-save-mobile button { flex: 1; min-height: 42px; padding: 8px; border: 1px solid var(--fmc-line); background: var(--fmc-panel-raised); color: var(--fmc-text); font-size: 11px; font-weight: 800; }
  .career-save-mobile button:disabled { opacity: .4; }
}

/* KICKOFF V5.0.1: exakte Kalenderergebnisse und besser lesbare Spielinfos. */
.calendar-matchday-grid button > b.calendar-score {
  color: var(--fmc-text, #f7f8ff);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .02em;
  white-space: nowrap;
}

.calendar-matchday-grid button > b.calendar-score.result-s {
  color: var(--fmc-lime, #d8ff3f);
}

.calendar-matchday-grid button > b.calendar-score.result-u {
  color: var(--fmc-cyan, #38d6ff);
}

.calendar-matchday-grid button > b.calendar-score.result-n {
  color: #ff7890;
}

.calendar-fixture-events {
  min-height: 54px;
  align-items: center;
  padding-top: 8px;
  padding-bottom: 9px;
}

.calendar-fixture-events > div {
  gap: 8px 16px;
}

.calendar-fixture-events > span {
  color: #c3cce5;
  font-size: 9px;
}

.calendar-scorer {
  grid-template-columns: 15px auto auto;
  gap: 5px 6px;
}

.calendar-scorer > svg {
  width: 14px;
  height: 14px;
}

.calendar-scorer > strong,
.calendar-scorer > time {
  font-size: 12px;
  line-height: 1.25;
}

.calendar-scorer > strong {
  color: #fff;
}

.calendar-scorer > time {
  color: #52dcff;
}

.calendar-scorer > small {
  gap: 5px;
  color: #c1cbe5;
  font-size: 10px;
  line-height: 1.3;
}

.calendar-scorer > small svg {
  width: 13px;
  height: 13px;
}

.calendar-no-scorer {
  color: #bcc5df;
  font-size: 10px;
  line-height: 1.3;
}

.calendar-round-results--compact .calendar-fixture-events {
  min-height: 54px;
  grid-template-columns: minmax(0, 1fr) 124px minmax(0, 1fr);
  gap: 12px;
  padding: 8px 20px 9px;
}

.calendar-round-results--compact .calendar-fixture-events > div {
  gap: 7px 15px;
}

.calendar-round-results--compact .calendar-fixture-events > span {
  font-size: 9px;
}

.calendar-round-results--compact .calendar-scorer {
  grid-template-columns: 14px auto auto;
  gap: 5px;
}

.calendar-round-results--compact .calendar-scorer > svg {
  width: 13px;
  height: 13px;
}

.calendar-round-results--compact .calendar-scorer > strong,
.calendar-round-results--compact .calendar-scorer > time {
  font-size: 12px;
}

.calendar-round-results--compact .calendar-scorer > small {
  grid-row: auto;
  grid-column: 2 / -1;
  font-size: 10px;
}

@media (max-width: 700px) {
  .calendar-matchday-grid button > b.calendar-score {
    font-size: 10px;
  }

  .calendar-round-results--compact .calendar-fixture-events {
    grid-template-columns: 1fr 1fr;
    gap: 8px 10px;
    padding: 8px 10px 10px;
  }

  .calendar-round-results--compact .calendar-fixture-events > span {
    grid-row: 1;
    grid-column: 1 / -1;
  }

  .calendar-round-results--compact .calendar-scorer > strong,
  .calendar-round-results--compact .calendar-scorer > time {
    font-size: 11px;
  }

  .calendar-round-results--compact .calendar-scorer > small,
  .calendar-no-scorer {
    font-size: 9px;
  }
}

/* KICKOFF V6: compact entry, seven-league rail and readable season data. */
.hero {
  min-height: 142px;
  padding-top: 10px;
  padding-bottom: 11px;
}

.hero h1 {
  font-size: clamp(30px, 3vw, 44px);
}

.league-selector {
  width: min(100%, 1280px);
  grid-template-columns: repeat(7, minmax(0, 1fr));
  overflow: hidden;
}

.league-selector button {
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(5px, .75vw, 12px);
  padding-right: clamp(8px, 1.15vw, 18px);
  padding-left: clamp(8px, 1.15vw, 18px);
  overflow: hidden;
}

.league-selector button > strong,
.league-selector button > small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.manager-short-table > header span {
  font-size: 8px;
}

.manager-short-table > header strong {
  font-size: 14px;
}

.manager-short-table > header button {
  font-size: 8px;
}

.manager-short-table article {
  min-height: 56px;
  grid-template-columns: 28px 36px minmax(0, 1fr) auto;
  gap: 10px;
  padding: 7px 13px;
}

.manager-short-table article > b {
  font-size: 14px;
}

.manager-short-table .team-badge {
  width: 32px;
  height: 36px;
}

.manager-short-table article > span strong {
  font-size: 13px;
  line-height: 1.2;
}

.manager-short-table article > span small {
  margin-top: 4px;
  font-size: 8px;
}

.manager-short-table article > em {
  font-size: 21px;
}

.manager-short-table article > em small {
  font-size: 7px;
}

.squad-card .management-card-heading {
  min-height: 58px;
}

.squad-card .management-card-heading span,
.squad-card .management-card-heading strong {
  font-size: 10px;
}

.squad-list section h3 {
  min-height: 34px;
  padding-top: 9px;
  padding-bottom: 9px;
  font-size: 9px;
}

.squad-list .shirt-number {
  font-size: 10px;
}

.squad-list .player-copy strong {
  font-size: 12px;
  line-height: 1.2;
}

.squad-list .player-copy small {
  margin-top: 3px;
  font-size: 8px;
  line-height: 1.25;
}

.squad-list .squad-role {
  min-height: 21px;
  margin-top: 5px;
  padding-right: 7px;
  padding-left: 7px;
  font-size: 7px;
}

.squad-list .condition-badge--compact {
  min-height: 21px;
  margin-top: 5px;
  padding-right: 6px;
  padding-left: 6px;
  font-size: 7px;
}

.squad-overview-player,
.squad-list section > button {
  min-height: 76px;
}

.squad-overview-player {
  grid-template-columns: 30px 42px minmax(0, 1fr) 52px;
  gap: 10px;
  padding: 8px 11px;
}

.squad-overview-player .player-portrait--small {
  width: 42px;
  height: 46px;
}

.squad-overview-player > .dynamic-rating strong {
  font-size: 21px;
}

@media (max-width: 1000px) {
  .league-selector button {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .league-selector button > small {
    display: none;
  }
}

@media (max-width: 760px) {
  .hero {
    min-height: 0;
    padding: 13px 18px 14px;
  }

  .league-selector button {
    min-height: 56px;
    grid-template-columns: minmax(0, 1fr);
    padding: 7px 4px;
  }

  .league-selector button > span {
    display: none;
  }

  .league-selector button > strong {
    overflow: visible;
    font-size: clamp(7px, 1.7vw, 9px);
    line-height: 1.15;
    text-align: center;
    text-overflow: clip;
    white-space: normal;
  }
}

@media (max-width: 520px) {
  .manager-short-table > header strong {
    font-size: 12px;
  }

  .manager-short-table article > span strong {
    font-size: 11px;
  }

  .manager-short-table article > span small {
    font-size: 7px;
  }

  .squad-list .player-copy strong {
    font-size: 11px;
  }

  .squad-list .player-copy small,
  .squad-list .squad-role,
  .squad-list .condition-badge--compact {
    font-size: 7px;
  }
}

/* Phone working surface. Scoped to KICKOFF and kept after the legacy theme rules. */
.mobile-table-hint { display: none; }
.career-slot-loading { position: fixed; inset: 0; z-index: 30000; display: grid; place-items: center; padding: 24px; background: #030817f2; color: #f4f7ff; }
.career-slot-loading > div { width: min(100%, 380px); padding: 28px 20px; border: 1px solid #37639d; border-radius: 18px; background: #111d3b; text-align: center; }
.career-slot-loading strong { display: block; font-size: 20px; line-height: 1.4; }
.career-slot-loading p { margin: 12px 0; color: #d5def0; font-size: 16px; line-height: 1.5; }
.career-slot-loading small { color: #acbedc; font-size: 14px; }
.career-slot-loading i { display: block; width: 32px; height: 32px; margin: 0 auto 20px; border: 3px solid #304e77; border-top-color: #32d5ff; border-radius: 50%; animation: career-slot-spin 1s linear infinite; }
@keyframes career-slot-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .career-slot-loading i { animation: none; } }
@media (max-width: 760px) {
  .app-shell { overflow-x: clip; padding-bottom: env(safe-area-inset-bottom, 0px); }
  .app-shell :is(button, input, select, summary, a) { touch-action: manipulation; }
  .app-shell :is(button, summary):focus-visible { outline: 2px solid var(--fmc-cyan); outline-offset: -2px; }
  .app-shell :is(input, select, textarea) { min-width: 0; max-width: 100%; min-height: 44px; font-size: 1rem; }
  .app-shell :is(.topbar, .topbar-actions, .career-save-controls) { min-width: 0; }
  .app-shell .topbar { height: auto; min-height: 64px; grid-template-columns: 1fr; gap: 10px; padding: 12px max(12px, env(safe-area-inset-right, 0px)) 10px max(12px, env(safe-area-inset-left, 0px)); }
  .app-shell .brand { font-size: 1rem; }
  .app-shell .topbar-actions { width: 100%; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
  .app-shell .career-save-controls { flex: 1; }
  .app-shell .career-save-slots { gap: 4px; }
  .app-shell .career-save-slots button { min-width: 44px; min-height: 44px; font-size: .875rem; }
  .app-shell .main-menu-link { display: inline-flex; min-height: 44px; align-items: center; padding: 8px; font-size: .75rem; letter-spacing: 0; }
  .app-shell .season-restart-button { width: 44px; min-height: 44px; }
  .app-shell .career-save-mobile { margin: 8px 12px; }
  .app-shell .career-save-mobile summary { display: flex; min-height: 44px; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; padding: 10px; font-size: .75rem; }
  .app-shell .career-save-mobile :is(p, button, summary span) { font-size: .75rem; line-height: 1.5; }
  .app-shell .career-save-mobile button { min-height: 44px; padding: 8px; }
  .app-shell .hero { padding: 18px 14px; }
  .app-shell .hero h1 { font-size: 2rem; }
  .app-shell .hero .eyebrow { font-size: .75rem; letter-spacing: .06em; }
  .app-shell .hero .intro { margin-top: 12px; font-size: .875rem; line-height: 1.5; }
  .app-shell .season-start { display: flex; flex-direction: column; margin-top: 14px; }
  .app-shell .season-start-club { order: -1; min-height: 0; padding: 22px 16px; }
  .app-shell .season-start-club .team-badge { width: 64px; height: 70px; margin: 14px 0; }
  .app-shell .season-start-club :is(p, small, span) { font-size: .875rem; }
  .app-shell .season-start-club > div { margin-bottom: 18px; flex-wrap: wrap; justify-content: center; gap: 14px; font-size: .75rem; }
  .app-shell .season-start-club > div strong { font-size: 1rem; }
  .app-shell .season-start-club .primary-button { min-height: 48px; font-size: .875rem; }
  .app-shell .season-start-copy { min-height: 0; padding: 24px 18px; }
  .app-shell .season-start-copy h2 { font-size: 2rem; }
  .app-shell .season-start-copy > p:not(.season-kicker) { margin-top: 14px; font-size: 1rem; }
  .app-shell .season-start-copy ul { margin-top: 18px; gap: 22px; }
  .app-shell .season-start-copy li span { font-size: .75rem; }

  /* Rails stay readable and swipe horizontally; the page itself never does. */
  .app-shell .league-selector { display: flex; width: calc(100% - 24px); max-width: 100%; overflow-x: auto; margin-inline: 12px; }
  .app-shell .league-selector button { flex: 0 0 auto; min-width: 138px; max-width: 190px; min-height: 48px; padding: 10px 12px; }
  .app-shell .league-selector button > strong { font-size: .875rem; line-height: 1.25; }
  .app-shell .league-clubs { min-width: 0; }
  .app-shell .league-clubs-heading { min-width: 74px; padding-inline: 10px; }
  .app-shell .league-clubs-heading :is(span, strong) { font-size: .75rem; }
  .app-shell .club-rail { min-width: 0; --club-touch-width: 56px; }
  .app-shell .club-rail button { min-width: 56px; min-height: 64px; }
  .app-shell .club-rail button > span { font-size: .75rem; }
  .app-shell .season-subnav { display: block; width: calc(100% - 24px); margin: 12px; padding: 0; }
  .app-shell .season-subnav > span { display: block; padding: 8px 12px 4px; font-size: .75rem; }
  .app-shell .season-subnav > div { min-width: 0; width: 100%; display: flex; overflow-x: auto; padding: 4px; gap: 4px; }
  .app-shell :is(.season-subnav, .transfer-tabs, .formation-buttons) button { flex: 0 0 auto; min-height: 44px; padding: 10px 12px; font-size: .875rem; letter-spacing: .02em; }
  .app-shell :is(.league-selector, .club-rail, .season-subnav > div, .transfer-tabs, .formation-buttons, .day-to-day-strip, .table-scroll) { scrollbar-width: thin; scrollbar-color: #526caa #0b112b; overscroll-behavior-x: contain; }
  .app-shell :is(.league-selector, .club-rail, .season-subnav > div, .transfer-tabs, .formation-buttons, .day-to-day-strip, .table-scroll)::-webkit-scrollbar { display: block; height: 5px; }
  .app-shell :is(.league-selector, .club-rail, .season-subnav > div, .transfer-tabs, .formation-buttons, .day-to-day-strip, .table-scroll)::-webkit-scrollbar-thumb { background: #526caa; border-radius: 8px; }

  .app-shell :is(.season-dashboard, .management-dashboard, .statistics-dashboard, .transfer-dashboard) { width: calc(100% - 24px); max-width: 100%; margin: 12px 12px 28px; }
  .app-shell .day-to-day > header { padding: 14px; gap: 14px; }
  .app-shell .day-to-day :is(p, .day-to-day-event strong) { font-size: .875rem; line-height: 1.45; }
  .app-shell .day-to-day-actions { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .app-shell .day-to-day-actions button { flex: 1 1 130px; min-height: 48px; width: auto; padding: 10px 8px; font-size: .875rem; letter-spacing: 0; }
  .app-shell .day-to-day-strip { grid-template-columns: repeat(9, 132px); }
  .app-shell .day-to-day-strip :is(small, em, .day-to-day-empty span) { font-size: .75rem; letter-spacing: 0; }
  .app-shell .day-to-day-due { flex-wrap: wrap; padding: 12px; }
  .app-shell .day-to-day-due :is(strong, span) { font-size: .875rem; letter-spacing: 0; }
  .app-shell .manager-next-match { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; padding: 16px 12px; }
  .app-shell .manager-next-match > .manager-match-start { grid-column: 1 / -1; grid-row: 2; width: 100%; min-width: 0; }
  .app-shell .manager-match-start { grid-template-columns: 1fr; gap: 8px; }
  .app-shell .manager-match-start > button { width: 100%; min-height: 48px; font-size: .875rem; white-space: normal; }
  .app-shell .manager-next-match h3 { font-size: 1rem; line-height: 1.3; }
  .app-shell .manager-match-wait :is(small, b) { font-size: .875rem; }
  .app-shell .manager-short-table > header { flex-wrap: wrap; gap: 10px; padding: 12px; }
  .app-shell .manager-short-table > header :is(span, button) { font-size: .75rem; }
  .app-shell .manager-short-table > header button { min-height: 44px; }
  .app-shell .manager-short-table > header strong { font-size: 1rem; }
  .app-shell .manager-short-table article { grid-template-columns: 22px 30px minmax(0, 1fr) 36px; gap: 8px; padding: 10px; }
  .app-shell .manager-short-table article > span strong { font-size: .875rem; line-height: 1.35; white-space: normal; }
  .app-shell .manager-short-table article > span small { font-size: .75rem; }
  .app-shell .manager-short-table article > em small { font-size: .75rem; }
  .app-shell .manager-newsdesk article > p { font-size: 1rem; line-height: 1.55; }
  .app-shell .manager-newsdesk :is(article > span, header span) { font-size: .75rem; }
  .app-shell .manager-newsdesk .news-story-focus > strong { font-size: 1.125rem; line-height: 1.3; }

  /* Month first, selected-day detail below: seven visible days at phone widths. */
  .app-shell .career-month-header { padding: 16px 12px; gap: 12px; }
  .app-shell .career-month-header h2 { font-size: 1.6rem; line-height: 1.1; }
  .app-shell .career-month-header p { font-size: .875rem; }
  .app-shell .career-month-header nav { grid-template-columns: 44px minmax(0, 1fr) 44px; }
  .app-shell .career-month-header nav :is(button, strong) { min-height: 44px; font-size: .875rem; }
  .app-shell .career-month-header nav strong { display: grid; place-content: center; }
  .app-shell .career-calendar-workspace { display: flex; flex-direction: column; overflow: visible; }
  .app-shell .career-calendar-board { order: -1; width: 100%; overflow: visible; }
  .app-shell :is(.career-calendar-weekdays, .career-calendar-days) { min-width: 0; width: 100%; grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .app-shell .career-calendar-weekdays span { padding: 10px 0; font-size: .75rem; }
  .app-shell .career-calendar-days > button { min-width: 0; min-height: 92px; gap: 4px; padding: 7px 2px; text-align: center; }
  .app-shell .career-calendar-days time { font-size: 1rem; }
  .app-shell .career-calendar-day-event { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 3px; }
  .app-shell .career-calendar-day-event img { width: 24px; height: 26px; grid-row: auto; }
  .app-shell .career-calendar-day-event small { display: none; }
  .app-shell .career-calendar-day-event strong { max-width: 100%; font-size: .75rem; letter-spacing: -.02em; }
  .app-shell .career-calendar-day-marker { width: auto; padding: 3px 0; border: 0; font-size: .75rem; letter-spacing: 0; }
  .app-shell .career-calendar-days > button.has-transfer-window::after { width: 4px; height: 4px; bottom: 3px; right: 3px; }
  .app-shell .career-calendar-focus-date { min-height: 62px; grid-template-columns: 45px minmax(0, 1fr); padding: 12px; }
  .app-shell .career-calendar-focus-date strong { font-size: 2rem; }
  .app-shell :is(.career-calendar-focus-match, .career-calendar-focus-free) { min-height: 0; padding: 18px 14px; gap: 8px; }
  .app-shell .career-calendar-focus-match img { width: 52px; height: 56px; }
  .app-shell .career-calendar-focus-free svg { width: 32px; height: 32px; }
  .app-shell :is(.career-calendar-focus-match > span, .career-calendar-focus-free span) { max-width: 100%; font-size: .875rem; }
  .app-shell .career-calendar-legend { display: flex; flex-wrap: wrap; gap: 10px 16px; padding: 12px; }
  .app-shell .career-calendar-legend span { font-size: .75rem; letter-spacing: 0; }
  .app-shell .career-calendar-results > div { display: grid; overflow: visible; }
  .app-shell .career-calendar-results > div > button { min-width: 0; width: 100%; grid-template-columns: 42px 28px minmax(0, 1fr) auto; padding: 12px 10px; gap: 8px; }
  .app-shell .career-calendar-results :is(time, small) { font-size: .75rem; }
  .app-shell .career-calendar-results button strong { font-size: .875rem; white-space: normal; }

  .app-shell .management-header { padding: 14px; gap: 16px; }
  .app-shell .management-club { min-width: 0; gap: 10px; }
  .app-shell .management-club h2 { font-size: 1.4rem; }
  .app-shell .management-club p, .app-shell .management-controls > p { font-size: .875rem; line-height: 1.5; }
  .app-shell .management-controls { min-width: 0; padding: 12px; gap: 12px; }
  .app-shell .formation-buttons { min-width: 0; width: 100%; display: flex; flex-wrap: nowrap; overflow-x: auto; }
  .app-shell .auto-best-eleven small { font-size: .75rem; }
  .app-shell .management-card-heading :is(span, strong) { font-size: .875rem; }
  .app-shell .lineup-pitch { min-height: 0; gap: 20px; padding: 20px 6px; }
  .app-shell .lineup-row { gap: 3px; align-items: stretch; }
  .app-shell .lineup-row button { display: grid; flex: 1 1 0; width: 0; min-width: 0; max-width: 110px; min-height: 146px; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto; align-content: start; gap: 5px 1px; padding: 6px 3px; }
  .app-shell .lineup-position { position: static; grid-column: 1; grid-row: 1; align-self: center; font-size: .75rem; }
  .app-shell .lineup-row button > .dynamic-rating { position: static; grid-column: 2; grid-row: 1; min-width: 0; padding: 0; background: transparent; }
  .app-shell .lineup-row button > .dynamic-rating strong { font-size: 1rem; }
  .app-shell .lineup-row button > .lineup-player-portrait { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 4px; width: 100%; height: auto; }
  .app-shell .lineup-row button > .lineup-player-portrait > .player-portrait { order: -1; width: 38px; max-width: 100%; height: 42px; }
  .app-shell .lineup-row .player-position-codes { position: static; justify-content: center; max-width: 100%; }
  .app-shell .player-position-codes.is-compact b { font-size: .75rem; line-height: 1; padding: 1px 2px; }
  .app-shell .lineup-row button > strong { grid-column: 1 / -1; max-width: 100%; overflow: hidden; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
  .app-shell .lineup-row button > .player-condition-meter { grid-column: 1 / -1; width: 100%; margin-top: auto; }
  .app-shell .lineup-row .position-warning { position: static; grid-column: 1 / -1; font-size: .75rem; white-space: normal; }
  .app-shell :is(.bench-strip, .reserve-strip) > .management-card-heading { min-height: 44px; padding: 10px 12px; }
  .app-shell :is(.bench-strip, .reserve-strip) > div:last-child { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0 8px; }
  .app-shell :is(.bench-strip, .reserve-strip) button { min-width: 0; width: 100%; max-width: 100%; min-height: 66px; grid-template-columns: 34px minmax(0, 1fr) 48px; grid-template-rows: auto auto 3px; align-content: center; align-items: center; justify-items: stretch; gap: 4px 8px; padding: 8px 4px; border-width: 0 0 1px; border-radius: 0; text-align: left; }
  .app-shell :is(.bench-strip, .reserve-strip) button > :is(.lineup-player-portrait, .bench-player-copy) { display: contents; }
  .app-shell :is(.bench-strip, .reserve-strip) .lineup-player-portrait > .player-portrait { grid-column: 1; grid-row: 1 / 4; width: 34px; height: 42px; margin: 0; }
  .app-shell :is(.bench-strip, .reserve-strip) .player-position-codes { grid-column: 2; grid-row: 2; position: static; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: 3px; }
  .app-shell :is(.bench-strip, .reserve-strip) button > .dynamic-rating { grid-column: 3; grid-row: 1; position: static; display: flex; flex-direction: row; justify-content: flex-end; width: auto; min-width: 0; min-height: 0; align-self: center; padding: 0; text-align: right; background: transparent; }
  .app-shell :is(.bench-strip, .reserve-strip) button > .dynamic-rating::before { display: none; }
  .app-shell :is(.bench-strip, .reserve-strip) button > .dynamic-rating strong { font-size: 1.25rem; }
  .app-shell :is(.bench-strip, .reserve-strip) .bench-player-copy > strong { grid-column: 2; grid-row: 1; display: block; font-size: .875rem; line-height: 1.3; text-transform: none; white-space: normal; overflow-wrap: anywhere; }
  .app-shell :is(.bench-strip, .reserve-strip) .bench-player-copy > small { display: none; }
  .app-shell :is(.bench-strip, .reserve-strip) .condition-badge { display: inline-flex; grid-column: 3; grid-row: 2 / 4; justify-self: end; max-width: 48px; margin: 0; padding: 2px; font-size: .75rem; white-space: normal; }
  .app-shell :is(.bench-strip, .reserve-strip) .condition-badge:has(.discipline-status) { grid-column: 2 / -1; grid-row: 4; justify-self: stretch; max-width: none; flex-wrap: wrap; gap: 4px; color: #f8d989; border-color: #867139; }
  .app-shell :is(.bench-strip, .reserve-strip) .discipline-status { display: block; margin: 0; font-size: .75rem; line-height: 1.4; }
  .app-shell :is(.bench-strip, .reserve-strip) .player-condition-meter { grid-column: 2; grid-row: 3; width: 100%; height: 3px; margin: 0; }
  .app-shell .management-actions { flex-wrap: wrap; gap: 10px; padding: 12px; }
  .app-shell .management-actions button { min-height: 48px; width: 100%; white-space: normal; font-size: .875rem; }
  .app-shell .squad-list .player-copy strong { font-size: .875rem; line-height: 1.35; }
  .app-shell .squad-list :is(.player-copy small, .squad-role, .condition-badge--compact, section h3) { font-size: .75rem; line-height: 1.35; }
  .app-shell .squad-overview-player { grid-template-columns: 22px 54px minmax(0, 1fr) 36px; gap: 8px; padding: 12px 8px; }
  .app-shell .squad-overview-player > .lineup-player-portrait { width: 54px; }
  .app-shell .squad-list .player-position-codes { flex-direction: column; }

  /* All table columns stay available in their own scroll area. */
  .app-shell .table-scroll { width: 100%; max-width: 100%; overflow-x: auto; }
  .app-shell .table-card--standalone table { min-width: 660px; }
  .app-shell .table-card--standalone :is(td, th):nth-child(2) { width: 180px; min-width: 180px; max-width: 180px; }
  .app-shell .table-card--standalone td:nth-child(2) { grid-template-columns: 28px minmax(0, 1fr); gap: 6px; }
  .app-shell .table-card--standalone td:nth-child(2) span { display: none; }
  .app-shell .table-card--standalone :is(td, th) { font-size: .875rem; }
  .app-shell .mobile-table-hint { display: block; margin: 0; padding: 10px 12px; color: var(--fmc-muted); font-size: .75rem; }
  .app-shell .table-card--standalone :is(td, th):is(:nth-child(4), :nth-child(5), :nth-child(6), :nth-child(9)) { display: table-cell; }
  .app-shell .table-card--standalone :is(td, th):first-child { position: sticky; left: 0; z-index: 2; width: 42px; min-width: 42px; max-width: 42px; background: #0d1532; }
  .app-shell .table-card--standalone :is(td, th):nth-child(2) { position: sticky; left: 42px; z-index: 2; background: #0d1532; }
  .app-shell .table-legend { gap: 10px; padding: 12px; }
  .app-shell .table-legend span { font-size: .75rem; }
  .app-shell .season-delete { min-height: 44px; font-size: .875rem; }

  .app-shell .transfer-tabs { display: flex; overflow-x: auto; }
  .app-shell .transfer-dashboard :is(button, label, p) { font-size: .875rem; line-height: 1.45; }
  .app-shell .transfer-dashboard button { min-height: 44px; }
  .app-shell .transfer-dashboard :is(small, label > span, article > span, em) { font-size: .75rem; line-height: 1.4; letter-spacing: .01em; }
  .app-shell .transfer-dashboard :is(input, select) { height: 46px; font-size: 1rem; }
  .app-shell .transfer-dashboard input[type='checkbox'] { min-height: 20px; height: 20px; }
  .app-shell .transfer-window-state { min-width: 0; }
  .app-shell .transfer-club-identity h2 { font-size: 1.5rem; overflow-wrap: anywhere; }
  .app-shell .transfer-finance-grid article { padding: 12px; }
  .app-shell .transfer-finance-grid article > strong { font-size: 1.25rem; overflow: visible; white-space: normal; }
  .app-shell .transfer-market-table { max-height: none; overflow: visible; }
  .app-shell .transfer-market-table > button { grid-template-columns: 44px minmax(0, 1fr) 40px; gap: 8px 10px; padding: 14px 10px; }
  .app-shell .transfer-player-copy strong { font-size: 1rem; white-space: normal; }
  .app-shell .transfer-market-table .transfer-market-value { grid-column: 2 / -1; grid-row: 2; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding-left: 8px; }
  .app-shell .transfer-market-value strong { font-size: 1.125rem; }
  .app-shell .transfer-market-value em { flex-basis: 100%; white-space: normal; }
  .app-shell :is(.transfer-filters, .transfer-offer-controls, .transfer-renewal-controls, .transfer-negotiation-actions) { grid-template-columns: minmax(0, 1fr); }
  .app-shell .transfer-negotiation-actions > .transfer-submit-offer { width: 100%; margin: 0; }
  .app-shell :is(.transfer-negotiation-values, .transfer-contract-impact) { grid-template-columns: minmax(0, 1fr); }
  .app-shell :is(.transfer-negotiation-values, .transfer-contract-impact) > span { border-right: 0; border-bottom: 1px solid var(--fmc-line); padding: 10px 12px; }
  .app-shell :is(.transfer-negotiation-values, .transfer-offer-summary, .transfer-renewal-costs, .transfer-contract-impact, .transfer-agent-demands) strong { font-size: 1rem; overflow: visible; white-space: normal; overflow-wrap: anywhere; }
  .app-shell :is(.transfer-offer-summary, .transfer-renewal-costs, .transfer-agent-demands) > span { min-width: 0; }
  .app-shell .transfer-contract-danger { grid-template-columns: minmax(0, 1fr); }
  .app-shell .transfer-club-player-copy strong { font-size: 1rem; white-space: normal; }
  .app-shell .transfer-club-player-facts strong { font-size: .875rem; white-space: normal; }
  .app-shell .transfer-club-player-action { font-size: .75rem; overflow-wrap: anywhere; }
  .app-shell .transfer-club-player-row { grid-template-columns: 44px minmax(0, 1fr) 52px; }
  .app-shell .transfer-club-player-copy { grid-column: 2; }
  .app-shell .transfer-club-player-facts { grid-column: 2 / -1; grid-row: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-shell .transfer-club-player-value { grid-column: 2; grid-row: 3; }
  .app-shell .transfer-club-player-rating { grid-column: 3; grid-row: 1; }
  .app-shell .transfer-club-player-action { grid-column: 3; grid-row: 3; padding: 9px 5px; white-space: normal; }
  .app-shell .transfer-dashboard :is(.transfer-contract-player, .transfer-contract-detail, .transfer-club-directory-copy) strong { font-size: .875rem; white-space: normal; }
  .app-shell .transfer-dashboard .transfer-contract-status { font-size: .75rem; white-space: normal; }
  .app-shell .transfer-contract-list article > button { grid-column: 1 / -1; grid-row: auto; min-height: 44px; width: 100%; padding: 10px; white-space: normal; }
  .app-shell .transfer-dashboard :is(.transfer-negotiation-player, .transfer-renewal-panel > header) { grid-template-columns: 48px minmax(0, 1fr) 44px; gap: 8px; padding: 12px; }
  .app-shell .transfer-dashboard :is(.transfer-negotiation-player, .transfer-renewal-panel > header) > button { width: 44px; height: 44px; }
  .app-shell .transfer-dashboard :is(.transfer-negotiation-player, .transfer-renewal-panel > header) .transfer-player-image { width: 46px; height: 52px; }
  .app-shell :is(.club-squad-meta, .club-squad-player-data) :is(small, strong), .app-shell .club-squad-actions button { font-size: .875rem; }
  .app-shell .club-squad-actions button { min-height: 44px; white-space: normal; }
  .app-shell .club-squad-list article > .club-squad-player-name > strong { font-size: 1rem; white-space: normal; }
  .app-shell .club-squad-player-name > small { font-size: .875rem; }
  .app-shell .club-squad-player-data strong { white-space: normal; overflow-wrap: anywhere; }
  .app-shell .club-squad-status { font-size: .75rem; }

  .app-shell .statistics-tabs button strong { font-size: .875rem; }
  .app-shell .statistics-tabs button small, .app-shell .statistics-header p { font-size: .75rem; }
  .app-shell :is(.stat-leaderboard, .season-records) :is(p, small) { font-size: .75rem; line-height: 1.45; }
  .app-shell :is(.live-workspace-tabs, .live-speed-controls) { display: flex; min-width: 0; overflow-x: auto; }
  .app-shell .live-workspace-tabs button { min-width: max-content; min-height: 48px; flex: 1 0 auto; padding: 10px; }
  .app-shell .live-workspace-tabs span { font-size: .875rem; }
  .app-shell .live-workspace button { min-height: 44px; font-size: .875rem; }
  .app-shell .live-lineups { grid-template-columns: minmax(0, 1fr); }
  .app-shell .live-lineup-column > header strong { font-size: 1rem; white-space: normal; }
  .app-shell .live-lineup-column :is(header small, .live-lineup-number) { font-size: .75rem; }
  .app-shell .live-lineup-column li { grid-template-columns: 20px minmax(0, 1fr) auto; gap: 8px; padding: 10px 8px; }
  .app-shell .live-lineup-player strong { font-size: .875rem; white-space: normal; }
  .app-shell .live-lineup-player small { display: block; font-size: .75rem; white-space: normal; }
  .app-shell .live-lineup-player small.individual-player-actions { font-size: .875rem; }
  .app-shell .live-lineup-ratings { grid-column: 2 / -1; justify-content: flex-end; }
  .app-shell :is(.live-lineup-rating, .live-match-rating) { min-width: 44px; min-height: 36px; font-size: 1rem; }
  .app-shell :is(.live-lineup-rating, .live-match-rating) small { font-size: .75rem; }
  .app-shell .live-statistics-panel article > span { font-size: .875rem; letter-spacing: 0; }
  .app-shell .substitution-formation { gap: 12px; padding: 12px 6px; }
  .app-shell .substitution-formation-row { gap: 4px; }
  .app-shell .substitution-formation-row > button { flex: 1 1 0; width: 0; min-width: 0; max-width: 110px; padding: 6px 3px; }
  .app-shell .substitution-position { position: static; font-size: .75rem; }
  .app-shell .substitution-formation button > span:nth-of-type(2) :is(strong, small) { font-size: .75rem; }
  .app-shell .substitution-player-data { flex-wrap: wrap; gap: 4px; }
  .app-shell .substitution-player-data b { min-width: 0; font-size: .875rem; }
  .app-shell .substitution-player-data b small { font-size: .75rem; }
  .app-shell .substitution-bench > div > button { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 12px; }
  .app-shell .substitution-bench button > span:first-child strong { font-size: 1rem; }
  .app-shell .substitution-bench button > span:first-child small, .app-shell .substitution-confirmation p { font-size: .875rem; }

  .app-shell :is(.match-preview-backdrop, .quick-result-backdrop) { padding: max(8px, env(safe-area-inset-top, 0px)) 8px max(8px, env(safe-area-inset-bottom, 0px)); }
  .app-shell :is(.match-preview, .quick-result-overlay) { max-height: calc(100dvh - 16px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); }
  .app-shell .match-preview-header { flex-shrink: 0; min-height: 0; padding: 12px; }
  .app-shell .match-preview-header h2 { font-size: 1.25rem; }
  .app-shell .match-preview-header > button { width: 44px; height: 44px; flex: 0 0 44px; }
  .app-shell .match-preview-versus { min-height: 0; padding: 10px; }
  .app-shell .match-preview-starting-eleven > span > span strong { font-size: .875rem; white-space: normal; }
  .app-shell .match-preview-starting-eleven > span > em { font-size: 1rem; }
  .app-shell .match-preview-bench > div { grid-template-columns: minmax(0, 1fr); }
  .app-shell .match-preview-bench .player-position-codes { position: static; }
  .app-shell .match-preview-bench > div > span { min-height: 44px; grid-template-columns: 56px minmax(0, 1fr) auto 28px; }
  .app-shell .match-preview-bench > div :is(strong, b) { font-size: .875rem; }
  .app-shell .match-preview > footer { margin: 0; padding: 10px; flex-shrink: 0; }
  .app-shell .match-preview > footer button { min-height: 44px; font-size: .875rem; }
  .app-shell :is(.match-preview, .quick-result-overlay) :is(small, p) { font-size: .75rem; line-height: 1.4; }
  .app-shell .quick-result-scorers :is(strong, b) { font-size: .875rem; }
  .app-shell .quick-result-effects article :is(strong, b) { font-size: .875rem; white-space: normal; }
  .app-shell .quick-result-overlay > button { min-height: 48px; font-size: .875rem; }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .app-shell *, .app-shell *::before, .app-shell *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
