/*
 * Manabi Video Navi V335 — learner clarity and failure recovery.
 *
 * Final presentation layer only. No form fields, URLs, grading rules,
 * entitlements, authentication boundaries or billing operations are changed.
 */

/* A concise sentence explains the four-stage rail before the visual map. */
body.app-shell .mf-journey-rail .mf-journey-summary {
  display: flex !important;
  min-width: 0 !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 0 8px !important;
  padding: 3px 7px 9px !important;
  border-bottom: 1px solid rgba(150, 180, 211, .42) !important;
  color: #244564 !important;
  -webkit-text-fill-color: #244564 !important;
  line-height: 1.45 !important;
}

body.app-shell .mf-journey-rail .mf-journey-summary > span {
  flex: 0 0 auto !important;
  padding: 3px 8px !important;
  border-radius: 999px !important;
  background: #e9f4ff !important;
  color: #075e91 !important;
  -webkit-text-fill-color: #075e91 !important;
  font-size: 12px !important;
  font-weight: 850 !important;
}

body.app-shell .mf-journey-rail .mf-journey-summary > strong {
  min-width: 0 !important;
  color: #0c2947 !important;
  -webkit-text-fill-color: #0c2947 !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

body.app-shell .mf-journey-rail .mf-journey-summary > small {
  min-width: 0 !important;
  margin-left: auto !important;
  color: #3d5872 !important;
  -webkit-text-fill-color: #3d5872 !important;
  font-size: 12px !important;
  overflow-wrap: anywhere !important;
}

/* The progress rail belongs to document flow. It never follows the learner
 * over a video, question, handwriting sheet or result card. */
body.app-shell[data-focus-flow="1"] #main-content .mf-journey-rail {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  bottom: auto !important;
  z-index: 20 !important;
  transform: none !important;
  overflow: visible !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* A learning screen keeps one help entry. It sits after the task instead of
 * floating above handwriting, submit buttons or the phone safe area. */
body.app-shell[data-focus-flow="1"] .future-utility-dock {
  position: relative !important;
  inset: auto !important;
  z-index: 20 !important;
  display: flex !important;
  width: min(calc(100% - 24px), 1120px) !important;
  max-width: calc(100% - 24px) !important;
  margin: 18px auto !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  pointer-events: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

body.app-shell[data-focus-flow="1"] .future-utility-dock > .guide-fab {
  position: relative !important;
  inset: auto !important;
  width: auto !important;
  min-width: 48px !important;
  max-width: 190px !important;
  height: 48px !important;
  min-height: 48px !important;
  pointer-events: auto !important;
}

/* Focused lessons use a small support footer, not the marketing directory. */
body.app-shell .focus-flow-footer {
  margin-top: 22px !important;
  padding: 18px max(16px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)) !important;
  border-top: 1px solid rgba(147, 177, 208, .30) !important;
}

body.app-shell .focus-flow-footer .focus-flow-footer-inner {
  display: flex !important;
  width: min(100%, 1120px) !important;
  margin: 0 auto !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
}

body.app-shell .focus-flow-footer .brand {
  min-width: 0 !important;
}

body.app-shell .focus-flow-footer nav {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  gap: 8px 16px !important;
}

body.app-shell .focus-flow-footer nav a {
  color: #dcecff !important;
  -webkit-text-fill-color: #dcecff !important;
  font-size: 13px !important;
  font-weight: 750 !important;
}

body.app-shell .focus-flow-footer .footer-bottom {
  width: min(100%, 1120px) !important;
  margin: 12px auto 0 !important;
  padding-top: 12px !important;
}

/* Network status is inserted at the start of main so it cannot cover work. */
body.app-shell .mnv-connectivity-banner {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  width: min(100%, 1120px) !important;
  margin: 0 auto 16px !important;
  padding: 14px 16px !important;
  align-items: center !important;
  gap: 12px !important;
  border: 2px solid #c87500 !important;
  border-radius: 16px !important;
  background: #fff7e8 !important;
  color: #3f2a0b !important;
  -webkit-text-fill-color: #3f2a0b !important;
  box-shadow: 0 12px 30px rgba(62, 42, 12, .13) !important;
}

body.app-shell .mnv-connectivity-banner[hidden] {
  display: none !important;
}

body.app-shell .mnv-connectivity-banner.is-online {
  border-color: #13734d !important;
  background: #ecfff6 !important;
  color: #123d2e !important;
  -webkit-text-fill-color: #123d2e !important;
}

body.app-shell .mnv-connectivity-banner .mnv-connectivity-icon {
  display: grid !important;
  width: 40px !important;
  height: 40px !important;
  place-items: center !important;
  border-radius: 12px !important;
  background: #ffdfab !important;
  color: #704100 !important;
  -webkit-text-fill-color: #704100 !important;
  font-size: 21px !important;
  font-weight: 900 !important;
}

body.app-shell .mnv-connectivity-banner.is-online .mnv-connectivity-icon {
  background: #c7f4df !important;
  color: #075b3a !important;
  -webkit-text-fill-color: #075b3a !important;
}

body.app-shell .mnv-connectivity-banner :is(strong, p) {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

body.app-shell .mnv-connectivity-banner strong {
  display: block !important;
  font-size: 15px !important;
}

body.app-shell .mnv-connectivity-banner p {
  margin: 2px 0 0 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

body.app-shell .mnv-connectivity-banner button {
  min-height: 44px !important;
  white-space: normal !important;
}

@media (max-width: 780px) {
  body.app-shell .mf-journey-rail .mf-journey-summary {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    gap: 4px 8px !important;
  }

  body.app-shell .mf-journey-rail .mf-journey-summary > small {
    grid-column: 2 !important;
    margin-left: 0 !important;
  }

  body.app-shell #main-content .mf-journey-rail > ol {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 8px !important;
    padding: 0 !important;
  }

  body.app-shell #main-content .mf-journey-rail li {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) !important;
    min-width: 0 !important;
    min-height: 58px !important;
    padding: 8px !important;
    gap: 7px !important;
    border: 1px solid rgba(106, 154, 199, .25) !important;
    border-radius: 13px !important;
  }

  body.app-shell #main-content .mf-journey-rail li::after {
    display: none !important;
    content: none !important;
  }

  body.app-shell #main-content .mf-journey-step-copy {
    min-width: 0 !important;
  }

  body.app-shell #main-content .mf-journey-step-copy :is(strong, small) {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.app-shell .focus-flow-footer .focus-flow-footer-inner {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  body.app-shell .focus-flow-footer nav {
    justify-content: flex-start !important;
  }

  body.app-shell .mnv-connectivity-banner {
    grid-template-columns: auto minmax(0, 1fr) !important;
    margin-bottom: 12px !important;
  }

  body.app-shell .mnv-connectivity-banner button {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }
}

@media (max-width: 390px) {
  body.app-shell #main-content .mf-journey-step-copy small {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.app-shell .mnv-connectivity-banner {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

@media (forced-colors: active) {
  body.app-shell :is(.mf-journey-summary, .mnv-connectivity-banner, .focus-flow-footer) {
    border-color: CanvasText !important;
    background: Canvas !important;
    color: CanvasText !important;
    -webkit-text-fill-color: CanvasText !important;
    forced-color-adjust: auto !important;
  }
}
