/* Privacy / Wave 121 — cookie inventory + DSAR + consent log
 *
 * DESIGN.md tokens only — never raw hex literals. The page lives on
 * the dark surface (var --bg) and reuses DS button / card primitives.
 */

.priv-section {
  margin-top: var(--space-3xl, 3rem);
}

.priv-section__title {
  font-size: var(--font-2xl, 1.5rem);
  font-weight: 600;
  margin-bottom: var(--space-md, 1rem);
}

.priv-section__lead {
  color: var(--muted2, #94a3b8);
  font-size: var(--font-sm, 0.875rem);
  margin-bottom: var(--space-lg, 1.5rem);
}

/* ── Inventory table ─────────────────────────────────────────────────── */

.priv-inventory-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--surface, #131620);
  border: 1px solid var(--border, rgba(255, 255, 255, 0.07));
  border-radius: var(--radius, 12px);
  overflow: hidden;
  font-size: var(--font-sm, 0.875rem);
}

.priv-inventory-table thead th {
  text-align: left;
  padding: var(--space-md, 0.75rem) var(--space-md, 1rem);
  background: var(--surface2, #1a1e2e);
  color: var(--muted2, #94a3b8);
  font-weight: 600;
  font-size: var(--font-xs, 0.75rem);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 1px solid var(--border2, rgba(255, 255, 255, 0.12));
}

.priv-inventory-table tbody td {
  padding: var(--space-md, 0.75rem) var(--space-md, 1rem);
  border-top: 1px solid var(--border, rgba(255, 255, 255, 0.07));
  vertical-align: top;
  color: var(--text, #e2e8f0);
}

.priv-cookie-row[data-cat="necessary"]  .priv-cookie-cat { color: var(--green,  #34d399); }
.priv-cookie-row[data-cat="preference"] .priv-cookie-cat { color: var(--cyan,   #22d3ee); }
.priv-cookie-row[data-cat="analytics"]  .priv-cookie-cat { color: var(--yellow, #fbbf24); }
.priv-cookie-row[data-cat="marketing"]  .priv-cookie-cat { color: var(--muted,  #64748b); }

.priv-cookie-name {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: var(--font-xs, 0.8125rem);
  color: var(--text, #e2e8f0);
  word-break: break-all;
}

.priv-cookie-cat {
  font-weight: 600;
  font-size: var(--font-xs, 0.75rem);
  text-transform: uppercase;
}

/* ── Opt-out button ──────────────────────────────────────────────────── */

.priv-opt-out-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs, 0.375rem);
  padding: var(--space-xs, 0.375rem) var(--space-sm, 0.625rem);
  background: transparent;
  color: var(--muted2, #94a3b8);
  border: 1px solid var(--border2, rgba(255, 255, 255, 0.12));
  border-radius: var(--radius-sm, 7px);
  font-size: var(--font-xs, 0.75rem);
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.priv-opt-out-btn:hover:not(:disabled) {
  background: var(--surface2, #1a1e2e);
  color: var(--text, #e2e8f0);
  border-color: var(--accent, #5b8af8);
}

.priv-opt-out-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.priv-opt-out-btn[data-opted="1"] {
  background: var(--surface2, #1a1e2e);
  color: var(--green, #34d399);
  border-color: var(--green, #34d399);
}

.priv-opt-out-btn[data-opted="1"]::before {
  content: '\2713';
  font-weight: 700;
}

/* ── DSAR card ───────────────────────────────────────────────────────── */

.priv-dsar-card {
  background: var(--surface, #131620);
  border: 1px solid var(--border2, rgba(255, 255, 255, 0.12));
  border-radius: var(--radius, 12px);
  padding: var(--space-lg, 1.5rem);
  margin-top: var(--space-lg, 1.5rem);
}

.priv-dsar-card__title {
  font-size: var(--font-lg, 1.125rem);
  font-weight: 600;
  margin: 0 0 var(--space-sm, 0.5rem);
}

.priv-dsar-card__desc {
  color: var(--muted2, #94a3b8);
  font-size: var(--font-sm, 0.875rem);
  margin-bottom: var(--space-md, 1rem);
}

.priv-dsar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm, 0.5rem);
}

.priv-dsar-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs, 0.375rem);
  padding: var(--space-sm, 0.5rem) var(--space-md, 0.875rem);
  background: var(--accent, #5b8af8);
  color: var(--bg, #0c0e16);
  border: none;
  border-radius: var(--radius-sm, 7px);
  font-size: var(--font-sm, 0.875rem);
  font-weight: 600;
  cursor: pointer;
}

.priv-dsar-btn--secondary {
  background: transparent;
  color: var(--text, #e2e8f0);
  border: 1px solid var(--border2, rgba(255, 255, 255, 0.12));
}

.priv-dsar-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.priv-dsar-status {
  margin-top: var(--space-md, 1rem);
  font-size: var(--font-sm, 0.875rem);
  color: var(--muted2, #94a3b8);
}

.priv-dsar-status[data-state="error"] {
  color: var(--red, #f87171);
}

.priv-dsar-status[data-state="ok"] {
  color: var(--green, #34d399);
}

/* ── Consent log ─────────────────────────────────────────────────────── */

.priv-consent-log {
  list-style: none;
  padding: 0;
  margin: var(--space-md, 1rem) 0 0;
}

.priv-consent-log li {
  padding: var(--space-sm, 0.5rem) 0;
  border-top: 1px solid var(--border, rgba(255, 255, 255, 0.07));
  display: flex;
  justify-content: space-between;
  gap: var(--space-md, 1rem);
  color: var(--text, #e2e8f0);
  font-size: var(--font-sm, 0.875rem);
}

.priv-consent-log li:first-child {
  border-top: 0;
}

.priv-consent-log__when {
  color: var(--muted2, #94a3b8);
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: var(--font-xs, 0.75rem);
  white-space: nowrap;
}

.priv-consent-log__empty {
  color: var(--muted, #64748b);
  font-style: italic;
}

/* ── Responsive ──────────────────────────────────────────────────────── */

@media (max-width: 768px) {
  .priv-inventory-table thead { display: none; }
  .priv-inventory-table,
  .priv-inventory-table tbody,
  .priv-inventory-table tr,
  .priv-inventory-table td {
    display: block;
    width: 100%;
  }
  .priv-cookie-row {
    border-top: 1px solid var(--border, rgba(255, 255, 255, 0.07));
    padding: var(--space-md, 0.75rem) 0;
  }
  .priv-inventory-table tbody td {
    border: 0;
    padding: 2px 0;
  }
}
