/* =============================================================================
   Navigation Component Styles
   Screen containers, breadcrumb, and progress indicator
   ============================================================================= */

/* =============================================================================
   Screen Container System
   ============================================================================= */

#screen-container {
  position: relative;
  width: 100%;
  min-height: calc(100vh - var(--header-height) - env(safe-area-inset-top));
}

.screen {
  display: none;
  opacity: 0;
  transition: opacity 300ms ease-in-out;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  min-height: calc(100vh - var(--header-height) - env(safe-area-inset-top));
}

.screen.active {
  display: block;
  opacity: 1;
  position: relative;
}

/* Screen content wrapper */
.screen-content {
  padding: var(--space-md);
  max-width: var(--max-content-width);
  margin: 0 auto;
}

@media (min-width: 768px) {
  .screen-content {
    padding: var(--space-lg);
  }
}

/* Screen headings */
.screen-content h2 {
  text-align: center;
  margin-bottom: var(--space-lg);
  color: white;
}

/* =============================================================================
   Fullscreen Screens
   ============================================================================= */

.fullscreen-screen {
  /* Override standard screen sizing */
}

.fullscreen-screen.active {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 900;
  min-height: 100vh;
  background: var(--navy-blue);
  padding-top: 0;
}

/* Hide header when fullscreen screen is active */
body.fullscreen-active .app-header {
  display: none;
}

/* Adjust main content when fullscreen is active */
body.fullscreen-active .main-content {
  padding-top: 0;
}

/* Fullscreen containers take full viewport */
.fullscreen-screen #wizard-container,
.fullscreen-screen #video-capture-container,
.fullscreen-screen #photo-capture-container {
  height: 100vh;
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
}

/* =============================================================================
   Breadcrumb Navigation
   ============================================================================= */

.breadcrumb-nav {
  display: none;
  padding: var(--space-sm) var(--space-md);
  background: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.breadcrumb-nav.visible {
  display: block;
}

.breadcrumb {
  max-width: var(--max-content-width);
  margin: 0 auto;
}

.breadcrumb-list {
  display: flex;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
  gap: var(--space-xs);
}

.breadcrumb-item {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}

.breadcrumb-link {
  background: none;
  border: none;
  color: var(--papyrus-gold);
  font-size: var(--font-size-sm);
  cursor: pointer;
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--border-radius-sm);
  transition: background-color 0.2s ease, color 0.2s ease;
  text-decoration: none;
}

.breadcrumb-link:hover,
.breadcrumb-link:focus {
  background: rgba(255, 255, 255, 0.1);
  color: white;
  outline: none;
}

.breadcrumb-text {
  color: var(--papyrus-light);
  font-size: var(--font-size-sm);
}

.breadcrumb-current {
  color: white;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
}

.breadcrumb-separator {
  color: rgba(255, 255, 255, 0.4);
  font-size: 10px;
  margin: 0 var(--space-xs);
}

/* =============================================================================
   Progress Indicator
   ============================================================================= */

.progress-indicator {
  display: none;
  padding: var(--space-sm) var(--space-md);
  background: rgba(0, 0, 0, 0.2);
}

.progress-indicator.visible {
  display: block;
}

.progress-wrapper {
  max-width: var(--max-content-width);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.progress-text {
  color: var(--papyrus-gold);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  text-align: center;
}

/* Progress bar */
.progress-bar-container {
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 2px;
  overflow: hidden;
}

.progress-bar {
  height: 100%;
  background: var(--papyrus-gold);
  border-radius: 2px;
  transition: width 300ms ease-in-out;
}

/* Progress dots */
.progress-dots {
  display: flex;
  justify-content: center;
  gap: var(--space-sm);
}

.progress-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.progress-dot.completed {
  background: var(--green-grade);
}

.progress-dot.active {
  background: var(--papyrus-gold);
  transform: scale(1.25);
}

/* =============================================================================
   Screen Transition Animations
   ============================================================================= */

/* Fade transition (default) */
.screen-fade-enter {
  opacity: 0;
}

.screen-fade-enter-active {
  opacity: 1;
  transition: opacity 300ms ease-in-out;
}

.screen-fade-exit {
  opacity: 1;
}

.screen-fade-exit-active {
  opacity: 0;
  transition: opacity 300ms ease-in-out;
}

/* Slide from right */
.screen-slide-enter {
  transform: translateX(100%);
  opacity: 0;
}

.screen-slide-enter-active {
  transform: translateX(0);
  opacity: 1;
  transition: transform 300ms ease-in-out, opacity 300ms ease-in-out;
}

.screen-slide-exit {
  transform: translateX(0);
  opacity: 1;
}

.screen-slide-exit-active {
  transform: translateX(-100%);
  opacity: 0;
  transition: transform 300ms ease-in-out, opacity 300ms ease-in-out;
}

/* =============================================================================
   Responsive Adjustments
   ============================================================================= */

@media (min-width: 768px) {
  .breadcrumb-nav {
    padding: var(--space-sm) var(--space-lg);
  }

  .progress-indicator {
    padding: var(--space-sm) var(--space-lg);
  }

  .progress-dots {
    gap: var(--space-md);
  }

  .progress-dot {
    width: 10px;
    height: 10px;
  }
}

/* =============================================================================
   Print Styles
   ============================================================================= */

@media print {
  .breadcrumb-nav,
  .progress-indicator {
    display: none;
  }

  .screen {
    display: block !important;
    opacity: 1 !important;
    position: relative !important;
    page-break-after: always;
  }

  .fullscreen-screen {
    position: relative !important;
    min-height: auto !important;
  }
}

/* =============================================================================
   Accessibility
   ============================================================================= */

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  .screen,
  .progress-bar,
  .progress-dot,
  .breadcrumb-link,
  .screen-fade-enter-active,
  .screen-fade-exit-active,
  .screen-slide-enter-active,
  .screen-slide-exit-active {
    transition: none !important;
  }
}

/* High contrast mode support */
@media (forced-colors: active) {
  .progress-bar {
    background: CanvasText;
  }

  .progress-dot {
    border: 2px solid CanvasText;
  }

  .progress-dot.active,
  .progress-dot.completed {
    background: CanvasText;
  }

  .breadcrumb-link:focus {
    outline: 2px solid CanvasText;
  }
}
