/**
 * Glassmorphism Effects
 * Modern glass-like UI components with blur and transparency
 */

/* ========================================
 * BASE GLASS EFFECT
 * ======================================== */
.glass {
  background: rgba(var(--color-white-rgb), 0.1);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(var(--color-white-rgb), 0.18);
  box-shadow: var(--shadow-glass);
}

/* ========================================
 * GLASS VARIANTS
 * ======================================== */

/* Light Glass - More transparent, subtle */
.glass-light {
  background: rgba(var(--color-white-rgb), 0.15);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(var(--color-white-rgb), 0.25);
  box-shadow: 0 4px 24px 0 rgba(var(--color-black-rgb), 0.15);
}

/* Dark Glass - Deeper, more contrast */
.glass-dark {
  background: rgba(var(--color-charcoal-rgb), 0.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(var(--color-white-rgb), 0.1);
  box-shadow: 0 8px 32px 0 rgba(var(--color-black-rgb), 0.5);
}

/* Graphite Glass - Brand-specific */
.glass-graphite {
  background: rgba(var(--color-graphite-rgb), 0.7);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(var(--color-dusty-taupe-rgb), 0.2);
  box-shadow: 0 8px 32px 0 rgba(var(--color-deep-walnut-rgb), 0.4);
}

/* Taupe Glass - Warm variant */
.glass-taupe {
  background: rgba(var(--color-dusty-taupe-rgb), 0.3);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(var(--color-warm-stone-rgb), 0.25);
  box-shadow: 0 8px 32px 0 rgba(var(--color-deep-walnut-rgb), 0.3);
}

/* ========================================
 * GLASS CARDS
 * ======================================== */
.glass-card {
  background: rgba(var(--color-white-rgb), 0.1);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(var(--color-white-rgb), 0.18);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-glass);
  padding: var(--space-6);
  transition: transform var(--transition-normal) var(--ease-default),
              box-shadow var(--transition-normal) var(--ease-default);
}

.glass-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 40px 0 rgba(var(--color-black-rgb), 0.4);
}

/* Glass Card - Dark variant */
.glass-card-dark {
  background: rgba(var(--color-charcoal-rgb), 0.65);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(var(--color-white-rgb), 0.08);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-glass);
  padding: var(--space-6);
  transition: transform var(--transition-normal) var(--ease-default),
              box-shadow var(--transition-normal) var(--ease-default);
}

.glass-card-dark:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 40px 0 rgba(var(--color-black-rgb), 0.5);
}

/* ========================================
 * GLASS INPUTS
 * ======================================== */
.glass-input {
  background: rgba(var(--color-white-rgb), 0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(var(--color-white-rgb), 0.15);
  border-radius: var(--radius-lg);
  color: var(--color-cream);
  font-family: var(--font-family-primary);
  font-size: var(--font-size-base);
  padding: var(--space-3) var(--space-4);
  transition: border-color var(--transition-normal) var(--ease-default),
              background var(--transition-normal) var(--ease-default),
              box-shadow var(--transition-normal) var(--ease-default);
  width: 100%;
}

.glass-input::placeholder {
  color: rgba(var(--color-cream-rgb), 0.5);
}

.glass-input:focus {
  outline: none;
  background: rgba(var(--color-white-rgb), 0.12);
  border-color: rgba(var(--color-dusty-taupe-rgb), 0.5);
  box-shadow: 0 0 0 3px rgba(var(--color-dusty-taupe-rgb), 0.2);
}

.glass-input:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ========================================
 * GLASS BUTTONS
 * ======================================== */
.glass-button {
  background: rgba(var(--color-white-rgb), 0.1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(var(--color-white-rgb), 0.2);
  border-radius: var(--radius-lg);
  color: var(--color-cream);
  cursor: pointer;
  font-family: var(--font-family-primary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  padding: var(--space-3) var(--space-6);
  transition: all var(--transition-normal) var(--ease-default);
}

.glass-button:hover {
  background: rgba(var(--color-white-rgb), 0.18);
  border-color: rgba(var(--color-white-rgb), 0.3);
  transform: translateY(-1px);
}

.glass-button:active {
  transform: translateY(0);
}

.glass-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

/* Primary Glass Button */
.glass-button-primary {
  background: rgba(var(--color-dusty-taupe-rgb), 0.6);
  border: 1px solid rgba(var(--color-warm-stone-rgb), 0.4);
}

.glass-button-primary:hover {
  background: rgba(var(--color-dusty-taupe-rgb), 0.75);
  border-color: rgba(var(--color-warm-stone-rgb), 0.6);
}

/* Secondary Glass Button (Ghost) */
.glass-button-ghost {
  background: transparent;
  border: 1px solid rgba(var(--color-white-rgb), 0.2);
}

.glass-button-ghost:hover {
  background: rgba(var(--color-white-rgb), 0.1);
}

/* ========================================
 * GLASS PANELS
 * ======================================== */
.glass-panel {
  background: rgba(var(--color-charcoal-rgb), 0.5);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(var(--color-white-rgb), 0.1);
  border-radius: var(--radius-xl);
}

/* ========================================
 * GLASS OVERLAY
 * ======================================== */
.glass-overlay {
  background: rgba(var(--color-charcoal-rgb), 0.4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* ========================================
 * GLASS DIVIDER
 * ======================================== */
.glass-divider {
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(var(--color-white-rgb), 0.2),
    transparent
  );
  border: none;
  margin: var(--space-4) 0;
}

/* ========================================
 * FROST EFFECT (Heavy blur)
 * ======================================== */
.frost {
  background: rgba(var(--color-white-rgb), 0.25);
  backdrop-filter: blur(40px) saturate(180%);
  -webkit-backdrop-filter: blur(40px) saturate(180%);
  border: 1px solid rgba(var(--color-white-rgb), 0.3);
}

/* ========================================
 * GLASS UTILITIES
 * ======================================== */

/* Blur amounts */
.blur-sm { backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.blur-md { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.blur-lg { backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.blur-xl { backdrop-filter: blur(40px); -webkit-backdrop-filter: blur(40px); }

/* Glass opacity variants */
.glass-opacity-10 { background: rgba(var(--color-white-rgb), 0.1); }
.glass-opacity-20 { background: rgba(var(--color-white-rgb), 0.2); }
.glass-opacity-30 { background: rgba(var(--color-white-rgb), 0.3); }

/* Dark glass opacity variants */
.glass-dark-opacity-40 { background: rgba(var(--color-charcoal-rgb), 0.4); }
.glass-dark-opacity-60 { background: rgba(var(--color-charcoal-rgb), 0.6); }
.glass-dark-opacity-80 { background: rgba(var(--color-charcoal-rgb), 0.8); }
