.contract-list {
  padding: var(--wa-space-l);
}

/* ── Header ─────────────────────────────────────────── */

.contract-list__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--wa-space-m);
  margin-bottom: var(--wa-space-l);
  flex-wrap: wrap;
}

.contract-list__heading {
  min-width: 0;
}

.contract-list__breadcrumb {
  font-size: var(--wa-font-size-xs);
  color: var(--wa-color-text-quiet);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.contract-list__title {
  font-size: var(--wa-font-size-2xl);
  font-family: var(--wa-font-family-heading);
  font-weight: var(--wa-font-weight-heading);
  color: var(--wa-color-text-normal);
  margin: var(--wa-space-xs) 0;
}

.contract-list__event {
  font-size: var(--wa-font-size-s);
  color: var(--wa-color-text-quiet);
  margin: 0;
}

.contract-list__actions {
  display: flex;
  gap: var(--wa-space-s);
  flex-shrink: 0;
  flex-wrap: wrap;
  /* Cap the row at the header's content width so the buttons actually wrap
     under 390px instead of overflowing (flex item sizes to max-content). */
  max-width: 100%;
}

/* ── Table ──────────────────────────────────────────── */

.contract-list__table-wrap {
  overflow-x: auto;
  width: 100%;
  /* Right-edge shadow hints the table scrolls — same scroll-inside-the-wrap
     contract as .admin-table-wrap / .hotel-access__table-wrap. */
  box-shadow: inset -10px 0 10px -10px var(--wa-color-neutral-border-quiet);
}

.contract-list__table {
  width: 100%;
  border-collapse: collapse;
}

.contract-list__table th,
.contract-list__table td {
  text-align: left;
  padding: var(--wa-space-m) var(--wa-space-s);
  border-bottom: 1px solid var(--wa-color-surface-border);
}

.contract-list__table thead th {
  font-size: var(--wa-font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--wa-color-text-quiet);
}

/* ── Hotel cell ─────────────────────────────────────── */

.contract-list__hotel-name {
  display: block;
  font-weight: 500;
  color: var(--wa-color-text-normal);
}

.contract-list__hotel-meta {
  display: block;
  font-size: var(--wa-font-size-xs);
  color: var(--wa-color-text-quiet);
  margin-top: 2px;
}

/* ── Pending placeholder ────────────────────────────── */

.contract-list__pending {
  color: var(--wa-color-text-quiet);
}

/* ── Empty state ────────────────────────────────────── */

.contract-list__empty {
  text-align: center;
  padding: var(--wa-space-xl) var(--wa-space-l);
  border: 1px solid var(--wa-color-neutral-border-quiet);
  border-radius: var(--wa-border-radius-m);
  background-color: var(--wa-color-surface-lowered);
  margin-top: var(--wa-space-l);
}

.contract-list__empty-title {
  font-size: var(--wa-font-size-l);
  font-weight: 500;
  color: var(--wa-color-text-normal);
  margin: 0 0 var(--wa-space-xs);
}

.contract-list__empty-hint {
  font-size: var(--wa-font-size-s);
  color: var(--wa-color-text-quiet);
  margin: 0;
}

.contract-list__footnote {
  font-size: var(--wa-font-size-s);
  color: var(--wa-color-text-quiet);
  margin: var(--wa-space-xs) 0 0;
}

/* ── KPI tiles ──────────────────────────────────────── */

.contract-list__kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: var(--wa-space-m);
  margin: var(--wa-space-l) 0;
}

.contract-list__kpi {
  padding: var(--wa-space-m);
  border: 1px solid var(--wa-color-surface-border);
  border-radius: var(--wa-border-radius-m);
  background-color: var(--wa-color-surface-lowered);
}

.contract-list__kpi-value {
  font-size: var(--wa-font-size-2xl);
  font-family: var(--wa-font-family-heading);
  font-weight: var(--wa-font-weight-heading);
  margin: 0;
}

.contract-list__kpi-label {
  font-size: var(--wa-font-size-s);
  color: var(--wa-color-text-quiet);
  margin: var(--wa-space-3xs) 0 0;
}

/* ── Filter bar ─────────────────────────────────────── */

.contract-list__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: var(--wa-space-s);
  margin: var(--wa-space-l) 0;
}

/* ── KPI icon ───────────────────────────────────────── */

.contract-list__kpi-icon {
  font-size: 1.25rem;
  color: var(--wa-color-brand-fill-loud);
  margin-bottom: 0.5rem;
  display: block;
}

/* ── Sortable headers ───────────────────────────────── */

.contract-list__sort {
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-weight: inherit;
}

.contract-list__sort:hover,
.contract-list__sort--active {
  color: var(--wa-color-brand-fill-loud);
}

/* ── Pager ──────────────────────────────────────────── */

.contract-list__pager {
  display: flex;
  justify-content: center;
  margin-top: 1rem;
}

.contract-list__pager a,
.contract-list__pager .gap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.375rem;
  border: 1px solid var(--wa-color-neutral-border-normal);
  border-radius: 4px;
  color: var(--wa-color-neutral-on-normal);
  text-decoration: none;
  font-size: 0.875rem;
  margin: 0 0.125rem;
}

.contract-list__pager a.current {
  background: var(--wa-color-brand-fill-loud);
  color: var(--wa-color-brand-on-loud);
  border-color: var(--wa-color-brand-fill-loud);
}

.contract-list__pager a:hover:not(.current) {
  border-color: var(--wa-color-brand-fill-loud);
  color: var(--wa-color-brand-fill-loud);
}

.contract-list__pager .gap {
  border: none;
}

/* ── Column header icons ────────────────────────────── */

.contract-list__table th i {
  margin-right: 0.25rem;
  color: var(--wa-color-text-quiet);
  font-size: 0.75rem;
}

.contract-list__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

.contract-list__per-page {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--wa-color-neutral-on-normal);
}

.contract-list__per-page wa-select {
  min-width: 4.5rem;
}

.contract-list__count {
  font-size: 0.875rem;
  color: var(--wa-color-neutral-on-quiet, var(--wa-color-neutral-on-normal));
  margin: 0;
}

.contract-list__footer .contract-list__pager {
  margin-top: 0;
}
