/*  Componentes reutilizables */
.btn,
button,
.card-link,
.text-link {
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}
.btn:hover,
button:hover,
.card-link:hover,
.text-link:hover {
  transform:translateY(-1px);
}
.btn:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline:0;
  box-shadow:var(--focus-ring);
}
.gateway-card,
.i18n-card,
.validation-card,
.report-feature-card,
.learning-path-card,
.lab-module-card,
.advanced-experience-card,
.version-card {
  border:1px solid var(--ingsoft-line-soft);
  background:linear-gradient(180deg,#FFFFFF 0%,#FAFDFF 100%);
  box-shadow:var(--shadow-soft);
}
.gateway-card:hover,
.i18n-card:hover,
.validation-card:hover,
.report-feature-card:hover,
.learning-path-card:hover,
.lab-module-card:hover,
.advanced-experience-card:hover {
  transform:translateY(-2px);
  box-shadow:0 20px 52px rgba(3,13,27,.11);
}
.section-light {
  background:linear-gradient(180deg,#F7FBFF 0%,#FFFFFF 100%);
}
.section-dark {
  background:
    radial-gradient(circle at 10% 0%, rgba(11,115,217,.16), transparent 30%),
    linear-gradient(180deg,#06152A 0%,#071832 100%);
}
.section-dark p,
.section-dark li {
  color:#DCEEFF;
}
.eyebrow,
.gateway-kicker,
.version-badge {
  color:#153A63;
  font-weight:950;
  letter-spacing:.06em;
}

/*  Evaluación interactiva y rúbricas Celso-AQ */
.assessment-panel {
  margin:1rem 0;
  border:1px solid var(--ingsoft-line);
  border-radius:28px;
  background:
    radial-gradient(circle at 92% 8%, rgba(228,30,43,.10), transparent 28%),
    linear-gradient(180deg,#FFFFFF 0%,#F8FCFF 100%);
  color:var(--ingsoft-ink);
  padding:1rem;
  box-shadow:0 18px 50px rgba(3,13,27,.10);
}
.assessment-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.9rem;
}
.assessment-head strong {
  display:block;
  color:var(--ingsoft-navy);
  font-size:1.08rem;
}
.assessment-head span {
  display:block;
  color:var(--ingsoft-muted);
  font-weight:850;
  margin-top:.12rem;
}
.assessment-toggle,
.assessment-actions button {
  border:1px solid var(--ingsoft-line);
  border-radius:999px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  cursor:pointer;
  font-weight:950;
  padding:.55rem .8rem;
}
.assessment-body {
  display:grid;
  grid-template-columns:minmax(220px,.75fr) minmax(280px,1.25fr);
  gap:1rem;
}
.assessment-rubric {
  border:1px solid var(--ingsoft-line-soft);
  border-radius:22px;
  background:#FFFFFF;
  padding:.9rem;
}
.assessment-rubric h4,
.assessment-result h4 {
  color:var(--ingsoft-navy);
  margin:.1rem 0 .55rem;
}
.assessment-rubric ul,
.assessment-feedback {
  margin:.4rem 0 0;
  padding-left:1.15rem;
}
.assessment-rubric li,
.assessment-feedback li {
  color:var(--ingsoft-muted);
  font-weight:770;
  line-height:1.45;
  margin:.35rem 0;
}
.assessment-form {
  display:grid;
  gap:.8rem;
}
.assessment-question {
  border:1px solid var(--ingsoft-line-soft);
  border-radius:22px;
  background:#FFFFFF;
  padding:.85rem;
}
.assessment-question legend {
  color:var(--ingsoft-navy);
  font-weight:950;
  padding:0 .25rem;
}
.assessment-question label {
  display:flex;
  align-items:flex-start;
  gap:.5rem;
  margin:.55rem 0;
  color:var(--ingsoft-muted);
  font-weight:800;
  cursor:pointer;
}
.assessment-question input {
  margin-top:.16rem;
  accent-color:var(--ingsoft-blue);
}
.assessment-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
}
.assessment-actions button:first-child {
  background:var(--ingsoft-blue);
  color:#FFFFFF;
  border-color:var(--ingsoft-blue);
}
.assessment-result {
  grid-column:1 / -1;
  border:1px solid var(--ingsoft-line-soft);
  border-radius:22px;
  background:#FFFFFF;
  padding:.9rem;
  color:var(--ingsoft-muted);
  font-weight:780;
}
.assessment-score-card {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem;
  margin-bottom:.85rem;
}
.assessment-score-card div {
  border-radius:18px;
  padding:.85rem;
  border:1px solid var(--ingsoft-line-soft);
  background:#F7FBFF;
}
.assessment-score-card span {
  display:block;
  color:var(--ingsoft-muted);
  font-size:.78rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.assessment-score-card strong {
  display:block;
  margin-top:.18rem;
  color:var(--ingsoft-navy);
  font-size:1.35rem;
}
.assessment-score-card.is-advanced div {
  background:#E8F8EF;
}
.assessment-score-card.is-proficient div {
  background:#EAF7FF;
}
.assessment-score-card.is-developing div {
  background:#FFF7E8;
}
.assessment-score-card.is-initial div {
  background:#FFF0F1;
}
.assessment-feedback li.ok {
  color:#0C5F34;
}
.assessment-feedback li.warn {
  color:#7A4B00;
}
.assessment-ladder {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.assessment-ladder article {
  border:1px solid var(--ingsoft-line-soft);
  border-radius:24px;
  background:#FFFFFF;
  box-shadow:var(--shadow-soft);
  padding:1rem;
}
.assessment-ladder h3 {
  margin-top:0;
  color:var(--ingsoft-navy);
}
.assessment-ladder p {
  color:var(--ingsoft-muted);
  font-weight:770;
  line-height:1.55;
}
@media (max-width:980px) {
  .assessment-body,
  .assessment-score-card,
  .assessment-ladder {
    grid-template-columns:1fr;
  }
  .assessment-head {
    align-items:flex-start;
    flex-direction:column;
  }
  .assessment-actions button,
  .assessment-toggle {
    width:100%;
  }
}

/*  Banco aleatorio de preguntas Celso-AQ */
.assessment-bank-meta {
  margin:.8rem 0 0;
  border-top:1px solid var(--ingsoft-line-soft);
  padding-top:.7rem;
  color:var(--ingsoft-muted);
  font-weight:900;
}
.assessment-question legend span {
  color:var(--ingsoft-red);
  font-weight:950;
}

/* Sistema visual Celso-AQ */
.lab-brand-lockup,
.brand-lockup,
.lab-hero-logo,
.celso-aq-logo-frame {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.celso-aq-brand-vector {
  width:min(100%,680px) !important;
  min-height:clamp(116px,20vh,190px) !important;
  display:grid !important;
  grid-template-columns:clamp(84px,12vw,142px) minmax(0,1fr) !important;
  align-items:center !important;
  gap:clamp(.9rem,2vw,1.45rem) !important;
  padding:clamp(.9rem,1.9vw,1.25rem) clamp(1rem,2.4vw,1.65rem) !important;
  border:1px solid rgba(183,216,238,.92) !important;
  border-radius:clamp(22px,3vw,34px) !important;
  background:
    radial-gradient(circle at 12% 18%,rgba(91,187,234,.18),transparent 32%),
    radial-gradient(circle at 86% 82%,rgba(11,115,217,.12),transparent 36%),
    linear-gradient(135deg,#FFFFFF 0%,#F6FBFF 55%,#EAF7FF 100%) !important;
  box-shadow:0 22px 58px rgba(3,13,27,.16), inset 0 0 0 1px rgba(255,255,255,.72) !important;
  color:#06152A !important;
  overflow:hidden !important;
  position:relative !important;
}
.celso-aq-brand-vector::before {
  content:"" !important;
  position:absolute !important;
  inset:12px !important;
  border-radius:24px !important;
  background:
    linear-gradient(90deg,rgba(11,115,217,.09) 1px,transparent 1px),
    linear-gradient(rgba(11,115,217,.07) 1px,transparent 1px) !important;
  background-size:28px 28px !important;
  opacity:.5 !important;
  pointer-events:none !important;
}
.celso-aq-mark {
  position:relative !important;
  width:clamp(74px,11vw,128px) !important;
  height:clamp(74px,11vw,128px) !important;
  z-index:1 !important;
}
.celso-aq-mark .orbit,
.celso-aq-mark .axis,
.celso-aq-mark .wave-line,
.celso-aq-mark .mass {
  position:absolute !important;
  display:block !important;
}
.celso-aq-mark .orbit {
  inset:8% !important;
  border:clamp(3px,.55vw,6px) solid #061A3D !important;
  border-right-color:transparent !important;
  border-top-color:#0B73D9 !important;
  border-radius:50% !important;
  transform:rotate(-22deg) !important;
}
.celso-aq-mark .orbit-b {
  inset:24% 18% 18% 22% !important;
  border-color:#13B8D8 !important;
  border-left-color:transparent !important;
  opacity:.9 !important;
  transform:rotate(28deg) !important;
}
.celso-aq-mark .axis-x {
  left:14% !important;
  top:51% !important;
  width:72% !important;
  height:3px !important;
  background:#061A3D !important;
}
.celso-aq-mark .axis-y {
  left:52% !important;
  top:16% !important;
  width:3px !important;
  height:68% !important;
  background:#061A3D !important;
}
.celso-aq-mark .wave-line {
  left:8% !important;
  top:42% !important;
  width:58% !important;
  height:28% !important;
  background:
    radial-gradient(circle at 0% 50%,transparent 0 7px,#0B73D9 8px 10px,transparent 11px),
    linear-gradient(100deg,transparent 0 9%,#0B73D9 10% 12%,transparent 13% 23%,#0B73D9 24% 27%,transparent 28% 40%,#0B73D9 41% 44%,transparent 45%) !important;
  clip-path:polygon(0 45%,10% 15%,20% 72%,32% 25%,44% 68%,56% 32%,70% 62%,84% 38%,100% 50%,100% 100%,0 100%) !important;
  opacity:.9 !important;
}
.celso-aq-mark .mass-main {
  width:31% !important;
  height:31% !important;
  left:38% !important;
  top:55% !important;
  border-radius:50% !important;
  background:linear-gradient(135deg,#061A3D,#0B73D9) !important;
  box-shadow:0 7px 20px rgba(3,13,27,.22) !important;
}
.celso-aq-mark .mass-small {
  width:16% !important;
  height:16% !important;
  left:51% !important;
  top:10% !important;
  border-radius:50% !important;
  background:#061A3D !important;
}
.celso-aq-wordmark {
  position:relative !important;
  z-index:1 !important;
}
.celso-aq-wordmark strong {
  display:block !important;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  font-weight:960 !important;
  font-size:clamp(avanzada5rem,5vw,4.2rem) !important;
  line-height:.9 !important;
  letter-spacing:-.08em !important;
  color:#061A3D !important;
}
.celso-aq-wordmark strong::after {
  content:"" !important;
  display:block !important;
  width:min(94%,460px) !important;
  height:3px !important;
  margin:.34rem 0 .22rem !important;
  background:linear-gradient(90deg,#061A3D,#0B73D9,#13B8D8) !important;
  border-radius:999px !important;
}
.celso-aq-wordmark span {
  display:block !important;
  font-weight:820 !important;
  font-size:clamp(.78rem,1.45vw,1.12rem) !important;
  letter-spacing:.18em !important;
  color:#153A63 !important;
  text-transform:uppercase !important;
}

/* Compactación transversal de secciones */
:root {
  --section-fit-pad: clamp(1.05rem, 2.6vh, 2.35rem);
  --section-fit-gap: clamp(.75rem, 1.55vw, 1.3rem);
}
.section,
main > section,
.page-section,
.platform-section,
.observatory-section,
.lab-section {
  padding-top:var(--section-fit-pad) !important;
  padding-bottom:var(--section-fit-pad) !important;
}
.wide,
.container,
.section-inner {
  max-width:min(92vw,1380px) !important;
}
.section-head,
.section-head-balanced,
.split-heading,
.page-head {
  margin-bottom:clamp(.62rem,1.45vh,1.05rem) !important;
}
.section-head h1,
.section-head h2,
.split-heading h1,
.split-heading h2,
.page-head h1,
.page-head h2,
section h1,
section h2 {
  font-size:clamp(1.72rem,3.15vw,3.25rem) !important;
  line-height:.98 !important;
  letter-spacing:-.04em !important;
  margin:.1rem 0 .42rem !important;
}
.section-head p,
.split-heading p,
.page-head p,
section > .wide > p {
  font-size:clamp(.86rem,.98vw,1.02rem) !important;
  line-height:1.35 !important;
  margin:.24rem 0 !important;
}
.card,
.gateway-card,
.feature-card,
.resource-card,
.lab-card,
.panel,
.module-card,
.report-card,
.workshop-card,
.science-card {
  padding:clamp(.75rem,1.35vw,1.1rem) !important;
  border-radius:clamp(16px,2vw,24px) !important;
}
.card h3,
.gateway-card h3,
.feature-card h3,
.resource-card h3,
.lab-card h3,
.module-card h3 {
  font-size:clamp(.98rem,1.15vw,1.28rem) !important;
  line-height:1.12 !important;
  margin:0 0 .35rem !important;
}
.card p,
.gateway-card p,
.feature-card p,
.resource-card p,
.lab-card p,
.module-card p {
  font-size:clamp(.78rem,.9vw,.94rem) !important;
  line-height:1.36 !important;
}
.grid,
.gateway-grid,
.cards-grid,
.feature-grid,
.resource-grid,
.modules-grid,
.lab-grid {
  gap:var(--section-fit-gap) !important;
}
.eyebrow {
  padding:.36rem .72rem !important;
  min-height:28px !important;
  font-size:clamp(.65rem,.75vw,.84rem) !important;
}
.btn,
.button,
button,
.hero-actions .btn {
  min-height:36px !important;
  padding:.52rem .78rem !important;
  font-size:clamp(.76rem,.82vw,.92rem) !important;
}

/* Laboratorio: secciones completas */
.lab-hero,
.hero.lab-hero,
.hero-v37 {
  min-height:auto !important;
  padding-block:clamp(.95rem,2.5vh,1.75rem) !important;
}
.lab-hero .hero-grid,
.hero-grid,
.hero-v37-grid {
  gap:clamp(.8rem,1.8vw,1.45rem) !important;
}
.lab-hero h1,
.hero-v37 h1,
.hero h1 {
  font-size:clamp(2.2rem,4.45vw,4.2rem) !important;
  line-height:.9 !important;
}
.lab-hero .hero-lead,
.hero-v37 .hero-lead,
.hero .hero-lead {
  font-size:clamp(.86rem,1vw,1.03rem) !important;
  line-height:1.33 !important;
}
.lab-hero .celso-aq-brand-vector,
.lab-brand-lockup .celso-aq-brand-vector {
  max-width:min(100%,610px) !important;
  min-height:clamp(96px,17vh,154px) !important;
}
.lab-hero .celso-aq-wordmark strong,
.lab-brand-lockup .celso-aq-wordmark strong {
  font-size:clamp(1.75rem,4.3vw,3.45rem) !important;
}
.lab-hero .celso-aq-wordmark span,
.lab-brand-lockup .celso-aq-wordmark span {
  font-size:clamp(.62rem,1.05vw,.9rem) !important;
}
@media (min-width:1000px) {
  .simulator-page .section,
  [data-projectile],
  [data-mru-mruv],
  [data-energy],
  [data-circular-motion],
  [data-harmonic-wave],
  [data-interference-waves],
  [data-sound-doppler],
  [data-electric-field],
  [data-ohm-circuit],
  [data-magnetic-force],
  [data-electromagnetic-induction],
  [data-thin-lens],
  [data-spherical-mirror],
  [data-reflection-refraction] {
    max-height:calc(100svh - 150px) !important;
    overflow:auto !important;
    scrollbar-width:thin !important;
  }
  .projectile-layout,
  .kinematics-layout,
  .energy-layout,
  .circular-layout,
  .wave-layout,
  .interference-layout,
  .doppler-layout,
  .em-layout,
  .field-layout,
  .circuit-layout,
  .magnetic-layout,
  .induction-layout,
  .optics-layout,
  .mirror-layout,
  .refraction-layout {
    grid-template-columns:minmax(220px,300px) minmax(0,1fr) !important;
    gap:.72rem !important;
  }
  .projectile-control,
  .kinematics-control,
  .energy-control,
  .circular-control,
  .wave-control,
  .interference-control,
  .doppler-control,
  .em-control,
  .field-control,
  .circuit-control,
  .magnetic-control,
  .induction-control,
  .optics-control,
  .mirror-control,
  .refraction-control {
    padding:.42rem .52rem !important;
  }
  .projectile-control label,
  .kinematics-control label,
  .energy-control label,
  .circular-control label,
  .wave-control label,
  .interference-control label,
  .doppler-control label,
  .em-control label,
  .field-control label,
  .circuit-control label,
  .magnetic-control label,
  .induction-control label,
  .optics-control label,
  .mirror-control label,
  .refraction-control label {
    font-size:.74rem !important;
  }
  .projectile-canvas,
  .projectile-graph,
  canvas[data-canvas],
  canvas[data-graph],
  #reflectionRefractionCanvas,
  #sphericalMirrorCanvas,
  #thinLensCanvas {
    min-height:clamp(215px,33vh,340px) !important;
  }
  .projectile-readout,
  .kinematics-readout,
  .energy-readout,
  .circular-readout,
  .wave-readout,
  .interference-readout,
  .doppler-readout,
  .em-readout,
  .field-readout,
  .circuit-readout,
  .magnetic-readout,
  .induction-readout,
  .optics-readout,
  .mirror-readout,
  .refraction-readout {
    gap:.38rem !important;
  }
  .readout,
  .mirror-readout-card,
  .refraction-readout-card,
  .optics-readout-card {
    padding:.44rem .5rem !important;
    min-height:48px !important;
  }
}
@media (min-width:1000px) and (max-height:820px) {
  .section,
  main > section {
    padding-top:.9rem !important;
    padding-bottom:.9rem !important;
  }
  .section-head h1,
  .section-head h2,
  section h1,
  section h2 {
    font-size:clamp(1.55rem,2.75vw,2.7rem) !important;
  }
  .lab-hero .celso-aq-brand-vector,
  .lab-brand-lockup .celso-aq-brand-vector {
    min-height:108px !important;
    max-width:520px !important;
  }
}

/* Marca Celso-AQ oficial a color */
.lab-official-logo {
  display:block !important;
  width:min(100%,760px) !important;
  max-height:clamp(118px,22vh,230px) !important;
  object-fit:contain !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  opacity:1 !important;
  background:#FFFFFF !important;
  border:1px solid rgba(183,216,238,.86) !important;
  border-radius:clamp(18px,2.4vw,28px) !important;
  padding:clamp(.45rem,1vw,.8rem) !important;
  box-shadow:0 18px 46px rgba(3,13,27,.14) !important;
}
.lab-brand-lockup,
.brand-lockup,
.lab-hero-logo,
.celso-aq-logo-frame {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
@media (min-width:1000px) and (max-height:820px) {
  .lab-official-logo {
    max-height:clamp(92px,17vh,150px) !important;
    padding:.38rem !important;
  }
}


/* Sistema visual final de plataforma y laboratorio */
:root{
  --fit-section-pad:clamp(.85rem,2.2vh,1.9rem);
  --fit-card-pad:clamp(.62rem,1.05vw,.95rem);
  --fit-gap:clamp(.55rem,1.15vw,1rem);
}
html{scroll-behavior:smooth;}
body{overflow-x:hidden;}
.main > section,
.section,
.page-section,
.platform-section,
.observatory-section,
.lab-section{
  padding-top:var(--fit-section-pad) !important;
  padding-bottom:var(--fit-section-pad) !important;
}
.wide,.container,.section-inner{max-width:min(93vw,1380px) !important;}
.section-head,.section-head-balanced,.split-heading,.page-head{margin-bottom:clamp(.48rem,1.1vh,.88rem) !important;}
section h1,.section h1,.hero h1,.page-head h1{
  font-size:clamp(2rem,4.1vw,4.05rem) !important;
  line-height:.92 !important;
  letter-spacing:-.052em !important;
  margin:.1rem 0 .38rem !important;
}
section h2,.section h2,.section-head h2,.split-heading h2{
  font-size:clamp(1.45rem,2.6vw,2.85rem) !important;
  line-height:1 !important;
  letter-spacing:-.038em !important;
  margin:.08rem 0 .34rem !important;
}
.hero-lead,.section-head p,.split-heading p,.page-head p,.card p,.feature-card p,.lab-card p{
  font-size:clamp(.78rem,.88vw,.96rem) !important;
  line-height:1.32 !important;
}
.card,.gateway-card,.feature-card,.resource-card,.lab-card,.panel,.module-card,.report-card,.workshop-card,.science-card{
  padding:var(--fit-card-pad) !important;
  border-radius:clamp(14px,1.8vw,22px) !important;
}
.grid,.gateway-grid,.cards-grid,.feature-grid,.resource-grid,.modules-grid,.lab-grid{gap:var(--fit-gap) !important;}
.btn,.button,button,.hero-actions .btn{
  min-height:34px !important;
  padding:.46rem .7rem !important;
  font-size:clamp(.72rem,.78vw,.88rem) !important;
  line-height:1.1 !important;
}
.eyebrow{
  min-height:26px !important;
  padding:.32rem .66rem !important;
  font-size:clamp(.62rem,.7vw,.78rem) !important;
  line-height:1.1 !important;
}
.topbar{min-height:28px !important;padding:.22rem 0 !important;font-size:clamp(.7rem,.76vw,.86rem) !important;}
.header-inner{min-height:64px !important;padding:.38rem 0 !important;gap:.55rem !important;}
.site-header .brand img,.brand img,.header-logo{max-height:58px !important;width:auto !important;}
.nav-hierarchical{gap:.18rem !important;}
.nav-hierarchical .nav-link,.nav-hierarchical .nav-parent,.nav-hierarchical .lang-switch{
  min-height:29px !important;
  padding:.34rem .5rem !important;
  font-size:clamp(.68rem,.7vw,.8rem) !important;
}
.nav-dropdown{font-size:.82rem !important;}
.nav-dropdown a{padding:.48rem .58rem !important;font-size:.8rem !important;}
.lab-official-logo{
  display:block !important;
  width:min(100%,620px) !important;
  max-height:clamp(82px,15vh,138px) !important;
  object-fit:contain !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  opacity:1 !important;
  background:#fff !important;
  border:1px solid rgba(183,216,238,.86) !important;
  border-radius:clamp(14px,1.9vw,22px) !important;
  padding:clamp(.24rem,.7vw,.46rem) !important;
  box-shadow:0 12px 30px rgba(3,13,27,.12) !important;
}
.lab-hub-brand,.lab-brand-lockup,.lab-hero-logo{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-bottom:clamp(.35rem,.9vh,.7rem) !important;
}
.hero,.hero-v37,.lab-hero{min-height:auto !important;padding-block:clamp(.78rem,avanzadavh,1.4rem) !important;}
.hero-grid,.hero-v37-grid{gap:clamp(.62rem,1.4vw,1.15rem) !important;align-items:center !important;}
.hero-actions,.hero-actions-v37,.gateway-actions{gap:.48rem !important;margin-top:.56rem !important;}
.authority-ribbon,.kpi-grid,.hero-kpis,.gateway-kpis{gap:.44rem !important;margin-top:.56rem !important;}
.authority-ribbon > div,.kpi-card,.hero-kpi,.gateway-kpi{min-height:50px !important;padding:.46rem .56rem !important;}
.site-footer{padding-block:clamp(.9rem,2.1vh,1.7rem) !important;}
.site-footer p,.site-footer a,.site-footer li,.site-footer span,.site-footer small{font-size:clamp(.68rem,.74vw,.82rem) !important;line-height:1.32 !important;}
.site-footer h2,.site-footer h3,.site-footer h4{font-size:clamp(.82rem,.88vw,.98rem) !important;margin-bottom:.32rem !important;}
.site-footer img{max-height:62px !important;width:auto !important;}
.site-footer .footer-bottom,.footer-bottom{margin-top:.72rem !important;padding-top:.54rem !important;}
.brand-version-compact{padding:.42rem .62rem !important;min-height:auto !important;text-align:center !important;}
.brand-version-compact strong{font-size:clamp(.66rem,.72vw,.82rem) !important;line-height:1.2 !important;}
@media (min-width:980px){
  .projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout{
    grid-template-columns:minmax(205px,285px) minmax(0,1fr) !important;
    gap:.58rem !important;
    align-items:start !important;
  }
  .projectile-controls,.kinematics-controls,.energy-controls,.circular-controls,.wave-controls,.interference-controls,.doppler-controls,.em-controls,.field-controls,.circuit-controls,.magnetic-controls,.induction-controls,.optics-controls,.mirror-controls,.refraction-controls{gap:.34rem !important;}
  .projectile-control,.kinematics-control,.energy-control,.circular-control,.wave-control,.interference-control,.doppler-control,.em-control,.field-control,.circuit-control,.magnetic-control,.induction-control,.optics-control,.mirror-control,.refraction-control{padding:.34rem .44rem !important;border-radius:12px !important;}
  .projectile-control label,.kinematics-control label,.energy-control label,.circular-control label,.wave-control label,.interference-control label,.doppler-control label,.em-control label,.field-control label,.circuit-control label,.magnetic-control label,.induction-control label,.optics-control label,.mirror-control label,.refraction-control label{font-size:.68rem !important;line-height:1.08 !important;}
  input[type="range"]{height:20px !important;margin-top:.28rem !important;}
  select,input{font-size:.78rem !important;}
  .projectile-buttons,.kinematics-buttons,.energy-buttons,.circular-buttons,.wave-actions,.interference-actions,.doppler-actions,.em-actions,.field-actions,.circuit-actions,.magnetic-actions,.induction-actions,.optics-actions,.mirror-actions,.refraction-actions,.lab-actions{gap:.32rem !important;margin-top:.38rem !important;}
  .projectile-buttons .btn,.kinematics-buttons .btn,.energy-buttons .btn,.circular-buttons .btn,.wave-actions button,.interference-actions button,.doppler-actions button,.em-actions button,.field-actions button,.circuit-actions button,.magnetic-actions button,.induction-actions button,.optics-actions button,.mirror-actions button,.refraction-actions button,.lab-actions button{min-height:30px !important;padding:.36rem .48rem !important;font-size:.72rem !important;border-radius:10px !important;}
  .projectile-canvas,.projectile-graph,canvas[data-canvas],canvas[data-graph],#reflectionRefractionCanvas,#sphericalMirrorCanvas,#thinLensCanvas{min-height:clamp(190px,29vh,310px) !important;}
  .projectile-canvas-wrap,.refraction-canvas-wrap,.mirror-canvas-wrap,.optics-canvas-wrap{padding:.46rem !important;border-radius:16px !important;}
  .projectile-readout,.kinematics-readout,.energy-readout,.circular-readout,.wave-readout,.interference-readout,.doppler-readout,.em-readout,.field-readout,.circuit-readout,.magnetic-readout,.induction-readout,.optics-readout,.mirror-readout,.refraction-readout{gap:.28rem !important;}
  .readout,.mirror-readout-card,.refraction-readout-card,.optics-readout-card{padding:.34rem .42rem !important;min-height:40px !important;border-radius:12px !important;}
  .readout span,.mirror-readout-card span,.refraction-readout-card span,.optics-readout-card span{font-size:.55rem !important;}
  .readout strong,.mirror-readout-card strong,.refraction-readout-card strong,.optics-readout-card strong{font-size:.78rem !important;}
  [data-projectile],[data-mru-mruv],[data-energy],[data-circular-motion],[data-harmonic-wave],[data-interference-waves],[data-sound-doppler],[data-electric-field],[data-ohm-circuit],[data-magnetic-force],[data-electromagnetic-induction],[data-thin-lens],[data-spherical-mirror],[data-reflection-refraction]{max-height:calc(100svh - 132px) !important;overflow:auto !important;scrollbar-width:thin !important;}
}
@media (min-width:1000px) and (max-height:820px){
  .main > section,.section,main > section{padding-top:.62rem !important;padding-bottom:.62rem !important;}
  section h1,.hero h1{font-size:clamp(1.95rem,3.7vw,3.45rem) !important;}
  section h2{font-size:clamp(1.35rem,2.3vw,2.38rem) !important;}
  .lab-official-logo{max-height:clamp(70px,13vh,112px) !important;max-width:min(100%,510px) !important;}
  .projectile-canvas,.projectile-graph,canvas[data-canvas],canvas[data-graph],#reflectionRefractionCanvas,#sphericalMirrorCanvas,#thinLensCanvas{min-height:clamp(175px,27vh,285px) !important;}
}
@media (max-width:900px){
  .hero-grid,.hero-v37-grid,.projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout{grid-template-columns:1fr !important;}
  .lab-official-logo{max-height:130px !important;}
}


.celso-aq-brand-vector{display:none !important;}
/* Reglas visuales globales de producción */
:root{
  --fit-header: 112px;
  --fit-gap: clamp(.62rem,1.25vw,1rem);
  --fit-pad: clamp(.82rem,2vh,1.35rem);
}
html{scroll-padding-top:118px!important;}
body{font-size:clamp(14px,.92vw,16px)!important;}
.wide,.container{max-width:min(92vw,1360px)!important;}
.topbar{min-height:27px!important;padding:.2rem 0!important;font-size:clamp(.68rem,.74vw,.82rem)!important;}
.site-header{position:sticky!important;top:0!important;z-index:880!important;}
.header-inner{min-height:58px!important;padding:.34rem 0!important;gap:.5rem!important;}
.site-header .brand img,.brand img,.header-logo{max-height:52px!important;width:auto!important;object-fit:contain!important;}
.nav-hierarchical{gap:.16rem!important;}
.nav-hierarchical .nav-link,.nav-hierarchical .nav-parent,.nav-hierarchical .lang-switch{min-height:28px!important;padding:.34rem .52rem!important;font-size:.72rem!important;line-height:1!important;border-radius:999px!important;}
.nav-dropdown{font-size:.78rem!important;min-width:232px!important;max-width:318px!important;padding:.42rem!important;border-radius:15px!important;}
.nav-dropdown a{padding:.42rem .5rem!important;font-size:.76rem!important;line-height:1.16!important;border-radius:10px!important;}

/* Home: primera pantalla limpia, equilibrada y sin bloque pesado */
.hero-v37{min-height:calc(100svh - 96px)!important;display:flex!important;align-items:center!important;padding-block:.65rem!important;overflow:hidden!important;}
.hero-v37-grid{grid-template-columns:minmax(0,.96fr) minmax(360px,.82fr)!important;gap:clamp(.8rem,1.7vw,1.3rem)!important;align-items:center!important;}
.hero-v37-copy h1{font-size:clamp(2.45rem,4.15vw,4.15rem)!important;line-height:.91!important;letter-spacing:-.065em!important;max-width:12.6ch!important;margin:.32rem 0 .48rem!important;}
.hero-v37-copy .hero-lead{font-size:clamp(.86rem,.96vw,1rem)!important;line-height:1.36!important;max-width:66ch!important;margin-bottom:.52rem!important;}
.hero-actions-v37,.hero-actions{gap:.46rem!important;margin-top:.54rem!important;}
.hero-actions-v37 .btn,.hero-actions .btn,.btn{min-height:34px!important;padding:.48rem .68rem!important;border-radius:12px!important;font-size:clamp(.72rem,.78vw,.86rem)!important;}
.authority-ribbon{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.42rem!important;margin-top:.62rem!important;}
.authority-ribbon>div,.kpi-card,.hero-kpi,.gateway-kpi{min-height:46px!important;padding:.42rem .5rem!important;border-radius:13px!important;}
.authority-ribbon strong,.kpi-card h3,.hero-kpi h3{font-size:.82rem!important;line-height:1.1!important;}
.authority-ribbon span,.kpi-card p,.hero-kpi p{font-size:.7rem!important;line-height:1.25!important;}
.brand-stage-v37,.brand-stage,.hero-media,.hero-visual,.device-frame{max-width:min(100%,500px)!important;justify-self:center!important;}
.brand-stage-v37 img,.brand-stage img,.hero-media img,.hero-visual img{max-height:clamp(160px,28vh,260px)!important;object-fit:contain!important;}
.brand-stage-v37 .brand-stage-caption,.brand-stage-caption,.brand-version-compact{left:12px!important;right:12px!important;bottom:12px!important;padding:.42rem .5rem!important;min-height:auto!important;border-radius:12px!important;display:flex!important;align-items:center!important;justify-content:center!important;}
.brand-version-compact strong,.brand-stage-caption strong{display:block!important;width:100%!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;text-align:center!important;font-size:clamp(.56rem,.68vw,.76rem)!important;line-height:1.08!important;letter-spacing:.01em!important;}

/* Secciones: ningún bloque debe parecer vacío ni desproporcionado */
.section,main>section,.page-section,.platform-section,.observatory-section,.lab-section{padding-top:var(--fit-pad)!important;padding-bottom:var(--fit-pad)!important;}
.section-head,.section-head-balanced,.split-heading,.page-head{margin-bottom:.72rem!important;gap:.8rem!important;align-items:end!important;}
.section-head h1,.section-head h2,.split-heading h1,.split-heading h2,.page-head h1,.page-head h2,section h1,section h2{font-size:clamp(1.55rem,2.55vw,2.85rem)!important;line-height:.98!important;letter-spacing:-.04em!important;margin:.12rem 0 .34rem!important;}
.section-head p,.split-heading p,.page-head p,section p{font-size:clamp(.82rem,.9vw,.98rem)!important;line-height:1.34!important;}
.eyebrow{min-height:26px!important;padding:.3rem .56rem!important;font-size:clamp(.62rem,.7vw,.78rem)!important;line-height:1.05!important;letter-spacing:.075em!important;}
.cards,.grid,.gateway-grid,.cards-grid,.feature-grid,.resource-grid,.modules-grid,.lab-grid{gap:.7rem!important;}
.card,.gateway-card,.feature-card,.resource-card,.lab-card,.panel,.module-card,.report-card,.workshop-card,.science-card,.contact-card{min-height:auto!important;padding:clamp(.68rem,1vw,.95rem)!important;border-radius:16px!important;}
.card h3,.gateway-card h3,.feature-card h3,.resource-card h3,.lab-card h3,.module-card h3,.panel h3{font-size:clamp(.92rem,1.02vw,1.13rem)!important;line-height:1.12!important;margin:0 0 .26rem!important;}
.card p,.gateway-card p,.feature-card p,.resource-card p,.lab-card p,.module-card p,.panel p{font-size:clamp(.75rem,.82vw,.9rem)!important;line-height:1.31!important;margin:.12rem 0!important;}
.split{grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr)!important;gap:.9rem!important;align-items:start!important;}
.fact{grid-template-columns:minmax(115px,155px) 1fr!important;gap:.55rem!important;padding:.43rem 0!important;}
.fact b,.fact span{font-size:clamp(.78rem,.86vw,.96rem)!important;line-height:1.3!important;}
.feature-band{padding:1rem!important;border-radius:20px!important;gap:.8rem!important;}
.feature-band h2{font-size:clamp(1.55rem,2.7vw,2.9rem)!important;margin:.25rem 0 .45rem!important;}
.metrics{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
.metric{padding:.72rem!important;}
.metric strong{font-size:clamp(1rem,1.5vw,1.45rem)!important;}

/* Laboratorio y simuladores: controles + fenómeno físico juntos */
.lab-hero,.hero.lab-hero,.hero{padding-block:.75rem!important;}
.lab-hero .hero-grid,.hero-grid{gap:.82rem!important;}
.lab-hero h1,.hero h1{font-size:clamp(2rem,3.6vw,3.5rem)!important;line-height:.92!important;margin:.32rem 0 .45rem!important;}
.lab-hub-brand,.lab-brand-lockup{margin:.35rem 0!important;}
.lab-official-logo{width:min(100%,560px)!important;max-height:clamp(82px,16vh,142px)!important;padding:.32rem!important;object-fit:contain!important;border-radius:16px!important;background:#fff!important;}
.lab-hub-panel,.dashboard-preview-card{padding:.72rem!important;border-radius:18px!important;}
.hub-node,.mission-cell,.hero-status-card,.agent-card{min-height:auto!important;padding:.62rem .7rem!important;border-radius:14px!important;}
.hub-node strong,.mission-cell b,.hero-status-card strong,.agent-card h3{font-size:.92rem!important;line-height:1.16!important;}
.hub-node span,.mission-cell small,.hero-status-card span,.agent-card p{font-size:.76rem!important;line-height:1.28!important;}
.projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout{grid-template-columns:minmax(215px,288px) minmax(0,1fr)!important;gap:.62rem!important;align-items:start!important;}
.projectile-control,.kinematics-control,.energy-control,.circular-control,.wave-control,.interference-control,.doppler-control,.em-control,.field-control,.circuit-control,.magnetic-control,.induction-control,.optics-control,.mirror-control,.refraction-control{padding:.34rem .44rem!important;border-radius:12px!important;}
.projectile-control label,.kinematics-control label,.energy-control label,.circular-control label,.wave-control label,.interference-control label,.doppler-control label,.em-control label,.field-control label,.circuit-control label,.magnetic-control label,.induction-control label,.optics-control label,.mirror-control label,.refraction-control label{font-size:.68rem!important;line-height:1.12!important;}
.projectile-buttons .btn,.kinematics-buttons .btn,.energy-buttons .btn,.circular-buttons .btn,.wave-actions button,.interference-actions button,.doppler-actions button,.em-actions button,.field-actions button,.circuit-actions button,.magnetic-actions button,.induction-actions button,.optics-actions button,.mirror-actions button,.refraction-actions button,.lab-actions button{min-height:28px!important;padding:.32rem .44rem!important;font-size:.68rem!important;border-radius:9px!important;}
.projectile-canvas,.projectile-graph,canvas[data-canvas],canvas[data-graph],#reflectionRefractionCanvas,#sphericalMirrorCanvas,#thinLensCanvas{min-height:clamp(165px,25vh,265px)!important;max-height:34vh!important;}
.readout,.mirror-readout-card,.refraction-readout-card,.optics-readout-card{padding:.3rem .36rem!important;min-height:36px!important;border-radius:10px!important;}
.readout span,.mirror-readout-card span,.refraction-readout-card span,.optics-readout-card span{font-size:.58rem!important;}
.readout strong,.mirror-readout-card strong,.refraction-readout-card strong,.optics-readout-card strong{font-size:.78rem!important;}

/* Observatorio NASA: dashboard científico compacto y legible */
.observatorio-hero,.observatorio-hero--advanced{min-height:calc(100svh - 110px)!important;display:flex!important;align-items:center!important;padding-block:.7rem!important;}
.observatorio-grid,.observatorio-grid--v9,.observatorio-hero .hero-grid{grid-template-columns:minmax(0,.96fr) minmax(350px,.78fr)!important;gap:.9rem!important;align-items:center!important;}
.observatorio-hero h1{font-size:clamp(avanzada5rem,3.7vw,3.45rem)!important;max-width:13.5ch!important;line-height:.92!important;margin:.32rem 0 .45rem!important;}
.observatorio-hero .hero-lead{font-size:.86rem!important;line-height:1.32!important;max-width:60ch!important;}
.hero-status-grid,.hero-status-grid--four{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.45rem!important;margin-top:.58rem!important;}
.dashboard-preview-card--lab{max-height:420px!important;overflow:hidden!important;}
.mission-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.5rem!important;}
.preview-mini-metrics{gap:.5rem!important;margin-top:.52rem!important;}
.preview-note{font-size:.76rem!important;line-height:1.26!important;}
.observatory-lab-section{padding-top:.8rem!important;}
.dataset-tabs-panel{padding:.52rem!important;border-radius:16px!important;margin-bottom:.62rem!important;}
.dataset-tabs{gap:.35rem!important;}
.dataset-tab{min-height:28px!important;padding:.32rem .48rem!important;font-size:.68rem!important;border-radius:999px!important;}
.dashboard-actions{gap:.35rem!important;}
.observatory-layout,.observatory-layout--v9{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(245px,310px)!important;gap:.72rem!important;align-items:start!important;}
.observatory-main-panel,.observatory-side-panel .panel,.mini-panel,.data-table-panel{padding:.65rem!important;border-radius:16px!important;}
.observatory-panel-head{gap:.5rem!important;margin-bottom:.5rem!important;}
.observatory-panel-head h3,#chartTitle,#tableTitle{font-size:clamp(.95rem,1.1vw,1.22rem)!important;line-height:1.14!important;margin:.12rem 0!important;}
.chart-description{font-size:.78rem!important;line-height:1.26!important;margin:.22rem 0 .5rem!important;}
.badge-row,.summary-grid{gap:.32rem!important;}
.data-badge,.summary-item{padding:.3rem .42rem!important;border-radius:10px!important;font-size:.66rem!important;}
.summary-item strong{font-size:.86rem!important;}
.plotly-shell,.plotly-shell--v9,#observatoryChart{height:clamp(280px,46vh,430px)!important;min-height:280px!important;border-radius:16px!important;}
.chart-footnotes,.chart-footnotes a,#sourceTrace,#sourceTrace a,.source-live-panel p{overflow-wrap:anywhere!important;word-break:break-word!important;font-size:.68rem!important;line-height:1.25!important;}
.observatory-side-panel{display:grid!important;gap:.54rem!important;}
.observatory-side-panel .fact{grid-template-columns:76px 1fr!important;}
.table-wrap{max-height:clamp(260px,55vh,520px)!important;overflow:auto!important;border-radius:14px!important;}
.data-table{font-size:.78rem!important;border-collapse:separate!important;border-spacing:0!important;}
.data-table th{position:sticky!important;top:0!important;z-index:2!important;padding:.55rem .62rem!important;font-size:.74rem!important;}
.data-table td{padding:.42rem .62rem!important;font-size:.76rem!important;line-height:1.2!important;}
.agent-lab-section{padding-block:.9rem!important;}
.agent-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:.55rem!important;margin-bottom:.75rem!important;}
.agent-card span{width:30px!important;height:30px!important;font-size:.75rem!important;}
.observatory-consultation{grid-template-columns:minmax(0,1fr) minmax(300px,.86fr)!important;gap:.72rem!important;}
.scientific-assistant label,.question-label{color:#06152A!important;-webkit-text-fill-color:#06152A!important;font-weight:900!important;opacity:1!important;}
.scientific-assistant select,.scientific-assistant textarea{font-size:.8rem!important;line-height:1.28!important;border-radius:12px!important;}
.scientific-assistant textarea{min-height:112px!important;}
.question-chip-row{gap:.34rem!important;margin:.5rem 0!important;}
.question-chip{min-height:28px!important;padding:.3rem .48rem!important;font-size:.7rem!important;}
.assistant-response{color:#06152A!important;background:#F6FBFF!important;border:1px solid #CFE3F5!important;font-size:.78rem!important;line-height:1.32!important;padding:.65rem!important;}
.agent-report{display:grid!important;gap:.46rem!important;}
.agent-report-item{padding:.54rem .62rem!important;border-radius:12px!important;font-size:.78rem!important;line-height:1.32!important;}
.quote-box,.source-box{padding:.72rem!important;border-radius:14px!important;font-size:.82rem!important;line-height:1.36!important;overflow-wrap:anywhere!important;}

/* Footer limpio y no dominante */
.site-footer{padding-block:.75rem .5rem!important;}
.footer-grid{grid-template-columns:minmax(220px,1.05fr) repeat(3,minmax(130px,.72fr))!important;gap:1rem!important;margin-bottom:.72rem!important;}
.footer-logo,.site-footer img{max-height:56px!important;width:auto!important;max-width:210px!important;object-fit:contain!important;}
.site-footer h3{font-size:.78rem!important;margin-bottom:.25rem!important;}
.site-footer p,.site-footer a,.site-footer li,.site-footer span,.site-footer small{font-size:.68rem!important;line-height:1.26!important;margin:.08rem 0!important;}
.footer-bottom{padding-top:.4rem!important;margin-top:.45rem!important;font-size:.66rem!important;}
.accessibility-float,.a11y-toggle,[data-accessibility-toggle]{transform:scale(.86)!important;transform-origin:right bottom!important;}

@media (max-width:1100px){
  .hero-v37-grid,.hero-grid,.observatorio-grid,.observatory-layout,.observatory-consultation,.split,.projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout{grid-template-columns:1fr!important;}
  .hero-v37-copy h1,.observatorio-hero h1{max-width:none!important;}
  .cards,.agent-grid,.authority-ribbon{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:700px){
  .cards,.agent-grid,.authority-ribbon,.footer-grid{grid-template-columns:1fr!important;}
  .brand-version-compact strong{white-space:normal!important;font-size:.66rem!important;}
}

/* Tablas compactas y legibles en toda la plataforma */
:where(table, .data-table, .table, .scientific-table, .dataset-table, .citation-table, .lab-table) {
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  font-size:clamp(.68rem,.74vw,.82rem) !important;
  line-height:1.18 !important;
}
:where(table, .data-table, .table, .scientific-table, .dataset-table, .citation-table, .lab-table) :where(th,td) {
  padding:.34rem .48rem !important;
  line-height:1.18 !important;
  vertical-align:middle !important;
  min-height:0 !important;
}
:where(table, .data-table, .table, .scientific-table, .dataset-table, .citation-table, .lab-table) th {
  font-size:clamp(.66rem,.72vw,.8rem) !important;
  line-height:1.12 !important;
  letter-spacing:.01em !important;
}
:where(table, .data-table, .table, .scientific-table, .dataset-table, .citation-table, .lab-table) td {
  font-size:clamp(.66rem,.72vw,.8rem) !important;
  line-height:1.18 !important;
}
:where(.table-wrap,.data-table-wrap,.dataset-table-wrap,.chart-table-wrap,.observatory-table-wrap,.scientific-table-wrap,.lab-table-wrap,.table-container) {
  max-height:min(54vh,520px) !important;
  overflow:auto !important;
  scrollbar-width:thin !important;
  border-radius:16px !important;
}
:where(.table-wrap,.data-table-wrap,.dataset-table-wrap,.chart-table-wrap,.observatory-table-wrap,.scientific-table-wrap,.lab-table-wrap,.table-container) table {
  min-width:720px !important;
}
:where(.observatory-table,.nasa-table,.power-table,#dataTable,#observatoryDataTable) th,
:where(.observatory-table,.nasa-table,.power-table,#dataTable,#observatoryDataTable) td {
  padding:.28rem .44rem !important;
  font-size:clamp(.64rem,.68vw,.76rem) !important;
}
:where(.observatory-table,.nasa-table,.power-table,#dataTable,#observatoryDataTable) tbody tr {
  height:30px !important;
}
:where(.observatory-table,.nasa-table,.power-table,#dataTable,#observatoryDataTable) thead th {
  position:sticky !important;
  top:0 !important;
  z-index:4 !important;
}

/* Densidad editorial global: títulos, tarjetas y espacios sin sobredimensionar */
:where(h1,.h1,.hero-title) {
  font-size:clamp(2rem,4.05vw,3.85rem) !important;
  line-height:.92 !important;
  letter-spacing:-.055em !important;
}
:where(h2,.h2,.section-title) {
  font-size:clamp(1.42rem,2.45vw,2.55rem) !important;
  line-height:1 !important;
  letter-spacing:-.035em !important;
}
:where(h3,.h3,.card-title) {
  font-size:clamp(.95rem,1.1vw,1.2rem) !important;
  line-height:1.12 !important;
}
:where(p,li,dd,dt,label,input,select,textarea,button,a) {
  line-height:1.34;
}
:where(.section,.section-light,.section-dark,.page-section,main > section) {
  padding-top:clamp(.85rem,2.1vh,1.75rem) !important;
  padding-bottom:clamp(.85rem,2.1vh,1.75rem) !important;
}
:where(.section-head,.section-head-balanced,.split-heading,.page-head) {
  margin-bottom:clamp(.45rem,1.1vh,.85rem) !important;
}
:where(.card,.feature-card,.resource-card,.science-card,.module-card,.lab-card,.sim-card,.simlab-card,.arquitectura evolutiva-card,.gateway-card,.panel,.report-card) {
  padding:clamp(.58rem,1vw,.92rem) !important;
  min-height:0 !important;
}
:where(.card p,.feature-card p,.resource-card p,.science-card p,.module-card p,.lab-card p,.sim-card p,.simlab-card p,.arquitectura evolutiva-card p,.gateway-card p,.panel p) {
  font-size:clamp(.72rem,.82vw,.9rem) !important;
  line-height:1.3 !important;
}
:where(.grid,.cards-grid,.feature-grid,.resource-grid,.modules-grid,.lab-grid,.gateway-grid,.observatory-grid) {
  gap:clamp(.55rem,1.1vw,.95rem) !important;
}

/* Observatorio y dashboards: menos altura muerta, más lectura en una pantalla */
:where(.observatory-hero,.observatory-dashboard,.mission-control,.observatorio-panel,.dashboard-panel,.agent-panel,.data-panel) {
  padding:clamp(.68rem,1.2vw,1rem) !important;
  border-radius:clamp(16px,2vw,24px) !important;
}
:where(.observatory-hero h1,.observatorio-hero h1,.dashboard-hero h1) {
  font-size:clamp(1.9rem,3.65vw,3.45rem) !important;
  line-height:.96 !important;
}
:where(.observatory-hero p,.observatorio-hero p,.dashboard-hero p,.agent-panel p,.data-panel p) {
  font-size:clamp(.76rem,.86vw,.94rem) !important;
  line-height:1.28 !important;
}
:where(.agent-card,.diagnostic-card,.trace-card,.module-diagnostic-card) {
  padding:.62rem .72rem !important;
  border-radius:16px !important;
}
:where(.agent-card p,.diagnostic-card p,.trace-card p,.module-diagnostic-card p) {
  font-size:clamp(.72rem,.82vw,.9rem) !important;
  line-height:1.28 !important;
}
:where(.trace-card,.source-card,.url-card) {
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
}
:where(.trace-card a,.source-card a,.url-card a) {
  font-size:clamp(.66rem,.74vw,.82rem) !important;
  line-height:1.22 !important;
}

/* Formularios y preguntas: contraste y compactación */
:where(input,select,textarea) {
  font-size:clamp(.76rem,.84vw,.92rem) !important;
  padding:.5rem .62rem !important;
}
:where(textarea) {
  min-height:clamp(80px,14vh,130px) !important;
}
:where(.form-grid,.controls-grid,.filters-grid) {
  gap:.55rem !important;
}
:where(.btn,.button,button,.mini-btn,.text-link) {
  min-height:32px !important;
  padding:.45rem .68rem !important;
  font-size:clamp(.7rem,.78vw,.88rem) !important;
  line-height:1.1 !important;
}

/* Laboratorio y simuladores: controles + fenómeno visibles al mismo tiempo */
@media (min-width:1000px) {
  :where(.projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout) {
    grid-template-columns:minmax(205px,285px) minmax(0,1fr) !important;
    gap:.58rem !important;
  }
  :where(.projectile-control,.kinematics-control,.energy-control,.circular-control,.wave-control,.interference-control,.doppler-control,.em-control,.field-control,.circuit-control,.magnetic-control,.induction-control,.optics-control,.mirror-control,.refraction-control) {
    padding:.34rem .44rem !important;
    border-radius:12px !important;
  }
  :where(.projectile-control label,.kinematics-control label,.energy-control label,.circular-control label,.wave-control label,.interference-control label,.doppler-control label,.em-control label,.field-control label,.circuit-control label,.magnetic-control label,.induction-control label,.optics-control label,.mirror-control label,.refraction-control label) {
    font-size:.68rem !important;
    line-height:1.08 !important;
  }
  :where(.projectile-buttons,.kinematics-buttons,.energy-buttons,.circular-buttons,.wave-actions,.interference-actions,.doppler-actions,.em-actions,.field-actions,.circuit-actions,.magnetic-actions,.induction-actions,.optics-actions,.mirror-actions,.refraction-actions,.lab-actions) {
    gap:.34rem !important;
    margin-top:.45rem !important;
  }
  :where(.projectile-buttons .btn,.kinematics-buttons .btn,.energy-buttons .btn,.circular-buttons .btn,.wave-actions button,.interference-actions button,.doppler-actions button,.em-actions button,.field-actions button,.circuit-actions button,.magnetic-actions button,.induction-actions button,.optics-actions button,.mirror-actions button,.refraction-actions button,.lab-actions button) {
    min-height:30px !important;
    padding:.36rem .5rem !important;
    font-size:.72rem !important;
  }
  :where(canvas[data-canvas],canvas[data-graph],.projectile-canvas,.projectile-graph,#reflectionRefractionCanvas,#sphericalMirrorCanvas,#thinLensCanvas) {
    min-height:clamp(185px,29vh,305px) !important;
  }
  :where(.readout,.projectile-readout .readout,.mirror-readout-card,.refraction-readout-card,.optics-readout-card) {
    min-height:40px !important;
    padding:.34rem .42rem !important;
  }
  :where(.readout strong,.mirror-readout-card strong,.refraction-readout-card strong,.optics-readout-card strong) {
    font-size:.78rem !important;
  }
  :where(.readout span,.mirror-readout-card span,.refraction-readout-card span,.optics-readout-card span) {
    font-size:.56rem !important;
  }
}

/* Eliminar visualmente cualquier residuo funcionalmente vacío de arquitectura evolutiva futuro */
:where(.badge,.simlab-badge,.eyebrow):empty {
  display:none !important;
}
:where([data-status="next"],[data-status="coming-soon"],.coming-soon,.next-card,.future-card) {
  display:none !important;
}
