/* HIVE-222 — Table density toggle (desktop-only presets + toggle UI).
   State lives on [data-list-page] as data-density="<level>"; "current"/absent = today's behaviour.
   Per-page localStorage. Mobile (<=768px) card layout untouched; toggle hidden there. */

/* ── 1) Toggle UI ─────────────────────────────────────────────────────────── */
.table-density {
  position: relative;
  display: inline-flex;
}

/* .table-density-btn inherits .filter-btn-outline; only the open/active state is added. */
.table-density-btn[aria-expanded="true"] {
  background: var(--hover-bg);
}

.table-density-menu {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 4px;
  min-width: 150px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  padding: 4px;
  z-index: 50;
}

.table-density-menu[hidden] {
  display: none;
}

.table-density-menu button {
  display: block;
  width: 100%;
  text-align: left;
  font-size: 13px;
  padding: 7px 10px;
  border: none;
  background: transparent;
  border-radius: 6px;
  cursor: pointer;
  color: var(--text);
}

.table-density-menu button:hover {
  background: var(--hover-bg);
}

.table-density-menu button.on {
  background: var(--primary);
  color: var(--accent-brown-button);
}

/* ── 2) Density presets (desktop-only) ────────────────────────────────────── */
@media (min-width: 769px) {
  /* comfortable */
  [data-density="comfortable"] .data-table tbody td {
    padding: 9px 14px;
  }

  /* compact */
  [data-density="compact"] .data-table {
    font-size: 12.5px;
  }
  [data-density="compact"] .data-table thead th {
    padding: 8px 12px;
  }
  [data-density="compact"] .data-table tbody td {
    padding: 6px 12px;
  }

  /* dense */
  [data-density="dense"] .data-table {
    font-size: 12px;
  }
  [data-density="dense"] .data-table thead th {
    padding: 7px 10px;
  }
  [data-density="dense"] .data-table tbody td {
    padding: 4px 10px;
  }

  /* ultra */
  [data-density="ultra"] .data-table {
    font-size: 11.5px;
  }
  [data-density="ultra"] .data-table thead th {
    padding: 6px 9px;
  }
  [data-density="ultra"] .data-table tbody td {
    padding: 3px 9px;
  }
  /* Theme-aware zebra (subtle in light, elevated in dark) for the densest level. */
  [data-density="ultra"] .data-table tbody tr:nth-child(even) {
    background: var(--table-row-hover);
  }
  /* Keep row-hover winning over the zebra stripe (equal specificity → later wins). */
  [data-density="ultra"] .data-table tbody tr:hover {
    background: var(--hover-bg);
  }

  /* dense + ultra: collapse the claim cell to one line + shrink badges */
  [data-density="dense"] .data-table tbody td,
  [data-density="ultra"] .data-table tbody td {
    white-space: nowrap;
  }
  [data-density="dense"] .claim-number-cell,
  [data-density="ultra"] .claim-number-cell {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }
  [data-density="dense"] .claim-badge,
  [data-density="dense"] .claim-badge-priority,
  [data-density="dense"] .claim-badge-unread,
  [data-density="dense"] .claim-badge-missing,
  [data-density="dense"] .claim-badge-email,
  [data-density="ultra"] .claim-badge,
  [data-density="ultra"] .claim-badge-priority,
  [data-density="ultra"] .claim-badge-unread,
  [data-density="ultra"] .claim-badge-missing,
  [data-density="ultra"] .claim-badge-email {
    height: 14px;
    font-size: 9px;
    padding: 1px 5px;
  }
  [data-density="dense"] .status-badge,
  [data-density="ultra"] .status-badge {
    font-size: 11.5px;
    padding: .12rem .45rem;
  }
}

/* ── 3) Hide toggle on mobile ─────────────────────────────────────────────── */
@media (max-width: 768px) {
  .table-density {
    display: none;
  }
}
