/* Phase 5-C5: visual-only normalization for PostgreSQL Backup / Restore. */

body:has(#backup-download-form) .shadow-sm {
  box-shadow: none;
}

body:has(#backup-download-form) header a[href="/admin/"],
#backup-download-button,
#choose-pre-restore-dir,
#clear-pre-restore-dir,
#restore-all-users-button,
#close-map-modal,
#restore-user-maps-button,
#confirm-cancel,
#confirm-ok,
#preview-table-body [data-open-user],
#map-table-body [data-restore-map] {
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 0.5rem 0.875rem;
  border: 1px solid transparent;
  border-radius: 0.375rem;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

body:has(#backup-download-form) header a[href="/admin/"],
#clear-pre-restore-dir,
#close-map-modal {
  border-color: transparent;
  background: transparent;
  color: var(--nm-text-muted, #334155);
}

body:has(#backup-download-form) header a[href="/admin/"]:hover,
#clear-pre-restore-dir:hover,
#close-map-modal:hover {
  background: var(--nm-action-secondary-hover, #f1f5f9);
  color: var(--nm-text, #0f172a);
}

#backup-download-button {
  border-color: var(--nm-action-primary, #2563eb);
  background: var(--nm-action-primary, #2563eb);
  color: #fff;
}

#backup-download-button:hover {
  border-color: var(--nm-action-primary-hover, #1d4ed8);
  background: var(--nm-action-primary-hover, #1d4ed8);
}

#choose-pre-restore-dir,
#confirm-cancel,
#preview-table-body [data-open-user],
#map-table-body [data-restore-map] {
  border-color: var(--nm-control-border, #cbd5e1);
  background: var(--nm-surface, #fff);
  color: var(--nm-text, #0f172a);
}

#choose-pre-restore-dir:hover,
#confirm-cancel:hover,
#preview-table-body [data-open-user]:hover,
#map-table-body [data-restore-map]:hover {
  background: var(--nm-action-secondary-hover, #f1f5f9);
}

#restore-all-users-button,
#restore-user-maps-button,
#confirm-ok {
  border-color: var(--nm-danger, #dc2626);
  background: var(--nm-danger, #dc2626);
  color: #fff;
}

#restore-all-users-button:hover,
#restore-user-maps-button:hover,
#confirm-ok:hover {
  border-color: var(--nm-danger-hover, #b91c1c);
  background: var(--nm-danger-hover, #b91c1c);
}

#preview-table-body [data-open-user],
#map-table-body [data-restore-map] {
  min-height: 2rem;
  padding: 0.375rem 0.625rem;
  font-size: 0.8125rem;
}

#pre-restore-dir,
#confirm-inputs input {
  width: 100%;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--nm-control-border, #cbd5e1);
  border-radius: 0.375rem;
  background: var(--nm-control-bg, #fff);
  color: var(--nm-text, #0f172a);
  font-size: 0.875rem;
  line-height: 1.25rem;
  box-shadow: none;
}

body:has(#backup-download-form) header a[href="/admin/"]:focus-visible,
#backup-download-button:focus-visible,
#choose-pre-restore-dir:focus-visible,
#clear-pre-restore-dir:focus-visible,
#restore-all-users-button:focus-visible,
#close-map-modal:focus-visible,
#restore-user-maps-button:focus-visible,
#confirm-cancel:focus-visible,
#confirm-ok:focus-visible,
#preview-table-body [data-open-user]:focus-visible,
#map-table-body [data-restore-map]:focus-visible,
#pre-restore-dir:focus-visible,
#confirm-inputs input:focus-visible {
  outline: 2px solid var(--nm-focus-ring, #2563eb);
  outline-offset: 2px;
}

#backup-download-button:disabled,
#choose-pre-restore-dir:disabled,
#clear-pre-restore-dir:disabled,
#restore-all-users-button:disabled,
#close-map-modal:disabled,
#restore-user-maps-button:disabled,
#confirm-cancel:disabled,
#confirm-ok:disabled,
#preview-table-body [data-open-user]:disabled,
#map-table-body [data-restore-map]:disabled {
  cursor: not-allowed;
}

@media (pointer: coarse) {
  body:has(#backup-download-form) header a[href="/admin/"],
  #backup-download-button,
  #choose-pre-restore-dir,
  #clear-pre-restore-dir,
  #restore-all-users-button,
  #close-map-modal,
  #restore-user-maps-button,
  #confirm-cancel,
  #confirm-ok,
  #preview-table-body [data-open-user],
  #map-table-body [data-restore-map] {
    min-height: 2.75rem;
  }
}
