/* Fixtures & results - day groups, a home | score-or-time | away row, and the
   calendar-kit menu (.cal-*) for per-fixture "Calendar" buttons. */
.fx { display: grid; gap: 10px; min-width: 0; }
.fx > * { min-width: 0; }
.fx-head { display: grid; gap: 2px; }
.fx-title { margin: 0; font-size: 1.15em; font-weight: 750; letter-spacing: -.012em; overflow-wrap: anywhere; }
.fx-zone { margin: 0; font-size: .82em; color: var(--e-ink-3); }
.fx-filter { max-width: 320px; }
.fx-stage { display: grid; gap: 14px; }
.fx-sec { display: grid; gap: 6px; }
.fx-sec-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; padding-bottom: 5px; border-bottom: 2px solid color-mix(in srgb, var(--e-accent) 35%, var(--e-line)); }
.fx-h { margin: 0; font-size: .78em; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; color: var(--e-accent-fg); }
.fx-all { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 2px 12px; font-size: .76em; border-radius: 999px; font-weight: 600; }
.fx-i { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.fx-sec-head .e-status { flex-basis: 100%; }
.fx-sec-head .e-status:empty { display: none; }
.fx-day { margin: 6px 0 0; font-size: .82em; font-weight: 700; color: var(--e-ink-2); }
.fx-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.fx-row { display: grid; gap: 6px; padding: 10px 12px; border: 1px solid var(--e-line); border-radius: var(--e-radius-sm); background: var(--e-bg); }
.fx-has-cal { grid-template-columns: 1fr auto; align-items: start; }
.fx-has-cal > .fx-teams, .fx-has-cal > .fx-meta { grid-column: 1; }
.fx-has-cal > .cal-wrap { display: contents; }
.fx-has-cal .cal-btn { grid-column: 2; grid-row: 1; align-self: center; }
.fx-has-cal .cal-menu { grid-column: 1 / -1; justify-self: end; }
.fx-has-cal .e-status { grid-column: 1 / -1; }
.fx-teams { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; }
.fx-team-n { font-weight: 650; color: var(--e-ink); overflow-wrap: anywhere; line-height: 1.25; }
.fx-home { text-align: right; }
.fx-win { font-weight: 800; }
.fx-mid { display: grid; justify-items: center; min-width: 64px; text-align: center; }
.fx-score span { padding: 3px 10px; border-radius: 8px; background: var(--e-surface-2); font-weight: 800; font-size: 1.05em; letter-spacing: .02em; font-variant-numeric: tabular-nums; color: var(--e-ink); white-space: nowrap; }
.fx-mid small { font-size: .72em; color: var(--e-ink-3); margin-top: 2px; }
.fx-ko span { font-weight: 750; font-size: .95em; color: var(--e-accent-fg); font-variant-numeric: tabular-nums; white-space: nowrap; }
.fx-flag { font-size: .74em; white-space: nowrap; }
.fx-meta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2px 10px; font-size: .78em; color: var(--e-ink-3); }
.fx-comp { font-weight: 650; color: var(--e-ink-2); }
.fx-res { font-size: .9em; }
.fx-none, .fx-more { margin: 0; font-size: .84em; color: var(--e-ink-3); }
.fx-foot { margin: 0; font-size: .78em; color: var(--e-ink-3); }

.cal-wrap { display: grid; gap: 6px; justify-items: start; }
.cal-btn { display: inline-flex; align-items: center; gap: 8px; }
.cal-btn svg { width: 15px; height: 15px; flex: none; }
.cal-btn.cal-small { min-height: 40px; padding: 2px 12px; font-size: .76em; border-radius: 999px; font-weight: 600; color: var(--e-accent-fg); background: transparent; border-color: var(--e-line); }
.cal-btn::after { content: ""; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.cal-btn[aria-expanded="true"]::after { transform: translateY(2px) rotate(-135deg); }
.cal-menu {
    list-style: none; margin: 0; padding: 5px; width: min(100%, 300px); display: grid; gap: 2px;
    background: var(--e-bg); border: 1px solid var(--e-line-strong); border-radius: var(--e-radius-sm);
    box-shadow: 0 8px 24px rgba(16, 22, 43, .12);
}
.cal-menu a, .cal-menu button {
    display: grid; gap: 1px; width: 100%; min-height: 42px; padding: 6px 10px; text-align: left; font: inherit; font-size: .88em;
    color: var(--e-ink); background: transparent; border: 0; border-radius: 8px; cursor: pointer; text-decoration: none;
}
.cal-menu small { font-size: .78em; color: var(--e-ink-3); }
.cal-menu a:hover, .cal-menu button:hover, .cal-menu a:focus, .cal-menu button:focus { background: var(--e-surface-2); outline: none; }
.cal-menu a:focus-visible, .cal-menu button:focus-visible { outline: 2px solid var(--e-focus); outline-offset: -2px; }
.fx .cal-wrap .e-status:empty { display: none; }

@media (max-width: 420px) {
    .fx-has-cal { grid-template-columns: 1fr; }
    .fx-has-cal .cal-btn { grid-column: 1; grid-row: auto; justify-self: center; }
    .fx-has-cal .cal-menu { justify-self: stretch; width: auto; }
    .fx-teams { gap: 6px; }
    .fx-mid { min-width: 54px; }
}
html[data-compact="1"] .fx-row { padding: 7px 9px; }
