/* M³GIM Indizes — 4-Grid Layout */

/* Tab container override: disable outer scroll so inner grids control overflow */
#tab-indizes.tab-content {
  overflow: hidden;
  padding: 0;
}

.idx-page {
  padding: var(--space-2) var(--space-4) var(--space-3);
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Toolbar: Search + Facet Chips on one line */
.idx-toolbar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-2);
  flex-shrink: 0;
}

.idx-search-input {
  flex: 1;
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  font-size: var(--text-sm);
  font-family: var(--font-ui);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius);
  background: white;
  color: var(--color-text-primary);
  outline: none;
  transition: border-color var(--transition-fast);
}

.idx-search-input:focus {
  border-color: var(--color-kug-blau);
}

/* Grid container: 2×2 layout, fills remaining viewport */
.idx-grids {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--space-2);
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* Single grid card */
.idx-grid {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-color-light);
  border-radius: var(--border-radius);
  background: white;
  overflow: hidden;
  min-height: 0;
}

.idx-grid__header {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: var(--color-cream);
  border-bottom: 1px solid var(--border-color-light);
  flex-shrink: 0;
}

.idx-grid__icon {
  display: flex;
  align-items: center;
  color: var(--color-text-secondary);
}

.idx-grid__icon svg {
  display: block;
}

.idx-grid__title {
  font-weight: var(--weight-semibold);
  font-size: var(--text-sm);
  color: var(--color-text-primary);
}

.idx-grid__count {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  font-family: var(--font-mono);
  margin-left: auto;
}

.idx-grid__wd-status {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 0.6rem;
  font-family: var(--font-mono);
  color: var(--color-text-tertiary);
  background: var(--color-parchment);
  padding: 2px 5px;
  border-radius: 6px;
  white-space: nowrap;
  line-height: 1;
}

.idx-grid__wd-status svg {
  width: 10px;
  height: 10px;
}

/* Column headers */
.idx-colheaders {
  display: flex;
  padding: var(--space-1) var(--space-3);
  background: var(--color-cream);
  border-bottom: 2px solid var(--border-color);
  flex-shrink: 0;
}

.idx-colheader {
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text-tertiary);
  font-weight: var(--weight-semibold);
  cursor: pointer;
  user-select: none;
  padding: 2px 0;
  transition: color var(--transition-fast);
  white-space: nowrap;
}

.idx-colheader:hover {
  color: var(--color-text-primary);
}

.idx-colheader--active {
  color: var(--color-kug-blau);
}

.idx-colheader--right {
  text-align: right;
}

/* Scrollable body */
.idx-grid__body {
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

/* Rows */
.idx-row {
  display: flex;
  padding: 3px var(--space-3);
  cursor: pointer;
  transition: background var(--transition-fast);
  border-bottom: 1px solid var(--border-color-light);
  align-items: center;
  min-height: 26px;
}

.idx-row:hover {
  background: var(--color-parchment);
}

.idx-row--expanded {
  background: var(--color-cream);
}

/* Cells */
.idx-cell {
  font-size: var(--text-xs);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.idx-cell--right {
  text-align: right;
}

/* Cell content styles */
.idx-name {
  font-weight: var(--weight-medium);
  color: var(--color-text-primary);
}

.idx-count {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-text-secondary);
}

.idx-kategorie {
  font-size: var(--text-xs);
  color: var(--color-text-secondary);
}

.idx-komponist {
  font-size: var(--text-xs);
  color: var(--color-text-secondary);
  font-style: italic;
}

/* Wikidata badge inline */
.idx-name + .badge--wikidata {
  margin-left: var(--space-1);
}

/* Expanded detail panel */
.idx-detail {
  padding: var(--space-2) var(--space-3);
  background: var(--color-parchment);
  border-bottom: 1px solid var(--border-color);
  max-height: 200px;
  overflow-y: auto;
}

.idx-detail__header {
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  color: var(--color-text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--space-1);
}

.idx-detail-record {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 2px var(--space-1);
  border-radius: 3px;
  cursor: pointer;
  transition: background var(--transition-fast);
}

.idx-detail-record:hover {
  background: var(--color-cream);
}

.idx-detail-sig {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-kug-blau);
  white-space: nowrap;
  min-width: 90px;
}

.idx-detail-title {
  flex: 1;
  font-size: var(--text-xs);
  color: var(--color-text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Facet-active row (the entry driving cross-grid filter) */
.idx-row--facet-active {
  background: var(--color-cream);
  border-left: 3px solid var(--color-kug-blau);
  padding-left: calc(var(--space-3) - 3px);
}

/* Grid that is the source of a facet filter */
.idx-grid--filter-source {
  border-color: var(--color-kug-blau);
}

/* Facet chip bar (inline with search) */
.idx-facet-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  flex-shrink: 0;
}

.idx-facet-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1) var(--space-2);
  margin-bottom: 0;
  background: var(--color-cream);
  border: 1px solid var(--color-kug-blau);
  border-radius: var(--border-radius);
  font-size: var(--text-xs);
}

.idx-facet-chip__label {
  color: var(--color-text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: var(--weight-semibold);
}

.idx-facet-chip__name {
  font-weight: var(--weight-semibold);
  color: var(--color-kug-blau);
}

.idx-facet-chip__count {
  color: var(--color-text-tertiary);
  font-family: var(--font-mono);
}

.idx-facet-chip__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  margin-left: var(--space-1);
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast);
}

.idx-facet-chip__close:hover {
  background: var(--color-kug-blau);
  color: white;
}

/* "Show all in Archiv" link in detail panel */
.idx-detail__show-all {
  padding: var(--space-1) var(--space-1);
  margin-top: var(--space-1);
  border-top: 1px solid var(--border-color-light);
}

.idx-detail__show-all a {
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  color: var(--color-kug-blau);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.idx-detail__show-all a:hover {
  text-decoration: underline;
}

/* Responsive: stack on narrow screens */
@media (max-width: 900px) {
  .idx-grids {
    grid-template-columns: 1fr;
  }
}
