/* Dark mode overrides — loaded after page-specific <style> blocks in extra_head */

[data-theme="dark"] .app-main,
[data-theme="dark"] .app-guest-main {
  color: var(--ht-text);
}

/* ---- Universal form controls in workspace ---- */
[data-theme="dark"] .app-main input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="file"]),
[data-theme="dark"] .app-main select,
[data-theme="dark"] .app-main textarea,
[data-theme="dark"] .app-guest-main input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="file"]),
[data-theme="dark"] .app-guest-main select,
[data-theme="dark"] .app-guest-main textarea {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border-strong) !important;
}

[data-theme="dark"] .app-main label,
[data-theme="dark"] .app-guest-main label {
  color: var(--ht-text-secondary);
}

/* ---- Shared surface panels ---- */
[data-theme="dark"] .app-main :is(
  .header,
  .search-header,
  .page-header,
  .search-section,
  .results-section,
  .food-item,
  .action-card,
  .recipe-card,
  .meal-plan-card,
  .grocery-list-card,
  .form-container,
  .form-card,
  .section-card,
  .day-card,
  .chart-container,
  .card,
  .card-table-wrap,
  .data-table-wrap,
  .tools-tool-card,
  .tools-panel,
  .region-selector,
  .modal-content,
  .empty-diary,
  .empty-state,
  .timeframe-selector,
  .summary-card,
  .diary-day-card,
  .add-meal-surface-card,
  .add-meal-context-card,
  .add-meal-search-panel,
  .add-meal-phase-strip,
  .recipe-detail-panel,
  .weekly-plan-panel,
  .grocery-panel,
  .workout-log-panel,
  .profile-container,
  .profile-content,
  .energy-container,
  .macro-diary-row,
  .recipe-list-empty,
  .recipe-list-filter-panel
) {
  background-color: var(--ht-surface) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .app-main :is(
  .form-content,
  .card-content,
  .recipe-card .card-content,
  .detail-item,
  .nutrient-breakdown,
  .workout-log-detail__notes,
  .exercise-library-result-card,
  .di-macro-row--section-head,
  .day-header,
  .subtotal-row,
  .recipe-card .card-header,
  .meal-time-slot__editor,
  .add-meal-phase-strip__step,
  .food-search-result,
  .meal-builder-panel,
  .weekly-plan-day-card,
  .weekly-slot-card,
  .grocery-item-row,
  .compendium-row,
  .workout-exercise-row
) {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

/* ---- Typography ---- */
[data-theme="dark"] .app-main :is(h1, h2, h3, h4, h5, h6),
[data-theme="dark"] .app-guest-main :is(h1, h2, h3, h4, h5, h6) {
  color: var(--ht-text) !important;
}

[data-theme="dark"] .app-main :is(
  p,
  li,
  dt,
  dd,
  .fooddb-cta-text,
  .fooddb-title,
  .entry-name,
  .entry-amount,
  .meal-line-items,
  .date-range-text,
  .day-total-label,
  .recipe-description,
  .info-value,
  .recipe-list-category-title,
  .recipe-list-empty-text,
  .weekly-plan-intro,
  .grocery-list-intro,
  .tools-hub__intro,
  .exercise-library-intro,
  .workout-log-met-hint,
  .form-help,
  .section-title,
  .card-value,
  .add-meal-page__hero-text,
  .add-meal-context-card__title,
  .add-meal-nutrition-totals__title,
  .recipe-detail-panel__head,
  .macro-diary-label
) {
  color: var(--ht-text-secondary);
}

[data-theme="dark"] .app-main :is(
  .food-brand,
  .info-label,
  .card-label,
  .card-avg,
  .summary-meta,
  .day-full-date,
  .day-toggle,
  .range-separator,
  .diary-export-hint,
  .energy-stat-label,
  .recipe-list-result-meta,
  .weekly-plan-meta,
  .grocery-meta,
  .meta-tag,
  .chart-subtitle,
  .chart-info,
  .stat-subtitle,
  .detail-label,
  .recent-workouts-empty
) {
  color: var(--ht-text-muted) !important;
}

/* ---- Tables ---- */
[data-theme="dark"] .app-main :is(table, .data-table, .recent-workouts-table) th {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text-secondary) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .app-main :is(table, .data-table, .recent-workouts-table) td {
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .app-main :is(table, .data-table, .recent-workouts-table) tbody tr:nth-child(even) td {
  background-color: var(--ht-surface-muted) !important;
}

[data-theme="dark"] .app-main :is(table, .data-table, .recent-workouts-table) tbody tr:hover td {
  background-color: var(--ht-border) !important;
}

/* ---- Recent workouts / workout log table ---- */
[data-theme="dark"] .recent-workouts-table-wrap,
[data-theme="dark"] .workout-log-table-wrap {
  background-color: var(--ht-surface) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .workout-log-table thead {
  background: var(--ht-surface-muted) !important;
  background-image: none !important;
}

[data-theme="dark"] .workout-log-table th {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text-secondary) !important;
  border-bottom-color: var(--ht-border) !important;
}

[data-theme="dark"] .workout-log-table td {
  color: var(--ht-text) !important;
  border-bottom-color: var(--ht-border) !important;
}

[data-theme="dark"] .workout-log-table tbody tr:nth-child(even) td {
  background-color: var(--ht-surface-muted) !important;
}

[data-theme="dark"] .workout-log-table tbody tr:hover td {
  background-color: var(--ht-border) !important;
}

[data-theme="dark"] .workout-log-table__date-primary,
[data-theme="dark"] .recent-workouts-date-compact {
  color: var(--ht-text) !important;
}

[data-theme="dark"] .workout-log-table__date-time,
[data-theme="dark"] .recent-workouts-date-compact__sep,
[data-theme="dark"] .recent-workouts-dash {
  color: var(--ht-text-muted) !important;
}

[data-theme="dark"] .recent-workouts-table__workout a,
[data-theme="dark"] .recent-workouts-table__workout a:visited,
[data-theme="dark"] .workout-log-table__workout a,
[data-theme="dark"] .workout-log-table__workout a:visited {
  color: var(--ht-accent) !important;
}

[data-theme="dark"] .recent-workouts-table__workout a:hover,
[data-theme="dark"] .workout-log-table__workout a:hover {
  color: var(--ht-accent-hover) !important;
}

[data-theme="dark"] .recent-workouts-feed-actions {
  background-color: var(--ht-surface-muted) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .recent-workouts-feed-more,
[data-theme="dark"] .recent-workouts-feed-more:visited {
  color: var(--ht-accent) !important;
}

[data-theme="dark"] .recent-workouts-feed-more:hover,
[data-theme="dark"] .recent-workouts-feed-more:focus-visible {
  background-color: var(--ht-accent-light) !important;
  color: var(--ht-accent-hover) !important;
}

[data-theme="dark"] .recent-workouts-tag--duration {
  background-color: #1e3a5f !important;
  color: #93c5fd !important;
  border-color: #1d4ed8 !important;
}

[data-theme="dark"] .recent-workouts-tag--calories {
  background-color: #422006 !important;
  color: #fcd34d !important;
  border-color: #b45309 !important;
}

[data-theme="dark"] .recent-workouts-tag--type.recent-workouts-tag--strength {
  background-color: #312e81 !important;
  color: #c7d2fe !important;
  border-color: #4338ca !important;
}

[data-theme="dark"] .recent-workouts-tag--type.recent-workouts-tag--cardio {
  background-color: #164e63 !important;
  color: #67e8f9 !important;
  border-color: #0e7490 !important;
}

[data-theme="dark"] .recent-workouts-tag--i1,
[data-theme="dark"] .recent-workouts-tag--i2 {
  background-color: var(--ht-surface) !important;
  color: var(--ht-text-secondary) !important;
  border-color: var(--ht-border-strong) !important;
}

[data-theme="dark"] .recent-workouts-tag--i3 {
  background-color: #422006 !important;
  color: #fcd34d !important;
  border-color: #b45309 !important;
}

[data-theme="dark"] .recent-workouts-tag--i4,
[data-theme="dark"] .recent-workouts-tag--i5 {
  background-color: #450a0a !important;
  color: #fca5a5 !important;
  border-color: #b91c1c !important;
}

/* ---- Diary ---- */
[data-theme="dark"] .diary-container .empty-diary {
  background-color: var(--ht-surface) !important;
}

[data-theme="dark"] .diary-container .day-total-bar {
  background: var(--ht-surface-muted) !important;
  border-top-color: var(--ht-border) !important;
}

[data-theme="dark"] .diary-container .day-total-label {
  color: var(--ht-text-secondary) !important;
}

[data-theme="dark"] .diary-container .entry-name {
  color: var(--ht-text) !important;
}

[data-theme="dark"] .diary-container .entry-amount,
[data-theme="dark"] .diary-container .meal-line-items {
  color: var(--ht-text-muted) !important;
}

[data-theme="dark"] .diary-container .timeframe-mobile-select {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .diary-container .di-macro-row--section-head {
  background-color: var(--ht-surface-muted) !important;
  border-bottom-color: var(--ht-border) !important;
}

[data-theme="dark"] .diary-container .di-macro-label,
[data-theme="dark"] .diary-container .di-macro-num {
  color: var(--ht-text) !important;
}

[data-theme="dark"] .diary-container .meal-section {
  border-bottom-color: var(--ht-border) !important;
}

/* ---- Add meal / edit meal ---- */
[data-theme="dark"] .add-meal-page-root .add-meal-phase-strip__step {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text-secondary) !important;
}

[data-theme="dark"] .add-meal-page-root .add-meal-phase-strip__label {
  color: var(--ht-text-muted) !important;
}

[data-theme="dark"] .add-meal-page-root .add-meal-suggestion-chip {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-primary-hover) !important;
  border-color: var(--ht-primary) !important;
}

[data-theme="dark"] .add-meal-page-root .food-search-result {
  background-color: var(--ht-surface) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .add-meal-page-root .food-search-result:hover {
  background-color: var(--ht-accent-light) !important;
}

[data-theme="dark"] .add-meal-page-root .meal-builder-tab,
[data-theme="dark"] .add-meal-page-root .meal-builder-mode-btn {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text-secondary) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .add-meal-page-root .add-meal-nutrition-totals__item {
  background-color: var(--ht-surface-muted) !important;
  border-color: var(--ht-border) !important;
}

/* ---- Recipe / meal planner ---- */
[data-theme="dark"] .recipe-list-meal-filter-compact,
[data-theme="dark"] .recipe-list-search-input,
[data-theme="dark"] .recipe-list-sort-select {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .recipe-list-category-heading,
[data-theme="dark"] .recipe-list-card-title {
  color: var(--ht-text) !important;
}

[data-theme="dark"] .recipe-list-card,
[data-theme="dark"] .recipe-list-empty-state {
  background-color: var(--ht-surface) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .weekly-plan-calendar-day,
[data-theme="dark"] .weekly-plan-slot,
[data-theme="dark"] .grocery-category-block,
[data-theme="dark"] .nutrition-goals-macro-row {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

/* ---- Workouts ---- */
[data-theme="dark"] .workout-log-form-panel,
[data-theme="dark"] .workout-exercise-block,
[data-theme="dark"] .compendium-activity-row,
[data-theme="dark"] .weekly-workout-day-card {
  background-color: var(--ht-surface) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .chart-btn {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text-secondary) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .chart-btn:hover,
[data-theme="dark"] .chart-btn.active {
  background-color: var(--ht-primary-muted) !important;
  color: var(--ht-primary-hover) !important;
  border-color: var(--ht-primary) !important;
}

/* ---- Progress / weight ---- */
[data-theme="dark"] .weight-staff-tools,
[data-theme="dark"] .weight-entry-row,
[data-theme="dark"] .measurements-table-wrap {
  background-color: var(--ht-surface) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

/* ---- Profile ---- */
[data-theme="dark"] .profile-container,
[data-theme="dark"] .profile-header,
[data-theme="dark"] .profile-content {
  background-color: var(--ht-surface) !important;
  color: var(--ht-text) !important;
}

[data-theme="dark"] .energy-stat {
  background-color: var(--ht-surface-muted) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .energy-stat-value {
  color: var(--ht-text) !important;
}

/* ---- Tools ---- */
[data-theme="dark"] .tools-result-panel,
[data-theme="dark"] .tools-result-card {
  background-color: var(--ht-surface) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

/* ---- Links (preserve accent, fix visited in dark) ---- */
[data-theme="dark"] .app-main a:not(.btn):not(.btn-primary):not(.btn-secondary):not(.btn-danger):not(.btn-success):not(.action-btn):not(.app-nav-link):not(.landing-btn) {
  color: var(--ht-accent);
}

[data-theme="dark"] .app-main a:not(.btn):not(.btn-primary):not(.btn-secondary):not(.btn-danger):not(.btn-success):not(.action-btn):hover {
  color: var(--ht-accent-hover);
}

/* ---- Semantic banners (tinted, readable) ---- */
[data-theme="dark"] .results-info {
  background-color: var(--ht-success-light) !important;
  color: #6ee7b7 !important;
  border-left-color: var(--ht-success) !important;
}

[data-theme="dark"] .app-admin-reminder {
  background-color: var(--ht-warning-light) !important;
  color: #fcd34d !important;
  border-color: #78350f !important;
}

[data-theme="dark"] .profile-completion-banner,
[data-theme="dark"] .disclaimer {
  background-color: var(--ht-info-light) !important;
  color: #7dd3fc !important;
  border-color: var(--ht-border-strong) !important;
}

/* ---- Back links & secondary chips ---- */
[data-theme="dark"] .back-link,
[data-theme="dark"] .tools-nav__link:not(.is-active) {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text-secondary) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .back-link:hover,
[data-theme="dark"] .tools-nav__link:not(.is-active):hover {
  background-color: var(--ht-accent-light) !important;
  color: var(--ht-accent-hover) !important;
}

/* ---- Progress bars ---- */
[data-theme="dark"] .progress-bar-container {
  background-color: var(--ht-border) !important;
}

/* ---- Nutrition goals macro diary ---- */
[data-theme="dark"] .macro-diary-row,
[data-theme="dark"] .macro-goal-row {
  background-color: var(--ht-surface-muted) !important;
  color: var(--ht-text) !important;
  border-color: var(--ht-border) !important;
}

[data-theme="dark"] .macro-row-label {
  color: var(--ht-text-secondary) !important;
}

[data-theme="dark"] .macro-stat-chip.calories,
[data-theme="dark"] .macro-target-chip.calories {
  background-color: #422006 !important;
  border-color: #78350f !important;
  color: #fcd34d !important;
}

[data-theme="dark"] .macro-stat-chip.protein,
[data-theme="dark"] .macro-target-chip.protein {
  background-color: #1e3a5f !important;
  border-color: #1d4ed8 !important;
  color: #93c5fd !important;
}

[data-theme="dark"] .macro-stat-chip.carbs,
[data-theme="dark"] .macro-target-chip.carbs {
  background-color: #064e3b !important;
  border-color: #047857 !important;
  color: #6ee7b7 !important;
}

[data-theme="dark"] .macro-stat-chip.fat,
[data-theme="dark"] .macro-target-chip.fat {
  background-color: #500724 !important;
  border-color: #9d174d !important;
  color: #f9a8d4 !important;
}

[data-theme="dark"] .macro-stat-chip:not(.calories):not(.protein):not(.carbs):not(.fat),
[data-theme="dark"] .macro-target-chip:not(.calories):not(.protein):not(.carbs):not(.fat) {
  background-color: var(--ht-surface) !important;
  color: var(--ht-text-secondary) !important;
  border-color: var(--ht-border) !important;
}

/* ---- Tailwind-style slate text utilities (used across meal/workout pages) ---- */
[data-theme="dark"] .app-main .text-slate-900,
[data-theme="dark"] .app-guest-main .text-slate-900 {
  color: var(--ht-text) !important;
}

[data-theme="dark"] .app-main .text-slate-800,
[data-theme="dark"] .app-guest-main .text-slate-800 {
  color: var(--ht-text) !important;
}

[data-theme="dark"] .app-main .text-slate-700,
[data-theme="dark"] .app-guest-main .text-slate-700 {
  color: var(--ht-text-secondary) !important;
}

[data-theme="dark"] .app-main .text-slate-600,
[data-theme="dark"] .app-guest-main .text-slate-600 {
  color: var(--ht-text-secondary) !important;
}

[data-theme="dark"] .app-main .text-slate-500,
[data-theme="dark"] .app-guest-main .text-slate-500 {
  color: var(--ht-text-muted) !important;
}

[data-theme="dark"] .app-main .text-slate-400,
[data-theme="dark"] .app-guest-main .text-slate-400 {
  color: var(--ht-text-muted) !important;
}
