.rider-training-page {
  min-height: 100vh;
  background: #f5f8ff;
  color: #07152f;
}

.training-shell {
  width: min(1220px, calc(100% - 32px));
  margin: 0 auto;
  padding: 18px 0 56px;
}

.training-hero {
  min-height: 76vh;
  display: grid;
  align-content: start;
  gap: 34px;
  padding: 16px 0 34px;
}

.training-nav,
.training-nav-actions,
.training-hero-actions,
.training-stage-controls,
.source-grid {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.training-nav {
  justify-content: space-between;
}

.training-brand img {
  height: 38px;
  width: auto;
}

.training-nav-link,
.training-primary,
.training-secondary,
.training-stage-controls button,
.training-lang-switch button {
  min-height: 42px;
  border-radius: 8px;
  border: 1px solid rgba(8, 120, 255, 0.2);
  padding: 10px 14px;
  font-weight: 850;
  cursor: pointer;
}

.training-lang-switch {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border-radius: 999px;
  border: 1px solid rgba(8, 120, 255, 0.18);
  background: #ffffff;
}

.training-lang-switch button {
  min-width: 54px;
  min-height: 34px;
  padding: 7px 10px;
  border-radius: 999px;
  background: transparent;
  color: #344866;
}

.training-lang-switch button.is-active {
  background: #0878ff;
  color: #ffffff;
}

.training-primary {
  background: #0878ff;
  color: #ffffff;
  border-color: #0878ff;
}

.training-primary:disabled {
  cursor: wait;
  opacity: 0.66;
}

.training-secondary,
.training-nav-link,
.training-stage-controls button {
  background: #ffffff;
  color: #0d1f3e;
}

.training-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 28px;
  align-items: end;
}

.training-hero-copy {
  padding-top: 9vh;
}

.training-kicker {
  margin: 0 0 10px;
  color: #0878ff;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.training-hero h1,
.training-check-panel h2,
.training-proof h2,
.training-quiz h2,
.training-sources h2 {
  margin: 0;
  font-family: "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: 0;
  color: #061126;
}

.training-hero h1 {
  max-width: 820px;
  font-size: 72px;
  line-height: 0.98;
}

.training-hero-copy > p,
.training-proof p,
.training-check-panel li,
.source-grid a {
  color: #344866;
}

.training-hero-copy > p {
  max-width: 740px;
  margin: 22px 0;
  font-size: 18px;
  line-height: 1.55;
}

.training-progress-panel,
.training-stage-card,
.training-check-panel,
.training-proof,
.training-video-panel,
.training-quiz,
.training-sources {
  border: 1px solid rgba(9, 36, 80, 0.12);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 42px rgba(15, 35, 70, 0.1);
}

.training-progress-panel {
  display: grid;
  gap: 12px;
  padding: 22px;
}

.training-progress-panel img {
  width: 48px;
  height: 48px;
  border-radius: 8px;
}

.training-progress-panel span {
  color: #61708a;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.training-progress-panel strong {
  font-size: 42px;
  line-height: 1;
}

.training-progress-track {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #dce7f6;
}

.training-progress-track i {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, #0878ff, #16a976);
  transition: width 180ms ease;
}

.training-progress-panel p,
.training-module small,
.proof-grid small {
  color: #61708a;
}

.training-workbench {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr) 320px;
  gap: 16px;
  margin-top: -24px;
}

.training-module-rail {
  display: grid;
  align-content: start;
  gap: 10px;
}

.training-module {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 12px;
  width: 100%;
  min-height: 92px;
  padding: 14px;
  text-align: left;
  border: 1px solid rgba(9, 36, 80, 0.12);
  border-radius: 8px;
  background: #ffffff;
  cursor: pointer;
  box-shadow: 0 12px 24px rgba(15, 35, 70, 0.08);
}

.training-module .material-symbols-outlined {
  grid-row: span 2;
  color: #0878ff;
  margin-top: 2px;
}

.training-module strong {
  color: #07152f;
  font-size: 15px;
}

.training-module.is-active {
  border-color: rgba(8, 120, 255, 0.46);
  background: #eef6ff;
}

.training-module.is-done {
  border-color: rgba(22, 169, 118, 0.38);
  background: #f0fff8;
}

.training-module.is-done .material-symbols-outlined {
  color: #16a976;
  font-variation-settings: "FILL" 1, "wght" 600, "GRAD" 0, "opsz" 24;
}

.training-stage-card,
.training-check-panel,
.training-proof,
.training-video-panel,
.training-quiz,
.training-sources {
  padding: 18px;
}

.training-video-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  margin: 18px 0;
}

.training-video-panel h2 {
  margin: 0;
  font-size: 32px;
  color: #061126;
}

.training-video-panel p:not(.training-kicker) {
  margin: 12px 0 0;
  color: #344866;
  line-height: 1.55;
}

.training-video-panel video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  border: 1px solid rgba(9, 36, 80, 0.12);
  background: #061126;
  box-shadow: 0 18px 42px rgba(15, 35, 70, 0.1);
}

.training-stage {
  position: relative;
  min-height: 520px;
  overflow: hidden;
  border-radius: 8px;
  background:
    linear-gradient(180deg, #eaf3ff 0%, #f8fbff 56%, #eef4f8 56%, #eef4f8 100%);
}

.stage-skyline {
  position: absolute;
  left: 22px;
  right: 22px;
  top: 62px;
  height: 150px;
  display: flex;
  align-items: end;
  gap: 12px;
  opacity: 0.52;
}

.stage-skyline span {
  flex: 1;
  min-width: 42px;
  border-radius: 6px 6px 0 0;
  background: #b7d5f5;
}

.stage-skyline span:nth-child(1) { height: 88px; }
.stage-skyline span:nth-child(2) { height: 130px; }
.stage-skyline span:nth-child(3) { height: 104px; }
.stage-skyline span:nth-child(4) { height: 118px; }

.stage-logo {
  position: absolute;
  left: 22px;
  top: 22px;
  width: 132px;
  height: auto;
}

.stage-road {
  position: absolute;
  left: -20px;
  right: -20px;
  bottom: 110px;
  height: 76px;
  background: #142135;
  transform: skewY(-3deg);
}

.stage-road::after {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  top: 34px;
  height: 5px;
  background: repeating-linear-gradient(90deg, #f6ff7a 0 46px, transparent 46px 78px);
}

.stage-route {
  position: absolute;
  left: 18%;
  right: 22%;
  top: 210px;
  height: 3px;
  border-top: 4px dashed #0878ff;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 220ms ease, transform 220ms ease;
}

.stage-rider {
  position: absolute;
  left: 100px;
  bottom: 154px;
  width: 120px;
  height: 142px;
  transform: translateX(0);
  transition: transform 360ms ease;
}

.stage-rider-head {
  position: absolute;
  left: 47px;
  top: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #1a2a44;
}

.stage-rider-vest {
  position: absolute;
  left: 36px;
  top: 34px;
  width: 56px;
  height: 72px;
  border-radius: 8px;
  background: #f5ff6b;
  border: 6px solid #172132;
}

.stage-rider-vest::after {
  content: "";
  position: absolute;
  left: 22px;
  top: 0;
  bottom: 0;
  width: 6px;
  background: #0878ff;
}

.stage-rider-bike {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 42px;
  border-bottom: 8px solid #172132;
}

.stage-rider-bike::before,
.stage-rider-bike::after {
  content: "";
  position: absolute;
  bottom: -18px;
  width: 44px;
  height: 44px;
  border: 7px solid #172132;
  border-radius: 50%;
  background: transparent;
}

.stage-rider-bike::before { left: 0; }
.stage-rider-bike::after { right: 0; }

.stage-thermal-box {
  position: absolute;
  left: 40%;
  bottom: 178px;
  width: 160px;
  height: 126px;
  border-radius: 8px;
  background: #172132;
  box-shadow: 0 28px 50px rgba(6, 17, 38, 0.22);
  transform: translateY(44px) scale(0.88);
  opacity: 0;
  transition: opacity 240ms ease, transform 260ms ease;
}

.box-lid {
  position: absolute;
  left: 14px;
  right: 14px;
  top: -18px;
  height: 34px;
  border-radius: 8px 8px 4px 4px;
  background: #263a5a;
}

.box-stripe {
  position: absolute;
  left: 18px;
  right: 18px;
  top: 42px;
  height: 14px;
  background: #f5ff6b;
}

.box-dimensions {
  position: absolute;
  left: 18px;
  bottom: 14px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
}

.box-temp {
  position: absolute;
  right: -22px;
  min-width: 54px;
  padding: 7px 8px;
  border-radius: 8px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
  text-align: center;
  opacity: 0;
  transform: translateX(14px);
  transition: opacity 220ms ease, transform 220ms ease;
}

.box-temp.hot {
  top: 16px;
  background: #d94b2b;
}

.box-temp.cold {
  top: 58px;
  background: #0878ff;
}

.stage-parcel {
  position: absolute;
  left: 56%;
  bottom: 186px;
  width: 128px;
  height: 92px;
  border-radius: 8px;
  background: #f3c879;
  border: 3px solid #a66a23;
  opacity: 0;
  transform: translateY(44px);
  transition: opacity 240ms ease, transform 260ms ease;
}

.parcel-label,
.parcel-seal {
  position: absolute;
  display: grid;
  place-items: center;
  border-radius: 6px;
  font-weight: 900;
}

.parcel-label {
  left: 16px;
  top: 14px;
  width: 70px;
  height: 28px;
  background: #ffffff;
  color: #7a4b16;
  font-size: 12px;
}

.parcel-seal {
  left: 34px;
  top: 46px;
  width: 72px;
  height: 28px;
  background: #ffffff;
  color: #0878ff;
  border: 2px solid #0878ff;
  font-size: 9px;
  opacity: 0;
  transform: translateY(-28px) rotate(-7deg);
  transition: opacity 260ms ease, transform 280ms ease;
}

.stage-customer,
.stage-incident {
  position: absolute;
  right: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 13px;
  border-radius: 8px;
  font-weight: 900;
  opacity: 0;
  transform: translateX(26px);
  transition: opacity 220ms ease, transform 220ms ease;
}

.stage-customer {
  bottom: 178px;
  background: #e8fbf3;
  color: #0b7653;
}

.stage-incident {
  bottom: 245px;
  background: #fff3e6;
  color: #a44616;
}

.stage-note {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  min-height: 94px;
  display: grid;
  gap: 5px;
  padding: 16px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(9, 36, 80, 0.12);
  box-shadow: 0 18px 36px rgba(15, 35, 70, 0.08);
}

.stage-note span {
  color: #0878ff;
  font-size: 12px;
  font-weight: 900;
}

.stage-note strong {
  color: #061126;
  font-size: 18px;
}

.stage-note p {
  margin: 0;
  color: #344866;
  line-height: 1.4;
}

.training-stage[data-module="road"] .stage-route,
.training-stage[data-module="ppe"] .stage-route {
  opacity: 1;
  transform: translateY(0);
}

.training-stage[data-module="ppe"] .stage-rider-vest {
  animation: vestPulse 900ms ease both;
}

.training-stage[data-module="pickup"] .stage-parcel,
.training-stage[data-module="seal"] .stage-parcel,
.training-stage[data-module="incident"] .stage-parcel {
  opacity: 1;
  transform: translateY(0);
}

.training-stage[data-module="thermal"] .stage-thermal-box,
.training-stage[data-module="seal"] .stage-thermal-box {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.training-stage[data-module="thermal"] .box-temp,
.training-stage[data-module="seal"] .box-temp {
  opacity: 1;
  transform: translateX(0);
}

.training-stage[data-module="seal"] .parcel-seal,
.training-stage[data-module="incident"] .parcel-seal {
  opacity: 1;
  transform: translateY(0) rotate(-7deg);
}

.training-stage[data-module="seal"] .stage-customer {
  opacity: 1;
  transform: translateX(0);
}

.training-stage[data-module="incident"] .stage-incident {
  opacity: 1;
  transform: translateX(0);
}

.training-stage[data-module="pickup"] .stage-rider,
.training-stage[data-module="thermal"] .stage-rider {
  transform: translateX(130px);
}

.training-stage[data-module="seal"] .stage-rider,
.training-stage[data-module="incident"] .stage-rider {
  transform: translateX(230px);
}

@keyframes vestPulse {
  0% { box-shadow: 0 0 0 rgba(245, 255, 107, 0); }
  50% { box-shadow: 0 0 0 14px rgba(245, 255, 107, 0.34); }
  100% { box-shadow: 0 0 0 rgba(245, 255, 107, 0); }
}

.training-stage-controls {
  justify-content: flex-end;
  margin-top: 12px;
}

.training-check-panel {
  display: grid;
  align-content: start;
  gap: 12px;
}

.training-check-panel ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.training-check-panel li {
  min-height: 48px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 12px;
  border-radius: 8px;
  background: #f7fbff;
  border: 1px solid rgba(9, 36, 80, 0.08);
  line-height: 1.38;
}

.training-check-panel li::before {
  content: "check_circle";
  font-family: "Material Symbols Outlined";
  color: #16a976;
  font-size: 18px;
  line-height: 1;
}

.training-proof,
.training-quiz,
.training-sources {
  margin-top: 18px;
}

.training-proof {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: 18px;
}

.proof-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.proof-grid article {
  display: grid;
  gap: 8px;
  align-content: start;
  min-height: 150px;
  padding: 14px;
  border-radius: 8px;
  border: 1px solid rgba(9, 36, 80, 0.12);
  background: #f7fbff;
}

.proof-grid .material-symbols-outlined {
  color: #0878ff;
}

.training-proof-card {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
  padding: 16px;
  border-radius: 8px;
  border: 1px solid rgba(8, 120, 255, 0.18);
  background: #eef6ff;
}

.training-proof-card header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.training-proof-card img {
  width: 46px;
  height: 46px;
  border-radius: 8px;
}

.training-proof-card h3 {
  margin: 0;
  color: #061126;
  font-size: 22px;
}

.training-proof-card dl {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.training-proof-card dl div {
  min-height: 88px;
  padding: 12px;
  border: 1px solid rgba(9, 36, 80, 0.1);
  border-radius: 8px;
  background: #ffffff;
}

.training-proof-card dt {
  color: #61708a;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.training-proof-card dd {
  margin: 8px 0 0;
  color: #07152f;
  font-weight: 850;
  line-height: 1.35;
}

.quiz-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0;
}

.quiz-grid fieldset {
  display: grid;
  gap: 10px;
  margin: 0;
  border: 1px solid rgba(9, 36, 80, 0.12);
  border-radius: 8px;
  padding: 16px;
}

.quiz-grid legend {
  padding: 0 6px;
  font-weight: 900;
}

.quiz-grid label {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  color: #344866;
}

.quiz-session-status {
  margin: 8px 0 0;
  color: #61708a;
  font-weight: 760;
  line-height: 1.45;
}

.quiz-session-status[data-tone="ready"] {
  color: #0b7653;
}

.quiz-result {
  min-height: 24px;
  margin: 10px 0 0;
  font-weight: 850;
}

.quiz-result[data-tone="success"] {
  color: #0b7653;
}

.quiz-result[data-tone="warning"] {
  color: #b45309;
}

.quiz-result[data-tone="error"] {
  color: #b42318;
}

.training-return-link {
  display: inline-flex;
  align-items: center;
  margin-top: 2px;
  text-decoration: none;
}

.training-return-link[hidden] {
  display: none;
}

.source-grid {
  align-items: stretch;
}

.source-grid a {
  flex: 1 1 220px;
  padding: 14px;
  border-radius: 8px;
  border: 1px solid rgba(9, 36, 80, 0.12);
  background: #f7fbff;
  font-weight: 800;
}

@media (max-width: 1080px) {
  .training-hero-grid,
  .training-workbench,
  .training-proof,
  .training-video-panel {
    grid-template-columns: 1fr;
  }

  .training-module-rail,
  .proof-grid,
  .quiz-grid,
  .training-proof-card dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .training-hero {
    min-height: auto;
  }

  .training-hero-copy {
    padding-top: 28px;
  }

  .training-hero h1 {
    font-size: 44px;
  }

  .training-module-rail,
  .proof-grid,
  .quiz-grid,
  .training-proof-card dl {
    grid-template-columns: 1fr;
  }

  .training-stage {
    min-height: 500px;
  }

  .stage-thermal-box {
    left: 34%;
  }

  .stage-parcel {
    left: 50%;
  }
}
