@use 'sass:map';
@use 'base';
@use 'hero';
@use 'about';
@use 'services';
@use 'skills';
@use 'certifications';
@use 'projects';
@use 'contact';

// Combine all section themes into main theme maps
$light-theme: map.merge(
  base.$base-light-theme,
  map.merge(
    hero.$hero-light-theme,
    map.merge(
      about.$about-light-theme,
      map.merge(
        services.$services-light-theme,
        map.merge(
          skills.$skills-light-theme,
          map.merge(
            certifications.$certifications-light-theme,
            map.merge(
              projects.$projects-light-theme,
              contact.$contact-light-theme
            )
          )
        )
      )
    )
  )
);

$dark-theme: map.merge(
  base.$base-dark-theme,
  map.merge(
    hero.$hero-dark-theme,
    map.merge(
      about.$about-dark-theme,
      map.merge(
        services.$services-dark-theme,
        map.merge(
          skills.$skills-dark-theme,
          map.merge(
            certifications.$certifications-dark-theme,
            map.merge(
              projects.$projects-dark-theme,
              contact.$contact-dark-theme
            )
          )
        )
      )
    )
  )
);

// Mixin: SCSS-Map → CSS-Variables
@mixin theme-vars($theme) {
  --color-primary: #{map.get($theme, primary)};
  --color-background: #{map.get($theme, background)};
  --color-text: #{map.get($theme, text)};
  --color-text-muted: #{map.get($theme, text-muted)};
  --box-shadow-hover: #{map.get($theme, hover-box-shadow)};
  --box-shadow-active: #{map.get($theme, active-box-shadow)};
  --gradient-primary: #{map.get($theme, gradient-primary)};
  --gradient-text: #{map.get($theme, gradient-text)};

  // Common card and form variables
  --card-border-radius: #{map.get($theme, card-border-radius)};
  --card-padding: #{map.get($theme, card-padding)};
  --card-padding-sm: #{map.get($theme, card-padding-sm)};
  --card-gap-sm: #{map.get($theme, card-gap-sm)};
  --form-background: #{map.get($theme, form-background)};
  --form-border: #{map.get($theme, form-border)};
  --text-primary: #{map.get($theme, text-primary)};
  --text-secondary: #{map.get($theme, text-secondary)};
  --primary-color: #{map.get($theme, primary-color)};
  --transition-default: #{map.get($theme, transition-default)};

  // Hero section variables
  --hero-background: #{map.get($theme, hero-background)};

  // Stat variables using semantic naming
  --stat-primary-bg: #{map.get($theme, stat-primary-bg)};
  --stat-primary-value: #{map.get($theme, stat-primary-value)};
  --stat-primary-label: #{map.get($theme, stat-primary-label)};
  --stat-secondary-bg: #{map.get($theme, stat-secondary-bg)};
  --stat-secondary-value: #{map.get($theme, stat-secondary-value)};
  --stat-secondary-label: #{map.get($theme, stat-secondary-label)};
  --stat-tertiary-bg: #{map.get($theme, stat-tertiary-bg)};
  --stat-tertiary-value: #{map.get($theme, stat-tertiary-value)};
  --stat-tertiary-label: #{map.get($theme, stat-tertiary-label)};
  --stat-quaternary-bg: #{map.get($theme, stat-quaternary-bg)};
  --stat-quaternary-value: #{map.get($theme, stat-quaternary-value)};
  --stat-quaternary-label: #{map.get($theme, stat-quaternary-label)};

  // About section variables
  --about-background: #{map.get($theme, about-background)};
  --gradient-about-title: #{map.get($theme, gradient-about-title)};
  --about-greeting-color: #{map.get($theme, about-greeting-color)};
  --gradient-image-overlay: #{map.get($theme, gradient-image-overlay)};

  // Skill badge variables using semantic naming
  --skill-badge-primary-bg: #{map.get($theme, skill-badge-primary-bg)};
  --skill-badge-primary-text: #{map.get($theme, skill-badge-primary-text)};
  --skill-badge-secondary-bg: #{map.get($theme, skill-badge-secondary-bg)};
  --skill-badge-secondary-text: #{map.get($theme, skill-badge-secondary-text)};
  --skill-badge-tertiary-bg: #{map.get($theme, skill-badge-tertiary-bg)};
  --skill-badge-tertiary-text: #{map.get($theme, skill-badge-tertiary-text)};
  --skill-badge-quaternary-bg: #{map.get($theme, skill-badge-quaternary-bg)};
  --skill-badge-quaternary-text: #{map.get($theme, skill-badge-quaternary-text)};

  // Feature card variables using semantic naming
  --feature-card-primary-bg: #{map.get($theme, feature-card-primary-bg)};
  --feature-card-secondary-bg: #{map.get($theme, feature-card-secondary-bg)};
  --feature-card-tertiary-bg: #{map.get($theme, feature-card-tertiary-bg)};
  --feature-icon-primary: #{map.get($theme, feature-icon-primary)};
  --feature-icon-secondary: #{map.get($theme, feature-icon-secondary)};
  --feature-icon-tertiary: #{map.get($theme, feature-icon-tertiary)};
  --feature-title-primary: #{map.get($theme, feature-title-primary)};
  --feature-title-secondary: #{map.get($theme, feature-title-secondary)};
  --feature-title-tertiary: #{map.get($theme, feature-title-tertiary)};
  --feature-description-primary: #{map.get($theme, feature-description-primary)};
  --feature-description-secondary: #{map.get(
      $theme,
      feature-description-secondary
    )};
  --feature-description-tertiary: #{map.get(
      $theme,
      feature-description-tertiary
    )};

  // Services section variables
  --services-background: #{map.get($theme, services-background)};
  --gradient-services-title: #{map.get($theme, gradient-services-title)};

  // Service card variables
  --service-card-primary-bg: #{map.get($theme, service-card-primary-bg)};
  --service-card-secondary-bg: #{map.get($theme, service-card-secondary-bg)};
  --service-card-tertiary-bg: #{map.get($theme, service-card-tertiary-bg)};
  --service-card-quaternary-bg: #{map.get($theme, service-card-quaternary-bg)};
  --service-card-quinary-bg: #{map.get($theme, service-card-quinary-bg)};
  --service-card-senary-bg: #{map.get($theme, service-card-senary-bg)};

  --service-icon-primary: #{map.get($theme, service-icon-primary)};
  --service-icon-secondary: #{map.get($theme, service-icon-secondary)};
  --service-icon-tertiary: #{map.get($theme, service-icon-tertiary)};
  --service-icon-quaternary: #{map.get($theme, service-icon-quaternary)};
  --service-icon-quinary: #{map.get($theme, service-icon-quinary)};
  --service-icon-senary: #{map.get($theme, service-icon-senary)};

  --service-title-primary: #{map.get($theme, service-title-primary)};
  --service-title-secondary: #{map.get($theme, service-title-secondary)};
  --service-title-tertiary: #{map.get($theme, service-title-tertiary)};
  --service-title-quaternary: #{map.get($theme, service-title-quaternary)};
  --service-title-quinary: #{map.get($theme, service-title-quinary)};
  --service-title-senary: #{map.get($theme, service-title-senary)};

  --service-description-primary: #{map.get($theme, service-description-primary)};
  --service-description-secondary: #{map.get(
      $theme,
      service-description-secondary
    )};
  --service-description-tertiary: #{map.get(
      $theme,
      service-description-tertiary
    )};
  --service-description-quaternary: #{map.get(
      $theme,
      service-description-quaternary
    )};
  --service-description-quinary: #{map.get($theme, service-description-quinary)};
  --service-description-senary: #{map.get($theme, service-description-senary)};

  // Skills section variables
  --skills-background: #{map.get($theme, skills-background)};
  --skills-background-pattern: #{map.get($theme, skills-background-pattern)};
  --gradient-skills-title: #{map.get($theme, gradient-skills-title)};
  --skills-category-bg: #{map.get($theme, skills-category-bg)};
  --skills-category-border: #{map.get($theme, skills-category-border)};
  --skills-category-title-color: #{map.get($theme, skills-category-title-color)};
  --skills-skill-name-color: #{map.get($theme, skills-skill-name-color)};
  --skills-skill-level-color: #{map.get($theme, skills-skill-level-color)};
  --skills-skill-percentage-color: #{map.get(
      $theme,
      skills-skill-percentage-color
    )};
  --skills-progress-bg: #{map.get($theme, skills-progress-bg)};

  // Card-specific backgrounds and accents
  --skills-category-bg-primary: #{map.get($theme, skills-category-bg-primary)};
  --skills-category-border-primary: #{map.get(
      $theme,
      skills-category-border-primary
    )};
  --skills-gradient-primary: #{map.get($theme, skills-gradient-primary)};
  --skills-accent-primary: #{map.get($theme, skills-accent-primary)};

  --skills-category-bg-secondary: #{map.get(
      $theme,
      skills-category-bg-secondary
    )};
  --skills-category-border-secondary: #{map.get(
      $theme,
      skills-category-border-secondary
    )};
  --skills-gradient-secondary: #{map.get($theme, skills-gradient-secondary)};
  --skills-accent-secondary: #{map.get($theme, skills-accent-secondary)};

  --skills-category-bg-tertiary: #{map.get($theme, skills-category-bg-tertiary)};
  --skills-category-border-tertiary: #{map.get(
      $theme,
      skills-category-border-tertiary
    )};
  --skills-gradient-tertiary: #{map.get($theme, skills-gradient-tertiary)};
  --skills-accent-tertiary: #{map.get($theme, skills-accent-tertiary)};

  --skills-category-bg-quaternary: #{map.get(
      $theme,
      skills-category-bg-quaternary
    )};
  --skills-category-border-quaternary: #{map.get(
      $theme,
      skills-category-border-quaternary
    )};
  --skills-gradient-quaternary: #{map.get($theme, skills-gradient-quaternary)};
  --skills-accent-quaternary: #{map.get($theme, skills-accent-quaternary)};

  --skills-category-bg-quinary: #{map.get($theme, skills-category-bg-quinary)};
  --skills-category-border-quinary: #{map.get(
      $theme,
      skills-category-border-quinary
    )};
  --skills-gradient-quinary: #{map.get($theme, skills-gradient-quinary)};
  --skills-accent-quinary: #{map.get($theme, skills-accent-quinary)};

  --skills-category-bg-senary: #{map.get($theme, skills-category-bg-senary)};
  --skills-category-border-senary: #{map.get(
      $theme,
      skills-category-border-senary
    )};
  --skills-gradient-senary: #{map.get($theme, skills-gradient-senary)};
  --skills-accent-senary: #{map.get($theme, skills-accent-senary)};

  // Progress bar colors
  --skills-progress-primary: #{map.get($theme, skills-progress-primary)};
  --skills-progress-secondary: #{map.get($theme, skills-progress-secondary)};
  --skills-progress-tertiary: #{map.get($theme, skills-progress-tertiary)};
  --skills-progress-quaternary: #{map.get($theme, skills-progress-quaternary)};
  --skills-progress-quinary: #{map.get($theme, skills-progress-quinary)};
  --skills-progress-senary: #{map.get($theme, skills-progress-senary)};

  // Certifications section variables
  --certifications-background: #{map.get($theme, certifications-background)};
  --gradient-certifications-title: #{map.get(
      $theme,
      gradient-certifications-title
    )};
  --color-certifications-primary: #{map.get(
      $theme,
      color-certifications-primary
    )};
  --certifications-card-background: #{map.get(
      $theme,
      certifications-card-background
    )};
  --certifications-card-shadow: #{map.get($theme, certifications-card-shadow)};
  --certifications-card-shadow-hover: #{map.get(
      $theme,
      certifications-card-shadow-hover
    )};
  --certifications-card-overlay: #{map.get($theme, certifications-card-overlay)};
  --certifications-badge-background: #{map.get(
      $theme,
      certifications-badge-background
    )};
  --certifications-badge-border: #{map.get($theme, certifications-badge-border)};
  --color-certifications-badge-text: #{map.get(
      $theme,
      color-certifications-badge-text
    )};

  // Projects section variables
  --projects-background: #{map.get($theme, projects-background)};
  --gradient-projects-title: #{map.get($theme, gradient-projects-title)};
  --projects-card-background: #{map.get($theme, projects-card-background)};
  --projects-card-border: #{map.get($theme, projects-card-border)};
  --projects-card-shadow: #{map.get($theme, projects-card-shadow)};
  --projects-card-shadow-hover: #{map.get($theme, projects-card-shadow-hover)};
  --projects-overlay-background: #{map.get($theme, projects-overlay-background)};
  --projects-button-primary-bg: #{map.get($theme, projects-button-primary-bg)};
  --projects-button-primary-text: #{map.get(
      $theme,
      projects-button-primary-text
    )};
  --projects-button-primary-border: #{map.get(
      $theme,
      projects-button-primary-border
    )};
  --projects-button-primary-hover-bg: #{map.get(
      $theme,
      projects-button-primary-hover-bg
    )};
  --projects-button-secondary-bg: #{map.get(
      $theme,
      projects-button-secondary-bg
    )};
  --projects-button-secondary-text: #{map.get(
      $theme,
      projects-button-secondary-text
    )};
  --projects-button-secondary-border: #{map.get(
      $theme,
      projects-button-secondary-border
    )};
  --projects-button-secondary-hover-bg: #{map.get(
      $theme,
      projects-button-secondary-hover-bg
    )};
  --projects-tech-badge-bg: #{map.get($theme, projects-tech-badge-bg)};
  --projects-tech-badge-text: #{map.get($theme, projects-tech-badge-text)};
  --projects-tech-badge-border: #{map.get($theme, projects-tech-badge-border)};

  // Contact section variables
  --contact-background: #{map.get($theme, contact-background)};
  --gradient-contact-title: #{map.get($theme, gradient-contact-title)};
  --color-contact-primary: #{map.get($theme, color-contact-primary)};
  --contact-form-bg: #{map.get($theme, contact-form-bg)};
  --contact-form-border: #{map.get($theme, contact-form-border)};
  --contact-form-shadow: #{map.get($theme, contact-form-shadow)};
  --contact-input-bg: #{map.get($theme, contact-input-bg)};
  --contact-input-border: #{map.get($theme, contact-input-border)};
  --contact-input-focus-ring: #{map.get($theme, contact-input-focus-ring)};
  --contact-button-bg: #{map.get($theme, contact-button-bg)};
  --contact-button-text: #{map.get($theme, contact-button-text)};
  --contact-button-hover-bg: #{map.get($theme, contact-button-hover-bg)};
  --contact-social-bg: #{map.get($theme, contact-social-bg)};
  --contact-social-text: #{map.get($theme, contact-social-text)};
  --contact-social-border: #{map.get($theme, contact-social-border)};
  --contact-social-hover-bg: #{map.get($theme, contact-social-hover-bg)};
  --contact-social-hover-border: #{map.get($theme, contact-social-hover-border)};
  --contact-status-success-bg: #{map.get($theme, contact-status-success-bg)};
  --contact-status-success-border: #{map.get(
      $theme,
      contact-status-success-border
    )};
  --contact-status-success-text: #{map.get($theme, contact-status-success-text)};
  --contact-status-error-bg: #{map.get($theme, contact-status-error-bg)};
  --contact-status-error-border: #{map.get($theme, contact-status-error-border)};
  --contact-status-error-text: #{map.get($theme, contact-status-error-text)};

  // Additional variables
  --box-shadow-hover: #{map.get($theme, box-shadow-hover)};
  --bg-primary: #{map.get($theme, bg-primary)};
  --bg-secondary: #{map.get($theme, bg-secondary)};
  --border-color: #{map.get($theme, border-color)};
}
