/* ─── Estils interactius de controls compartits ───────────────────────────────
   Es carreguen DESPRÉS de tots els fitxers de component perquè els valors ctrl-* guanyin,
   seguint la cascada del monòlit v3 on aquestes regles eren a les línies 2248–2380
   (després de cada definició de component).

   Hover: mateix lavat que els camps de text (veure --filter-option-hover-bg a tokens.css);
   sense ombra ni escala (abans glow + ctrl-shadow-hover).
   ─────────────────────────────────────────────────────────────────────────── */

:is(
  .btn,
  .icon-btn,
  .today-btn,
  .filters-toggle,
  .chip,
  .day,
  .pill-action,
  .mini-select,
  .mini-year,
  .sidebar-pill-btn,
  .mobile-menu-btn
) {
  box-shadow: none;
}

:is(
  .btn,
  .icon-btn,
  .today-btn,
  .filters-toggle,
  .chip,
  .day,
  .mobile-menu-btn,
  .mini-select,
  .mini-year,
  .sidebar-pill-btn
):active {
  box-shadow: none;
  transform: none;
}

@media (hover: hover) and (pointer: fine) {
  :is(
    .btn:not(.btn-primary):not(.sidebar-close),
    .icon-btn,
    .today-btn,
    .mobile-menu-btn,
    .mini-select,
    .mini-year,
    .sidebar-pill-btn
  ):hover {
    background-color: var(--filter-option-hover-bg);
    box-shadow: none;
    transform: none;
  }
  /* .chip: exclòs — només a .button-bar.chips-bar; hover per tonalitat a filters.css (--chip-hover-wash) */
  /* Cel·la .day del graell mensual: hover de vora a filters.css (sense lavat de fons genèric aquí). */

  .pill-action:not(.primary):not(.pill-action--static):hover {
    background-color: var(--filter-option-hover-bg);
    box-shadow: none;
    transform: none;
  }

  /*
   * Després del :hover genèric de .chip: capa del segment actiu per sobre dels veïns
   * (filters.css posa z-index als segments; aquesta regla carrega després i el reforça).
   */
  .button-bar > :is(button, select, a):hover {
    position: relative;
    z-index: 9;
  }
}

/* ── Model «actiu» de .programa-col-toggle (programa.css, barra Tiratge/Autor/Cobla/Detalls) ──
   Estat de referència [aria-pressed="true"]: colors concrets a programa.css amb
   --programa-accent* (rosat fix, desacoblat del primari global).
   Documentació històrica del patró genèric de controls:
     · fons    → --actionable-active   (16% primari sobre card)
     · text    → --color-primary-strong
     · hover   → fons --filter-option-hover-bg (30% primari) + text --color-primary-strong
   Exclòs: calendari (.icon-btn, .today-btn, .mini-select, .mini-year) — unificat amb la sidebar;
   .btn-primary; .filters-toggle (mòbil, primari). */

/* Repòs · controls secundaris fora de sidebar (cf. barra programa inactiu/actiu).
   .sidebar-close exclòs: el pill «Tancar» té patró propi a sota. */
.btn:not(.btn-primary):not(.filters-toggle):not(.sidebar-close),
.sidebar-pill-btn,
.footer-social-btn,
a.pill-action.pill-action--static {
  background-color: var(--actionable-active);
  color: var(--color-primary-strong);
}

/* Calendari (icona, avui/demà, mes/any): mateix aspecte a tot arreu que a la sidebar de filtres */
.icon-btn,
.today-btn,
.mini-select,
.mini-year {
  background-color: var(--actionable-wash);
  color: var(--text-strong);
}

/* .pill-action no estàtic (Programa / Mapa / etc., catàleg i agenda):
 * text granat + mateix lavat actiu en repòs. El hover (a results.css)
 * canvia el bg a --filter-option-hover-bg. */
.pill-action:not(.primary):not(.pill-action--static),
.pill-action[data-action="programa"],
.pill-action[data-action="mapa"],
.pill-action.pill-action--particelles,
.pill-action.pill-action--radio-history {
  background-color: var(--actionable-active);
  color: var(--color-primary-strong);
}

/* Hover · controls actius — sense calendari (lavat al primer bloc; text --text-strong) */
@media (hover: hover) and (pointer: fine) {
  :is(
    .btn:not(.btn-primary):not(.filters-toggle):not(.sidebar-close),
    .sidebar-pill-btn,
    .footer-social-btn,
    a.pill-action.pill-action--static
  ):hover {
    color: var(--color-primary-strong);
  }

  .pill-action:not(.primary):not(.pill-action--static):hover {
    color: var(--color-primary-strong);
  }
}

:is(
  .btn,
  .icon-btn,
  .today-btn,
  .filters-toggle,
  .chip,
  .day,
  .mobile-menu-btn,
  .mini-select,
  .mini-year,
  .sidebar-pill-btn
) {
  transition: var(--ctrl-transition);
}

/* ── Botó «Tancar» (.btn.btn-ghost.sidebar-close) ────────────────────────────
 * Píndola sòlida de primari fort + text card; fora de @media mòbil perquè
 * modal, overlay del peu, programa (escriptori) i subnav reben el mateix
 * aspecte. Vèncer topbar (.btn.btn-ghost) i el blocs de dalt sense :not. */
.btn.btn-ghost.sidebar-close,
a.btn.btn-ghost.sidebar-close {
  background: var(--color-primary-strong);
  border-color: var(--ui-overlay-subtle);
  color: var(--card);
}

@media (hover: hover) and (pointer: fine) {
  .btn.btn-ghost.sidebar-close:hover,
  a.btn.btn-ghost.sidebar-close:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
  }
}

.btn.btn-ghost.sidebar-close:focus-visible,
a.btn.btn-ghost.sidebar-close:focus-visible {
  outline: none;
  box-shadow: var(--focus);
}
