﻿/* =====================================================
   results.css â€” taula, cal-mini, lloc, cobla, accions
   ===================================================== */

/* Ressalt de la cerca global (topbar `q`) dins de les cel·les de resultats */
mark.global-search-highlight {
  background: rgba(255, 237, 0, 0.88);
  color: inherit;
  font: inherit;
  padding: 0 0.02em;
  border-radius: 2px;
  box-decoration-break: clone;
}

.no-top-margin {
  margin-top: 0;
}

.cal-mini svg,
.cal-mini svg * {
  fill: currentColor;
  stroke: currentColor;
}

/* ----- Chips de filtres actius (dins .results-header; sense bloc separat) ----- */

.active-filters-chips {
  flex-basis: 100%;
  width: 100%;
  margin: 0;
  padding: var(--space-2) 0 0;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: thin;
  border: none;
  background: transparent;
}

.active-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  max-width: 100%;
  padding: 3px 6px 3px 8px;
  border-radius: var(--radius-chip);
  background: color-mix(in srgb, rgb(var(--color-primary-rgb)) 10%, var(--card));
  border: 1px solid color-mix(in srgb, rgb(var(--color-primary-rgb)) 22%, var(--card));
  font-family: var(--font-ui);
  font-size: var(--font-sm);
  line-height: 1.35;
  color: var(--ink);
  transition: background 0.12s ease, border-color 0.12s ease;
}

.active-filter-chip:hover {
  background: color-mix(in srgb, rgb(var(--color-primary-rgb)) 16%, var(--card));
}

.active-filter-chip--global {
  background: color-mix(in srgb, rgb(var(--color-primary-rgb)) 18%, var(--card));
  border-color: color-mix(in srgb, rgb(var(--color-primary-rgb)) 34%, var(--card));
}

.active-filter-chip--global:hover {
  background: color-mix(in srgb, rgb(var(--color-primary-rgb)) 24%, var(--card));
}

.active-filter-chip__label {
  font-weight: 700;
  color: var(--color-primary-strong);
  white-space: nowrap;
  flex-shrink: 0;
}

.active-filter-chip__value {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

.active-filter-chip__remove {
  all: unset;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-left: 2px;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  color: rgba(var(--chip-icon-rgb), 0.72);
  cursor: pointer;
  transition: background 0.1s ease, color 0.1s ease;
}

.active-filter-chip__remove:hover {
  background: rgba(var(--ink-rgb), 0.1);
  color: var(--ink);
}

.active-filter-chip__remove:focus-visible {
  outline: 2px solid rgba(var(--color-form-focus-rgb), 0.64);
  outline-offset: 1px;
}

/* ----- Filera de filter chips d'agenda (data + tipus d'activitat) ----- */

.agenda-filter-chips {
  flex-basis: 100%;
  width: 100%;
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 6px;
  padding: var(--space-2) 0 0;
  margin: 0;
}

.agenda-filter-chip {
  all: unset;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: var(--radius-lg);
  font-family: var(--font-ui);
  font-size: var(--font-sm);
  font-weight: 800;
  line-height: 1.35;
  text-transform: lowercase;
  cursor: pointer;
  user-select: none;
  transition:
    background 0.12s ease,
    border-color 0.12s ease,
    color 0.12s ease,
    opacity 0.12s ease,
    filter 0.12s ease;
  box-sizing: border-box;
  border: 1px solid var(--actionable-line);
  background: var(--actionable-wash);
  color: var(--ink);
}

.agenda-filter-chip--date {
  cursor: default;
  font-weight: 700;
  text-transform: none;
  color: var(--text-strong);
  background: color-mix(in srgb, rgb(var(--color-primary-rgb)) 8%, var(--card));
  border-color: color-mix(in srgb, rgb(var(--color-primary-rgb)) 22%, var(--card));
}

.agenda-filter-chip--date.agenda-filter-chip--empty {
  color: var(--muted);
}

@media (max-width: 1400px) {
  .agenda-filter-chip--date {
    cursor: pointer;
  }
  .agenda-filter-chip--date:hover {
    background: color-mix(in srgb, rgb(var(--color-primary-rgb)) 14%, var(--card));
  }
}

.agenda-filter-chip--type {
  --afc-color-rgb: var(--color-primary-rgb);
}

.agenda-filter-chip--type.type-ballada { --afc-color-rgb: var(--color-ballada-rgb); }
.agenda-filter-chip--type.type-concert { --afc-color-rgb: var(--color-concert-rgb); }
.agenda-filter-chip--type.type-aplec   { --afc-color-rgb: var(--color-aplec-rgb); }
.agenda-filter-chip--type.type-concurs { --afc-color-rgb: var(--color-concurs-rgb); }
.agenda-filter-chip--type.type-curset  { --afc-color-rgb: var(--color-curset-rgb); }
.agenda-filter-chip--type.type-altres  { --afc-color-rgb: var(--color-altres-rgb); }

.agenda-filter-chip--type.on {
  color: rgb(var(--afc-color-rgb));
  background: color-mix(in srgb, rgb(var(--afc-color-rgb)) 10%, white);
  border-color: rgba(var(--afc-color-rgb), var(--opacity-50));
}

.agenda-filter-chip--type.on:hover {
  background: color-mix(in srgb, rgb(var(--afc-color-rgb)) 16%, white);
}

.agenda-filter-chip--type:not(.on) {
  color: rgba(var(--chip-icon-rgb), var(--opacity-40));
  opacity: 0.75;
  filter: grayscale(0.3) saturate(0.5);
}

.agenda-filter-chip--type:not(.on):hover {
  opacity: 0.85;
  filter: grayscale(0.2) saturate(0.7);
  border-color: var(--actionable-border);
}

.agenda-filter-chip--type:active {
  transform: translateY(1px);
}

/* ----- Embolcall de resultats ----- */

.results-header {
  padding: 11px 14px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  border-bottom: 1px solid var(--border-subtle);
  background: var(--card);
  position: sticky;
  top: var(--topbar-height, 72px);
  z-index: 4;
}


.results-count {
  font-family: var(--font-ui);
  font-weight: 900;
  font-size: var(--font-md);
  color: var(--color-primary-strong);
  letter-spacing: 0.2px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Ressalt groc de la part «actius /» als badges de taules (`.table-count-badge`)
   quan el recompte filtrat és menor que el total del snapshot. Hereta el
   font-weight del badge (p. ex. 800 al megamenu). */
.count-active {
  color: var(--color-count-active);
}

/* Mòduls de taula BD + estadístiques: comptador + export Excel (mateixa filera) */
.db-section .results-header-end,
#section-estadistiques .results-header-end {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
}

.db-section .taules-export-excel,
#section-estadistiques .taules-export-excel {
  min-width: 44px;
  min-height: 44px;
  padding: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Tooltip «fancy» per a l’export Excel (hover o focus al botó) */
.db-section .taules-export-tooltip-wrap,
#section-estadistiques .taules-export-tooltip-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.db-section .taules-export-tooltip,
#section-estadistiques .taules-export-tooltip {
  position: absolute;
  right: 0;
  bottom: calc(100% + 12px);
  width: min(300px, 78vw);
  padding: 12px 14px;
  font-size: var(--font-xs);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.01em;
  color: var(--text-strong);
  pointer-events: none;
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity 0.22s ease,
    transform 0.22s ease;
  z-index: 30;
  border-radius: var(--radius-lg);
  background:
    linear-gradient(var(--card), var(--card)) padding-box,
    linear-gradient(135deg, rgb(var(--color-primary-rgb) / 0.95), rgb(var(--color-accent-rgb) / 0.75)) border-box;
  border: 1px solid transparent;
  box-shadow:
    0 4px 6px rgb(var(--shadow-rgb) / 0.06),
    0 18px 40px rgb(var(--shadow-rgb) / 0.18);
}

.db-section .taules-export-tooltip::after,
#section-estadistiques .taules-export-tooltip::after {
  content: '';
  position: absolute;
  right: 18px;
  bottom: -6px;
  width: 12px;
  height: 12px;
  background: var(--card);
  border-right: 1px solid rgb(var(--color-primary-rgb) / 0.45);
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / 0.45);
  transform: rotate(45deg);
  box-shadow: 2px 2px 4px rgb(var(--shadow-rgb) / 0.08);
}

.db-section .taules-export-tooltip-wrap:hover .taules-export-tooltip,
.db-section .taules-export-tooltip-wrap:focus-within .taules-export-tooltip,
#section-estadistiques .taules-export-tooltip-wrap:hover .taules-export-tooltip,
#section-estadistiques .taules-export-tooltip-wrap:focus-within .taules-export-tooltip {
  opacity: 1;
  transform: translateY(0);
}

/* ----- Fil d'Ariadna (breadcrumb) ----- */

.results-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 5px;
  font-family: var(--font-ui);
  font-weight: 900;
  font-size: var(--font-results-card-title);
  line-height: 1.35;
  letter-spacing: 0.2px;
  min-width: 0;
  flex: 1;
}

.results-breadcrumb .bc-section {
  color: var(--color-primary-strong);
  white-space: nowrap;
}

.results-breadcrumb .bc-sep {
  color: var(--muted);
  flex-shrink: 0;
}

.results-breadcrumb .bc-sub {
  color: var(--muted);
}

.results-breadcrumb .bc-sub-crumb-link {
  color: var(--color-primary-strong);
  text-decoration: underline;
  font-weight: inherit;
}

/* ----- Embolcall de taula + taula base ----- */

.table-wrap {
  padding: 0 10px 10px;
}

table {
  border-collapse: separate;
  border-spacing: 0;
  background: var(--cal-soft, var(--card));
  table-layout: auto;
}

col.col-day {
  width: 70px;
}

col.col-time {
  min-width: 70px;
}

thead th {
  /* Mateix fons i vora que `.input` (`filters.css`): caixa tancada + separadors entre columnes */
  background: var(--actionable-wash);
  border-top: 1px solid var(--actionable-line);
  border-bottom: 1px solid var(--actionable-line);
  border-left: 1px solid var(--actionable-line);
  font-size: var(--font-xs);
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 900;
  padding: 10px 12px;
  vertical-align: top;
  user-select: none;
  position: sticky;
  top: calc(var(--topbar-height, 72px) + var(--results-header-h, 46px));
  z-index: 3;
}

thead th:last-child {
  border-right: 1px solid var(--actionable-line);
}


/* Oculta la fila de capçalera quan és buida (mentre la meta del servidor no ha carregat) */
.db-section .results-table thead tr:empty {
  display: none;
}

.db-section .results-table col,
#section-estadistiques .results-table col {
  min-width: 0;
}

/* Mòduls BD + estadístiques (evolució): redimensionament de columnes */
.db-section .results-table[data-col-resize='1'],
#section-estadistiques .results-table[data-col-resize='1'] {
  table-layout: fixed;
}

.db-section .results-table[data-col-resize='1'] .taules-th-resize-handle,
#section-estadistiques .results-table[data-col-resize='1'] .taules-th-resize-handle {
  position: absolute;
  top: 42%;
  right: 0;
  width: 10px;
  margin-right: -5px;
  height: 58%;
  min-height: 20px;
  cursor: col-resize;
  user-select: none;
  touch-action: none;
  z-index: 4;
  box-sizing: border-box;
}

.db-section .results-table[data-col-resize='1'] .taules-th-resize-handle:hover,
.db-section .results-table[data-col-resize='1'] .taules-th-resize-handle:focus-visible,
#section-estadistiques .results-table[data-col-resize='1'] .taules-th-resize-handle:hover,
#section-estadistiques .results-table[data-col-resize='1'] .taules-th-resize-handle:focus-visible {
  background: color-mix(in srgb, var(--color-primary) 22%, transparent);
}

/* Mòduls BD: columnes iguals (≤1630px) — quan JS posa data-taules-equal-cols="1",
   table-layout: fixed garanteix que els percentatges 1/N als <col> es respectin
   sense que el motor recalculi per max-content. */
.db-section .results-table[data-taules-equal-cols='1'] {
  table-layout: fixed;
}

/* ≤1630px (--breakpoint-taules-fluid): font reduït + handles de resize amagats.
   Les amplades de <col> (1/N igual per totes) i el col-resize es gestionen via
   matchMedia al JS (onMqFluidChange → syncColWidths). */
@media (max-width: 1630px) {
  .db-section .results-table th,
  .db-section .results-table td,
  #section-estadistiques .results-table th,
  #section-estadistiques .results-table td {
    font-size: 10px;
  }

  .db-section .results-table[data-col-resize='1'] .taules-th-resize-handle,
  #section-estadistiques .results-table[data-col-resize='1'] .taules-th-resize-handle {
    display: none;
    pointer-events: none;
  }
}

/* Guia + HUD d’amplada: estils en línia des de taules.col-resize.js (evita conflictes de capa). */

body.taules-col-resize-active {
  cursor: col-resize !important;
  user-select: none;
}

/* Mòduls BD + estadístiques: aire lateral de capçalera = 1/3 del padding global de thead th (12px → 4px) */
.db-section thead th,
#section-estadistiques .estadistiques-table thead th {
  padding-left: 4px;
  padding-right: 4px;
  /* Permet que columnes amb etiqueta llarga cedeixin amplada (sense això el min-content del th fixa massa) */
  min-width: 0;
}

/* Scroll infinit: element observat sota la taula */
.db-section .taules-scroll-sentinel,
#section-estadistiques .taules-scroll-sentinel {
  height: 1px;
  margin-bottom: var(--space-2);
  pointer-events: none;
}

.db-section .taules-scroll-sentinel--loading,
#section-estadistiques .taules-scroll-sentinel--loading {
  min-height: 32px;
  height: auto;
}

.db-section .taules-scroll-sentinel--loading::after,
#section-estadistiques .taules-scroll-sentinel--loading::after {
  content: 'Carregant més…';
  display: block;
  font-size: var(--font-sm);
  color: var(--muted);
  padding: var(--space-2) 10px;
}

/* Catàleg + mòduls BD + estadístiques (inline): mateixa estètica de capçaleres ordenables */
#section-cataleg .sortable-th-inner,
.db-section .sortable-th-inner:not(.sortable-th-inner--stacked),
.estadistiques-results-scoped .sortable-th-inner:not(.sortable-th-inner--stacked) {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 2px;
  width: 100%;
  min-width: 0;
}

/* Mòduls BD + estadístiques: fila superior ▲▼ a la dreta, fila inferior etiqueta a l'esquerra */
.db-section .sortable-th-inner--stacked,
.estadistiques-results-scoped .sortable-th-inner--stacked {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  width: 100%;
  min-width: 0;
}

.db-section .sortable-th-inner--stacked .sortable-th-row,
.estadistiques-results-scoped .sortable-th-inner--stacked .sortable-th-row {
  margin: 0;
  padding: 0;
  min-width: 0;
}

.db-section .sortable-th-inner--stacked .sortable-th-row-btns,
.estadistiques-results-scoped .sortable-th-inner--stacked .sortable-th-row-btns {
  display: flex;
  justify-content: flex-end;
  width: 100%;
}

.db-section .sortable-th-inner--stacked .sortable-th-row-label,
.estadistiques-results-scoped .sortable-th-inner--stacked .sortable-th-row-label {
  text-align: left;
  width: 100%;
}

.db-section .sortable-th-inner--stacked .sortable-th-label,
.estadistiques-results-scoped .sortable-th-inner--stacked .sortable-th-label {
  display: block;
  overflow-wrap: anywhere;
  word-break: break-word;
}

#section-cataleg .sortable-th-label,
.db-section .sortable-th-label,
.estadistiques-results-scoped .sortable-th-label {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  flex: 0 1 auto;
  min-width: 0;
}

#section-cataleg .sortable-th-btns,
.db-section .sortable-th-btns,
.estadistiques-results-scoped .sortable-th-btns {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
}

#section-cataleg .sort-btn,
.db-section .sort-btn,
.estadistiques-results-scoped .sort-btn {
  display: block;
  font-size: var(--font-base);
  line-height: 1;
  padding: 0;
  min-width: 0;
  min-height: 0;
  margin: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  opacity: 0.5;
}

#section-cataleg .sort-btn:hover,
.db-section .sort-btn:hover,
.estadistiques-results-scoped .sort-btn:hover {
  opacity: 1;
  color: var(--text-strong);
  background: transparent;
}

#section-cataleg .sort-btn.is-active,
.db-section .sort-btn.is-active,
.estadistiques-results-scoped .sort-btn.is-active {
  opacity: 1;
  color: var(--color-primary);
  background: transparent;
  font-weight: 900;
}

/* Mode Â«TÃ­tol i autorÂ»: sense subfila ni botons dâ€™ordenaciÃ³ a la capÃ§alera */
#section-cataleg[data-mostrar="titol-autor"] .sortable-th-btns {
  display: none;
}

.th-cobles-short {
  display: none;
}

.th-place-combined {
  display: none;
}

/* Contingut de cobla clonat dins col-place per a la vista <521px (ocultat per defecte) */
.cobla-inline {
  display: none;
}

tbody td {
  border-bottom: 1px solid var(--line-strong);
  padding: 8px 10px;
  vertical-align: top;
  font-size: var(--font-md);
  line-height: 1.18;
  overflow-wrap: anywhere;
  word-break: break-word;
}

td.col-cobla {
  position: relative;
  padding-bottom: 50px;
}

.cobla-name {
  font-weight: 700;
  font-family: var(--font-ui);
  letter-spacing: 0.2px;
  color: var(--text-strong);
  /* Mateixa mida que tbody td (incl. ≤1400px → --font-sm) */
  font-size: inherit;
}

td.col-cobla .cobla-actions {
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: calc(100% - 20px);
  display: flex;
  justify-content: flex-end;
  pointer-events: none;
}

td.col-cobla .cobla-actions .actions {
  pointer-events: auto;
}

th.col-day,
td.col-day {
  width: 70px;
}

td.col-day,
td.col-time {
  vertical-align: top;
}

#section-agenda td.col-day {
  padding-top: 3px;
  padding-bottom: 3px;
  padding-left: 10px;
  padding-right: 10px;
}

/* ----- cal-mini component ----- */

.cal-mini {
  width: 70px;
  border-radius: 0;
  border: 0;
  overflow: hidden;
  background: var(--card);
  cursor: default;
  box-shadow: none;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Data (setmana, dia, mes/any): damunt del tipus; hereta el tint del .cal-mini */
.cal-mini-date {
  background: transparent;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.cal-mini .top {
  color: var(--cal-main);
  font-family: var(--font-ui);
  font-weight: 900;
  font-size: calc(var(--font-xs) - 2px);
  padding: 4px 6px;
  line-height: 1;
  text-transform: lowercase;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  text-align: center;
  flex-wrap: wrap;
  margin-top: 0;
  flex-shrink: 0;
  background: transparent;
  border-top: 1px solid var(--cal-stripe-bg);
}

.cal-mini .top .type-ico svg,
.cal-mini .top .type-ico svg * {
  width: 12px;
  height: 12px;
  display: block;
  fill: currentColor;
  stroke: currentColor;
}

.cal-mini .wkrow {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0;
  padding-top: 5px;
}

.cal-mini .wk {
  display: inline-block;
  font-size: calc(var(--font-xs) - 2px);
  line-height: 1;
  color: var(--muted);
  font-weight: 900;
  font-family: var(--font-ui);
  letter-spacing: 0.02em;
}

.cal-mini .mid {
  display: inline-block;
  font-family: var(--font-ui);
  font-weight: 900;
  font-size: 20px;
  line-height: 1;
  color: var(--text-strong);
}

.cal-mini .top .type-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.cal-mini .top .type-txt {
  display: inline-block;
  white-space: nowrap;
  word-break: break-word;
  line-height: 1.05;
  max-width: 54px;
}

.cal-mini .bot {
  padding: 0 4px 3px;
  text-align: center;
  font-family: var(--font-ui);
  font-weight: 900;
  font-size: calc(var(--font-xs) - 2px);
  line-height: 1;
  color: var(--muted);
  letter-spacing: 0.02em;
}

/* Un sol to clar: el tint ve del .cal-mini; sense segona capa sobre wkrow/bot */
.cal-mini .wkrow,
.cal-mini .bot {
  background: transparent;
}

/*
 * Tokens per tipus: tint del requadre (--opacity-10), lÃ­nia entre data i tipus (--cal-stripe-bg),
 * color sÃ²lid per icona i text (--cal-main).
 */
.cal-mini.type-ballada {
  --cal-main: rgb(var(--color-ballada-rgb));
  --cal-soft: color-mix(in srgb, rgb(var(--color-ballada-rgb)) 10%, white);
  --cal-stripe-bg: color-mix(in srgb, rgb(var(--color-ballada-rgb)) 20%, white);
  background: color-mix(in srgb, rgb(var(--color-ballada-rgb)) 10%, white);
}

.cal-mini.type-curset {
  --cal-main: rgb(var(--color-curset-rgb));
  --cal-soft: color-mix(in srgb, rgb(var(--color-curset-rgb)) 10%, white);
  --cal-stripe-bg: color-mix(in srgb, rgb(var(--color-curset-rgb)) 20%, white);
  background: color-mix(in srgb, rgb(var(--color-curset-rgb)) 10%, white);
}

.cal-mini.type-concert {
  --cal-main: rgb(var(--color-concert-rgb));
  --cal-soft: color-mix(in srgb, rgb(var(--color-concert-rgb)) 10%, white);
  --cal-stripe-bg: color-mix(in srgb, rgb(var(--color-concert-rgb)) 20%, white);
  background: color-mix(in srgb, rgb(var(--color-concert-rgb)) 10%, white);
}

.cal-mini.type-concurs {
  --cal-main: rgb(var(--color-concurs-rgb));
  --cal-soft: color-mix(in srgb, rgb(var(--color-concurs-rgb)) 10%, white);
  --cal-stripe-bg: color-mix(in srgb, rgb(var(--color-concurs-rgb)) 20%, white);
  background: color-mix(in srgb, rgb(var(--color-concurs-rgb)) 10%, white);
}

.cal-mini.type-aplec {
  --cal-main: rgb(var(--color-aplec-rgb));
  --cal-soft: color-mix(in srgb, rgb(var(--color-aplec-rgb)) 10%, white);
  --cal-stripe-bg: color-mix(in srgb, rgb(var(--color-aplec-rgb)) 20%, white);
  background: color-mix(in srgb, rgb(var(--color-aplec-rgb)) 10%, white);
}

.cal-mini.type-altres {
  --cal-main: rgb(var(--color-altres-rgb));
  --cal-soft: color-mix(in srgb, rgb(var(--color-altres-rgb)) 10%, white);
  --cal-stripe-bg: color-mix(in srgb, rgb(var(--color-altres-rgb)) 20%, white);
  background: color-mix(in srgb, rgb(var(--color-altres-rgb)) 10%, white);
}

/*
 * Agenda (â‰¥521px): cal-mini absolut amb inset 3px dalt i 10px baix respecte a la fila; zona de data
 * amb flex; tipus a la base amb el mateix fons tintat. Padding vertical del td aquÃ­ a 0 per no sumar amb lâ€™inset.
 */
@media (min-width: 521px) {
  #section-agenda td.col-day {
    position: relative;
    vertical-align: top;
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 10px;
    padding-right: 10px;
  }

  #section-agenda td.col-day .cal-mini {
    position: absolute;
    left: 50%;
    margin-left: -35px;
    top: 3px;
    bottom: 10px;
    width: 70px;
    max-width: 70px;
    min-width: 70px;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  #section-agenda .cal-mini-date {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    min-height: 0;
  }

  #section-agenda .cal-mini .top {
    flex: 0 0 auto;
    align-self: stretch;
    margin-top: 0;
    flex-wrap: nowrap;
  }

  /* Amplada prefixada de la columna Hora (taula amb comportament normal) */
  #section-agenda col.col-time {
    width: 70px;
    min-width: 70px;
  }

  #section-agenda .results-table td.col-time {
    width: 70px;
    min-width: 70px;
    max-width: 70px;
    box-sizing: border-box;
  }
}

/* ----- Camps d'hora ----- */

.time-field {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 0;
  min-width: 48px;
  font-weight: 900;
  font-family: var(--font-ui);
  font-size: inherit;
  line-height: 1.12;
  color: var(--ink);
  letter-spacing: 0.2px;
}

.time-in-day {
  display: none;
  margin-top: 8px;
  font-weight: 900;
  font-family: var(--font-ui);
  font-size: inherit;
  line-height: 1.12;
  color: var(--ink);
  letter-spacing: 0.2px;
  text-align: center;
  white-space: nowrap;
}

/* ----- CelÂ·la de lloc ----- */

.place {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  line-height: 1.12;
}

.place .title {
  font-weight: 900;
  font-family: var(--font-ui);
  letter-spacing: 0.2px;
  font-size: inherit;
}

/* CatÃ leg (sardanes): el tÃ­tol va en color primari; la resta de .place .title (agenda) sense canvi */
#section-cataleg td.col-titol .place .title {
  color: var(--color-primary-strong);
}

/* CatÃ leg (autors): columna Â«NomÂ» en color primari */
#section-cataleg td.col-nom .place .title {
  color: var(--color-primary-strong);
}

#section-cataleg th.col-mes_info,
#section-cataleg td.col-mes_info {
  text-align: right;
}

.place .sub {
  font-size: calc(var(--font-base) - 2px);
  color: var(--muted);
  font-weight: 600;
}

/* ----- CelÂ·la de cobla ----- */

.cobla {
  font-weight: 700;
  color: var(--text-strong);
}

/* ----- Indicador Â«suspÃ¨sÂ» ----- */

.flag-suspes {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  border-radius: var(--radius-sm);
  padding: 6px 9px;
  font-weight: 900;
  font-family: var(--font-ui);
  font-size: calc(var(--font-base) - 2px);
  border: 1px solid rgba(239, 68, 68, var(--opacity-30));
  background: rgba(239, 68, 68, var(--opacity-10));
  color: #5a1111;
  white-space: nowrap;
  margin-left: 10px;
}

.flag-suspes svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
}

/* ----- Accions / pill-action (mateixa famÃ­lia que .today-btn al sidebar d'agenda) ----- */

.actions {
  position: relative;
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  overflow: visible;
  padding-right: 2px;
}

/*
 * Barra segmentada unificada (filters.css .button-bar): sense gap entre segments,
 * vores compartides i cantonades nomÃ©s als extrems. Sobreescriu .actions { gap }.
 */
.actions.button-bar {
  gap: 0;
  background: transparent;
  display: inline-flex;
  align-items: stretch;
  justify-content: flex-end;
  box-shadow: none;
  transition: var(--ctrl-transition);
}
.actions.button-bar > .pill-action + .pill-action {
  margin-left: -1px;
}

/* Abans es posava box-shadow:none als fills per no duplicar amb la barra; el contenidor ja no té ombra. */

.pill-action {
  position: relative;
  height: var(--ctrl-min-height);
  width: var(--ctrl-min-height);
  border-radius: var(--ctrl-radius);
  border: 1px solid var(--actionable-line);
  background: var(--actionable-wash);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-family: var(--font-ui);
  overflow: hidden;
  white-space: nowrap;
  transform-origin: right center;
  transition:
    width 0.8s cubic-bezier(0.2, 0.9, 0.2, 1),
    border-color 0.14s ease,
    transform 0.06s ease,
    box-shadow 0.12s ease,
    background 0.12s ease;
  padding-left: 9px;
  padding-right: 9px;
  z-index: 2;
  will-change: width;
  box-sizing: border-box;
  box-shadow: var(--ctrl-shadow-rest);
}

/*
 * No posar fill al <svg>: heretat als path i tapa fill="none" / traÃ§os (Programa, etc.).
 * Color + fill explÃ­cit per path.
 */
.pill-action svg {
  width: 16px;
  height: 16px;
  color: var(--ink);
  opacity: 0.92;
  flex: 0 0 auto;
  display: block;
}

.pill-action svg path[fill="none"] {
  fill: none;
  stroke: currentColor;
}

.pill-action svg path:not([fill="none"]) {
  fill: currentColor;
}

/*
 * Programa / Copiar enllaÃ§: mateixa mida colÂ·lapsada.
 * La icona es centra visualment via padding-left calculat (no justify-content:center,
 * perquÃ¨ .txt â€”invisible perÃ² present en el flux flexâ€” desplaÃ§aria la icona fora del botÃ³).
 */
.pill-action[data-action="programa"],
.pill-action[data-action="mapa"] {
  width: var(--ctrl-min-height);
  height: var(--ctrl-min-height);
  min-width: var(--ctrl-min-height);
  /* Centrar la icona (16px) dins el botÃ³ (--ctrl-min-height) */
  padding-left: calc((var(--ctrl-min-height) - 16px) / 2);
  padding-right: 0;
  background: var(--actionable-wash);
  border-color: var(--actionable-line);
  --expand-w: 160px;
}

.pill-action[data-action="programa"]:hover,
.pill-action[data-action="mapa"]:hover {
  padding-left: 10px;
}

.pill-action[data-action="programa"] svg,
.pill-action[data-action="mapa"] svg,
.pill-action.pill-action--particelles svg {
  width: 16px;
  height: 16px;
}

/* No usar data-action aquÃ­: actions.js intercepta [data-action] i fa preventDefault() */
.pill-action.pill-action--particelles {
  background: var(--actionable-wash);
  border-color: var(--actionable-line);
}

.pill-action:hover {
  width: var(--expand-w);
  border-color: var(--actionable-border);
  z-index: 999;
}

.pill-action:active {
  box-shadow: var(--ctrl-shadow-active);
  transform: scale(var(--ctrl-scale-active));
}

.pill-action.primary {
  border-color: rgba(var(--color-accent-rgb), var(--opacity-40));
  background: #f0ebec; /* Sense transparÃ¨ncia per si ha de tapar altres elements de la taula */
}

.pill-action .txt {
  margin-right: 0;
  margin-left: 10px;
  font-family: var(--font-ui);
  font-weight: var(--ctrl-font-weight);
  font-size: var(--font-base);
  letter-spacing: var(--ctrl-letter-spacing);
  opacity: 0;
  transform: translateX(-10px);
  transition:
    opacity 0.12s ease 0.04s,
    transform 0.8s cubic-bezier(0.2, 0.9, 0.2, 1);
  pointer-events: none;
}

.pill-action:hover .txt {
  opacity: 1;
  transform: translateX(0);
}

/* ParticelÂ·les (catÃ leg): mateixa pastilla que Programa/Mapa perÃ² sense expansiÃ³ al hover */
a.pill-action.pill-action--static {
  width: auto;
  min-width: var(--ctrl-min-height);
  height: var(--ctrl-min-height);
  --expand-w: auto;
  pointer-events: auto;
  color: var(--text-strong);
  text-decoration: none;
  align-items: center;
}

a.pill-action.pill-action--static:hover {
  width: auto;
  border-color: var(--actionable-border);
  z-index: 999;
  transform: scale(var(--ctrl-scale-hover));
}

a.pill-action.pill-action--static .txt {
  opacity: 1;
  transform: none;
  pointer-events: auto;
  margin-left: 8px;
}

a.pill-action.pill-action--static svg {
  width: 16px;
  height: 16px;
  color: inherit;
  display: block;
}

/* Cantonades segmentades (desprÃ©s de .pill-action per guanyar el border-radius global) */
.actions.button-bar > .pill-action {
  flex: 0 0 auto;
  border-radius: 0;
}

.actions.button-bar > .pill-action:first-child {
  border-top-left-radius: var(--ctrl-radius);
  border-bottom-left-radius: var(--ctrl-radius);
}

.actions.button-bar > .pill-action:last-child {
  border-top-right-radius: var(--ctrl-radius);
  border-bottom-right-radius: var(--ctrl-radius);
}

.actions.button-bar > .pill-action:first-child:last-child {
  border-radius: var(--ctrl-radius);
}

/* ----- kv / k (camps del modal de detall) ----- */

.modal-body .kv {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: var(--space-2) 12px;
  margin-top: 12px;
  font-size: var(--font-sm);
}

.modal-body .k {
  color: var(--muted);
  font-weight: 700;
}

/* ----- Sobreescriptura d'amplades de columnes de taula ----- */

col.col-time {
  width: 70px;
}

col.col-time,
col.col-place,
col.col-cobla,
col.col-autor,
col.col-mes_info {
  min-width: 0;
}

col.col-titol {
  width: 52%;
}

col.col-nom {
  width: 52%;
}

col.col-autor {
  width: 30%;
}

col.col-poblacio_naixement {
  width: 48%;
}

col.col-mes_info {
  width: 18%;
}

table {
  width: 100%;
}

/* Cèl·les de dades: trencament explícit; capçaleres thead th queden fora (comportament per defecte del navegador) */
td {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

th {
  min-width: 0;
}

.results-table {
  table-layout: auto;
  width: 100%;
  /* Mateix gris que `border-bottom` de `tbody td` (separadors entre files) */
  border: 1px solid var(--line-strong);
}

.results-table th,
.results-table td {
  min-width: 0;
}

.results-table td:not(.col-day),
.results-table td:not(.col-time),
tbody th:not(.col-time) {
  min-width: 0;
  max-width: none;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ----- Zebra: fileres alternades (resultats, markdown .content-page-body, modal .modal-body; base sense @supports; navegadors antics inclosos) ----- */

.results-table tbody tr:nth-child(even) td,
.content-page-body table tbody tr:nth-child(even) td,
.modal-body table tbody tr:nth-child(even) td {
  background: var(--table-row-alt);
}

/* Sub-fileres (catàleg): parelles lògiques si el motor suporta nth-child(… of …) */

@supports selector(:nth-child(1 of .x)) {
  .results-table tbody tr:nth-child(even) td,
  .content-page-body table tbody tr:nth-child(even) td,
  .modal-body table tbody tr:nth-child(even) td {
    background: var(--card);
  }

  .results-table tbody tr:nth-child(even of :not(.sub-row)) td,
  .results-table tbody tr:nth-child(even of :not(.sub-row)) + tr.sub-row td,
  .content-page-body table tbody tr:nth-child(even of :not(.sub-row)) td,
  .content-page-body table tbody tr:nth-child(even of :not(.sub-row)) + tr.sub-row td,
  .modal-body table tbody tr:nth-child(even of :not(.sub-row)) td,
  .modal-body table tbody tr:nth-child(even of :not(.sub-row)) + tr.sub-row td {
    background: var(--table-row-alt);
  }
}

/* ----- Hover de fila: fons diferent de la zebra + barra esquerra (escriptori) -----
   La regla genèrica tr:hover td perd contra nth-child(… of …) (especificitat més alta),
   així que cal repetir el mateix patró amb :hover. */

/* Fallback (sense nth-child … of …): parelles HTML parell/senar */
.results-table tbody tr:nth-child(odd):hover td,
.content-page-body table tbody tr:nth-child(odd):hover td,
.modal-body table tbody tr:nth-child(odd):hover td {
  background: var(--table-row-hover);
}

.results-table tbody tr:nth-child(even):hover td,
.content-page-body table tbody tr:nth-child(even):hover td,
.modal-body table tbody tr:nth-child(even):hover td {
  background: var(--table-row-hover-alt);
}

@supports selector(:nth-child(1 of .x)) {
  .results-table tbody tr:nth-child(odd of :not(.sub-row)):hover td,
  .results-table tbody tr:nth-child(odd of :not(.sub-row)):has(+ tr.sub-row:hover) td,
  .results-table tbody tr:nth-child(odd of :not(.sub-row)):hover + tr.sub-row td,
  .content-page-body table tbody tr:nth-child(odd of :not(.sub-row)):hover td,
  .content-page-body table tbody tr:nth-child(odd of :not(.sub-row)):has(+ tr.sub-row:hover) td,
  .content-page-body table tbody tr:nth-child(odd of :not(.sub-row)):hover + tr.sub-row td,
  .modal-body table tbody tr:nth-child(odd of :not(.sub-row)):hover td,
  .modal-body table tbody tr:nth-child(odd of :not(.sub-row)):has(+ tr.sub-row:hover) td,
  .modal-body table tbody tr:nth-child(odd of :not(.sub-row)):hover + tr.sub-row td {
    background: var(--table-row-hover);
  }

  .results-table tbody tr:nth-child(even of :not(.sub-row)):hover td,
  .results-table tbody tr:nth-child(even of :not(.sub-row)) + tr.sub-row:hover td,
  .results-table tbody tr:nth-child(even of :not(.sub-row)):has(+ tr.sub-row:hover) td,
  .results-table tbody tr:nth-child(even of :not(.sub-row)):hover + tr.sub-row td,
  .content-page-body table tbody tr:nth-child(even of :not(.sub-row)):hover td,
  .content-page-body table tbody tr:nth-child(even of :not(.sub-row)) + tr.sub-row:hover td,
  .content-page-body table tbody tr:nth-child(even of :not(.sub-row)):has(+ tr.sub-row:hover) td,
  .content-page-body table tbody tr:nth-child(even of :not(.sub-row)):hover + tr.sub-row td,
  .modal-body table tbody tr:nth-child(even of :not(.sub-row)):hover td,
  .modal-body table tbody tr:nth-child(even of :not(.sub-row)) + tr.sub-row:hover td,
  .modal-body table tbody tr:nth-child(even of :not(.sub-row)):has(+ tr.sub-row:hover) td,
  .modal-body table tbody tr:nth-child(even of :not(.sub-row)):hover + tr.sub-row td {
    background: var(--table-row-hover-alt);
  }
}

/* Barra vertical primària a la primera cel·la (ratolí; evita flash a tacte) */
@media (hover: hover) and (pointer: fine) {
  .results-table tbody tr:hover td:first-child,
  .content-page-body table tbody tr:hover td:first-child,
  .modal-body table tbody tr:hover td:first-child {
    box-shadow: inset 4px 0 0 rgb(var(--color-primary-rgb) / 0.92);
  }
}

/* ----- Mòduls BD: tipus condensat per a taules concretes (data-font-stack des del controller) ----- */

.db-section .results-table[data-font-stack='roboto-condensed'] th,
.db-section .results-table[data-font-stack='roboto-condensed'] td,
#section-estadistiques .results-table[data-font-stack='roboto-condensed'] th,
#section-estadistiques .results-table[data-font-stack='roboto-condensed'] td {
  font-family: var(--font-taules-condensed);
}

/* Columnes numèriques (visió Taules: tipus SQL; .cell-numeric des del JS) */
.results-table thead th.cell-numeric,
.results-table tbody td.cell-numeric {
  text-align: right;
}

.results-table tbody td.cell-numeric {
  font-variant-numeric: tabular-nums;
}

/*
 * Mòduls BD: tots els enllaços a cel·les de resultat comparteixen l’aspecte de
 * la columna «Músics x la cobla» (negreta, subratllat puntejat, color primari).
 * La icona d’enllaç extern (taules-external-link-icon.js) només s’afegeix als
 * http(s): td-linkify.js, persones-enllac-mc-cell.js, drill biblioteques-llibre
 * (estadistiques.controller.js), classe .taules-table-link--external.
 * Els enllaços interns (#hash, xref-link-cell.js) no porten icona.
 * Botons d’acció tipus enllaç (p. ex. «Llegir», «Arxius» a sardanes-lletra-cell /
 * sardanes-particelles-cell): classe .cell-info-link; reset tipogràfic abans de
 * compartir regles amb `a`.
 */
.db-section .results-table tbody td button.cell-info-link,
#section-estadistiques .results-table tbody td button.cell-info-link {
  appearance: none;
  font: inherit;
  font-family: inherit;
  line-height: inherit;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  text-align: inherit;
  vertical-align: baseline;
}

.db-section .results-table tbody td a,
.db-section .results-table tbody td button.cell-info-link,
#section-estadistiques .results-table tbody td a,
#section-estadistiques .results-table tbody td button.cell-info-link {
  font-weight: 700;
  color: var(--color-primary);
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 0.15em;
  vertical-align: baseline;
}

.db-section .results-table tbody td a:hover,
.db-section .results-table tbody td a:focus-visible,
.db-section .results-table tbody td button.cell-info-link:hover,
.db-section .results-table tbody td button.cell-info-link:focus-visible,
#section-estadistiques .results-table tbody td a:hover,
#section-estadistiques .results-table tbody td a:focus-visible,
#section-estadistiques .results-table tbody td button.cell-info-link:hover,
#section-estadistiques .results-table tbody td button.cell-info-link:focus-visible {
  color: var(--color-primary-strong);
}

.db-section .results-table tbody td a.taules-table-link--external,
#section-estadistiques .results-table tbody td a.taules-table-link--external {
  display: inline-flex;
  align-items: center;
  gap: 0.2em;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 0.15em;
}

.db-section .results-table tbody td a.taules-table-link--external .taules-table-link__icon,
#section-estadistiques .results-table tbody td a.taules-table-link--external .taules-table-link__icon {
  flex-shrink: 0;
}

.db-section thead th.cell-numeric .sortable-th-inner--stacked .sortable-th-row-label,
.estadistiques-results-scoped thead th.cell-numeric .sortable-th-inner--stacked .sortable-th-row-label {
  text-align: right;
}

/* Mòduls BD: negreta al títol / nom (només cel·les de dades, no capçalera) */
.db-section .results-table[data-taules-table='sardanes'] tbody td.col-Titol,
.db-section .results-table[data-taules-table='bibliografia'] tbody td.col-Titol,
.db-section .results-table[data-taules-table='persones'] tbody td.col-Nom,
.db-section .results-table[data-taules-table='discografia'] tbody td.col-Nom,
.db-section .results-table[data-taules-table='cobles'] tbody td.col-Nom {
  font-weight: 700;
}

/* Valors booleans (bool-cell.js): tick verd; «No» mateixa mètrica que ✗ sense marca vermella */
.results-table td.cell-bool {
  text-align: center;
  font-weight: 800;
  font-size: 1.05em;
  line-height: 1;
}

.results-table td.cell-bool--true .cell-bool__icon {
  color: var(--color-bool-true);
}

.results-table td.cell-bool--false .cell-bool__icon {
  color: transparent;
}

/* ----- Sobreescriptures responsives ----- */

@media (max-width: 1400px) {
  /*
   * El botó .filters-toggle (fixed a filters.css) ha de pintar per sobre del topbar (z-index 50).
   * .results-header crea un stacking context (z-index 4 per defecte) que empresona el fill;
   * mentre el drawer de filtres és tancat, pujem la capçalera de resultats per sobre del chrome.
   * Amb el drawer obert, tornem a 4 perquè el sidebar (z-index 50) i el backdrop quedin al damunt.
   */
  .results-header {
    z-index: 55;
    justify-content: space-between;
  }
  body.filters-open .results-header {
    z-index: 4;
  }

  tbody td {
    font-size: var(--font-sm);
  }

  .pill-action {
    min-width: 44px;
    min-height: 44px;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  .actions.button-bar > .pill-action[data-action="programa"],
  .actions.button-bar > .pill-action[data-action="mapa"] {
    padding-left: calc((44px - 16px) / 2) !important;
    padding-right: 0 !important;
  }

  .actions.button-bar > .pill-action[data-action="programa"]:hover,
  .actions.button-bar > .pill-action[data-action="mapa"]:hover {
    padding-left: 14px !important;
    padding-right: 0 !important;
  }

  td.col-cobla {
    padding-bottom: 64px;
  }

  .sub-row-cell--particelles {
    padding-bottom: 64px;
  }
}

@media (max-width: 520px) {
  /* Columna Hora: s'amaga i el contingut es mostra dins col-day */
  col.col-time {
    display: none;
    width: 0;
    min-width: 0;
  }

  th.col-time,
  td.col-time {
    display: none;
  }

  .time-in-day {
    display: block;
    margin-top: 5px;
  }

  /* Primera columna (dia): just l'amplada del requadre de color (70px) + padding mÃ­nim */
  #section-agenda th.col-day,
  #section-agenda td.col-day {
    width: 78px;
    padding-left: 4px;
    padding-right: 4px;
  }

  /*
   * Columna Lloc/Activitat + Cobles combinades (<521px):
   * col-cobla s'amaga i el seu contingut apareix dins col-place com a segon parÃ graf.
   * La columna combinada ocupa naturalment l'amplada suma de les dues (table-layout: auto).
   * El nom de la cobla mantÃ© la tipografia de .cobla-name; els botons es posicionen
   * com feien a td.col-cobla (absoluts al peu dret de la celÂ·la).
   */
  col.col-cobla {
    display: none;
    width: 0;
    min-width: 0;
  }

  th.col-cobla,
  td.col-cobla {
    display: none;
  }

  .th-place-normal {
    display: none;
  }

  .th-place-combined {
    display: inline;
  }

  .cobla-inline {
    display: block;
    margin-top: -2px;
  }

  #section-agenda td.col-place {
    position: relative;
    padding-bottom: 64px;
  }

  #section-agenda td.col-place .cobla-inline .cobla-actions {
    position: absolute;
    right: 10px;
    bottom: 10px;
    width: calc(100% - 20px);
    display: flex;
    justify-content: flex-end;
    pointer-events: none;
  }

  #section-agenda td.col-place .cobla-inline .cobla-actions .actions {
    pointer-events: auto;
  }

  /*
   * Agenda (<521px): mateix esquema de colors que a â‰¥521px (tint al .cal-mini, lÃ­nia --cal-stripe-bg,
   * tipus en --cal-main). NomÃ©s colors; sense alterar mides ni layout.
   */
  #section-agenda .cal-mini .top {
    background: transparent;
    color: var(--cal-main);
    border-top: 1px solid var(--cal-stripe-bg);
  }

  /* Catàleg: amplades de columnes a vista molt estreta */
  #section-cataleg .results-table {
    table-layout: fixed;
  }

  #section-cataleg col.col-titol {
    width: 40%;
  }

  #section-cataleg col.col-nom {
    width: 45%;
  }

  #section-cataleg col.col-autor {
    width: 40%;
  }

  #section-cataleg col.col-poblacio_naixement {
    width: 55%;
  }

  #section-cataleg col.col-mes_info {
    width: 20%;
  }
}

/* ----- Fila secundÃ ria de metadades (colspan N) ----- */

tr[data-has-subrow] td {
  border-bottom: 0;
  padding-bottom: 2px;
}

.sub-row-cell {
  position: relative;
  border-bottom: 1px solid var(--line-strong);
  padding: 0 10px 8px 10px;
  font-family: var(--font-ui);
  font-size: calc(var(--font-base) - 2px);
  color: var(--muted);
  font-weight: 400;
}

.sub-row-cell--particelles {
  padding-bottom: 50px;
}

/* SeparaciÃ³ entre la lÃ­nia de metadades i el botÃ³ ParticelÂ·les */
td.sub-row-cell--particelles .sub-row-line {
  margin-bottom: calc(var(--space-5) / 2);
}

td.sub-row-cell--particelles:not(:has(.sub-row-line)) {
  padding-top: calc(var(--space-4) / 2);
}

.sub-row-line {
  min-width: 0;
}

td.sub-row-cell .cobla-actions {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 10px;
  width: auto;
  display: flex;
  justify-content: center;
  pointer-events: none;
}

td.sub-row-cell .cobla-actions .actions {
  pointer-events: auto;
}

.sub-row-motiu {
  color: var(--text-strong);
  font-weight: 700;
}

@media (hover: hover) and (pointer: fine) {
  .pill-action:hover {
    box-shadow: var(--ctrl-shadow-hover);
  }

  /* Pills s'expanden horitzontalment: el scale no s'aplica (l'expansió d'amplada ja és feedback) */
  .actions.button-bar > :is(button, a):hover {
    transform: none;
  }
}

/* â”€â”€ Els breadcrumbs nomÃ©s en escriptori â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   El topbar mÃ²bil ja mostra tÃ­tol de secciÃ³ + subtÃ­tol com a capÃ§alera/subcapÃ§alera.
   Amagar la filera del breadcrumb deixa intacts el toggle de filtres i el comptador. */

@media (max-width: 1400px) {
  .results-breadcrumb {
    display: none;
  }
}
