/* 
  Mixins for reusable style patterns
*/

// Basic flex helpers
@mixin flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

@mixin flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

@mixin flex-column {
  display: flex;
  flex-direction: column;
}

// Glass effect for overlay
@mixin glass-overlay($opacity: 0.7) {
  background-color: rgba(var(--primary-bg), var(--opacity));
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

@mixin gradient-bg($start-color, $end-color, $direction: 135deg) {
  background: linear-gradient($direction, $start-color, $end-color);
}

// Basic transition
@mixin transition-standard {
  transition: all var(--duration-normal) var(--easing-ease-out);
}

@mixin shadow-standard {
  box-shadow: var(--shadow-standard);
}

@mixin shadow-hover {
  box-shadow: var(--shadow-hover);
}

@mixin text-shadow {
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.7);
}

// Simple animation for hover
@mixin hover-lift {
  &:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);
  }
}

// Responsive mixins
@mixin media-sm {
  @media (min-width: 576px) {
    @content;
  }
}

@mixin media-md {
  @media (min-width: 768px) {
    @content;
  }
}

@mixin media-lg {
  @media (min-width: 992px) {
    @content;
  }
}

@mixin media-xl {
  @media (min-width: 1200px) {
    @content;
  }
}

// Card base styling
@mixin card {
  background-color: var(--secondary-bg);
  border-radius: var(--radius-sm);
  @include shadow-standard;
  overflow: hidden;
  position: relative;
}

// Custom scrollbar
@mixin custom-scrollbar {
  &::-webkit-scrollbar {
    width: 8px;
  }

  &::-webkit-scrollbar-track {
    background: rgba(var(--primary-bg), 0.5);
    border-radius: 10px;
  }

  &::-webkit-scrollbar-thumb {
    background: var(--primary-color);
    border-radius: 10px;
    border: 2px solid var(--primary-bg);
  }

  &::-webkit-scrollbar-thumb:hover {
    background: color-mix(in srgb, white 10%, var(--primary-color));
  }
}
