/* Shared map layer table styles used by mapping and position-map panels */
.gen-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.7rem;
  table-layout: fixed;
}

.gen-table thead th {
  position: sticky;
  top: 0;
  background: var(--bs-tertiary-bg, #f8f9fa);
  border-bottom: 1px solid var(--bs-border-color, #dee2e6);
  padding: 0.25rem 0.4rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.625rem;
  color: var(--bs-secondary-color, #6c757d);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 1;
}

.gen-table .col-duid    { width: 11%; }
.gen-table .col-name    { width: 22%; }
.gen-table .col-region  { width: 9%; }
.gen-table .col-status  { width: 15%; }
.gen-table .col-fuel    { width: 15%; }
.gen-table .col-cap     { width: 14%; text-align: right; }
.gen-table .col-cap-mwh { width: 14%; text-align: right; }

.gen-sort-btn {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
  text-align: left;
  padding: 0;
  cursor: pointer;
}

.gen-sort-btn:hover {
  color: var(--bs-body-color, #212529);
}

.gen-sort-indicator {
  color: var(--bs-body-color, #212529);
  font-weight: 700;
}

.gen-filter {
  width: 100%;
  border: 1px solid var(--bs-border-color, #dee2e6);
  border-radius: 0.25rem;
  padding: 0.125rem 0.25rem;
  font-size: 0.65rem;
  line-height: 1.2;
  background: var(--bs-body-bg, #fff);
  color: var(--bs-body-color, #212529);
}

.gen-filter:focus {
  outline: 0;
  border-color: var(--varial-primary, #1B3AA0);
  box-shadow: 0 0 0 0.1rem color-mix(in srgb, var(--varial-primary, #1B3AA0) 25%, transparent);
}

.gen-table tbody tr {
  cursor: pointer;
  border-bottom: 1px solid var(--bs-border-color, #dee2e6);
  transition: background 0.1s;
}

.gen-table tbody tr:hover,
.gen-table tbody tr.focused {
  background: var(--varial-primary-faint, rgba(27,58,160,0.07));
}

.gen-table td {
  padding: 0.25rem 0.4rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}

.gen-table td.col-cap,
.gen-table td.col-cap-mwh {
  text-align: right;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* ── Status badge ── */
.tree-status-badge {
  display: inline-block;
  font-size: 0.6rem;
  font-weight: 600;
  line-height: 1;
  padding: 0.2em 0.45em;
  border-radius: 0.25rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.tree-status-badge.status-existing {
  background: color-mix(in srgb, var(--varial-primary, #1B3AA0) 12%, transparent);
  color: var(--varial-primary, #1B3AA0);
}

.tree-status-badge.status-anticipated {
  background: color-mix(in srgb, var(--varial-amber, #f59e0b) 12%, transparent);
  color: var(--chart-tech-brown-coal, #92400e);
}

.tree-status-badge.status-additional {
  background: color-mix(in srgb, #10b981 12%, transparent);
  color: #065f46;
}

.tree-status-badge.status-retired {
  background: color-mix(in srgb, var(--chart-tech-gas-ccgt, #6b7280) 12%, transparent);
  color: #374151;
}

.tree-status-badge.status-unknown {
  background: var(--bs-tertiary-bg, #f3f4f6);
  color: var(--bs-secondary-color, #6c757d);
}

/* Flow path type badges */
.tree-status-badge.status-regional {
  background: color-mix(in srgb, #3b82f6 12%, transparent);
  color: var(--varial-primary-dark, #1d4ed8);
}

.tree-status-badge.status-subregional {
  background: color-mix(in srgb, #10b981 12%, transparent);
  color: #065f46;
}

/* ── Flow path table columns (fp-table) ── */
.fp-table .col-fp-path { width: 24%; }
.fp-table .col-fp-type { width: 14%; }
.fp-table .col-fp-end  { width: 15%; }
.fp-table .col-fp-mw   { width: 16%; text-align: right; font-variant-numeric: tabular-nums; }

/* Tx projects table columns */
.tx-table .col-tx-name { width: 66%; }
.tx-table .col-tx-status { width: 14%; }
.tx-table .col-tx-start { width: 20%; }
