/**
 * Dark mode governance — token enforcement layer.
 * Loaded after design-system.css. No new palette; aliases from variables.css only.
 */

[data-theme="dark"] .btn-secondary {
  background: var(--bg-soft);
  color: var(--text-primary);
  border-color: var(--border-color);
}

[data-theme="dark"] .btn-secondary:hover:not(:disabled) {
  background: var(--bg-hover);
}

[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="image"]):not([type="reset"]):not([type="range"]),
[data-theme="dark"] select,
[data-theme="dark"] textarea {
  background-color: var(--input-bg);
  color: var(--input-text);
  border-color: var(--input-border);
}

[data-theme="dark"] input:disabled,
[data-theme="dark"] select:disabled,
[data-theme="dark"] textarea:disabled,
[data-theme="dark"] input[readonly],
[data-theme="dark"] textarea[readonly] {
  background-color: var(--bg-soft);
  color: var(--text-muted);
  opacity: 0.92;
}

[data-theme="dark"] input:focus,
[data-theme="dark"] select:focus,
[data-theme="dark"] textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 28%, transparent);
}

[data-theme="dark"] .empty-state,
[data-theme="dark"] td.empty-state {
  color: var(--text-secondary);
}

[data-theme="dark"] .skeleton,
[data-theme="dark"] .skeleton-line,
[data-theme="dark"] .shimmer {
  background: linear-gradient(
    90deg,
    var(--bg-soft) 0%,
    var(--bg-hover) 50%,
    var(--bg-soft) 100%
  ) !important;
}

[data-theme="dark"] .tf-mobile-fab,
[data-theme="dark"] .treatments-mobile-fab {
  box-shadow: var(--shadow-card);
}

[data-theme="dark"] .mobile-bottom-nav,
[data-theme="dark"] .mobile-nav-bar {
  background: var(--bg-elevated);
  border-color: var(--border-color);
}

[data-theme="dark"] .filters-bar,
[data-theme="dark"] .table-filters,
[data-theme="dark"] .tf-filter-drawer .tf-modal {
  background: var(--bg-card);
  border-color: var(--border-color);
}

[data-theme="dark"] .dropdown-menu,
[data-theme="dark"] .actions-dropdown,
[data-theme="dark"] .navbar-dropdown {
  background: var(--bg-elevated);
  border-color: var(--border-color);
  color: var(--text-primary);
}

[data-theme="dark"] .modal-content,
[data-theme="dark"] .popup .popup-content {
  background: var(--bg-card);
  color: var(--text-primary);
  border-color: var(--border-color);
}

[data-theme="dark"] thead th {
  color: var(--text-primary) !important;
}

[data-theme="dark"] .badge,
[data-theme="dark"] .navbar-badge {
  border-color: var(--border-color);
}

[data-theme="dark"] .mobile-settings-sidebar {
  background: var(--bg-elevated) !important;
  color: var(--text-primary);
}

[data-theme="dark"] .mobile-settings-sidebar a {
  color: var(--text-primary) !important;
  background: var(--bg-elevated) !important;
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .mobile-settings-sidebar a:hover {
  background: var(--bg-hover) !important;
}

[data-theme="dark"] .status-manager-tab:not(.active) {
  background: var(--bg-card);
  color: var(--text-primary);
  border-color: var(--border-color);
}

[data-theme="dark"] .status-manager-item {
  background: var(--bg-card);
  border-color: var(--border-color);
}

[data-theme="dark"] code,
[data-theme="dark"] pre {
  background: var(--input-bg) !important;
  color: var(--input-text);
  border-color: var(--border-color) !important;
}

/* Dashboard — stat / KPI cards */
[data-theme="dark"] .dashboard-kpi-grid .kpi-card,
[data-theme="dark"] .dashboard-kpi-grid a.kpi-card,
[data-theme="dark"] .kpi-grid .kpi-card {
  background: var(--bg-card) !important;
  background-image: none !important;
  border-color: var(--border-color);
  color: var(--text-primary);
}

/* Clients — search / filter toolbar */
[data-theme="dark"] .clients-toolbar {
  background-color: var(--bg-soft);
  border: 1px solid var(--border-color);
}

[data-theme="dark"] .clients-toolbar-search,
[data-theme="dark"] .clients-filter-drawer-body .filter-select,
[data-theme="dark"] .clients-filter-drawer-body .leads-filter-drawer-select {
  background-color: var(--input-bg);
  color: var(--input-text);
  border-color: var(--input-border);
}

/* Treatments — toolbar, calendar shell, view toggles */
[data-theme="dark"] .treatments-page .treatments-toolbar {
  background: var(--bg-soft);
  border: 1px solid var(--border-color);
}

[data-theme="dark"] .treatments-page #treatmentsSearchInput,
[data-theme="dark"] .treatments-page .treatments-filter-open-btn,
[data-theme="dark"] .treatments-page .treatments-drawer-select,
[data-theme="dark"] .treatments-page .treatments-drawer-input {
  background-color: var(--input-bg);
  color: var(--input-text);
  border-color: var(--input-border);
}

[data-theme="dark"] .treatments-calendar-view {
  background: var(--bg-main);
}

[data-theme="dark"] .treatments-page .view-toggle-icon-group {
  background: var(--bg-soft);
  border-color: var(--border-color);
}

[data-theme="dark"] .treatments-page .view-toggle-icon-btn:hover {
  background: var(--bg-hover);
}

[data-theme="dark"] .treatments-page .actions-dropdown,
[data-theme="dark"] .treatments-page .calendar-treatment-status-dropdown,
[data-theme="dark"] .treatments-page .treatment-actions-menu {
  background-color: var(--bg-elevated);
  border-color: var(--border-color);
  color: var(--text-primary);
}

[data-theme="dark"] .treatments-page .actions-dropdown a,
[data-theme="dark"] .treatments-page .calendar-treatment-status-dropdown button,
[data-theme="dark"] .treatments-page .treatment-actions-menu button {
  color: var(--text-primary);
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .treatments-page .actions-dropdown a:hover,
[data-theme="dark"] .treatments-page .calendar-treatment-status-dropdown button:hover,
[data-theme="dark"] .treatments-page .treatment-actions-menu button:hover {
  background-color: var(--bg-hover);
}

[data-theme="dark"] .treatments-page .calendar-day-header {
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .treatments-page .calendar-day-card {
  border-color: var(--border-color);
}

[data-theme="dark"] .treatments-page .calendar-day-card-header {
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .treatments-page .limits-bar {
  background: var(--bg-soft);
  border: 1px solid var(--border-color);
}

/* Monthly calendar — reinforce token surfaces (see calendar-month.css) */
[data-theme="dark"] .calendar-month-day,
[data-theme="dark"] .calendar-mobile-day,
[data-theme="dark"] .calendar-month-view .calendar-day {
  background: var(--bg-card) !important;
}

[data-theme="dark"] .calendar-month-day.is-outside {
  background: var(--bg-main) !important;
}

[data-theme="dark"] .calendar-month-badge {
  background: color-mix(in srgb, var(--primary) 22%, var(--bg-elevated)) !important;
  color: var(--text-primary) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Booking online — dark mode
   ═══════════════════════════════════════════════════════════════════════════ */

[data-theme="dark"] .booking-settings-page,
[data-theme="dark"] .booking-requests-page {
  color: var(--text-primary);
}

[data-theme="dark"] .booking-settings-card,
[data-theme="dark"] .booking-card.booking-settings-card,
[data-theme="dark"] .booking-kpi-card,
[data-theme="dark"] .booking-requests-table-wrap,
[data-theme="dark"] .booking-empty-state,
[data-theme="dark"] .booking-override-modal-panel,
[data-theme="dark"] .booking-requests-page .booking-mobile-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  box-shadow: var(--shadow-card);
}

[data-theme="dark"] .booking-settings-card > .settings-card-head {
  border-bottom-color: var(--border-color);
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--bg-soft) 90%, transparent),
    transparent
  );
}

[data-theme="dark"] .booking-service-card,
[data-theme="dark"] .booking-avail-day,
[data-theme="dark"] .booking-service-payment-card,
[data-theme="dark"] .booking-drawer-callout {
  background: var(--bg-soft) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] .booking-settings-page .tf-input,
[data-theme="dark"] .booking-settings-page .tf-textarea,
[data-theme="dark"] .booking-settings-page .booking-avail-slot .tf-input,
[data-theme="dark"] .booking-override-form .tf-input {
  background: var(--input-bg) !important;
  color: var(--input-text) !important;
  border-color: var(--input-border) !important;
}

[data-theme="dark"] .booking-settings-page .tf-switch-slider:before {
  background: var(--bg-elevated);
}

[data-theme="dark"] .booking-settings-page .tf-switch input:checked + .tf-switch-slider {
  background: var(--primary);
}

[data-theme="dark"] .booking-save-bar {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--bg-main) 20%, transparent),
    color-mix(in srgb, var(--bg-elevated) 96%, transparent)
  ) !important;
  border-top-color: var(--border-color) !important;
}

[data-theme="dark"] .booking-requests-table thead {
  background: var(--bg-soft) !important;
}

[data-theme="dark"] .booking-requests-table tbody tr {
  background: var(--bg-card) !important;
}

[data-theme="dark"] .booking-requests-table tbody tr:nth-child(even) {
  background: var(--bg-soft) !important;
}

[data-theme="dark"] .booking-requests-table tbody tr:hover {
  background: var(--bg-hover) !important;
}

[data-theme="dark"] .booking-requests-table tbody tr + tr td,
[data-theme="dark"] .booking-requests-th {
  border-color: var(--border-color);
}

[data-theme="dark"] .booking-requests-td,
[data-theme="dark"] .booking-kpi-label,
[data-theme="dark"] .booking-kpi-value,
[data-theme="dark"] .booking-settings-title,
[data-theme="dark"] .booking-mobile-card-name,
[data-theme="dark"] .booking-mobile-card-phone {
  color: var(--text-primary);
}

[data-theme="dark"] .booking-requests-td--muted,
[data-theme="dark"] .booking-requests-hint,
[data-theme="dark"] .booking-muted,
[data-theme="dark"] .booking-settings-sub,
[data-theme="dark"] .booking-mobile-card-service,
[data-theme="dark"] .booking-mobile-card-meta {
  color: var(--text-secondary);
}

[data-theme="dark"] .booking-requests-alert {
  background: color-mix(in srgb, #ef4444 16%, var(--bg-soft));
  color: color-mix(in srgb, #fca5a5 90%, var(--text-primary));
  border-color: color-mix(in srgb, #ef4444 40%, var(--border-color));
}

/* Status badges — readable on dark surfaces */
[data-theme="dark"] .booking-status--pending {
  background: color-mix(in srgb, #eab308 22%, var(--bg-soft));
  color: color-mix(in srgb, #fde047 85%, var(--text-primary));
}

[data-theme="dark"] .booking-status--confirmed {
  background: color-mix(in srgb, #22c55e 20%, var(--bg-soft));
  color: color-mix(in srgb, #86efac 90%, var(--text-primary));
}

[data-theme="dark"] .booking-status--canceled,
[data-theme="dark"] .booking-payment-badge--failed {
  background: color-mix(in srgb, #ef4444 18%, var(--bg-soft));
  color: color-mix(in srgb, #fca5a5 90%, var(--text-primary));
}

[data-theme="dark"] .booking-status--completed,
[data-theme="dark"] .booking-payment-badge--deposit_paid {
  background: color-mix(in srgb, #3b82f6 20%, var(--bg-soft));
  color: color-mix(in srgb, #93c5fd 92%, var(--text-primary));
}

[data-theme="dark"] .booking-status--no_show,
[data-theme="dark"] .booking-payment-badge--not_required {
  background: color-mix(in srgb, var(--text-muted) 22%, var(--bg-soft));
  color: var(--text-secondary);
}

[data-theme="dark"] .booking-payment-badge--pending {
  background: color-mix(in srgb, #f97316 20%, var(--bg-soft));
  color: color-mix(in srgb, #fdba74 92%, var(--text-primary));
}

[data-theme="dark"] .booking-payment-badge--paid {
  background: color-mix(in srgb, #22c55e 20%, var(--bg-soft));
  color: color-mix(in srgb, #86efac 90%, var(--text-primary));
}

/* Request drawer */
[data-theme="dark"] #bookingRequestDrawer .tf-drawer-backdrop.active {
  background: rgba(0, 0, 0, 0.55);
}

[data-theme="dark"] #bookingRequestDrawer .booking-request-drawer-panel {
  background: var(--bg-card) !important;
  box-shadow: -12px 0 48px rgba(0, 0, 0, 0.45);
}

[data-theme="dark"] .booking-drawer-header,
[data-theme="dark"] .booking-drawer-field {
  border-color: var(--border-color);
}

[data-theme="dark"] .booking-drawer-actions--bar {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--bg-soft) 80%, transparent),
    var(--bg-card)
  ) !important;
  border-top-color: var(--border-color) !important;
}

[data-theme="dark"] .booking-drawer-btn--secondary,
[data-theme="dark"] .booking-drawer-btn--danger {
  background: var(--bg-soft) !important;
  color: var(--text-primary);
}

[data-theme="dark"] .booking-drawer-btn--danger:not(:disabled):hover {
  background: color-mix(in srgb, #ef4444 14%, var(--bg-hover)) !important;
}

[data-theme="dark"] .booking-drawer-btn--secondary:not(:disabled):hover {
  background: var(--bg-hover) !important;
  border-color: color-mix(in srgb, var(--primary) 40%, var(--border-color));
}

[data-theme="dark"] .booking-provider-badge {
  background: color-mix(in srgb, var(--primary) 18%, var(--bg-soft));
  color: var(--primary);
}

/* Override modal */
[data-theme="dark"] .booking-override-modal-backdrop {
  background: rgba(0, 0, 0, 0.55);
}

[data-theme="dark"] .booking-override-modal-close {
  background: var(--bg-hover);
  color: var(--text-secondary);
}

[data-theme="dark"] .booking-override-modal-close:hover {
  background: var(--bg-soft);
  color: var(--text-primary);
}

[data-theme="dark"] .booking-service-remove {
  background: color-mix(in srgb, #ef4444 14%, var(--bg-soft));
  color: color-mix(in srgb, #fca5a5 90%, var(--text-primary));
}

[data-theme="dark"] .booking-pay-advanced-toggle:hover {
  background: var(--bg-hover);
}

/* ═══════════════════════════════════════════════════════════════════════════
   RC final pass — core product pages (dark mode)
   ═══════════════════════════════════════════════════════════════════════════ */

[data-theme="dark"] .dashboard-container,
[data-theme="dark"] .dashboard-section,
[data-theme="dark"] .tasks-container {
  color: var(--text-primary);
}

[data-theme="dark"] .dashboard-loading {
  color: var(--text-secondary);
}

[data-theme="dark"] .dashboard-section .section-title {
  color: var(--text-primary);
  border-bottom-color: var(--primary);
}

[data-theme="dark"] body[data-page="purchases"] .purchases-table-container,
[data-theme="dark"] body[data-page="purchases"] .purchases-table-container .data-table {
  background: var(--bg-card);
  border-color: var(--border-color);
}

[data-theme="dark"] body[data-page="purchases"] .purchases-table-container .data-table thead {
  background: var(--bg-soft);
}

[data-theme="dark"] body[data-page="purchases"] .purchases-table-container .data-table tbody tr {
  background: var(--bg-card);
}

[data-theme="dark"] body[data-page="purchases"] .purchases-table-container .data-table tbody tr:nth-child(even) {
  background: var(--bg-soft);
}

[data-theme="dark"] .followup-card,
[data-theme="dark"] .followups-pipeline-card {
  background: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary);
}

[data-theme="dark"] .followup-card .card-value,
[data-theme="dark"] .followup-card .card-title {
  color: var(--text-primary);
}

[data-theme="dark"] .followup-card .followup-secondary,
[data-theme="dark"] .followup-card .created-relative {
  color: var(--text-secondary);
}

[data-theme="dark"] .tasks-table-wrapper,
[data-theme="dark"] .tasks-table-wrapper table {
  background: var(--bg-card);
  color: var(--text-primary);
}

[data-theme="dark"] .tasks-table-wrapper thead {
  background: var(--bg-soft);
}

[data-theme="dark"] .tasks-table-wrapper tbody tr:hover {
  background: var(--bg-hover);
}

[data-theme="dark"] .calendar-month-popover,
[data-theme="dark"] .month-day-hover-tooltip,
[data-theme="dark"] .calendar-hover-tooltip {
  background: var(--bg-elevated) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary);
  box-shadow: var(--shadow-card);
}

[data-theme="dark"] .calendar-month-popover .hover-client,
[data-theme="dark"] .month-day-hover-tooltip .hover-client {
  color: var(--text-primary);
}

[data-theme="dark"] .calendar-month-popover .hover-type,
[data-theme="dark"] .month-day-hover-tooltip .hover-type {
  color: var(--text-secondary);
}

[data-theme="dark"] #sessionSummaryModal .tf-modal,
[data-theme="dark"] #sessionSummaryModal.tf-modal-overlay.active {
  background: transparent;
}

[data-theme="dark"] #sessionSummaryModal .tf-modal-body p[style] {
  color: var(--text-secondary) !important;
}
