/* IngSoft V81.1 — Clean Premium Published Baseline
   Objetivo: arquitectura 100% limpia, robusta y premium sin romper lo funcional.
   Alcance: capa final de limpieza visual/editorial. No toca observatorio.js ni motores científicos. */
:root{
  --v811-bg:#020a16;
  --v811-navy:#06152a;
  --v811-panel:#071832;
  --v811-panel-2:#0b2747;
  --v811-blue:#0b73d9;
  --v811-cyan:#8bd4ff;
  --v811-ice:#f4f9fd;
  --v811-white:#ffffff;
  --v811-ink:#071832;
  --v811-muted:#49657f;
  --v811-red:#e41e2b;
  --v811-radius:24px;
  --v811-shadow:0 24px 70px rgba(2,10,22,.18);
  --v811-line:rgba(139,212,255,.30);
}
html{scroll-behavior:smooth;}
body.ingsoft-v81-clean,
html body{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
html body .site-header,
html body .v8099-site-header,
html body .v8099-global-header{
  backdrop-filter:saturate(145%) blur(18px);
  -webkit-backdrop-filter:saturate(145%) blur(18px);
}
html body .brand img,
html body .v8099-brand img,
html body .footer-logo{
  height:auto !important;
  object-fit:contain !important;
  image-rendering:auto !important;
}
html body .nav a,
html body .nav-link{
  text-decoration:none !important;
  letter-spacing:.01em;
}
html body .v8099-langbar button,
html body .v8099-langbar select{
  min-height:34px;
  border-radius:999px !important;
}
html body .v91-hero,
html body .hero{
  position:relative;
  overflow:hidden;
}
html body .v91-hero::before,
html body .hero::before{
  content:"";
  position:absolute;
  inset:-20% -10% auto auto;
  width:min(520px,45vw);
  height:min(520px,45vw);
  background:radial-gradient(circle,rgba(139,212,255,.22),transparent 64%);
  pointer-events:none;
  z-index:0;
}
html body .v91-hero > *,
html body .hero > *{position:relative;z-index:1;}
html body .v91-eyebrow,
html body .eyebrow,
html body .v92-eyebrow{
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}
html body .v91-card,
html body .card,
html body .panel,
html body .status-card,
html body .status-tile,
html body .agent-card,
html body .hero-status-card,
html body .dashboard-preview-card{
  border-radius:var(--v811-radius) !important;
  box-shadow:var(--v811-shadow);
}
html body .section-light .card,
html body .section-light .panel,
html body .section-light .status-card,
html body .section-light .status-tile,
html body .section-light .fact,
html body .summary-item{
  color:var(--v811-ink) !important;
  -webkit-text-fill-color:initial !important;
}
html body .section-light .card h1,
html body .section-light .card h2,
html body .section-light .card h3,
html body .section-light .panel h1,
html body .section-light .panel h2,
html body .section-light .panel h3{
  color:var(--v811-ink) !important;
  -webkit-text-fill-color:var(--v811-ink) !important;
}
html body .section-dark,
html body .observatorio-hero,
html body .v91-feature{
  color:var(--v811-white) !important;
  -webkit-text-fill-color:initial !important;
}
html body .section-dark p,
html body .section-dark span,
html body .section-dark small,
html body .observatorio-hero p,
html body .observatorio-hero span,
html body .observatorio-hero small{
  color:rgba(255,255,255,.88) !important;
}
html body a:focus-visible,
html body button:focus-visible,
html body input:focus-visible,
html body select:focus-visible,
html body textarea:focus-visible{
  outline:3px solid var(--v811-cyan) !important;
  outline-offset:3px !important;
}
html body .btn,
html body .v91-btn,
html body button[type="button"]{
  border-radius:999px !important;
  font-weight:850 !important;
}
/* Limpieza pública: la versión técnica queda en VERSION.txt, no como ruido visual de interfaz. */
html body .footer-bottom span:last-child{
  color:rgba(255,255,255,.72) !important;
  font-size:.84rem !important;
  letter-spacing:.02em !important;
}
html body .v811-public-stability-badge{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  border:1px solid rgba(139,212,255,.42);
  background:rgba(139,212,255,.10);
  color:#dff6ff !important;
  border-radius:999px;
  padding:.42rem .76rem;
  font-size:.78rem;
  font-weight:850;
}
html body .v811-public-stability-badge::before{
  content:"";
  width:.55rem;
  height:.55rem;
  border-radius:50%;
  background:var(--v811-cyan);
  box-shadow:0 0 0 4px rgba(139,212,255,.12);
}
/* Observatorio: identidad IngSoft, no lenguaje de laboratorio salvo referencias explícitas al laboratorio Celso-AQ. */
html body .observatory-consultation .scientific-assistant h2,
html body #agentes .scientific-assistant h2{
  color:inherit !important;
}
html body .observatory-lab-section .plotly-shell,
html body .observatory-lab-section #observatoryChart{
  border-radius:22px !important;
}
html body #v93LocationScience .v93-science-card,
html body #summaryGrid .summary-item{
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
html body #v93LocationScience .v93-science-card:hover,
html body #summaryGrid .summary-item:hover{
  transform:translateY(-2px);
}
/* Home publicada extensa: elevar lectura y disminuir sensación de catálogo técnico. */
html body .access-grid,
html body .cards,
html body .status-card-grid,
html body .v91-grid{
  align-items:stretch;
}
html body article:has(h3),
html body .card:has(h3){
  overflow:hidden;
}
html body article h3,
html body .card h3{
  text-wrap:balance;
}
html body .section-head h2,
html body .v91-title,
html body .hero h1{
  text-wrap:balance;
}
/* Evitar rótulos internos como protagonista visual. */
html body [data-v811-internal="cleaned"]{
  border-color:rgba(139,212,255,.36) !important;
}
html body [data-v811-internal="cleaned"] .eyebrow,
html body [data-v811-internal="cleaned"] .v91-eyebrow{
  color:var(--v811-cyan) !important;
}
@media (max-width: 920px){
  html body .v8099-header-inner,
  html body .header-inner{
    gap:.75rem !important;
  }
  html body .v8099-langbar{
    max-width:100%;
    overflow-x:auto;
  }
  html body .footer-bottom{
    gap:.4rem !important;
    text-align:center;
  }
}
@media print{
  html body .v8099-global-header,
  html body .site-header{position:static !important;}
  html body .footer-bottom span:last-child{display:none !important;}
}
