/* Shared section tabs: same sizing and states for links and buttons. */
:is(.ranking-tabs, .player-tabs, .comparison-tabs, .favorites-tabs, .weekly-tabs) {
    display: flex;
    gap: 8px;
    max-width: 780px;
    margin: 0 auto 24px;
}
:is(.favorites-tabs, .weekly-tabs)[hidden] { display: none; }
:is(.ranking-tab, .player-tab, .comparison-tab, .favorites-tabs button, .weekly-tab) {
    --control-accent: var(--modality-accent);
    flex: 1 1 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 48px;
    padding: 10px 12px;
    border: 2px solid var(--control-accent);
    border-radius: 6px;
    background: #fff;
    color: var(--control-accent);
    font: inherit;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}
:is(.player-tab--mcr, .club-tab--mcr, .comparison-tab:not(.comparison-tab--riichi), .favorites-tabs button[data-favorites-mode=mcr], .weekly-tab:not(.weekly-tab--riichi)) { --control-accent: var(--mcr-green); }
:is(.player-tab--riichi, .club-tab--riichi, .comparison-tab--riichi, .favorites-tabs button[data-favorites-mode=riichi], .weekly-tab--riichi) { --control-accent: var(--riichi-red); }
:is(.ranking-tab, .player-tab, .comparison-tab, .favorites-tabs button, .weekly-tab):hover { background: #f3f3f3; color: var(--control-accent); }
:is(.ranking-tab, .player-tab, .comparison-tab, .favorites-tabs button, .weekly-tab):is(.is-active, [aria-selected=true], [aria-current]) {
    background: var(--control-accent);
    color: #fff;
}
:is(.ranking-tab, .player-tab, .comparison-tab, .favorites-tabs button, .weekly-tab):active { box-shadow: inset 0 0 0 2px currentColor; }

/* Primary actions share geometry with secondary and toggle buttons. */
:is(.player-filters button, .comparison-form button, .club-monthly-controls button, .favorite-button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 10px 16px;
    border: 2px solid var(--modality-accent);
    border-radius: 6px;
    background: var(--modality-accent);
    color: #fff;
    font: inherit;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
}
button.favorite-button { border-color: #666; background: #fff; color: #444; }
.favorite-button[aria-pressed=true] { border-color: var(--modality-accent); color: var(--modality-accent); background: var(--modality-surface); }
:is(.player-filters button, .comparison-form button, .club-monthly-controls button):hover { filter: brightness(.9); }
.favorite-button:hover { background: #f3f3f3; }
:is(.player-filters button, .comparison-form button, .club-monthly-controls button, .favorite-button):active { box-shadow: inset 0 0 0 2px currentColor; }
:is(.ranking-tab, .player-tab, .comparison-tab, .favorites-tabs button, .weekly-tab, .player-filters button, .comparison-form button, .club-monthly-controls button, .favorite-button):focus-visible {
    outline: 3px solid #0d6efd;
    outline-offset: 3px;
}
:is(.player-filters button, .comparison-form button, .club-monthly-controls button, .favorite-button):disabled { opacity: .55; cursor: not-allowed; filter: none; }
@media (max-width: 575.98px) {
    :is(.ranking-tab, .player-tab, .comparison-tab, .favorites-tabs button, .weekly-tab) { padding: 10px 4px; font-size: .875rem; }
    .ranking-tab { font-size: .8125rem; }
}
.favorite-button[hidden] { display: none; }

/* Decoración común; cada formulario conserva su tamaño y distribución. */
.player-filters select, .comparison-form select, .comparison-form input:not([type=hidden]) {
    border: 1px solid #777;
    border-radius: 6px;
}
