/*
 * TransmissionLine Ampacidad · TRLI-AMP-WEB-024
 * © 2026 TransmissionLine. Hoja de estilo propietaria.
 */
.amp-catalog {
  margin: 0 0 1.25rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid color-mix(in srgb, #315c58 24%, transparent);
  border-radius: 1rem;
  background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(238, 244, 232, .94));
  box-shadow: 0 16px 38px rgba(16, 42, 45, .09);
  color: #173336;
}

/* Sistema compacto compartido con la pestaña PLS-CADD */
.entry-sheet-conductor,
.entry-solar-sheet,
.amp-elevation-panel,
.entry-transient-sheet {
  color: var(--pls-ink, #102a43);
  font-family: "Source Sans 3", sans-serif;
}

.entry-sheet-conductor .entry-sheet-block,
.entry-solar-sheet,
.amp-elevation-panel,
.entry-transient-sheet {
  padding: .52rem !important;
  border: 1px solid var(--pls-line, #bed5e9) !important;
  border-radius: .55rem !important;
  background: #fff !important;
  box-shadow: none !important;
}

.entry-sheet-conductor .entry-sheet-block::before,
.entry-solar-sheet::before,
.amp-elevation-panel::before,
.entry-transient-sheet::before {
  display: none !important;
}

.entry-sheet-conductor .tool-field,
.entry-solar-sheet .entry-solar-field,
.entry-transient-sheet .tool-field {
  min-width: 0 !important;
  gap: .16rem !important;
}

.entry-sheet-conductor .tool-field-head,
.entry-transient-sheet .tool-field-head {
  min-height: 1.35rem !important;
  margin: 0 !important;
  gap: .04rem !important;
}

.entry-sheet-conductor .tool-field-label,
.entry-sheet-conductor .tool-field-hint,
.entry-solar-sheet .entry-solar-field-label,
.entry-transient-sheet .tool-field-label,
.entry-transient-sheet .tool-field-hint {
  min-height: 0 !important;
  margin: 0 !important;
  color: #173c5c !important;
  font-family: "Source Sans 3", sans-serif !important;
  font-size: .61rem !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  line-height: 1.15 !important;
  text-transform: uppercase !important;
}

.entry-sheet-conductor .tool-field-hint,
.entry-transient-sheet .tool-field-hint {
  color: var(--pls-muted, #526d86) !important;
  font-size: .52rem !important;
  letter-spacing: .04em !important;
}

.entry-sheet-conductor [data-slot="input-group"],
.entry-solar-sheet [data-slot="input-group"],
.entry-transient-sheet [data-slot="input-group"],
.amp-elevation-input-shell,
.amp-elevation-criterion select {
  min-height: 35px !important;
  overflow: hidden !important;
  border: 1px solid #a9c8e1 !important;
  border-radius: .42rem !important;
  background: #fbfdff !important;
  box-shadow: none !important;
}

.entry-sheet-conductor [data-slot="input-group"]:focus-within,
.entry-solar-sheet [data-slot="input-group"]:focus-within,
.entry-transient-sheet [data-slot="input-group"]:focus-within,
.amp-elevation-input-shell:focus-within,
.amp-elevation-criterion select:focus-visible {
  border-color: var(--pls-blue, #0c87d8) !important;
  box-shadow: 0 0 0 2px rgba(45, 163, 243, .13) !important;
  outline: 0 !important;
}

.entry-sheet-conductor input[data-slot="input-group-control"],
.entry-solar-sheet input[data-slot="input-group-control"],
.entry-transient-sheet input[data-slot="input-group-control"],
.amp-elevation-input-shell input {
  min-height: 33px !important;
  height: 33px !important;
  padding: .28rem .48rem !important;
  color: var(--pls-ink, #102a43) !important;
  background: transparent !important;
  font: 600 .76rem/1 "Source Sans 3", sans-serif !important;
}

.entry-sheet-conductor input[readonly],
.amp-elevation-input-shell input[readonly] {
  background: #eef5fa !important;
}

.entry-sheet-conductor [data-slot="input-group-addon"],
.entry-solar-sheet [data-slot="input-group-addon"],
.entry-transient-sheet [data-slot="input-group-addon"],
.entry-sheet-conductor .tool-input-unit,
.entry-solar-sheet .tool-input-unit,
.entry-transient-sheet .tool-input-unit,
.amp-elevation-input-shell > span {
  min-width: 2.5rem !important;
  min-height: 33px !important;
  padding: 0 .38rem !important;
  color: var(--pls-muted, #526d86) !important;
  background: transparent !important;
  font-size: .62rem !important;
  line-height: 33px !important;
}

.entry-sheet-conductor .amp-help-button,
.entry-solar-sheet .amp-help-button,
.entry-transient-sheet .amp-help-button {
  width: 27px !important;
  height: 27px !important;
  min-width: 27px !important;
  min-height: 27px !important;
  margin: 3px !important;
  border-color: #9cc8e8 !important;
  background: #edf7ff !important;
  color: #0969a8 !important;
  font-size: .68rem !important;
}

/* Conductor: la misma matriz compacta de propiedades de PLS-CADD */
.entry-sheet-conductor {
  display: grid !important;
  gap: .42rem !important;
}

.entry-sheet-conductor .entry-sheet-row,
.entry-sheet-conductor .entry-resistance-grid {
  gap: .35rem .42rem !important;
}

.entry-sheet-conductor .entry-sheet-row + .entry-sheet-row,
.entry-sheet-conductor .entry-sheet-row + .entry-resistance-grid,
.entry-sheet-conductor .entry-resistance-grid + .entry-sheet-row {
  margin-top: .35rem !important;
}

.entry-sheet-conductor .entry-sheet-row-split {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.entry-sheet-conductor .entry-resistance-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.entry-sheet-conductor .entry-sheet-support {
  min-height: 0 !important;
  padding: .48rem .55rem !important;
  border: 1px solid #d8e5ef !important;
  border-radius: .5rem !important;
  background: #faf9f4 !important;
}

.entry-sheet-conductor .entry-sheet-support .tool-visual-overlay {
  display: grid !important;
  grid-template-columns: 7.5rem 1fr 1.15fr !important;
  align-items: center !important;
  gap: .7rem !important;
}

/* Radiación: elimina la cabecera dispersa y agrupa datos como tarjetas PLS */
.entry-solar-sheet {
  display: grid !important;
  gap: .42rem !important;
}

.entry-solar-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: .5rem !important;
  padding: 0 0 .38rem !important;
  border-bottom: 1px solid #d7e6f1 !important;
}

.entry-solar-header-label {
  color: var(--pls-navy, #0a2947) !important;
  font-size: .84rem !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

.entry-solar-header-unit {
  margin-left: auto !important;
  color: var(--pls-muted, #526d86) !important;
  font-size: .68rem !important;
  font-weight: 600 !important;
}

.entry-solar-header-season {
  display: none !important;
}

.entry-solar-average-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: .42rem !important;
  margin: 0 !important;
}

.entry-solar-average-card {
  min-height: 0 !important;
  padding: .46rem .52rem !important;
  border: 1px solid var(--pls-line, #bed5e9) !important;
  border-radius: .5rem !important;
  background: #f8fbfe !important;
  box-shadow: none !important;
}

.entry-solar-average-title {
  color: #173c5c !important;
  font-size: .61rem !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
}

.entry-solar-average-card strong {
  color: var(--pls-navy, #0a2947) !important;
  font-size: 1rem !important;
  line-height: 1.08 !important;
}

.entry-solar-average-card small {
  color: var(--pls-muted, #526d86) !important;
  font-size: .62rem !important;
}

.entry-solar-toolbar {
  display: grid !important;
  gap: .38rem !important;
  margin: 0 !important;
  padding: .5rem !important;
  border: 1px solid var(--pls-line, #bed5e9) !important;
  border-radius: .5rem !important;
  background: #f7fbff !important;
  color: var(--pls-ink, #102a43) !important;
}

.entry-solar-toolbar > p:first-child {
  color: var(--pls-muted, #526d86) !important;
  font-size: .72rem !important;
  line-height: 1.3 !important;
}

.entry-solar-toolbar-actions {
  gap: .28rem !important;
}

.entry-solar-toolbar .amp-inline-query-status,
.entry-solar-source-meta {
  margin: 0 !important;
  padding: .34rem .44rem !important;
  border-left-width: 3px !important;
  background: #eaf5fe !important;
  color: #285a80 !important;
  font-size: .64rem !important;
}

.entry-solar-source-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .25rem .8rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.entry-solar-coordinates-head-expanded,
.entry-solar-data-row-expanded {
  grid-template-columns: minmax(6.5rem, .72fr) repeat(2, minmax(7rem, .95fr)) repeat(3, minmax(8rem, 1fr)) !important;
  gap: .35rem .42rem !important;
}

.entry-solar-coordinates-head-expanded {
  padding: 0 .42rem !important;
}

.entry-solar-coordinates-head-expanded span {
  color: var(--pls-muted, #526d86) !important;
  font-size: .56rem !important;
}

.entry-solar-data-row-expanded {
  padding: .42rem !important;
  border: 1px solid var(--pls-line, #bed5e9) !important;
  border-radius: .5rem !important;
  background: #fff !important;
}

/* Elevación: resumen tabular compacto y alineado */
.amp-elevation-panel {
  display: grid !important;
  gap: .42rem !important;
  margin-top: 0 !important;
}

.amp-elevation-heading {
  align-items: center !important;
  gap: .6rem !important;
  padding-bottom: .38rem !important;
  border-bottom: 1px solid #d7e6f1 !important;
}

.amp-elevation-heading h4 {
  margin: .04rem 0 !important;
  color: var(--pls-navy, #0a2947) !important;
  font-size: .84rem !important;
  line-height: 1.1 !important;
}

.amp-elevation-heading p:last-child {
  margin: .1rem 0 0 !important;
  color: var(--pls-muted, #526d86) !important;
  font-size: .68rem !important;
  line-height: 1.3 !important;
}

.amp-elevation-summary {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: .35rem .42rem !important;
  margin: 0 !important;
}

.amp-elevation-summary > div {
  min-height: 0 !important;
  gap: .08rem !important;
  padding: .42rem .48rem !important;
  border: 1px solid var(--pls-line, #bed5e9) !important;
  border-radius: .48rem !important;
  background: #f8fbfe !important;
}

.amp-elevation-summary .is-summary {
  border-color: #91c7ed !important;
  background: #eaf5fe !important;
}

.amp-elevation-summary span,
.amp-elevation-summary small {
  color: var(--pls-muted, #526d86) !important;
  font-size: .58rem !important;
}

.amp-elevation-summary strong {
  color: var(--pls-navy, #0a2947) !important;
  font-size: .92rem !important;
  line-height: 1.05 !important;
}

.amp-elevation-criterion {
  grid-template-columns: minmax(10rem, .62fr) minmax(14rem, 1fr) !important;
  gap: .42rem !important;
  margin: 0 !important;
  color: #173c5c !important;
  font-size: .68rem !important;
}

.amp-elevation-criterion select {
  height: 35px !important;
  min-height: 35px !important;
  padding: .28rem .48rem !important;
  color: var(--pls-ink, #102a43) !important;
  font-size: .74rem !important;
}

.amp-elevation-status {
  margin: 0 !important;
  padding: .38rem .48rem !important;
  border-left-width: 3px !important;
  background: #eaf5fe !important;
  font-size: .66rem !important;
  line-height: 1.3 !important;
}

/* Transitorio: campos y resultados con la densidad de PLS-CADD */
section.tool-panel-entry-sheet:has(.entry-transient-sheet) {
  padding: .58rem !important;
  border-radius: .65rem !important;
}

section.tool-panel-entry-sheet:has(.entry-transient-sheet) > .tool-panel-heading {
  margin-bottom: .42rem !important;
  padding-bottom: .38rem !important;
  border-bottom: 1px solid #d7e6f1 !important;
}

section.tool-panel-entry-sheet:has(.entry-transient-sheet) > .tool-panel-heading h3 {
  color: var(--pls-navy, #0a2947) !important;
  font-size: 1rem !important;
  line-height: 1.08 !important;
}

section.tool-panel-entry-sheet:has(.entry-transient-sheet) > .tool-panel-heading p {
  font-size: .68rem !important;
  line-height: 1.3 !important;
}

.entry-transient-sheet,
.entry-transient-main {
  gap: .42rem !important;
}

.entry-transient-inline-fields {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .35rem .42rem !important;
}

.tool-transient-grid-sheet {
  gap: .28rem !important;
}

.tool-transient-row-sheet {
  grid-template-columns: minmax(10rem, 1.25fr) minmax(0, 2.25fr) !important;
  gap: .42rem !important;
  padding: .34rem .42rem !important;
  border: 1px solid var(--pls-line, #bed5e9) !important;
  border-radius: .48rem !important;
  background: #fff !important;
}

.tool-transient-label {
  color: #173c5c !important;
  font-size: .68rem !important;
  font-weight: 700 !important;
}

.tool-transient-values-sheet {
  gap: .28rem !important;
}

.tool-transient-values-sheet > div {
  min-height: 34px !important;
  padding: .3rem .42rem !important;
  border-radius: .42rem !important;
  background: #f2f7fb !important;
}

.tool-transient-values-sheet small {
  color: var(--pls-muted, #526d86) !important;
  font-size: .54rem !important;
}

.tool-transient-values-sheet strong {
  color: var(--pls-ink, #102a43) !important;
  font-size: .74rem !important;
}

.entry-transient-note {
  padding: .48rem .55rem !important;
  border: 1px solid #d8e5ef !important;
  border-radius: .5rem !important;
  background: #faf9f4 !important;
  color: var(--pls-muted, #526d86) !important;
  font-size: .68rem !important;
}

.entry-transient-note-title {
  color: var(--pls-navy, #0a2947) !important;
  font-size: .72rem !important;
}

@media (max-width: 900px) {
  .entry-sheet-conductor .entry-resistance-grid,
  .entry-transient-inline-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .entry-solar-coordinates-head-expanded {
    display: none !important;
  }

  .entry-solar-data-row-expanded {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .entry-solar-data-row-expanded > :first-child,
  .amp-elevation-row-field {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 640px) {
  .entry-sheet-conductor .entry-sheet-row-split,
  .entry-sheet-conductor .entry-resistance-grid,
  .entry-solar-average-grid,
  .entry-solar-data-row-expanded,
  .entry-transient-inline-fields,
  .amp-elevation-summary,
  .amp-elevation-criterion,
  .tool-transient-row-sheet {
    grid-template-columns: 1fr !important;
  }

  .entry-sheet-conductor [data-slot="input-group"],
  .entry-solar-sheet [data-slot="input-group"],
  .entry-transient-sheet [data-slot="input-group"],
  .amp-elevation-input-shell,
  .amp-elevation-criterion select {
    min-height: 44px !important;
  }

  .entry-sheet-conductor input[data-slot="input-group-control"],
  .entry-solar-sheet input[data-slot="input-group-control"],
  .entry-transient-sheet input[data-slot="input-group-control"],
  .amp-elevation-input-shell input {
    min-height: 42px !important;
    height: 42px !important;
    font-size: .88rem !important;
  }

  .entry-sheet-conductor [data-slot="input-group-addon"],
  .entry-solar-sheet [data-slot="input-group-addon"],
  .entry-transient-sheet [data-slot="input-group-addon"],
  .amp-elevation-input-shell > span {
    min-height: 42px !important;
    line-height: 42px !important;
  }

  .entry-sheet-conductor .entry-sheet-support .tool-visual-overlay {
    grid-template-columns: 1fr !important;
  }

  .amp-elevation-heading {
    align-items: stretch !important;
    flex-direction: column !important;
  }
}


.amp-guide,
.amp-solar {
  margin-top: 1.25rem;
}

.amp-guide-head,
.amp-solar-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: .9rem;
}

.amp-guide-head h3,
.amp-solar-head h3 {
  margin: 0;
  color: #173336;
  font: 700 clamp(1.15rem, 1.8vw, 1.45rem)/1.2 "IBM Plex Sans Condensed", sans-serif;
}

.amp-guide-head p:last-child,
.amp-solar-head p:last-child {
  margin: .3rem 0 0;
  color: #4b6262;
  line-height: 1.45;
}

.amp-guide-icon {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: .8rem;
  background: #e5f1e5;
  color: #315d58;
}

.amp-guide-icon.is-solar {
  background: #fff2d5;
  color: #9b5b07;
}

.amp-guide-icon svg,
.amp-secondary-link svg,
#amp-solar-fill svg {
  width: 1.25rem;
  height: 1.25rem;
}

.amp-secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 44px;
  padding: .55rem .75rem;
  border: 1px solid rgba(49, 92, 88, .28);
  border-radius: .65rem;
  background: rgba(255, 255, 255, .76);
  color: #244f4c;
  font-weight: 750;
  text-decoration: none;
}

.amp-secondary-link:hover {
  background: #fff;
  border-color: #315d58;
}

.amp-guide-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
  counter-reset: guide-step;
}

.amp-guide-steps li {
  position: relative;
  min-width: 0;
  padding: .85rem .85rem .85rem 3rem;
  border: 1px solid rgba(49, 92, 88, .14);
  border-radius: .75rem;
  background: rgba(255, 255, 255, .68);
  counter-increment: guide-step;
}

.amp-guide-steps li::before {
  position: absolute;
  top: .8rem;
  left: .75rem;
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: #315d58;
  color: #fff;
  content: counter(guide-step);
  font-weight: 800;
}

.amp-guide-steps strong,
.amp-guide-steps span {
  display: block;
}

.amp-guide-steps span {
  margin-top: .2rem;
  color: #506663;
  font-size: .86rem;
  line-height: 1.4;
}

.amp-guide-detail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem 1rem;
}

.amp-solar-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(9rem, .7fr)) minmax(15rem, 1.35fr);
  align-items: end;
  gap: .75rem;
  margin-top: 1rem;
}

.amp-coordinate-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
  padding: .75rem;
  border: 1px solid rgba(49, 92, 88, .16);
  border-radius: .75rem;
  background: rgba(255, 255, 255, .62);
}

.amp-coordinate-bar strong,
.amp-coordinate-bar span {
  display: block;
}

.amp-coordinate-bar span {
  margin-top: .15rem;
  color: #506663;
  font-size: .84rem;
  line-height: 1.4;
}

.amp-coordinate-switch {
  display: inline-flex;
  flex: 0 0 auto;
  gap: .25rem;
  padding: .25rem;
  border: 1px solid rgba(49, 92, 88, .22);
  border-radius: .7rem;
  background: #fff;
}

.amp-coordinate-switch button {
  min-height: 44px;
  padding: .5rem .75rem;
  border: 0;
  border-radius: .5rem;
  background: transparent;
  color: #375150;
  font-weight: 750;
  cursor: pointer;
}

.amp-coordinate-switch button[aria-pressed="true"] {
  background: #214b4b;
  color: #fff;
}

.amp-utm-panel {
  margin-top: .75rem;
  padding: .85rem;
  border: 1px solid rgba(49, 92, 88, .2);
  border-radius: .75rem;
  background: rgba(229, 241, 229, .58);
}

.amp-utm-panel[hidden] {
  display: none;
}

.amp-utm-panel > p:first-child {
  margin: 0 0 .7rem;
  color: #385654;
}

.amp-utm-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
}

.amp-utm-grid fieldset {
  display: grid;
  grid-template-columns: .65fr 1fr 1fr;
  gap: .55rem;
  min-width: 0;
  margin: 0;
  padding: .7rem;
  border: 1px solid rgba(49, 92, 88, .18);
  border-radius: .65rem;
  background: rgba(255, 255, 255, .76);
}

.amp-utm-grid legend {
  padding: 0 .3rem;
  color: #214b4b;
  font-weight: 800;
}

.amp-utm-grid label {
  display: grid;
  gap: .3rem;
  min-width: 0;
  color: #2a4847;
  font-size: .76rem;
  font-weight: 750;
}

.amp-utm-grid input,
.amp-utm-grid select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: .5rem .55rem;
  border: 1px solid #bdcbc6;
  border-radius: .55rem;
  background: #fff;
  color: #183433;
  font: 650 .88rem/1.2 "Source Sans 3", sans-serif;
}

.amp-utm-apply {
  min-height: 44px;
  margin-top: .7rem;
  padding: .55rem .8rem;
  border: 1px solid #315d58;
  border-radius: .6rem;
  background: #fff;
  color: #244f4c;
  font-weight: 750;
  cursor: pointer;
}

.amp-utm-help {
  margin: .65rem 0 0;
  color: #506663;
  font-size: .8rem;
  line-height: 1.4;
}

.amp-solar-controls label {
  display: grid;
  gap: .35rem;
  color: #2a4847;
  font-size: .78rem;
  font-weight: 750;
}

.amp-solar-controls select,
#amp-solar-fill {
  min-height: 44px;
  border: 1px solid #bdcbc6;
  border-radius: .65rem;
  font: 650 .92rem/1.2 "Source Sans 3", sans-serif;
}

.amp-solar-controls select {
  width: 100%;
  padding: .55rem .7rem;
  background: #fff;
  color: #183433;
}

#amp-solar-fill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .55rem .85rem;
  border-color: #315d58;
  background: #214b4b;
  color: #fff;
  cursor: pointer;
}

#amp-solar-fill:hover {
  background: #173c3d;
}

#amp-solar-fill:disabled {
  cursor: wait;
  opacity: .62;
}

.amp-solar-note,
.amp-solar-status {
  margin: .75rem 0 0;
  color: #506663;
  font-size: .86rem;
  line-height: 1.45;
}

.amp-solar-status {
  min-height: 2.65rem;
  padding: .65rem .75rem;
  border-left: 3px solid #7b9b8e;
  border-radius: 0 .55rem .55rem 0;
  background: rgba(255, 255, 255, .64);
}

.amp-solar-status.is-loading { border-left-color: #2a7180; }
.amp-solar-status.is-success { border-left-color: #32804c; color: #255d39; }
.amp-solar-status.is-error { border-left-color: #b34b40; color: #842f27; }

.amp-inline-solar-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 44px;
  padding: .6rem .9rem;
  border: 1px solid #b7d77c;
  border-radius: .65rem;
  background: #d8efaa;
  color: #163e3b;
  box-shadow: 0 7px 18px rgba(9, 48, 45, .2);
  font-weight: 800;
  cursor: pointer;
}

.amp-inline-solar-button:hover {
  background: #e5f6c3;
  border-color: #d8efaa;
}

.amp-inline-solar-button:disabled {
  cursor: wait;
  opacity: .64;
}

.amp-inline-solar-button svg {
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
}

.amp-inline-average-button {
  min-height: 44px !important;
  background: rgba(7, 67, 64, .72) !important;
}

.amp-inline-explorer-link {
  display: inline-flex !important;
  align-items: center;
  min-height: 44px;
}

.amp-inline-query-status {
  margin: .55rem 0 0;
  padding: .55rem .65rem;
  border-left: 3px solid #cfe99b;
  border-radius: 0 .45rem .45rem 0;
  background: rgba(255, 255, 255, .08);
  color: #edf6e6;
  font-size: .8rem;
  line-height: 1.4;
}

.amp-inline-query-status.is-loading { border-left-color: #a6ddec; }
.amp-inline-query-status.is-success { border-left-color: #b9efb9; color: #f0fff0; }
.amp-inline-query-status.is-error { border-left-color: #ffb4a9; color: #ffe3df; }

.amp-catalog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.amp-catalog-kicker {
  margin: 0 0 .2rem;
  color: #58714f;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.amp-catalog h4 {
  margin: 0;
  font: 700 clamp(1.1rem, 1.6vw, 1.35rem)/1.2 "IBM Plex Sans Condensed", sans-serif;
}

.amp-catalog-head p:last-child {
  max-width: 62rem;
  margin: .35rem 0 0;
  color: #4b6262;
  line-height: 1.45;
}

.amp-mode {
  display: inline-flex;
  flex: 0 0 auto;
  gap: .25rem;
  padding: .25rem;
  border: 1px solid rgba(49, 92, 88, .2);
  border-radius: .75rem;
  background: rgba(255, 255, 255, .72);
}

.amp-mode button {
  min-height: 2.5rem;
  padding: .5rem .8rem;
  border: 0;
  border-radius: .55rem;
  background: transparent;
  color: #375150;
  font-weight: 750;
  cursor: pointer;
}

.amp-mode button[aria-pressed="true"] {
  background: #214b4b;
  color: #fff;
  box-shadow: 0 6px 14px rgba(16, 42, 45, .18);
}

.amp-mode button:focus-visible,
.amp-catalog input:focus-visible,
.amp-catalog select:focus-visible,
.amp-help-button:focus-visible,
.amp-secondary-link:focus-visible,
#amp-solar-fill:focus-visible,
.amp-coordinate-switch button:focus-visible,
.amp-utm-apply:focus-visible,
.amp-utm-grid input:focus-visible,
.amp-utm-grid select:focus-visible {
  outline: 3px solid rgba(49, 130, 123, .35);
  outline-offset: 2px;
}

.amp-inline-solar-button:focus-visible {
  outline: 3px solid #d8efaa;
  outline-offset: 3px;
}

.amp-catalog-grid {
  display: grid;
  grid-template-columns: minmax(10rem, .8fr) minmax(11rem, 1fr) minmax(18rem, 2fr) minmax(7rem, .55fr);
  gap: .8rem;
  transition: opacity .18s ease;
}

.amp-catalog-grid.is-disabled {
  opacity: .45;
}

.amp-catalog-grid label {
  display: grid;
  gap: .35rem;
  color: #2a4847;
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .02em;
}

.amp-catalog-grid label > span:not(.amp-frequency) {
  color: #687e7c;
  font-weight: 600;
}

.amp-catalog-grid input,
.amp-catalog-grid select {
  width: 100%;
  min-height: 2.75rem;
  padding: .55rem .7rem;
  border: 1px solid #bdcbc6;
  border-radius: .65rem;
  background: #fff;
  color: #183433;
  font: 650 .92rem/1.2 "Source Sans 3", sans-serif;
}

.amp-frequency {
  display: flex;
  align-items: center;
  border-radius: .65rem;
  background: #fff;
}

.amp-frequency input {
  min-width: 0;
  border-radius: .65rem 0 0 .65rem;
}

.amp-frequency span {
  padding: 0 .7rem;
  color: #526b68;
}

.amp-conductor-details,
.amp-catalog-status {
  margin: .8rem 0 0;
  color: #47615e;
  font-size: .88rem;
}

.amp-catalog-status {
  min-height: 1.35rem;
  color: #315f53;
}

.amp-catalog-status.is-error {
  color: #9d2f27;
}

.amp-validation-summary {
  margin-top: .8rem;
  padding: .8rem .9rem;
  border: 1px solid #c86d62;
  border-radius: .7rem;
  background: #fff2ef;
  color: #78271f;
}

.amp-validation-summary[hidden] {
  display: none;
}

.amp-validation-summary ul {
  margin: .45rem 0 0;
  padding-left: 1.2rem;
}

.amp-validation-summary button {
  border: 0;
  padding: .15rem 0;
  background: transparent;
  color: inherit;
  text-align: left;
  text-decoration: underline;
  cursor: pointer;
}

.amp-method-note {
  margin-top: .8rem;
  border-top: 1px solid rgba(49, 92, 88, .14);
  padding-top: .7rem;
}

.amp-method-note summary {
  width: fit-content;
  color: #315e59;
  font-weight: 750;
  cursor: pointer;
}

.amp-method-note p {
  max-width: 76rem;
  margin: .55rem 0 0;
  color: #506663;
  line-height: 1.5;
}

.amp-help-button {
  display: inline-grid;
  place-items: center;
  flex: 0 0 1.8rem;
  width: 1.8rem;
  height: 1.8rem;
  margin-right: .28rem;
  border: 1px solid rgba(49, 92, 88, .32);
  border-radius: 999px;
  background: #edf5ef;
  color: #315d58;
  font: 800 .75rem/1 Georgia, serif;
  cursor: help;
}

.amp-help-button:hover,
.amp-help-button[aria-expanded="true"] {
  background: #315d58;
  color: #fff;
}

.amp-help-bubble {
  position: absolute;
  z-index: 80;
  right: 0;
  bottom: calc(100% + .55rem);
  width: min(23rem, calc(100vw - 2rem));
  padding: .75rem .85rem;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: .7rem;
  background: #173336;
  color: #f7fbf7;
  box-shadow: 0 14px 34px rgba(8, 28, 30, .26);
  font-size: .82rem;
  font-weight: 500;
  line-height: 1.42;
}

.amp-help-bubble[hidden] {
  display: none;
}

.amp-inline-error {
  margin: .35rem 0 0;
  color: #9d2f27;
  font-size: .78rem;
  font-weight: 650;
  line-height: 1.3;
}

.amp-inline-error[hidden] {
  display: none;
}

input[data-amp-help-installed="true"][readonly] {
  color: #274a45;
  background: rgba(235, 243, 236, .66) !important;
}

@media (max-width: 980px) {
  .amp-catalog-grid {
    grid-template-columns: 1fr 1fr;
  }

  .amp-catalog-grid label:nth-child(3) {
    grid-column: 1 / -1;
  }

  .amp-guide-steps,
  .amp-solar-controls {
    grid-template-columns: 1fr 1fr;
  }

  #amp-solar-fill {
    grid-column: 1 / -1;
  }

  .amp-utm-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .amp-catalog-head {
    display: grid;
  }

  .amp-mode {
    width: 100%;
  }

  .amp-mode button {
    flex: 1;
  }

  .amp-catalog-grid {
    grid-template-columns: 1fr;
  }

  .amp-guide-head,
  .amp-solar-head {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .amp-coordinate-bar {
    display: grid;
  }

  .amp-coordinate-switch {
    width: 100%;
  }

  .amp-coordinate-switch button {
    flex: 1;
  }

  .amp-utm-grid fieldset {
    grid-template-columns: 1fr;
  }

  .amp-secondary-link {
    grid-column: 1 / -1;
  }

  .amp-guide-steps,
  .amp-guide-detail,
  .amp-solar-controls {
    grid-template-columns: 1fr;
  }

  #amp-solar-fill {
    grid-column: auto;
  }

  .amp-inline-solar-button {
    width: 100%;
  }

  .amp-catalog-grid label:nth-child(3) {
    grid-column: auto;
  }
}

/* Densidad compacta de los paneles operativos y resultados transitorios. */
@media (min-width: 641px) {
  .tool-panel,
  .tool-visual-card,
  .tool-footer-note {
    padding: .9rem 1rem !important;
  }

  .tool-panel-heading {
    gap: .5rem !important;
    margin-bottom: .65rem !important;
  }

  .tool-panel-heading h3,
  .tool-visual-overlay h3 {
    font-size: clamp(1.08rem, 1.25vw, 1.35rem) !important;
    line-height: 1.15 !important;
  }

  .tool-panel-heading p,
  .tool-visual-overlay p,
  .tool-footer-note p {
    font-size: .78rem !important;
    line-height: 1.45 !important;
  }

  .tool-eyebrow {
    margin-bottom: .25rem !important;
    font-size: .64rem !important;
  }

  .tool-chip {
    padding: .38rem .62rem !important;
    font-size: .76rem !important;
  }

  .entry-transient-sheet,
  .entry-transient-main {
    gap: .55rem !important;
  }

  .entry-transient-inline-fields {
    gap: .5rem !important;
  }

  .tool-transient-grid-sheet {
    gap: .38rem !important;
  }

  .tool-transient-row,
  .tool-transient-row-sheet {
    min-height: 0 !important;
    gap: .55rem !important;
    padding: .42rem .58rem !important;
    border-radius: .7rem !important;
  }

  .tool-transient-label {
    font-size: .78rem !important;
    line-height: 1.25 !important;
  }

  .tool-transient-values,
  .tool-transient-values-sheet {
    gap: .35rem !important;
  }

  .tool-transient-values > div {
    min-height: 38px !important;
    justify-content: center !important;
    gap: .08rem !important;
    padding: .3rem .48rem !important;
    border-radius: .6rem !important;
  }

  .tool-transient-values small {
    font-size: .62rem !important;
    line-height: 1.15 !important;
  }

  .tool-transient-values strong {
    font-size: .82rem !important;
    line-height: 1.2 !important;
  }

  .entry-transient-note {
    padding: .7rem .8rem !important;
    border-radius: .75rem !important;
    font-size: .78rem !important;
    line-height: 1.45 !important;
  }

  .entry-transient-note-title {
    margin-bottom: .16rem !important;
    font-size: .8rem !important;
  }

  .tool-footer-note {
    gap: 1rem !important;
  }

  .tool-footer-note h3 {
    max-width: 38ch !important;
    font-size: clamp(1.12rem, 1.45vw, 1.42rem) !important;
    line-height: 1.18 !important;
  }
}

/* Densidad tipo Excel para revisión integral en una sola vista. */
@media (min-width: 641px) {
  body { font-size: 13px !important; }

  .tool-main {
    gap: .3rem !important;
    padding: .38rem .45rem .55rem !important;
  }

  .tool-hero {
    min-height: 8.9rem !important;
    padding: .48rem .58rem !important;
    border-radius: .62rem !important;
    grid-template-columns: minmax(0, 1.8fr) minmax(170px, .42fr) !important;
  }

  .tool-hero h2 {
    max-width: 34ch !important;
    font-size: clamp(1.3rem, 1.45vw, 1.65rem) !important;
    line-height: 1.08 !important;
  }

  .tool-hero-copy p:last-of-type {
    margin-top: .18rem !important;
    font-size: .68rem !important;
    line-height: 1.32 !important;
  }

  .tool-hero-actions {
    gap: .24rem !important;
    margin-top: .28rem !important;
  }

  .metric-card {
    gap: .25rem !important;
    padding: .26rem .38rem !important;
    border-radius: .42rem !important;
    font-size: .66rem !important;
  }

  .tool-panel,
  .tool-visual-card,
  .tool-footer-note,
  .amp-catalog {
    padding: .48rem .58rem !important;
    border-radius: .55rem !important;
  }

  .tool-panel-heading,
  .amp-catalog-head,
  .amp-guide-head,
  .amp-solar-head {
    gap: .28rem !important;
    margin-bottom: .3rem !important;
  }

  .tool-panel-heading h3,
  .tool-visual-overlay h3,
  .amp-guide-head h3,
  .amp-solar-head h3,
  .tool-footer-note h3 {
    font-size: clamp(.88rem, .95vw, 1.05rem) !important;
    line-height: 1.15 !important;
  }

  .tool-panel-heading p,
  .tool-visual-overlay p,
  .tool-footer-note p,
  .amp-catalog-head p:last-child,
  .amp-guide-head p:last-child,
  .amp-solar-head p:last-child {
    font-size: .66rem !important;
    line-height: 1.35 !important;
  }

  .tool-kicker,
  .tool-eyebrow,
  .amp-catalog-kicker {
    margin-bottom: .12rem !important;
    font-size: .54rem !important;
  }

  .tool-chip {
    min-height: 26px !important;
    padding: .18rem .38rem !important;
    font-size: .62rem !important;
    border-radius: 999px !important;
  }

  .tool-tabs-root,
  .tool-tab-content,
  .tool-tab-content-entries {
    gap: .24rem !important;
  }

  .tool-tabs-band {
    gap: .08rem !important;
    margin: .08rem 0 .14rem !important;
    padding: .1rem !important;
    border-radius: .48rem !important;
  }

  .tool-tabs-entry-link,
  .tool-tabs-trigger {
    min-height: 30px !important;
    padding: .2rem .34rem !important;
    border-radius: .38rem !important;
  }

  .tool-tabs-entry-link-kicker,
  .tool-tabs-trigger-primary { font-size: .43rem !important; }
  .tool-tabs-entry-link-label,
  .tool-tabs-trigger-secondary { font-size: .64rem !important; }

  .tool-primary-button,
  .amp-inline-solar-button,
  .amp-elevation-button,
  .amp-report-button,
  .amp-utm-apply,
  .amp-secondary-link,
  .tool-cta-primary,
  .tool-cta-secondary {
    min-height: 30px !important;
    padding: .25rem .5rem !important;
    border-radius: .42rem !important;
    font-size: .66rem !important;
  }

  .tool-field {
    gap: .1rem !important;
  }

  .tool-field-head {
    min-height: 1.85rem !important;
    margin-bottom: .08rem !important;
    gap: .05rem !important;
  }

  .tool-field-label,
  .entry-solar-field-label,
  .amp-catalog-grid label,
  .amp-solar-controls label,
  .amp-utm-grid label {
    font-size: .54rem !important;
    line-height: 1.18 !important;
  }

  .tool-field-hint { font-size: .48rem !important; }

  .tool-input-shell,
  .tool-input-value,
  .amp-catalog input,
  .amp-catalog select,
  .amp-solar-controls select,
  .amp-utm-grid input,
  .amp-utm-grid select,
  .amp-elevation-input-shell,
  .amp-elevation-criterion select {
    min-height: 30px !important;
    border-radius: 4px !important;
  }

  .tool-input-shell input,
  .tool-input-value input,
  .amp-elevation-input-shell input,
  input[data-slot="input-group-control"] {
    min-height: 28px !important;
    padding: .22rem .4rem !important;
    font-size: .7rem !important;
  }

  [data-slot="input-group-addon"],
  .tool-input-unit,
  .amp-elevation-input-shell > span {
    min-height: 28px !important;
    padding-inline: .3rem !important;
    font-size: .6rem !important;
  }

  .amp-guide-steps,
  .amp-guide-detail,
  .amp-solar-controls,
  .amp-catalog-grid,
  .amp-utm-grid,
  .entry-climate-grid,
  .entry-transient-inline-fields,
  .entry-resistance-grid {
    gap: .24rem !important;
  }

  .amp-guide-step,
  .entry-solar-data-row-expanded,
  .entry-climate-section,
  .tool-callout,
  .entry-sheet-block {
    padding: .34rem .4rem !important;
    border-radius: .42rem !important;
  }

  .entry-sheet-row { gap: .2rem !important; }
  .entry-sheet-row + .entry-sheet-row,
  .entry-sheet-row + .entry-resistance-grid,
  .entry-resistance-grid + .entry-sheet-row { margin-top: .2rem !important; }

  .amp-guide-step strong,
  .entry-solar-average-title,
  .tool-solar-point { font-size: .6rem !important; }

  .amp-guide-step span,
  .amp-catalog-status,
  .amp-solar-status,
  .amp-inline-query-status,
  .amp-elevation-status,
  .entry-solar-source-meta,
  .tool-callout span {
    font-size: .62rem !important;
    line-height: 1.3 !important;
  }

  .entry-solar-average-card {
    min-height: 3.4rem !important;
    padding: .35rem .42rem !important;
    border-radius: .42rem !important;
  }
  .entry-solar-average-card strong { font-size: .9rem !important; }

  .amp-elevation-summary { gap: .3rem !important; }
  .amp-elevation-card { min-height: 3.4rem !important; padding: .35rem .42rem !important; }

  .tool-transient-grid-sheet { gap: .16rem !important; }
  .tool-transient-row,
  .tool-transient-row-sheet {
    gap: .24rem !important;
    padding: .2rem .3rem !important;
    border-radius: .36rem !important;
  }
  .tool-transient-label { font-size: .62rem !important; }
  .tool-transient-values,
  .tool-transient-values-sheet { gap: .16rem !important; }
  .tool-transient-values > div {
    min-height: 28px !important;
    padding: .14rem .25rem !important;
    border-radius: .3rem !important;
  }
  .tool-transient-values small { font-size: .48rem !important; }
  .tool-transient-values strong { font-size: .66rem !important; }

  .entry-transient-note {
    padding: .32rem .4rem !important;
    border-radius: .38rem !important;
    font-size: .62rem !important;
  }
  .entry-transient-note-title { font-size: .64rem !important; }

  .tool-table {
    font-size: .6rem !important;
    line-height: 1.12 !important;
  }
  .tool-table th {
    padding: .26rem .28rem !important;
    font-size: .52rem !important;
  }
  .tool-table td {
    height: 24px !important;
    padding: .16rem .28rem !important;
  }

  .amp-solar-chart {
    margin-top: .35rem !important;
    padding-top: .35rem !important;
  }
  .amp-solar-chart-head { gap: .35rem !important; }
  .amp-solar-chart-head h4 { font-size: .82rem !important; }
  .amp-solar-chart-head p:last-child { margin-top: .1rem !important; font-size: .62rem !important; }
  .amp-chart-point-switch { gap: .12rem !important; padding: .12rem !important; }
  .amp-chart-point-switch button {
    min-width: 2.1rem !important;
    min-height: 30px !important;
    padding: .2rem .35rem !important;
    font-size: .64rem !important;
  }
  .amp-solar-chart-selection {
    margin: .3rem 0 !important;
    padding: .3rem .42rem !important;
    font-size: .62rem !important;
  }
  .amp-heatmap-grid {
    grid-template-columns: 3rem repeat(12, minmax(1.9rem, 1fr)) !important;
    min-width: 27rem !important;
  }
  .amp-heatmap-corner,
  .amp-heatmap-month,
  .amp-heatmap-hour,
  .amp-heatmap-cell {
    min-height: 1.2rem !important;
    padding: .08rem .1rem !important;
  }
  .amp-heatmap-corner,
  .amp-heatmap-month,
  .amp-heatmap-hour { font-size: .54rem !important; }
  .amp-heatmap-cell { font-size: .5rem !important; }
  .amp-heatmap-legend {
    gap: .3rem !important;
    max-width: 24rem !important;
    margin-top: .3rem !important;
    font-size: .58rem !important;
  }
  .amp-heatmap-gradient { height: .58rem !important; }

  .tool-footer-note { gap: .35rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  .amp-catalog-grid {
    transition: none;
  }
}

/* Encabezado de resultados: banda técnica compacta, sin área gráfica vacía. */
.tool-panel-image-header {
  min-height: 0 !important;
  height: auto !important;
  padding: .48rem .62rem !important;
  border-left: 4px solid #0c87d8 !important;
  background: linear-gradient(90deg, #e8f5ff, #f8fbfe) !important;
  color: #102a43 !important;
}

.tool-panel-image-header .tool-panel-heading,
.tool-panel-image-header .tool-panel-heading.large-gap {
  align-items: center !important;
  gap: .3rem !important;
  margin: 0 !important;
}

.tool-panel-image-header .tool-eyebrow {
  margin: 0 0 .08rem !important;
  color: #0c67a6 !important;
}

.tool-panel-image-header h3 {
  margin: 0 !important;
  color: #092744 !important;
  font-size: .9rem !important;
  line-height: 1.16 !important;
}

.tool-panel-image-header .tool-panel-heading p:last-child {
  max-width: 100% !important;
  margin: .1rem 0 0 !important;
  color: #526b82 !important;
  font-size: .66rem !important;
  line-height: 1.32 !important;
}

@media (max-width: 640px) {
  .tool-panel-image-header {
    padding: .6rem .7rem !important;
  }

  .tool-panel-image-header h3 {
    font-size: 1rem !important;
  }

  .tool-panel-image-header .tool-panel-heading p:last-child {
    font-size: .78rem !important;
  }
}

/* Ritmo final de formularios: compacto, pero con separación inequívoca entre rótulo y celda. */
@media (min-width: 641px) {
  .entry-sheet-block,
  .entry-climate-section {
    padding: .48rem .55rem !important;
  }

  .entry-sheet-row {
    gap: .5rem !important;
  }

  .entry-sheet-row + .entry-sheet-row,
  .entry-sheet-row + .entry-resistance-grid,
  .entry-resistance-grid + .entry-sheet-row {
    margin-top: .48rem !important;
  }

  .entry-sheet-row-split,
  .entry-resistance-grid,
  .entry-climate-grid,
  .entry-transient-inline-fields {
    column-gap: .65rem !important;
    row-gap: .55rem !important;
  }

  .entry-climate-grid-weather {
    row-gap: .72rem !important;
  }

  .tool-field {
    gap: .2rem !important;
  }

  .tool-field-head {
    min-height: 2rem !important;
    margin-bottom: .12rem !important;
    gap: .08rem !important;
  }

  .entry-climate-section h4 {
    margin: 0 0 .4rem !important;
  }

  .entry-climate-section + .entry-climate-section,
  .entry-climate-layout + .tool-callout-row {
    margin-top: .55rem !important;
  }
}

@media (max-width: 640px) {
  .entry-sheet-row,
  .entry-resistance-grid,
  .entry-climate-grid,
  .entry-transient-inline-fields {
    gap: .65rem !important;
  }

  .tool-field {
    gap: .28rem !important;
  }
}

/* --------------------------------------------------------------------------
   Tema EPRI y estructura adaptable
   Paleta tomada de la interfaz CC-4: azul marino, azul técnico, fondo frío y
   tarjetas blancas. Estas reglas se cargan al final para corregir las medidas
   rígidas de la aplicación compilada sin alterar su motor de cálculo.
   -------------------------------------------------------------------------- */

:root {
  --amp-epri-navy: #092744;
  --amp-epri-navy-2: #173b5d;
  --amp-epri-blue: #1683dd;
  --amp-epri-blue-soft: #eaf4fd;
  --amp-epri-bg: #f3f7fb;
  --amp-epri-card: #ffffff;
  --amp-epri-text: #102a43;
  --amp-epri-muted: #526b82;
  --amp-epri-border: #cbd9e8;
  --amp-epri-input-border: #adc2d8;
  --amp-epri-success: #159669;
  --amp-epri-danger: #b42318;
  --amp-epri-shadow: 0 10px 28px rgba(9, 39, 68, .08);
}

html {
  background: var(--amp-epri-bg);
}

body {
  overflow-x: hidden;
  background: var(--amp-epri-bg) !important;
  background-image: none !important;
  color: var(--amp-epri-text) !important;
  font-family: Inter, "Segoe UI", Arial, sans-serif !important;
  font-size: 16px;
  line-height: 1.5;
}

.tool-shell {
  width: 100% !important;
  max-width: none !important;
  background: var(--amp-epri-bg);
}

.tool-shell::before {
  background-image: linear-gradient(rgba(22, 131, 221, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(22, 131, 221, .035) 1px, transparent 1px) !important;
  background-size: 40px 40px !important;
}

.tool-sidebar {
  border-right-color: rgba(255, 255, 255, .12) !important;
  background: linear-gradient(180deg, var(--amp-epri-navy), #071e34) !important;
}

.tool-sidebar::after {
  background: radial-gradient(circle, rgba(22, 131, 221, .18), transparent 66%) !important;
}

.tool-sidebar {
  gap: .55rem !important;
}

.tool-sidebar .tool-brand-wrap {
  width: 100%;
}

.tool-sidebar .tool-brand {
  width: 100% !important;
  min-height: 42px;
  padding: .38rem .42rem !important;
}

.tool-sidebar .tool-brand-logo {
  width: 7rem;
  max-width: 100%;
}

.tool-sidebar .tool-input-access {
  z-index: 2;
  justify-content: flex-start;
  width: 100%;
  min-height: 42px;
  padding: .42rem .5rem;
}

.amp-suite-return {
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: .42rem;
  width: 100%;
  min-height: 38px;
  padding: .34rem .46rem;
  border: 1px solid rgba(143, 208, 255, .68);
  border-radius: .62rem;
  background: linear-gradient(135deg, rgba(12, 135, 216, .36), rgba(45, 163, 243, .18));
  color: #fff;
  font-size: .66rem;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease;
}

.amp-suite-return svg {
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 1.5rem;
  height: 1.5rem;
  padding: .28rem;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  background: rgba(255, 255, 255, .12);
}

.amp-suite-return:hover {
  border-color: #8fd0ff;
  background: rgba(12, 135, 216, .34);
}

.amp-suite-return:focus-visible {
  outline: 3px solid #2da3f3;
  outline-offset: 2px;
}

.tool-brand {
  background: #fff !important;
  border-color: rgba(255, 255, 255, .34) !important;
}

.tool-input-access,
.tool-mobile-module-button,
.tool-nav-item {
  background: rgba(255, 255, 255, .055) !important;
  border-color: rgba(255, 255, 255, .11) !important;
}

.tool-input-access:hover,
.tool-mobile-module-button:hover,
.tool-nav-item:hover,
.tool-input-access.is-active,
.tool-mobile-module-button.is-active {
  background: rgba(22, 131, 221, .2) !important;
  border-color: rgba(132, 199, 255, .52) !important;
}

.accent-emerald,
.accent-olive,
.accent-copper {
  background: var(--amp-epri-blue) !important;
}

.tool-main {
  align-items: stretch !important;
  width: 100%;
  max-width: none !important;
  padding: clamp(.75rem, 1.35vw, 1.5rem) !important;
}

.tool-main > * {
  width: 100% !important;
  max-width: none !important;
}

.tool-tabs-root,
.tool-tab-content,
.tool-grid,
.tool-grid > *,
.tool-panel-heading > *,
.entry-climate-layout,
.entry-climate-section,
.entry-solar-sheet {
  min-width: 0;
  max-width: none;
}

.tool-tabs-band {
  border-color: var(--amp-epri-border) !important;
  background: #e8f1fa !important;
  box-shadow: 0 6px 20px rgba(9, 39, 68, .07) !important;
}

.tool-tabs-entry-link,
.tool-tabs-trigger {
  border-color: var(--amp-epri-border) !important;
  background: rgba(255, 255, 255, .9) !important;
  color: var(--amp-epri-text) !important;
}

.tool-tabs-entry-link:hover,
.tool-tabs-trigger:hover {
  border-color: var(--amp-epri-blue) !important;
  background: #fff !important;
}

.tool-tabs-entry-link.is-active,
.tool-tabs-trigger[data-state="active"] {
  border-color: var(--amp-epri-navy-2) !important;
  background: var(--amp-epri-navy-2) !important;
  color: #fff !important;
}

.tool-panel,
.tool-visual-card,
.tool-footer-note,
.tool-panel-entry-sheet,
.amp-catalog,
.amp-guide,
.amp-solar {
  height: auto !important;
  border: 1px solid var(--amp-epri-border) !important;
  background: var(--amp-epri-card) !important;
  color: var(--amp-epri-text) !important;
  box-shadow: var(--amp-epri-shadow) !important;
  backdrop-filter: none !important;
}

.tool-panel-image,
.tool-panel-entry-sheet.tool-panel-image {
  background-image: none !important;
}

.tool-panel-image::after,
.tool-panel-entry-sheet.tool-panel-image::after {
  display: none !important;
  background: none !important;
  content: none !important;
}

.tool-panel::before,
.tool-visual-card::before,
.tool-footer-note::before {
  background: linear-gradient(180deg, rgba(22, 131, 221, .035), transparent 24%) !important;
}

.tool-panel-heading,
.tool-panel-heading.on-image,
.tool-panel-heading.large-gap {
  height: auto !important;
  min-height: 0 !important;
}

.tool-panel-heading h3,
.tool-panel-heading.on-image h3,
.tool-panel-heading.on-image p,
.tool-panel-heading p,
.tool-visual-overlay h3,
.tool-footer-note h3 {
  max-width: none !important;
  overflow: visible !important;
  color: var(--amp-epri-text) !important;
  text-shadow: none !important;
  white-space: normal !important;
  text-overflow: clip !important;
  text-wrap: pretty;
}

.tool-panel-heading p,
.tool-visual-overlay p,
.tool-footer-note p,
.tool-eyebrow,
.amp-catalog-head p:last-child,
.amp-guide-head p:last-child,
.amp-solar-head p:last-child,
.amp-guide-steps span,
.amp-coordinate-bar span,
.amp-solar-note,
.amp-solar-status,
.amp-conductor-details,
.amp-catalog-status,
.amp-method-note p {
  color: var(--amp-epri-muted) !important;
}

.tool-eyebrow,
.amp-catalog-kicker {
  color: #27699e !important;
}

.tool-chip,
.tool-chip-soft {
  border-color: #bdd8ef !important;
  background: var(--amp-epri-blue-soft) !important;
  color: #174f7c !important;
}

.tool-field-head {
  height: auto !important;
  min-height: 0 !important;
}

.tool-field-label,
.tool-field-hint,
.entry-solar-field-label,
.entry-solar-coordinates-head span,
.amp-catalog-grid label,
.amp-solar-controls label,
.amp-utm-grid label {
  max-width: none !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  word-break: normal !important;
  line-height: 1.35 !important;
  text-wrap: pretty;
}

.tool-field-label,
.entry-solar-field-label,
.amp-catalog-grid label,
.amp-solar-controls label,
.amp-utm-grid label {
  color: var(--amp-epri-text) !important;
}

.tool-input-shell,
.tool-input-value,
.amp-catalog input,
.amp-catalog select,
.amp-solar-controls select,
.amp-utm-grid input,
.amp-utm-grid select {
  min-width: 0 !important;
  border-color: var(--amp-epri-input-border) !important;
  background: #fff !important;
  color: var(--amp-epri-text) !important;
}

.tool-input-shell:focus-within,
.amp-catalog input:focus,
.amp-catalog select:focus,
.amp-solar-controls select:focus,
.amp-utm-grid input:focus,
.amp-utm-grid select:focus {
  border-color: var(--amp-epri-blue) !important;
  box-shadow: 0 0 0 3px rgba(22, 131, 221, .16) !important;
}

.tool-primary-button,
#amp-solar-fill,
.amp-inline-solar-button,
.amp-mode button[aria-pressed="true"],
.amp-coordinate-switch button[aria-pressed="true"] {
  border-color: var(--amp-epri-navy-2) !important;
  background: var(--amp-epri-navy-2) !important;
  color: #fff !important;
  box-shadow: 0 6px 16px rgba(9, 39, 68, .16) !important;
}

.tool-primary-button:hover,
#amp-solar-fill:hover,
.amp-inline-solar-button:hover {
  border-color: var(--amp-epri-blue) !important;
  background: var(--amp-epri-blue) !important;
}

.amp-inline-average-button {
  background: var(--amp-epri-navy-2) !important;
}

.amp-secondary-link,
.amp-utm-apply {
  border-color: var(--amp-epri-input-border) !important;
  background: #fff !important;
  color: var(--amp-epri-navy-2) !important;
}

.amp-guide-icon,
.amp-guide-icon.is-solar,
.amp-help-button {
  border-color: #bdd8ef !important;
  background: var(--amp-epri-blue-soft) !important;
  color: #17639f !important;
}

.amp-help-button:hover,
.amp-help-button[aria-expanded="true"] {
  background: var(--amp-epri-navy-2) !important;
  color: #fff !important;
}

.amp-help-bubble {
  border-color: rgba(255, 255, 255, .18) !important;
  background: var(--amp-epri-navy) !important;
  color: #fff !important;
}

.amp-guide-steps li,
.amp-coordinate-bar,
.amp-utm-grid fieldset,
.amp-frequency {
  border-color: var(--amp-epri-border) !important;
  background: #f8fbfe !important;
}

.amp-guide-steps li::before {
  background: var(--amp-epri-blue) !important;
}

.amp-utm-panel {
  border-color: #bdd8ef !important;
  background: var(--amp-epri-blue-soft) !important;
}

.amp-inline-query-status {
  border-left-color: #78bbed !important;
  background: var(--amp-epri-blue-soft) !important;
  color: #234b6d !important;
}

.amp-inline-query-status.is-loading { border-left-color: var(--amp-epri-blue) !important; }
.amp-inline-query-status.is-success { border-left-color: var(--amp-epri-success) !important; color: #116b4d !important; }
.amp-inline-query-status.is-error { border-left-color: var(--amp-epri-danger) !important; color: #8d2118 !important; }

.entry-climate-section,
.entry-solar-average-card,
.entry-solar-data-row-expanded,
.tool-callout {
  border-color: var(--amp-epri-border) !important;
  background: #f8fbfe !important;
}

.entry-sheet-block,
.entry-solar-sheet {
  border-color: var(--amp-epri-border) !important;
  background: #f8fbfe !important;
}

.entry-solar-toolbar {
  border-color: rgba(255, 255, 255, .14) !important;
  background: var(--amp-epri-navy) !important;
}

.entry-solar-toolbar p,
.entry-solar-toolbar a,
.entry-solar-source-meta,
.entry-solar-source-meta span {
  color: #f4f8fc !important;
}

input[data-amp-help-installed="true"][readonly] {
  background: #f7fafd !important;
  color: var(--amp-epri-text) !important;
}

.tool-hero h2 {
  max-width: 18ch !important;
  font-size: clamp(2.15rem, 3.1vw, 3.65rem) !important;
  line-height: .98 !important;
  text-wrap: balance;
}

.tool-hero-copy,
.tool-hero-copy p:last-of-type {
  max-width: 62ch !important;
}

.tool-hero-copy p:last-of-type {
  display: block !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
}

.tool-cta-primary {
  border: 1px solid var(--amp-epri-blue) !important;
  background: var(--amp-epri-blue) !important;
  color: #fff !important;
}

.tool-cta-primary:hover {
  border-color: #48a7f0 !important;
  background: #1374c2 !important;
}

.entry-solar-header,
.entry-solar-header-label,
.entry-solar-header-unit,
.entry-solar-header-season,
.tool-solar-point,
.entry-solar-field-label {
  color: var(--amp-epri-text) !important;
}

.entry-solar-data-row-expanded small {
  color: var(--amp-epri-muted) !important;
}

.entry-solar-toolbar .amp-inline-query-status,
.entry-solar-toolbar .amp-inline-query-status.is-loading {
  color: #234b6d !important;
}

.entry-solar-toolbar .amp-inline-query-status.is-success {
  color: #116b4d !important;
}

.entry-solar-toolbar .amp-inline-query-status.is-error {
  color: #8d2118 !important;
}

.amp-solar-chart {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--amp-epri-border);
}

.amp-solar-chart-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.amp-solar-chart-head h4 {
  margin: 0;
  color: var(--amp-epri-text);
  font-size: clamp(1.15rem, 1.7vw, 1.45rem);
  line-height: 1.2;
}

.amp-solar-chart-head p:last-child {
  margin: .3rem 0 0;
  color: var(--amp-epri-muted);
  line-height: 1.45;
}

.amp-chart-point-switch {
  display: inline-flex;
  flex: 0 0 auto;
  gap: .25rem;
  padding: .25rem;
  border: 1px solid var(--amp-epri-border);
  border-radius: .7rem;
  background: var(--amp-epri-blue-soft);
}

.amp-chart-point-switch button {
  min-width: 3rem;
  min-height: 44px;
  padding: .5rem .75rem;
  border: 1px solid transparent;
  border-radius: .5rem;
  background: transparent;
  color: var(--amp-epri-navy-2);
  font-weight: 750;
  cursor: pointer;
}

.amp-chart-point-switch button[aria-pressed="true"] {
  border-color: var(--amp-epri-navy-2);
  background: var(--amp-epri-navy-2);
  color: #fff;
}

.amp-chart-point-switch button:disabled {
  cursor: not-allowed;
  opacity: .48;
}

.amp-solar-chart-selection {
  margin: .8rem 0;
  padding: .6rem .75rem;
  border-left: 4px solid #0057d9;
  background: #eef6ff;
  color: #174f7c;
  line-height: 1.45;
}

.amp-heatmap-empty {
  display: grid;
  place-items: center;
  min-height: 8rem;
  padding: 1rem;
  border: 1px dashed var(--amp-epri-input-border);
  border-radius: .75rem;
  background: #f8fbfe;
  color: var(--amp-epri-muted);
  text-align: center;
}

.amp-heatmap-scroll {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-color: var(--amp-epri-blue) #dce9f5;
}

.amp-heatmap-grid {
  display: grid;
  grid-template-columns: 4.25rem repeat(12, minmax(2.7rem, 1fr));
  min-width: 38rem;
  border: 1px solid var(--amp-epri-border);
  background: var(--amp-epri-border);
  gap: 1px;
}

.amp-heatmap-corner,
.amp-heatmap-month,
.amp-heatmap-hour,
.amp-heatmap-cell {
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 1.75rem;
  padding: .18rem .22rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.amp-heatmap-corner,
.amp-heatmap-month,
.amp-heatmap-hour {
  background: #edf3f8;
  color: var(--amp-epri-text);
  font-size: .75rem;
  font-weight: 750;
}

.amp-heatmap-corner,
.amp-heatmap-hour {
  position: sticky;
  left: 0;
  z-index: 3;
  border-right: 1px solid var(--amp-epri-input-border);
}

.amp-heatmap-corner {
  z-index: 4;
}

.amp-heatmap-cell {
  position: relative;
  font-size: .72rem;
  font-weight: 750;
}

.amp-heatmap-month.is-selected-month,
.amp-heatmap-hour.is-selected-hour {
  z-index: 5;
  outline: 3px solid #0057d9;
  outline-offset: -3px;
  background: #dcebff;
  color: #003f9e;
}

.amp-heatmap-cell.is-selected-month {
  box-shadow: inset 2px 0 #0057d9, inset -2px 0 #0057d9;
  z-index: 1;
}

.amp-heatmap-cell.is-selected-hour {
  box-shadow: inset 0 2px #0057d9, inset 0 -2px #0057d9;
  z-index: 1;
}

.amp-heatmap-cell.is-selected-month.is-selected-hour {
  z-index: 2;
  outline: 3px solid #0057d9;
  outline-offset: -3px;
  box-shadow: none;
}

.amp-heatmap-cell:hover {
  z-index: 6;
  outline: 3px solid var(--amp-epri-navy);
  outline-offset: -3px;
}

.amp-heatmap-legend {
  display: grid;
  grid-template-columns: auto minmax(9rem, 1fr) auto auto auto;
  align-items: center;
  gap: .6rem;
  max-width: 34rem;
  margin-top: .75rem;
  color: var(--amp-epri-muted);
  font-size: .78rem;
}

.amp-heatmap-gradient {
  height: .85rem;
  border-radius: .2rem;
  background: linear-gradient(90deg, #d9e2ec 0%, #776cff 7%, #256dff 18%, #00d7ee 34%, #00d96f 50%, #bff000 66%, #ffe000 80%, #ff8200 92%, #ff2d1a 100%);
}

.amp-heatmap-legend strong {
  color: var(--amp-epri-text);
}

/* Armonización global de formularios, resultados y ritmo visual corporativo */
.tool-panel,
.tool-visual-card,
.tool-footer-note,
.tool-panel-entry-sheet,
.amp-catalog,
.entry-sheet-block,
.entry-solar-sheet,
.entry-climate-section {
  border-radius: 14px !important;
}

.tool-panel-heading,
.tool-field,
[data-slot="field"] {
  align-content: start;
}

.entry-sheet-support {
  height: auto !important;
  min-height: 0 !important;
  padding: 1rem !important;
}

.entry-sheet-support .tool-visual-overlay {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}

.entry-sheet-support .tool-visual-overlay p:last-child {
  max-width: 80ch !important;
}

.tool-field-head {
  display: grid !important;
  align-content: start !important;
  min-height: 3.55rem !important;
  margin-bottom: .35rem !important;
}

.tool-field-label,
.entry-solar-field-label,
.amp-catalog-grid label,
.amp-solar-controls label,
.amp-utm-grid label {
  font-size: .76rem !important;
  font-weight: 750 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase;
}

.tool-field-hint {
  margin-top: .15rem !important;
  color: var(--amp-epri-muted) !important;
  font-size: .66rem !important;
  letter-spacing: .06em !important;
  line-height: 1.25 !important;
}

.tool-input-shell,
.tool-input-value,
.amp-catalog input,
.amp-catalog select,
.amp-solar-controls select,
.amp-utm-grid input,
.amp-utm-grid select,
.amp-elevation-input-shell,
.amp-elevation-criterion select {
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 44px !important;
  border: 1px solid var(--amp-epri-input-border) !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 2px rgba(9, 39, 68, .04) !important;
}

.tool-input-shell input,
.tool-input-value input,
.amp-elevation-input-shell input,
input[data-slot="input-group-control"] {
  min-width: 0 !important;
  min-height: 42px !important;
  padding: .55rem .75rem !important;
  color: var(--amp-epri-text) !important;
  font-size: .92rem !important;
  font-variant-numeric: tabular-nums;
}

[data-slot="input-group-addon"],
.tool-input-unit,
.amp-elevation-input-shell > span {
  flex: 0 0 auto !important;
  min-height: 42px !important;
  padding-inline: .65rem !important;
  color: #355c7d !important;
  white-space: nowrap !important;
}

.tool-table-wrap,
.tool-panel-table {
  max-width: 100% !important;
  overflow: auto !important;
  border: 1px solid var(--amp-epri-border) !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.tool-table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  color: var(--amp-epri-text) !important;
  font-size: .82rem !important;
  font-variant-numeric: tabular-nums;
}

.tool-table th {
  padding: .7rem .65rem !important;
  border-color: #285b87 !important;
  background: var(--amp-epri-navy-2) !important;
  color: #fff !important;
  font-size: .72rem !important;
  font-weight: 750 !important;
  letter-spacing: .035em !important;
  line-height: 1.3 !important;
  text-align: center !important;
  white-space: normal !important;
}

.tool-table td {
  padding: .6rem .65rem !important;
  border-color: #dce7f1 !important;
  background: #fff !important;
  text-align: right !important;
  white-space: nowrap;
}

.tool-table tbody tr:nth-child(even) td {
  background: #f4f8fc !important;
}

.tool-table tbody tr:hover td {
  background: #e8f4ff !important;
}

.entry-solar-coordinates-head-expanded,
.entry-solar-data-row-expanded {
  grid-template-columns: minmax(9.5rem, 1.05fr) repeat(2, minmax(8.5rem, .9fr)) repeat(3, minmax(10rem, 1fr)) !important;
  align-items: end !important;
}

.amp-elevation-row-field {
  min-width: 0;
}

.amp-elevation-input-shell {
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #f7fafd !important;
}

.amp-elevation-input-shell input {
  flex: 1 1 auto;
  width: 1px;
  border: 0;
  background: transparent;
  outline: 0;
}

.amp-elevation-panel {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--amp-epri-border);
  border-radius: 12px;
  background: #f8fbfe;
}

.amp-elevation-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.amp-elevation-heading h4 {
  margin: 0;
  color: var(--amp-epri-text);
  font-size: 1.15rem;
}

.amp-elevation-heading p:last-child {
  max-width: 72ch;
  margin: .25rem 0 0;
  color: var(--amp-epri-muted);
  line-height: 1.45;
}

.amp-elevation-button,
.amp-report-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 44px;
  padding: .65rem .9rem;
  border: 1px solid var(--amp-epri-navy-2);
  border-radius: 10px;
  background: var(--amp-epri-navy-2);
  color: #fff;
  font-weight: 750;
  cursor: pointer;
}

.amp-elevation-button svg,
.amp-report-button svg {
  width: 1.15rem;
  height: 1.15rem;
}

.amp-elevation-button:hover,
.amp-report-button:hover:not(:disabled) {
  border-color: var(--amp-epri-blue);
  background: var(--amp-epri-blue);
}

.amp-elevation-button:disabled,
.amp-report-button:disabled {
  cursor: not-allowed;
  opacity: .48;
}

.amp-elevation-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .65rem;
  margin-top: .85rem;
}

.amp-elevation-summary > div {
  display: grid;
  gap: .12rem;
  padding: .7rem .8rem;
  border: 1px solid var(--amp-epri-border);
  border-radius: 10px;
  background: #fff;
}

.amp-elevation-summary .is-summary {
  border-color: #90c6ed;
  background: var(--amp-epri-blue-soft);
}

.amp-elevation-summary span,
.amp-elevation-summary small {
  color: var(--amp-epri-muted);
  font-size: .72rem;
}

.amp-elevation-summary strong {
  color: var(--amp-epri-navy-2);
  font-size: 1.12rem;
  font-variant-numeric: tabular-nums;
}

.amp-elevation-criterion {
  display: grid;
  grid-template-columns: minmax(12rem, auto) minmax(16rem, 28rem);
  align-items: center;
  gap: .7rem;
  margin-top: .8rem;
  color: var(--amp-epri-text);
  font-weight: 700;
}

.amp-elevation-criterion select {
  padding: .55rem .75rem;
  background: #fff;
  color: var(--amp-epri-text);
}

.amp-elevation-status {
  margin: .75rem 0 0;
  padding: .65rem .75rem;
  border-left: 4px solid #78bbed;
  background: var(--amp-epri-blue-soft);
  color: #234b6d;
  line-height: 1.45;
}

.amp-elevation-status.is-loading { border-left-color: var(--amp-epri-blue); }
.amp-elevation-status.is-success { border-left-color: var(--amp-epri-success); color: #116b4d; }
.amp-elevation-status.is-error { border-left-color: var(--amp-epri-danger); color: #8d2118; }

.amp-report-button {
  margin-left: .65rem;
  background: #fff;
  color: var(--amp-epri-navy-2);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid #0057d9 !important;
  outline-offset: 2px !important;
}

@media (min-width: 1600px) {
  .tool-grid-double-entries {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: clamp(1rem, 1.35vw, 1.5rem) !important;
  }

  .entry-climate-grid-range,
  .entry-climate-grid-weather {
    column-gap: .75rem !important;
  }
}

@media (max-width: 1599px) {
  .tool-grid-double-entries {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 980px) {
  .tool-shell {
    grid-template-columns: 1fr !important;
  }

  .tool-sidebar {
    position: relative !important;
    min-height: auto !important;
  }

  .tool-main {
    padding: .85rem !important;
  }

  .tool-mobile-module-label,
  .tool-mobile-module-text {
    font-size: .8rem !important;
    line-height: 1.2 !important;
  }

  .tool-panel,
  .tool-visual-card,
  .tool-footer-note,
  .amp-catalog {
    border-radius: 1rem !important;
    padding: 1rem !important;
  }

  .amp-solar-controls,
  .amp-guide-steps,
  .amp-catalog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .entry-solar-coordinates-head-expanded,
  .entry-solar-data-row-expanded {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .amp-elevation-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .amp-suite-return {
    min-height: 44px;
    padding: .55rem .75rem;
    font-size: .86rem;
  }

  html {
    font-size: 16px !important;
  }

  .tool-main {
    padding: .65rem !important;
  }

  .tool-tabs-band {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-columns: auto !important;
    grid-auto-flow: row !important;
    overflow: visible !important;
  }

  .tool-tabs-list {
    display: contents !important;
  }

  .tool-tabs-entry-link,
  .tool-tabs-trigger {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
  }

  .tool-panel,
  .tool-visual-card,
  .tool-footer-note,
  .amp-catalog {
    padding: .9rem !important;
  }

  .tool-panel-heading,
  .tool-panel-heading.on-image,
  .tool-panel-heading.large-gap,
  .amp-guide-head,
  .amp-solar-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .65rem !important;
  }

  .tool-panel-heading h3,
  .tool-visual-overlay h3,
  .tool-footer-note h3 {
    font-size: clamp(1.3rem, 7vw, 1.7rem) !important;
    line-height: 1.15 !important;
  }

  .tool-panel-heading p,
  .tool-visual-overlay p,
  .tool-footer-note p,
  .amp-catalog-head p:last-child,
  .amp-guide-head p:last-child,
  .amp-solar-head p:last-child {
    font-size: .9rem !important;
    line-height: 1.5 !important;
  }

  .amp-solar-chart-head {
    display: grid;
  }

  .amp-chart-point-switch {
    width: 100%;
  }

  .amp-chart-point-switch button {
    flex: 1;
  }

  .amp-heatmap-scroll {
    margin-inline: -.9rem;
    padding-inline: .9rem;
  }

  .amp-heatmap-grid {
    grid-template-columns: 4rem repeat(12, 3.15rem);
    min-width: 41.8rem;
  }

  .amp-heatmap-cell {
    font-size: .7rem;
  }

  .amp-heatmap-legend {
    grid-template-columns: auto minmax(6rem, 1fr) auto auto;
  }

  .amp-heatmap-legend strong {
    grid-column: 1 / -1;
  }

  .amp-guide-icon {
    display: none !important;
  }

  .amp-solar-controls,
  .amp-guide-steps,
  .amp-guide-detail,
  .amp-catalog-grid,
  .amp-utm-grid,
  .amp-utm-grid fieldset {
    grid-template-columns: 1fr !important;
  }

  .amp-coordinate-bar,
  .amp-catalog-head {
    display: grid !important;
  }

  .amp-mode,
  .amp-coordinate-switch,
  .tool-primary-button,
  #amp-solar-fill,
  .amp-inline-solar-button,
  .amp-secondary-link,
  .amp-utm-apply {
    width: 100% !important;
  }

  .amp-mode button {
    min-height: 44px !important;
  }

  .entry-solar-coordinates-head-expanded {
    display: none !important;
  }

  .entry-solar-data-row-expanded {
    gap: .75rem !important;
    padding: .85rem !important;
  }

  .entry-solar-data-row-expanded,
  .amp-elevation-summary,
  .amp-elevation-criterion {
    grid-template-columns: 1fr !important;
  }

  .amp-elevation-heading {
    display: grid;
  }

  .amp-elevation-button,
  .amp-report-button {
    width: 100%;
    margin: .5rem 0 0;
  }

  input,
  select,
  button,
  a[role="button"] {
    min-height: 44px;
  }
}

/* Sistema corporativo TransmissionLine: portada sobria y densidad técnica. */
:root {
  --amp-epri-blue: #0c87d8;
  --amp-epri-blue-bright: #2da3f3;
  --amp-epri-blue-soft: #e9f6fe;
}

body { font-size: 15px !important; }

.tool-shell::before {
  background-image:
    linear-gradient(rgba(12, 135, 216, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(12, 135, 216, .035) 1px, transparent 1px) !important;
}

.tool-hero {
  min-height: 15.5rem !important;
  color: #fff !important;
  background-color: #092744 !important;
  background-image:
    linear-gradient(rgba(45, 163, 243, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45, 163, 243, .055) 1px, transparent 1px),
    linear-gradient(135deg, #071e34 0%, #092f50 58%, #0c87d8 150%) !important;
  background-position: center !important;
  background-size: 32px 32px, 32px 32px, cover !important;
  box-shadow: 0 14px 34px rgba(9, 39, 68, .16) !important;
}

.tool-hero h2 {
  max-width: 22ch !important;
  font-size: clamp(1.8rem, 2.4vw, 2.85rem) !important;
  line-height: 1.03 !important;
}

.tool-hero-copy p:last-of-type {
  max-width: 70ch !important;
  font-size: .82rem !important;
  line-height: 1.4 !important;
}

.metric-card {
  background: rgba(255, 255, 255, .09) !important;
  border-color: rgba(255, 255, 255, .2) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.tool-field-head { min-height: 3rem !important; margin-bottom: .28rem !important; }
.tool-field-label,
.entry-solar-field-label,
.amp-catalog-grid label,
.amp-solar-controls label,
.amp-utm-grid label { font-size: .7rem !important; }
.tool-field-hint { font-size: .62rem !important; }

.tool-input-shell,
.tool-input-value,
.amp-catalog input,
.amp-catalog select,
.amp-solar-controls select,
.amp-utm-grid input,
.amp-utm-grid select,
.amp-elevation-input-shell,
.amp-elevation-criterion select {
  min-height: 40px !important;
  border-radius: 8px !important;
}

.tool-input-shell input,
.tool-input-value input,
.amp-elevation-input-shell input,
input[data-slot="input-group-control"] {
  min-height: 38px !important;
  padding: .42rem .65rem !important;
  font-size: .86rem !important;
}

[data-slot="input-group-addon"],
.tool-input-unit,
.amp-elevation-input-shell > span {
  min-height: 38px !important;
  padding-inline: .55rem !important;
  font-size: .78rem !important;
}

.tool-primary-button,
.amp-inline-solar-button,
.amp-elevation-button,
.amp-report-button,
.amp-utm-apply {
  min-height: 40px !important;
  background: #0c87d8 !important;
  border-color: #0c87d8 !important;
}

.tool-primary-button:hover,
.amp-inline-solar-button:hover,
.amp-elevation-button:hover,
.amp-report-button:hover,
.amp-utm-apply:hover {
  background: #0877bf !important;
  border-color: #0877bf !important;
}

@media (max-width: 640px) {
  body { font-size: 16px !important; }
  .tool-hero { min-height: auto !important; padding: 1rem !important; }
  .tool-hero h2 { font-size: clamp(1.45rem, 7vw, 1.85rem) !important; }
  input, select, button, a[role="button"],
  .tool-input-shell, .tool-input-value,
  .amp-catalog input, .amp-catalog select,
  .amp-solar-controls select, .amp-utm-grid input, .amp-utm-grid select,
  .amp-elevation-input-shell, .amp-elevation-criterion select { min-height: 44px !important; }
  .tool-input-shell input, .tool-input-value input,
  .amp-elevation-input-shell input, input[data-slot="input-group-control"] {
    min-height: 42px !important;
    font-size: 16px !important;
  }
}

/* Escala final: interfaz de informe técnico de ingeniería. */
@media (min-width: 641px) {
  body { font-size: 14px !important; }

  .tool-main {
    gap: .62rem !important;
    padding: .68rem .72rem .9rem !important;
  }

  .tool-main > * { width: min(100%, 1500px) !important; }

  .tool-hero {
    min-height: 12.8rem !important;
    padding: .78rem .9rem !important;
  }

  .tool-hero h2 {
    max-width: 28ch !important;
    font-size: clamp(1.55rem, 1.85vw, 2.15rem) !important;
    line-height: 1.08 !important;
  }

  .tool-kicker,
  .tool-eyebrow,
  .amp-catalog-kicker {
    margin-bottom: .22rem !important;
    font-size: .62rem !important;
    letter-spacing: .12em !important;
  }

  .tool-hero-copy p:last-of-type,
  .tool-panel-heading p,
  .tool-visual-overlay p,
  .tool-footer-note p,
  .amp-catalog-head p:last-child,
  .amp-guide-head p:last-child,
  .amp-solar-head p:last-child {
    font-size: .78rem !important;
    line-height: 1.45 !important;
  }

  .metric-card {
    gap: .4rem !important;
    padding: .48rem .62rem !important;
    border-radius: .65rem !important;
    font-size: .76rem !important;
  }

  .tool-panel,
  .tool-visual-card,
  .tool-footer-note,
  .amp-catalog {
    padding: .82rem .9rem !important;
    border-radius: .82rem !important;
  }

  .tool-panel-heading,
  .amp-catalog-head,
  .amp-guide-head,
  .amp-solar-head {
    gap: .48rem !important;
    margin-bottom: .55rem !important;
  }

  .tool-panel-heading h3,
  .tool-visual-overlay h3,
  .amp-guide-head h3,
  .amp-solar-head h3 {
    font-size: clamp(1.02rem, 1.08vw, 1.22rem) !important;
    line-height: 1.18 !important;
  }

  .amp-catalog h4,
  .entry-climate-section h4,
  .tool-callout-title {
    font-size: .84rem !important;
    line-height: 1.25 !important;
  }

  .tool-chip {
    min-height: 32px !important;
    padding: .3rem .55rem !important;
    font-size: .72rem !important;
  }

  .tool-tabs-entry-link,
  .tool-tabs-trigger {
    min-height: 42px !important;
    padding: .4rem .58rem !important;
  }

  .tool-tabs-trigger-primary { font-size: .5rem !important; }
  .tool-tabs-trigger-secondary { font-size: .76rem !important; }

  .tool-primary-button,
  .amp-inline-solar-button,
  .amp-elevation-button,
  .amp-report-button,
  .amp-utm-apply,
  .amp-secondary-link,
  .tool-cta-primary,
  .tool-cta-secondary {
    min-height: 38px !important;
    padding: .42rem .7rem !important;
    font-size: .76rem !important;
  }

  .tool-field-head {
    min-height: 2.65rem !important;
    margin-bottom: .2rem !important;
  }

  .tool-field-label,
  .entry-solar-field-label,
  .amp-catalog-grid label,
  .amp-solar-controls label,
  .amp-utm-grid label {
    font-size: .64rem !important;
    line-height: 1.25 !important;
  }

  .tool-field-hint { font-size: .58rem !important; }

  .tool-input-shell,
  .tool-input-value,
  .amp-catalog input,
  .amp-catalog select,
  .amp-solar-controls select,
  .amp-utm-grid input,
  .amp-utm-grid select,
  .amp-elevation-input-shell,
  .amp-elevation-criterion select {
    min-height: 36px !important;
    border-radius: 7px !important;
  }

  .tool-input-shell input,
  .tool-input-value input,
  .amp-elevation-input-shell input,
  input[data-slot="input-group-control"] {
    min-height: 34px !important;
    padding: .35rem .58rem !important;
    font-size: .78rem !important;
  }

  [data-slot="input-group-addon"],
  .tool-input-unit,
  .amp-elevation-input-shell > span {
    min-height: 34px !important;
    padding-inline: .45rem !important;
    font-size: .7rem !important;
  }

  .amp-guide-steps,
  .amp-guide-detail,
  .amp-solar-controls,
  .amp-catalog-grid,
  .amp-utm-grid,
  .entry-climate-grid,
  .entry-transient-inline-fields {
    gap: .45rem !important;
  }

  .amp-guide-step,
  .entry-solar-data-row-expanded,
  .entry-climate-section,
  .tool-callout {
    padding: .58rem .65rem !important;
    border-radius: .7rem !important;
  }

  .amp-guide-step strong,
  .entry-solar-average-title,
  .tool-solar-point {
    font-size: .7rem !important;
  }

  .amp-guide-step span,
  .amp-catalog-status,
  .amp-solar-status,
  .amp-inline-query-status,
  .amp-elevation-status,
  .entry-solar-source-meta,
  .tool-callout span {
    font-size: .72rem !important;
    line-height: 1.4 !important;
  }

  .entry-solar-average-card { padding: .62rem .72rem !important; }
  .entry-solar-average-card strong { font-size: 1.05rem !important; }

  .entry-transient-sheet,
  .entry-transient-main { gap: .48rem !important; }
  .tool-transient-grid-sheet { gap: .32rem !important; }

  .tool-transient-row,
  .tool-transient-row-sheet {
    min-height: 0 !important;
    gap: .45rem !important;
    padding: .36rem .5rem !important;
    border-radius: .62rem !important;
  }

  .tool-transient-label {
    font-size: .72rem !important;
    line-height: 1.2 !important;
  }

  .tool-transient-values,
  .tool-transient-values-sheet { gap: .3rem !important; }

  .tool-transient-values > div {
    min-height: 34px !important;
    justify-content: center !important;
    gap: .05rem !important;
    padding: .24rem .4rem !important;
    border-radius: .52rem !important;
  }

  .tool-transient-values small { font-size: .56rem !important; }
  .tool-transient-values strong { font-size: .76rem !important; line-height: 1.15 !important; }

  .entry-transient-note {
    padding: .58rem .65rem !important;
    border-radius: .65rem !important;
    font-size: .72rem !important;
    line-height: 1.4 !important;
  }

  .entry-transient-note-title { margin-bottom: .12rem !important; font-size: .74rem !important; }

  .tool-table { font-size: .72rem !important; }
  .tool-table th { padding: .48rem .5rem !important; font-size: .64rem !important; }
  .tool-table td { padding: .42rem .5rem !important; }

  .tool-footer-note { gap: .8rem !important; }
  .tool-footer-note h3 {
    max-width: 42ch !important;
    font-size: clamp(1.02rem, 1.18vw, 1.28rem) !important;
    line-height: 1.2 !important;
  }
}

@media (max-width: 640px) {
  .tool-hero h2 {
    max-width: none !important;
    font-size: 1.45rem !important;
    line-height: 1.12 !important;
  }

  .tool-hero-copy p:last-of-type {
    font-size: .8rem !important;
    line-height: 1.45 !important;
  }

  .tool-mobile-module-text {
    font-size: .74rem !important;
    line-height: 1.18 !important;
  }

  .tool-panel-heading h3,
  .tool-visual-overlay h3,
  .tool-footer-note h3 {
    font-size: clamp(1.15rem, 5.7vw, 1.42rem) !important;
  }

  .tool-panel-heading p,
  .tool-visual-overlay p,
  .tool-footer-note p,
  .amp-catalog-head p:last-child,
  .amp-guide-head p:last-child,
  .amp-solar-head p:last-child {
    font-size: .84rem !important;
  }
}

/* Formulario técnico continuo: menos aire, alineación y nota integrada. */
@media (min-width: 981px) {
  .entry-sheet-conductor {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: .42rem !important;
  }

  .entry-sheet-block {
    padding: .62rem .7rem !important;
    border-radius: .72rem !important;
  }

  .entry-sheet-row { gap: .38rem !important; }

  .entry-sheet-row + .entry-sheet-row,
  .entry-sheet-row + .entry-resistance-grid,
  .entry-resistance-grid + .entry-sheet-row {
    margin-top: .38rem !important;
  }

  .entry-sheet-row-split {
    gap: .45rem !important;
  }

  .entry-resistance-grid {
    gap: .42rem .45rem !important;
  }

  .tool-field { gap: .18rem !important; }

  .entry-sheet-support,
  .tool-visual-card-compact {
    min-height: 0 !important;
  }

  .entry-sheet-support .tool-visual-overlay {
    display: grid !important;
    grid-template-columns: 120px minmax(260px, .72fr) minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    align-items: center !important;
    gap: .08rem .75rem !important;
    width: 100% !important;
    padding: .5rem .65rem !important;
    border-radius: .65rem !important;
  }

  .entry-sheet-support .tool-eyebrow {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
  }

  .entry-sheet-support .tool-visual-overlay h3 {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    font-size: .8rem !important;
  }

  .entry-sheet-support .tool-visual-overlay > p:last-child {
    grid-column: 3 !important;
    grid-row: 1 !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: .72rem !important;
    line-height: 1.38 !important;
  }
}

/* Continuidad visual entre navegación, tablas y paneles de resultados. */
@media (min-width: 641px) {
  .tool-tabs-root,
  .tool-tab-content,
  .tool-tab-content-entries {
    gap: .42rem !important;
  }

  .tool-tabs-band {
    gap: .12rem !important;
    margin: .12rem 0 .25rem !important;
    padding: .15rem !important;
    border-radius: .7rem !important;
  }

  .tool-tabs-entry-link,
  .tool-tabs-trigger {
    min-height: 38px !important;
    padding: .34rem .5rem !important;
    border-radius: .55rem !important;
  }

  .tool-panel-table,
  .tool-table-wrap {
    border-radius: .62rem !important;
  }

  .tool-table {
    font-size: .68rem !important;
    line-height: 1.2 !important;
  }

  .tool-table th {
    padding: .38rem .42rem !important;
    font-size: .6rem !important;
    line-height: 1.18 !important;
  }

  .tool-table td {
    height: 30px !important;
    padding: .26rem .42rem !important;
    line-height: 1.18 !important;
  }

  .tool-panel-table .tool-panel-heading,
  [role="tabpanel"] > .tool-panel > .tool-panel-heading {
    margin-bottom: .42rem !important;
  }

  .tool-panel-table .tool-panel-heading h3,
  [role="tabpanel"] > .tool-panel > .tool-panel-heading h3 {
    font-size: clamp(1rem, 1.12vw, 1.25rem) !important;
  }
}

/* Aplicación final de densidad Excel; debe permanecer al final de la hoja. */
.entry-solar-field.amp-coordinate-applied .entry-solar-inline-input,
.entry-solar-field.amp-coordinate-applied [data-slot="input-group"] {
  border-color: #0c87d8 !important;
  background: #eaf6ff !important;
  box-shadow: 0 0 0 2px rgba(12, 135, 216, .22) !important;
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

@media (min-width: 641px) {
  body { font-size: 13px !important; }
  .tool-main { gap: .3rem !important; padding: .38rem .45rem .55rem !important; }

  .tool-hero {
    min-height: 8.9rem !important;
    padding: .48rem .58rem !important;
    border-radius: .62rem !important;
    grid-template-columns: minmax(0, 1.8fr) minmax(170px, .42fr) !important;
  }
  .tool-hero h2 {
    max-width: 34ch !important;
    font-size: clamp(1.3rem, 1.45vw, 1.65rem) !important;
    line-height: 1.08 !important;
  }
  .tool-hero-copy p:last-of-type { margin-top: .18rem !important; font-size: .68rem !important; line-height: 1.32 !important; }
  .tool-hero-actions { gap: .24rem !important; margin-top: .28rem !important; }
  .metric-card { gap: .25rem !important; padding: .26rem .38rem !important; border-radius: .42rem !important; font-size: .66rem !important; }

  .tool-panel,
  .tool-visual-card,
  .tool-footer-note,
  .amp-catalog { padding: .48rem .58rem !important; border-radius: .55rem !important; }

  .tool-panel-heading,
  .amp-catalog-head,
  .amp-guide-head,
  .amp-solar-head { gap: .28rem !important; margin-bottom: .3rem !important; }

  .tool-panel-heading h3,
  .tool-visual-overlay h3,
  .amp-guide-head h3,
  .amp-solar-head h3,
  .tool-footer-note h3,
  .tool-panel-table .tool-panel-heading h3,
  [role="tabpanel"] > .tool-panel > .tool-panel-heading h3 {
    font-size: clamp(.88rem, .95vw, 1.05rem) !important;
    line-height: 1.15 !important;
  }

  .tool-panel-heading p,
  .tool-visual-overlay p,
  .tool-footer-note p,
  .amp-catalog-head p:last-child,
  .amp-guide-head p:last-child,
  .amp-solar-head p:last-child { font-size: .66rem !important; line-height: 1.35 !important; }

  .tool-kicker,
  .tool-eyebrow,
  .amp-catalog-kicker { margin-bottom: .12rem !important; font-size: .54rem !important; }
  .tool-chip { min-height: 26px !important; padding: .18rem .38rem !important; font-size: .62rem !important; }

  .tool-tabs-root,
  .tool-tab-content,
  .tool-tab-content-entries { gap: .24rem !important; }
  .tool-tabs-band { gap: .08rem !important; margin: .08rem 0 .14rem !important; padding: .1rem !important; border-radius: .48rem !important; }
  .tool-tabs-entry-link,
  .tool-tabs-trigger { min-height: 30px !important; padding: .2rem .34rem !important; border-radius: .38rem !important; }
  .tool-tabs-entry-link-kicker,
  .tool-tabs-trigger-primary { font-size: .43rem !important; }
  .tool-tabs-entry-link-label,
  .tool-tabs-trigger-secondary { font-size: .64rem !important; }

  .tool-primary-button,
  .amp-inline-solar-button,
  .amp-elevation-button,
  .amp-report-button,
  .amp-utm-apply,
  .amp-secondary-link,
  .tool-cta-primary,
  .tool-cta-secondary { min-height: 30px !important; padding: .25rem .5rem !important; border-radius: .42rem !important; font-size: .66rem !important; }

  .tool-field { gap: .1rem !important; }
  .tool-field-head { min-height: 1.85rem !important; margin-bottom: .08rem !important; gap: .05rem !important; }
  .tool-field-label,
  .entry-solar-field-label,
  .amp-catalog-grid label,
  .amp-solar-controls label,
  .amp-utm-grid label { font-size: .54rem !important; line-height: 1.18 !important; }
  .tool-field-hint { font-size: .48rem !important; }

  .tool-input-shell,
  .tool-input-value,
  .amp-catalog input,
  .amp-catalog select,
  .amp-solar-controls select,
  .amp-utm-grid input,
  .amp-utm-grid select,
  .amp-elevation-input-shell,
  .amp-elevation-criterion select { min-height: 30px !important; border-radius: 4px !important; }
  .tool-input-shell input,
  .tool-input-value input,
  .amp-elevation-input-shell input,
  input[data-slot="input-group-control"] { min-height: 28px !important; padding: .22rem .4rem !important; font-size: .7rem !important; }
  [data-slot="input-group-addon"],
  .tool-input-unit,
  .amp-elevation-input-shell > span { min-height: 28px !important; padding-inline: .3rem !important; font-size: .6rem !important; }

  .amp-guide-steps,
  .amp-guide-detail,
  .amp-solar-controls,
  .amp-catalog-grid,
  .amp-utm-grid,
  .entry-climate-grid,
  .entry-transient-inline-fields,
  .entry-resistance-grid { gap: .24rem !important; }
  .amp-guide-step,
  .entry-solar-data-row-expanded,
  .entry-climate-section,
  .tool-callout,
  .entry-sheet-block { padding: .34rem .4rem !important; border-radius: .42rem !important; }
  .entry-sheet-row { gap: .2rem !important; }
  .entry-sheet-row + .entry-sheet-row,
  .entry-sheet-row + .entry-resistance-grid,
  .entry-resistance-grid + .entry-sheet-row { margin-top: .2rem !important; }

  .amp-guide-step strong,
  .entry-solar-average-title,
  .tool-solar-point { font-size: .6rem !important; }
  .amp-guide-step span,
  .amp-catalog-status,
  .amp-solar-status,
  .amp-inline-query-status,
  .amp-elevation-status,
  .entry-solar-source-meta,
  .tool-callout span { font-size: .62rem !important; line-height: 1.3 !important; }

  .entry-solar-average-card { min-height: 3.4rem !important; padding: .35rem .42rem !important; border-radius: .42rem !important; }
  .entry-solar-average-card strong { font-size: .9rem !important; }
  .amp-elevation-summary { gap: .3rem !important; }
  .amp-elevation-card { min-height: 3.4rem !important; padding: .35rem .42rem !important; }

  .tool-transient-grid-sheet { gap: .16rem !important; }
  .tool-transient-row,
  .tool-transient-row-sheet { gap: .24rem !important; padding: .2rem .3rem !important; border-radius: .36rem !important; }
  .tool-transient-label { font-size: .62rem !important; }
  .tool-transient-values,
  .tool-transient-values-sheet { gap: .16rem !important; }
  .tool-transient-values > div { min-height: 28px !important; padding: .14rem .25rem !important; border-radius: .3rem !important; }
  .tool-transient-values small { font-size: .48rem !important; }
  .tool-transient-values strong { font-size: .66rem !important; }
  .entry-transient-note { padding: .32rem .4rem !important; border-radius: .38rem !important; font-size: .62rem !important; }

  .tool-table { font-size: .6rem !important; line-height: 1.12 !important; }
  .tool-table th { padding: .26rem .28rem !important; font-size: .52rem !important; }
  .tool-table td { height: 24px !important; padding: .16rem .28rem !important; }

  .amp-solar-chart { margin-top: .35rem !important; padding-top: .35rem !important; }
  .amp-solar-chart-head { gap: .35rem !important; }
  .amp-solar-chart-head h4 { font-size: .82rem !important; }
  .amp-solar-chart-head p:last-child { margin-top: .1rem !important; font-size: .62rem !important; }
  .amp-chart-point-switch { gap: .12rem !important; padding: .12rem !important; }
  .amp-chart-point-switch button { min-width: 2.1rem !important; min-height: 30px !important; padding: .2rem .35rem !important; font-size: .64rem !important; }
  .amp-solar-chart-selection { margin: .3rem 0 !important; padding: .3rem .42rem !important; font-size: .62rem !important; }
  .amp-heatmap-grid { grid-template-columns: 3rem repeat(12, minmax(1.9rem, 1fr)) !important; min-width: 27rem !important; }
  .amp-heatmap-corner,
  .amp-heatmap-month,
  .amp-heatmap-hour,
  .amp-heatmap-cell { min-height: 1.2rem !important; padding: .08rem .1rem !important; }
  .amp-heatmap-corner,
  .amp-heatmap-month,
  .amp-heatmap-hour { font-size: .54rem !important; }
  .amp-heatmap-cell { font-size: .5rem !important; }
  .amp-heatmap-legend { gap: .3rem !important; max-width: 24rem !important; margin-top: .3rem !important; font-size: .58rem !important; }
  .amp-heatmap-gradient { height: .58rem !important; }
}

/* Matriz solar móvil completa: las 12 columnas deben verse sin desplazamiento. */
@media (max-width: 640px) {
  .amp-solar-chart,
  .amp-heatmap-scroll {
    max-width: 100% !important;
    overflow-x: clip !important;
  }

  .amp-heatmap-scroll {
    margin-inline: 0 !important;
    padding-inline: 0 !important;
  }

  .amp-heatmap-grid {
    width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: 2.55rem repeat(12, minmax(0, 1fr)) !important;
  }

  .amp-heatmap-corner,
  .amp-heatmap-month,
  .amp-heatmap-hour,
  .amp-heatmap-cell {
    min-width: 0 !important;
    min-height: 1.28rem !important;
    padding: .04rem 0 !important;
    overflow: hidden;
    font-variant-numeric: tabular-nums;
  }

  .amp-heatmap-corner,
  .amp-heatmap-month,
  .amp-heatmap-hour {
    font-size: .47rem !important;
  }

  .amp-heatmap-cell {
    font-size: .42rem !important;
    letter-spacing: -.02em;
  }

  .amp-heatmap-month.is-selected-month,
  .amp-heatmap-hour.is-selected-hour,
  .amp-heatmap-cell.is-selected-month.is-selected-hour {
    outline-width: 2px !important;
    outline-offset: -2px !important;
  }

  .amp-heatmap-cell.is-selected-month {
    box-shadow: inset 1px 0 #0057d9, inset -1px 0 #0057d9 !important;
  }

  .amp-heatmap-cell.is-selected-hour {
    box-shadow: inset 0 1px #0057d9, inset 0 -1px #0057d9 !important;
  }

  .amp-heatmap-legend {
    grid-template-columns: auto minmax(0, 1fr) auto auto !important;
    gap: .28rem !important;
    margin-top: .38rem !important;
    font-size: .58rem !important;
  }
}

/* Cierre de cascada: conserva el acabado PLS-CADD sobre reglas históricas. */
.entry-solar-sheet .entry-solar-average-grid {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.entry-solar-sheet .entry-solar-toolbar {
  border-color: var(--pls-line, #bed5e9) !important;
  background: #f7fbff !important;
  color: var(--pls-ink, #102a43) !important;
}

.entry-solar-sheet .entry-solar-toolbar > p:first-child,
.entry-solar-sheet .entry-solar-toolbar a,
.entry-solar-sheet .entry-solar-source-meta,
.entry-solar-sheet .entry-solar-source-meta span {
  color: var(--pls-muted, #526d86) !important;
}

.entry-solar-sheet .entry-solar-toolbar .amp-inline-explorer-link {
  color: #145b8d !important;
  border-color: #9cc3e1 !important;
}

.entry-solar-sheet .entry-solar-toolbar .amp-inline-query-status {
  color: #285a80 !important;
  background: #eaf5fe !important;
}

.entry-solar-sheet .entry-solar-toolbar .amp-inline-query-status.is-success {
  color: #116b4d !important;
}

.entry-solar-sheet .entry-solar-toolbar .amp-inline-query-status.is-error {
  color: #8d2118 !important;
}

.amp-ownership-mark {
  position: relative;
  z-index: 2;
  display: grid;
  gap: .08rem;
  width: 100%;
  margin-top: auto;
  padding: .46rem .34rem .16rem;
  border-top: 1px solid rgba(255, 255, 255, .12);
  color: rgba(255, 255, 255, .78);
  font-size: .57rem;
  line-height: 1.25;
  letter-spacing: .01em;
}

.amp-ownership-mark span {
  color: #fff;
  font-weight: 700;
}

.amp-ownership-mark small {
  color: inherit;
  font: inherit;
}

@media (max-width: 980px) {
  .amp-ownership-mark {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .25rem .75rem;
    margin-top: .15rem;
    padding: .4rem .1rem 0;
  }
}

@media (max-width: 640px) {
  .amp-ownership-mark {
    justify-content: center;
    min-height: 24px;
    font-size: .63rem;
    text-align: center;
  }

  .amp-ownership-mark small {
    display: none;
  }
}

@media print {
  .amp-ownership-mark,
  #amp-commercial-cta { display: none !important; }
}

#amp-primary-heading.tool-kicker {
  margin: 0;
  font: inherit;
}

#amp-commercial-cta {
  position: relative;
  z-index: 4;
  padding: 2rem clamp(1rem, 4vw, 3.5rem);
  color: #fff;
  background: linear-gradient(135deg, #062a4d 0%, #084f7c 58%, #0796d2 100%);
  font-family: "Source Sans 3", sans-serif;
}

.amp-commercial-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  width: min(1180px, 100%);
  margin: 0 auto;
}

.amp-commercial-kicker {
  margin: 0 0 .35rem;
  color: #7bdbff;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

#amp-commercial-title {
  margin: 0 0 .45rem;
  color: #fff;
  font-size: clamp(1.45rem, 2.4vw, 2.15rem);
  line-height: 1.1;
}

#amp-commercial-cta p:not(.amp-commercial-kicker) {
  max-width: 720px;
  margin: 0;
  color: rgba(255, 255, 255, .84);
  line-height: 1.5;
}

.amp-commercial-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: .7rem;
}

.amp-commercial-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: .72rem 1.05rem;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: .45rem;
  color: #fff;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}

.amp-commercial-primary {
  border-color: #fff !important;
  color: #06365a !important;
  background: #fff;
}

.amp-commercial-actions a:hover,
.amp-commercial-actions a:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .18);
}

@media (max-width: 820px) {
  .amp-commercial-inner { align-items: stretch; flex-direction: column; }
  .amp-commercial-actions { width: 100%; }
  .amp-commercial-actions a { flex: 1 1 220px; }
}
