/* Breathing Exercise Styles - Material Design 3 */

.breathing-container {
  padding: 0;
}

.breathing-display {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  position: relative;
  margin: var(--spacing-lg) 0;
}

.breathing-circle {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--md-sys-color-primary) 0%, var(--md-sys-color-secondary) 70%, transparent 100%);
  box-shadow: 0 0 40px rgba(63, 81, 181, 0.4);
  transition: transform 4s ease-in-out;
  position: relative;
}

.breathing-circle::before {
  content: '';
  position: absolute;
  inset: 10px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.2) 0%, transparent 70%);
  opacity: 0.5;
}

/* Breathing phases */
.breathing-circle.inhale {
  transform: scale(1.8);
  transition-timing-function: ease-in;
  box-shadow: 0 0 60px rgba(63, 81, 181, 0.6);
}

.breathing-circle.hold {
  transform: scale(1.8);
  transition-duration: 0.3s;
}

.breathing-circle.exhale {
  transform: scale(1);
  transition-timing-function: ease-out;
  box-shadow: 0 0 30px rgba(63, 81, 181, 0.3);
}

.breathing-circle.hold-out {
  transform: scale(1);
  transition-duration: 0.3s;
}

.breathing-text {
  margin-top: var(--spacing-md);
  font-size: 18px;
  font-weight: 500;
  color: var(--md-sys-color-primary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  animation: fadeInOut 1s ease-in-out infinite;
}

@keyframes fadeInOut {
  0%, 100% {
    opacity: 0.7;
  }
  50% {
    opacity: 1;
  }
}

.breathing-timer {
  margin-top: var(--spacing-sm);
  font-size: 32px;
  font-weight: 500;
  color: var(--md-sys-color-on-surface);
  font-variant-numeric: tabular-nums;
  min-width: 60px;
  text-align: center;
}

.breathing-pattern-selector label {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  color: var(--md-sys-color-on-surface);
  font-size: 14px;
  margin-bottom: var(--spacing-sm);
  font-weight: 500;
}

.breathing-pattern-selector select {
  width: 100%;
  padding: var(--spacing-sm) var(--spacing-md);
  background-color: var(--md-sys-color-surface-variant);
  border: 1px solid var(--md-sys-color-outline-variant);
  border-radius: var(--radius-sm);
  color: var(--md-sys-color-on-surface);
  font-size: 14px;
  cursor: pointer;
}

.breathing-info .info-text {
  color: var(--md-sys-color-on-surface-variant);
  line-height: 1.5;
  font-size: 14px;
}

/* Animation for different breathing patterns */
.breathing-circle.bhramari {
  animation: vibrate 0.3s ease-in-out infinite;
}

@keyframes vibrate {
  0%, 100% {
    transform: scale(1.8) translateX(0);
  }
  25% {
    transform: scale(1.8) translateX(-2px);
  }
  75% {
    transform: scale(1.8) translateX(2px);
  }
}

/* Responsive adjustments */
@media (max-width: 380px) {
  .breathing-circle {
    width: 120px;
    height: 120px;
  }

  .breathing-circle.inhale,
  .breathing-circle.hold {
    transform: scale(1.6);
  }

  .breathing-text {
    font-size: 16px;
  }

  .breathing-timer {
    font-size: 28px;
  }
}

@media (min-width: 768px) {
  .breathing-circle {
    width: 180px;
    height: 180px;
  }

  .breathing-circle.inhale,
  .breathing-circle.hold {
    transform: scale(2);
  }

  .breathing-display {
    min-height: 400px;
  }
}

/* Accessibility: Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
  .breathing-circle {
    transition: none;
  }

  .breathing-text {
    animation: none;
    opacity: 1;
  }

  .breathing-circle.bhramari {
    animation: none;
  }
}
