/*  Área de Ondas y sonido + corrección de contraste en submenús */
.nav-hierarchical .nav-dropdown,
.site-header .nav-dropdown,
.nav-dropdown {
  background:#FFFFFF !important;
  border:1px solid #9DC6E6 !important;
  box-shadow:0 24px 70px rgba(3,13,27,.30) !important;
  opacity:1 !important;
}
.nav-hierarchical .nav-dropdown a,
.site-header .nav-dropdown a,
.nav-dropdown a {
  color:#06152A !important;
  background:transparent !important;
  opacity:1 !important;
  text-shadow:none !important;
  font-weight:950 !important;
}
.nav-hierarchical .nav-dropdown a:hover,
.nav-hierarchical .nav-dropdown a:focus-visible,
.nav-hierarchical .nav-dropdown a[aria-current="page"],
.site-header .nav-dropdown a:hover,
.site-header .nav-dropdown a:focus-visible {
  background:#EAF7FF !important;
  color:#075EAB !important;
}
html.aq-high-contrast .nav-dropdown {
  background:#FFFFFF !important;
  border-color:#003E7E !important;
}
html.aq-high-contrast .nav-dropdown a {
  color:#000814 !important;
}
.wave-hero {
  background:
    radial-gradient(circle at 14% 12%, rgba(11,115,217,.18), transparent 36%),
    radial-gradient(circle at 78% 18%, rgba(228,30,43,.12), transparent 31%),
    linear-gradient(180deg,#FFFFFF 0%,#F3FAFF 100%);
}
.wave-area-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.wave-area-card,
.wave-panel,
.wave-readout-card {
  border:1px solid var(--ingsoft-line-soft);
  border-radius:26px;
  background:linear-gradient(180deg,#FFFFFF 0%,#F8FCFF 100%);
  box-shadow:var(--shadow-soft);
}
.wave-area-card {
  padding:1rem;
}
.wave-area-card h3 {
  margin:.15rem 0 .35rem;
  color:var(--ingsoft-navy);
}
.wave-area-card p {
  color:var(--ingsoft-muted);
  font-weight:760;
  line-height:1.55;
}
.wave-panel {
  padding:1rem;
}
.wave-layout {
  display:grid;
  grid-template-columns:minmax(280px,360px) minmax(0,1fr);
  gap:1rem;
  align-items:start;
}
.wave-controls {
  display:grid;
  gap:.85rem;
}
.wave-control {
  border:1px solid var(--ingsoft-line-soft);
  border-radius:18px;
  background:#FFFFFF;
  padding:.78rem;
}
.wave-control label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.7rem;
  color:var(--ingsoft-navy);
  font-weight:950;
}
.wave-control output {
  color:var(--ingsoft-blue);
  font-variant-numeric:tabular-nums;
}
.wave-control input,
.wave-control select {
  width:100%;
  margin-top:.55rem;
}
.wave-buttons {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin-top:1rem;
}
.wave-buttons button,
.wave-mini-btn {
  border:1px solid var(--ingsoft-line);
  border-radius:999px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  font-weight:950;
  cursor:pointer;
  padding:.62rem .85rem;
}
.wave-buttons button[data-action="play"] {
  background:var(--ingsoft-blue);
  color:#FFFFFF;
  border-color:var(--ingsoft-blue);
}
.wave-note {
  color:var(--ingsoft-muted);
  font-weight:760;
  line-height:1.55;
}
.wave-stage {
  display:grid;
  gap:1rem;
}
.wave-readout {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem;
}
.wave-readout-card {
  padding:.85rem;
}
.wave-readout-card span {
  display:block;
  color:var(--ingsoft-muted);
  font-size:.78rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.wave-readout-card strong {
  display:block;
  margin-top:.18rem;
  color:var(--ingsoft-navy);
  font-size:1.15rem;
  font-variant-numeric:tabular-nums;
}
.wave-canvas-wrap {
  border:1px solid var(--ingsoft-line);
  border-radius:28px;
  background:
    linear-gradient(180deg,#06152A 0%,#081E38 100%);
  padding:1rem;
  box-shadow:0 20px 56px rgba(3,13,27,.18);
}
#waveCanvas {
  width:100%;
  min-height:420px;
  border-radius:22px;
  background:#051126;
  display:block;
  touch-action:none;
}
.wave-equations {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.75rem;
}
.wave-equations code {
  display:block;
  border:1px solid var(--ingsoft-line-soft);
  border-radius:18px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  padding:.7rem;
  font-weight:950;
  text-align:center;
}
.wave-badge {
  display:inline-flex;
  align-items:center;
  border:1px solid var(--ingsoft-line);
  border-radius:999px;
  padding:.36rem .7rem;
  background:#EAF7FF;
  color:#153A63;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.78rem;
}
@media (max-width:1080px) {
  .wave-area-grid,
  .wave-layout,
  .wave-readout,
  .wave-equations {
    grid-template-columns:1fr;
  }
  #waveCanvas {
    min-height:320px;
  }
}

/*  Interferencia y ondas estacionarias Celso-AQ */
.interference-layout {
  display:grid;
  grid-template-columns:minmax(290px,380px) minmax(0,1fr);
  gap:1rem;
  align-items:start;
}
.interference-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin:0 0 1rem;
}
.interference-tabs button {
  border:1px solid var(--ingsoft-line);
  border-radius:999px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  font-weight:950;
  padding:.62rem .88rem;
  cursor:pointer;
}
.interference-tabs button[aria-pressed="true"] {
  background:var(--ingsoft-blue);
  border-color:var(--ingsoft-blue);
  color:#FFFFFF;
}
.interference-control-grid {
  display:grid;
  gap:.72rem;
}
.interference-control {
  border:1px solid var(--ingsoft-line-soft);
  border-radius:18px;
  background:#FFFFFF;
  padding:.74rem;
}
.interference-control label {
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:var(--ingsoft-navy);
  font-weight:950;
  gap:.7rem;
}
.interference-control output {
  color:var(--ingsoft-blue);
  font-variant-numeric:tabular-nums;
}
.interference-control input,
.interference-control select {
  width:100%;
  margin-top:.55rem;
}
.interference-canvas-wrap {
  border:1px solid var(--ingsoft-line);
  border-radius:28px;
  background:linear-gradient(180deg,#06152A 0%,#081E38 100%);
  padding:1rem;
  box-shadow:0 20px 56px rgba(3,13,27,.18);
}
#interferenceCanvas {
  width:100%;
  min-height:460px;
  border-radius:22px;
  background:#051126;
  display:block;
  touch-action:none;
}
.interference-readout {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem;
  margin:0 0 1rem;
}
.interference-readout-card {
  border:1px solid var(--ingsoft-line-soft);
  border-radius:22px;
  background:#FFFFFF;
  padding:.85rem;
  box-shadow:var(--shadow-soft);
}
.interference-readout-card span {
  display:block;
  color:var(--ingsoft-muted);
  font-size:.76rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.interference-readout-card strong {
  display:block;
  margin-top:.18rem;
  color:var(--ingsoft-navy);
  font-size:1.1rem;
  font-variant-numeric:tabular-nums;
}
.interference-legend {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin:.8rem 0;
}
.interference-legend span {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  border:1px solid var(--ingsoft-line-soft);
  border-radius:999px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  font-weight:900;
  padding:.38rem .65rem;
}
.interference-legend i {
  width:18px;
  height:4px;
  border-radius:999px;
  display:inline-block;
}
.interference-equations {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.7rem;
}
.interference-equations code {
  display:block;
  border:1px solid var(--ingsoft-line-soft);
  border-radius:18px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  padding:.68rem;
  font-weight:950;
  text-align:center;
}
.interference-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin-top:1rem;
}
.interference-actions button {
  border:1px solid var(--ingsoft-line);
  border-radius:999px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  font-weight:950;
  cursor:pointer;
  padding:.62rem .85rem;
}
.interference-actions button[data-action="play"] {
  background:var(--ingsoft-blue);
  color:#FFFFFF;
  border-color:var(--ingsoft-blue);
}
.mode-note {
  color:var(--ingsoft-muted);
  font-weight:760;
  line-height:1.55;
}
@media (max-width:1080px) {
  .interference-layout,
  .interference-readout,
  .interference-equations {
    grid-template-columns:1fr;
  }
  #interferenceCanvas {
    min-height:340px;
  }
}

/*  Sonido y efecto Doppler Celso-AQ */
.doppler-layout {
  display:grid;
  grid-template-columns:minmax(290px,380px) minmax(0,1fr);
  gap:1rem;
  align-items:start;
}
.doppler-control-grid {
  display:grid;
  gap:.72rem;
}
.doppler-control {
  border:1px solid var(--ingsoft-line-soft);
  border-radius:18px;
  background:#FFFFFF;
  padding:.74rem;
}
.doppler-control label {
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:var(--ingsoft-navy);
  font-weight:950;
  gap:.7rem;
}
.doppler-control output {
  color:var(--ingsoft-blue);
  font-variant-numeric:tabular-nums;
}
.doppler-control input,
.doppler-control select {
  width:100%;
  margin-top:.55rem;
}
.doppler-canvas-wrap {
  border:1px solid var(--ingsoft-line);
  border-radius:28px;
  background:linear-gradient(180deg,#06152A 0%,#081E38 100%);
  padding:1rem;
  box-shadow:0 20px 56px rgba(3,13,27,.18);
}
#dopplerCanvas {
  width:100%;
  min-height:480px;
  border-radius:22px;
  background:#051126;
  display:block;
  touch-action:none;
}
.doppler-readout {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem;
  margin:0 0 1rem;
}
.doppler-readout-card {
  border:1px solid var(--ingsoft-line-soft);
  border-radius:22px;
  background:#FFFFFF;
  padding:.85rem;
  box-shadow:var(--shadow-soft);
}
.doppler-readout-card span {
  display:block;
  color:var(--ingsoft-muted);
  font-size:.76rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.doppler-readout-card strong {
  display:block;
  margin-top:.18rem;
  color:var(--ingsoft-navy);
  font-size:1.1rem;
  font-variant-numeric:tabular-nums;
}
.doppler-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin-top:1rem;
}
.doppler-actions button {
  border:1px solid var(--ingsoft-line);
  border-radius:999px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  font-weight:950;
  cursor:pointer;
  padding:.62rem .85rem;
}
.doppler-actions button[data-action="play"] {
  background:var(--ingsoft-blue);
  color:#FFFFFF;
  border-color:var(--ingsoft-blue);
}
.doppler-legend {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin:.8rem 0;
}
.doppler-legend span {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  border:1px solid var(--ingsoft-line-soft);
  border-radius:999px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  font-weight:900;
  padding:.38rem .65rem;
}
.doppler-legend i {
  width:18px;
  height:4px;
  border-radius:999px;
  display:inline-block;
}
.doppler-equations {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.7rem;
}
.doppler-equations code {
  display:block;
  border:1px solid var(--ingsoft-line-soft);
  border-radius:18px;
  background:#FFFFFF;
  color:var(--ingsoft-navy);
  padding:.68rem;
  font-weight:950;
  text-align:center;
}
.doppler-note {
  color:var(--ingsoft-muted);
  font-weight:760;
  line-height:1.55;
}
.doppler-status-pill {
  display:inline-flex;
  align-items:center;
  border:1px solid var(--ingsoft-line);
  border-radius:999px;
  padding:.35rem .7rem;
  background:#EAF7FF;
  color:#153A63;
  font-weight:950;
  font-size:.82rem;
}
@media (max-width:1080px) {
  .doppler-layout,
  .doppler-readout,
  .doppler-equations {
    grid-template-columns:1fr;
  }
  #dopplerCanvas {
    min-height:350px;
  }
}
/* 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;
}
