/* V20 · un observatorio amplio y actividades que se abren donde se leen. */
.orbital-theme .app {
  max-width: 2400px;
}
.orbital-theme #observatory-stage:not(.is-immersive) .observation-layout .scene-shell {
  /* V21: reserva sitio para las vistas de arriba y la barra de tiempo. */
  height: clamp(420px, calc(100dvh - 330px), 940px);
  min-height: 420px;
  flex: none;
}
.orbital-theme .observation-layout {
  grid-template-columns: minmax(0, 1fr) clamp(220px, 16vw, 280px);
}
.orbital-theme .scene-column {
  min-width: 0;
  gap: 0;
}
.orbital-theme .scene-column > .time-console {
  margin: 0;
  border: 0;
  border-top: 1px solid #444e51;
  border-radius: 0;
}
.orbital-theme .scene-column .timeline-hint {
  max-width: 260px;
}
.scale-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.orbital-theme .scale-actions .button {
  min-height: 38px;
}
.orbital-theme .scale-actions [aria-pressed='true'] {
  background: #e9bb7521;
  border-color: #d4ae70;
  color: #ffe0ad;
}
.system-overview {
  padding: 2px 0 22px;
  border-bottom: 1px solid #384146;
  margin-bottom: 22px;
  color: #d0dada;
}
.system-overview svg {
  width: 100%;
  max-height: 210px;
  color: #d5b477;
}
.system-overview h2 {
  font-size: clamp(19px, 1.5vw, 25px);
  font-weight: 500;
  color: #f2dfbd;
  margin: 0 0 12px;
}
.system-overview p {
  font-size: 14px;
  line-height: 1.65;
  margin: 0 0 18px;
}
.system-overview > span {
  display: block;
  font-size: 12px;
  color: #e9bb75;
  line-height: 1.6;
}
.system-overview small {
  display: block;
  margin-top: 16px;
  font-size: 11px;
  color: #a5adae;
  line-height: 1.6;
}
.orbital-theme
  .system-reading
  :is(.current-moon-card, .current-body-card, .current-distances) {
  display: none;
}
.activity-hub {
  margin-top: 22px;
  border: 1px solid #8c7148;
  border-radius: 6px;
  background: #10191c;
}
.activity-hub > summary {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 19px 22px;
  cursor: pointer;
  list-style: none;
  border-radius: 5px;
  background: linear-gradient(105deg, #24231d, #10191c 68%);
  transition:
    background-color 160ms ease,
    box-shadow 160ms ease;
}
.activity-hub > summary:hover {
  box-shadow: inset 0 0 0 1px #c29a60;
  background-color: #252820;
}
.activity-hub > summary:focus-visible {
  outline: 3px solid #e9bb75;
  outline-offset: 3px;
}
.activity-hub[open] > summary {
  margin-bottom: 12px;
  border-bottom: 1px solid #66583e;
  border-radius: 5px 5px 0 0;
}
.activity-copy {
  min-width: 0;
}
.activity-hub > summary::-webkit-details-marker {
  display: none;
}
.activity-hub > summary strong {
  display: block;
  color: #f0dfc2;
  font-size: 20px;
  font-weight: 500;
}
.activity-hub > summary small {
  display: block;
  color: #a6b3b7;
  margin-top: 5px;
  font-size: 12px;
}
.activity-symbol {
  font-size: 27px;
  color: #e9bb75;
}
.activity-expand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 10px;
  padding: 9px 13px;
  border: 1px solid #b18a50;
  border-radius: 5px;
  background: #342c1f;
  font-size: 14px;
  font-weight: 600;
  color: #ffda9f;
  margin-left: auto;
}
.activity-expand svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 160ms ease;
}
.activity-expand-close,
.activity-hub[open] > summary .activity-expand-open {
  display: none;
}
.activity-hub[open] > summary .activity-expand-close {
  display: inline;
}
.activity-hub[open] > summary .activity-expand svg {
  transform: rotate(180deg);
}
@media (prefers-reduced-motion: reduce) {
  .activity-hub > summary,
  .activity-expand svg {
    transition: none;
  }
}
body.orbital-theme .activity-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding: 0 12px 12px;
  gap: 9px;
}
body.orbital-theme .activity-list > * {
  grid-column: 1;
  min-width: 0;
}
body.orbital-theme .activity-list > details > .discovery-summary {
  min-height: 68px;
}
.advanced-content {
  padding: 10px;
}
body.orbital-theme .advanced-content :is(.scene-settings-grid, .settings-grid) {
  grid-template-columns: minmax(0, 1fr);
}
.perspective-panel {
  border: 1px solid #424f53;
  border-radius: 5px;
  margin-top: 10px;
  padding: 12px;
}
.perspective-panel > summary {
  cursor: pointer;
  color: #d9c39d;
}
.perspective-panel .comparison-actions {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.orbital-theme .advanced-content #view-explanation {
  border: 1px solid #424f53;
  border-radius: 5px;
  margin-top: 10px;
}
.shared-viewport-notice {
  border: 1px solid #6e644e;
  border-radius: 6px;
  padding: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  background: #24261f;
  color: #e4dac4;
}
.shared-viewport-notice[hidden] {
  display: none;
}
.inline-viewport-host {
  scroll-margin-top: 10px;
}
/* El mismo canvas se presta a la actividad. No se mantienen dos simuladores costosos. */
.orbital-theme
  #observatory-stage:is(.lesson-local, .workshop-local):not(.is-immersive)
  :is(.view-toolbar, .shared-instant, .live-readings, #visual-help) {
  display: none;
}
.orbital-theme
  #observatory-stage:is(.lesson-local, .workshop-local):not(.is-immersive)
  .observation-layout {
  grid-template-columns: minmax(0, 1fr);
}
.orbital-theme
  #observatory-stage:is(.lesson-local, .workshop-local):not(.is-immersive)
  .observation-layout
  .scene-shell {
  height: clamp(400px, 60dvh, 820px);
  min-height: 400px;
}
.orbital-theme
  #observatory-stage.lesson-local:not(.is-immersive)
  :is(.time-console, .scene-overlays, #navigation-pad, #orientation-map) {
  display: none;
}
.orbital-theme
  #observatory-stage.workshop-local:not(.is-immersive)
  :is(.scene-overlays, #orientation-map) {
  display: none;
}
.orbital-theme #observatory-stage.lesson-local {
  display: flex;
  flex-direction: column;
}
.orbital-theme #observatory-stage.lesson-local .observation-layout {
  order: 0;
}
.orbital-theme #observatory-stage.lesson-local #lesson-dock {
  order: 1;
}
.orbital-theme #observatory-stage.lesson-local #lesson-sky {
  order: 2;
}
body.orbital-theme #lesson-viewport-host #lesson-dock .tour-step-actions button.tour-next {
  min-height: 52px;
  min-width: 200px;
  background: #edbf7a;
  border: 1px solid #ffe0a4;
  color: #181d20;
  font-size: 17px;
  font-weight: 700;
  box-shadow: 0 3px 18px #edbf7a24;
}
body.orbital-theme
  #lesson-viewport-host
  #lesson-dock
  .tour-step-actions
  button.tour-next:hover {
  background: #ffdda3;
}
.orbital-theme .lunar-terrain-card {
  background: #162023;
  border-color: #56605e;
  border-radius: 5px;
}
.orbital-theme .lunar-terrain-card[aria-pressed='true'] {
  background: #2a2b23;
  border-color: #e9bb75;
}
.orbital-theme .lunar-workshop-globe {
  background: #10191d;
  border-color: #485556;
  border-radius: 5px;
}
.orbital-theme #observatory-stage.is-immersive .scene-column > .time-console {
  display: none;
}
@media (max-width: 760px) {
  .orbital-theme .observation-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .orbital-theme #observatory-stage:not(.is-immersive) .observation-layout .scene-shell {
    height: 78dvh;
    min-height: 510px;
  }
  .orbital-theme .system-reading .system-overview {
    display: grid;
    grid-template-columns: 95px 1fr;
    gap: 5px 12px;
    grid-column: 1 / -1;
    padding-bottom: 10px;
    margin: 0;
  }
  .system-overview svg {
    grid-row: 1 / 4;
    align-self: center;
  }
  .system-overview h2 {
    font-size: 19px;
    margin: 0;
  }
  .system-overview p {
    font-size: 12px;
    margin: 0;
  }
  .system-overview small {
    grid-column: 1 / -1;
    margin-top: 5px;
  }
  .activity-hub > summary {
    padding: 17px 12px;
    gap: 10px;
  }
  .activity-hub > summary strong {
    font-size: 19px;
  }
  .activity-expand {
    padding: 8px;
    gap: 5px;
    font-size: 13px;
  }
  body.orbital-theme .activity-list {
    padding: 0 6px 6px;
  }
  .shared-viewport-notice {
    flex-direction: column;
    align-items: stretch;
  }
  .orbital-theme .scale-actions {
    flex: 1 0 100%;
  }
  .orbital-theme .scale-actions .button {
    flex: 1;
  }
  .orbital-theme
    #observatory-stage:is(.lesson-local, .workshop-local):not(.is-immersive)
    .observation-layout
    .scene-shell {
    height: 48dvh;
    min-height: 340px;
  }
  body.orbital-theme #lesson-viewport-host #lesson-dock .tour-step-actions button.tour-next {
    width: 100%;
    grid-column: 1 / -1;
  }
}
/* Mantener explicación y avance en la misma pantalla, también al cambiar de paso. */
.orbital-theme
  #observatory-stage.lesson-local:not(.is-immersive)
  .observation-layout
  .scene-shell {
  height: clamp(320px, 47dvh, 640px);
  min-height: 320px;
}
#tour-panel {
  overflow-anchor: none;
}

/* La estación comparte la paleta Orbital; los avisos conservan sus colores. */
body.orbital-theme .iss-discovery {
  border-color: #444e51;
  border-radius: 5px;
  background: #11191d;
}
/* La cabecera mantiene la tipografía y la alineación de las demás actividades. */
body.orbital-theme .iss-discovery > summary {
  min-height: 68px;
  padding: 13px 15px;
  gap: 12px;
}
body.orbital-theme .iss-discovery > summary > span:not(.iss-symbol) {
  min-width: 0;
}
body.orbital-theme .iss-symbol {
  display: grid;
  place-items: center;
  flex: 0 0 31px;
  width: 31px;
  height: 31px;
  font-size: 24px;
  color: var(--orbital-accent, #e9bb75);
}
body.orbital-theme .iss-discovery > summary::after {
  color: var(--orbital-muted, #a5adae);
  font-size: 19px;
  font-weight: 300;
}
body.orbital-theme .iss-discovery > summary strong {
  color: #e9ecec;
  font-weight: 550;
  font-size: 12px;
  letter-spacing: 0.015em;
}
body.orbital-theme .iss-discovery > summary small {
  color: var(--orbital-muted, #a5adae);
  font-size: 10px;
  line-height: 1.5;
  margin-top: 3px;
}
body.orbital-theme .iss-viewport {
  height: clamp(340px, 48dvh, 620px);
  border-radius: 5px;
  border-color: #445358;
}
body.orbital-theme .iss-content button[aria-pressed='true'] {
  background: #3c3528;
  color: #ffe0aa;
  border-color: #bfa06b;
}
body.orbital-theme .iss-readings > div {
  background: #182328;
  border-radius: 4px;
}
body.orbital-theme .iss-data-details summary {
  color: #e4c797;
}
