/*
 * Yolia Icon Guard V2
 * Corrige el tamaño intrínseco 300x150 de SVG sin dimensiones.
 * Solo actúa sobre iconos y SVG pequeños; no toca mapas, gráficas,
 * logotipos, ilustraciones ni SVG marcados como fluidos.
 */
:root{
  --yolia-icon-default-size:1.25rem;
  --yolia-icon-control-size:1.125rem;
}

:where(
  .icon,
  .yolia-icon,
  .yolia-icon-btn,
  .yolia-stat-icon,
  .yolia-case-icon,
  .yolia-side-link,
  .yolia-btn,
  .yb-btn,
  .yb-icon,
  [data-yolia-icon],
  .yb-nav-action-icon,
  .yb-v37-session-icon,
  .yb-v37-public-user-icon,
  .yolia-public-user-icon,
  .yb-lang-toggle,
  .yb-tab-icon-wrap,
  .yb-tvp__tab-icon,
  .yb-nav-label,
  .yb-nav-arrow,
  .y896b-icon,
  .sbx-icon,
  .labsel-icon,
  .sws-nav a
) svg:not([data-yolia-svg-fluid]):not([data-yolia-svg-art]){
  display:block!important;
  inline-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  block-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  max-inline-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  max-block-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  min-inline-size:0!important;
  min-block-size:0!important;
  flex:0 0 auto!important;
  overflow:visible;
  vertical-align:middle;
}

:where(
  .yb-nav-action-icon,
  .yb-v37-public-user-icon,
  .yolia-public-user-icon,
  .yb-lang-toggle
) > svg:not([data-yolia-svg-fluid]):not([data-yolia-svg-art]){
  inline-size:100%!important;
  block-size:100%!important;
  max-inline-size:100%!important;
  max-block-size:100%!important;
}

:where(
  .rail-btn,
  .icon-btn,
  .top-chip,
  .primary-btn,
  .panel-toggle-btn,
  .yb-search-trigger,
  .yb-save-btn,
  .yb-action-individual,
  .yb-action-icons,
  .yb-inspector-action-icon,
  .yb-tab-icon,
  .yb-property-search,
  .yb-modal-side-icon
) svg:not([data-yolia-svg-fluid]):not([data-yolia-svg-art]){
  display:block!important;
  inline-size:var(--yolia-icon-control-size)!important;
  block-size:var(--yolia-icon-control-size)!important;
  max-inline-size:var(--yolia-icon-control-size)!important;
  max-block-size:var(--yolia-icon-control-size)!important;
  min-inline-size:0!important;
  min-block-size:0!important;
  flex:0 0 auto!important;
}

/*
 * Respaldo para iconos inline sin clase. Las dimensiones 24x24 y 64x74 son
 * las usadas por el catálogo interno del Builder. Solo se corrigen cuando
 * el SVG no declara un tamaño o estilo propio.
 */
:where(
  svg[viewBox="0 0 24 24"]:not([width]):not([height]):not([style*="width"]):not([style*="height"]):not([data-yolia-svg-fluid]):not([data-yolia-svg-art]),
  svg[viewBox="0 0 64 74"]:not([width]):not([height]):not([style*="width"]):not([style*="height"]):not([data-yolia-svg-fluid]):not([data-yolia-svg-art])
){
  display:inline-block!important;
  inline-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  block-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  max-inline-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  max-block-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  min-inline-size:0!important;
  min-block-size:0!important;
  flex:0 0 auto!important;
  vertical-align:middle;
}

:where(button,a) > svg:not([width]):not([height]):not([style*="width"]):not([style*="height"]):not([data-yolia-svg-fluid]):not([data-yolia-svg-art]):not([class*="chart"]):not([class*="map"]):not([class*="logo"]):not([class*="illustration"]){
  display:block!important;
  inline-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  block-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  max-inline-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  max-block-size:var(--yolia-icon-size,var(--yb-icon-size,var(--yolia-icon-default-size)))!important;
  min-inline-size:0!important;
  min-block-size:0!important;
  flex:0 0 auto!important;
}


/* Los iconos de acción toman el tamaño exacto de su contenedor. */
.yb-nav-action-icon > svg:not([data-yolia-svg-fluid]):not([data-yolia-svg-art]),
.yb-v37-public-user-icon > svg:not([data-yolia-svg-fluid]):not([data-yolia-svg-art]),
.yolia-public-user-icon > svg:not([data-yolia-svg-fluid]):not([data-yolia-svg-art]),
.yb-lang-toggle > svg:not([data-yolia-svg-fluid]):not([data-yolia-svg-art]){
  inline-size:100%!important;
  block-size:100%!important;
  max-inline-size:100%!important;
  max-block-size:100%!important;
}

/* Excepciones explícitas para contenido visual que sí debe conservar su tamaño. */
:where(
  .leaflet-container,
  .yolia-map,
  [data-yolia-map],
  .yb-chart,
  .yolia-chart,
  [data-yolia-chart],
  .yb-nav-logo-frame,
  .yolia-logo,
  [data-yolia-logo],
  figure,
  .yolia-illustration,
  [data-yolia-illustration]
) svg{
  max-inline-size:100%;
}

/* Los SVG de YoliaIcon siempre conservan proporción. */
svg.yolia-svg-icon,
svg.yb-inline-icon-svg{
  aspect-ratio:1 / 1;
  flex:0 0 auto;
}
