/* ═══════════════════════════════════════════════════════════
   SolarPro Suite — Professional UI System
   Design language: Apple-tier precision, corporate refinement
   ═══════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

:root {
  /* ── Color System ────────────────────────────────────── */
  --bg:            #f2f2f5;
  --bg-secondary:  #e8e8ed;
  --surface:       #ffffff;
  --surface-2:     rgba(255,255,255,0.80);
  --surface-raised: rgba(255,255,255,0.95);

  /* Typography */
  --ink:           #0f0f10;
  --ink-2:         #3a3a3c;
  --ink-3:         #636366;
  --muted:         #8e8e93;
  --muted-light:   #aeaeb2;

  /* Borders */
  --line:          rgba(0,0,0,0.07);
  --line-strong:   rgba(0,0,0,0.11);
  --line-subtle:   rgba(0,0,0,0.04);

  /* Utility */
  --soft:          #f2f2f5;
  --dark:          #0f0f10;

  /* ── Brand Accent ────────────────────────────────────── */
  --accent:        #0066cc;
  --accent-hover:  #0055aa;
  --accent-deep:   #004999;
  --accent-soft:   rgba(0,102,204,0.08);
  --accent-mid:    rgba(0,102,204,0.15);

  /* ── Semantic Colors ─────────────────────────────────── */
  --green:         #28a745;
  --green-soft:    rgba(40,167,69,0.10);
  --green-mid:     rgba(40,167,69,0.18);
  --danger:        #dc3545;
  --danger-soft:   rgba(220,53,69,0.08);
  --amber:         #f59e0b;
  --amber-soft:    rgba(245,158,11,0.10);

  /* ── Shadow System ───────────────────────────────────── */
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.05);
  --shadow-sm: 0 2px 6px rgba(0,0,0,0.07), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-md: 0 6px 20px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.04);
  --shadow-lg: 0 16px 40px rgba(0,0,0,0.10), 0 4px 12px rgba(0,0,0,0.05);
  --shadow-xl: 0 28px 60px rgba(0,0,0,0.12), 0 8px 20px rgba(0,0,0,0.06);
  --shadow-inset: inset 0 1px 2px rgba(0,0,0,0.06);

  /* ── Radii System ────────────────────────────────────── */
  --r-xs: 5px;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 14px;
  --r-xl: 18px;
  --r-2xl: 22px;
  --r-3xl: 28px;

  /* ── Motion ──────────────────────────────────────────── */
  --ease:           cubic-bezier(0.32, 0, 0.15, 1);
  --ease-spring:    cubic-bezier(0.175, 0.885, 0.32, 1.1);
  --duration:       0.16s;
  --duration-slow:  0.28s;
}

*, *::before, *::after {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Helvetica Neue', Arial, sans-serif;
  background: var(--bg);
  color: var(--ink);
  font-size: 13.5px;
  line-height: 1.55;
  letter-spacing: -0.01em;
}

/* ── App shell ─────────────────────────────────────────── */
.app-shell { display: flex; min-height: 100vh; }

/* ── Sidebar ───────────────────────────────────────────── */
.sidebar {
  width: 272px;
  min-width: 272px;
  background: var(--surface-raised);
  backdrop-filter: saturate(1.8) blur(24px);
  -webkit-backdrop-filter: saturate(1.8) blur(24px);
  border-right: 1px solid var(--line);
  padding: 22px 16px 28px;
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  gap: 7px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--line-strong) transparent;
}
.sidebar::-webkit-scrollbar { width: 4px; }
.sidebar::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 4px; }

/* ── Brand mark ────────────────────────────────────────── */
.brand-mini {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.brand-mini strong {
  display: block;
  font-size: 14.5px;
  font-weight: 650;
  letter-spacing: -0.3px;
  color: var(--ink);
}
.brand-mini span {
  font-size: 10.5px;
  color: var(--muted);
  letter-spacing: 0.03em;
  font-weight: 500;
}
.brand-mark {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  background: linear-gradient(145deg, #1a1a1e 0%, #2c2c2e 100%);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.5px;
  box-shadow: var(--shadow-md), inset 0 1px 0 rgba(255,255,255,0.08);
  flex-shrink: 0;
}

/* ── Sidebar profit card ───────────────────────────────── */
.sidebar-profit-card {
  background: linear-gradient(150deg, #111113 0%, #1e1e20 60%, #29292c 100%);
  border-radius: var(--r-xl);
  padding: 16px 17px;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 3px;
  box-shadow: var(--shadow-lg), inset 0 1px 0 rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.06);
}
.sidebar-profit-card .profit-label {
  font-size: 10px;
  color: rgba(255,255,255,0.45);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.sidebar-profit-card strong {
  font-size: 23px;
  font-weight: 700;
  letter-spacing: -0.6px;
  color: #fff;
  margin-top: 2px;
}
.sidebar-profit-card small {
  font-size: 10.5px;
  color: rgba(255,255,255,0.38);
  font-weight: 500;
}

/* ── Price monitor ─────────────────────────────────────── */
.sidebar-price-monitor {
  background: rgba(40,167,69,0.07);
  border: 1px solid rgba(40,167,69,0.16);
  border-radius: var(--r-lg);
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sidebar-price-monitor span {
  font-size: 10px;
  color: #1f7a31;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sidebar-price-monitor strong {
  font-size: 16px;
  font-weight: 700;
  color: #186028;
  letter-spacing: -0.4px;
}

/* ── Sidebar action buttons ────────────────────────────── */
.simplified-project-actions{
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}

/* ── Workspace & toolbar ───────────────────────────────── */
.workspace { flex: 1; padding: 24px; overflow: auto; background: var(--bg); min-height: 100vh; }

.toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto 20px;
  max-width: 1120px;
  background: var(--surface-raised);
  backdrop-filter: saturate(1.6) blur(22px);
  -webkit-backdrop-filter: saturate(1.6) blur(22px);
  border: 1px solid var(--line);
  border-radius: var(--r-2xl);
  padding: 13px 22px;
  box-shadow: var(--shadow-sm);
}
.toolbar h1 { margin: 0; font-size: 16px; font-weight: 640; letter-spacing: -0.4px; }
.toolbar p { margin: 2px 0 0; color: var(--muted); font-size: 11.5px; }
.undo-redo-btns { display: flex; gap: 6px; }
.undo-redo-btns .btn { font-size: 12px; padding: 5px 10px; opacity: 1; transition: opacity .15s; }
.undo-redo-btns .btn:disabled { opacity: 0.35; cursor: default; }

.status-pill {
  background: var(--bg-secondary);
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  padding: 5px 13px;
  color: var(--ink-3);
  font-size: 11.5px;
  font-weight: 510;
  letter-spacing: 0.01em;
  transition: all var(--duration) var(--ease);
}

/* ── Buttons ───────────────────────────────────────────── */
.btn {
  border: 1px solid var(--line-strong);
  background: var(--surface);
  border-radius: var(--r-md);
  padding: 9px 14px;
  font-weight: 510;
  font-size: 12.5px;
  cursor: pointer;
  color: var(--ink-2);
  text-align: center;
  font-family: inherit;
  transition:
    background var(--duration) var(--ease),
    border-color var(--duration) var(--ease),
    box-shadow var(--duration) var(--ease),
    transform var(--duration) var(--ease-spring);
  box-shadow: var(--shadow-xs), inset 0 1px 0 rgba(255,255,255,0.8);
  line-height: 1.35;
  letter-spacing: -0.01em;
  user-select: none;
  -webkit-user-select: none;
}
.btn:hover {
  background: #f5f5f7;
  border-color: rgba(0,0,0,0.16);
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,0.9);
}
.btn:active {
  transform: translateY(0) scale(0.99);
  box-shadow: var(--shadow-xs);
  transition-duration: 0.06s;
}

/* ── Morph de botón async: spinner → checkmark (estilo Apple) ── */
.btn.btn-busy,
.btn.btn-success{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  pointer-events: none;
}
.btn.btn-busy{ opacity: 0.85; }
.btn.btn-success{
  color: #fff;
  background: var(--green);
  border-color: transparent;
  box-shadow: 0 1px 4px rgba(40,167,69,0.3), 0 4px 12px rgba(40,167,69,0.2);
  transition: background var(--duration) var(--ease), color var(--duration) var(--ease);
}
.btn-spinner{
  width: 13px; height: 13px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  opacity: 0.7;
  animation: btnSpin 0.6s linear infinite;
  flex: 0 0 auto;
}
@keyframes btnSpin{ to { transform: rotate(360deg); } }
.btn-check{
  width: 17px; height: 17px;
  flex: 0 0 auto;
}
.btn-check path{
  fill: none;
  stroke: #fff;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  animation: btnCheckDraw 0.34s var(--ease-spring, cubic-bezier(0.34,1.56,0.64,1)) 0.04s forwards;
}
@keyframes btnCheckDraw{ to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce){
  .btn-spinner{ animation-duration: 1.2s; }
  .btn-check path{ animation: none; stroke-dashoffset: 0; }
}

/* ── Arrastrar precio → margen (manipulación directa) ── */
.draggable-metric{
  cursor: ew-resize;
  position: relative;
  padding: 1px 6px;
  margin: 0 -6px;
  border-radius: 6px;
  transition: background 0.16s var(--ease), box-shadow 0.16s var(--ease);
  touch-action: none;               /* evita scroll al arrastrar en táctil */
  -webkit-user-select: none;
  user-select: none;
}
.draggable-metric::after{
  content: "⇄";
  font-size: 0.7em;
  opacity: 0;
  margin-left: 5px;
  vertical-align: middle;
  transition: opacity 0.16s var(--ease);
  color: var(--accent);
}
.draggable-metric:hover{ background: rgba(0,102,204,0.07); }
.draggable-metric:hover::after{ opacity: 0.65; }
.draggable-metric:focus-visible{
  outline: none;
  box-shadow: 0 0 0 2px rgba(0,102,204,0.45);
}
.draggable-metric.is-dragging{
  background: rgba(0,102,204,0.12);
  box-shadow: 0 0 0 2px rgba(0,102,204,0.35);
}
.draggable-metric.is-dragging::after{ opacity: 0.9; }

.drag-target-badge{
  position: fixed;
  z-index: 9999;
  transform: translate(-50%, -100%);
  background: #1d1d1f;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: -0.01em;
  padding: 5px 10px;
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.28);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.12s var(--ease), transform 0.12s var(--ease);
  white-space: nowrap;
}
.drag-target-badge.visible{ opacity: 1; }
.drag-target-badge.at-limit{ background: var(--danger, #dc3545); }

.btn.primary {
  background: var(--accent);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 1px 4px rgba(0,102,204,0.3), 0 4px 12px rgba(0,102,204,0.20), inset 0 1px 0 rgba(255,255,255,0.14);
  font-weight: 580;
}
.btn.primary:hover {
  background: var(--accent-hover);
  box-shadow: 0 2px 8px rgba(0,102,204,0.35), 0 6px 20px rgba(0,102,204,0.25), inset 0 1px 0 rgba(255,255,255,0.14);
}
.btn.subtle {
  background: var(--bg-secondary);
  border-color: var(--line);
  box-shadow: none;
}
.btn.subtle:hover { background: #e0e0e4; }
.btn.danger { color: var(--danger); border-color: rgba(220,53,69,0.2); }
.btn.danger:hover { background: var(--danger-soft); }
.btn.danger-outline {
  color: var(--danger);
  border-color: rgba(220,53,69,0.25);
  background: var(--danger-soft);
}
.btn.danger-outline:hover { background: rgba(220,53,69,0.14); }
.btn.small {
  padding: 6px 11px;
  border-radius: var(--r-sm);
  font-size: 11.5px;
}
.file-btn { display: block; }

/* ── Dividers and labels ───────────────────────────────── */
.divider{ height: 1px; background: var(--line); margin: 10px 0; }
.side-label{ font-size: 11px; color: var(--muted); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; margin: 4px 0 6px; padding: 0 4px; }

/* ── Inputs ────────────────────────────────────────────── */
.input {
  width: 100%;
  border: 1px solid var(--line-strong);
  border-radius: var(--r-sm);
  padding: 7.5px 10px;
  font: inherit;
  font-size: 13px;
  background: var(--surface);
  color: var(--ink);
  transition:
    border-color var(--duration) var(--ease),
    box-shadow var(--duration) var(--ease);
  box-shadow: var(--shadow-inset);
  -webkit-appearance: none;
}
.input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft), var(--shadow-inset);
}
.input:hover:not(:focus) { border-color: rgba(0,0,0,0.18); }
.input::placeholder { color: var(--muted-light); }
select.input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238e8e93' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 28px;
  cursor: pointer;
}

/* ── Sheet (main document area) ───────────────────────── */
.sheet {
  max-width: 1120px;
  margin: 0 auto;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-3xl);
  padding: 32px;
  box-shadow: var(--shadow-xl);
}
.document-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-bottom: 1px solid var(--line);
  padding-bottom: 20px;
  margin-bottom: 24px;
}
.logo-text { font-size: 30px; font-weight: 700; letter-spacing: -1.2px; }
.logo-text span { color: var(--accent); }
.document-header p {
  margin: 2px 0 0;
  font-size: 10.5px;
  color: var(--muted);
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.document-official-logo { height: 30px; width: auto; }
.document-title { text-align: right; }
.document-title small {
  color: var(--muted);
  font-weight: 600;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.document-title h2 {
  margin: 3px 0 0;
  font-size: 21px;
  font-weight: 700;
  letter-spacing: -0.5px;
}
.card {
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 20px;
  margin-bottom: 13px;
  background: var(--surface);
  box-shadow: var(--shadow-xs);
  transition: box-shadow var(--duration) var(--ease);
}
.card.compact { padding: 15px; }
.card h3 {
  margin: 0 0 13px;
  font-size: 10.5px;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
}
.section-head { display: flex; justify-content: space-between; align-items: center; }
.grid { display: grid; gap: 10px; }
.grid.four { grid-template-columns: repeat(4,1fr); }
.grid.five { grid-template-columns: repeat(5,1fr); }
label {
  font-size: 10.5px;
  font-weight: 620;
  color: var(--ink-3);
  letter-spacing: 0.01em;
  display: block;
}
/* ── Micro-encabezados de subgrupo dentro de un mismo .grid (p.ej. Datos generales) ── */
.field-group-head{
  grid-column: 1 / -1;
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  opacity: 0.75;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}
.field-group-head:first-child{ margin-top: 0; padding-top: 0; border-top: none; }

/* ── Unidad integrada dentro del campo (mismo patrón que el prefijo CTZ-) ──
   La unidad vive como texto no interactivo alineado a la derecha del input,
   dentro del mismo borde. Se ocultan los steppers nativos del number input
   en estos campos para que no choquen con el sufijo. */
.unit-field{ position: relative; display: block; }
.unit-field .input{ padding-right: 48px; }
.unit-field .unit{
  position: absolute;
  right: 11px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.02em;
  color: var(--muted);
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}
.unit-field input::-webkit-inner-spin-button,
.unit-field input::-webkit-outer-spin-button{ -webkit-appearance: none; margin: 0; }

/* ── Estado vacío: los valores en cero se atenúan hasta tener datos reales ──
   animateNumber() marca .is-zero en cada render; opacity (no un color fijo)
   para que funcione igual sobre tarjetas claras y oscuras del sidebar. */
[data-num-val]{ transition: opacity 0.3s var(--ease); }
[data-num-val].is-zero{ opacity: 0.35; }
@media print{ [data-num-val].is-zero{ opacity: 1 !important; } }

/* ── Despliegue suave de acordeones (estilo Apple) ──
   El atributo hidden usa display:none, cuya altura no es animable sin
   reestructurar el HTML; en su lugar, al re-mostrarse el cuerpo la animación
   se re-dispara sola (fade + leve descenso). El cierre queda instantáneo.
   Se excluyen a propósito los contenedores de impresión (.proposal-summary-body,
   .pc-body): pdf.js los muestra ~150ms antes de window.print() y una animación
   en curso quedaría congelada a medias dentro del PDF. */
.group-body:not([hidden]),
.commission-body:not([hidden]),
.matrix-body:not([hidden]),
.execution-body:not([hidden]),
.conduit-body:not([hidden]),
.calculators-body:not([hidden]),
.smart-design-body:not([hidden]),
.financial-analysis-body:not([hidden]),
.project-costing-body:not([hidden]){
  animation: accordionReveal 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes accordionReveal{
  from { opacity: 0; transform: translateY(-14px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .group-body, .commission-body, .matrix-body, .execution-body, .conduit-body,
  .calculators-body, .smart-design-body, .financial-analysis-body, .project-costing-body{
    animation: none !important;
  }
}
@media print{
  .group-body, .commission-body, .matrix-body, .execution-body, .conduit-body,
  .calculators-body, .smart-design-body, .financial-analysis-body, .project-costing-body{
    animation: none !important;
  }
}

/* ── Líneas de inversor: soporta 2+ inversores de distinta potencia en un proyecto ── */
.inverter-lines-wrap{
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.inverter-lines-label{
  font-size: 10.5px;
  font-weight: 620;
  color: var(--ink-3);
  letter-spacing: 0.01em;
}
.inverter-line{
  display: grid;
  grid-template-columns: 0.8fr 1.1fr 1fr 1.1fr auto;
  gap: 8px;
  align-items: end;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface);
  margin-bottom: 8px;
}
.inverter-line label{
  font-size: 9.5px;
  font-weight: 600;
  color: var(--muted);
}
.remove-inverter-line{
  border: 0;
  background: var(--danger-soft);
  color: var(--danger);
  width: 32px;
  height: 32px;
  border-radius: var(--r-sm);
  cursor: pointer;
  font-weight: 700;
  transition: background var(--duration) var(--ease);
}
.remove-inverter-line:hover{ background: rgba(220,53,69,0.18); }
.inverter-lines-total{
  color: var(--muted);
  font-size: 11px;
}
@media(max-width:900px){
  .inverter-line{ grid-template-columns: 1fr 1fr; }
}
label .input { margin-top: 4px; }
.table-wrap{overflow-x:auto}.cost-table{width:100%;border-collapse:collapse;font-size:13px}.cost-table th{background:var(--dark);color:#fff;text-align:left;padding:10px 12px;font-size:11px;font-weight:600;letter-spacing:.04em}.cost-table td{border-bottom:1px solid var(--line);padding:8px 12px;vertical-align:top}.cost-table input,.cost-table select,.cost-table textarea{border:1px solid var(--line);border-radius:var(--r-sm);padding:7px 10px;width:100%;font:inherit;font-size:13px;background:var(--surface)}.cost-table textarea{min-height:38px;resize:vertical}.cost-table .qty{width:78px}.cost-table .money{width:130px}.cost-table .total-cell{font-weight:700;white-space:nowrap}.remove-row{border:0;background:var(--danger-soft);color:var(--danger);border-radius:var(--r-sm);padding:7px 9px;cursor:pointer;transition:all var(--duration) var(--ease)}.remove-row:hover{background:rgba(255,59,48,0.18)}
.summary-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-bottom: 13px; }
.summary-card {
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 15px 16px;
  background: var(--bg);
  box-shadow: var(--shadow-xs);
}
.summary-card span {
  display: block;
  font-size: 10px;
  color: var(--muted);
  font-weight: 650;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.summary-card strong {
  display: block;
  margin-top: 5px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.5px;
  font-variant-numeric: tabular-nums;
}
.summary-card.highlight {
  background: var(--accent-soft);
  border-color: rgba(0,102,204,0.18);
}
.summary-card.highlight strong { color: var(--accent); }
.summary-card.dark {
  background: linear-gradient(145deg, #111113 0%, #1e1e22 100%);
  color: #fff;
  border-color: transparent;
  box-shadow: var(--shadow-md), inset 0 1px 0 rgba(255,255,255,0.05);
}
.summary-card.dark span { color: rgba(255,255,255,0.45); }
.summary-card.dark strong { color: #fff; }
.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.metrics div,.scenario-grid div{border:1px solid var(--line);border-radius:var(--r-lg);padding:12px;background:var(--soft);box-shadow:var(--shadow-xs)}
.metrics span,.scenario-grid span{display:block;font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.metrics strong,.scenario-grid strong{display:block;font-size:17px;font-weight:700;margin-top:4px;letter-spacing:-0.3px}
.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.scenario-grid small{color:var(--muted);font-size:11px}
.notes-card textarea{resize:vertical}.document-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;margin-top:10px;color:var(--muted);font-size:11px}
@media(max-width:980px){.app-shell{display:block}.sidebar{position:relative;width:100%;min-width:0;height:auto;border-right:none;border-bottom:1px solid var(--line)}.grid.four,.grid.five,.summary-grid,.metrics,.scenario-grid{grid-template-columns:1fr 1fr}.toolbar{border-radius:0;margin-bottom:12px}.sheet{padding:20px;border-radius:var(--r-lg)}}
@media(max-width:600px){.grid.four,.grid.five{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr}}
.input.readonly{background:var(--soft);color:var(--ink-2);font-weight:600;cursor:default}
.section-note{margin: -8px 0 12px;color:var(--muted);font-size:12px;font-weight:500}
.catalog-table .catalog-actions{display:flex;gap:8px;align-items:center;white-space:nowrap}
.catalog-table .catalog-description{min-width:240px}
.catalog-table .catalog-unit{width:140px}
.catalog-table .catalog-qty{width:90px}
@media(min-width:981px){.metrics{grid-template-columns:repeat(4,1fr)}}
.cost-actions{display:flex;gap:8px;align-items:center}
.cost-table th:nth-child(1){width:135px}
.cost-table th:nth-child(2){width:160px}
.cost-table th:nth-child(3){min-width:240px}
.cost-table th:nth-child(4){width:90px}
.cost-table th:nth-child(5){width:105px}
.cost-table th:nth-child(6){width:130px}
.cost-table th:nth-child(7){width:125px}
.cost-table tbody tr:nth-child(even){background:#f7f7f8}
.cost-table tbody tr:nth-child(odd){background:#fff}
.cost-table .item-name{font-weight:700}
.cost-table .item-description{color:#2563a8;font-weight:600}
.cost-table .item-unit-label{min-width:90px}
.cost-table tfoot td{padding:8px 10px;border-top:2px solid var(--line);font-weight:700;background:#fff}
.cost-table .category-subtotal td:first-child{text-align:right;color:#111827}
.cost-table .category-subtotal td:nth-child(2){white-space:nowrap}


.cost-groups { display: grid; gap: 9px; }
.cost-group {
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--surface);
  transition: box-shadow var(--duration) var(--ease);
}
.cost-group.open {
  box-shadow: var(--shadow-sm);
}
.group-header {
  width: 100%;
  border: 0;
  background: var(--bg);
  display: grid;
  grid-template-columns: 18px 1fr auto auto;
  gap: 10px;
  align-items: center;
  padding: 11px 15px;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  text-align: left;
  color: var(--ink);
  transition: background var(--duration) var(--ease);
}
.group-header:hover { background: var(--bg-secondary); }
.group-header strong { font-size: 13px; font-weight: 600; letter-spacing: -0.02em; }
.group-header small { color: var(--muted); font-weight: 500; font-size: 11.5px; }
.group-total { font-weight: 700; white-space: nowrap; font-size: 13px; color: var(--ink); font-variant-numeric: tabular-nums; }
.chevron { font-size: 17px; line-height: 1; transition: transform 0.2s var(--ease); color: var(--muted); }
.cost-group.open .chevron { transform: rotate(90deg); }
.group-body { border-top: 1px solid var(--line); padding: 12px; background: var(--surface); }
.group-actions { display: flex; justify-content: flex-end; margin-top: 10px; }.group-table th:nth-child(1){width:46px}.group-table th:nth-child(2){width:190px}.group-table th:nth-child(3){min-width:300px}.group-table th:nth-child(4){width:105px}.group-table th:nth-child(5){width:120px}.group-table th:nth-child(6){width:135px}.group-table th:nth-child(7){width:125px}.row-number{font-weight:700;color:var(--muted);text-align:center}.category-summary{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;margin-top:8px}.category-summary div{display:flex;justify-content:flex-end;gap:18px;padding:8px 12px;border-top:1px solid var(--line);font-size:13px}.category-summary div:first-child{border-top:0}.category-summary span{color:#374151}.category-summary strong{min-width:135px;text-align:right}.section-head .section-note{margin:2px 0 0}


.viaticos-panel{
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #f8fafc;
}
.viaticos-title{
  font-weight: 700;
  margin-bottom: 10px;
  color: #111827;
}
.viaticos-grid{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}
.viaticos-grid label{
  font-size: 12px;
  font-weight: 600;
  color: #475569;
}
.viaticos-grid input{
  width: 100%;
  margin-top: 5px;
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  padding: 9px 10px;
  font: inherit;
  background: #fff;
}
@media (max-width: 1100px){
  .viaticos-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


.commission-panel{
  margin-top:18px;
  padding:16px;
  border:1px solid #e5e7eb;
  border-radius:18px;
  background:#fafafa;
}
.commission-panel h4{
  margin:0 0 12px;
  font-size:14px;
  color:#111827;
}
.commission-summary{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:12px;
}
.commission-summary div{
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#fff;
  padding:10px 12px;
}
.commission-summary span{
  display:block;
  font-size:11px;
  color:#d1d5db;
  margin-bottom:4px;
}
.commission-summary strong{
  font-size:14px;
}
[hidden]{display:none!important;}
@media(max-width:900px){.commission-summary{grid-template-columns:1fr;}}
.commission-panel h4 small{
  margin-left:8px;
  font-weight:600;
  color:#d1d5db;
}
.commission-rate-row{
  margin-bottom:10px;
}
.commission-lines{
  display:grid;
  gap:10px;
}
.commission-line{
  display:grid;
  grid-template-columns:1.25fr 1fr 1fr auto;
  gap:10px;
  align-items:end;
  padding:12px;
  border:1px solid #e5e7eb;
  border-radius:16px;
  background:#fff;
}
.commission-line strong{
  min-width:120px;
  text-align:right;
  padding:12px 0;
  font-size:14px;
}
.commission-summary{
  grid-template-columns:1fr;
}
@media(max-width:900px){
  .commission-line{grid-template-columns:1fr;}
  .commission-line strong{text-align:left;}
}

.commission-actions{
  margin-top:10px;
  display:flex;
  justify-content:flex-end;
}
.remove-commission{
  border:0;
  background:#fee2e2;
  color:#b91c1c;
  width:34px;
  height:34px;
  border-radius:12px;
  cursor:pointer;
  font-weight:800;
}
.category-disabled .group-header{background:#fff7ed;color:#9a3412}
.category-disabled .group-total{color:#9a3412}
.category-disabled .group-body{background:#fffaf4}
/* ── Row focus glow (estilo Apple Numbers) ── */
.group-table tbody tr.cost-row{
  transition: background 0.18s ease, opacity 0.18s ease, box-shadow 0.18s ease;
}
.group-table.has-row-focus tr.cost-row:not(.row-active){
  opacity: 0.38;
}
.group-table tr.cost-row.row-active{
  background: rgba(0,102,204,0.055) !important;
  box-shadow: inset 3px 0 0 rgba(0,102,204,0.55);
}

.category-disabled .cost-row{opacity:.55}
.toggle-category{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.category-disabled .toggle-category{background:#ecfdf5;border-color:#bbf7d0;color:#166534}


/* v21 proper right-side grouping */
.group-header{
  display:flex !important;
  align-items:center !important;
}

.group-header strong{
  margin-right:auto !important;
}

.group-meta-right{
  display:flex;
  align-items:center;
  gap:14px;
  margin-left:auto;
}

.group-count{
  color:#6b7280;
}

.group-total{
  min-width:140px;
  text-align:right;
  font-weight:800;
}


/* v22: toggle funcional real para Equipos principales */
.group-header{
  cursor:pointer;
}
.group-meta-right{
  margin-left:auto !important;
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
}
.category-switch{
  cursor:pointer;
  user-select:none;
}
.category-switch.is-off{
  background:#fef2f2 !important;
  border-color:#fecaca !important;
  color:#b91c1c !important;
}
.category-disabled .cost-row{
  opacity:.45;
}
.category-disabled .group-total{
  color:#b91c1c !important;
}


/* v23 ubicación exacta: botón en espacio previo a ítems/subtotal */
.group-header{
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  gap:10px !important;
}

.group-title-left{
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  min-width:0 !important;
}

.group-title-left strong{
  white-space:nowrap !important;
}

.group-meta-right{
  margin-left:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:16px !important;
}

.category-switch{
  width:112px !important;
  height:44px !important;
  border:1px solid #d1d5db !important;
  background:#ffffff !important;
  color:#111827 !important;
  border-radius:12px !important;
  font-weight:800 !important;
  cursor:pointer !important;
  flex:0 0 112px !important;
}

.category-switch.is-off{
  background:#fef2f2 !important;
  border-color:#fecaca !important;
  color:#b91c1c !important;
}

.group-count{
  min-width:82px !important;
  text-align:right !important;
  margin:0 !important;
  flex:0 0 82px !important;
}

.group-total{
  min-width:170px !important;
  text-align:right !important;
  margin:0 !important;
  flex:0 0 170px !important;
}

.category-disabled .group-total{
  color:#b91c1c !important;
}


/* v26: Comisiones contraíble estilo categoría */
.commission-group{
  padding:0;
  overflow:hidden;
}

.commission-header{
  display:flex;
  align-items:center;
  width:100%;
  min-height:72px;
  padding:18px 20px;
  border:1px solid #e5e7eb;
  border-radius:22px;
  background:#f8fafc;
  cursor:pointer;
  gap:16px;
}

.commission-title-left{
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}

.commission-title-left .chevron{
  color:#64748b;
  font-size:24px;
  line-height:1;
  transition:transform .18s ease;
}

.commission-group:not(.collapsed) .commission-title-left .chevron{
  transform:rotate(90deg);
}

.commission-title-left strong{
  font-size:14.4px;
  font-weight:900;
  text-transform: none;
  letter-spacing:.08em;
  color:#111827;
  white-space:nowrap;
}

.commission-title-left small{
  color:#64748b;
  font-weight:700;
}

.commission-meta-right{
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:32px;
}

#commissionCount{
  min-width:100px;
  text-align:right;
  color:#6b7280;
  font-weight:800;
}

.commission-total{
  min-width:160px;
  text-align:right;
  font-size:19px;
  font-weight:900;
  color:#111827;
}

.commission-body{
  padding:18px 0 0 0;
}

.commission-group.collapsed .commission-body{
  display:none;
}




/* v28: opción de comisión trasladable al cliente */
.commission-line select option[value="usdPerWattPassthrough"]{
  font-weight:700;
}


/* v29 fee comercial separado */
.commercial-fee-panel{
  margin-top:22px;
  padding:22px;
  border:1px solid #e5e7eb;
  border-radius:22px;
  background:#ffffff;
}

.commercial-fee-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:20px;
}

.commercial-fee-left{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.commercial-fee-left strong{
  font-size:14.4px;
  font-weight:900;
  text-transform: none;
  letter-spacing:.06em;
}

.commercial-fee-left small{
  color:#64748b;
  font-weight:700;
}

.commercial-fee-right{
  display:flex;
  align-items:center;
  gap:20px;
}

.commercial-fee-right strong{
  font-size:20px;
  font-weight:900;
}

.fee-toggle{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:700;
}


/* v30: Fee comercial integrado limpio */
.commercial-fee-panel{
  display:none !important;
}

.inline-check{
  display:flex;
  align-items:center;
  gap:10px;
  height:100%;
  min-height:62px;
  padding-top:24px;
  font-weight:800;
  color:#334155;
}

.inline-check input{
  width:18px;
  height:18px;
}

.commercial-fee-inline{
  margin-top:14px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:18px;
  padding:14px 0 0;
  border-top:1px solid #eef2f7;
}

.commercial-fee-inline span{
  color:#64748b;
  font-weight:800;
}

.commercial-fee-inline strong{
  font-size:20px;
  font-weight:900;
  color:#111827;
}


/* v31: monto equivalente para porcentajes comerciales */
.field-amount{
  display:block;
  margin-top:7px;
  color:#0f172a;
  font-weight:900;
  font-size:13px;
  letter-spacing:.01em;
}

.card.compact label:has(.field-amount) input{
  margin-bottom:0;
}


/* v32: Fee comercial como bloque propio limpio */
.commercial-fee-inline,
.commercial-fee-panel{
  display:none !important;
}

.inline-check{
  display:none !important;
}

.commercial-fee-clean{
  margin-top:22px;
  margin-bottom:22px;
  padding:22px;
  border:1px solid #e5e7eb;
  border-radius:22px;
  background:#f8fafc;
}

.commercial-fee-clean-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:18px;
}

.commercial-fee-clean-head strong{
  display:block;
  font-size:14.4px;
  font-weight:900;
  text-transform: none;
  letter-spacing:.06em;
  color:#111827;
}

.commercial-fee-clean-head small{
  display:block;
  margin-top:5px;
  color:#64748b;
  font-weight:700;
}

.commercial-fee-clean-total{
  display:flex;
  align-items:center;
  gap:22px;
}

.commercial-fee-clean-total > strong{
  min-width:150px;
  text-align:right;
  font-size:22px;
  font-weight:900;
  color:#111827;
}

.fee-toggle{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:800;
  color:#334155;
}

.fee-toggle input{
  width:18px;
  height:18px;
}


/* v33: estado desactivado del fee comercial */
.commercial-fee-clean.fee-disabled{
  opacity:.72;
}

.commercial-fee-clean.fee-disabled #commercialFeeAmount{
  color:#b91c1c;
}


/* v35 botón ON/OFF fee comercial */
.fee-toggle{
  display:none !important;
}

.fee-toggle-button{
  min-width:86px;
  height:42px;
  border-radius:12px;
  border:1px solid #d1d5db;
  background:#ffffff;
  color:#111827;
  font-weight:900;
  letter-spacing:.04em;
  cursor:pointer;
  transition:all .16s ease;
}

.fee-toggle-button.active{
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#166534;
}

.fee-toggle-button.inactive{
  background:#fef2f2;
  border-color:#fecaca;
  color:#b91c1c;
}


/* v36: corrección de contención desde Comisiones hacia abajo */
.card,
.summary-grid,
.metrics,
.scenario-grid,
.commission-panel,
.commercial-fee-clean{
  max-width:100%;
  box-sizing:border-box;
}

.commission-panel,
.commercial-fee-clean{
  width:100%;
  overflow:hidden;
}

.commission-line{
  max-width:100%;
  box-sizing:border-box;
}

.commission-lines{
  width:100%;
  overflow:hidden;
}

.summary-grid{
  width:100%;
}


/* v37: bloque de impuestos estimados */
.tax-card .section-note{
  margin-top:-4px;
  margin-bottom:18px;
  color:#64748b;
  font-size:13px;
  font-weight:600;
}

.tax-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}

.tax-grid > div{
  border:1px solid #e5e7eb;
  background:#ffffff;
  border-radius:18px;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.tax-grid span{
  color:#64748b;
  font-size:13px;
  font-weight:800;
}

.tax-grid strong{
  color:#111827;
  font-size:20px;
  font-weight:900;
}

.tax-grid .highlight{
  background:#f8fafc;
  border-color:#cbd5e1;
}

.tax-grid .dark{
  background:#0f172a;
  border-color:#0f172a;
}

.tax-grid .dark span,
.tax-grid .dark strong{
  color:#ffffff;
}

@media(max-width:900px){
  .tax-grid{grid-template-columns:1fr;}
}


/* v41: switches estilo Apple */
.apple-switch,
.category-switch.apple-switch,
.fee-toggle-button.apple-switch{
  position:relative !important;
  width:64px !important;
  min-width:64px !important;
  height:36px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:999px !important;
  background:#d1d5db !important;
  cursor:pointer !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.14), 0 1px 2px rgba(15,23,42,.08) !important;
  transition:background .18s ease, box-shadow .18s ease !important;
  flex:0 0 64px !important;
  overflow:hidden !important;
  font-size:0 !important;
  line-height:0 !important;
}

.apple-switch.active,
.category-switch.apple-switch.active,
.fee-toggle-button.apple-switch.active{
  background:#22c55e !important;
}

.apple-switch.inactive,
.category-switch.apple-switch.inactive,
.fee-toggle-button.apple-switch.inactive,
.category-switch.apple-switch.is-off{
  background:#d1d5db !important;
}

.apple-switch-thumb{
  position:absolute;
  top:3px;
  left:3px;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#ffffff;
  box-shadow:0 2px 6px rgba(0,0,0,.25);
  transition:transform .18s ease;
}

.apple-switch.active .apple-switch-thumb,
.category-switch.apple-switch.active .apple-switch-thumb,
.fee-toggle-button.apple-switch.active .apple-switch-thumb{
  transform:translateX(28px);
}

.apple-switch:focus-visible{
  outline:3px solid rgba(34,197,94,.25);
  outline-offset:3px;
}

/* limpia estilos viejos de botones ON/OFF */
.fee-toggle-button.active,
.fee-toggle-button.inactive{
  letter-spacing:0 !important;
}

.category-switch{
  text-indent:0 !important;
}


/* v42 switches 10% más pequeños */
.apple-switch,
.category-switch.apple-switch,
.fee-toggle-button.apple-switch{
  width:58px !important;
  min-width:58px !important;
  height:32px !important;
  flex:0 0 58px !important;
}

.apple-switch-thumb{
  width:26px !important;
  height:26px !important;
}

.apple-switch.active .apple-switch-thumb,
.category-switch.apple-switch.active .apple-switch-thumb,
.fee-toggle-button.apple-switch.active .apple-switch-thumb{
  transform:translateX(24px) !important;
}

/* v47 escenarios con utilidad neta */
.scenario-grid small b{
  font-weight:900;
  color:inherit;
}


/* v48: monitor fijo de precio por watt en sidebar */
.sidebar{
  position:sticky;
  top:0;
  height:100vh;
}

.sidebar-price-monitor{
  margin-top:auto;
  padding:16px;
  border:1px solid #e5e7eb;
  border-radius:18px;
  background:#0f172a;
  color:#ffffff;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.sidebar-price-monitor span{
  font-size:12px;
  font-weight:700;
  color:#cbd5e1;
  line-height:1.25;
}

.sidebar-price-monitor strong{
  font-size:22px;
  font-weight:900;
  letter-spacing:-.03em;
  color:#ffffff;
}


/* v49 indicadores + comparador */
.indicators-card .one-metric{
  grid-template-columns:minmax(220px, 320px);
}

.comparison-box{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid #eef2f7;
}

.comparison-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}

.comparison-head strong{
  font-size:15px;
  font-weight:900;
  color:#111827;
  text-transform: none;
  letter-spacing:.04em;
}

.comparison-head small{
  color:#64748b;
  font-weight:700;
}

#comparePricePerWatt{
  font-weight:900;
  color:#0f172a;
}


/* v51: detalles para facturación de clientes */
.billing-details-card .section-note{
  margin-top:-4px;
  margin-bottom:18px;
  color:#64748b;
  font-size:13px;
  font-weight:600;
}

.billing-table-wrap{
  width:100%;
  overflow-x:auto;
}

.billing-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid #e5e7eb;
  border-radius:18px;
  background:#ffffff;
}

.billing-table th,
.billing-table td{
  padding:14px 16px;
  border-bottom:1px solid #eef2f7;
  text-align:left;
}

.billing-table th{
  background:#f8fafc;
  color:#475569;
  font-size:12px;
  text-transform: none;
  letter-spacing:.06em;
  font-weight:900;
}

.billing-table td:nth-child(2),
.billing-table td:nth-child(3),
.billing-table th:nth-child(2),
.billing-table th:nth-child(3){
  text-align:right;
}

.billing-table tbody td{
  color:#111827;
  font-weight:700;
}

.billing-table tfoot td{
  background:#f8fafc;
  color:#111827;
  font-weight:900;
}

.billing-table tfoot tr:last-child td{
  border-bottom:0;
}

.billing-total-row td{
  background:#0f172a !important;
  color:#ffffff !important;
  font-size:12.8px;
}


/* v53: costos principales arriba de parámetros comerciales */
.cost-snapshot{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
  margin:0 0 18px 0;
}

.cost-snapshot .summary-card{
  min-height:92px;
}

@media(max-width:900px){
  .cost-snapshot{
    grid-template-columns:1fr;
  }
}


/* v54: snapshot financiero con IVA intermedio */
.cost-snapshot{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}


/* v56 Excel buttons */
.sidebar #exportExcelBtn{
  margin-top:8px;
}

/* ── Jerarquía de acciones del sidebar (primario / secundario / destructivo) ── */
.sidebar-action-group{
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sidebar-action-group-secondary{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.sidebar-action-group-secondary .btn{
  font-size: 12px;
  padding: 8px 13px;
}
/* Chip de modo de impresión: qué hojas saldrán en el PDF según B2B/B2C/múltiple */
.sidebar-print-mode{
  text-align: center;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--muted);
  margin-top: -2px;
  transition: color 0.2s var(--ease);
}
.sidebar-print-mode.is-alt{ color: var(--accent); }

/* Zona destructiva: separación real, nunca a un clic de "Guardar" */
.sidebar-danger-zone{
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px dashed rgba(220,53,69,0.25);
}
.sidebar-danger-zone .btn{
  width: 100%;
  opacity: 0.72;
  transition: opacity var(--duration) var(--ease), background var(--duration) var(--ease);
}
.sidebar-danger-zone .btn:hover{ opacity: 1; }


/* v61 subcategorías DC / AC dentro de materiales eléctricos */
.electrical-group .table-wrap{
  display:flex;
  flex-direction:column;
  gap:20px;
}

.electrical-subgroup{
  border:1px solid #e5e7eb;
  border-radius:18px;
  overflow:hidden;
  background:#ffffff;
}

.electrical-subhead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  background:#f8fafc;
  border-bottom:1px solid #e5e7eb;
}

.electrical-subhead strong{
  font-size:14px;
  font-weight:900;
  letter-spacing:.08em;
  color:#0f172a;
}

.electrical-subhead .btn{
  width:auto;
}


/* v62 matrices / arreglos */
.matrix-card{
  padding:0;
  overflow:hidden;
}

.matrix-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 22px;
  cursor:pointer;
  background:#f8fafc;
  border-radius:22px;
}

.matrix-title-left{
  display:flex;
  align-items:center;
  gap:16px;
}

.matrix-title-left .chevron{
  font-size:24px;
  color:#64748b;
  transition:transform .18s ease;
}

.matrix-card.open .matrix-title-left .chevron{
  transform:rotate(90deg);
}

.matrix-title-left strong{
  font-size:14.4px;
  font-weight:900;
  text-transform: none;
  letter-spacing:.06em;
  color:#111827;
}

.matrix-title-left small{
  color:#64748b;
  font-weight:800;
}

.matrix-meta-right strong{
  color:#111827;
  font-weight:900;
}

.matrix-body{
  padding:20px 22px 22px;
}

.matrix-rows{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.matrix-row{
  display:grid;
  grid-template-columns:1.3fr .7fr .9fr .9fr .9fr 42px;
  gap:12px;
  align-items:end;
  padding:14px;
  border:1px solid #e5e7eb;
  border-radius:18px;
  background:#ffffff;
}

.matrix-row label{
  margin:0;
}

.remove-matrix{
  width:38px;
  height:38px;
  border:0;
  border-radius:12px;
  background:#fee2e2;
  color:#b91c1c;
  font-weight:900;
  cursor:pointer;
}

.matrix-actions{
  margin-top:16px;
  display:flex;
  justify-content:flex-end;
  gap:10px;
}

@media(max-width:1100px){
  .matrix-row{
    grid-template-columns:1fr 1fr;
  }
}


/* v64 tipo de techo por matriz */
.matrix-row{
  grid-template-columns:1.2fr .55fr .8fr .8fr .8fr .8fr 42px;
}

@media(max-width:1250px){
  .matrix-row{
    grid-template-columns:1fr 1fr;
  }
}


/* v68 tasa de cambio global */
#globalExchangeRate{
  font-weight:900;
}


/* v74 precio objetivo $/W */
.target-price-toggle{
  display:flex;
  flex-direction:column;
  gap:8px;
  justify-content:flex-end;
}

.target-price-toggle > span{
  color:#334155;
  font-weight:800;
  font-size:13px;
}


/* v75 equipos principales apagado por default */
.cost-group.disabled-category,
.cost-group[data-disabled-category="true"]{
  background:#f6f7f8 !important;
  border-color:#e5e7eb !important;
  opacity:.82;
}

.cost-group.disabled-category .group-header,
.cost-group[data-disabled-category="true"] .group-header{
  background:#f1f3f5 !important;
  border-bottom:1px solid #e5e7eb !important;
}

.cost-group.disabled-category .group-title,
.cost-group[data-disabled-category="true"] .group-title,
.cost-group.disabled-category .group-total,
.cost-group[data-disabled-category="true"] .group-total{
  color:#6b7280 !important;
}

.cost-group.disabled-category .apple-switch,
.cost-group[data-disabled-category="true"] .apple-switch{
  opacity:.88;
}


/* v76 buscador de proyectos guardados */
.project-search{
  margin-bottom:6px;
}

.project-search-counter{
  display:block;
  margin:-2px 0 10px;
  color:#64748b;
  font-size:12px;
  font-weight:700;
}


/* v77 botones simplificados */
.simplified-project-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:16px;
}

.simplified-project-actions .btn{
  width:100%;
}


/* v79 sidebar limpio definitivo */
.simplified-project-actions{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:28px;
}

.simplified-project-actions .btn{
  width:100%;
}


/* v81: Equipos principales inactivo en gris pálido, sin rojo */
.cost-group.category-disabled,
.cost-group.disabled-category,
.cost-group[data-disabled-category="true"]{
  background:#f7f8fa !important;
  border-color:#e5e7eb !important;
  opacity:1 !important;
}

.cost-group.category-disabled .group-header,
.cost-group.disabled-category .group-header,
.cost-group[data-disabled-category="true"] .group-header{
  background:#f4f5f7 !important;
  color:#9ca3af !important;
}

.cost-group.category-disabled .group-header strong,
.cost-group.category-disabled .group-title-left strong,
.cost-group.category-disabled strong,
.cost-group.disabled-category .group-header strong,
.cost-group.disabled-category .group-title-left strong,
.cost-group.disabled-category strong,
.cost-group[data-disabled-category="true"] .group-header strong,
.cost-group[data-disabled-category="true"] .group-title-left strong,
.cost-group[data-disabled-category="true"] strong{
  color:#9ca3af !important;
}

.cost-group.category-disabled .group-total,
.cost-group.category-disabled .group-count,
.cost-group.disabled-category .group-total,
.cost-group.disabled-category .group-count,
.cost-group[data-disabled-category="true"] .group-total,
.cost-group[data-disabled-category="true"] .group-count{
  color:#9ca3af !important;
}

.cost-group.category-disabled .chevron,
.cost-group.disabled-category .chevron,
.cost-group[data-disabled-category="true"] .chevron{
  color:#b6bdc7 !important;
}

/* neutraliza cualquier regla vieja roja */
.category-disabled .group-total,
.category-disabled .group-header strong{
  color:#9ca3af !important;
}


/* v84 logo superior principal */
.main-top-logo{
  width:100%;
  display:flex;
  justify-content:flex-start;
  align-items:center;
  margin-bottom:26px;
}

.main-solarpro-logo{
  width:340px;
  height:auto;
  object-fit:contain;
  display:block;
}

.sidebar .brand-mini{
  display:none !important;
}


/* v85 logo oficial dentro del encabezado del documento */
.logo-text{
  display:none !important;
}

.document-logo-wrap{
  display:flex;
  align-items:center;
  justify-content:flex-start;
}

.document-official-logo{
  width:216px;
  height:auto;
  object-fit:contain;
  display:block;
}

.document-header{
  align-items:center !important;
}

.main-top-logo{
  display:none !important;
}


/* v91 utilidad SolarPro sidebar */
.sidebar-profit-card{
  margin-top:18px;
  margin-bottom:18px;
  padding:18px;
  border-radius:22px;
  background:linear-gradient(180deg,#f8fafc 0%, #eef2f7 100%);
  border:1px solid #e5e7eb;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.sidebar-profit-card .profit-label{
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform: none;
  color:#64748b;
}

.sidebar-profit-card strong{
  font-size:28px;
  line-height:1;
  font-weight:900;
  color:#111827;
}

.sidebar-profit-card small{
  color:#6b7280;
  font-size:12px;
  font-weight:700;
}


/* v93 botón limpiar todo */
.btn.danger-outline{
  border:1px solid #fecaca;
  background:#fff7f7;
  color:#b91c1c;
}

.btn.danger-outline:hover{
  background:#fee2e2;
}


/* v95 tiempo estimado de ejecución */
.execution-card{
  padding:0;
  overflow:hidden;
}

.execution-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 22px;
  cursor:pointer;
  background:#f8fafc;
  border-radius:22px;
}

.execution-title-left{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
}

.execution-title-left .chevron{
  font-size:24px;
  color:#64748b;
  transition:transform .18s ease;
}

.execution-card:not(.collapsed) .execution-title-left .chevron{
  transform:rotate(90deg);
}

.execution-title-left strong{
  font-size:14.4px;
  font-weight:900;
  text-transform: none;
  letter-spacing:.06em;
  color:#111827;
  white-space:nowrap;
}

.execution-title-left small{
  color:#64748b;
  font-weight:800;
}

.execution-meta-right strong{
  display:block;
  min-width:110px;
  text-align:right;
  color:#111827;
  font-size:20px;
  font-weight:900;
}

.execution-body{
  padding:20px 22px 22px;
}

.execution-kpis{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin-top:16px;
}

.execution-kpis > div{
  border:1px solid #e5e7eb;
  border-radius:18px;
  padding:14px;
  background:#ffffff;
}

.execution-kpis span{
  display:block;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  margin-bottom:6px;
}

.execution-kpis strong{
  color:#111827;
  font-weight:900;
}

@media(max-width:900px){
  .execution-kpis{
    grid-template-columns:1fr;
  }
}


/* v96: normalización tipográfica por jerarquías */
:root{
  --fs-xs: 11px;
  --fs-sm: 12px;
  --fs-md: 13px;
  --fs-base: 14px;
  --fs-lg: 16px;
  --fs-xl: 18px;
  --fs-2xl: 22px;
  --fs-3xl: 28px;
}

/* Base */
body,
.input,
button,
select,
textarea{
  font-size:var(--fs-base);
  line-height:1.35;
}

/* Sidebar */
.sidebar{
  font-size:var(--fs-base);
}

.sidebar .btn{
  font-size:var(--fs-base);
  font-weight:800;
}

.sidebar-profit-card .profit-label,
.sidebar-price-monitor span{
  font-size:var(--fs-sm);
  letter-spacing:.04em;
}

.sidebar-profit-card strong{
  font-size:var(--fs-3xl);
  letter-spacing:-.04em;
}

.sidebar-price-monitor strong{
  font-size:var(--fs-2xl);
  letter-spacing:-.03em;
}

/* Encabezado documento */
.document-title small{
  font-size:var(--fs-sm);
  font-weight:800;
  letter-spacing:.08em;
  text-transform: none;
}

.document-title h2{
  font-size:var(--fs-2xl);
  line-height:1.1;
  font-weight:900;
  letter-spacing:-.02em;
}

/* Cards y secciones */
.card h3,
.section-head h3{
  font-size:var(--fs-xl);
  line-height:1.2;
  font-weight:900;
  letter-spacing:.02em;
}

.section-note,
.card .section-note{
  font-size:var(--fs-md);
  line-height:1.45;
  font-weight:600;
}

/* Labels y campos */
label{
  font-size:var(--fs-md);
  font-weight:800;
  color:#334155;
}

.input{
  font-size:var(--fs-base);
  font-weight:700;
}

.field-amount{
  font-size:var(--fs-sm);
  font-weight:900;
}

/* Headers colapsables */
.group-title-left strong,
.matrix-title-left strong,
.execution-title-left strong,
.commission-title-left strong,
.commercial-fee-clean-head strong{
  font-size:var(--fs-lg) !important;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.06em;
  text-transform: none;
}

.group-title-left small,
.matrix-title-left small,
.execution-title-left small,
.commission-title-left small,
.commercial-fee-clean-head small{
  font-size:var(--fs-sm);
  line-height:1.3;
  font-weight:800;
}

.group-count,
#commissionCount{
  font-size:var(--fs-sm);
  font-weight:800;
}

.group-total,
.commission-total,
.commercial-fee-clean-total > strong,
.execution-meta-right strong,
.matrix-meta-right strong{
  font-size:var(--fs-lg);
  font-weight:900;
  letter-spacing:-.02em;
}

/* Tablas */
.cost-table th,
.billing-table th{
  font-size:var(--fs-xs);
  font-weight:900;
  letter-spacing:.06em;
}

.cost-table td,
.billing-table td{
  font-size:var(--fs-base);
}

.cost-table input,
.cost-table select,
.cost-table textarea{
  font-size:var(--fs-md);
  font-weight:700;
}

.total-cell{
  font-size:var(--fs-base);
  font-weight:900;
}

/* Resumen financiero */
.summary-card span,
.tax-grid span,
.metrics span,
.scenario-grid span,
.execution-kpis span{
  font-size:var(--fs-sm);
  font-weight:800;
  letter-spacing:.02em;
}

.summary-card strong,
.tax-grid strong,
.metrics strong,
.scenario-grid strong,
.execution-kpis strong{
  font-size:var(--fs-xl);
  line-height:1.15;
  font-weight:900;
  letter-spacing:-.03em;
}

.summary-card.highlight strong,
.summary-card.dark strong,
.tax-grid .dark strong{
  font-size:var(--fs-2xl);
}

.scenario-grid small{
  font-size:var(--fs-sm);
  line-height:1.35;
  font-weight:700;
}

/* Indicadores / comparador */
.comparison-head strong{
  font-size:var(--fs-md);
  letter-spacing:.06em;
}

.comparison-head small{
  font-size:var(--fs-sm);
}

/* Botones pequeños y controles */
.btn.small,
.add-electrical-item,
.add-group-item,
.matrix-actions .btn{
  font-size:var(--fs-sm);
  font-weight:800;
}

.apple-switch{
  font-size:0 !important;
}

/* Footer */
.document-footer{
  font-size:var(--fs-sm);
  font-weight:700;
}

/* Evita que títulos largos rompan la jerarquía visual */
.group-title-left,
.matrix-title-left,
.execution-title-left,
.commission-title-left{
  min-width:0;
}

.group-title-left strong,
.matrix-title-left strong,
.execution-title-left strong,
.commission-title-left strong{
  white-space:normal;
}

/* v100 calculadora de canalización y cableado */
.conduit-card{
  padding:0;
  overflow:hidden;
}

.conduit-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 22px;
  cursor:pointer;
  background:#f8fafc;
  border-radius:22px;
}

.conduit-title-left{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
}

.conduit-title-left .chevron{
  font-size:24px;
  color:#64748b;
  transition:transform .18s ease;
}

.conduit-card.open .conduit-title-left .chevron{
  transform:rotate(90deg);
}

.conduit-title-left strong{
  font-size:14.4px;
  font-weight:900;
  text-transform: none;
  letter-spacing:.06em;
  color:#111827;
  white-space:nowrap;
}

.conduit-title-left small{
  color:#64748b;
  font-weight:800;
}

.conduit-meta-right strong{
  display:block;
  min-width:110px;
  text-align:right;
  color:#111827;
  font-size:20px;
  font-weight:900;
}

.conduit-body{
  padding:20px 22px 22px;
}

.conduit-results{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
  margin-top:16px;
}

.conduit-results > div{
  border:1px solid #d1d5db;
  border-radius:18px;
  padding:14px;
  background:#d1d5db;
}

.conduit-results span{
  display:block;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  margin-bottom:6px;
}

.conduit-results strong{
  color:#111827;
  font-weight:900;
}

@media(max-width:1100px){
  .conduit-results{
    grid-template-columns:1fr 1fr;
  }
}

.conduit-subtitle{
  margin:18px 0 10px;
  color:#111827;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform: none;
}

/* Centro de cálculo: agrupa las calculadoras debajo de datos generales */
.calculators-card{
  padding:0;
  overflow:hidden;
}

.calculators-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 22px;
  cursor:pointer;
  background:#eef2f7;
  border-radius:22px;
  border:1px solid #d9e1ec;
}

.calculators-title-left{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
}

.calculators-title-left .chevron{
  font-size:24px;
  color:#64748b;
  transition:transform .18s ease;
}

.calculators-card.open .calculators-title-left .chevron{
  transform:rotate(90deg);
}

.calculators-title-left strong{
  font-size:14.4px;
  font-weight:900;
  text-transform: none;
  letter-spacing:.06em;
  color:#111827;
}

.calculators-title-left small{
  color:#64748b;
  font-weight:800;
}

.calculators-meta-right strong{
  font-size:13px;
  font-weight:900;
  color:#475569;
  text-transform: none;
  letter-spacing:.08em;
}

.calculators-body{
  padding:18px 0 0;
  display:grid;
  gap:14px;
}

.viaticos-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}



/* Viáticos switch keeps same order as Equipos principales inside group meta */
.group-meta-right .viaticos-header-toggle{
  flex-shrink:0;
}


/* Viáticos apagado: misma lectura visual suave que Equipos principales */
.cost-group[data-category="Viáticos"].viaticos-disabled{
  background:#f1f3f6;
  opacity:.72;
}

.cost-group[data-category="Viáticos"].viaticos-disabled .group-header{
  background:#f1f3f6;
}

.cost-group[data-category="Viáticos"].viaticos-disabled .group-title-left strong,
.cost-group[data-category="Viáticos"].viaticos-disabled .chevron,
.cost-group[data-category="Viáticos"].viaticos-disabled .group-count,
.cost-group[data-category="Viáticos"].viaticos-disabled .group-total{
  color:#9aa3b2;
}


/* Acordeón maestro: COSTEO DE PROYECTO */
.project-costing-card{
  padding:0;
  overflow:hidden;
}

.project-costing-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  cursor:pointer;
  background: #000000;
  border-radius:18px;
}

.project-costing-title-left{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.project-costing-title-left strong{
  font-size:15px;
  letter-spacing:.055em;
  color:#ffffff;
}

.project-costing-title-left small{
  color:#6b7280;
  font-weight:700;
}

.project-costing-meta-right strong{
  color:#6b7280;
  font-size:12px;
}

.project-costing-card .project-costing-header .chevron{
  transition:transform .18s ease;
  color:#ffffff;
}

.project-costing-card.open .project-costing-header .chevron{
  transform:rotate(90deg);
}

.project-costing-body{
  padding:16px;
}

.project-costing-body > section:first-child{
  margin-top:0;
}


/* SMART DESIGN master accordion */
.smart-design-card{
  padding:0;
  overflow:hidden;
}

.smart-design-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  cursor:pointer;
  background: #000000;
  border-radius:18px;
}

.smart-design-title-left{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.smart-design-title-left strong{
  font-size:15px;
  letter-spacing:.055em;
  color:#ffffff;
}

.smart-design-title-left small,
.smart-design-meta-right strong{
  color:#d1d5db;
  font-size:12px;
}

.smart-design-card .smart-design-header .chevron{
  transition:transform .18s ease;
  color:#ffffff;
}

.smart-design-card.open .smart-design-header .chevron{
  transform:rotate(90deg);
}

.smart-design-body{
  padding:16px;
}

.smart-design-section{
  margin-top:0;
}

.smart-design-section + .smart-design-section{
  margin-top:16px;
}

.smart-image-uploader{
  display:flex;
  gap:10px;
  margin-top:10px;
}

.smart-image-preview{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:12px;
  margin-top:14px;
}

.smart-image-card{
  border:1px solid #e5e7eb;
  border-radius:14px;
  overflow:hidden;
  background:#f9fafb;
}

.smart-image-card img{
  width:100%;
  height:120px;
  object-fit:cover;
  display:block;
}

.smart-image-card small{
  display:block;
  padding:8px 10px;
  color:#6b7280;
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.smart-consumption-mode{
  margin:12px 0 14px;
}

.smart-checkbox{
  display:flex;
  align-items:center;
  gap:9px;
  font-weight:700;
  color:#374151;
}

.smart-checkbox input{
  width:16px;
  height:16px;
}

.smart-consumption-results{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}

.smart-consumption-results div{
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#f3f4f6;
  padding:13px 14px;
}

.smart-consumption-results span{
  display:block;
  color:#6b7280;
  font-size:11px;
  font-weight:800;
  text-transform: none;
  letter-spacing:.04em;
}

.smart-consumption-results strong{
  display:block;
  margin-top:5px;
  color:#111827;
  font-size:17px;
}

.smart-consumption-results .highlight{
  background:#e5e7eb;
}

.smart-manual-annual{
  margin-top:14px;
}

.smart-consumption-grid label.is-disabled{
  opacity:.45;
}


.smart-generation-mode{
  margin:12px 0 14px;
}

.smart-generation-results .highlight{
  background:#e5e7eb;
}

.smart-manual-generation{
  margin-top:14px;
}

.smart-generation-grid label.is-disabled{
  opacity:.45;
}


.smart-autoconsumo-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:14px;
}


.smart-chart-section{
  background:#ffffff;
}

.smart-chart-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.smart-chart-unit{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:9px 12px;
  font-weight:800;
  color:#374151;
  background:#f9fafb;
}

.smart-chart-wrap{
  width:100%;
  overflow-x:auto;
  border:1px solid #e6edf3;
  border-radius:22px;
  background:
    radial-gradient(circle at 18% 8%, rgba(31,143,255,.08), transparent 28%),
    linear-gradient(180deg,#ffffff,#f8fbff);
  box-shadow:0 18px 45px rgba(15,23,42,.08);
}

.smart-energy-chart{
  display:block;
  width:100%;
  min-width:760px;
  height: 281px;
}

.smart-chart-bg{
  fill:rgba(255,255,255,.92);
}

.smart-chart-title{
  fill:#111827;
  font-size:12.8px;
  font-weight:900;
}

.smart-chart-subtitle,
.smart-chart-axis-title,
.smart-chart-axis-label,
.smart-chart-month{
  fill:#6b7280;
  font-size:12px;
  font-weight:700;
}

.smart-chart-grid{
  stroke:#e5e7eb;
  stroke-width:1;
  stroke-dasharray:4 8;
}

.smart-chart-base{
  stroke:#9ca3af;
  stroke-width:1.2;
}

.smart-bar-generation{
  fill:url(#generationGradient);
  filter:url(#chartShadow);
}

.smart-bar-consumption{
  fill:url(#consumptionGradient);
  filter:url(#chartShadow);
}

.smart-bar-highlight{
  fill:rgba(255,255,255,.24);
  pointer-events:none;
}

.smart-line-autoconsumption{
  fill:#1daa6f;
  filter:url(#lineGlow);
  opacity:.98;
  pointer-events:none;
}

.smart-line-point{
  display:none;
}

.smart-chart-legend{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin-top:12px;
  color:#374151;
  font-size:12px;
  font-weight:700;
  flex-wrap:wrap;
}

.smart-chart-legend span{
  display:inline-flex;
  align-items:center;
  gap:7px;
}

.smart-chart-legend i{
  width:10px;
  height:10px;
  border-radius:3px;
  display:inline-block;
}

.legend-generation{background:#6bc99a;}
.legend-consumption{background:#ff8a00;}
.legend-autoconsumption{background:#1daa6f;border-radius:999px!important;}


.smart-chart-note{
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  background:#eff6ff;
  color:#1d4ed8;
  font-size:12px;
  font-weight:700;
  line-height:1.45;
}

.smart-chart-right-axis, .smart-chart-percent-axis, .smart-chart-y2-axis { display: none !important; }


.smart-system-capacity-section{
  background:#ffffff;
}

.smart-system-capacity-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}

.smart-system-capacity-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}

.smart-system-capacity-grid div{
  border:1px solid #e5e7eb;
  border-radius:16px;
  background:#f9fafb;
  padding:14px 14px;
}

.smart-system-capacity-grid span{
  display:block;
  color:#6b7280;
  font-size:10.5px;
  font-weight:800;
  text-transform: none;
  letter-spacing:.045em;
  line-height:1.25;
}

.smart-system-capacity-grid strong{
  display:block;
  margin-top:6px;
  color:#111827;
  font-size:19px;
  line-height:1.1;
  letter-spacing:-.02em;
}

.smart-system-capacity-grid small{
  display:block;
  margin-top:5px;
  color:#9ca3af;
  font-size:11px;
  font-weight:700;
}

@media(max-width:980px){
  .smart-system-capacity-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


.financial-analysis-card{
  overflow:hidden;
}

.financial-analysis-header{
  background:#000000;
  color:#ffffff;
  border-radius:16px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  cursor:pointer;
}

.financial-analysis-header .chevron{
  transition:transform .18s ease;
  color:#ffffff;
}

.financial-analysis-card.open .financial-analysis-header .chevron{
  transform:rotate(90deg);
}

.financial-analysis-body{
  padding:16px;
}

.financial-analysis-card.collapsed .financial-analysis-body{
  display:none;
}


/* Prefijo "CTZ-" integrado dentro del mismo campo (un solo borde, un solo fondo) */
.quote-number-input{
  position:relative;
  display:block;
}
.quote-number-input span{
  position:absolute;
  left:11px;
  top:50%;
  transform:translateY(-50%);
  color:var(--ink);
  font-weight:700;
  font-size:13px;
  letter-spacing:0.01em;
  pointer-events:none;
  user-select:none;
  white-space:nowrap;
}
.quote-number-input .input{
  padding-left:52px;
  min-width:0;
}


/* Menú de sugerencias del catálogo (reemplaza al <datalist> nativo, que en
   Safari se cierra/vacía ante cualquier cambio del DOM). */
.catalog-suggest{
  position:fixed;
  z-index:99999;
  background:#ffffff;
  border:1px solid #e3e3e8;
  border-radius:10px;
  box-shadow:0 8px 28px rgba(0,0,0,.14);
  max-height:230px;
  overflow-y:auto;
  padding:4px;
}
.catalog-suggest-item{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  padding:8px 12px;
  border-radius:7px;
  font-size:13px;
  color:#1d1d1f;
  cursor:pointer;
  white-space:nowrap;
}
.catalog-suggest-item:hover{
  background:#f2f2f7;
}
.catalog-suggest-hint{
  font-size:11px;
  color:#86868b;
}

.proposal-summary-card{
  overflow:hidden;
}

.proposal-summary-header{
  background:#000000;
  color:#ffffff;
  border-radius:16px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  cursor:pointer;
}

.proposal-summary-header .chevron{
  transition:transform .18s ease;
  color:#ffffff;
}

.proposal-summary-card.open .proposal-summary-header .chevron{
  transform:rotate(90deg);
}

.proposal-summary-body{
  padding:16px;
}

.proposal-summary-card.collapsed .proposal-summary-body{
  display:none;
}

.proposal-cover-tools{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
  padding:12px 14px;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#f9fafb;
}

.proposal-cover-tools strong,
.proposal-cover-tools small{
  display:block;
}

.proposal-cover-tools small{
  color:#6b7280;
  font-size:12px;
  margin-top:2px;
}

.proposal-letter-page{
  width:816px;
  height:1056px;
  position:relative;
  overflow:hidden;
  background:#ffffff;
  border:1px solid #d1d5db;
  margin:0 auto;
  box-shadow:0 18px 40px rgba(15,23,42,.10);
  font-family:inherit;
}

.proposal-cover-page{
  color:#242225;
}

.proposal-cover-bg{
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:51.8%;
  object-fit:cover;
  object-position:center bottom;
  z-index:1;
  display:block;
}

.proposal-cover-logo{
  position:absolute;
  left:92px;
  top:94px;
  width:250px;
  z-index:2;
}

.proposal-cover-logo img{
  width:100%;
  height:auto;
  display:block;
}

.proposal-cover-company{
  position:absolute;
  top:86px;
  right:82px;
  width:230px;
  z-index:2;
  text-align:center;
  color:#242225;
  font-size:12.8px;
  line-height:1.25;
}

.proposal-cover-company strong,
.proposal-cover-company span{
  display:block;
}

.proposal-cover-company strong{
  font-size:17px;
  font-weight:900;
}

.proposal-cover-date{
  position:absolute;
  top:218px;
  right:75px;
  width:215px;
  z-index:2;
  text-align:right;
  color:#242225;
}

.proposal-cover-date strong{
  display:block;
  font-size:12.8px;
  font-weight:900;
}

.proposal-cover-date span{
  display:block;
  font-size:13px;
  font-weight:700;
  min-height:16px;
}

.proposal-cover-quote{
  position:absolute;
  top:250px;
  right:75px;
  width:215px;
  height:45px;
  z-index:2;
  background:#242225;
  color:#ffffff;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding-right:17px;
  font-size:25px;
  font-weight:900;
  letter-spacing:.01em;
}

.proposal-cover-title{
  position:absolute;
  top:438px;
  right:80px;
  width:450px;
  z-index:2;
  text-align:right;
}

.proposal-cover-title h1{
  margin:0;
  color:#242225;
  font-size:42px;
  line-height:1.02;
  font-weight:900;
  letter-spacing:-.055em;
}

.proposal-cover-title h2{
  margin:6px 0 0;
  color:#242225;
  font-size:22px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:-.035em;
}

.proposal-cover-title p{
  margin:10px 0 0;
  color:#242225;
  font-size:14.4px;
  line-height:1.1;
  font-weight:500;
}

.proposal-cover-footer{
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:48px;
  z-index:3;
  background:rgba(18,29,14,.72);
  color:#ffffff;
  display:grid;
  grid-template-columns:1fr 1.35fr 1.25fr;
  align-items:center;
  padding:0 86px;
  column-gap:28px;
  font-size:15.5px;
  font-weight:700;
  letter-spacing:-.01em;
}

.proposal-cover-footer div{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  white-space:nowrap;
}

.footer-icon{
  font-size:19px;
  line-height:1;
}

@media(max-width:980px){
  .proposal-letter-page{
    transform:scale(.72);
    transform-origin:top center;
    margin-bottom:-285px;
  }
}




/* === RESUMEN / PORTADA CARTA - AJUSTE FINAL === */

.proposal-summary-card{
  margin-top:16px;
  overflow:hidden;
}

.proposal-summary-header{
  background:#000000 !important;
  color:#ffffff;
  border-radius:16px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  cursor:pointer;
}

.proposal-summary-body{
  padding:16px;
}

.proposal-letter-page{
  width:816px !important;
  height:1056px !important;
  max-width:816px !important;
  min-height:1056px !important;
  position:relative !important;
  overflow:hidden !important;
  background:#f5f5f4 !important;
  border:1px solid #d1d5db;
  margin:0 auto;
  box-shadow:0 14px 34px rgba(15,23,42,.10);
  box-sizing:border-box;
}

.proposal-cover-page{
  font-family:inherit;
  color:#242225;
}

.proposal-cover-bg{
  position:absolute !important;
  left:0 !important;
  bottom:48px !important;
  width:100% !important;
  height:43.5% !important;
  object-fit:cover !important;
  object-position:center bottom !important;
  z-index:1;
}

.proposal-cover-logo{
  position:absolute !important;
  left:88px !important;
  top:92px !important;
  width:255px !important;
  z-index:2;
}

.proposal-cover-logo img{
  width:100%;
  height:auto;
  display:block;
}

.proposal-cover-company{
  position:absolute !important;
  top:84px !important;
  right:88px !important;
  width:250px !important;
  z-index:2;
  text-align:right !important;
  color:#242225;
  font-size:12.8px;
  line-height:1.55;
  font-weight:500;
}

.proposal-cover-company strong,
.proposal-cover-company span{
  display:block;
}

.proposal-cover-company strong{
  font-size:17px;
  font-weight:900;
}

.proposal-cover-quote{
  position:absolute !important;
  top:238px !important;
  right:88px !important;
  width:215px !important;
  height:45px !important;
  z-index:2;
  background:#242225 !important;
  color:#ffffff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  padding-right:16px !important;
  box-sizing:border-box !important;
  font-size:25px !important;
  font-weight:900 !important;
  letter-spacing:.01em;
}

.proposal-cover-date{
  position:absolute !important;
  top:292px !important;
  right:88px !important;
  width:215px !important;
  z-index:2;
  text-align:right !important;
  color:#242225;
}

.proposal-cover-date strong{
  display:block;
  font-size:12.8px;
  line-height:1.1;
  font-weight:900;
}

.proposal-cover-date span{
  display:block;
  margin-top:6px;
  font-size:14px;
  line-height:1.1;
  font-weight:800;
}

.proposal-cover-title{
  position:absolute !important;
  top:438px !important;
  right:88px !important;
  width:470px !important;
  z-index:2;
  text-align:right !important;
}

.proposal-cover-title h1{
  margin:0;
  color:#242225;
  font-size:39px !important;
  line-height:1.02 !important;
  font-weight:900 !important;
  letter-spacing:-.055em;
  text-transform:none;
}

.proposal-cover-title h2{
  margin:8px 0 0;
  color:#242225;
  font-size:22px !important;
  line-height:1.08 !important;
  font-weight:900 !important;
  letter-spacing:-.035em;
}

.proposal-cover-title p{
  margin:11px 0 0;
  color:#242225;
  font-size:18px !important;
  line-height:1.1 !important;
  font-weight:700;
}

.proposal-cover-footer{
  position:absolute !important;
  left:0 !important;
  bottom:0 !important;
  width:100% !important;
  height:48px !important;
  z-index:3;
  background:rgba(18,29,14,.74) !important;
  color:#ffffff !important;
  display:grid !important;
  grid-template-columns:1fr 1.36fr 1.26fr !important;
  align-items:center !important;
  padding:0 82px !important;
  column-gap:24px !important;
  box-sizing:border-box !important;
  font-size:15px !important;
  font-weight:800 !important;
  letter-spacing:-.01em;
}

.proposal-cover-footer div{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  white-space:nowrap;
}

.footer-icon{
  font-size:14.4px;
  line-height:1;
}

@media(max-width:980px){
  .proposal-letter-page{
    transform:scale(.72);
    transform-origin:top center;
    margin-bottom:-285px;
  }
}




/* === AJUSTE PORTADA RESUMEN: FONDO BLANCO, MÁRGENES Y SIN FOOTER MANUAL === */

.proposal-letter-page{
  background:#ffffff !important;
}

.proposal-cover-page{
  background:#ffffff !important;
}

.proposal-cover-logo{
  left:105px !important;
  top:95px !important;
  width:245px !important;
}

.proposal-cover-company{
  top:90px !important;
  right:105px !important;
  width:250px !important;
  text-align:right !important;
}

.proposal-cover-quote{
  top:245px !important;
  right:105px !important;
  width:205px !important;
}

.proposal-cover-date{
  top:300px !important;
  right:105px !important;
  width:205px !important;
  text-align:right !important;
}

.proposal-cover-title{
  top:445px !important;
  right:105px !important;
  width:445px !important;
  text-align:right !important;
}

.proposal-cover-bg{
  left:0 !important;
  bottom:0 !important;
  width:100% !important;
  height:43.5% !important;
  object-fit:cover !important;
  object-position:center bottom !important;
}

/* El footer manual queda desactivado porque la imagen ya contiene los datos de contacto */
.proposal-cover-footer{
  display:none !important;
}


/* === PORTADA 1CM MARGINS === */

.proposal-letter-page{
  padding:1cm !important;
  box-sizing:border-box !important;
  background:#ffffff !important;
}

.proposal-cover-logo{
  left:1cm !important;
  top:1cm !important;
}

.proposal-cover-company{
  right:1cm !important;
  top:1cm !important;
}

.proposal-cover-quote{
  right:1cm !important;
}

.proposal-cover-date{
  right:1cm !important;
}

.proposal-cover-title{
  right:1cm !important;
}

.proposal-cover-bg{
  left:1cm !important;
  width:calc(100% - 2cm) !important;
  bottom:1cm !important;
  height:42% !important;
}


/* === AJUSTE FINAL PORTADA RESUMEN === */

/* El margen de 1 cm aplica visualmente a textos/logos, no a la imagen inferior */
.proposal-letter-page{
  padding:0 !important;
  box-sizing:border-box !important;
  background:#ffffff !important;
}

.proposal-cover-page{
  background:#ffffff !important;
}

/* Imagen inferior: ancho completo y pegada al borde inferior */
.proposal-cover-bg{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100% !important;
  height:43.5% !important;
  object-fit:cover !important;
  object-position:center bottom !important;
  z-index:1 !important;
}

/* Elementos superiores con margen visual de 1 cm */
.proposal-cover-logo{
  left:1cm !important;
  top:1cm !important;
}

.proposal-cover-company{
  top:1cm !important;
  right:1cm !important;
  text-align:right !important;
}

/* Fecha arriba del número de cotización */
.proposal-cover-date{
  top:218px !important;
  right:1cm !important;
  width:230px !important;
  text-align:right !important;
}

.proposal-cover-date strong{
  display:none !important;
}

.proposal-cover-date span{
  display:block !important;
  margin:0 !important;
  font-size:14px !important;
  line-height:1.1 !important;
  font-weight:900 !important;
  letter-spacing:.02em !important;
  color:#242225 !important;
  text-transform:uppercase !important;
}

.proposal-cover-quote{
  top:245px !important;
  right:1cm !important;
  width:215px !important;
  height:45px !important;
}

.proposal-cover-title{
  right:1cm !important;
}


/* === AJUSTE PORTADA RESUMEN: 1.5CM, LOGO -15%, TEXTO === */

.proposal-cover-logo{
  left:1.5cm !important;
  top:1.5cm !important;
  width:208px !important; /* aprox. 15% menos */
}

.proposal-cover-company{
  top:1.5cm !important;
  right:1.5cm !important;
  text-align:right !important;
}

.proposal-cover-quote{
  right:1.5cm !important;
}

.proposal-cover-date{
  top:226px !important; /* un poco más cerca del número de cotización */
  right:1.5cm !important;
}

.proposal-cover-title{
  right:1.5cm !important;
}

.proposal-cover-title h1{
  text-transform:none !important;
}

.proposal-cover-title p{
  font-weight:400 !important;
  text-transform:none !important;
}

.proposal-cover-bg{
  left:0 !important;
  right:0 !important;
  width:100% !important;
  bottom:0 !important;
}


/* === FIX IMPRESIÓN / PDF: IMPRIMIR SOLO RESUMEN === */



/* Vista normal: evitar que la imagen se parta visualmente */
.proposal-cover-bg{
  break-inside:avoid;
}


/* === FINAL PRINT SCALE FIX === */

@media(max-width:980px){
  .proposal-letter-page{
    transform:none !important;
    margin-bottom:0 !important;
  }
}




/* === FIX BLEED IMAGEN INFERIOR PORTADA === */
/* La imagen se extiende ligeramente fuera del borde para eliminar espacios blancos en PDF/impresión. */

.proposal-cover-bg{
  left:-2mm !important;
  right:-2mm !important;
  bottom:-2mm !important;
  width:calc(100% + 4mm) !important;
  height:46% !important;
  object-fit:cover !important;
  object-position:center bottom !important;
  border-radius:0 !important;
}




/* === FIX FINAL: IMAGEN PEGADA ABAJO Y SIN ESQUINAS REDONDEADAS === */

.proposal-cover-bg,
#proposalCoverBg{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100% !important;
  height:46.5% !important;
  object-fit:cover !important;
  object-position:center bottom !important;
  border-radius:0 !important;
  clip-path:none !important;
  overflow:visible !important;
}

.proposal-cover-bg img,
#proposalCoverBg img{
  border-radius:0 !important;
}

.proposal-letter-page,
.proposal-cover-page{
  border-radius:0 !important;
  overflow:hidden !important;
}




/* === FIX DEFINITIVO PORTADA: SIN CLIP, SIN RADIUS, IMAGEN AL BORDE === */

.proposal-summary-card,
.proposal-summary-body,
.proposal-letter-page,
.proposal-cover-page{
  border-radius:0 !important;
  clip-path:none !important;
}

.proposal-letter-page,
.proposal-cover-page{
  overflow:hidden !important;
}

.proposal-cover-bg,
#proposalCoverBg{
  position:absolute !important;
  left:-3mm !important;
  right:auto !important;
  bottom:-3mm !important;
  width:calc(100% + 6mm) !important;
  height:126mm !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center bottom !important;
  border-radius:0 !important;
  clip-path:inset(0 0 0 0) !important;
  display:block !important;
}




/* === FIX FINAL: CONSERVAR FOOTER DE IMAGEN SIN CORTAR ABAJO === */
/* Mantiene bleed lateral para eliminar esquinas/bordes, pero sin empujar la imagen fuera del borde inferior. */

.proposal-cover-bg,
#proposalCoverBg{
  left:-3mm !important;
  right:auto !important;
  bottom:0 !important;
  width:calc(100% + 6mm) !important;
  height:124mm !important;
  object-fit:cover !important;
  object-position:center bottom !important;
  border-radius:0 !important;
  clip-path:inset(0 0 0 0) !important;
}




/* === SOLARPRO BRAND TYPOGRAPHY FINAL === */

@font-face{
  font-family:'SolarProAvantBold';
  src:url('./assets/fonts/ITCAvantGarde-Bold.otf') format('opentype');
}

@font-face{
  font-family:'SolarProAvantMedium';
  src:url('./assets/fonts/ITCAvantGarde-Medium.otf') format('opentype');
}

@font-face{
  font-family:'SolarProAvantDemiCondensed';
  src:url('./assets/fonts/ITCAvantGarde-DemiCondensed.otf') format('opentype');
}

.proposal-cover-company{
  font-family:'SolarProAvantMedium', sans-serif !important;
}

.proposal-cover-company strong{
  font-family:'SolarProAvantBold', sans-serif !important;
}

.proposal-cover-date span{
  font-family:'SolarProAvantMedium', sans-serif !important;
}

.proposal-cover-quote{
  font-family:'SolarProAvantBold', sans-serif !important;
}

.proposal-cover-title h1{
  font-family:'SolarProAvantDemiCondensed', sans-serif !important;
  letter-spacing:-0.02em !important;
}

.proposal-cover-title h2{
  font-family:'SolarProAvantBold', sans-serif !important;
}

.proposal-cover-title p{
  font-family:'SolarProAvantMedium', sans-serif !important;
}


/* === FONT SWAP FINAL: nombre proyecto + potencia DC === */

@font-face{
  font-family:'SolarProAvantMediumAlt';
  src:url('./assets/fonts/ITCAvantGarde-Medium-Alt.otf') format('opentype');
}

.proposal-cover-title h1{
  font-family:'SolarProAvantMediumAlt', sans-serif !important;
  letter-spacing:-0.02em !important;
}

.proposal-cover-title h2{
  font-family:'SolarProAvantMediumAlt', sans-serif !important;
  letter-spacing:-0.01em !important;
}


/* === AJUSTE FINAL CTZ + TITULO === */

/* Número de cotización usa misma fuente nueva */
.proposal-cover-quote{
  font-family:'SolarProAvantMediumAlt', sans-serif !important;
  height:40.5px !important; /* ~10% menos que 45px */
  line-height:40.5px !important;
}

/* Reducir nombre del proyecto */
.proposal-cover-title h1{
  font-family:'SolarProAvantMediumAlt', sans-serif !important;
  font-size:37px !important; /* antes ~39px */
  line-height:1.02 !important;
}


/* === AJUSTE: CTZ FUENTE UBICACIÓN + RECTÁNGULO + TEXTO ARRIBA === */

/* Número de cotización usa la misma fuente que ubicación */
.proposal-cover-quote{
  font-family:'SolarProAvantMedium', sans-serif !important;
  height:36.5px !important; /* 10% menos sobre el ajuste anterior */
  line-height:36.5px !important;
  align-items:center !important;
}

/* Mantener fecha cercana al rectángulo */
.proposal-cover-date{
  top:228px !important;
}

/* Reubicar el bloque de proyecto/potencia/ubicación aprox. 3 líneas arriba */
.proposal-cover-title{
  top:388px !important;
}

/* Ubicación mantiene la misma fuente/base sin negrita */
.proposal-cover-title p{
  font-family:'SolarProAvantMedium', sans-serif !important;
  font-weight:400 !important;
}


/* === AJUSTE SOLICITADO: CTZ ARIAL MEDIUM + BLOQUE PROYECTO MÁS ARRIBA === */

.proposal-cover-quote,
#proposalCoverQuote{
  font-family: Arial, Helvetica, sans-serif !important;
  font-weight:500 !important;
}

/* Subir nombre del proyecto, potencia y ubicación otras 3 líneas aprox. */
.proposal-cover-title{
  top:332px !important;
}




/* === FIX REAL CTZ FONT === */
/* El problema era que el texto vive dentro del span #proposalCoverQuote */

.proposal-cover-quote{
  font-family: Arial, Helvetica, sans-serif !important;
  font-weight: 600 !important;
}

.proposal-cover-quote span,
.proposal-cover-quote #proposalCoverQuote,
#proposalCoverQuote{
  font-family: Arial, Helvetica, sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
}




/* === ICONO DE UBICACIÓN EN PORTADA === */

.proposal-cover-location{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:7px !important;
  width:auto !important;
  max-width:100% !important;
  margin-left:auto !important;
  white-space:normal !important;
  text-align:right !important;
}

.proposal-location-icon{
  height:1em !important;
  width:auto !important;
  display:inline-block !important;
  flex:0 0 auto !important;
  object-fit:contain !important;
}

#proposalCoverLocationText{
  display:inline !important;
  min-width:0 !important;
}


/* === HOJA 2 RESUMEN === */
.proposal-summary-page-2{
  background:#fff !important;
  position:relative;
}

.summary-page2-content{
  position:absolute;
  inset:0;
  padding:1.5cm;
}

.summary-page2-top-right{
  position:absolute;
  top:1.2cm;
  right:1.5cm;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}

.summary-page2-page{
  font-size:12px;
  font-weight:600;
}

.summary-page2-quote{
  font-size:14.4px;
  font-weight:700;
}

.summary-page2-footer{
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
}

.summary-page2-footer img{
  width:100%;
  display:block;
  border-radius:0;
}




/* === HOJA 2 DENTRO DE PESTAÑA RESUMEN === */

.proposal-summary-page-2{
  background:#ffffff !important;
  position:relative !important;
  margin-top:18px !important;
}

.summary-page2-main{
  position:absolute;
  inset:0;
  padding:1.5cm;
  z-index:2;
}

.summary-page2-top{
  position:absolute;
  top:1.25cm;
  right:1.5cm;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  color:#242225;
}

.summary-page2-page{
  font-size:12px;
  font-family:Arial, Helvetica, sans-serif;
  font-weight:600;
}

.summary-page2-quote{
  font-size:14.4px;
  font-family:Arial, Helvetica, sans-serif;
  font-weight:700;
}

.summary-page2-footer-img{
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:auto;
  display:block;
  border-radius:0 !important;
  z-index:1;
}




/* === HOJA 2 FIX: ENCABEZADO HTML LIMPIO + SOLO FOOTER COMO IMAGEN === */

.proposal-summary-page-2{
  background:#ffffff !important;
  position:relative !important;
  margin-top:18px !important;
  overflow:hidden !important;
}

.summary-page2-header{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:1.15cm !important;
  height:70px !important;
  z-index:3 !important;
}

.summary-page2-logo{
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  width:128px !important;
  height:auto !important;
  display:block !important;
}

.summary-page2-line{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:58px !important;
  height:0.5px !important;
  background:#1d1d1f !important;
}

.summary-page2-meta{
  position:absolute !important;
  right:0 !important;
  top:5px !important;
  width:210px !important;
  text-align:right !important;
}

.summary-page2-page{
  display:block !important;
  margin:0 0 7px 0 !important;
  color:#8e8e93 !important;
  font-family:Arial, Helvetica, sans-serif !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:400 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}

.summary-page2-quote-box{
  width:205px !important;
  height:34px !important;
  margin-left:auto !important;
  background:#1d1d1f !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  padding-right:14px !important;
  box-sizing:border-box !important;
  border-radius:0 0 0 4px !important;
}

.summary-page2-quote{
  color:#ffffff !important;
  font-family:Arial, Helvetica, sans-serif !important;
  font-size:18px !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:.04em !important;
}

.summary-page2-body{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:3.8cm !important;
  bottom:2.4cm !important;
  z-index:2 !important;
}

.summary-page2-footer-img{
  position:absolute !important;
  left:0 !important;
  bottom:0 !important;
  width:100% !important;
  height:auto !important;
  display:block !important;
  border-radius:0 !important;
  z-index:1 !important;
}




/* === REFINAMIENTO HOJA 2: LOGO, LINEA, Página Y CTZ === */

.summary-page2-logo{
  top:18px !important; /* baja logo para acercarlo a la línea */
  width:142px !important;
}

.summary-page2-line{
  top:62px !important;
}

.summary-page2-meta{
  top:36px !important; /* página pegada arriba de la línea */
  right:0 !important;
  width:185px !important;
}

.summary-page2-page{
  font-size:11px !important;
  font-weight:400 !important;
  letter-spacing:.08em !important;
  line-height:1 !important;
  margin:0 !important;
  padding:0 !important;
  color:#8e8e93 !important;
  text-transform:uppercase !important;
}

.summary-page2-quote-box{
  position:absolute !important;
  top:27px !important;
  right:0 !important;
  width:184.5px !important;
  height:30px !important;
  padding-right:12px !important;
  border-radius:0 0 0 4px !important;
}

.summary-page2-quote{
  font-size:17px !important;
  line-height:1 !important;
  letter-spacing:.04em !important;
}




/* === FUENTE PARA NÚMERO DE Página === */

@font-face{
  font-family:'SolarProAvantBook';
  src:url('./assets/fonts/ITCAvantGarde-Book.otf') format('opentype');
  font-weight:400;
  font-style:normal;
}

.summary-page2-page{
  font-family:'SolarProAvantBook', sans-serif !important;
  font-weight:400 !important;
  letter-spacing:-0.01em !important;
}




/* === REDUCCIÓN 20% CTZ HOJA 2 === */

.summary-page2-quote-box{
  width:147.6px !important;   /* 20% menos desde 184.5 */
  height:25.9px !important;   /* 20% menos desde 32.4 */
  padding-right:10px !important;
}

.summary-page2-quote{
  font-size:18.7px !important; /* 20% menos desde 23.4 */
  line-height:1 !important;
}




/* === AJUSTE FINAL NÚMERO DE Página === */

.summary-page2-meta{
  right:8px !important; /* mover aprox 1 carácter a la izquierda */
}

.summary-page2-page{
  font-size:14px !important; /* dos niveles menos */
  margin-top:6px !important; /* baja más cerca de la línea */
  line-height:1 !important;
}




/* === CORRECCIÓN: mover solo número de página === */

/* devolver rectángulo CTZ a su posición anterior */
.summary-page2-quote-box{
  right:0 !important;
  top:27px !important;
}

/* mover SOLO número de página a la izquierda y más abajo */
.summary-page2-page{
  position:relative !important;
  left:-12px !important;
  top:6px !important;
}




/* === FIX: CTZ alineado al final de línea negra === */

.summary-page2-meta{
  width:220px !important;
  right:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
}

/* número de página mantiene su ajuste */
.summary-page2-page{
  position:relative !important;
  left:-12px !important;
  top:6px !important;
}

/* rectángulo perfectamente alineado al extremo derecho */
.summary-page2-quote-box{
  position:relative !important;
  right:0 !important;
  margin-left:auto !important;
  align-self:flex-end !important;
}




/* === AJUSTE FINAL: CTZ pegado debajo de la línea negra === */

.summary-page2-quote-box{
  margin-top:-10px !important;
}




/* === CTZ completamente pegado a la línea negra === */

.summary-page2-quote-box{
  margin-top:-18px !important;
}




/* === AJUSTE FINAL FINO: eliminar últimos píxeles de separación === */

.summary-page2-quote-box{
  margin-top:-22px !important;
}




/* === AJUSTE LOGO HOJA 2 === */

.summary-page2-logo{
  width:127.8px !important; /* 10% menos */
  top:24px !important;      /* un poco más abajo hacia la línea */
}




/* === CONTENIDO HOJA 2 === */

.summary-page2-body{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:4.3cm !important;
  bottom:2.8cm !important;
  display:grid !important;
  grid-template-columns: 42% 58%;
  gap:28px;
}

.summary-page2-left-panel{
  border:1px solid #dcdcdc;
  border-radius:12px;
  padding:22px;
  background:#fff;
}

.summary-page2-left-panel h3{
  margin:0 0 18px 0;
  font-size:12.8px;
  font-weight:700;
  letter-spacing:.04em;
}

.summary-field{
  margin-bottom:18px;
}

.summary-field label{
  display:block;
  font-size:11px;
  color:#666;
  margin-bottom:4px;
  text-transform: none;
}

.summary-field span{
  display:block;
  font-size:15px;
  font-weight:600;
  color:#242225;
}

.summary-page2-image-slot{
  display:flex;
  align-items:stretch;
}

.summary-image-placeholder{
  width:100%;
  border:1px dashed #c9c9c9;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#888;
  font-size:14px;
  background:#fafafa;
}


/* === NUEVA ESTRUCTURA HOJA 2 === */

.summary-page2-body{
  top:4.2cm !important;
  bottom:2.4cm !important;
  display:flex !important;
  flex-direction:column !important;
  gap:20px;
}

.summary-top-row{
  display:grid;
  grid-template-columns:28% 72%;
  gap:20px;
  min-height:22%;
}

.system-proposal-section{
  flex:1;
}

.system-proposal-title{
  display:inline-block;
  background:#e4d800;
  padding:6px 16px;
  border-radius:8px;
  font-weight:700;
  font-size:15px;
  margin-bottom:14px;
}

.system-grid{
  display:grid;
  grid-template-columns:58% 42%;
  gap:20px;
}

.system-block{
  background:#ffffff;
  border-radius:10px;
  padding:14px;
  margin-bottom:14px;
}

.system-block h4{
  margin:0 0 10px;
  font-size:13px;
}

.system-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
  margin-bottom:8px;
}

.equipment-placeholder{
  height:100%;
  min-height:260px;
  border:1px dashed #cfcfcf;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#888;
}


/* === HOJA 2: DATOS GENERALES + IMAGEN COMPARTEN ANCHO === */

.summary-top-row{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:18px !important;
  width:100% !important;
  min-height:0 !important;
  height:24% !important;
}

.summary-page2-left-panel,
.summary-page2-image-slot{
  width:100% !important;
  min-width:0 !important;
}

.summary-page2-left-panel{
  padding:16px 18px !important;
  border-radius:10px !important;
}

.summary-page2-left-panel h3{
  font-size:14px !important;
  margin-bottom:12px !important;
}

.summary-field{
  margin-bottom:10px !important;
}

.summary-field label{
  font-size:9.5px !important;
}

.summary-field span{
  font-size:12.5px !important;
  line-height:1.25 !important;
}

.summary-image-placeholder{
  min-height:100% !important;
  height:100% !important;
  border-radius:10px !important;
}

.system-proposal-section{
  margin-top:4px !important;
}


/* === AJUSTE VISUAL VALORES CONECTADOS HOJA 2 === */
.system-row strong,
.summary-field span{
  white-space:nowrap;
}


/* === HOJA 2: ASEGURAR VISIBILIDAD DE DATOS CONECTADOS === */
.summary-field span,
.system-row strong{
  color:#242225 !important;
  opacity:1 !important;
}


/* === GRÁFICA VISIBLE CONSUMO / PRODUCCIÓN HOJA 2 === */

.summary-page2-chart-block{
  display:block !important;
  width:100% !important;
  margin-top:12px !important;
  border:1px solid #e5e7eb !important;
  border-radius:12px !important;
  background:#ffffff !important;
  padding:9px 12px 7px !important;
  box-sizing:border-box !important;
}

.summary-page2-chart-title{
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:.045em !important;
  color:#242225 !important;
  margin-bottom:2px !important;
}

.summary-page2-energy-chart{
  display:block !important;
  width:100% !important;
  height:145px !important;
  min-height:145px !important;
  overflow:visible !important;
}

.summary-page2-chart-legend{
  display:flex !important;
  justify-content:center !important;
  gap:18px !important;
  font-size:9.5px !important;
  font-weight:700 !important;
  color:#374151 !important;
  margin-top:2px !important;
}

.summary-page2-chart-legend span{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
}

.summary-page2-chart-legend i{
  width:9px !important;
  height:9px !important;
  border-radius:3px !important;
  display:inline-block !important;
}

.summary-legend-generation{ background:#36b978 !important; }
.summary-legend-consumption{ background:#ff8a00 !important; }

.summary-chart-grid{
  stroke:#e5e7eb !important;
  stroke-width:1 !important;
  stroke-dasharray:3 7 !important;
}

.summary-chart-base{
  stroke:#9ca3af !important;
  stroke-width:1.1 !important;
}

.summary-chart-axis{
  fill:#6b7280 !important;
  font-size:9px !important;
  font-family:Arial, Helvetica, sans-serif !important;
}

.summary-chart-month{
  fill:#374151 !important;
  font-size:9.5px !important;
  font-weight:700 !important;
  font-family:Arial, Helvetica, sans-serif !important;
}

.summary-bar-generation{
  fill:url(#summaryGenGradientVisible) !important;
}

.summary-bar-consumption{
  fill:url(#summaryConGradientVisible) !important;
}


/* === HOJA 2 CLIENT-FRIENDLY REDESIGN === */
.summary-page2-body{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:4.2cm !important;
  bottom:2.2cm !important;
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
}

.summary-chip{
  display:inline-block;
  background:#e6d300;
  color:#111;
  font-size:11px;
  font-weight:800;
  padding:6px 12px;
  border-radius:999px;
  letter-spacing:.04em;
  margin-bottom:12px;
}
.summary-chip.dark{
  background:#111;
  color:#fff;
}

.summary-hero-grid{
  display:grid;
  grid-template-columns:38% 62%;
  gap:14px;
  min-height:170px;
}

.summary-hero-card, .summary-project-visual, .summary-energy-section, .metric-card, .summary-bottom-card{
  background:#fff;
  border:1px solid #ececec;
  border-radius:14px;
  box-shadow:0 2px 10px rgba(0,0,0,.04);
}

.summary-hero-card{
  padding:18px;
}

.summary-kv{
  margin-bottom:12px;
}
.summary-kv label{
  display:block;
  font-size:10px;
  color:#666;
  text-transform: none;
}
.summary-kv span{
  display:block;
  font-size:14px;
  font-weight:700;
  color:#111;
}

.summary-project-visual{
  overflow:hidden;
}
.summary-image-placeholder{
  width:100%;
  height:100%;
  min-height:170px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#f7f7f7,#ececec);
  color:#777;
  font-weight:600;
}

.summary-metrics-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}

.metric-card{
  padding:16px;
  text-align:center;
}
.metric-card small{
  display:block;
  font-size:10px;
  color:#666;
  margin-bottom:8px;
}
.metric-card strong{
  font-size:20px;
  color:#111;
}

.summary-energy-section{
  padding:14px;
  flex:1;
}
.summary-page2-energy-chart{
  width:100%;
  height:180px;
  display:block;
}

.summary-bottom-strip{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.summary-bottom-card{
  padding:14px;
  text-align:center;
}
.summary-bottom-card small{
  display:block;
  font-size:10px;
  color:#666;
}
.summary-bottom-card strong{
  font-size:14.4px;
  color:#111;
}


/* DASHBOARD PRO HOJA 2 */

.summary-page2-body{
 position:absolute!important;
 left:1.5cm!important;
 right:1.5cm!important;
 top:4.2cm!important;
 bottom:2.2cm!important;
 display:flex!important;
 flex-direction:column!important;
 gap:14px!important;
}

.dashboard-top{
 display:grid;
 grid-template-columns:2fr 1fr 1fr;
 gap:14px;
}

.project-panel,.hero-metric,.chart-panel,.insights-panel,.render-panel{
 background:#fff;
 border:1px solid #ececec;
 border-radius:18px;
 box-shadow:0 6px 20px rgba(0,0,0,.05);
}

.project-panel{
 padding:20px;
}
.dash-label{
 font-size:10px;
 font-weight:800;
 letter-spacing:.08em;
 color:#6b7280;
 margin-bottom:8px;
}
.project-panel h2{
 margin:0 0 14px 0;
 font-size:26px;
 font-weight:800;
 color:#111827;
}
.project-meta{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:10px;
}
.project-meta span{
 display:block;
 font-size:10px;
 color:#6b7280;
 text-transform: none;
}
.project-meta strong{
 font-size:14px;
 color:#111827;
}

.hero-metric{
 padding:20px;
 display:flex;
 flex-direction:column;
 justify-content:center;
}
.hero-metric span{
 font-size:11px;
 color:#6b7280;
 text-transform: none;
}
.hero-metric strong{
 font-size:28px;
 font-weight:900;
 margin-top:8px;
}
.hero-metric.solar{background:linear-gradient(135deg,#f8fff6,#ebfff3);}
.hero-metric.generation{background:linear-gradient(135deg,#fff8ef,#fff0db);}

.dashboard-middle{
 display:grid;
 grid-template-columns:2fr 1fr;
 gap:14px;
 flex:1;
}

.chart-panel{
 padding:16px;
}
.panel-title{
 font-size:11px;
 font-weight:800;
 letter-spacing:.06em;
 color:#6b7280;
 margin-bottom:10px;
}
.summary-page2-energy-chart{
 width:100%;
 height:220px;
 display:block;
}
.chart-legend-pro{
 display:flex;
 gap:18px;
 justify-content:center;
 font-size:10px;
 font-weight:700;
}
.chart-legend-pro i{
 width:10px;
 height:10px;
 border-radius:3px;
 display:inline-block;
 margin-right:6px;
}
.legend-gen{background:#1daa6f;}
.legend-con{background:#ff8a00;}

.insights-panel{
 padding:14px;
 display:grid;
 grid-template-columns:1fr;
 gap:10px;
}
.mini-stat{
 padding:14px;
 border-radius:14px;
 background:#f8fafc;
}
.mini-stat.dark{
 background:#111827;
 color:#fff;
}
.mini-stat span{
 display:block;
 font-size:10px;
 text-transform: none;
 color:inherit;
 opacity:.7;
}
.mini-stat strong{
 font-size:22px;
 font-weight:800;
}

.dashboard-bottom{
 height:150px;
}
.render-panel{
 height:100%;
 padding:14px;
}
.summary-image-placeholder{
 height:95px;
 border-radius:14px;
 background:linear-gradient(135deg,#f3f4f6,#e5e7eb);
 display:flex;
 align-items:center;
 justify-content:center;
 font-weight:600;
 color:#6b7280;
}


/* STARLINK STYLE */

.starlink-dashboard{
 position:absolute!important;
 left:1.5cm!important;
 right:1.5cm!important;
 top:4.2cm!important;
 bottom:2.2cm!important;
 display:flex!important;
 flex-direction:column!important;
 gap:18px!important;
}

.hero-banner{
 background:linear-gradient(135deg,#060b14,#101828,#172554);
 border-radius:28px;
 padding:28px;
 display:flex;
 justify-content:space-between;
 align-items:center;
 color:white;
 position:relative;
 overflow:hidden;
}

.hero-banner:after{
 content:'';
 position:absolute;
 width:320px;
 height:320px;
 right:-120px;
 top:-120px;
 background:radial-gradient(circle,#1daa6f55,transparent 60%);
}

.hero-left h1{
 font-size:34px;
 font-weight:800;
 margin:8px 0 16px;
 letter-spacing:-.03em;
}

.eyebrow{
 font-size:11px;
 letter-spacing:.18em;
 opacity:.7;
 font-weight:700;
}

.hero-subdata{
 display:flex;
 gap:40px;
}

.hero-subdata label{
 display:block;
 font-size:10px;
 text-transform: none;
 opacity:.7;
}

.hero-subdata strong{
 font-size:12.8px;
}

.hero-orb{
 width:140px;
 height:140px;
 border-radius:50%;
 background:radial-gradient(circle,#1daa6f,#0b1220);
 filter:blur(8px);
}

.floating-metrics{
 display:grid;
 grid-template-columns:repeat(4,1fr);
 gap:14px;
}

.metric-glass{
 background:rgba(255,255,255,.7);
 backdrop-filter:blur(18px);
 border:1px solid rgba(255,255,255,.6);
 border-radius:24px;
 padding:22px;
 box-shadow:0 12px 35px rgba(0,0,0,.06);
}

.metric-glass.dark{
 background:#0f172a;
 color:white;
}

.metric-glass span{
 display:block;
 font-size:10px;
 text-transform: none;
 opacity:.65;
}

.metric-glass strong{
 font-size:28px;
 font-weight:800;
 margin-top:10px;
 display:block;
}

.chart-master-card{
 background:white;
 border-radius:28px;
 padding:24px;
 box-shadow:0 15px 45px rgba(0,0,0,.06);
}

.chart-header{
 display:flex;
 justify-content:space-between;
 align-items:flex-start;
 margin-bottom:12px;
}

.chart-header h3{
 font-size:24px;
 margin:4px 0 0;
}

.ratio-pill{
 background:#f3f4f6;
 padding:12px 18px;
 border-radius:999px;
 font-size:11px;
 text-transform: none;
}

.ratio-pill strong{
 display:block;
 font-size:22px;
 color:#111827;
 margin-top:4px;
}

.summary-page2-energy-chart{
 width:100%;
 height:220px;
}

.chart-legend-minimal{
 display:flex;
 justify-content:center;
 gap:24px;
 margin-top:10px;
 font-size:11px;
 font-weight:600;
}

.chart-legend-minimal i{
 width:10px;
 height:10px;
 border-radius:50%;
 display:inline-block;
 margin-right:6px;
}

.legend-gen{background:#1daa6f;}
.legend-con{background:#ff8a00;}

.bottom-visual-card{
 display:grid;
 grid-template-columns:40% 60%;
 gap:18px;
 background:#ffffff;
 border-radius:28px;
 padding:22px;
 box-shadow:0 15px 40px rgba(0,0,0,.05);
}

.bottom-copy h3{
 font-size:24px;
 margin:8px 0;
}

.bottom-copy p{
 font-size:13px;
 color:#6b7280;
 line-height:1.6;
}

.savings-chip{
 margin-top:18px;
 background:#0f172a;
 color:white;
 padding:14px 18px;
 border-radius:18px;
 display:inline-block;
}

.savings-chip strong{
 display:block;
 font-size:22px;
 margin-top:6px;
}

.system-render-placeholder{
 border-radius:22px;
 background:linear-gradient(135deg,#111827,#374151);
 color:white;
 display:flex;
 align-items:center;
 justify-content:center;
 font-weight:600;
 min-height:180px;
}


/* EQUIPMENT CARD */

.equipment-spec-card{
 background:#ffffff;
 border-radius:28px;
 padding:22px;
 box-shadow:0 15px 40px rgba(0,0,0,.05);
}

.equipment-header h3{
 margin:6px 0 0;
 font-size:24px;
}

.equipment-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:16px;
 margin-top:18px;
}

.equipment-item{
 background:#f8fafc;
 border-radius:20px;
 padding:20px;
}

.equipment-item span{
 display:block;
 font-size:11px;
 text-transform: none;
 color:#6b7280;
}

.equipment-item strong{
 display:block;
 font-size:34px;
 font-weight:800;
 color:#111827;
 margin-top:8px;
}

.equipment-item small{
 display:block;
 margin-top:8px;
 font-size:12px;
 color:#6b7280;
}


/* OPTION B PREMIUM */

.premium-layout-b{
 position:absolute!important;
 left:1.5cm!important;
 right:1.5cm!important;
 top:4.2cm!important;
 bottom:2.1cm!important;
 display:flex!important;
 flex-direction:column!important;
 gap:14px!important;
}

.premium-header-band{
 display:grid;
 grid-template-columns:2fr 1fr;
 gap:14px;
}

.premium-project-block,
.premium-main-metric,
.premium-chart-card,
.compact-metric,
.equipment-visual-card,
.system-render-card{
 background:#fff;
 border-radius:24px;
 box-shadow:0 10px 30px rgba(0,0,0,.05);
 padding:20px;
}

.premium-label{
 font-size:10px;
 letter-spacing:.15em;
 text-transform: none;
 color:#6b7280;
 font-weight:700;
}

.premium-project-block h1{
 font-size:30px;
 margin:10px 0 6px;
 font-weight:800;
}

.premium-project-block p{
 color:#6b7280;
 font-size:14px;
}

.premium-main-metric{
 background:linear-gradient(135deg,#0f172a,#1e293b);
 color:white;
 display:flex;
 flex-direction:column;
 justify-content:center;
}

.premium-main-metric strong{
 font-size:34px;
 margin-top:10px;
}

.premium-middle-grid{
 display:grid;
 grid-template-columns:2fr .8fr;
 gap:14px;
 flex:1;
}

.premium-chart-card{
 padding:18px;
}

.premium-card-header{
 display:flex;
 justify-content:space-between;
 margin-bottom:10px;
 font-size:11px;
 color:#6b7280;
}

.premium-card-header strong{
 font-size:22px;
 color:#111827;
}

.summary-page2-energy-chart{
 width:100%;
 height:180px;
}

.premium-side-stack{
 display:flex;
 flex-direction:column;
 gap:12px;
}

.compact-metric{
 flex:1;
 display:flex;
 flex-direction:column;
 justify-content:center;
}

.compact-metric.dark{
 background:#111827;
 color:white;
}

.compact-metric strong{
 font-size:24px;
 margin-top:8px;
}

.premium-equipment-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:14px;
 height:180px;
}

.equipment-split{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:14px;
 margin-top:18px;
}

.equipment-split h4{
 font-size:34px;
 margin:0;
}

.equipment-split p{
 margin:4px 0;
 font-weight:600;
}

.equipment-split small{
 color:#6b7280;
 font-size:12px;
}

.system-render-card .summary-image-placeholder{
 height:95px;
 border-radius:18px;
 background:linear-gradient(135deg,#111827,#374151);
 color:white;
 display:flex;
 align-items:center;
 justify-content:center;
 margin-top:18px;
 font-weight:600;
}


/* FINAL CLIENT VERSION */

.premium-layout-final{
 position:absolute!important;
 left:1.5cm!important;
 right:1.5cm!important;
 top:4.2cm!important;
 bottom:2.1cm!important;
 display:flex!important;
 flex-direction:column!important;
 gap:14px!important;
}

.label-final{
 font-size:10px;
 text-transform: none;
 letter-spacing:.14em;
 color:#6b7280;
 font-weight:700;
}

.premium-top-band{
 display:grid;
 grid-template-columns:2fr 1fr 1fr;
 gap:14px;
}

.project-card-final,
.hero-kpi-final,
.chart-main-final,
.equipment-card-final,
.render-card-final,
.small-kpi-final{
 background:#fff;
 border-radius:24px;
 box-shadow:0 10px 30px rgba(0,0,0,.05);
 padding:18px;
}

.project-card-final h1{
 font-size:28px;
 margin:10px 0 6px;
 font-weight:800;
}

.project-card-final p{
 color:#6b7280;
 font-size:14px;
}

.hero-kpi-final{
 display:flex;
 flex-direction:column;
 justify-content:center;
}

.hero-kpi-final.dark{
 background:#0f172a;
 color:white;
}

.hero-kpi-final.light{
 background:linear-gradient(135deg,#f8fff6,#eefbf3);
}

.hero-kpi-final strong{
 font-size:28px;
 margin-top:10px;
}

.chart-main-final{
 flex:1;
 padding:20px;
}

.chart-header-final{
 display:flex;
 justify-content:space-between;
 align-items:flex-start;
 margin-bottom:12px;
}

.chart-header-final h3{
 font-size:24px;
 margin:6px 0 0;
}

.coverage-pill-final{
 background:#111827;
 color:white;
 border-radius:999px;
 padding:12px 18px;
 font-size:11px;
}

.coverage-pill-final strong{
 display:block;
 font-size:22px;
 margin-top:6px;
}

.large-chart{
 width:100%;
 height:240px!important;
}

.bottom-grid-final{
 display:grid;
 grid-template-columns:1.2fr .8fr 1.3fr;
 gap:14px;
 height:180px;
}

.equipment-row-final{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:14px;
 margin-top:18px;
}

.equipment-row-final h4{
 font-size:32px;
 margin:0;
}

.equipment-row-final p{
 margin:4px 0;
 font-weight:600;
}

.equipment-row-final small{
 color:#6b7280;
 font-size:12px;
}

.metrics-stack-final{
 display:flex;
 flex-direction:column;
 gap:10px;
}

.small-kpi-final{
 flex:1;
}

.small-kpi-final.dark{
 background:#111827;
 color:white;
}

.small-kpi-final strong{
 display:block;
 font-size:22px;
 margin-top:8px;
}

.render-card-final .summary-image-placeholder{
 height:105px;
 border-radius:18px;
 background:linear-gradient(135deg,#111827,#374151);
 color:white;
 display:flex;
 align-items:center;
 justify-content:center;
 margin-top:16px;
}


/* ===== FINAL LAYOUT FIX (NO OVERFLOW) ===== */

.premium-layout-final{
    position:absolute !important;
    left:1.5cm !important;
    right:1.5cm !important;
    top:4.15cm !important;
    bottom:2.15cm !important;
    display:grid !important;
    grid-template-rows:
        120px   /* top metrics */
        290px   /* chart */
        170px;  /* bottom row */
    gap:12px !important;
    overflow:hidden !important;
}

.premium-top-band{
    display:grid !important;
    grid-template-columns:1.7fr .9fr .9fr !important;
    gap:12px !important;
    height:120px !important;
}

.project-card-final,
.hero-kpi-final,
.chart-main-final,
.equipment-card-final,
.render-card-final,
.small-kpi-final{
    padding:16px !important;
    border-radius:20px !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
}

.project-card-final h1{
    font-size:22px !important;
    line-height:1.05 !important;
    margin:8px 0 4px !important;
}

.project-card-final p{
    font-size:12px !important;
}

.hero-kpi-final strong{
    font-size:22px !important;
    line-height:1.05 !important;
}

.chart-main-final{
    height:290px !important;
    padding:16px !important;
}

.chart-header-final{
    margin-bottom:8px !important;
}

.chart-header-final h3{
    font-size:20px !important;
    margin:4px 0 0 !important;
}

.coverage-pill-final{
    padding:10px 14px !important;
}

.coverage-pill-final strong{
    font-size:18px !important;
}

.large-chart{
    width:100% !important;
    height:175px !important;
    min-height:175px !important;
    max-height:175px !important;
}

.chart-legend-minimal{
    margin-top:6px !important;
    font-size:10px !important;
}

.bottom-grid-final{
    display:grid !important;
    grid-template-columns:1.15fr .75fr 1.1fr !important;
    gap:12px !important;
    height:170px !important;
}

.equipment-row-final{
    margin-top:12px !important;
    gap:10px !important;
}

.equipment-row-final h4{
    font-size:24px !important;
}

.equipment-row-final p{
    font-size:12px !important;
    margin:2px 0 !important;
}

.equipment-row-final small{
    font-size:10px !important;
    line-height:1.2 !important;
}

.metrics-stack-final{
    gap:8px !important;
    height:100% !important;
}

.small-kpi-final{
    padding:12px !important;
}

.small-kpi-final strong{
    font-size:18px !important;
    margin-top:6px !important;
}

.small-kpi-final span{
    font-size:10px !important;
}

.render-card-final{
    height:170px !important;
}

.render-card-final .summary-image-placeholder{
    height:82px !important;
    margin-top:10px !important;
    font-size:12px !important;
}

.label-final{
    font-size:9px !important;
}

/* hard stop */
.summary-page2-body *{
    max-width:100%;
}



/* === HOJA 2 EDITORIAL PREMIUM FINAL === */

.editorial-page2{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:4.15cm !important;
  bottom:2.15cm !important;
  display:grid !important;
  grid-template-rows: 155px 1fr 155px !important;
  gap:16px !important;
  overflow:hidden !important;
  background:#ffffff !important;
}

.editorial-page2 section{
  box-sizing:border-box !important;
}

.editorial-top{
  display:grid !important;
  grid-template-columns: 1.45fr 1fr !important;
  gap:16px !important;
}

.editorial-project{
  background:linear-gradient(135deg,#0b1220,#111827) !important;
  color:white !important;
  border-radius:26px !important;
  padding:24px 26px !important;
  overflow:hidden !important;
  box-shadow:0 16px 35px rgba(15,23,42,.14) !important;
}

.editorial-project span,
.editorial-energy-pair span,
.editorial-chart-head span,
.editorial-equipment > span,
.editorial-kpis span,
.editorial-coverage span{
  display:block !important;
  font-size:9.5px !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  opacity:.68 !important;
}

.editorial-project h1{
  margin:10px 0 8px !important;
  font-size:28px !important;
  line-height:1.02 !important;
  letter-spacing:-.035em !important;
  font-weight:900 !important;
}

.editorial-project p{
  margin:0 !important;
  font-size:12.35px !important;
  line-height:1.25 !important;
  opacity:.82 !important;
  font-weight:600 !important;
}

.editorial-energy-pair{
  display:grid !important;
  grid-template-rows:1fr 1fr !important;
  gap:12px !important;
}

.editorial-energy-pair div{
  background:#f8fafc !important;
  border:1px solid #e5e7eb !important;
  border-radius:16px !important;
  padding:18px 20px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.editorial-energy-pair strong{
  display:block !important;
  margin-top:8px !important;
  font-size:25px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:-.025em !important;
  color:#111827 !important;
}

.editorial-chart{
  border:1px solid #e5e7eb !important;
  border-radius:30px !important;
  padding:22px 24px 16px !important;
  background:#ffffff !important;
  box-shadow:0 18px 45px rgba(15,23,42,.08) !important;
  overflow:hidden !important;
}

.editorial-chart-head{
  display:flex !important;
  justify-content:space-between !important;
  align-items:flex-start !important;
  gap:20px !important;
  margin-bottom:6px !important;
}

.editorial-chart-head h2{
  margin:5px 0 0 !important;
  font-size:25px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:-.03em !important;
  color:#111827 !important;
}

.editorial-coverage{
  background:#111827 !important;
  color:white !important;
  border-radius:999px !important;
  padding:12px 18px !important;
  min-width:145px !important;
  text-align:right !important;
}

.editorial-coverage strong{
  display:block !important;
  margin-top:4px !important;
  font-size:24px !important;
  line-height:1 !important;
  font-weight:900 !important;
}

.editorial-chart .summary-page2-energy-chart{
  width:100% !important;
  height:250px !important;
  min-height:250px !important;
  max-height:250px !important;
  display:block !important;
  margin-top:0 !important;
}

.editorial-legend,
.chart-legend-minimal,
.summary-page2-chart-legend{
  display:flex !important;
  justify-content:center !important;
  gap:24px !important;
  margin-top:4px !important;
  font-size:10px !important;
  font-weight:800 !important;
  color:#374151 !important;
}

.editorial-legend span{
  display:inline-flex !important;
  align-items:center !important;
  gap:7px !important;
}

.editorial-legend i{
  width:9px !important;
  height:9px !important;
  border-radius:999px !important;
  display:inline-block !important;
}

.legend-gen{background:#1daa6f !important;}
.legend-con{background:#ff8a00 !important;}

.editorial-bottom{
  display:grid !important;
  grid-template-columns: 1.25fr 1fr !important;
  gap:16px !important;
}

.editorial-equipment,
.editorial-kpis{
  border:1px solid #e5e7eb !important;
  border-radius:26px !important;
  background:#f8fafc !important;
  padding:18px 20px !important;
  overflow:hidden !important;
}

.editorial-equipment{
  display:grid !important;
  grid-template-columns: 1fr 1fr !important;
  column-gap:18px !important;
  align-content:center !important;
  position:relative !important;
}

.editorial-equipment > span{
  position:absolute !important;
  left:20px !important;
  top:16px !important;
}

.equipment-line{
  padding-top:20px !important;
}

.equipment-line strong{
  display:block !important;
  font-size:31px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:-.03em !important;
  color:#111827 !important;
}

.equipment-line p{
  margin:4px 0 3px !important;
  font-size:12px !important;
  font-weight:900 !important;
  color:#111827 !important;
}

.equipment-line small{
  display:block !important;
  font-size:10.5px !important;
  line-height:1.2 !important;
  color:#6b7280 !important;
  font-weight:700 !important;
}

.editorial-kpis{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:10px !important;
  padding:12px !important;
}

.editorial-kpis div{
  border-radius:18px !important;
  background:white !important;
  padding:13px 12px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  min-width:0 !important;
}

.editorial-kpis div.dark{
  background:#111827 !important;
  color:white !important;
}

.editorial-kpis strong{
  display:block !important;
  margin-top:7px !important;
  font-size:17px !important;
  line-height:1.05 !important;
  font-weight:900 !important;
  letter-spacing:-.025em !important;
}

.summary-chart-grid{
  stroke:#e5e7eb !important;
  stroke-width:1 !important;
  stroke-dasharray:3 7 !important;
}

.summary-chart-base{
  stroke:#9ca3af !important;
  stroke-width:1.1 !important;
}

.summary-chart-axis{
  fill:#6b7280 !important;
  font-size:9px !important;
  font-family:Arial, Helvetica, sans-serif !important;
}

.summary-chart-month{
  fill:#374151 !important;
  font-size:9.5px !important;
  font-weight:800 !important;
  font-family:Arial, Helvetica, sans-serif !important;
}

.summary-bar-generation{
  fill:url(#summaryGenGradientVisible) !important;
}

.summary-bar-consumption{
  fill:url(#summaryConGradientVisible) !important;
}



/* CLEAN FINAL */

.clean-dashboard-page{
 position:absolute!important;
 left:1.5cm!important;
 right:1.5cm!important;
 top:4.15cm!important;
 bottom:2.15cm!important;
 display:grid!important;
 grid-template-rows:130px 320px 170px;
 gap:14px!important;
 overflow:hidden!important;
}

.top-kpi-row{
 display:grid;
 grid-template-columns:1.8fr 1fr 1fr 1fr;
 gap:12px;
}

.top-card,
.chart-full-section,
.equipment-clean-card,
.metrics-clean-grid > div{
 background:white;
 border-radius:24px;
 padding:18px;
 box-shadow:0 8px 25px rgba(0,0,0,.05);
}

.top-card.project{
 background:linear-gradient(135deg,#0f172a,#111827);
 color:white;
}

.top-card.dark{
 background:#111827;
 color:white;
}

.top-card span{
 font-size:10px;
 text-transform: none;
 letter-spacing:.12em;
 opacity:.7;
}

.top-card h1{
 font-size:24px;
 margin:8px 0 4px;
 line-height:1.05;
}

.top-card p{
 font-size:12px;
 opacity:.8;
}

.top-card strong{
 display:block;
 font-size:24px;
 margin-top:12px;
}

.chart-full-section{
 padding:20px;
}

.chart-title-row h2{
 font-size:24px;
 margin:6px 0 12px;
}

.full-chart{
 width:100%;
 height:220px!important;
}

.chart-legend-clean{
 display:flex;
 justify-content:center;
 gap:24px;
 margin-top:8px;
 font-size:11px;
 font-weight:700;
}

.chart-legend-clean i{
 width:10px;
 height:10px;
 border-radius:50%;
 display:inline-block;
 margin-right:6px;
}

.legend-gen{background:#1daa6f;}
.legend-con{background:#ff8a00;}

.bottom-row-clean{
 display:grid;
 grid-template-columns:1.4fr 1fr;
 gap:12px;
}

.equipment-clean-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:20px;
 margin-top:20px;
}

.equipment-clean-grid strong{
 display:block;
 font-size:34px;
}

.equipment-clean-grid p{
 margin:4px 0;
 font-weight:700;
}

.equipment-clean-grid small{
 color:#6b7280;
 font-size:11px;
}

.metrics-clean-grid{
 display:grid;
 grid-template-columns:1fr 1fr 1fr;
 gap:12px;
}

.metrics-clean-grid > div{
 display:flex;
 flex-direction:column;
 justify-content:center;
}

.metrics-clean-grid > div.dark{
 background:#111827;
 color:white;
}

.metrics-clean-grid strong{
 font-size:20px;
 margin-top:8px;
}


/* ===== HARD RESET Página 2 ===== */
.summary-page2-body.clean-dashboard-page,
.summary-page2-body.clean-dashboard-page *{
  position:relative;
  float:none !important;
  clear:none !important;
  transform:none !important;
}

.summary-page2-body.clean-dashboard-page{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:4.2cm !important;
  bottom:2.2cm !important;
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  overflow:hidden !important;
  z-index:5;
}

/* TOP */
.top-kpi-row{
  flex:0 0 120px !important;
  display:grid !important;
  grid-template-columns:2fr 1fr 1fr 1fr !important;
  gap:12px !important;
}

.top-kpi-row .top-card{
  min-width:0 !important;
  height:120px !important;
}

/* CHART */
.chart-full-section{
  flex:0 0 290px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  overflow:hidden !important;
}

.chart-title-row{
  flex:0 0 auto !important;
}

.full-chart{
  width:100% !important;
  height:190px !important;
  min-height:190px !important;
  max-height:190px !important;
  display:block !important;
}

.chart-legend-clean{
  margin-top:6px !important;
}

/* BOTTOM */
.bottom-row-clean{
  flex:0 0 160px !important;
  display:grid !important;
  grid-template-columns:1.5fr 1fr !important;
  gap:12px !important;
}

.equipment-clean-card{
  height:160px !important;
  overflow:hidden !important;
}

.equipment-clean-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:16px !important;
  margin-top:14px !important;
}

.equipment-clean-grid strong{
  font-size:28px !important;
}

.metrics-clean-grid{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:10px !important;
  height:160px !important;
}

.metrics-clean-grid > div{
  height:160px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  padding:14px !important;
  border-radius:20px !important;
}

.metrics-clean-grid strong{
  font-size:18px !important;
}

/* kill inherited weird widths/heights */
.editorial-page2,
.premium-layout-final,
.premium-layout-b,
.starlink-dashboard{
  display:none !important;
}


/* ===== REFINAMIENTO ESTABLE HOJA 2 ===== */

/* más aire y jerarquía sin romper el layout */
.summary-page2-body.clean-dashboard-page{
  top:4.25cm !important;
  bottom:2.25cm !important;
  gap:16px !important;
}

/* cards superiores más finas */
.top-kpi-row{
  flex:0 0 105px !important;
  grid-template-columns:1.85fr .95fr .95fr .95fr !important;
  gap:13px !important;
}

.top-kpi-row .top-card{
  height:105px !important;
  border-radius:22px !important;
  padding:16px 17px !important;
}

.top-card h1{
  font-size:21px !important;
  line-height:1.05 !important;
  margin:7px 0 3px !important;
}

.top-card p{
  font-size:11.5px !important;
  line-height:1.15 !important;
}

.top-card strong{
  font-size:22px !important;
  line-height:1.05 !important;
  margin-top:8px !important;
}

.top-card span{
  font-size:9px !important;
  letter-spacing:.13em !important;
}

/* gráfica más protagonista, limpia y editorial */
.chart-full-section{
  flex:0 0 315px !important;
  border-radius:26px !important;
  padding:18px 20px 14px !important;
}

.chart-title-row h2{
  font-size:22px !important;
  line-height:1 !important;
  margin:4px 0 8px !important;
}

.full-chart{
  height:220px !important;
  min-height:220px !important;
  max-height:220px !important;
}

.chart-legend-clean{
  font-size:10.5px !important;
  margin-top:4px !important;
}

/* bloque inferior más horizontal y premium */
.bottom-row-clean{
  flex:0 0 145px !important;
  grid-template-columns:1.35fr 1.15fr !important;
  gap:13px !important;
}

.equipment-clean-card{
  height:145px !important;
  border-radius:22px !important;
  padding:16px 18px !important;
}

.equipment-clean-card > span,
.equipment-clean-card span:first-child{
  font-size:9px !important;
  letter-spacing:.13em !important;
}

.equipment-clean-grid{
  margin-top:12px !important;
  gap:18px !important;
}

.equipment-clean-grid strong{
  font-size:27px !important;
  line-height:1 !important;
}

.equipment-clean-grid p{
  font-size:11.5px !important;
  line-height:1.1 !important;
  margin:4px 0 3px !important;
}

.equipment-clean-grid small{
  font-size:9.8px !important;
  line-height:1.2 !important;
}

/* KPIs técnicos más legibles */
.metrics-clean-grid{
  height:145px !important;
  gap:9px !important;
}

.metrics-clean-grid > div{
  height:145px !important;
  border-radius:22px !important;
  padding:13px 12px !important;
}

.metrics-clean-grid span{
  font-size:8.8px !important;
  line-height:1.15 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  opacity:.72 !important;
}

.metrics-clean-grid strong{
  font-size:17px !important;
  line-height:1.05 !important;
  margin-top:7px !important;
}

/* sombras más sofisticadas */
.top-card,
.chart-full-section,
.equipment-clean-card,
.metrics-clean-grid > div{
  box-shadow:0 10px 28px rgba(15,23,42,.055) !important;
  border:1px solid #edf0f4 !important;
}

.top-card.project,
.top-card.dark,
.metrics-clean-grid > div.dark{
  border:0 !important;
  box-shadow:0 14px 34px rgba(15,23,42,.16) !important;
}

/* si no hay datos, que no se vea tan tosco */
.top-card strong:empty,
.metrics-clean-grid strong:empty{
  font-size:16px !important;
}


/* === HOJA 2 LAYOUT SOLICITADO === */

.requested-dashboard-page{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:4.15cm !important;
  bottom:2.15cm !important;
  display:grid !important;
  grid-template-rows: 205px 135px 1fr 165px !important;
  gap:14px !important;
  overflow:hidden !important;
  background:#ffffff !important;
}

.requested-dashboard-page *{
  box-sizing:border-box !important;
}

.rd-top{
  display:grid !important;
  grid-template-columns: 43% 57% !important;
  gap:14px !important;
  min-height:0 !important;
}

.rd-project-consumption{
  display:grid !important;
  grid-template-rows: 1fr 92px !important;
  gap:14px !important;
  min-height:0 !important;
}

.rd-project-title,
.rd-consumption-card,
.rd-image-card,
.rd-energy-card,
.rd-chart-card,
.rd-equipment-card,
.rd-tech-kpis{
  border:1px solid #e5e7eb !important;
  border-radius:24px !important;
  background:#ffffff !important;
  box-shadow:0 10px 28px rgba(15,23,42,.055) !important;
  overflow:hidden !important;
}

.rd-project-title{
  border:0 !important;
  box-shadow:none !important;
  padding:8px 4px 0 !important;
}

.rd-project-title span,
.rd-consumption-card span,
.rd-energy-card span,
.rd-tech-kpi span{
  display:block !important;
  font-size:10px !important;
  text-transform:uppercase !important;
  letter-spacing:.11em !important;
  color:#6b7280 !important;
  font-weight:800 !important;
}

.rd-project-title h1{
  margin:8px 0 7px !important;
  font-size:30px !important;
  line-height:.98 !important;
  letter-spacing:-.035em !important;
  color:#111827 !important;
  font-weight:900 !important;
}

.rd-project-title p{
  margin:0 !important;
  font-size:12.35px !important;
  font-weight:800 !important;
  color:#4b5563 !important;
}

.rd-consumption-card{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
  padding:16px 18px !important;
  background:linear-gradient(135deg,#fffdf4,#fff7dc) !important;
  border-color:#f4e5aa !important;
}

.rd-consumption-card strong,
.rd-energy-card strong{
  display:block !important;
  margin-top:5px !important;
  font-size:26px !important;
  line-height:1 !important;
  color:#111827 !important;
  font-weight:900 !important;
  letter-spacing:-.03em !important;
}

.rd-icon-circle{
  width:54px !important;
  height:54px !important;
  border-radius:999px !important;
  background:#ffffff !important;
  border:1px solid rgba(17,24,39,.09) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:24px !important;
  flex:0 0 54px !important;
}

.rd-image-card{
  position:relative !important;
  background:#f8fafc !important;
  border-style:dashed !important;
  border-color:#cfd6df !important;
}

.rd-image-placeholder{
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  color:#6b7280 !important;
  cursor:pointer !important;
  font-weight:800 !important;
}

.rd-image-placeholder span{
  font-size:14px !important;
  text-transform:uppercase !important;
  letter-spacing:.08em !important;
}

.rd-image-placeholder small{
  display:block !important;
  margin-top:7px !important;
  font-size:12px !important;
  font-weight:600 !important;
}

.rd-image-preview{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}

.rd-energy-row{
  display:grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap:14px !important;
  min-height:0 !important;
}

.rd-energy-card{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
  padding:18px 20px !important;
}

.rd-energy-card.generation{
  background:linear-gradient(135deg,#f8fff6,#eefbf3) !important;
  border-color:#d9eddc !important;
}

.rd-energy-card.coverage{
  background:linear-gradient(135deg,#f8fbff,#eff6ff) !important;
  border-color:#d8e6fb !important;
}

.rd-energy-card small{
  display:block !important;
  margin-top:8px !important;
  font-size:10.8px !important;
  color:#6b7280 !important;
  font-weight:600 !important;
}

.rd-chart-card{
  padding:16px 20px 12px !important;
  min-height:0 !important;
}

.rd-chart-head{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  margin-bottom:5px !important;
}

.rd-chart-head h2{
  margin:0 !important;
  font-size:20px !important;
  line-height:1 !important;
  color:#111827 !important;
  font-weight:900 !important;
  letter-spacing:-.025em !important;
  text-transform:uppercase !important;
}

.rd-chart{
  display:block !important;
  width:100% !important;
  height:205px !important;
  min-height:205px !important;
  max-height:205px !important;
}

.rd-chart-legend{
  display:flex !important;
  gap:18px !important;
  font-size:10px !important;
  font-weight:800 !important;
  color:#374151 !important;
}

.rd-chart-legend span{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
}

.rd-chart-legend i{
  width:9px !important;
  height:9px !important;
  border-radius:999px !important;
  display:inline-block !important;
}

.rd-bottom{
  display:grid !important;
  grid-template-columns: 40% 60% !important;
  gap:14px !important;
  min-height:0 !important;
}

.rd-equipment-card{
  padding:15px 18px !important;
}

.rd-equipment-card h3{
  margin:0 0 8px !important;
  font-size:15px !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  color:#111827 !important;
  font-weight:900 !important;
}

.rd-equipment-row{
  display:grid !important;
  grid-template-columns:54px 1fr !important;
  gap:12px !important;
  align-items:center !important;
  padding:7px 0 !important;
  border-top:1px solid #eef0f3 !important;
}

.rd-equipment-thumb{
  width:50px !important;
  height:42px !important;
  border-radius:10px !important;
  background:#111827 !important;
}

.panel-thumb{
  background:linear-gradient(135deg,#111827,#374151) !important;
}

.inverter-thumb{
  background:linear-gradient(135deg,#f8fafc,#d1d5db) !important;
  border:1px solid #e5e7eb !important;
}

.rd-equipment-info{
  display:grid !important;
  grid-template-columns:38px 1fr !important;
  column-gap:8px !important;
  align-items:center !important;
}

.rd-equipment-info strong{
  grid-row:1 / 3 !important;
  font-size:24px !important;
  line-height:1 !important;
  color:#1daa6f !important;
  font-weight:900 !important;
}

.rd-equipment-info span{
  font-size:11px !important;
  font-weight:900 !important;
  color:#111827 !important;
  text-transform:uppercase !important;
}

.rd-equipment-info small{
  font-size:10px !important;
  color:#6b7280 !important;
  font-weight:600 !important;
  line-height:1.15 !important;
}

.rd-tech-kpis{
  display:grid !important;
  grid-template-columns:1fr 1fr 1fr !important;
  gap:0 !important;
  padding:14px 12px !important;
}

.rd-tech-kpi{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  border-right:1px solid #e5e7eb !important;
}

.rd-tech-kpi:last-child{
  border-right:0 !important;
}

.rd-kpi-icon{
  width:42px !important;
  height:42px !important;
  border-radius:999px !important;
  color:white !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:18px !important;
  margin-bottom:8px !important;
}

.rd-kpi-icon.green{ background:#4caf50 !important; }
.rd-kpi-icon.blue{ background:#4677d8 !important; }
.rd-kpi-icon.purple{ background:#6f42c1 !important; }

.rd-tech-kpi strong{
  display:block !important;
  margin-top:7px !important;
  font-size:20px !important;
  line-height:1.02 !important;
  color:#111827 !important;
  font-weight:900 !important;
}

/* chart visuals */
.summary-chart-grid{
  stroke:#e5e7eb !important;
  stroke-width:1 !important;
  stroke-dasharray:3 7 !important;
}
.summary-chart-base{ stroke:#9ca3af !important; stroke-width:1.1 !important; }
.summary-chart-axis{ fill:#6b7280 !important; font-size:9px !important; font-family:Arial, Helvetica, sans-serif !important; }
.summary-chart-month{ fill:#374151 !important; font-size:9.5px !important; font-weight:800 !important; font-family:Arial, Helvetica, sans-serif !important; }
.summary-bar-generation{ fill:url(#summaryGenGradientVisible) !important; }
.summary-bar-consumption{ fill:url(#summaryConGradientVisible) !important; }
.legend-gen{background:#1daa6f !important;}
.legend-con{background:#ff8a00 !important;}





/* FINAL REQUEST */

.final-request-layout{
 position:absolute!important;
 left:1.5cm!important;
 right:1.5cm!important;
 top:4.15cm!important;
 bottom:2.15cm!important;
 display:grid!important;
 grid-template-rows:120px 170px 95px 230px 130px;
 gap:12px!important;
 overflow:hidden!important;
}

.fr-top{
 display:grid;
 grid-template-columns:2fr 1fr;
 gap:12px;
}

.fr-project-card,
.fr-consumption-card,
.fr-image-section,
.fr-energy-card,
.fr-chart-card,
.fr-equipment-card,
.fr-kpis{
 background:white;
 border-radius:22px;
 border:1px solid #e5e7eb;
 box-shadow:0 8px 24px rgba(0,0,0,.05);
 padding:18px;
}

.fr-project-card{
 background:linear-gradient(135deg,#0f172a,#111827);
 color:white;
}

.fr-project-card h1{
 font-size:28px;
 margin:8px 0 4px;
 line-height:1;
}

.fr-consumption-card strong,
.fr-energy-card strong{
 display:block;
 font-size:28px;
 margin-top:10px;
}

.fr-image-section{
 position:relative;
 border-style:dashed;
 background:#f8fafc;
}

.fr-image-placeholder{
 position:absolute;
 inset:0;
 display:flex;
 flex-direction:column;
 align-items:center;
 justify-content:center;
 text-align:center;
 color:#6b7280;
 cursor:pointer;
}

.fr-image-preview{
 width:100%;
 height:100%;
 object-fit:cover;
}

.fr-energy-row{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:12px;
}

.fr-chart{
 width:100%;
 height:170px!important;
}

.fr-chart-header h2{
 font-size:20px;
 margin:0 0 8px;
}

.fr-chart-legend{
 display:flex;
 justify-content:center;
 gap:24px;
 font-size:10px;
 font-weight:700;
}

.fr-chart-legend i{
 width:10px;
 height:10px;
 border-radius:50%;
 display:inline-block;
 margin-right:6px;
}

.fr-bottom{
 display:grid;
 grid-template-columns:1.3fr 1fr;
 gap:12px;
}

.fr-equipment-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:20px;
 margin-top:14px;
}

.fr-equipment-grid strong{
 font-size:28px;
 display:block;
}

.fr-kpis{
 display:grid;
 grid-template-columns:1fr 1fr 1fr;
 gap:10px;
 padding:0;
 border:none;
 box-shadow:none;
 background:transparent;
}

.fr-kpis > div{
 background:white;
 border-radius:20px;
 border:1px solid #e5e7eb;
 padding:16px;
 display:flex;
 flex-direction:column;
 justify-content:center;
 text-align:center;
}

.fr-kpis strong{
 font-size:20px;
 margin-top:8px;
}


/* ==========================================================
   HOJA 2 RESUMEN - LAYOUT AISLADO Y CORREGIDO
   ========================================================== */

.summary-page2-body:not(.sp2-clean){
  display:none !important;
}

.sp2-clean{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:4.15cm !important;
  bottom:2.15cm !important;
  display:grid !important;
  grid-template-rows:144px 116px 270px 142px !important;
  gap:13px !important;
  overflow:hidden !important;
  background:#ffffff !important;
  z-index:5 !important;
}

.sp2-clean,
.sp2-clean *{
  box-sizing:border-box !important;
  transform:none !important;
  float:none !important;
  clear:none !important;
  max-width:100% !important;
}

.sp2-row{
  display:grid !important;
  gap:13px !important;
  min-height:0 !important;
  width:100% !important;
}

.sp2-top{
  grid-template-columns:1.55fr .9fr 2.15fr !important;
}

.sp2-energy{
  grid-template-columns:1fr 1fr !important;
}

.sp2-bottom{
  grid-template-columns:1.45fr .72fr .72fr .72fr !important;
}

.sp2-card{
  border:1px solid #e6e9ee !important;
  border-radius:22px !important;
  background:#ffffff !important;
  box-shadow:0 10px 26px rgba(15,23,42,.055) !important;
  padding:16px 18px !important;
  overflow:hidden !important;
  min-width:0 !important;
  min-height:0 !important;
  position:relative !important;
}

.sp2-label{
  display:block !important;
  font-size:9px !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  letter-spacing:.13em !important;
  color:#6b7280 !important;
  font-weight:900 !important;
  margin-bottom:8px !important;
}

.sp2-project{
  background:#374151 !important;
  color:#ffffff !important;
  border:0 !important;
  box-shadow:0 15px 34px rgba(55,65,81,.18) !important;
}

.sp2-project .sp2-label{
  color:#ffffff !important;
  opacity:.74 !important;
}

.sp2-project h1{
  margin:0 0 8px !important;
  color:#ffffff !important;
  font-size:23px !important;
  line-height:1.02 !important;
  letter-spacing:-.035em !important;
  font-weight:900 !important;
}

.sp2-project p{
  margin:0 !important;
  color:#ffffff !important;
  opacity:.82 !important;
  font-size:11px !important;
  line-height:1.25 !important;
  font-weight:800 !important;
}

.sp2-consumption{
  background:linear-gradient(135deg,#fffdf3,#fff6d8) !important;
  border-color:#f4e6ac !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.sp2-consumption strong,
.sp2-generation strong,
.sp2-coverage strong{
  display:block !important;
  margin-top:4px !important;
  color:#111827 !important;
  font-size:25px !important;
  line-height:1 !important;
  letter-spacing:-.035em !important;
  font-weight:900 !important;
}

.sp2-image{
  padding:0 !important;
  background:#f8fafc !important;
  border-style:dashed !important;
  border-color:#cfd6df !important;
}

.sp2-image-placeholder{
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  color:#6b7280 !important;
  cursor:pointer !important;
  font-weight:900 !important;
}

.sp2-image-placeholder span{
  font-size:12px !important;
  text-transform:uppercase !important;
  letter-spacing:.08em !important;
}

.sp2-image-placeholder small{
  display:block !important;
  margin-top:5px !important;
  font-size:10px !important;
  font-weight:700 !important;
}

.sp2-image-preview{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}

.sp2-generation{
  background:linear-gradient(135deg,#f7fff5,#effaf1) !important;
  border-color:#d9eddc !important;
}

.sp2-coverage{
  background:linear-gradient(135deg,#f7fbff,#eef6ff) !important;
  border-color:#d8e6fb !important;
}

.sp2-generation,
.sp2-coverage{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.sp2-generation small,
.sp2-coverage small{
  margin-top:7px !important;
  color:#6b7280 !important;
  font-size:10px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
}

.sp2-chart-card{
  padding:16px 19px 12px !important;
}

.sp2-chart-head{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  margin-bottom:4px !important;
}

.sp2-chart-head h2{
  margin:0 !important;
  color:#111827 !important;
  font-size:19px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:-.02em !important;
  text-transform:uppercase !important;
}

.sp2-legend{
  display:flex !important;
  gap:16px !important;
  font-size:9.5px !important;
  font-weight:800 !important;
  color:#374151 !important;
  white-space:nowrap !important;
}

.sp2-legend span{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
}

.sp2-dot{
  width:9px !important;
  height:9px !important;
  border-radius:999px !important;
  display:inline-block !important;
}
.sp2-dot.gen{background:#1daa6f !important;}
.sp2-dot.con{background:#ff8a00 !important;}

.sp2-chart{
  display:block !important;
  width:100% !important;
  height:220px !important;
  min-height:220px !important;
  max-height:220px !important;
}

.sp2-equipment{
  padding:15px 17px !important;
}

.sp2-equipment h3{
  margin:0 0 12px !important;
  color:#111827 !important;
  font-size:14px !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  letter-spacing:.05em !important;
  font-weight:900 !important;
}

.sp2-equipment-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
}

.sp2-eq-item strong{
  display:block !important;
  color:#1daa6f !important;
  font-size:25px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:-.025em !important;
}

.sp2-eq-item span{
  display:block !important;
  margin:5px 0 3px !important;
  color:#111827 !important;
  font-size:11px !important;
  line-height:1.1 !important;
  font-weight:900 !important;
}

.sp2-eq-item small{
  display:block !important;
  color:#6b7280 !important;
  font-size:9.8px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
}

.sp2-kpi{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  text-align:center !important;
  padding:13px 10px !important;
}

.sp2-kpi.dark{
  background:#374151 !important;
  color:#ffffff !important;
  border:0 !important;
  box-shadow:0 15px 34px rgba(55,65,81,.18) !important;
}

.sp2-kpi.dark .sp2-label{
  color:#ffffff !important;
  opacity:.72 !important;
}

.sp2-kpi strong{
  display:block !important;
  margin-top:8px !important;
  color:#111827 !important;
  font-size:18px !important;
  line-height:1.05 !important;
  font-weight:900 !important;
  letter-spacing:-.025em !important;
}

.sp2-kpi.dark strong{
  color:#ffffff !important;
}

/* chart internals */
.summary-chart-grid{
  stroke:#e5e7eb !important;
  stroke-width:1 !important;
  stroke-dasharray:3 7 !important;
}
.summary-chart-base{
  stroke:#9ca3af !important;
  stroke-width:1.1 !important;
}
.summary-chart-axis{
  fill:#6b7280 !important;
  font-size:9px !important;
  font-family:Arial, Helvetica, sans-serif !important;
}
.summary-chart-month{
  fill:#374151 !important;
  font-size:9.5px !important;
  font-weight:800 !important;
  font-family:Arial, Helvetica, sans-serif !important;
}
.summary-bar-generation{
  fill:url(#summaryGenGradientVisible) !important;
}
.summary-bar-consumption{
  fill:url(#summaryConGradientVisible) !important;
}

/* mata layouts anteriores de hoja 2 */
.final-request-layout,
.clean-dashboard-page,
.editorial-page2,
.premium-layout-final,
.premium-layout-b,
.starlink-dashboard,
.requested-dashboard-page{
  display:none !important;
}




/* ==========================================================
   HOJA 2 FINAL CORREGIDA - LIMPIA / PREMIUM / SIN OVERFLOW
   ========================================================== */

.summary-page2-body:not(.sp2-final){
  display:none !important;
}

.sp2-final{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:4.15cm !important;
  bottom:2.15cm !important;
  display:grid !important;
  grid-template-rows: 118px 126px 104px 248px 128px !important;
  gap:12px !important;
  overflow:hidden !important;
  background:#ffffff !important;
  z-index:10 !important;
}

.sp2-final,
.sp2-final *{
  box-sizing:border-box !important;
  transform:none !important;
  float:none !important;
  clear:none !important;
  max-width:100% !important;
}

.sp2f-card,
.sp2f-image-card,
.sp2f-chart-card{
  border:1px solid #e5e7eb !important;
  border-radius:22px !important;
  background:#ffffff !important;
  box-shadow:0 8px 22px rgba(15,23,42,.055) !important;
  overflow:hidden !important;
  min-width:0 !important;
  position:relative !important;
}

.sp2f-top{
  display:grid !important;
  grid-template-columns: 1.85fr 1fr !important;
  gap:12px !important;
  min-width:0 !important;
}

.sp2f-project{
  background:linear-gradient(135deg,#0f172a,#111827) !important;
  color:#ffffff !important;
  border:0 !important;
  padding:18px 22px !important;
  box-shadow:0 14px 32px rgba(15,23,42,.16) !important;
}

.sp2f-label{
  display:block !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.13em !important;
  text-transform:uppercase !important;
  font-weight:900 !important;
  color:#6b7280 !important;
  margin-bottom:8px !important;
}

.sp2f-project .sp2f-label{
  color:#ffffff !important;
  opacity:.72 !important;
}

.sp2f-project h1{
  margin:0 0 7px !important;
  color:#ffffff !important;
  font-size:25px !important;
  line-height:1.03 !important;
  letter-spacing:-.035em !important;
  font-weight:900 !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

.sp2f-project p{
  margin:0 !important;
  color:#ffffff !important;
  opacity:.82 !important;
  font-size:11.5px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
}

.sp2f-consumption{
  padding:18px 20px !important;
  background:linear-gradient(135deg,#fffdf4,#fff7dc) !important;
  border-color:#f4e5aa !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.sp2f-consumption strong,
.sp2f-generation strong,
.sp2f-coverage strong{
  display:block !important;
  margin-top:5px !important;
  color:#111827 !important;
  font-size:25px !important;
  line-height:1 !important;
  letter-spacing:-.035em !important;
  font-weight:900 !important;
}

.sp2f-image-card{
  padding:0 !important;
  background:#f8fafc !important;
  border-style:dashed !important;
  border-color:#cfd6df !important;
}

.sp2f-image-placeholder{
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  color:#6b7280 !important;
  cursor:pointer !important;
  font-weight:900 !important;
}

.sp2f-image-placeholder span{
  font-size:12.35px !important;
  text-transform:uppercase !important;
  letter-spacing:.09em !important;
}

.sp2f-image-placeholder small{
  margin-top:6px !important;
  font-size:10.5px !important;
  font-weight:700 !important;
}

.sp2f-image-preview{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}

.sp2f-energy-row{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
}

.sp2f-generation,
.sp2f-coverage{
  padding:17px 20px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.sp2f-generation{
  background:linear-gradient(135deg,#f8fff6,#effaf1) !important;
  border-color:#d9eddc !important;
}

.sp2f-coverage{
  background:linear-gradient(135deg,#f7fbff,#eef6ff) !important;
  border-color:#d8e6fb !important;
}

.sp2f-generation small,
.sp2f-coverage small{
  margin-top:7px !important;
  font-size:10px !important;
  color:#6b7280 !important;
  line-height:1.15 !important;
  font-weight:700 !important;
}

.sp2f-chart-card{
  padding:15px 18px 10px !important;
}

.sp2f-chart-head{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:12px !important;
  margin-bottom:4px !important;
}

.sp2f-chart-head h2{
  margin:0 !important;
  color:#111827 !important;
  font-size:19px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:-.025em !important;
  text-transform:uppercase !important;
}

.sp2f-legend{
  display:flex !important;
  gap:15px !important;
  font-size:9.5px !important;
  font-weight:800 !important;
  color:#374151 !important;
  white-space:nowrap !important;
}

.sp2f-legend span{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
}

.sp2f-dot{
  width:9px !important;
  height:9px !important;
  border-radius:999px !important;
  display:inline-block !important;
  flex:0 0 9px !important;
}
.sp2f-dot.gen{background:#1daa6f !important;}
.sp2f-dot.con{background:#ff8a00 !important;}

.sp2f-chart{
  width:100% !important;
  height:204px !important;
  min-height:204px !important;
  max-height:204px !important;
  display:block !important;
  overflow:visible !important;
}

.sp2f-bottom{
  display:grid !important;
  grid-template-columns: 1.35fr .72fr .72fr .72fr !important;
  gap:12px !important;
}

.sp2f-equipment{
  padding:14px 17px !important;
}

.sp2f-equipment h3{
  margin:0 0 10px !important;
  color:#111827 !important;
  font-size:14px !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  letter-spacing:.05em !important;
  font-weight:900 !important;
}

.sp2f-equipment-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
}

.sp2f-equipment-grid strong{
  display:block !important;
  color:#1daa6f !important;
  font-size:25px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:-.025em !important;
}

.sp2f-equipment-grid span{
  display:block !important;
  margin:5px 0 3px !important;
  color:#111827 !important;
  font-size:11px !important;
  line-height:1.1 !important;
  font-weight:900 !important;
}

.sp2f-equipment-grid small{
  display:block !important;
  color:#6b7280 !important;
  font-size:9.6px !important;
  line-height:1.15 !important;
  font-weight:700 !important;
}

.sp2f-kpi{
  padding:13px 9px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  text-align:center !important;
}

.sp2f-kpi.dark{
  background:#374151 !important;
  color:#ffffff !important;
  border:0 !important;
  box-shadow:0 14px 32px rgba(55,65,81,.16) !important;
}

.sp2f-kpi.dark .sp2f-label{
  color:#ffffff !important;
  opacity:.72 !important;
}

.sp2f-kpi strong{
  display:block !important;
  margin-top:8px !important;
  color:#111827 !important;
  font-size:17.5px !important;
  line-height:1.05 !important;
  font-weight:900 !important;
  letter-spacing:-.025em !important;
}

.sp2f-kpi.dark strong{
  color:#ffffff !important;
}

/* chart internals */
.summary-chart-grid{
  stroke:#e5e7eb !important;
  stroke-width:1 !important;
  stroke-dasharray:3 7 !important;
}
.summary-chart-base{
  stroke:#9ca3af !important;
  stroke-width:1.1 !important;
}
.summary-chart-axis{
  fill:#6b7280 !important;
  font-size:9px !important;
  font-family:Arial, Helvetica, sans-serif !important;
}
.summary-chart-month{
  fill:#374151 !important;
  font-size:9.5px !important;
  font-weight:800 !important;
  font-family:Arial, Helvetica, sans-serif !important;
}
.summary-bar-generation{
  fill:url(#summaryGenGradientVisible) !important;
}
.summary-bar-consumption{
  fill:url(#summaryConGradientVisible) !important;
}

/* neutraliza layouts anteriores */
.sp2-clean,
.final-request-layout,
.clean-dashboard-page,
.editorial-page2,
.premium-layout-final,
.premium-layout-b,
.starlink-dashboard,
.requested-dashboard-page{
  display:none !important;
}




/* === HOJA 2: COPIA PROPORCIONAL DE DATOS GENERALES === */
.proposal-summary-page-2 .summary-page2-body.summary-page2-general-only{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:3.45cm !important;
  bottom:auto !important;
  height:6.1cm !important;
  z-index:5 !important;
  display:block !important;
  overflow:visible !important;
}

.summary-page2-general-card{
  width:100% !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:22px 24px 24px !important;
  box-sizing:border-box !important;
  border:1px solid #e8e8ea !important;
  border-radius:14px !important;
  background:#ffffff !important;
  box-shadow:0 1px 3px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.03) !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

.summary-page2-general-card h3{
  margin:0 0 18px !important;
  font-size:10px !important;
  line-height:1.1 !important;
  text-transform:uppercase !important;
  letter-spacing:.12em !important;
  color:#8e8e93 !important;
  font-weight:600 !important;
}

.summary-page2-general-grid{
  display:grid !important;
  grid-template-columns:repeat(4, 1fr) !important;
  gap:10px 12px !important;
}

.summary-page2-general-grid label{
  font-size:10px !important;
  line-height:1.15 !important;
  font-weight:500 !important;
  color:#8e8e93 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
}

.summary-page2-general-grid .input{
  margin-top:7px !important;
  height:36px !important;
  min-height:36px !important;
  border:none !important;
  border-radius:8px !important;
  padding:0 12px !important;
  font:inherit !important;
  font-size:12.35px !important;
  line-height:36px !important;
  background:#f5f5f7 !important;
  color:#1d1d1f !important;
  font-weight:500 !important;
  box-sizing:border-box !important;
  letter-spacing:-0.01em !important;
}

.summary-page2-quote-input-copy{
  margin-top:5px !important;
  height:32px !important;
}

.summary-page2-quote-input-copy span{
  height:32px !important;
  display:flex !important;
  align-items:center !important;
  font-size:12px !important;
}

.summary-page2-quote-input-copy .input{
  margin-top:0 !important;
}

.proposal-summary-page-2 .sp2-final,
.proposal-summary-page-2 .sp2-clean,
.proposal-summary-page-2 .final-request-layout,
.proposal-summary-page-2 .clean-dashboard-page,
.proposal-summary-page-2 .editorial-page2,
.proposal-summary-page-2 .premium-layout-final,
.proposal-summary-page-2 .premium-layout-b,
.proposal-summary-page-2 .starlink-dashboard,
.proposal-summary-page-2 .requested-dashboard-page{
  display:none !important;
}




/* === HOJA 2: DATOS GENERALES - SOLO CAMPOS SOLICITADOS === */
.summary-page2-general-grid.summary-page2-three-fields{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr) !important;
  gap:12px !important;
}
.summary-page2-general-grid.summary-page2-three-fields label{
  min-width:0 !important;
}
.summary-page2-general-grid.summary-page2-three-fields .input{
  width:100% !important;
}


/* Hoja 2 datos generales stacked layout */
#page2-duplicated-general .datos-generales-grid,
#page2-duplicated-general .general-data-grid,
#page2-duplicated-general .metrics-grid{
    display:flex !important;
    flex-direction:column !important;
    gap:14px !important;
    width:100% !important;
}

#page2-duplicated-general .data-card,
#page2-duplicated-general .metric-card,
#page2-duplicated-general .info-card{
    width:100% !important;
    min-height:78px !important;
}

#page2-duplicated-general{
    width:55% !important;
    margin:20px auto 0 auto !important;
}

/* === HOJA 2: CAMPOS DATOS GENERALES EN VERTICAL === */
.proposal-summary-page-2 .summary-page2-body.summary-page2-general-only{
  left:1.5cm !important;
  right:auto !important;
  width:6.15cm !important;
  height:auto !important;
  top:3.45cm !important;
  bottom:auto !important;
}

.proposal-summary-page-2 .summary-page2-general-card{
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  padding:15px 16px 16px !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:12px !important;
  width:100% !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields label{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields .input{
  width:100% !important;
  height:32px !important;
  min-height:32px !important;
}




/* Hoja 2 - Datos generales: Proyecto + Consumo / Ubicación */
#page2DatosGenerales,
#page2-datos-generales,
#page2-duplicated-general,
.page2-datos-generales,
.hoja2-datos-generales {
    width: 92% !important;
    max-width: 92% !important;
    margin: 18px auto 0 auto !important;
}

#page2DatosGenerales .datos-grid,
#page2DatosGenerales .datos-generales-grid,
#page2DatosGenerales .general-data-grid,
#page2-datos-generales .datos-grid,
#page2-datos-generales .datos-generales-grid,
#page2-datos-generales .general-data-grid,
#page2-duplicated-general .datos-grid,
#page2-duplicated-general .datos-generales-grid,
#page2-duplicated-general .general-data-grid,
.page2-datos-generales .datos-grid,
.page2-datos-generales .datos-generales-grid,
.page2-datos-generales .general-data-grid,
.hoja2-datos-generales .datos-grid,
.hoja2-datos-generales .datos-generales-grid,
.hoja2-datos-generales .general-data-grid {
    display: grid !important;
    grid-template-columns: 1fr 1.35fr !important;
    grid-template-rows: auto auto !important;
    gap: 14px !important;
    align-items: stretch !important;
}

#page2ProjectName,
#page2ProjectNameField,
.page2-project-field {
    grid-column: 1 !important;
    grid-row: 1 !important;
}

#page2Location,
#page2LocationField,
.page2-location-field {
    grid-column: 1 !important;
    grid-row: 2 !important;
}

#page2AnnualConsumption,
#page2AnnualConsumptionField,
.page2-consumption-field {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    min-height: 100% !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}


/* === FIX REAL HOJA 2: Proyecto/Ubicación izquierda + Consumo anual derecha === */
.proposal-summary-page-2 .summary-page2-body.summary-page2-general-only{
  position:absolute !important;
  left:1.5cm !important;
  right:1.5cm !important;
  top:3.45cm !important;
  width:auto !important;
  height:auto !important;
  bottom:auto !important;
  display:block !important;
  overflow:visible !important;
  z-index:20 !important;
}

/* Row: card izquierda + foto derecha */
.summary-page2-content-row{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:16px !important;
  align-items:stretch !important;
  width:100% !important;
}

/* Card datos generales */
.proposal-summary-page-2 .summary-page2-general-card{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:20px 20px 20px !important;
  box-sizing:border-box !important;
}

/* Slot foto aérea */
.summary-page2-photo-slot{
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
  min-height:150px !important;
}

.summary-page2-photo-label{
  font-size:10px !important;
  font-weight:500 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  color:#8e8e93 !important;
  display:block !important;
  margin-bottom:2px !important;
}

.summary-page2-photo-wrap{
  flex:1 !important;
  position:relative !important;
  border-radius:12px !important;
  overflow:hidden !important;
  background:#f5f5f7 !important;
  border:1px solid #e8e8ea !important;
  min-height:130px !important;
}

.summary-page2-aerial-img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
  position:absolute !important;
  top:0 !important;
  left:0 !important;
  border-radius:12px !important;
}

.summary-page2-photo-placeholder{
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  cursor:pointer !important;
  color:#b0b0b5 !important;
  font-size:11px !important;
  font-weight:400 !important;
  letter-spacing:.02em !important;
  transition:background .15s !important;
}

.summary-page2-photo-placeholder:hover{
  background:rgba(0,0,0,.03) !important;
}

.summary-page2-photo-change{
  position:absolute !important;
  bottom:10px !important;
  right:10px !important;
  background:rgba(0,0,0,.55) !important;
  color:#fff !important;
  font-size:10px !important;
  font-weight:500 !important;
  letter-spacing:.04em !important;
  padding:5px 10px !important;
  border-radius:20px !important;
  cursor:pointer !important;
  backdrop-filter:blur(4px) !important;
  -webkit-backdrop-filter:blur(4px) !important;
  transition:background .15s !important;
  text-transform:uppercase !important;
}

.summary-page2-photo-change:hover{
  background:rgba(0,0,0,.72) !important;
}

/* Grid interno de datos (sin cambios de ancho anteriores - reseteamos) */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields{
  display:grid !important;
  grid-template-columns: 1fr 0.54fr !important;
  grid-template-rows: auto auto !important;
  gap:12px 14px !important;
  align-items:stretch !important;
  width:100% !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label{
  display:flex !important;
  flex-direction:column !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(1){
  grid-column:1 !important;
  grid-row:1 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(2){
  grid-column:1 !important;
  grid-row:2 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(3){
  grid-column:2 !important;
  grid-row:1 / span 2 !important;
  height:100% !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(1) .input,
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(2) .input{
  height:36px !important;
  min-height:36px !important;
  width:100% !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(3) .input{
  flex:1 1 auto !important;
  height:76px !important;
  min-height:76px !important;
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  font-size:22px !important;
  font-weight:600 !important;
  letter-spacing:-0.03em !important;
  color:#1d1d1f !important;
  padding:0 16px !important;
  border-radius:10px !important;
}




/* Ajuste solicitado: reducir ancho de consumo anual ~35% */
#page2-duplicated-general .datos-grid,
#page2-duplicated-general .datos-generales-grid,
#page2-duplicated-general .general-data-grid,
.hoja2-datos-generales .datos-grid,
.hoja2-datos-generales .datos-generales-grid,
.hoja2-datos-generales .general-data-grid {
    grid-template-columns: 1.45fr 0.75fr !important;
}


/* FINAL override hoja 2 */
#page2-duplicated-general .datos-grid,
#page2-duplicated-general .datos-generales-grid,
#page2-duplicated-general .general-data-grid,
.hoja2-datos-generales .datos-grid,
.hoja2-datos-generales .datos-generales-grid,
.hoja2-datos-generales .general-data-grid{
    grid-template-columns: 1.55fr 0.65fr !important;
}


/* Ajuste final exacto: recortar consumo anual desde el lado derecho */
#page2AnnualConsumptionField,
.page2-consumption-field {
    width: 78% !important;
    max-width: 78% !important;
    justify-self: start !important;
}

#page2AnnualConsumption,
.page2-consumption-field span {
    width: 100%;
}


/* ============================================================
   HOJA 2 — REDISEÑO COMPLETO: SISTEMA + EQUIPO + GRÁFICA
   Estilo Apple / Starlink — fondo blanco, tipografía precisa
   ============================================================ */

/* Ajusta el body para acomodar más contenido verticalmente */
.proposal-summary-page-2 .summary-page2-body.summary-page2-general-only{
  bottom:2.2cm !important;
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
  overflow:hidden !important;
}

/* --- Consumo anual: escala de fuente por longitud de número --- */
.sp2-consumption-display{
  transition:font-size .15s ease !important;
}
.sp2-consumption-display.sp2-size-lg  { font-size:20px !important; }
.sp2-consumption-display.sp2-size-md  { font-size:16px !important; }
.sp2-consumption-display.sp2-size-sm  { font-size:12.35px !important; }
.sp2-consumption-display.sp2-size-xs  { font-size:11px !important; }

/* --- Etiqueta de sección reutilizable --- */
.sp2-section-label{
  font-size:10px !important;
  font-weight:500 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  color:#8e8e93 !important;
  margin:0 0 8px !important;
  display:block !important;
}

/* ── BLOQUE SISTEMA ── */
.sp2-system-block{
  background:#ffffff !important;
  border:1px solid #e8e8ea !important;
  border-radius:14px !important;
  padding:16px 20px !important;
  box-sizing:border-box !important;
  box-shadow:0 1px 3px rgba(0,0,0,.04),0 4px 16px rgba(0,0,0,.03) !important;
  flex-shrink:0 !important;
}

.sp2-system-row{
  display:grid !important;
  grid-template-columns:1fr auto !important;
  gap:20px !important;
  align-items:center !important;
}

/* Métricas en fila horizontal */
.sp2-metrics-group{
  display:flex !important;
  gap:0 !important;
  align-items:stretch !important;
}

.sp2-metric-item{
  display:flex !important;
  flex-direction:column !important;
  gap:3px !important;
  padding:0 18px !important;
  border-right:1px solid #e8e8ea !important;
}
.sp2-metric-item:first-child{ padding-left:0 !important; }
.sp2-metric-item:last-child{ border-right:none !important; }

.sp2-metric-label{
  font-size:9px !important;
  font-weight:500 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  color:#8e8e93 !important;
  white-space:nowrap !important;
}

.sp2-metric-value{
  font-size:15px !important;
  font-weight:600 !important;
  color:#1d1d1f !important;
  letter-spacing:-0.02em !important;
  white-space:nowrap !important;
}

/* Equipos: paneles e inversores */
.sp2-equipment-group{
  display:flex !important;
  align-items:center !important;
  gap:0 !important;
  background:#f5f5f7 !important;
  border-radius:10px !important;
  padding:10px 14px !important;
}

.sp2-equip-item{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
}

.sp2-equip-divider{
  width:1px !important;
  height:32px !important;
  background:#d1d1d6 !important;
  margin:0 14px !important;
  flex-shrink:0 !important;
}

.sp2-equip-badge{
  width:30px !important;
  height:30px !important;
  border-radius:8px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-shrink:0 !important;
}
.sp2-badge-panel   { background:#e8f5e9 !important; color:#2e7d32 !important; }
.sp2-badge-inverter{ background:#e3f2fd !important; color:#1565c0 !important; }

.sp2-equip-info{
  display:flex !important;
  flex-direction:column !important;
  gap:1px !important;
}

.sp2-equip-count{
  font-size:17px !important;
  font-weight:700 !important;
  color:#1d1d1f !important;
  line-height:1 !important;
  letter-spacing:-0.02em !important;
}

.sp2-equip-label{
  font-size:9px !important;
  font-weight:500 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
  color:#8e8e93 !important;
}

.sp2-equip-sub{
  font-size:10px !important;
  font-weight:400 !important;
  color:#6e6e73 !important;
  white-space:nowrap !important;
}

/* ── BLOQUE GRÁFICA ── */
.sp2-chart-block{
  background:#ffffff !important;
  border:1px solid #e8e8ea !important;
  border-radius:14px !important;
  padding:14px 20px 10px !important;
  box-sizing:border-box !important;
  box-shadow:0 1px 3px rgba(0,0,0,.04),0 4px 16px rgba(0,0,0,.03) !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
}

.sp2-chart-header{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  margin-bottom:4px !important;
}
.sp2-chart-header .sp2-section-label{ margin:0 !important; }

.sp2-chart-legend{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
}

.sp2-legend-dot{
  display:inline-block !important;
  width:8px !important;
  height:8px !important;
  border-radius:50% !important;
  flex-shrink:0 !important;
}
.sp2-legend-gen{ background:#34c759 !important; }
.sp2-legend-con{ background:#ff9500 !important; }

.sp2-legend-text{
  font-size:9px !important;
  font-weight:500 !important;
  color:#8e8e93 !important;
  letter-spacing:.04em !important;
}

.sp2-energy-chart{
  width:100% !important;
  flex:1 1 auto !important;
  display:block !important;
  overflow:visible !important;
}

/* Colores Apple para barras de gráfica en hoja 2 */
.proposal-summary-page-2 .summary-bar-generation{
  fill:#34c759 !important;
  opacity:.85 !important;
}
.proposal-summary-page-2 .summary-bar-consumption{
  fill:#ff9500 !important;
  opacity:.85 !important;
}
.proposal-summary-page-2 .summary-chart-grid{
  stroke:#f2f2f7 !important;
  stroke-width:1 !important;
}
.proposal-summary-page-2 .summary-chart-base{
  stroke:#e8e8ea !important;
  stroke-width:1 !important;
}
.proposal-summary-page-2 .summary-chart-axis{
  fill:#8e8e93 !important;
  font-size:8px !important;
  font-family:Arial,sans-serif !important;
}
.proposal-summary-page-2 .summary-chart-month{
  fill:#1d1d1f !important;
  font-size:8px !important;
  font-weight:600 !important;
  font-family:Arial,sans-serif !important;
}

/* Print overrides para el bloque sistema y gráfica */


/* =========================================================
   HOJA 2 — AJUSTE UX/UI PROFESIONAL TESLA-LIKE
   - Menos espacio desperdiciado en gráfica
   - Equipos siempre visibles
   - Consumo anual con auto-scaling real
   ========================================================= */
.proposal-summary-page-2 .summary-page2-body.summary-page2-general-only{
  top:3.35cm !important;
  bottom:2.05cm !important;
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  overflow:hidden !important;
}

.proposal-summary-page-2 .summary-page2-content-row{
  flex:0 0 148px !important;
  display:grid !important;
  grid-template-columns: 1.02fr 1fr !important;
  gap:14px !important;
  align-items:stretch !important;
}

.proposal-summary-page-2 .summary-page2-general-card{
  padding:16px 18px !important;
  border-radius:16px !important;
  border:1px solid #e5e7eb !important;
  box-shadow:0 8px 26px rgba(15,23,42,.055) !important;
}

.proposal-summary-page-2 .summary-page2-general-card h3{
  margin:0 0 12px !important;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.11em !important;
  color:#374151 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields{
  grid-template-columns: 1fr .56fr !important;
  gap:10px 12px !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(1) .input,
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(2) .input{
  height:32px !important;
  min-height:32px !important;
  border-radius:10px !important;
  background:#f3f4f6 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(3) .input,
.proposal-summary-page-2 .sp2-consumption-display{
  height:72px !important;
  min-height:72px !important;
  border-radius:12px !important;
  background:linear-gradient(135deg,#f4f5f7,#eceef2) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  padding:0 12px !important;
  font-weight:850 !important;
  letter-spacing:-.045em !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.proposal-summary-page-2 .summary-page2-photo-slot{
  min-height:148px !important;
  gap:5px !important;
}
.proposal-summary-page-2 .summary-page2-photo-wrap{
  min-height:124px !important;
  border-radius:16px !important;
  border:1px solid #e5e7eb !important;
  box-shadow:0 8px 26px rgba(15,23,42,.04) !important;
}

/* Sistema: equipo visible, sin esconderse al lado derecho */
.proposal-summary-page-2 .sp2-system-block{
  flex:0 0 auto !important;
  padding:12px 14px !important;
  border-radius:16px !important;
  border:1px solid #e5e7eb !important;
  box-shadow:0 8px 26px rgba(15,23,42,.045) !important;
}
.proposal-summary-page-2 .sp2-system-row{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:10px !important;
  align-items:stretch !important;
}
.proposal-summary-page-2 .sp2-metrics-group{
  display:grid !important;
  grid-template-columns:repeat(5, minmax(0,1fr)) !important;
  gap:8px !important;
  width:100% !important;
}
.proposal-summary-page-2 .sp2-metric-item{
  border-right:none !important;
  padding:9px 10px !important;
  border-radius:12px !important;
  background:#f8fafc !important;
  min-width:0 !important;
}
.proposal-summary-page-2 .sp2-metric-label{
  font-size:7.7px !important;
  white-space:normal !important;
  line-height:1.15 !important;
  color:#6b7280 !important;
}
.proposal-summary-page-2 .sp2-metric-value{
  font-size:13.5px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.proposal-summary-page-2 .sp2-equipment-group{
  display:grid !important;
  grid-template-columns:1fr 1px 1fr !important;
  align-items:center !important;
  width:100% !important;
  gap:12px !important;
  padding:10px 12px !important;
  border-radius:14px !important;
  background:linear-gradient(135deg,#f8fafc,#f1f5f9) !important;
  box-sizing:border-box !important;
}
.proposal-summary-page-2 .sp2-equip-divider{
  width:1px !important;
  height:42px !important;
  margin:0 !important;
  background:#d7dbe2 !important;
}
.proposal-summary-page-2 .sp2-equip-item{
  min-width:0 !important;
  gap:10px !important;
}
.proposal-summary-page-2 .sp2-equip-info{
  min-width:0 !important;
}
.proposal-summary-page-2 .sp2-equip-sub{
  white-space:normal !important;
  line-height:1.15 !important;
  overflow:visible !important;
}
.proposal-summary-page-2 .sp2-equip-count{
  font-size:19px !important;
}

/* Gráfica: más moderna, menos aire muerto, más legible */
.proposal-summary-page-2 .sp2-chart-block{
  flex:1 1 auto !important;
  min-height:210px !important;
  padding:12px 14px 8px !important;
  border-radius:18px !important;
  border:1px solid #e5e7eb !important;
  box-shadow:0 10px 30px rgba(15,23,42,.055) !important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%) !important;
}
.proposal-summary-page-2 .sp2-chart-header{
  margin-bottom:2px !important;
}
.proposal-summary-page-2 .sp2-energy-chart{
  width:100% !important;
  height:100% !important;
  min-height:165px !important;
  flex:1 1 auto !important;
  overflow:visible !important;
}
.proposal-summary-page-2 .summary-chart-grid{
  stroke:#edf0f4 !important;
  stroke-width:1 !important;
  stroke-dasharray:2 8 !important;
}
.proposal-summary-page-2 .summary-chart-base{
  stroke:#d8dde6 !important;
  stroke-width:1.2 !important;
}
.proposal-summary-page-2 .summary-chart-axis{
  fill:#9aa3af !important;
  font-size:8.5px !important;
  font-weight:600 !important;
}
.proposal-summary-page-2 .summary-chart-month{
  fill:#111827 !important;
  font-size:9.5px !important;
  font-weight:800 !important;
}
.proposal-summary-page-2 .summary-bar-generation{
  fill:url(#summaryGenGradientVisible) !important;
  opacity:1 !important;
}
.proposal-summary-page-2 .summary-bar-consumption{
  fill:url(#summaryConGradientVisible) !important;
  opacity:1 !important;
}
.proposal-summary-page-2 .summary-chart-value{
  fill:#6b7280 !important;
  font-size:7.5px !important;
  font-weight:700 !important;
}


/* =========================================================
   HOJA 2 · SISTEMA FOTOVOLTAICO
   Equipos arriba / métricas abajo
   ========================================================= */

.proposal-summary-page-2 .sp2-system-block{
  padding:14px 18px 16px !important;
}

.proposal-summary-page-2 .sp2-system-row{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:14px !important;
}

/* Paneles e inversores suben al primer nivel de la tarjeta */
.proposal-summary-page-2 .sp2-equipment-group{
  order:1 !important;
  width:100% !important;
  display:grid !important;
  grid-template-columns:1fr 1px 1fr !important;
  align-items:center !important;
  gap:16px !important;
  padding:14px 18px !important;
  border-radius:14px !important;
  background:linear-gradient(180deg,#f7f7f8 0%,#eeeeef 100%) !important;
  border:1px solid #e5e5e7 !important;
  box-sizing:border-box !important;
}

.proposal-summary-page-2 .sp2-equip-item{
  min-width:0 !important;
  display:grid !important;
  grid-template-columns:38px 1fr !important;
  align-items:center !important;
  gap:12px !important;
}

.proposal-summary-page-2 .sp2-equip-divider{
  width:1px !important;
  height:42px !important;
  margin:0 !important;
  background:#d2d2d7 !important;
}

.proposal-summary-page-2 .sp2-equip-badge{
  width:38px !important;
  height:38px !important;
  border-radius:11px !important;
}

.proposal-summary-page-2 .sp2-equip-count{
  font-size:22px !important;
  line-height:1 !important;
  font-weight:750 !important;
}

.proposal-summary-page-2 .sp2-equip-label{
  font-size:9px !important;
  letter-spacing:.08em !important;
}

.proposal-summary-page-2 .sp2-equip-sub{
  font-size:11px !important;
}

/* Métricas debajo: DC, generación anual, cobertura, AC, sobredimensionamiento */
.proposal-summary-page-2 .sp2-metrics-group{
  order:2 !important;
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(5, minmax(0,1fr)) !important;
  gap:10px !important;
  align-items:stretch !important;
}

.proposal-summary-page-2 .sp2-metric-item{
  border-right:0 !important;
  border:1px solid #ededf0 !important;
  border-radius:12px !important;
  padding:11px 10px !important;
  background:#ffffff !important;
  box-shadow:0 1px 2px rgba(0,0,0,.025) !important;
  min-width:0 !important;
  justify-content:center !important;
}

.proposal-summary-page-2 .sp2-metric-label{
  white-space:normal !important;
  line-height:1.15 !important;
  font-size:8.5px !important;
}

.proposal-summary-page-2 .sp2-metric-value{
  white-space:nowrap !important;
  font-size:14px !important;
  line-height:1.1 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}


/* ==========================================
   Hoja 2: reducir altura gráfica 50%
   ========================================== */
.proposal-summary-page-2 .sp2-chart-block{
    min-height:140px !important;
    max-height:140px !important;
    padding:10px 18px 6px !important;
    margin-top:8px !important;
}

.proposal-summary-page-2 .sp2-energy-chart{
    height:85px !important;
    min-height:85px !important;
    max-height:85px !important;
}

/* ==========================================
   Dar más espacio visual al sistema FV
   ========================================== */
.proposal-summary-page-2 .sp2-system-block{
    padding:20px 22px !important;
    min-height:220px !important;
}

.proposal-summary-page-2 .sp2-equipment-group{
    padding:18px 22px !important;
    min-height:88px !important;
}

.proposal-summary-page-2 .sp2-metrics-group{
    gap:14px !important;
    margin-top:6px !important;
}

.proposal-summary-page-2 .sp2-metric-item{
    padding:14px 12px !important;
    min-height:72px !important;
}


/* =========================================================
   Hoja 2 · Gráfica mejor ajustada dentro de su ficha
   ========================================================= */
.proposal-summary-page-2 .sp2-chart-block{
  min-height:150px !important;
  max-height:150px !important;
  padding:9px 16px 8px !important;
  display:grid !important;
  grid-template-rows:auto 1fr !important;
  gap:2px !important;
  overflow:hidden !important;
}

.proposal-summary-page-2 .sp2-chart-header{
  margin-bottom:0 !important;
  min-height:20px !important;
}

.proposal-summary-page-2 .sp2-energy-chart{
  width:100% !important;
  height:112px !important;
  min-height:112px !important;
  max-height:112px !important;
  align-self:stretch !important;
  justify-self:stretch !important;
  display:block !important;
  margin:0 !important;
  overflow:visible !important;
}

/* Íconos Apple-like para paneles e inversores */
.proposal-summary-page-2 .sp2-equip-badge{
  background:rgba(255,255,255,.72) !important;
  border:1px solid rgba(0,0,0,.08) !important;
  box-shadow:0 6px 18px rgba(0,0,0,.07), inset 0 1px 0 rgba(255,255,255,.85) !important;
  backdrop-filter: blur(8px) !important;
}

.proposal-summary-page-2 .sp2-badge-panel{
  color:#1f7a3a !important;
}

.proposal-summary-page-2 .sp2-badge-inverter{
  color:#1d5fbf !important;
}

.proposal-summary-page-2 .sp2-apple-icon{
  width:22px !important;
  height:22px !important;
  display:block !important;
}


/* =========================================================
   Hoja 2 · Ajuste consumo/producción mensual
   ========================================================= */

/* +20% altura aproximada de la ficha de gráfica */
.proposal-summary-page-2 .sp2-chart-block{
  min-height:180px !important;
  max-height:180px !important;
  padding:10px 12px 8px !important;
  display:grid !important;
  grid-template-rows:auto 1fr !important;
  gap:4px !important;
  overflow:hidden !important;
}

/* La gráfica ocupa todo el ancho útil de su ficha */
.proposal-summary-page-2 .sp2-energy-chart{
  width:100% !important;
  max-width:100% !important;
  height:142px !important;
  min-height:142px !important;
  max-height:142px !important;
  margin:0 !important;
  display:block !important;
  justify-self:stretch !important;
  align-self:stretch !important;
}

/* Números y meses más legibles en la gráfica SVG */
.proposal-summary-page-2 #summaryPage2EnergyChart text,
.proposal-summary-page-2 .sp2-energy-chart text{
  font-size:12.35px !important;
  font-weight:600 !important;
  letter-spacing:-0.01em !important;
}

.proposal-summary-page-2 #summaryPage2EnergyChart .summary-chart-month,
.proposal-summary-page-2 #summaryPage2EnergyChart .month-label{
  font-size:14px !important;
  font-weight:700 !important;
}

.proposal-summary-page-2 #summaryPage2EnergyChart .summary-chart-value,
.proposal-summary-page-2 #summaryPage2EnergyChart .value-label{
  font-size:12px !important;
  font-weight:650 !important;
}


/* =========================================================
   Hoja 2 · Imágenes reales de panel e inversor en Sistema FV
   ========================================================= */
.proposal-summary-page-2 .sp2-equip-badge{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  width:54px !important;
  height:62px !important;
  border-radius:0 !important;
  overflow:visible !important;
}

.proposal-summary-page-2 .sp2-product-icon{
  display:block !important;
  object-fit:contain !important;
  filter: drop-shadow(0 8px 14px rgba(0,0,0,.16)) !important;
}

.proposal-summary-page-2 .sp2-panel-product-img{
  width:34px !important;
  height:60px !important;
}

.proposal-summary-page-2 .sp2-inverter-product-img{
  width:58px !important;
  height:58px !important;
}

.proposal-summary-page-2 .sp2-equip-item{
  grid-template-columns:64px 1fr !important;
}

.proposal-summary-page-2 .sp2-equipment-group{
  align-items:center !important;
}


/* =========================================================
   Incremento 20% imágenes panel e inversor
   ========================================================= */
.proposal-summary-page-2 .sp2-panel-product-img{
    width:41px !important;
    height:72px !important;
}

.proposal-summary-page-2 .sp2-inverter-product-img{
    width:70px !important;
    height:70px !important;
}

.proposal-summary-page-2 .sp2-equip-badge{
    width:72px !important;
    height:76px !important;
}

.proposal-summary-page-2 .sp2-equip-item{
    grid-template-columns:78px 1fr !important;
}


/* =========================================================
   Paneles e inversores → fondo blanco
   ========================================================= */
.proposal-summary-page-2 .sp2-equipment-group{
    background:#ffffff !important;
    border:1px solid #ececef !important;
    box-shadow:0 1px 3px rgba(0,0,0,.03) !important;
}


/* =========================================================
   Métricas sistema FV - jerarquía visual
   ========================================================= */

/* Potencia DC, generación anual, cobertura solar */
.proposal-summary-page-2 .sp2-metric-item:nth-child(1),
.proposal-summary-page-2 .sp2-metric-item:nth-child(2),
.proposal-summary-page-2 .sp2-metric-item:nth-child(3){
    background:#2f2f33 !important;
    border:1px solid #3b3b40 !important;
}

.proposal-summary-page-2 .sp2-metric-item:nth-child(1) .sp2-metric-label,
.proposal-summary-page-2 .sp2-metric-item:nth-child(2) .sp2-metric-label,
.proposal-summary-page-2 .sp2-metric-item:nth-child(3) .sp2-metric-label{
    color:rgba(255,255,255,.72) !important;
}

.proposal-summary-page-2 .sp2-metric-item:nth-child(1) .sp2-metric-value,
.proposal-summary-page-2 .sp2-metric-item:nth-child(2) .sp2-metric-value,
.proposal-summary-page-2 .sp2-metric-item:nth-child(3) .sp2-metric-value{
    color:#ffffff !important;
}

/* Potencia AC + Ratio DC/AC */
.proposal-summary-page-2 .sp2-metric-item:nth-child(4),
.proposal-summary-page-2 .sp2-metric-item:nth-child(5){
    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
}

.proposal-summary-page-2 .sp2-metric-item:nth-child(4) .sp2-metric-label,
.proposal-summary-page-2 .sp2-metric-item:nth-child(5) .sp2-metric-label{
    color:#6e6e73 !important;
}

.proposal-summary-page-2 .sp2-metric-item:nth-child(4) .sp2-metric-value,
.proposal-summary-page-2 .sp2-metric-item:nth-child(5) .sp2-metric-value{
    color:#1d1d1f !important;
}


/* =========================================================
   Colores gráfica hoja 2
   Generación: amarillo SolarPro
   Consumo: gris elegante
   ========================================================= */
.proposal-summary-page-2 .summary-bar-generation,
.proposal-summary-page-2 .sp2-bar-generation{
    fill:#f1ea0b !important;
}

.proposal-summary-page-2 .summary-bar-consumption,
.proposal-summary-page-2 .sp2-bar-consumption{
    fill:#c8c9ca !important;
}

.proposal-summary-page-2 .sp2-legend-gen{
    background:#f1ea0b !important;
}

.proposal-summary-page-2 .sp2-legend-con{
    background:#c8c9ca !important;
}


/* Meses regular */
.proposal-summary-page-2 #summaryPage2EnergyChart .summary-chart-month,
.proposal-summary-page-2 #summaryPage2EnergyChart .month-label{
    font-weight:400 !important;
}

/* ocultar leyenda superior */
.proposal-summary-page-2 .sp2-chart-header .sp2-chart-legend,
.proposal-summary-page-2 .sp2-chart-header .chart-legend,
.proposal-summary-page-2 .sp2-chart-header .legend{
    display:none !important;
}

/* leyenda inferior centrada */
.proposal-summary-page-2 .sp2-chart-bottom-legend{
    display:flex !important;
    justify-content:center !important;
    gap:24px !important;
    width:100% !important;
    margin-top:6px !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-item{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    font-size:11px !important;
    color:#6e6e73 !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-dot{
    width:12px !important;
    height:12px !important;
    border-radius:50% !important;
}


/* =========================================================
   Hoja 2 · Gráfica sin números sobre barras
   ========================================================= */
.proposal-summary-page-2 #summaryPage2EnergyChart .summary-chart-value,
.proposal-summary-page-2 #summaryPage2EnergyChart .value-label,
.proposal-summary-page-2 #summaryPage2EnergyChart .bar-value,
.proposal-summary-page-2 #summaryPage2EnergyChart .generation-value,
.proposal-summary-page-2 #summaryPage2EnergyChart .consumption-value{
    display:none !important;
}

/* Meses visibles, regular */
.proposal-summary-page-2 #summaryPage2EnergyChart .summary-chart-month,
.proposal-summary-page-2 #summaryPage2EnergyChart .month-label{
    display:block !important;
    font-weight:400 !important;
}

/* =========================================================
   Hoja 2 · Consumo anual con formato de Potencia AC / Ratio DC/AC
   ========================================================= */
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    color:#1d1d1f !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;
}

.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption) input,
.proposal-summary-page-2 #summaryP2AnnualConsumption{
    background:transparent !important;
    border:0 !important;
    color:#1d1d1f !important;
    font-weight:650 !important;
}

.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    font-weight:500 !important;
    color:#6e6e73 !important;
}


.proposal-summary-page-2 .summary-p2-consumption-soft-card{
    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;
    color:#6e6e73 !important;
}

.proposal-summary-page-2 .summary-p2-consumption-soft-card #summaryP2AnnualConsumption{
    background:transparent !important;
    border:0 !important;
    color:#1d1d1f !important;
    font-weight:650 !important;
}


/* ==========================================
   Hoja 2 - Consumo anual alignment fix
   ========================================== */

/* bajar label "Consumo anual" */
.proposal-summary-page-2 .summary-p2-consumption-soft-card,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    padding-top:18px !important;
}

/* mismo tamaño tipográfico que Potencia AC / Ratio */
.proposal-summary-page-2 #summaryP2AnnualConsumption{
    font-size:14px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
}

.proposal-summary-page-2 .summary-p2-consumption-soft-card small,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption) small{
    font-size:8.5px !important;
    font-weight:500 !important;
    color:#6e6e73 !important;
}


/* =========================================================
   Hoja 2 · Consumo anual uniforme con Potencia AC / Ratio DC/AC
   ========================================================= */

/* Card completa */
.proposal-summary-page-2 .summary-p2-consumption-soft-card,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;
    padding:11px 10px !important;
    min-height:72px !important;
    height:72px !important;
    box-sizing:border-box !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    gap:6px !important;

    font-size:8.5px !important;
    font-weight:500 !important;
    line-height:1.15 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
    color:#6e6e73 !important;
}

/* Valor */
.proposal-summary-page-2 .summary-p2-consumption-soft-card #summaryP2AnnualConsumption,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption) #summaryP2AnnualConsumption{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;

    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    text-align:center !important;

    font-size:14px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
    letter-spacing:-0.02em !important;
    text-transform:none !important;
    color:#1d1d1f !important;
}

/* Elimina efectos heredados del input readonly */
.proposal-summary-page-2 #summaryP2AnnualConsumption.input,
.proposal-summary-page-2 #summaryP2AnnualConsumption.readonly{
    background:transparent !important;
    border:none !important;
    outline:none !important;
    box-shadow:none !important;
}


/* =========================================================
   Hoja 2 · Consumo anual centrado entre Proyecto y Ubicación
   ========================================================= */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields{
    display:grid !important;
    grid-template-columns:1fr 0.72fr !important;
    grid-template-rows:1fr 1fr !important;
    gap:12px !important;
    align-items:stretch !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(1){
    grid-column:1 !important;
    grid-row:1 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(2){
    grid-column:1 !important;
    grid-row:2 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(3),
.proposal-summary-page-2 .summary-p2-consumption-soft-card,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    grid-column:2 !important;
    grid-row:1 / span 2 !important;
    align-self:stretch !important;
    height:100% !important;
    min-height:0 !important;
    padding:11px 10px !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    gap:6px !important;

    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;

    font-size:8.5px !important;
    font-weight:500 !important;
    line-height:1.15 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
    color:#6e6e73 !important;
}

.proposal-summary-page-2 #summaryP2AnnualConsumption{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;

    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    outline:none !important;

    text-align:center !important;
    font-size:14px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
    letter-spacing:-0.02em !important;
    text-transform:none !important;
    color:#1d1d1f !important;
}


/* =========================================================
   Hoja 2 · Consumo anual exacto con altura de Proyecto + Ubicación
   ========================================================= */

/* El grid mantiene Proyecto/Ubicación a la izquierda y Consumo a la derecha */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields{
    display:grid !important;
    grid-template-columns:1fr 0.72fr !important;
    grid-template-rows:minmax(72px, auto) minmax(72px, auto) !important;
    gap:12px !important;
    align-items:stretch !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(1){
    grid-column:1 !important;
    grid-row:1 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(2){
    grid-column:1 !important;
    grid-row:2 !important;
}

/* Consumo anual: inicia exactamente arriba con Proyecto y termina abajo con Ubicación */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(3),
.proposal-summary-page-2 .summary-p2-consumption-exact-card,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    grid-column:2 !important;
    grid-row:1 / 3 !important;
    align-self:stretch !important;
    justify-self:stretch !important;

    height:auto !important;
    min-height:calc(144px + 12px) !important;
    margin:0 !important;
    box-sizing:border-box !important;

    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    text-align:center !important;

    /* misma separación visual que las métricas Potencia AC / Ratio DC/AC */
    gap:3px !important;
    padding:11px 10px !important;

    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;

    font-size:8.5px !important;
    font-weight:500 !important;
    line-height:1.15 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
    color:#6e6e73 !important;
}

/* número: mismo tamaño y peso que Potencia AC / Ratio DC/AC */
.proposal-summary-page-2 #summaryP2AnnualConsumption{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;

    padding:0 !important;
    margin:0 !important;

    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;

    text-align:center !important;
    font-size:14px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
    letter-spacing:-0.02em !important;
    text-transform:none !important;
    color:#1d1d1f !important;
}

/* evita estilos heredados de input readonly */
.proposal-summary-page-2 #summaryP2AnnualConsumption.input,
.proposal-summary-page-2 #summaryP2AnnualConsumption.readonly{
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;
}


/* =========================================================
   Hoja 2 · Consumo anual alineado exacto a Proyecto/Ubicación
   ========================================================= */

/* Grid real: dos filas iguales, consumo ocupa ambas */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields{
    display:grid !important;
    grid-template-columns:1fr 0.72fr !important;
    grid-template-rows:1fr 1fr !important;
    gap:12px !important;
    align-items:stretch !important;
}

/* Proyecto */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(1){
    grid-column:1 !important;
    grid-row:1 !important;
    align-self:stretch !important;
}

/* Ubicación */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(2){
    grid-column:1 !important;
    grid-row:2 !important;
    align-self:stretch !important;
}

/* Consumo anual: extremos superior/inferior alineados con las fichas grises de Proyecto/Ubicación */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(3),
.proposal-summary-page-2 .summary-p2-consumption-final-align,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    grid-column:2 !important;
    grid-row:1 / 3 !important;
    justify-self:stretch !important;
    align-self:stretch !important;

    height:100% !important;
    min-height:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    gap:3px !important;

    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;

    font-size:8.5px !important;
    font-weight:500 !important;
    line-height:1.15 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
    color:#6e6e73 !important;
}

/* título Consumo anual centrado */
.proposal-summary-page-2 .summary-p2-consumption-final-align,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    color:#6e6e73 !important;
}

/* número kWh: -15% vs 14px = 11.9px */
.proposal-summary-page-2 #summaryP2AnnualConsumption{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;

    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;

    text-align:center !important;
    font-size:12px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
    letter-spacing:-0.02em !important;
    text-transform:none !important;
    color:#1d1d1f !important;
}

/* quitar cualquier tamaño heredado del input */
.proposal-summary-page-2 #summaryP2AnnualConsumption.input,
.proposal-summary-page-2 #summaryP2AnnualConsumption.readonly{
    font-size:12px !important;
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;
}


/* =========================================================
   FIX FINAL · Hoja 2 consumo anual alineado a INPUTS grises
   ========================================================= */

/* Mantener grilla: Proyecto/Ubicación izquierda, Consumo derecha */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields{
    display:grid !important;
    grid-template-columns:1fr 0.72fr !important;
    grid-template-rows:auto auto !important;
    column-gap:12px !important;
    row-gap:12px !important;
    align-items:start !important;
}

/* Los labels de Proyecto y Ubicación conservan su estructura normal */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(1){
    grid-column:1 !important;
    grid-row:1 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(2){
    grid-column:1 !important;
    grid-row:2 !important;
}

/* Consumo anual: se alinea con el inicio del INPUT gris de Proyecto,
   no con el texto/label "Proyecto". */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(3),
.proposal-summary-page-2 .summary-p2-consumption-exact-input-align,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    grid-column:2 !important;
    grid-row:1 / 3 !important;

    /* Esta variable equivale a la altura visual del título "Proyecto/Ubicación"
       + su separación antes del input gris. */
    --sp2-label-offset: 23px;

    align-self:stretch !important;
    justify-self:stretch !important;

    margin-top:var(--sp2-label-offset) !important;
    height:calc(100% - var(--sp2-label-offset)) !important;
    min-height:0 !important;
    box-sizing:border-box !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    gap:3px !important;

    padding:11px 10px !important;

    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;

    font-size:8.5px !important;
    font-weight:500 !important;
    line-height:1.15 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
    color:#6e6e73 !important;
}

/* El input interno deja de verse como input y se comporta como valor de tarjeta */
.proposal-summary-page-2 #summaryP2AnnualConsumption,
.proposal-summary-page-2 #summaryP2AnnualConsumption.input,
.proposal-summary-page-2 #summaryP2AnnualConsumption.readonly{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;

    padding:0 !important;
    margin:0 !important;

    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;

    text-align:center !important;

    /* 15% menor que 14px */
    font-size:12px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
    letter-spacing:-0.02em !important;
    text-transform:none !important;
    color:#1d1d1f !important;
}

/* Evita que reglas anteriores vuelvan a forzar altura equivocada */
.proposal-summary-page-2 .summary-p2-consumption-soft-card,
.proposal-summary-page-2 .summary-p2-consumption-final-align,
.proposal-summary-page-2 .summary-p2-consumption-exact-card{
    margin-top:23px !important;
    height:calc(100% - 23px) !important;
}


/* =========================================================
   Consumo anual hoja 2 → misma tipografía que Potencia AC
   ========================================================= */

/* Título */
.proposal-summary-page-2 .summary-p2-consumption-exact-input-align,
.proposal-summary-page-2 .summary-p2-consumption-final-align,
.proposal-summary-page-2 .summary-p2-consumption-soft-card,
.proposal-summary-page-2 .summary-p2-consumption-exact-card,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    font-size:8.5px !important;
    font-weight:500 !important;
}

/* Valor numérico */
.proposal-summary-page-2 #summaryP2AnnualConsumption,
.proposal-summary-page-2 #summaryP2AnnualConsumption.input,
.proposal-summary-page-2 #summaryP2AnnualConsumption.readonly{
    font-size:14px !important;
    font-weight:650 !important;
}


/* =========================================================
   Hoja 2 · Consumo anual idéntico a fichas Potencia AC / Ratio DC-AC
   ========================================================= */

/* Ficha consumo anual: mismo comportamiento visual que .sp2-metric-item claro */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(3),
.proposal-summary-page-2 .summary-p2-consumption-exact-input-align,
.proposal-summary-page-2 .summary-p2-consumption-final-align,
.proposal-summary-page-2 .summary-p2-consumption-soft-card,
.proposal-summary-page-2 .summary-p2-consumption-exact-card,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    text-align:left !important;
    gap:3px !important;

    padding:14px 12px !important;
    min-width:0 !important;
    overflow:visible !important;

    /* igual que label de métricas */
    font-size:8.5px !important;
    font-weight:500 !important;
    letter-spacing:.08em !important;
    line-height:1.15 !important;
    text-transform:uppercase !important;
    color:#6e6e73 !important;
}

/* Valor consumo anual: mismo comportamiento que .sp2-metric-value */
.proposal-summary-page-2 #summaryP2AnnualConsumption,
.proposal-summary-page-2 #summaryP2AnnualConsumption.input,
.proposal-summary-page-2 #summaryP2AnnualConsumption.readonly{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;

    padding:0 !important;
    margin:0 !important;

    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;

    text-align:left !important;
    font-size:14px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
    letter-spacing:-0.02em !important;
    text-transform:none !important;
    color:#1d1d1f !important;

    overflow:visible !important;
    text-overflow:clip !important;
    white-space:nowrap !important;
}

/* Evitar truncamiento heredado del input */
.proposal-summary-page-2 .summary-page2-general-card #summaryP2AnnualConsumption{
    overflow:visible !important;
    text-overflow:clip !important;
}


/* =========================================================
   RESTAURADO · Hoja 2 Consumo anual
   Solo CSS, sin tocar JS ni listeners del acordeón Resumen
   ========================================================= */

/* Card de consumo anual alineada a los campos grises */
.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(3),
.proposal-summary-page-2 .summary-p2-consumption-exact-input-align,
.proposal-summary-page-2 .summary-p2-consumption-final-align,
.proposal-summary-page-2 .summary-p2-consumption-soft-card,
.proposal-summary-page-2 .summary-p2-consumption-exact-card,
.proposal-summary-page-2 .summary-page2-general-card label:has(#summaryP2AnnualConsumption){
    grid-column:2 !important;
    grid-row:1 / 3 !important;
    align-self:stretch !important;
    justify-self:stretch !important;

    margin-top:23px !important;
    height:calc(100% - 23px) !important;
    box-sizing:border-box !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    text-align:left !important;
    gap:3px !important;

    padding:14px 12px !important;
    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;

    font-family:inherit !important;
    font-size:8.5px !important;
    font-weight:500 !important;
    line-height:1.15 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
    color:#6e6e73 !important;
}

/* Valor consumo anual igual a Potencia AC / Ratio DC-AC */
.proposal-summary-page-2 input#summaryP2AnnualConsumption,
.proposal-summary-page-2 input#summaryP2AnnualConsumption.input,
.proposal-summary-page-2 input#summaryP2AnnualConsumption.readonly,
.proposal-summary-page-2 input#summaryP2AnnualConsumption.sp2-consumption-display{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;

    padding:0 !important;
    margin:0 !important;
    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;

    font-family:inherit !important;
    font-size:14px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
    letter-spacing:-0.02em !important;
    text-transform:none !important;
    color:#1d1d1f !important;
    text-align:left !important;

    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}


/* =========================================================
   FIX: valor numérico Consumo anual = mismo tamaño Potencia AC
   ========================================================= */

.proposal-summary-page-2 input#summaryP2AnnualConsumption,
.proposal-summary-page-2 #summaryP2AnnualConsumption,
.proposal-summary-page-2 input#summaryP2AnnualConsumption.input,
.proposal-summary-page-2 input#summaryP2AnnualConsumption.readonly,
.proposal-summary-page-2 input#summaryP2AnnualConsumption.sp2-consumption-display{
    font-size:14px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
    letter-spacing:-0.02em !important;
    transform:none !important;
    zoom:1 !important;
}


/* =========================================================
   FIX REAL: reducir valor numérico consumo anual
   ========================================================= */

html body .proposal-summary-page-2 input#summaryP2AnnualConsumption,
html body .proposal-summary-page-2 #summaryP2AnnualConsumption,
html body .proposal-summary-page-2 input#summaryP2AnnualConsumption.input,
html body .proposal-summary-page-2 input#summaryP2AnnualConsumption.readonly,
html body .proposal-summary-page-2 input#summaryP2AnnualConsumption.sp2-consumption-display{
    font-size:11px !important;
    font-weight:650 !important;
    line-height:1.05 !important;
    letter-spacing:-0.01em !important;
}


/* =========================================================
   Hoja 2 · Nueva ficha Consumo anual tipo Potencia AC / Ratio DC-AC
   ========================================================= */

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields{
    display:grid !important;
    grid-template-columns:1fr 0.72fr !important;
    grid-template-rows:auto auto !important;
    column-gap:12px !important;
    row-gap:12px !important;
    align-items:start !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(1){
    grid-column:1 !important;
    grid-row:1 !important;
}

.proposal-summary-page-2 .summary-page2-general-grid.summary-page2-three-fields > label:nth-child(2){
    grid-column:1 !important;
    grid-row:2 !important;
}

.proposal-summary-page-2 .summary-p2-annual-consumption-metric{
    grid-column:2 !important;
    grid-row:1 / 3 !important;
    align-self:stretch !important;
    justify-self:stretch !important;

    /* alineación con los campos grises de Proyecto/Ubicación */
    margin-top:23px !important;
    height:calc(100% - 23px) !important;
    min-height:0 !important;
    box-sizing:border-box !important;

    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(0,0,0,.025) !important;

    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:flex-start !important;
    text-align:left !important;
    gap:3px !important;

    padding:14px 12px !important;
    overflow:hidden !important;
}

.proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-label{
    font-size:8.5px !important;
    font-weight:500 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
    line-height:1.15 !important;
    color:#6e6e73 !important;
    white-space:normal !important;
}

.proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-value{
    font-size:14px !important;
    font-weight:650 !important;
    line-height:1.1 !important;
    letter-spacing:-0.02em !important;
    color:#1d1d1f !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    max-width:100% !important;
}


/* =========================================================
   Consumo anual → fondo gris claro + valor -30%
   ========================================================= */

.proposal-summary-page-2 .summary-p2-annual-consumption-metric{
    background:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
}

/* 14px -> ~9.8px */
.proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-value{
    font-size:10px !important;
    font-weight:650 !important;
    line-height:1.05 !important;
}


/* =========================================================
   Consumo anual = mismo gris de Potencia AC
   ========================================================= */

.proposal-summary-page-2 .summary-p2-annual-consumption-metric,
.proposal-summary-page-2 .summary-p2-annual-consumption-metric.sp2-metric-item{
    background:#f3f3f5 !important;
    background-color:#f3f3f5 !important;
    border:1px solid #e3e3e8 !important;
    color:#1d1d1f !important;
}

/* evitar herencia de tarjetas oscuras */
.proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-label{
    color:#6e6e73 !important;
}

.proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-value{
    color:#1d1d1f !important;
}


/* =========================================================
   Consumo anual label = mismo color que Potencia AC
   ========================================================= */

.proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-label{
    color:#6e6e73 !important;
}


/* =========================================================
   FIX REAL: label consumo anual no hereda blanco
   ========================================================= */

html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-label,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric span.sp2-metric-label{
    color:#6e6e73 !important;
    -webkit-text-fill-color:#6e6e73 !important;
}


/* =========================================================
   Consumo anual → valor numérico -30%
   ========================================================= */

html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-value{
    font-size:7px !important;
    line-height:1.05 !important;
}


/* =========================================================
   Consumo anual → bajar 3 niveles reales
   ========================================================= */

html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-value,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric span.sp2-metric-value{
    font-size:5px !important;
    font-weight:650 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
}


/* =========================================================
   FIX REAL · valor consumo anual reducido desde CSS también
   ========================================================= */
html body .proposal-summary-page-2 #summaryP2AnnualConsumption,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric #summaryP2AnnualConsumption,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-value{
    font-size:8px !important;
    font-weight:650 !important;
    line-height:1.05 !important;
    letter-spacing:0 !important;
    transform:none !important;
    zoom:1 !important;
}


/* =========================================================
   Consumo anual · valor numérico reducido 3 niveles
   ========================================================= */
html body .proposal-summary-page-2 #summaryP2AnnualConsumption,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric #summaryP2AnnualConsumption,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-value{
    font-size:5px !important;
    line-height:1 !important;
}


/* =========================================================
   Consumo anual · valor numérico +2.5x
   ========================================================= */
html body .proposal-summary-page-2 #summaryP2AnnualConsumption,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric #summaryP2AnnualConsumption,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-value{
    font-size:12.5px !important;
    line-height:1.05 !important;
}


/* =========================================================
   Consumo anual · valor numérico +15%
   ========================================================= */
html body .proposal-summary-page-2 #summaryP2AnnualConsumption,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric #summaryP2AnnualConsumption,
html body .proposal-summary-page-2 .summary-p2-annual-consumption-metric .sp2-metric-value{
    font-size:14.4px !important;
    line-height:1.05 !important;
}


/* =========================================================
   Hoja 2 · bajar todas las fichas
   ========================================================= */
.proposal-summary-page-2 .summary-page2-general-card,
.proposal-summary-page-2 .sp2-system-card,
.proposal-summary-page-2 .sp2-chart-block{
    margin-top:48px !important;
}


/* =========================================================
   Hoja 2 · mover bloque completo manteniendo proporciones
   ========================================================= */

/* Anula el intento anterior de bajar fichas por separado */
.proposal-summary-page-2 .summary-page2-general-card,
.proposal-summary-page-2 .sp2-system-card,
.proposal-summary-page-2 .sp2-chart-block{
    margin-top:0 !important;
}

/* Baja todo el cuerpo de hoja 2 como un solo conjunto */
.proposal-summary-page-2 .summary-page2-body{
    transform:translateY(48px) !important;
    transform-origin:top center !important;
}

/* Mantiene el footer intacto */
.proposal-summary-page-2 .summary-page2-footer-img{
    transform:none !important;
}


/* =========================================================
   Hoja 2 · corrección línea negra del encabezado
   ========================================================= */

/* Oculta la línea negra/divisor debajo del header en página 2 */
.proposal-summary-page-2 .summary-header-divider,
.proposal-summary-page-2 .header-divider,
.proposal-summary-page-2 .proposal-header-line,
.proposal-summary-page-2 hr{
    display:none !important;
    border:0 !important;
}

/* Si la línea viene de un pseudo-elemento */
.proposal-summary-page-2 .proposal-summary-header::after,
.proposal-summary-page-2 .summary-header::after{
    content:none !important;
    display:none !important;
}


/* =========================================================
   Hoja 2 · restaurar leyenda de gráfica
   ========================================================= */

/* mantener oculta la leyenda superior */
.proposal-summary-page-2 .sp2-chart-header .sp2-chart-legend,
.proposal-summary-page-2 .sp2-chart-header .chart-legend,
.proposal-summary-page-2 .sp2-chart-header .legend{
    display:none !important;
}

/* leyenda inferior visible */
.proposal-summary-page-2 .sp2-chart-bottom-legend{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:24px !important;
    width:100% !important;
    margin-top:8px !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-item{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    font-size:11px !important;
    color:#6e6e73 !important;
    font-weight:500 !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-dot{
    width:12px !important;
    height:12px !important;
    border-radius:50% !important;
}


/* =========================================================
   Hoja 2 · nomenclatura debajo de meses
   ========================================================= */

/* Oculta cualquier leyenda superior */
.proposal-summary-page-2 .sp2-chart-header .sp2-chart-legend,
.proposal-summary-page-2 .sp2-chart-header .chart-legend,
.proposal-summary-page-2 .sp2-chart-header .legend{
    display:none !important;
}

/* La ficha deja espacio inferior para la nomenclatura */
.proposal-summary-page-2 .sp2-chart-block{
    display:grid !important;
    grid-template-rows:auto 1fr auto !important;
    gap:6px !important;
}

/* Leyenda centrada abajo de los meses */
.proposal-summary-page-2 .sp2-chart-bottom-legend{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:26px !important;
    width:100% !important;
    margin:2px auto 0 auto !important;
    padding-top:2px !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-item{
    display:flex !important;
    align-items:center !important;
    gap:7px !important;
    font-size:10.5px !important;
    font-weight:500 !important;
    color:#6e6e73 !important;
    line-height:1 !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-dot{
    width:9px !important;
    height:9px !important;
    border-radius:50% !important;
    display:inline-block !important;
    flex:0 0 9px !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-dot-production{
    background:#f1ea0b !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-dot-consumption{
    background:#c8c9ca !important;
}


/* =========================================================
   Hoja 2 · leyenda inferior fija de series
   ========================================================= */

.proposal-summary-page-2 .sp2-chart-bottom-legend{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:28px !important;
    width:100% !important;
    margin-top:4px !important;
    padding-bottom:2px !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-item{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    font-size:10px !important;
    font-weight:500 !important;
    color:#6e6e73 !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-dot{
    width:10px !important;
    height:10px !important;
    border-radius:50% !important;
    display:inline-block !important;
}

.proposal-summary-page-2 .legend-dot-production{
    background:#f1ea0b !important;
}

.proposal-summary-page-2 .legend-dot-consumption{
    background:#c8c9ca !important;
}


/* =========================================================
   Hoja 2 · leyenda inferior SIEMPRE visible
   ========================================================= */

.proposal-summary-page-2 .sp2-chart-block{
    display:flex !important;
    flex-direction:column !important;
    overflow:visible !important;
}

.proposal-summary-page-2 #summaryPage2EnergyChart{
    flex:1 1 auto !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    position:relative !important;
    z-index:5 !important;

    justify-content:center !important;
    align-items:center !important;
    gap:28px !important;
    width:100% !important;

    margin:6px auto 0 auto !important;
    padding:0 0 2px 0 !important;

    pointer-events:none !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-item{
    display:flex !important;
    align-items:center !important;
    gap:7px !important;

    font-size:10px !important;
    font-weight:500 !important;
    line-height:1 !important;
    color:#6e6e73 !important;
    white-space:nowrap !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-dot{
    display:inline-block !important;
    width:9px !important;
    height:9px !important;
    border-radius:50% !important;
    flex:0 0 9px !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-dot-production{
    background:#f1ea0b !important;
}

.proposal-summary-page-2 .sp2-chart-bottom-legend .legend-dot-consumption{
    background:#c8c9ca !important;
}


/* =========================================================
   Hoja 2 · títulos de secciones uniformes
   ========================================================= */

/* Tomamos exactamente el mismo estilo visual de Datos generales */
.proposal-summary-page-2 .sp2-section-title,
.proposal-summary-page-2 .sp2-system-title,
.proposal-summary-page-2 .sp2-chart-title,
.proposal-summary-page-2 .Ubicación de módulos-title{
    font-size:11px !important;
    font-weight:600 !important;
    letter-spacing:.06em !important;
    text-transform:uppercase !important;
    color:#1d1d1f !important;
    line-height:1.2 !important;
}


/* =========================================================
   Hoja 2 · títulos negro + negrita
   ========================================================= */

.proposal-summary-page-2 .sp2-section-title,
.proposal-summary-page-2 .sp2-system-title,
.proposal-summary-page-2 .sp2-chart-title,
.proposal-summary-page-2 .Ubicación de módulos-title{
    color:#000000 !important;
    font-weight:700 !important;
}


/* =========================================================
   Hoja 2 · títulos reales negro + negrita
   ========================================================= */

.proposal-summary-page-2 .sp2-real-section-title{
    color:#000000 !important;
    font-weight:700 !important;
    font-size:11px !important;
    letter-spacing:.06em !important;
    text-transform:uppercase !important;
    line-height:1.2 !important;
}


/* =========================================================
   Hoja 2 · Datos generales + Ubicación de módulos unificados
   ========================================================= */

.proposal-summary-page-2 .sp2-real-section-title{
    color:#000000 !important;
    font-weight:700 !important;
    font-size:11px !important;
    letter-spacing:.06em !important;
    text-transform:uppercase !important;
    line-height:1.2 !important;
}


/* ============================================================
   HOJA 2 · TÍTULOS UNIFICADOS — OVERRIDE FINAL
   Datos generales / Ubicación de módulos / Propuesta / Rendimiento
   Mismo tamaño, mismo peso, misma fuente.
   ============================================================ */
.proposal-summary-page-2 .summary-page2-general-card h3,
.proposal-summary-page-2 .summary-page2-photo-label,
.proposal-summary-page-2 .sp2-real-section-title,
.proposal-summary-page-2 .sp2-section-label{
  font-size:11px !important;
  font-weight:700 !important;
  font-family:inherit !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
  color:#000000 !important;
  line-height:1.2 !important;
}


/* ============================================================
   HOJA 2 · ALINEACIÓN VERTICAL DE TÍTULOS
   Iguala padding-left de los 3 bloques para que los títulos
   queden en la misma columna vertical.
   ============================================================ */
.proposal-summary-page-2 .summary-page2-general-card,
.proposal-summary-page-2 .sp2-system-block,
.proposal-summary-page-2 .sp2-chart-block{
  padding-left:16px !important;
}

/* El título de gráfica tiene un <p> con margin propio — resetear */
.proposal-summary-page-2 .sp2-chart-header .sp2-section-label{
  margin-left:0 !important;
  padding-left:0 !important;
}

/* El título de sistema también */
.proposal-summary-page-2 .sp2-system-block > .sp2-section-label{
  margin-left:0 !important;
  padding-left:0 !important;
}


/* Subtítulo gráfica Hoja 2 */
.proposal-summary-page-2 .sp2-chart-subtitle{
  margin:2px 0 0 !important;
  padding:0 !important;
  font-size:8.5px !important;
  font-weight:400 !important;
  color:#8e8e93 !important;
  letter-spacing:.01em !important;
  text-transform:none !important;
  line-height:1.3 !important;
}


/* ── Leyenda integrada en header de gráfica ── */
.proposal-summary-page-2 .sp2-chart-legend-inline{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
}

.proposal-summary-page-2 .sp2-legend-inline-item{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
}

.proposal-summary-page-2 .sp2-chart-legend-inline .legend-dot{
  width:8px !important;
  height:8px !important;
  border-radius:50% !important;
  flex-shrink:0 !important;
}

.proposal-summary-page-2 .sp2-chart-legend-inline .sp2-legend-text{
  font-size:8.5px !important;
  font-weight:600 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  color:#6e6e73 !important;
}

/* Ocultar leyenda inferior antigua si quedara */
.proposal-summary-page-2 .sp2-chart-bottom-legend{
  display:none !important;
}

/* ── Barra de advertencia ── */
.proposal-summary-page-2 .sp2-chart-disclaimer{
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  background:#0a0a0a !important;
  padding:9px 12px 9px 16px !important;
  margin-top:7px !important;
  margin-left:-16px !important;
  margin-right:-12px !important;
  margin-bottom:-8px !important;
  width:calc(100% + 28px) !important;
  box-sizing:border-box !important;
  border-radius:0 !important;
  flex-shrink:0 !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

.proposal-summary-page-2 .sp2-disclaimer-icon{
  flex-shrink:0 !important;
  display:flex !important;
  align-items:center !important;
  opacity:.85 !important;
}

.proposal-summary-page-2 .sp2-disclaimer-text{
  font-size:10px !important;
  font-weight:400 !important;
  color:rgba(255,255,255,.82) !important;
  line-height:1.25 !important;
  letter-spacing:.01em !important;
}


/* ── Padding uniforme del chart-block ── */
.proposal-summary-page-2 .sp2-chart-block{
  padding-left:14px !important;
  padding-right:14px !important;
  padding-top:12px !important;
  padding-bottom:12px !important;
  position:static !important;
  overflow:visible !important;
}

/* ── Disclaimer: elemento independiente debajo de la gráfica ── */
.proposal-summary-page-2 .sp2-chart-disclaimer{
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  background:#0a0a0a !important;
  padding:9px 14px !important;
  margin:0 !important;
  width:100% !important;
  box-sizing:border-box !important;
  border-radius:8px !important;
  flex-shrink:0 !important;
  position:static !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}


/* ── Autoconsumo: segmento horizontal en gráfica Hoja 2 ── */
.proposal-summary-page-2 .summary-autoconsumo-bar{
  fill:#1d1d1f !important;
  opacity:.85 !important;
}

/* Añadir dot de autoconsumo en leyenda inline */
.proposal-summary-page-2 .sp2-legend-inline-item .legend-dot-autoconsumo{
  width:8px !important;
  height:8px !important;
  border-radius:50% !important;
  background:#1d1d1f !important;
  flex-shrink:0 !important;
  display:inline-block !important;
}


/* ── BENEFICIOS AMBIENTALES · Smart Design acordeón ── */
.smart-env-section{
  background:#ffffff;
}

.smart-env-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
  margin-top:8px;
}

/* ── BENEFICIOS AMBIENTALES · Hoja 2 ── */
.proposal-summary-page-2 .sp2-env-block{
  flex:0 0 auto !important;
  box-sizing:border-box !important;
}

.proposal-summary-page-2 .sp2-env-block .sp2-section-label{
  margin-bottom:8px !important;
}

.proposal-summary-page-2 .sp2-env-grid{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  gap:8px !important;
}

.proposal-summary-page-2 .sp2-env-card{
  background:#f7f7f8 !important;
  border:1px solid #e4e4e7 !important;
  border-radius:12px !important;
  padding:12px 14px !important;
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  box-sizing:border-box !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

.proposal-summary-page-2 .sp2-env-icon{
  width:40px !important;
  height:40px !important;
  border-radius:10px !important;
  background:#0a0a0a !important;
  color:#ffffff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-shrink:0 !important;
}

.proposal-summary-page-2 .sp2-env-info{
  display:flex !important;
  flex-direction:column !important;
  gap:1px !important;
  min-width:0 !important;
}

.proposal-summary-page-2 .sp2-env-value{
  font-size:18px !important;
  font-weight:700 !important;
  color:#0a0a0a !important;
  letter-spacing:-0.03em !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
}

.proposal-summary-page-2 .sp2-env-label{
  font-size:8.5px !important;
  font-weight:600 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  color:#0a0a0a !important;
  line-height:1.2 !important;
}

.proposal-summary-page-2 .sp2-env-sub{
  font-size:8px !important;
  font-weight:400 !important;
  color:#8e8e93 !important;
  letter-spacing:.02em !important;
}




/* ── Separación disclaimer → beneficios ambientales ── */
.proposal-summary-page-2 .sp2-env-block{
  margin-top:10px !important;
}


/* Nombre del proyecto en Hoja 2 — negrita */
.proposal-summary-page-2 #summaryP2ProjectName{
  font-weight:700 !important;
}


/* =========================================================
   FIX REAL IMPRESIÓN / PDF
   Mantiene diseño fijo carta y evita páginas en blanco
   ========================================================= */



/* =========================================================
   PRINT ENGINE — single source of truth
   ========================================================= */



/* =========================================================
   EXPORTAR PDF · SOLO HOJA 1 Y HOJA 2 DEL ACORDEÓN RESUMEN
   Mantiene el diseño completo sin ocultar textos internos
   ========================================================= */



/* =========================================================
   FIX PDF · preservar estructura visual del HTML
   No usar display:revert sobre hijos, porque rompe grids/flex/cards.
   ========================================================= */



/* =========================================================
   PRINT ÚNICO Y LIMPIO
   Exportar PDF imprime SOLO portada + hoja 2 del resumen.
   No reescribe la estructura interna de las fichas.
   ========================================================= */
@media print{
  @page{
    size: letter;
    margin: 0;
  }

  html,
  body{
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
    overflow:visible !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }

  /* ocultar UI completa */
  body > :not(.app-shell),
  .sidebar,
  .toolbar,
  .document-header,
  .document-footer,
  .proposal-summary-header,
  .proposal-cover-tools,
  .no-print{
    display:none !important;
  }

  .app-shell,
  .workspace,
  .sheet,
  #printArea,
  .proposal-summary-card,
  .proposal-summary-body{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    width:816px !important;
    max-width:816px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    background:#fff !important;
    overflow:visible !important;
  }

  .proposal-summary-body[hidden]{
    display:block !important;
  }

  /* imprimir únicamente las páginas del resumen */
  #printArea > :not(.proposal-summary-card),
  .proposal-summary-card > :not(.proposal-summary-body),
  .proposal-summary-body > :not(.proposal-letter-page){
    display:none !important;
  }

  .proposal-cover-page,
  .proposal-summary-page-2,
  .proposal-summary-page-3{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;

    width:816px !important;
    height:1056px !important;
    min-height:1056px !important;
    max-height:1056px !important;

    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    overflow:hidden !important;
    position:relative !important;
    background:#fff !important;

    page-break-before:auto !important;
    break-before:auto !important;
    page-break-inside:avoid !important;
    break-inside:avoid !important;
  }

  .proposal-cover-page{
    page-break-after:always !important;
    break-after:page !important;
  }

  .proposal-summary-page-2{
    page-break-after:always !important;
    break-after:page !important;
    margin-top:0 !important;
  }

  .proposal-summary-page-3{
    page-break-after:auto !important;
    break-after:auto !important;
    margin-top:0 !important;
  }

  /* no modificar display de todos los hijos; solo asegurar visibilidad */
  .proposal-cover-page *,
  .proposal-summary-page-2 *,
  .proposal-summary-page-3 *{
    visibility:visible !important;
    opacity:1 !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }

  input[type="file"],
  .summary-page2-photo-change,
  .proposal-cover-tools,
  .no-print{
    display:none !important;
  }

  .proposal-cover-bg,
  #proposalCoverBg,
  #sp3CronogramaImg,
  .sp3-cronograma-img{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }

  #proposalSummaryPage3 .sp3-cronograma-upload-area.has-image .sp3-cronograma-img,
  #sp3CronogramaImg[src^="data:image/"]{
    display:block !important;
  }
}


/* =========================================================
   Hoja 2 · iconos beneficios ambientales calcados estilo referencia
   ========================================================= */

.proposal-summary-page-2 .sp2-env-icon{
    background:#000000 !important;
    color:#ffffff !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
}

.proposal-summary-page-2 .sp2-env-svg{
    width:28px !important;
    height:28px !important;
    display:block !important;
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:4.4 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
}

.proposal-summary-page-2 .sp2-env-tree-svg{
    width:29px !important;
    height:29px !important;
}

.proposal-summary-page-2 .sp2-env-factory-svg{
    width:30px !important;
    height:30px !important;
}

.proposal-summary-page-2 .sp2-env-cart-svg{
    width:31px !important;
    height:31px !important;
}


/* Ajustes finos iconos ambientales */
.proposal-summary-page-2 .sp2-env-cart-svg{
    width:30px !important;
    height:30px !important;
    transform:translateY(-1px);
}

.proposal-summary-page-2 .sp2-env-tree-svg{
    width:29px !important;
    height:29px !important;
}


/* Árbol: asegurar visibilidad del tronco */
.proposal-summary-page-2 .sp2-env-tree-svg{
    width:29px !important;
    height:29px !important;
    overflow:visible !important;
}


/* =========================================================
   PORTADA REFINADA — ejecutivo premium sin romper layout
   Mantiene imagen en su posición actual
   ========================================================= */

/* Fondo completamente blanco */
.proposal-cover-page{
    background:#ffffff !important;
}

/* eliminar cualquier degradado heredado */
.proposal-cover-page::before,
.proposal-cover-page::after{
    background:none !important;
}

/* Más protagonismo al nombre del proyecto */
#proposalCoverProject{
    font-size:42px !important;
    line-height:1.08 !important;
    font-weight:700 !important;
    letter-spacing:-0.025em !important;
    color:#111111 !important;
}

/* potencia instalada más refinada */
#proposalCoverPower{
    font-size:20px !important;
    font-weight:500 !important;
    color:#6e6e73 !important;
    letter-spacing:-0.01em !important;
}

/* ubicación más limpia */
#proposalCoverLocationText{
    font-size:14px !important;
    font-weight:500 !important;
    color:#4a4a4a !important;
}

/* bloque de cotización más elegante */
.proposal-cover-quote{
    background:#ffffff !important;
    border:1px solid rgba(0,0,0,.08) !important;
    border-radius:20px !important;
    box-shadow:0 10px 30px rgba(0,0,0,.06) !important;
}

/* número de cotización */
.proposal-cover-quote-number{
    font-size:12.35px !important;
    font-weight:600 !important;
    color:#6e6e73 !important;
    letter-spacing:.08em !important;
}

/* título cotización */
.proposal-cover-quote h2{
    font-size:28px !important;
    font-weight:700 !important;
    color:#111111 !important;
    letter-spacing:-0.02em !important;
}

/* fecha más discreta */
.proposal-cover-date{
    font-size:12.35px !important;
    color:#6e6e73 !important;
    font-weight:500 !important;
}

/* suavizar líneas decorativas si existen */
.proposal-cover-page .decor-line,
.proposal-cover-page .cover-line{
    opacity:.35 !important;
}


/* Campo número de cotización en negro */
.proposal-cover-quote-number{
    background:#000000 !important;
    color:#ffffff !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:8px 14px !important;
    border-radius:999px !important;
    font-size:12px !important;
    font-weight:600 !important;
    letter-spacing:.08em !important;
}


/* =========================================================
   Hoja 01 · rectángulo del número de cotización en negro
   ========================================================= */
.proposal-cover-page .proposal-cover-quote{
    background:#000000 !important;
    background-color:#000000 !important;
    color:#ffffff !important;
    border:0 !important;
    box-shadow:none !important;
}

.proposal-cover-page .proposal-cover-quote span,
.proposal-cover-page .proposal-cover-quote #proposalCoverQuote,
.proposal-cover-page #proposalCoverQuote{
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
}


/* Hoja 01 · título proyecto más elegante y menos pesado */
#proposalCoverProject{
    font-weight:600 !important;
    letter-spacing:-0.02em !important;
}


/* Hoja 01 · título proyecto aún más ligero */
#proposalCoverProject{
    font-weight:500 !important;
    letter-spacing:-0.015em !important;
}


/* Hoja 01 · nombre empresa más refinado */
.proposal-cover-company,
#proposalCoverCompany,
.proposal-cover-company-name{
    font-weight:500 !important;
    letter-spacing:-0.01em !important;
}


/* Hoja 01 · Solar Projects, S.A. aún más delgado */
.proposal-cover-company,
#proposalCoverCompany,
.proposal-cover-company-name,
.proposal-cover-company *{
    font-weight:400 !important;
    letter-spacing:-0.005em !important;
}


/* Hoja 01 · rectángulo cotización con esquinas rectas */
.proposal-cover-page .proposal-cover-quote{
    border-radius:0 !important;
}


/* Hoja 01 · nombre del proyecto -15% */
.proposal-cover-page #proposalCoverProject,
.proposal-cover-title #proposalCoverProject{
    font-size:31.45px !important; /* 37px -15% */
}


/* Hoja 02: ocultar texto "Agregar foto aérea" cuando ya existe imagen cargada */
.summary-page2-photo-wrap.has-image .summary-page2-photo-placeholder,
.summary-page2-photo-placeholder.is-hidden{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

.summary-page2-aerial-img.has-image{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}


/* === FIX FINAL SOLARPRO: Hojas 02, 03 y 04 número de página en Title Case === */
.proposal-summary-page-2 .summary-page2-header .summary-page2-meta .summary-page2-page,
#proposalSummaryPage2 .summary-page2-page,
#proposalSummaryPage3 .summary-page2-page,
#proposalSummaryPage4 .summary-page2-page{
  text-transform: none !important;
}


/* Ajuste fino: subir texto Página 02 ligeramente */
.page-number,
.page-label,
.header-page-number {
  transform: translateY(-8px) !important;
}


/* Hoja 03 - base, reutiliza header y footer de hoja 02 */
.proposal-summary-page-3 {
  position: relative;
}


.summary-page3-body{
  padding: 240px 58px 90px !important;
  min-height:760px;
  box-sizing:border-box;
}


.summary-page3-placeholder {
  min-height: 620px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9b9b9b;
  font-size: 18px;
  font-weight: 500;
}


/* Hoja 03 minimal premium */
.summary-page3-body{
  padding:42px 58px 90px;
  min-height:760px;
  box-sizing:border-box;
}

.summary-page3-minimal{
  width:100%;
}

.sp3-section-label{
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  color:#6b7280;
  text-transform:uppercase;
  margin-bottom:28px;
  font-family:'IBM Plex Sans', sans-serif;
}

.sp3-equipment-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:42px 60px;
  margin-bottom:48px;
}

.sp3-stat{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.sp3-number{
  font-size:64px;
  line-height:1;
  font-weight:600;
  color:#111827;
  letter-spacing:-0.03em;
}

.sp3-text{
  font-size:14.4px;
  color:#6b7280;
  font-weight:500;
}

.sp3-divider{
  width:100%;
  height:1px;
  background:#e5e7eb;
  margin:20px 0 42px;
}

.sp3-scope-list{
  font-size:20px;
  line-height:1.7;
  color:#1f2937;
  max-width:900px;
  outline:none;
}

.sp3-scope-list ul{
  margin:0;
  padding-left:22px;
}

.sp3-scope-list li{
  margin:10px 0;
}


/* hoja 03 rebalanceada */
.summary-page3-body{
  padding:95px 58px 90px !important;
}

.sp3-section-label{
  margin-bottom:20px;
}

.sp3-equipment-grid{
  display:none !important;
}

.sp3-equipment-band{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
  margin-bottom:42px;
}

.sp3-band-item{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.sp3-band-number{
  font-size:42px;
  line-height:1;
  font-weight:600;
  color:#111827;
  letter-spacing:-0.02em;
  margin-bottom:10px;
}

.sp3-band-label{
  font-size:15px;
  color:#6b7280;
  font-weight:500;
  line-height:1.4;
}

.sp3-divider{
  margin:10px 0 34px;
}

.sp3-scope-list{
  font-size:14.4px;
  line-height:1.65;
  max-width:760px;
}

.sp3-scope-list li{
  margin:12px 0;
}



/* listado simple hoja 03 */
.sp3-equipment-band{
  display:none !important;
}

.sp3-simple-equipment-list{
  max-width:1400px;
  font-size:12px;
  line-height:1.55;
  color:#374151;
  font-weight:400;
  font-family:'IBM Plex Sans', sans-serif;
  outline:none;
  margin-bottom:24px;
}

.sp3-simple-equipment-list ul{
  margin:0;
  padding-left:24px;
}

.sp3-simple-equipment-list li{
  margin:4px 0;
}



.sp3-divider{
  display:none !important;
}

.sp3-scope-list{
  display:none !important;
}


/* FIX REAL HOJA 03: bajar bloque resumen de equipos */
#proposalSummaryPage3 .summary-page3-body{
  padding-top: 190px !important;
}

/* limpiar residuos de secciones eliminadas */
#proposalSummaryPage3 .sp3-divider,
#proposalSummaryPage3 .sp3-scope-list{
  display: none !important;
}



/* Disclaimer hoja 03 */
.sp3-equipment-disclaimer{
  margin-top:18px;
  background:#374151;
  color:#ffffff;
  width: fit-content;
  max-width: calc(100% - 140px);
  height:26px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:2px 18px 2px 14px;
  box-sizing:border-box;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  font-weight:400;
  line-height:1;
  white-space:nowrap;
}

.sp3-disclaimer-asterisk{
  font-weight:700;
  font-size:12px;
  line-height:1;
}



/* Hoja 03 - ficha sutil */
#proposalSummaryPage3 .sp3-card-wrapper{
  background:#ffffff;
  border:1px solid #e5e7eb;
  border-radius:16px;
  padding:26px 28px;
  margin-top:18px;
  box-sizing:border-box;
  width:100%;
}

/* mantener disclaimer alineado dentro de ficha */
#proposalSummaryPage3 .sp3-equipment-disclaimer{
  margin-top:18px;
}


/* título dentro de ficha */
#proposalSummaryPage3 .sp3-section-label{
  color:#111827 !important;
  margin-bottom:18px;
}

#proposalSummaryPage3 .sp3-card-wrapper{
  padding-top:22px;
}


/* subir ficha principal */
#proposalSummaryPage3 .sp3-card-wrapper{
  margin-top:-54px !important;
}

/* segunda ficha garantías */
#proposalSummaryPage3 .sp3-warranty-card{
  margin-top:22px !important;

  background:#f5f6f8;
}

.sp3-warranty-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.sp3-warranty-item{
  display:flex;
  gap:14px;
  align-items:flex-start;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:12px;
  line-height:1.45;
  color:#374151;
}

.sp3-warranty-years{
  min-width:78px;
  font-weight:700;
  color:#111827;
}

.sp3-warranty-text{
  flex:1;
}


/* imagen en ficha garantías */
.sp3-warranty-layout{
  display:flex;
  align-items:center;
  gap:22px;
}

.sp3-warranty-image-wrap{
  flex:0 0 160px;
  display:flex;
  justify-content:center;
  align-items:center;
}

.sp3-warranty-image{
  width:150px;
  height:auto;
  object-fit:contain;
}

.sp3-warranty-list{
  flex:1;
}


/* ajuste fino ficha garantías */
#proposalSummaryPage3 .sp3-warranty-card{
  padding-top:16px !important;
  padding-bottom:16px !important;
  min-height:auto !important;
}

#proposalSummaryPage3 .sp3-warranty-layout{
  gap:8px !important;
  align-items:center;
}

#proposalSummaryPage3 .sp3-warranty-image-wrap{
  flex:0 0 120px !important;
  justify-content:flex-start !important;
  margin-left:-12px;
}

#proposalSummaryPage3 .sp3-warranty-image{
  width:115px !important;
}

#proposalSummaryPage3 .sp3-warranty-list{
  margin-left:-6px;
}

#proposalSummaryPage3 .sp3-warranty-item{
  gap:10px !important;
}


/* reducir altura adicional ficha garantías */
#proposalSummaryPage3 .sp3-warranty-card{
  padding-top:10px !important;
  padding-bottom:10px !important;
}

#proposalSummaryPage3 .sp3-warranty-list{
  gap:3px !important;
}

#proposalSummaryPage3 .sp3-warranty-item{
  line-height:1.2 !important;
}


/* FIX REAL altura ficha garantías */
#proposalSummaryPage3 .sp3-warranty-card{
  min-height: 150px !important;
  height: 150px !important;
  overflow: hidden;
}

#proposalSummaryPage3 .sp3-warranty-layout{
  height: 95px !important;
  min-height: 95px !important;
  align-items: center !important;
}

#proposalSummaryPage3 .sp3-warranty-image{
  width: 95px !important;
  max-height: 95px !important;
  object-fit: contain;
}

#proposalSummaryPage3 .sp3-warranty-image-wrap{
  flex: 0 0 100px !important;
  height: 95px !important;
}

#proposalSummaryPage3 .sp3-warranty-list{
  justify-content:center;
}


/* ajuste final ficha gris + imagen */
#proposalSummaryPage3 .sp3-warranty-card{
  min-height:120px !important;
  height:120px !important;
  padding-top:8px !important;
  padding-bottom:8px !important;
}

#proposalSummaryPage3 .sp3-warranty-layout{
  height:78px !important;
  min-height:78px !important;
}

#proposalSummaryPage3 .sp3-warranty-image{
  width:125px !important;
  max-height:125px !important;
}

#proposalSummaryPage3 .sp3-warranty-image-wrap{
  flex:0 0 130px !important;
  height:78px !important;
}


/* subir contenido interno ficha garantías */
#proposalSummaryPage3 .sp3-warranty-layout{
  align-items:flex-start !important;
  padding-top:2px;
}

#proposalSummaryPage3 .sp3-warranty-image-wrap{
  margin-top:-10px !important;
}

#proposalSummaryPage3 .sp3-warranty-list{
  margin-top:-8px !important;
}


/* centrar imagen con bloque de texto */
#proposalSummaryPage3 .sp3-warranty-layout{
  align-items:center !important;
  padding-top:0 !important;
}

#proposalSummaryPage3 .sp3-warranty-image-wrap{
  margin-top:0 !important;
  display:flex;
  align-items:center !important;
  justify-content:flex-start;
}

#proposalSummaryPage3 .sp3-warranty-list{
  margin-top:0 !important;
}


/* subir conjunto completo dentro de ficha */
#proposalSummaryPage3 .sp3-warranty-layout{
  transform: translateY(-10px);
}


/* Hoja 03 - ficha cronograma */
#proposalSummaryPage3 .sp3-cronograma-card{
  margin-top: 72px;
  background:#ffffff;
  border:1px solid #eceff3;
  border-radius:16px;
  padding:18px 22px;
  box-sizing:border-box;
  width:100%;
}

#proposalSummaryPage3 .sp3-cronograma-upload-area{
  width:100%;
  height:150px;
  border:1px dashed #d9dde3;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fafbfc;
  box-sizing:border-box;
}

#proposalSummaryPage3 .sp3-cronograma-placeholder{
  font-family:'IBM Plex Sans', sans-serif;
  font-size:12px;
  color:#7b8794;
  letter-spacing:.04em;
}


/* cronograma como ficha independiente */
#proposalSummaryPage3 .sp3-cronograma-card{
  margin-top:48px !important;
}


/* Cronograma autoscaling hoja 03 */
#proposalSummaryPage3 .sp3-cronograma-card{
  margin-top:48px !important;
  padding:16px 22px 18px !important;
}

#proposalSummaryPage3 .sp3-cronograma-upload-area{
  width:100%;
  height:260px !important;
  max-height:260px !important;
  min-height:120px;
  border:1px dashed #d9dde3;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fafbfc;
  box-sizing:border-box;
  overflow:hidden;
  cursor:pointer;
}

#proposalSummaryPage3 .sp3-cronograma-img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}

#proposalSummaryPage3 .sp3-cronograma-upload-area.has-image{
  border-style:solid;
  background:#ffffff;
}

#proposalSummaryPage3 .sp3-cronograma-upload-area.has-image .sp3-cronograma-placeholder{
  display:none !important;
}
/* ================================================================
   HOJA 01 · PORTADA DEFINITIVA — CONTENIDO ARRIBA / FOTO ABAJO
   Imagen siempre pegada: borde inferior, izquierdo y derecho.
   Todo el texto en zona blanca superior, legible y elegante.
   ================================================================ */

/* Página base */
.proposal-cover-page{
  background:#ffffff !important;
  color:#0a0a0a !important;
}

/* ── IMAGEN: anclada al borde inferior y laterales ── */
.proposal-cover-page .proposal-cover-bg{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  top:auto !important;
  width:100% !important;
  height:46% !important;
  object-fit:cover !important;
  object-position:center bottom !important;
  z-index:1 !important;
  display:block !important;
}

/* Fade blanco sobre la foto, de arriba hacia abajo */
.proposal-cover-page .pc-photo-fade{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  height:46% !important;
  z-index:2 !important;
  background:linear-gradient(
    to bottom,
    #ffffff 0%,
    rgba(255,255,255,.85) 20%,
    rgba(255,255,255,.3) 55%,
    rgba(255,255,255,0) 100%
  ) !important;
  pointer-events:none !important;
}

/* ── BODY: zona blanca superior, flex column ── */
.proposal-cover-page .pc-body{
  position:absolute !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  /* termina antes de la foto — deja espacio visual a la imagen */
  bottom:38% !important;
  z-index:5 !important;
  display:flex !important;
  flex-direction:column !important;
  padding:46px 56px 32px 52px !important;
  box-sizing:border-box !important;
  gap:0 !important;
}

/* ── ROW 1: logo izquierda + badge CTZ derecha ── */
.proposal-cover-page .pc-row-top{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  flex-shrink:0 !important;
  margin-bottom:28px !important;
}

.proposal-cover-page .pc-logo{
  width:152px !important;
  flex-shrink:0 !important;
}

.proposal-cover-page .pc-logo img{
  width:100% !important;
  height:auto !important;
  display:block !important;
}

/* Badge CTZ */
.proposal-cover-page .pc-badge{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:4px !important;
}

.proposal-cover-page .pc-badge-label{
  font-size:7.5px !important;
  font-weight:600 !important;
  letter-spacing:.26em !important;
  text-transform:uppercase !important;
  color:#aeaeb2 !important;
  display:block !important;
}

.proposal-cover-page .pc-badge-value{
  font-size:20px !important;
  font-weight:800 !important;
  color:#ffffff !important;
  background:#0a0a0a !important;
  padding:6px 18px !important;
  letter-spacing:.04em !important;
  display:block !important;
  line-height:1 !important;
  border-radius:3px !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

/* ── LÍNEA AMARILLA ── */
.proposal-cover-page .pc-rule{
  height:4px !important;
  background:#f1ea0b !important;
  width:100% !important;
  flex-shrink:0 !important;
  margin-bottom:24px !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

/* ── TÍTULO ── */
.proposal-cover-page .pc-title-block{
  flex:1 1 auto !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-end !important;
  gap:10px !important;
  padding-bottom:24px !important;
}

.proposal-cover-page .pc-eyebrow{
  font-size:7.5px !important;
  font-weight:600 !important;
  letter-spacing:.24em !important;
  text-transform:uppercase !important;
  color:#aeaeb2 !important;
  display:block !important;
}

.proposal-cover-page .pc-title{
  margin:0 !important;
  font-size:58px !important;
  font-weight:800 !important;
  line-height:.92 !important;
  letter-spacing:-.048em !important;
  color:#0a0a0a !important;
  word-break:break-word !important;
  hyphens:auto !important;
  text-align:right !important;
}

/* ── SPECS: 3 columnas separadas ── */
.proposal-cover-page .pc-specs{
  display:flex !important;
  align-items:flex-start !important;
  flex-shrink:0 !important;
  padding:18px 0 !important;
  border-top:1px solid #e8e8ea !important;
  border-bottom:1px solid #e8e8ea !important;
  margin-bottom:16px !important;
  gap:0 !important;
}

.proposal-cover-page .pc-spec{
  display:flex !important;
  flex-direction:column !important;
  gap:5px !important;
  flex:1 !important;
  padding-right:24px !important;
  min-width:0 !important;
}

.proposal-cover-page .pc-spec-sep{
  width:1px !important;
  align-self:stretch !important;
  background:#e8e8ea !important;
  flex-shrink:0 !important;
  margin-right:24px !important;
}

.proposal-cover-page .pc-spec-label{
  font-size:7px !important;
  font-weight:600 !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  color:#aeaeb2 !important;
  display:block !important;
}

.proposal-cover-page .pc-spec-value{
  font-size:17px !important;
  font-weight:700 !important;
  color:#0a0a0a !important;
  letter-spacing:-.015em !important;
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* ── FOOTER empresa ── */
.proposal-cover-page .pc-footer{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  flex-shrink:0 !important;
}

.proposal-cover-page .pc-footer-company{
  font-size:11px !important;
  font-weight:700 !important;
  color:#0a0a0a !important;
}

.proposal-cover-page .pc-footer-dot{
  width:3px !important;
  height:3px !important;
  border-radius:50% !important;
  background:#d1d1d6 !important;
  display:inline-block !important;
  flex-shrink:0 !important;
}

.proposal-cover-page .pc-footer-info{
  font-size:10px !important;
  font-weight:400 !important;
  color:#8e8e93 !important;
}

/* ── PRINT ── */
@media print{
  .proposal-cover-page,
  .proposal-cover-page *{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}


/* ── Todo el contenido alineado a la derecha ── */
.proposal-cover-page .pc-body{
  left:auto !important;
  right:0 !important;
  width:58% !important;
  padding:46px 56px 32px 32px !important;
}

.proposal-cover-page .pc-title{
  text-align:right !important;
}

.proposal-cover-page .pc-eyebrow{
  text-align:right !important;
}

.proposal-cover-page .pc-footer{
  justify-content:flex-end !important;
  flex-wrap:wrap !important;
}

.proposal-cover-page .pc-rule{
  margin-left:auto !important;
}


/* ── Logo fijo izquierda, fuera del pc-body ── */
.proposal-cover-page .pc-logo-fixed{
  position:absolute !important;
  top:46px !important;
  left:52px !important;
  width:148px !important;
  z-index:6 !important;
}

.proposal-cover-page .pc-logo-fixed img{
  width:100% !important;
  height:auto !important;
  display:block !important;
}

/* Ocultar logo antiguo si quedara */
.proposal-cover-page .pc-logo{
  display:none !important;
}

/* ── Fecha inline en fila superior — mismo nivel que CTZ ── */
.proposal-cover-page .pc-date-inline{
  display:flex !important;
  flex-direction:column !important;
  gap:3px !important;
  align-items:flex-end !important;
}

.proposal-cover-page .pc-date-label{
  font-size:7.5px !important;
  font-weight:600 !important;
  letter-spacing:.26em !important;
  text-transform:uppercase !important;
  color:#aeaeb2 !important;
  display:block !important;
}

.proposal-cover-page .pc-date-value{
  font-size:14px !important;
  font-weight:700 !important;
  color:#0a0a0a !important;
  letter-spacing:.01em !important;
  display:block !important;
}

/* CTZ badge más integrado — refina el diseño */
.proposal-cover-page .pc-badge{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:3px !important;
  border-left:1px solid #e8e8ea !important;
  padding-left:18px !important;
  margin-left:18px !important;
}

.proposal-cover-page .pc-badge-value{
  font-size:19px !important;
  font-weight:800 !important;
  color:#ffffff !important;
  background:#0a0a0a !important;
  padding:5px 16px !important;
  letter-spacing:.05em !important;
  display:block !important;
  line-height:1 !important;
  border-radius:3px !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}


/* ── Meta derecha: fecha arriba + CTZ abajo, apilados verticalmente ── */
.proposal-cover-page .pc-meta-right{
  position:absolute !important;
  top:46px !important;
  right:52px !important;
  z-index:6 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:12px !important;
}

/* Fecha */
.proposal-cover-page .pc-meta-right .pc-date-inline{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:3px !important;
}

/* CTZ badge */
.proposal-cover-page .pc-meta-right .pc-badge{
  border-left:none !important;
  padding-left:0 !important;
  margin-left:0 !important;
  align-items:flex-end !important;
}

/* Quitar línea amarilla */
.proposal-cover-page .pc-rule{
  display:none !important;
}

/* Quitar footer */
.proposal-cover-page .pc-footer{
  display:none !important;
}

/* pc-body: solo título y specs, sin row-top */
.proposal-cover-page .pc-row-top{
  display:none !important;
}


/* ── Barra inferior: negro transparente, de lado a lado, sobre la imagen ── */
.proposal-cover-page .pc-bottom-bar{
  position:absolute !important;
  bottom:0 !important;
  left:0 !important;
  right:0 !important;
  z-index:6 !important;
  background:rgba(0,0,0,.58) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:14px !important;
  padding:13px 52px !important;
  box-sizing:border-box !important;
  font-size:11px !important;
  font-weight:500 !important;
  color:rgba(255,255,255,.88) !important;
  letter-spacing:.04em !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

.proposal-cover-page .pc-bar-sep{
  color:rgba(255,255,255,.35) !important;
  font-size:12px !important;
  font-weight:300 !important;
}


/* ── Subir bloque de contenido ~4 líneas ── */
.proposal-cover-page .pc-body{
  bottom:50% !important;
}


#proposalCoverPower{
  text-align:right !important;
  padding-right:8px !important;
}


/* Alinear label POTENCIA DC con inicio del valor numérico */
#proposalCoverPower{
  text-align:right !important;
  padding-right:8px !important;
}

.pc-spec:first-child .pc-spec-label{
  display:block;
  width:100%;
  text-align:right;
  padding-right:8px;
  box-sizing:border-box;
}


/* Sugerencia tamaño imagen portada */
.proposal-cover-image-hint{
  display:block;
  margin-top:6px;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  color:#7b8794;
  line-height:1.35;
}


/* Bajar bloque fecha + cotización en portada */
.proposal-cover .pc-meta,
.proposal-cover .pc-top-right,
.proposal-cover .pc-header-right{
  margin-top:70px !important;
}


/* bajar realmente fecha + cotización más cerca del proyecto */
.proposal-cover .pc-meta,
.proposal-cover .pc-top-right,
.proposal-cover .pc-header-right{
  margin-top:140px !important;
}


/* mover bloque REAL fecha/cotización hacia abajo */
.pc-meta{
  position: relative !important;
  top: 95px !important;
}


/* FIX FINAL: bajar bloque fecha + cotización portada hoja 01 */
#proposalCoverPage .pc-meta-right{
  transform: translateY(105px) !important;
}

#proposalCoverPage .pc-meta-right,
#proposalCoverPage .pc-meta-right *{
  position: relative;
  z-index: 20;
}


/* Bloque contacto portada sobre fecha */
#proposalCoverPage .pc-cover-contact-block{
  position:absolute;
  top:64px;
  right:54px;
  z-index:25;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
  font-family:'IBM Plex Sans', sans-serif;
  color:#0f1b2d;
  text-align:right;
  line-height:1.15;
}

#proposalCoverPage .pc-cover-contact-block strong{
  font-size:14.4px;
  font-weight:700;
}

#proposalCoverPage .pc-cover-contact-block span{
  font-size:12.8px;
  font-weight:400;
}


/* Atención row portada */
#proposalCoverPage .pc-attention-row{
  margin-top:28px;
  display:flex;
  align-items:baseline;
  gap:10px;
  justify-content:flex-start;
}

#proposalCoverPage .pc-attention-label{
  font-family:'IBM Plex Sans', sans-serif;
  font-size:20px;
  font-weight:400;
  color:#0f1b2d;
}

#proposalCoverPage .pc-attention-value{
  font-family:'IBM Plex Sans', sans-serif;
  font-size:20px;
  font-weight:700;
  color:#0f1b2d;
}


/* refinamiento bloque atención */
#proposalCoverPage .pc-attention-row{
  justify-content:flex-end !important;
  text-align:right;
}

#proposalCoverPage .pc-attention-label{
  font-size:16px !important;
}

#proposalCoverPage .pc-attention-value{
  font-size:16px !important;
}


/* Alinear bloque ubicación a la derecha */
#proposalCoverPage .pc-spec:last-child .pc-spec-label{
  display:block;
  width:100%;
  text-align:right;
  box-sizing:border-box;
}

#proposalCoverPage #proposalCoverLocationText,
#proposalCoverPage .pc-spec:last-child .pc-spec-value{
  display:block;
  width:100%;
  text-align:right;
  box-sizing:border-box;
}


/* Hoja 04 - Oferta económica */
#proposalSummaryPage4{
  position:relative;
}

#proposalSummaryPage4 .summary-page4-body{
  min-height:760px;
  box-sizing:border-box;
  padding:0 0 90px;
}

#proposalSummaryPage4 .sp4-offer-block{
  margin-top:150px;
  margin-left:19px;
  padding:0 38px;
  box-sizing:border-box;
  max-width:760px;
}

#proposalSummaryPage4 .sp4-offer-title{
  display:block;
  background:transparent;
  color:#111827;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:0;
  border-radius:0;
  line-height:1.1;
  margin-bottom:18px;
}

#proposalSummaryPage4 .sp4-offer-description{
  margin-top:14px;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  font-weight:400;
  color:#6b7280;
  line-height:1.45;
}

#proposalSummaryPage4 .sp4-section-title{
  margin-top:32px;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#111827;
  line-height:1.1;
  margin-bottom:14px;
}

#proposalSummaryPage4 .sp4-scope-list{
  margin-top:8px;
  padding-left:26px;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  font-weight:400;
  color:#6b7280;
  line-height:1.55;
}

#proposalSummaryPage4 .sp4-scope-list li{
  margin-bottom:3px;
}


/* Hoja 04 precio sistema */
#proposalSummaryPage4 .sp4-price-title{
  margin-top:32px;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#111827;
  line-height:1.1;
  margin-bottom:14px;
}


#proposalSummaryPage4 .sp4-billing-clone{
  margin-top:8px;
  margin-left:0;
  width:100%;
  max-width:860px;
  background:#ffffff;
  border:1px solid #e5e7eb;
  border-radius:16px;
  padding:18px 22px;
  box-sizing:border-box;
}


#proposalSummaryPage4 .sp4-billing-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:13px;
  color:#4b5563;
  padding:6px 0;
}

#proposalSummaryPage4 .sp4-billing-row strong{
  color:#111827;
  font-weight:700;
}


/* Hoja 04 - tabla espejo facturación */
#proposalSummaryPage4 .sp4-billing-title{
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  font-weight:700;
  color:#6b7280;
  text-transform:uppercase;
  letter-spacing:.12em;
  margin-bottom:12px;
}

#proposalSummaryPage4 .sp4-billing-table{
  width:100%;
  border-collapse:collapse;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  color:#374151;
}

#proposalSummaryPage4 .sp4-billing-table th{
  text-align:left;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#6b7280;
  font-weight:700;
  padding:6px 0;
  border-bottom:1px solid #e5e7eb;
}

#proposalSummaryPage4 .sp4-billing-table td{
  padding:6px 0;
  border-bottom:1px solid #eef0f3;
}

#proposalSummaryPage4 .sp4-billing-table td:last-child,
#proposalSummaryPage4 .sp4-billing-table th:last-child{
  text-align:right;
}

#proposalSummaryPage4 .sp4-billing-table tfoot td{
  font-weight:600;
  color:#111827;
}

#proposalSummaryPage4 .sp4-billing-total-row td{
  font-weight:800;
}


/* Hoja 04 - totales fuera de ficha y alineados a columna derecha */
#proposalSummaryPage4 .sp4-billing-totals-outside{
  max-width:860px;
  margin-top:10px;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  color:#111827;
}

#proposalSummaryPage4 .sp4-total-line{
  display:grid;
  grid-template-columns:1fr 140px;
  align-items:center;
  gap:18px;
  padding:4px 22px 4px 0;
}

#proposalSummaryPage4 .sp4-total-line span{
  text-align:right;
  color:#4b5563;
  font-weight:500;
}

#proposalSummaryPage4 .sp4-total-line strong{
  text-align:right;
  font-weight:700;
}

#proposalSummaryPage4 .sp4-grand-total{
  margin-top:2px;
  font-weight:800;
}

#proposalSummaryPage4 .sp4-grand-total span,
#proposalSummaryPage4 .sp4-grand-total strong{
  font-weight:800;
  color:#111827;
}


/* Bloque de información adicional (Observaciones, Tiempos, Condiciones) */
#proposalSummaryPage4 .sp4-additional-info{
  margin-top:42px;
  max-width:860px;
  font-family:'IBM Plex Sans', sans-serif;
}

#proposalSummaryPage4 .sp4-info-section{
  margin-bottom:32px;
}

#proposalSummaryPage4 .sp4-info-title{
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#111827;
  margin:0 0 12px 0;
  line-height:1.1;
}

#proposalSummaryPage4 .sp4-info-description{
  font-size:11px;
  font-weight:400;
  color:#374151;
  margin:0 0 8px 0;
  line-height:1.55;
}

#proposalSummaryPage4 .sp4-info-list{
  margin:0;
  padding-left:26px;
  font-size:11px;
  font-weight:400;
  color:#374151;
  line-height:1.35;
}

#proposalSummaryPage4 .sp4-info-list li{
  margin-bottom:2px;
}

#proposalSummaryPage4 .sp4-info-list-simple{
  list-style-type:disc;
}


/* Tabla hoja 04 nuevas columnas */
#proposalSummaryPage4 .sp4-billing-table th:first-child,
#proposalSummaryPage4 .sp4-billing-table td:first-child{
  width:70px;
  text-align:center;
}

#proposalSummaryPage4 .sp4-billing-table th:nth-child(3),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(3),
#proposalSummaryPage4 .sp4-billing-table th:nth-child(4),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(4){
  text-align:right;
}

#proposalSummaryPage4 .sp4-billing-table th:nth-child(2),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(2){
  text-align:left;
}


/* FIX REAL tabla Sistema Fotovoltaico hoja 04 */
#proposalSummaryPage4 .sp4-billing-table{
  table-layout:fixed !important;
  width:100% !important;
}

#proposalSummaryPage4 .sp4-billing-table th,
#proposalSummaryPage4 .sp4-billing-table td{
  box-sizing:border-box;
  vertical-align:middle !important;
  white-space:normal;
}

#proposalSummaryPage4 .sp4-billing-table th:nth-child(1),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(1){
  width:70px !important;
  text-align:center !important;
}

#proposalSummaryPage4 .sp4-billing-table th:nth-child(2),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(2){
  width:auto !important;
  text-align:left !important;
  padding-left:8px !important;
}

#proposalSummaryPage4 .sp4-billing-table th:nth-child(3),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(3){
  width:150px !important;
  text-align:right !important;
}

#proposalSummaryPage4 .sp4-billing-table th:nth-child(4),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(4){
  width:150px !important;
  text-align:right !important;
}

#proposalSummaryPage4 .sp4-billing-table .sp4-col-qty{
  text-align:center !important;
  font-weight:600;
  color:#111827;
}

#proposalSummaryPage4 .sp4-billing-table .sp4-col-desc{
  text-align:left !important;
  color:#374151;
}

#proposalSummaryPage4 .sp4-billing-table .sp4-col-money{
  text-align:right !important;
  color:#111827;
  font-weight:600;
  white-space:nowrap !important;
}


/* FIX puntual: asegurar que la imagen de portada se renderice también en impresión/PDF */
@media print{
  #proposalCoverPage{
    isolation:isolate !important;
    background:#ffffff !important;
    /* Safari: overflow:hidden recorta hijos absolute en print; visible los muestra */
    overflow:visible !important;
  }

  /* Canvas pre-renderizado para Safari (reemplaza el <img> en print) */
  #_coverCanvasSafariFix{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }

  #proposalCoverBg.proposal-cover-bg{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    top:570px !important;
    bottom:auto !important;
    width:816px !important;
    height:486px !important;
    max-width:none !important;
    max-height:none !important;
    object-fit:cover !important;
    object-position:center bottom !important;
    z-index:1 !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}

/* Ajuste puntual solicitado: reducir separación entre líneas en fichas de resumen hojas 03 y 04 */
#proposalSummaryPage3 .sp3-simple-equipment-list{
  line-height:1.28 !important;
  margin-bottom:16px !important;
}

#proposalSummaryPage3 .sp3-simple-equipment-list li{
  margin:1px 0 !important;
}

#proposalSummaryPage4 .sp4-scope-list{
  line-height:1.32 !important;
}

#proposalSummaryPage4 .sp4-scope-list li{
  margin-bottom:1px !important;
}

#proposalSummaryPage4 .sp4-billing-table th,
#proposalSummaryPage4 .sp4-billing-table td{
  line-height:1.25 !important;
}

#proposalSummaryPage4 .sp4-billing-table td{
  padding-top:4px !important;
  padding-bottom:4px !important;
}

/* =========================================================
   HOJA 04 · Ficha precio del sistema · Premium UI refresh
   Cambio puntual: solo presentación visual, sin alterar JS ni datos.
   ========================================================= */
#proposalSummaryPage4 .sp4-price-title{
  margin-bottom:12px !important;
}

#proposalSummaryPage4 .sp4-billing-clone{
  position:relative !important;
  overflow:hidden !important;
  margin-top:6px !important;
  width:100% !important;
  max-width:860px !important;
  padding:0 !important;
  border:1px solid rgba(17,24,39,.08) !important;
  border-radius:22px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,250,252,.98) 100%) !important;
  box-shadow:
    0 12px 28px rgba(15,23,42,.07),
    0 1px 0 rgba(255,255,255,.92) inset !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 .sp4-billing-clone::before{
  content:"" !important;
  position:absolute !important;
  inset:0 0 auto 0 !important;
  height:4px !important;
  background:linear-gradient(90deg, #111827 0%, #9ca3af 46%, #f1ea0b 100%) !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 .sp4-billing-clone::after{
  content:"" !important;
  position:absolute !important;
  top:-95px !important;
  right:-115px !important;
  width:200px !important;
  height:200px !important;
  border-radius:999px !important;
  background:radial-gradient(circle, rgba(241,234,11,.20) 0%, rgba(241,234,11,.07) 38%, rgba(241,234,11,0) 68%) !important;
  pointer-events:none !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 .sp4-billing-title{
  position:relative !important;
  z-index:1 !important;
  margin:0 !important;
  padding:16px 20px 12px 20px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  font-size:10.5px !important;
  font-weight:750 !important;
  letter-spacing:.10em !important;
  color:#111827 !important;
  border-bottom:1px solid rgba(229,231,235,.86) !important;
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.28)) !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 .sp4-billing-title::after{
  content:none !important;
  display:none !important;
}

#proposalSummaryPage4 .sp4-billing-table{
  position:relative !important;
  z-index:1 !important;
  margin:0 !important;
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  table-layout:fixed !important;
  font-size:11px !important;
  color:#111827 !important;
  background:transparent !important;
}

#proposalSummaryPage4 .sp4-billing-table thead th{
  padding:8px 20px 7px 20px !important;
  background:rgba(249,250,251,.92) !important;
  color:#6b7280 !important;
  border-bottom:1px solid rgba(229,231,235,.92) !important;
  font-size:8.5px !important;
  font-weight:700 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 .sp4-billing-table tbody td{
  padding:11px 20px !important;
  border-bottom:none !important;
  background:#ffffff !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 .sp4-billing-table tbody tr + tr td{
  border-top:1px solid rgba(238,240,243,.95) !important;
}

#proposalSummaryPage4 .sp4-billing-table th:nth-child(1),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(1){
  width:62px !important;
  text-align:center !important;
}

#proposalSummaryPage4 .sp4-billing-table th:nth-child(2),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(2){
  width:auto !important;
  text-align:left !important;
  padding-left:8px !important;
}

#proposalSummaryPage4 .sp4-billing-table th:nth-child(3),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(3),
#proposalSummaryPage4 .sp4-billing-table th:nth-child(4),
#proposalSummaryPage4 .sp4-billing-table td:nth-child(4){
  width:142px !important;
  text-align:right !important;
}

#proposalSummaryPage4 .sp4-billing-table .sp4-col-qty{
  color:#111827 !important;
  font-weight:750 !important;
}

#proposalSummaryPage4 .sp4-billing-table .sp4-col-desc{
  color:#1f2937 !important;
  font-weight:500 !important;
  line-height:1.35 !important;
}

#proposalSummaryPage4 .sp4-billing-table .sp4-col-money{
  color:#111827 !important;
  font-weight:750 !important;
  letter-spacing:-.01em !important;
  white-space:nowrap !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside{
  max-width:860px !important;
  margin-top:8px !important;
  padding:10px 16px !important;
  border:1px solid rgba(229,231,235,.92) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg, #ffffff 0%, #f9fafb 100%) !important;
  box-shadow:0 7px 18px rgba(15,23,42,.04) !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 .sp4-total-line{
  grid-template-columns:1fr 136px !important;
  gap:14px !important;
  padding:3px 0 !important;
}

#proposalSummaryPage4 .sp4-total-line span{
  color:#6b7280 !important;
  font-size:9.5px !important;
  font-weight:600 !important;
  letter-spacing:.02em !important;
}

#proposalSummaryPage4 .sp4-total-line strong{
  color:#111827 !important;
  font-size:11px !important;
  font-weight:750 !important;
  letter-spacing:-.01em !important;
}

#proposalSummaryPage4 .sp4-grand-total{
  margin-top:6px !important;
  padding-top:9px !important;
  border-top:1px solid rgba(209,213,219,.9) !important;
}

#proposalSummaryPage4 .sp4-grand-total span{
  color:#111827 !important;
  font-size:10.5px !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.09em !important;
}

#proposalSummaryPage4 .sp4-grand-total strong{
  color:#111827 !important;
  font-size:14.5px !important;
  font-weight:850 !important;
  letter-spacing:-.035em !important;
}

@media print{
  #proposalSummaryPage4 .sp4-billing-clone,
  #proposalSummaryPage4 .sp4-billing-totals-outside,
  #proposalSummaryPage4 .sp4-billing-clone *,
  #proposalSummaryPage4 .sp4-billing-totals-outside *{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}


/* Hoja 04 final layout fix */
#proposalPage4BillingClone{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    position:relative;
}

#proposalPage4BillingClone .sp4-system-title,
#proposalPage4BillingClone .system-title,
#proposalPage4BillingClone .billing-title{
    width:100%;
    text-align:center !important;
    justify-content:center !important;
    display:flex !important;
    white-space:nowrap;
    margin-bottom:12px !important;
    font-weight:600;
}

.sp4-billing-totals-outside,
.sp4-totals-right{
    width:100%;
    display:flex !important;
    flex-direction:column;
    align-items:flex-end !important;
    text-align:right !important;
    margin-top:8px;
    padding-right:0px;
}

.sp4-billing-totals-outside .billing-total-row,
.sp4-billing-totals-outside .total-row,
.sp4-totals-right .billing-total-row,
.sp4-totals-right .total-row{
    width:auto;
    min-width:240px;
    justify-content:flex-end;
}

/* Hoja 04 · ajuste puntual solicitado
   - Quita fondo tipo etiqueta del título dentro de la ficha.
   - Quita formato de ficha a Base imponible / IVA / Total con IVA.
   - Mantiene los totales fuera de la ficha y alineados a la derecha. */
#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-title{
  width:100% !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  text-align:center !important;
  white-space:nowrap !important;
  margin:0 0 10px 0 !important;
  padding:14px 20px 8px 20px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside{
  max-width:860px !important;
  width:100% !important;
  margin:8px auto 0 auto !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  text-align:right !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-total-line{
  width:300px !important;
  display:grid !important;
  grid-template-columns:1fr auto !important;
  align-items:center !important;
  gap:18px !important;
  padding:2px 0 !important;
  margin:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-total-line span{
  text-align:left !important;
  color:#111827 !important;
  font-size:10px !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-total-line strong{
  text-align:right !important;
  color:#111827 !important;
  font-size:10.5px !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-grand-total{
  margin-top:3px !important;
  padding-top:5px !important;
  border-top:1px solid rgba(17,24,39,.16) !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-grand-total span,
#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-grand-total strong{
  font-weight:800 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}


/* Hoja 04 · alineación REAL de totales externos con columna TOTAL */
#proposalSummaryPage4 .sp4-billing-totals-outside{
  box-sizing:border-box !important;
  max-width:860px !important;
  width:100% !important;
  margin:8px 0 0 0 !important;
  padding:0 20px 0 0 !important; /* mismo padding derecho visual de la columna TOTAL */
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-total-line{
  box-sizing:border-box !important;
  width:300px !important;
  display:grid !important;
  grid-template-columns:1fr 132px !important;
  column-gap:18px !important;
  align-items:center !important;
  padding:2px 0 !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-total-line span{
  text-align:left !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-total-line strong{
  display:block !important;
  width:132px !important;
  min-width:132px !important;
  text-align:right !important;
  justify-self:end !important;
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-grand-total{
  border-top:1px solid rgba(17,24,39,.16) !important;
}


/* Hoja 04 font increase totals values */
#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-total-line strong{
  font-size:11.4px !important; /* reducido ~5% */
}

#proposalSummaryPage4 .sp4-billing-totals-outside .sp4-grand-total strong{
  font-size:12.35px !important;
}


/* Hoja 04 vertical spacing refinement */
#proposalSummaryPage4 .sp4-additional-info{
  margin-top:28px !important;
}

#proposalSummaryPage4 .sp4-info-section{
  margin-bottom:18px !important;
}

#proposalSummaryPage4 .sp4-info-list li{
  margin-bottom:1px !important;
}


/* Force white background summary pages 2-4 */
#proposalSummaryPage2,
#proposalSummaryPage3,
#proposalSummaryPage4{
  background:#ffffff !important;
  background-image:none !important;
}

#proposalSummaryPage2 *,
#proposalSummaryPage3 *,
#proposalSummaryPage4 *{
  background-image:none;
}


/* Force pure white summary pages 2-4 */
#proposalSummaryPage2,
#proposalSummaryPage3,
#proposalSummaryPage4,
#proposalSummaryPage2 .summary-page,
#proposalSummaryPage3 .summary-page,
#proposalSummaryPage4 .summary-page,
#proposalSummaryPage2 .summary-page-body,
#proposalSummaryPage3 .summary-page-body,
#proposalSummaryPage4 .summary-page-body,
#proposalSummaryPage2 .card,
#proposalSummaryPage3 .card,
#proposalSummaryPage4 .card{
  background:#ffffff !important;
  background-image:none !important;
}

/* remove subtle gray overlays */
#proposalSummaryPage2::before,
#proposalSummaryPage2::after,
#proposalSummaryPage3::before,
#proposalSummaryPage3::after,
#proposalSummaryPage4::before,
#proposalSummaryPage4::after{
  display:none !important;
  content:none !important;
}


/* Final white canvas override pages 2-4 */
#proposalSummaryPage2,
#proposalSummaryPage3,
#proposalSummaryPage4{
  background:#ffffff !important;
}

#proposalSummaryPage2 .proposal-page,
#proposalSummaryPage3 .proposal-page,
#proposalSummaryPage4 .proposal-page,
#proposalSummaryPage2 .page,
#proposalSummaryPage3 .page,
#proposalSummaryPage4 .page,
#proposalSummaryPage2 .page-shell,
#proposalSummaryPage3 .page-shell,
#proposalSummaryPage4 .page-shell,
#proposalSummaryPage2 .page-content,
#proposalSummaryPage3 .page-content,
#proposalSummaryPage4 .page-content{
  background:#ffffff !important;
  background-image:none !important;
}

/* root preview wrappers */
.proposal-preview,
.proposal-summary-preview,
.summary-preview,
.summary-preview-wrapper,
.accordion-content,
.proposal-pages{
  background:#ffffff !important;
}


/* TRUE WHITE PDF/PREVIEW CANVAS FIX PAGES 02-04 */
#proposalSummaryPage2,
#proposalSummaryPage3,
#proposalSummaryPage4,
#proposalSummaryPage2.proposal-page,
#proposalSummaryPage3.proposal-page,
#proposalSummaryPage4.proposal-page,
#proposalSummaryPage2.summary-page,
#proposalSummaryPage3.summary-page,
#proposalSummaryPage4.summary-page{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
}

/* Canvas interno de cada hoja */
#proposalSummaryPage2 .summary-page-inner,
#proposalSummaryPage3 .summary-page-inner,
#proposalSummaryPage4 .summary-page-inner,
#proposalSummaryPage2 .summary-page-content,
#proposalSummaryPage3 .summary-page-content,
#proposalSummaryPage4 .summary-page-content,
#proposalSummaryPage2 .summary-page-body,
#proposalSummaryPage3 .summary-page-body,
#proposalSummaryPage4 .summary-page-body,
#proposalSummaryPage2 .proposal-page-inner,
#proposalSummaryPage3 .proposal-page-inner,
#proposalSummaryPage4 .proposal-page-inner,
#proposalSummaryPage2 .proposal-page-content,
#proposalSummaryPage3 .proposal-page-content,
#proposalSummaryPage4 .proposal-page-content,
#proposalSummaryPage2 .proposal-page-body,
#proposalSummaryPage3 .proposal-page-body,
#proposalSummaryPage4 .proposal-page-body{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
}

/* Quitar tintes pseudo-elementos solo del canvas de página, no de cards internas */
#proposalSummaryPage2::before,
#proposalSummaryPage2::after,
#proposalSummaryPage3::before,
#proposalSummaryPage3::after,
#proposalSummaryPage4::before,
#proposalSummaryPage4::after{
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}

/* Exportación / impresión */
@media print{
  #proposalSummaryPage2,
  #proposalSummaryPage3,
  #proposalSummaryPage4,
  #proposalSummaryPage2.proposal-page,
  #proposalSummaryPage3.proposal-page,
  #proposalSummaryPage4.proposal-page{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}


/* FINAL POLISH hoja 02 y 04 */

/* HOJA 02: quitar fondo gris/sombra detrás de cards */
#proposalSummaryPage2{
  box-shadow:none !important;
}

#proposalSummaryPage2 .summary-page-body,
#proposalSummaryPage2 .summary-page-content,
#proposalSummaryPage2 .proposal-page-body{
  background:#ffffff !important;
  box-shadow:none !important;
}

#proposalSummaryPage2 .card,
#proposalSummaryPage2 .summary-card,
#proposalSummaryPage2 .metrics-card{
  box-shadow:none !important;
}

/* HOJA 04: suavizar remate amarillo/negro agresivo */
#proposalSummaryPage4 .sp4-billing-clone::before{
  height:3px !important;
  background:linear-gradient(
    90deg,
    #111827 0%,
    #6b7280 55%,
    #d6cf00 100%
  ) !important;
}

#proposalSummaryPage4 .sp4-billing-clone::after{
  top:-70px !important;
  right:-85px !important;
  width:140px !important;
  height:140px !important;
  background:radial-gradient(
    circle,
    rgba(214,207,0,.12) 0%,
    rgba(214,207,0,.05) 40%,
    rgba(214,207,0,0) 70%
  ) !important;
}

/* eliminar borde negro duro */
#proposalSummaryPage4 .sp4-billing-table{
  overflow:hidden !important;
}


/* Hoja 04 remove yellow arc segment */
#proposalSummaryPage4 .sp4-billing-clone::after{
  content:none !important;
  display:none !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}

#proposalSummaryPage4 .sp4-billing-clone{
  overflow:hidden !important;
}



/* fallback para bloques inferiores */
#proposalSummaryPage2 .summary-page-body > *:last-child{
  margin-top:18px !important;
}



/* bajar título interno únicamente */
#proposalSummaryPage2 .performance-card h3,
#proposalSummaryPage2 .system-performance-card h3,
#proposalSummaryPage2 .chart-card h3,
#proposalSummaryPage2 .rendimiento-card h3{
  margin-top:16px !important;
}

/* mover SOLO bloques inferiores */
#proposalSummaryPage2 .environmental-benefits,
#proposalSummaryPage2 .benefits-card,
#proposalSummaryPage2 .environment-card{
  margin-top:32px !important;
}



/* Más aire dentro de la ficha de rendimiento, sin tocar la parte superior de hoja 02 */
#proposalSummaryPage2 .sp2-performance-card,
#proposalSummaryPage2 .sp2-chart-section,
#proposalSummaryPage2 .sp2-chart-card,
#proposalSummaryPage2 .performance-card,
#proposalSummaryPage2 .system-performance-card,
#proposalSummaryPage2 .chart-card,
#proposalSummaryPage2 .rendimiento-card{
  min-height:235px !important;
  padding-top:16px !important;
}

/* Bajar un poco el encabezado real de rendimiento */
#proposalSummaryPage2 .sp2-section-head,
#proposalSummaryPage2 .sp2-chart-head{
  margin-top:6px !important;
}

/* Mover hacia abajo solo lo que está debajo de la gráfica */
#proposalSummaryPage2 .sp2-environment-section,
#proposalSummaryPage2 .environmental-benefits,
#proposalSummaryPage2 .benefits-card,
#proposalSummaryPage2 .environment-card{
  margin-top:24px !important;
}




/* bajar unidad y subtitulo proporcionalmente */
#proposalSummaryPage2 .chart-unit-label,
#proposalSummaryPage2 .sp2-chart-subtitle,
#proposalSummaryPage2 .sp2-chart-description{
  margin-top:4px !important;
}

/* bajar leyenda horizontal */
#proposalSummaryPage2 .sp2-chart-legend,
#proposalSummaryPage2 .sp2-chart-top-legend{
  margin-top:8px !important;
}

/* gráfica intacta */
#proposalSummaryPage2 .sp2-energy-chart,
#proposalSummaryPage2 #summaryPage2EnergyChart{
  margin-top:0 !important;
}



/* mantener header natural */
#proposalSummaryPage2 .sp2-section-head,
#proposalSummaryPage2 .sp2-chart-head,
#proposalSummaryPage2 .performance-header{
  margin-top:0 !important;
  padding-top:0 !important;
}


/* Hoja 02 rendimiento real final fix */
#proposalSummaryPage2 .sp2-chart-block{
  padding:22px 20px 12px !important;
  min-height:220px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  overflow:hidden !important;
}

#proposalSummaryPage2 .sp2-chart-header{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:16px !important;
  margin:0 0 6px 0 !important;
  padding:0 !important;
  flex:0 0 auto !important;
}

#proposalSummaryPage2 .sp2-section-label{
  margin:0 0 3px 0 !important;
  padding:0 !important;
  line-height:1.05 !important;
}

#proposalSummaryPage2 .sp2-chart-subtitle{
  margin:0 !important;
  padding:0 !important;
  line-height:1.15 !important;
}

#proposalSummaryPage2 .chart-unit-label{
  margin:2px 0 0 0 !important;
  padding:0 !important;
  font-size:7.5px !important;
  line-height:1 !important;
  font-weight:600 !important;
  color:#6b7280 !important;
  text-align:left !important;
}

#proposalSummaryPage2 .sp2-chart-legend-inline{
  display:flex !important;
  align-items:flex-start !important;
  gap:12px !important;
  margin:2px 0 0 0 !important;
  padding:0 !important;
  flex:0 0 auto !important;
}

#proposalSummaryPage2 .sp2-legend-inline-item{
  display:flex !important;
  align-items:flex-start !important;
  gap:5px !important;
}

#proposalSummaryPage2 .sp2-autoconsumo-label{
  display:inline-flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  line-height:1.05 !important;
}

#proposalSummaryPage2 .autoconsumo-sub-label{
  display:block !important;
  margin-top:1px !important;
  font-size:6.4px !important;
  line-height:1 !important;
  font-weight:500 !important;
  color:#6b7280 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  white-space:nowrap !important;
}

#proposalSummaryPage2 #summaryPage2EnergyChart,
#proposalSummaryPage2 .sp2-energy-chart{
  flex:1 1 auto !important;
  width:100% !important;
  min-height:145px !important;
  margin:0 !important;
  display:block !important;
}


/* Firma fija hoja 04 */
#proposalSummaryPage4{position:relative;}
#proposalSummaryPage4 .sp4-signature-block{
  position:absolute;
  right:60px;
  bottom:72px;
  text-align:right;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:11px;
  line-height:1.35;
  color:#111827;
  z-index:3;
}
#proposalSummaryPage4 .sp4-signature-name{font-weight:700;}

/* FIX puntual: Hoja 04 acordeón resumen con fondo blanco sólido */
#proposalSummaryPage4,
#proposalSummaryPage4.proposal-letter-page,
.proposal-summary-page-4,
#proposalSummaryPage4 .summary-page4-body{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
}

@media print{
  #proposalSummaryPage4,
  #proposalSummaryPage4.proposal-letter-page,
  .proposal-summary-page-4,
  #proposalSummaryPage4 .summary-page4-body{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}


/* =========================================================
   FIX DEFINITIVO · Hoja 04 acordeón resumen · fondo blanco real
   Se aplica al canvas, header, body y capas visuales de la hoja 04.
   No modifica cálculos, PDF, tabs ni estructura JS.
   ========================================================= */
#proposalSummaryPage4,
section#proposalSummaryPage4,
#proposalSummaryPage4.proposal-letter-page,
#proposalSummaryPage4.proposal-summary-page-4,
.proposal-summary-body #proposalSummaryPage4,
.proposal-summary-page-4,
#proposalSummaryPage4 .summary-page2-header,
#proposalSummaryPage4 .summary-page4-body,
#proposalSummaryPage4 .summary-page2-meta,
#proposalSummaryPage4 .sp4-offer-block,
#proposalSummaryPage4 .sp4-additional-info,
#proposalSummaryPage4 .sp4-info-section{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
}

#proposalSummaryPage4::before,
#proposalSummaryPage4::after,
#proposalSummaryPage4 .summary-page4-body::before,
#proposalSummaryPage4 .summary-page4-body::after{
  content:none !important;
  display:none !important;
  background:none !important;
  background-image:none !important;
}

/* Evita que sombras o overlays del contenedor hagan percibir el fondo de la hoja como gris */
#proposalSummaryPage4{
  box-shadow:none !important;
  isolation:isolate !important;
}

@media print{
  #proposalSummaryPage4,
  section#proposalSummaryPage4,
  #proposalSummaryPage4.proposal-letter-page,
  #proposalSummaryPage4.proposal-summary-page-4,
  .proposal-summary-page-4,
  #proposalSummaryPage4 .summary-page2-header,
  #proposalSummaryPage4 .summary-page4-body,
  #proposalSummaryPage4 .sp4-offer-block,
  #proposalSummaryPage4 .sp4-additional-info,
  #proposalSummaryPage4 .sp4-info-section{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}

/* =========================================================
   FIX FINAL REAL · Hoja 04 fondo 100% blanco
   Objetivo: eliminar cualquier gris/off-white heredado, sombra,
   overlay o fondo secundario dentro de la Hoja 04 del acordeón resumen.
   Cambio visual puntual: solo afecta #proposalSummaryPage4.
   ========================================================= */
#proposalSummaryPage4.proposal-letter-page,
section#proposalSummaryPage4.proposal-letter-page,
#proposalSummaryPage4.proposal-summary-page-4{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
  border-color:#ffffff !important;
  box-shadow:none !important;
  outline:none !important;
}

/* Canvas interno de la hoja 04 */
#proposalSummaryPage4 .summary-page2-header,
#proposalSummaryPage4 .summary-page4-body,
#proposalSummaryPage4 .sp4-offer-block,
#proposalSummaryPage4 .sp4-additional-info,
#proposalSummaryPage4 .sp4-info-section,
#proposalSummaryPage4 .sp4-info-list,
#proposalSummaryPage4 .sp4-info-list li,
#proposalSummaryPage4 .sp4-scope-list,
#proposalSummaryPage4 .sp4-scope-list li,
#proposalSummaryPage4 .sp4-billing-totals-outside,
#proposalSummaryPage4 .sp4-total-line,
#proposalSummaryPage4 .sp4-signature-block{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
  box-shadow:none !important;
}

/* Tabla/precio de Hoja 04: blanco real, sin halos grises */
#proposalSummaryPage4 #proposalPage4BillingClone,
#proposalSummaryPage4 .sp4-billing-clone,
#proposalSummaryPage4 .sp4-billing-clone .sp4-billing-title,
#proposalSummaryPage4 .sp4-billing-table,
#proposalSummaryPage4 .sp4-billing-table thead,
#proposalSummaryPage4 .sp4-billing-table tbody,
#proposalSummaryPage4 .sp4-billing-table tr,
#proposalSummaryPage4 .sp4-billing-table th,
#proposalSummaryPage4 .sp4-billing-table td{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
  box-shadow:none !important;
}

/* Mantener elementos oscuros intencionales del encabezado */
#proposalSummaryPage4 .summary-page2-line{
  background:#1d1d1f !important;
}
#proposalSummaryPage4 .summary-page2-quote-box{
  background:#1d1d1f !important;
  background-color:#1d1d1f !important;
}
#proposalSummaryPage4 .summary-page2-quote{
  background:transparent !important;
}

/* Bloquear pseudo-elementos que puedan pintar gris */
#proposalSummaryPage4::before,
#proposalSummaryPage4::after,
#proposalSummaryPage4 .summary-page2-header::before,
#proposalSummaryPage4 .summary-page2-header::after,
#proposalSummaryPage4 .summary-page4-body::before,
#proposalSummaryPage4 .summary-page4-body::after,
#proposalSummaryPage4 .sp4-offer-block::before,
#proposalSummaryPage4 .sp4-offer-block::after,
#proposalSummaryPage4 #proposalPage4BillingClone::before,
#proposalSummaryPage4 #proposalPage4BillingClone::after{
  content:none !important;
  display:none !important;
  background:none !important;
  background-image:none !important;
  box-shadow:none !important;
}

@media print{
  #proposalSummaryPage4.proposal-letter-page,
  section#proposalSummaryPage4.proposal-letter-page,
  #proposalSummaryPage4.proposal-summary-page-4,
  #proposalSummaryPage4 .summary-page2-header,
  #proposalSummaryPage4 .summary-page4-body,
  #proposalSummaryPage4 .sp4-offer-block,
  #proposalSummaryPage4 #proposalPage4BillingClone,
  #proposalSummaryPage4 .sp4-billing-clone,
  #proposalSummaryPage4 .sp4-billing-table,
  #proposalSummaryPage4 .sp4-billing-table thead,
  #proposalSummaryPage4 .sp4-billing-table tbody,
  #proposalSummaryPage4 .sp4-billing-table tr,
  #proposalSummaryPage4 .sp4-billing-table th,
  #proposalSummaryPage4 .sp4-billing-table td,
  #proposalSummaryPage4 .sp4-additional-info,
  #proposalSummaryPage4 .sp4-info-section,
  #proposalSummaryPage4 .sp4-signature-block{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    box-shadow:none !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}

/* =========================================================
   FIX PUNTUAL · Hoja 04: restaurar perímetro visual
   Mantiene el canvas interno en blanco puro y recupera la delimitación
   de la hoja dentro del acordeón resumen.
   ========================================================= */
#proposalSummaryPage4.proposal-letter-page,
section#proposalSummaryPage4.proposal-letter-page,
#proposalSummaryPage4.proposal-summary-page-4{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
  border:1px solid #e5e7eb !important;
  outline:1px solid rgba(17,24,39,.08) !important;
  outline-offset:0 !important;
  box-shadow:0 10px 28px rgba(17,24,39,.08) !important;
}

@media print{
  #proposalSummaryPage4.proposal-letter-page,
  section#proposalSummaryPage4.proposal-letter-page,
  #proposalSummaryPage4.proposal-summary-page-4{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    border:0 !important;
    outline:none !important;
    box-shadow:none !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}

/* =========================================================
   AJUSTE FINAL · Hoja 04 · Tarjeta precio estilo Apple
   Cambio visual puntual: solo la ficha de precio del sistema.
   No altera IDs, cálculos, guardado, PDF ni tabs.
   ========================================================= */
#proposalSummaryPage4 #proposalPage4BillingClone.sp4-billing-clone{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
  max-width:860px !important;
  margin-top:8px !important;
  padding:0 !important;
  border:1px solid rgba(17,24,39,.10) !important;
  border-radius:24px !important;
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
  box-shadow:
    0 18px 45px rgba(17,24,39,.075),
    0 3px 10px rgba(17,24,39,.035),
    inset 0 1px 0 rgba(255,255,255,.96) !important;
  outline:1px solid rgba(255,255,255,.72) !important;
  outline-offset:-2px !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone.sp4-billing-clone::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  inset:0 0 auto 0 !important;
  height:3px !important;
  background:linear-gradient(90deg, #1d1d1f 0%, #86868b 52%, #f5e900 100%) !important;
  box-shadow:none !important;
  pointer-events:none !important;
  z-index:3 !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone.sp4-billing-clone::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  top:-120px !important;
  right:-135px !important;
  width:250px !important;
  height:250px !important;
  border-radius:999px !important;
  background:radial-gradient(circle, rgba(245,233,0,.16) 0%, rgba(245,233,0,.055) 38%, rgba(245,233,0,0) 70%) !important;
  box-shadow:none !important;
  pointer-events:none !important;
  z-index:0 !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-title{
  position:relative !important;
  z-index:2 !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:14px !important;
  min-height:48px !important;
  margin:0 !important;
  padding:16px 22px 14px 22px !important;
  background:linear-gradient(180deg, #ffffff 0%, #fbfbfd 100%) !important;
  border-bottom:1px solid rgba(229,231,235,.82) !important;
  color:#1d1d1f !important;
  font-family:'IBM Plex Sans', sans-serif !important;
  font-size:11px !important;
  font-weight:750 !important;
  line-height:1.15 !important;
  letter-spacing:.15em !important;
  text-transform:uppercase !important;
  text-align:center !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-title span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:56px !important;
  padding:3px 8px !important;
  border-radius:999px !important;
  background:#f5f5f7 !important;
  border:1px solid rgba(17,24,39,.08) !important;
  color:#1d1d1f !important;
  font-weight:800 !important;
  letter-spacing:.06em !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table{
  position:relative !important;
  z-index:2 !important;
  width:100% !important;
  margin:0 !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  table-layout:fixed !important;
  background:#ffffff !important;
  color:#1d1d1f !important;
  font-family:'IBM Plex Sans', sans-serif !important;
  font-size:11px !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table thead th{
  padding:10px 22px 9px 22px !important;
  background:#f5f5f7 !important;
  border-bottom:1px solid rgba(229,231,235,.9) !important;
  color:#86868b !important;
  font-size:8.5px !important;
  font-weight:750 !important;
  letter-spacing:.13em !important;
  text-transform:uppercase !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table tbody td{
  padding:12px 22px !important;
  background:#ffffff !important;
  border-bottom:0 !important;
  color:#1d1d1f !important;
  font-weight:500 !important;
  vertical-align:middle !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table tbody tr + tr td{
  border-top:1px solid rgba(229,231,235,.72) !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table th:nth-child(1),
#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table td:nth-child(1){
  width:62px !important;
  text-align:center !important;
  color:#6e6e73 !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table th:nth-child(2),
#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table td:nth-child(2){
  width:auto !important;
  text-align:left !important;
  padding-left:10px !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table th:nth-child(3),
#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table td:nth-child(3),
#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table th:nth-child(4),
#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table td:nth-child(4){
  width:142px !important;
  text-align:right !important;
}

#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table td:nth-child(3),
#proposalSummaryPage4 #proposalPage4BillingClone .sp4-billing-table td:nth-child(4){
  font-weight:700 !important;
  letter-spacing:.01em !important;
}

@media print{
  #proposalSummaryPage4 #proposalPage4BillingClone.sp4-billing-clone{
    border:1px solid rgba(17,24,39,.10) !important;
    box-shadow:none !important;
    outline:none !important;
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
  }
}

/* =========================================================
   HOTFIX · Hoja 04 fondo blanco + PDF funcional
   Alcance: solo Hoja 04 del acordeón resumen y reglas de impresión.
   No modifica JS, cálculos, Excel, Smart Design ni tabs.
   ========================================================= */

/* Canvas general Hoja 04: blanco real, sin herencias grises del acordeón */
#proposalSummaryPage4.proposal-letter-page,
section#proposalSummaryPage4.proposal-letter-page,
#proposalSummaryPage4.proposal-summary-page-4{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
  border:1px solid #e5e7eb !important;
  outline:1px solid rgba(17,24,39,.08) !important;
  outline-offset:0 !important;
  box-shadow:0 10px 28px rgba(17,24,39,.08) !important;
  overflow:hidden !important;
}

#proposalSummaryPage4 .summary-page2-header,
#proposalSummaryPage4 .summary-page4-body,
#proposalSummaryPage4 .sp4-offer-block,
#proposalSummaryPage4 .sp4-additional-info,
#proposalSummaryPage4 .sp4-info-section,
#proposalSummaryPage4 .sp4-billing-totals-outside,
#proposalSummaryPage4 .sp4-signature-block{
  background:#ffffff !important;
  background-color:#ffffff !important;
  background-image:none !important;
}

/* Mantener elementos oscuros intencionales del encabezado de la Hoja 04 */
#proposalSummaryPage4 .summary-page2-line,
#proposalSummaryPage4 .summary-page2-quote-box{
  background:#1d1d1f !important;
  background-color:#1d1d1f !important;
}

/* PDF/impresión: restaurar Hoja 04 dentro del flujo de exportación */
@media print{
  .proposal-cover-page,
  .proposal-summary-page-2,
  .proposal-summary-page-3,
  .proposal-summary-page-4{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    width:816px !important;
    height:1056px !important;
    min-height:1056px !important;
    max-height:1056px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    outline:none !important;
    box-shadow:none !important;
    overflow:hidden !important;
    position:relative !important;
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }

  .proposal-cover-page,
  .proposal-summary-page-2,
  .proposal-summary-page-3{
    page-break-after:always !important;
    break-after:page !important;
  }

  .proposal-summary-page-4{
    page-break-after:auto !important;
    break-after:auto !important;
  }

  .proposal-cover-page *,
  .proposal-summary-page-2 *,
  .proposal-summary-page-3 *,
  .proposal-summary-page-4 *{
    visibility:visible !important;
    opacity:1 !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }

  #proposalSummaryPage4,
  #proposalSummaryPage4 .summary-page2-header,
  #proposalSummaryPage4 .summary-page4-body,
  #proposalSummaryPage4 .sp4-offer-block,
  #proposalSummaryPage4 .sp4-additional-info,
  #proposalSummaryPage4 .sp4-info-section,
  #proposalSummaryPage4 .sp4-billing-totals-outside,
  #proposalSummaryPage4 .sp4-signature-block{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    border:0 !important;
    outline:none !important;
    box-shadow:none !important;
  }

  #proposalSummaryPage4 .summary-page2-line,
  #proposalSummaryPage4 .summary-page2-quote-box{
    background:#1d1d1f !important;
    background-color:#1d1d1f !important;
  }
}


/* =========================================================
   FIX PARCHES GRISES · Hoja 02 PDF / Chrome Print  v3
   DIAGNÓSTICO REAL:
   Chrome PDF renderiza los box-shadow de los contenedores
   de Hoja 02 como rectángulos grises sólidos (parches).
   Afectados: sp2-system-block, sp2-chart-block,
   summary-page2-general-card, summary-page2-photo-wrap,
   sp2-equip-badge, sp2-metrics-group .sp2-metric-item.
   FIX: eliminar box-shadow en @media print para todos
   los elementos de Hoja 02. No toca colores, textos ni JS.
   ========================================================= */
@media print {

  /* ── TODOS los box-shadow de Hoja 02 → none ── */
  #proposalSummaryPage2 *,
  .proposal-summary-page-2 * {
    box-shadow: none !important;
  }

  /* ── Preservar fondo oscuro fichas 1-3 (DC, Gen, Cobertura) ── */
  #proposalSummaryPage2 .sp2-metrics-group .sp2-metric-item:nth-child(1),
  #proposalSummaryPage2 .sp2-metrics-group .sp2-metric-item:nth-child(2),
  #proposalSummaryPage2 .sp2-metrics-group .sp2-metric-item:nth-child(3),
  .proposal-summary-page-2 .sp2-metrics-group .sp2-metric-item:nth-child(1),
  .proposal-summary-page-2 .sp2-metrics-group .sp2-metric-item:nth-child(2),
  .proposal-summary-page-2 .sp2-metrics-group .sp2-metric-item:nth-child(3) {
    background: #2f2f33 !important;
    background-color: #2f2f33 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  #proposalSummaryPage2 .sp2-metrics-group .sp2-metric-item:nth-child(1) .sp2-metric-label,
  #proposalSummaryPage2 .sp2-metrics-group .sp2-metric-item:nth-child(2) .sp2-metric-label,
  #proposalSummaryPage2 .sp2-metrics-group .sp2-metric-item:nth-child(3) .sp2-metric-label,
  .proposal-summary-page-2 .sp2-metrics-group .sp2-metric-item:nth-child(1) .sp2-metric-label,
  .proposal-summary-page-2 .sp2-metrics-group .sp2-metric-item:nth-child(2) .sp2-metric-label,
  .proposal-summary-page-2 .sp2-metrics-group .sp2-metric-item:nth-child(3) .sp2-metric-label {
    color: rgba(255,255,255,.72) !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  #proposalSummaryPage2 .sp2-metrics-group .sp2-metric-item:nth-child(1) .sp2-metric-value,
  #proposalSummaryPage2 .sp2-metrics-group .sp2-metric-item:nth-child(2) .sp2-metric-value,
  #proposalSummaryPage2 .sp2-metrics-group .sp2-metric-item:nth-child(3) .sp2-metric-value,
  .proposal-summary-page-2 .sp2-metrics-group .sp2-metric-item:nth-child(1) .sp2-metric-value,
  .proposal-summary-page-2 .sp2-metrics-group .sp2-metric-item:nth-child(2) .sp2-metric-value,
  .proposal-summary-page-2 .sp2-metrics-group .sp2-metric-item:nth-child(3) .sp2-metric-value {
    color: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ── Ícono ambiental: negro intencional ── */
  #proposalSummaryPage2 .sp2-env-icon,
  .proposal-summary-page-2 .sp2-env-icon {
    background: #000000 !important;
    background-color: #000000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ── Disclaimer gráfica: negro intencional ── */
  #proposalSummaryPage2 .sp2-chart-disclaimer,
  .proposal-summary-page-2 .sp2-chart-disclaimer {
    background: #0a0a0a !important;
    background-color: #0a0a0a !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ── Header CTZ-670: negro intencional ── */
  #proposalSummaryPage2 .summary-page2-line,
  #proposalSummaryPage2 .summary-page2-quote-box,
  .proposal-summary-page-2 .summary-page2-line,
  .proposal-summary-page-2 .summary-page2-quote-box {
    background: #1d1d1f !important;
    background-color: #1d1d1f !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}

/* ── Botones Pedido DC / Pedido AC ──────────────────────── */
.pedido-btns-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  margin-top: 5px;
}
#pedidoDcBtn {
  background: rgba(245,158,11,0.08);
  border-color: rgba(245,158,11,0.22);
  color: #92400e;
  font-weight: 580;
  font-size: 11px;
  padding: 7px 8px;
  letter-spacing: -0.01em;
}
#pedidoDcBtn:hover {
  background: rgba(245,158,11,0.14);
  border-color: rgba(245,158,11,0.36);
  color: #78350f;
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(245,158,11,0.15);
}
#pedidoAcBtn {
  background: rgba(0,102,204,0.07);
  border-color: rgba(0,102,204,0.20);
  color: var(--accent);
  font-weight: 580;
  font-size: 11px;
  padding: 7px 8px;
  letter-spacing: -0.01em;
}
#pedidoAcBtn:hover {
  background: rgba(0,102,204,0.12);
  border-color: rgba(0,102,204,0.34);
  color: var(--accent-hover);
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(0,102,204,0.14);
}

/* ── Ficha Precio con IVA (sidebar) ─────────────────────── */
.sidebar-sale-card {
  background: linear-gradient(150deg, #0a2e0a 0%, #153a15 60%, #1e4a1e 100%);
  border-radius: var(--r-xl);
  padding: 16px 17px;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 2px;
  box-shadow: var(--shadow-lg), inset 0 1px 0 rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.06);
}
.sidebar-sale-card .profit-label {
  font-size: 11px;
  color: rgba(255,255,255,0.55);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sidebar-sale-card strong {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: #4ade80;
}
.sidebar-sale-card small {
  font-size: 11px;
  color: rgba(255,255,255,0.40);
}

/* ── Sub en precio $/WDC ────────────────────────────────── */
.sidebar-price-monitor sub {
  font-size: 9px;
  vertical-align: sub;
}

/* ============================================================ */
/* SIMULADOR DE FACTURACIÓN ELÉCTRICA - ANÁLISIS FINANCIERO     */
/* ============================================================ */
.financial-tariff-card .financial-tariff-grid{
  gap:12px;
  margin-bottom:12px;
}
.financial-tariff-card .financial-tariff-grid:last-child{
  margin-bottom:0;
}
.financial-tariff-card select.input,
.financial-tariff-card input.input{
  width:100%;
}

.financial-table-wrap{
  overflow-x:auto;
  border:1px solid var(--line, #e5e7eb);
  border-radius:12px;
  background:#fff;
}

.financial-monthly-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
  min-width:780px;
}

.financial-monthly-table thead th{
  background:#f8fafc;
  color:#0f172a;
  font-weight:600;
  text-align:right;
  padding:10px 12px;
  border-bottom:1px solid #e5e7eb;
  font-size:12px;
  letter-spacing:0.02em;
  text-transform:uppercase;
}

.financial-monthly-table thead th:first-child{
  text-align:left;
}

.financial-monthly-table tbody td{
  padding:9px 12px;
  border-bottom:1px solid #f1f5f9;
  text-align:right;
  color:#0f172a;
  font-variant-numeric:tabular-nums;
}

.financial-monthly-table tbody td:first-child{
  text-align:left;
  font-weight:500;
}

.financial-monthly-table tbody tr:last-child td{
  border-bottom:none;
}

.financial-monthly-table tbody tr:hover{
  background:#f8fafc;
}

.financial-monthly-table tfoot th{
  background:#0f172a;
  color:#fff;
  padding:10px 12px;
  text-align:right;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  font-size:13px;
}

.financial-monthly-table tfoot th:first-child{
  text-align:left;
  letter-spacing:0.02em;
  text-transform:uppercase;
  font-size:12px;
}

#financialTariffHint{
  background:#f8fafc;
  border-left:3px solid #0f172a;
  padding:10px 14px;
  border-radius:6px;
  font-size:12px;
  color:#475569;
  margin-top:8px;
}

/* Cuando potencia contratada está deshabilitada */
.financial-tariff-grid.is-disabled label{
  opacity:0.5;
  pointer-events:none;
}

@media (max-width:760px){
  .financial-tariff-card .financial-tariff-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .financial-monthly-table{
    font-size:11px;
  }
}

/* ============================================================ */
/* RECIBOS SIMULADOS EEGSA — ESTILO FACTURA REAL                */
/* ============================================================ */
.eegsa-receipts-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
  margin-top:14px;
}

@media (max-width: 900px){
  .eegsa-receipts-grid{
    grid-template-columns: 1fr;
  }
}

.eegsa-receipt{
  background:#ffffff;
  border:1px solid #d4d4d8;
  border-radius:8px;
  padding:20px 22px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  font-size:11px;
  color:#1f1f1f;
  line-height:1.4;
  box-shadow:0 2px 8px rgba(0,0,0,0.04);
}

.eegsa-receipt--solar{
  border-color:#10b981;
  box-shadow:0 2px 12px rgba(16,185,129,0.10);
}

.eegsa-receipt-header{
  text-align:center;
  font-size:9.5px;
  color:#3f3f46;
  margin-bottom:14px;
  line-height:1.45;
}

.eegsa-receipt-fel{
  margin-bottom:1px;
}

.eegsa-receipt-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding-bottom:10px;
  margin-bottom:10px;
}

.eegsa-logo{
  display:flex;
  align-items:center;
  gap:6px;
}

.eegsa-logo-mark{
  font-size:24px;
  color:#000;
  font-weight:900;
}

.eegsa-logo-name{
  font-weight:900;
  font-size:18px;
  color:#000;
  letter-spacing:-1px;
  line-height:1;
}

.eegsa-logo-group{
  font-size:8px;
  color:#0066cc;
  letter-spacing:0.5px;
  font-weight:600;
}

.eegsa-receipt-company{
  text-align:left;
  font-size:10px;
}

.eegsa-receipt-company strong{
  display:block;
  font-size:11px;
  margin-bottom:1px;
  font-weight:700;
}

.eegsa-receipt-company div{
  font-size:9.5px;
  color:#52525b;
}

.eegsa-receipt-meta{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin-bottom:6px;
  padding:6px 0;
  border-bottom:1px solid #e4e4e7;
}

.eegsa-receipt-meta > div{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.eegsa-receipt-meta span{
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:0.4px;
  color:#71717a;
  margin-bottom:1px;
}

.eegsa-receipt-meta strong{
  font-size:10.5px;
  color:#1f1f1f;
  font-weight:600;
}

.eegsa-receipt-tariff{
  text-align:right;
  font-size:10px;
  color:#1f1f1f;
  margin-bottom:8px;
  font-weight:500;
}

.eegsa-receipt-client{
  margin-bottom:12px;
  font-size:10px;
}

.eegsa-receipt-client strong{
  display:block;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  margin-bottom:2px;
}

.eegsa-receipt-client div{
  color:#3f3f46;
  font-size:10px;
}

.eegsa-receipt-total{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  padding:12px 0;
  margin-bottom:6px;
  border-bottom:1px solid #e4e4e7;
}

.eegsa-receipt-total-left span{
  display:block;
  font-size:11px;
  font-weight:700;
  margin-bottom:2px;
}

.eegsa-receipt-total-left strong{
  font-size:20px;
  font-weight:700;
  color:#1f1f1f;
}

.eegsa-receipt-total-right{
  text-align:right;
  font-size:10px;
}

.eegsa-receipt-total-right strong{
  font-weight:700;
  display:block;
  margin-top:2px;
}

.eegsa-receipt-late{
  text-align:center;
  font-size:9.5px;
  color:#52525b;
  margin-bottom:10px;
  padding:4px 0;
}

.eegsa-receipt-detail{
  width:100%;
  border-collapse:collapse;
  font-size:10px;
  margin-bottom:12px;
}

.eegsa-receipt-detail thead th{
  font-weight:700;
  text-align:right;
  padding:4px 6px;
  border-bottom:1px solid #000;
  font-size:10px;
  color:#1f1f1f;
}

.eegsa-receipt-detail thead th:first-child{
  text-align:left;
}

.eegsa-receipt-detail tbody td{
  padding:3px 6px;
  text-align:right;
  font-variant-numeric:tabular-nums;
  color:#1f1f1f;
}

.eegsa-receipt-detail tbody td:first-child,
.eegsa-receipt-detail tbody td[colspan]{
  text-align:left;
}

.eegsa-receipt-detail tbody tr:last-child td{
  border-top:1px solid #1f1f1f;
  padding-top:5px;
  padding-bottom:5px;
}

.eegsa-receipt-readings{
  border-top:1px solid #e4e4e7;
  padding-top:8px;
  margin-bottom:10px;
}

.eegsa-readings-title{
  text-align:center;
  font-size:10px;
  font-weight:600;
  color:#52525b;
  margin-bottom:6px;
}

.eegsa-readings-row{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:6px;
  margin-bottom:6px;
}

.eegsa-readings-row > div{
  text-align:center;
}

.eegsa-readings-row span{
  display:block;
  font-size:8.5px;
  color:#71717a;
  text-transform:uppercase;
  letter-spacing:0.3px;
  margin-bottom:1px;
}

.eegsa-readings-row strong{
  font-size:11px;
  color:#1f1f1f;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}

.eegsa-readings-row--iva{
  border-top:1px dashed #e4e4e7;
  padding-top:6px;
  grid-template-columns:repeat(3, 1fr);
}

.eegsa-readings-row--credit{
  margin-top:8px;
}

.eegsa-readings-table{
  width:100%;
  border-collapse:collapse;
  font-size:10px;
  margin-bottom:8px;
}

.eegsa-readings-table th{
  text-align:right;
  padding:3px 5px;
  font-weight:600;
  color:#52525b;
  font-size:9.5px;
}

.eegsa-readings-table thead th{
  border-bottom:1px solid #e4e4e7;
  text-transform:uppercase;
  letter-spacing:0.3px;
  font-size:9px;
}

.eegsa-readings-table tbody th{
  text-align:left;
  font-weight:600;
}

.eegsa-readings-table tbody td{
  padding:3px 5px;
  text-align:right;
  font-variant-numeric:tabular-nums;
}

.eegsa-receipt-footer{
  text-align:center;
  margin-top:14px;
  padding-top:10px;
  border-top:1px solid #e4e4e7;
}

.eegsa-receipt-footer div:first-child{
  font-weight:700;
  font-size:13px;
  letter-spacing:0.5px;
  color:#1f1f1f;
}

.eegsa-receipt-footer-sub{
  font-size:9.5px;
  color:#52525b;
  margin-top:3px;
}

.eegsa-receipts-actions{
  margin-top:14px;
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}

.eegsa-receipts-actions .btn{
  padding:8px 14px;
  font-size:13px;
  cursor:pointer;
  border:1px solid #1f1f1f;
  background:#fff;
  color:#1f1f1f;
  border-radius:8px;
  font-weight:500;
  transition:all 0.15s ease;
}

.eegsa-receipts-actions .btn:hover{
  background:#1f1f1f;
  color:#fff;
}

/* Estilos de impresión */
@media print{
  body * { visibility: hidden; }
  .eegsa-receipts-grid, .eegsa-receipts-grid * { visibility: visible; }
  .eegsa-receipts-grid{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    grid-template-columns:1fr;
    gap:20px;
  }
  .eegsa-receipt:{
  break-inside:avoid;
  page-break-after:always;
  border:1px solid #000 !important;
  box-shadow:none !important;
}
}

/* === ESTILO PARA BADGE DE INVERSOR INTERACTIVO === */
.sp2-inverter-badge-wrapper{
  transition:all 0.2s ease !important;
  border-radius:8px;
}

.sp2-inverter-badge-wrapper:hover{
  background:rgba(0,0,0,0.05);
  transform:scale(1.05);
}

.sp2-inverter-badge-wrapper #sp2InverterImage{
  transition:opacity 0.3s ease;
}
}

/* === ESPECIALES SWITCH === */
.group-meta-right .especiales-header-toggle{
  flex-shrink:0;
}

/* Especiales deshabilitada: visual tenue */
.cost-group[data-category="Especiales"].category-disabled{
  background:#f1f3f6;
  opacity:.72;
}

.cost-group[data-category="Especiales"].category-disabled .group-header{
  background:#f1f3f6;
}

.cost-group[data-category="Especiales"].category-disabled tbody tr,
.cost-group[data-category="Especiales"].category-disabled .total-cell{
  opacity:.5;
}


/* ══════════════════════════════════════════════════════════════════
   SOLARPRO PROFESSIONAL — FINAL UI POLISH LAYER
   Apple-tier refinements: spacing, typography, interactions
   ══════════════════════════════════════════════════════════════════ */

/* ── Font refinement: Inter where available ──────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300..700;1,14..32,300..700&display=swap');

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif !important;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(120,140,255,0.07) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 100%, rgba(0,180,120,0.06) 0%, transparent 60%),
    #eeeef3 !important;
  background-attachment: fixed !important;
}

/* ── Sidebar: refined professional look ───────────────────────────── */
.sidebar {
  background: rgba(255,255,255,0.92) !important;
  backdrop-filter: saturate(1.8) blur(28px) !important;
  -webkit-backdrop-filter: saturate(1.8) blur(28px) !important;
  border-right: 1px solid rgba(0,0,0,0.07) !important;
}

/* ── Sidebar section label ─────────────────────────────────────────── */
.side-label {
  font-size: 9.5px !important;
  color: var(--muted-light) !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 0 4px !important;
  margin: 6px 0 4px !important;
}

/* ── Divider ───────────────────────────────────────────────────────── */
.divider {
  height: 1px !important;
  background: rgba(0,0,0,0.055) !important;
  margin: 8px 0 !important;
}

/* ── Card: Liquid Glass ────────────────────────────────────────────── */
.card {
  background: rgba(255, 255, 255, 0.68) !important;
  backdrop-filter: blur(20px) saturate(1.5) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.5) !important;
  border: 1px solid rgba(255, 255, 255, 0.85) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.95) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.8) inset,
    0 4px 24px rgba(0,0,0,0.07),
    0 1px 4px rgba(0,0,0,0.04) !important;
}
.card h3 {
  color: var(--muted) !important;
  font-size: 10px !important;
  letter-spacing: 0.08em !important;
  font-weight: 700 !important;
}

/* ── Liquid Glass: Master accordion headers (dark glass) ─────────── */
/* project-costing, smart-design, financial-analysis, proposal-summary */
.project-costing-header,
.smart-design-header,
.financial-analysis-header,
.proposal-summary-header {
  background: rgba(0, 0, 0, 0.78) !important;
  backdrop-filter: blur(20px) saturate(1.8) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.8) !important;
  border: 1px solid rgba(255, 255, 255, 0.13) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.22) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.08) inset,
    0 8px 32px rgba(0,0,0,0.38),
    0 2px 8px rgba(0,0,0,0.22) !important;
  border-radius: 18px !important;
  transition: background 0.2s ease, box-shadow 0.2s ease !important;
}
.project-costing-header:hover,
.smart-design-header:hover,
.financial-analysis-header:hover,
.proposal-summary-header:hover {
  background: rgba(10, 10, 10, 0.88) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.12) inset,
    0 10px 40px rgba(0,0,0,0.45),
    0 2px 10px rgba(0,0,0,0.28) !important;
}
/* Preserve white text on dark glass */
.project-costing-title-left strong,
.project-costing-card .project-costing-header .chevron,
.smart-design-title-left strong,
.smart-design-card .smart-design-header .chevron,
.financial-analysis-header,
.financial-analysis-header .chevron,
.proposal-summary-header,
.proposal-summary-header .chevron {
  color: #ffffff !important;
}
.project-costing-title-left small,
.smart-design-title-left small,
.smart-design-meta-right strong {
  color: rgba(255,255,255,0.6) !important;
}

/* ── Liquid Glass: Sub-accordion headers (light glass) ────────────── */
/* matrix, execution, conduit, calculators, commission */
.matrix-header,
.execution-header,
.conduit-header,
.calculators-header,
.commission-header {
  background: rgba(255, 255, 255, 0.62) !important;
  backdrop-filter: blur(16px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.6) !important;
  border: 1px solid rgba(255, 255, 255, 0.85) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.95) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.9) inset,
    0 4px 16px rgba(0,0,0,0.08),
    0 1px 4px rgba(0,0,0,0.05) !important;
  border-radius: 22px !important;
  transition: background 0.2s ease, box-shadow 0.2s ease !important;
}
.matrix-header:hover,
.execution-header:hover,
.conduit-header:hover,
.calculators-header:hover,
.commission-header:hover {
  background: rgba(255, 255, 255, 0.80) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,1) inset,
    0 6px 20px rgba(0,0,0,0.10),
    0 2px 6px rgba(0,0,0,0.07) !important;
}
/* Preserve dark text on light glass */
.matrix-title-left strong,
.matrix-meta-right strong,
.execution-title-left strong,
.execution-meta-right strong,
.conduit-title-left strong,
.conduit-meta-right strong,
.calculators-title-left strong,
.commission-title-left strong,
.commission-total {
  color: #111827 !important;
}
.matrix-title-left small,
.matrix-title-left .chevron,
.execution-title-left small,
.execution-title-left .chevron,
.conduit-title-left small,
.conduit-title-left .chevron,
.calculators-title-left small,
.calculators-title-left .chevron,
.commission-title-left small,
.commission-title-left .chevron,
#commissionCount {
  color: #475569 !important;
}

/* ── Section note text ─────────────────────────────────────────────── */
.section-note {
  font-size: 11.5px !important;
  color: var(--muted) !important;
  font-weight: 450 !important;
  line-height: 1.5 !important;
}

/* ── Input: refined placeholder ────────────────────────────────────── */
.input::placeholder {
  color: var(--muted-light) !important;
  font-weight: 400 !important;
}

/* ── readonly input ────────────────────────────────────────────────── */
.input.readonly {
  background: var(--bg) !important;
  color: var(--ink-2) !important;
  font-weight: 600 !important;
  cursor: default !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* ── Summary cards: professional tone ────────────────────────────── */
.summary-card {
  border-radius: var(--r-lg) !important;
  transition: box-shadow var(--duration) var(--ease) !important;
}
.summary-card span {
  font-size: 9.5px !important;
  letter-spacing: 0.07em !important;
  font-weight: 700 !important;
}
.summary-card strong {
  font-size: 19px !important;
  letter-spacing: -0.5px !important;
}

/* ── Cost snapshot cards ─────────────────────────────────────────── */
.cost-snapshot .summary-card {
  border-radius: var(--r-lg) !important;
}

/* ── Tax grid: clean layout ────────────────────────────────────────── */
.tax-grid > div {
  border-radius: var(--r-lg) !important;
  border-color: var(--line) !important;
  background: var(--bg) !important;
}
.tax-grid span {
  font-size: 10px !important;
  font-weight: 680 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
}
.tax-grid strong {
  font-size: 18px !important;
  font-weight: 720 !important;
  letter-spacing: -0.4px !important;
  color: var(--ink) !important;
}

/* ── Billing table: professional ────────────────────────────────────── */
.billing-table {
  border-radius: var(--r-md) !important;
  overflow: hidden !important;
}
.billing-table th {
  background: var(--dark) !important;
  font-size: 10px !important;
  letter-spacing: 0.05em !important;
}
.billing-table td {
  font-size: 12.5px !important;
  border-color: var(--line-subtle) !important;
}

/* ── Metrics grid ──────────────────────────────────────────────────── */
.metrics div {
  border-radius: var(--r-lg) !important;
  background: var(--bg) !important;
  border-color: var(--line) !important;
  padding: 13px 14px !important;
}
.metrics span {
  font-size: 9.5px !important;
  letter-spacing: 0.06em !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}
.metrics strong {
  font-size: 16px !important;
  letter-spacing: -0.3px !important;
}

/* ── Scenario grid ─────────────────────────────────────────────────── */
.scenario-grid div {
  border-radius: var(--r-lg) !important;
  padding: 13px 14px !important;
}
.scenario-grid span {
  font-size: 10px !important;
  font-weight: 680 !important;
  letter-spacing: 0.04em !important;
}
.scenario-grid strong {
  font-size: 16px !important;
  letter-spacing: -0.3px !important;
  margin-top: 3px !important;
}
.scenario-grid small {
  font-size: 10.5px !important;
  color: var(--muted) !important;
}

/* ── Commission panel ──────────────────────────────────────────────── */
.commission-panel {
  border: 1px solid var(--line) !important;
  border-radius: var(--r-lg) !important;
  background: var(--surface) !important;
}
.commission-total {
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: -0.2px !important;
}

/* ── Apple toggle switch: refined size ────────────────────────────── */
.apple-switch {
  width: 52px !important;
  min-width: 52px !important;
  height: 30px !important;
  flex: 0 0 52px !important;
}
.apple-switch .apple-switch-thumb {
  width: 26px !important;
  height: 26px !important;
  top: 2px !important;
  left: 2px !important;
}
.apple-switch.active .apple-switch-thumb {
  transform: translateX(22px) !important;
}

/* ── Smart design card ─────────────────────────────────────────────── */
.smart-design-card,
.financial-analysis-card,
.proposal-summary-card,
.project-costing-card {
  border-radius: var(--r-xl) !important;
}

/* ── Smart chart header ────────────────────────────────────────────── */
.smart-chart-head h3,
.smart-system-capacity-head h3 {
  font-size: 13px !important;
  font-weight: 660 !important;
  letter-spacing: -0.2px !important;
}

/* ── Group table ───────────────────────────────────────────────────── */
.group-table th {
  background: #1a1a1e !important;
  font-size: 9.5px !important;
  letter-spacing: 0.06em !important;
}
.group-table td {
  border-color: var(--line-subtle) !important;
}

/* ── Quote number input — prefijo "CTZ-" integrado en el mismo campo ── */
.quote-number-input {
  position: relative !important;
  display: block !important;
  margin-top: 4px !important;
}
.quote-number-input span {
  position: absolute !important;
  left: 11px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: var(--ink) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  pointer-events: none !important;
  user-select: none !important;
  background: none !important;
  border: none !important;
  height: auto !important;
  white-space: nowrap !important;
}
.quote-number-input .input {
  padding-left: 52px !important;
  margin: 0 !important;
}

/* ── Smart capacity grid ───────────────────────────────────────────── */
.smart-system-capacity-grid > div {
  border-radius: var(--r-md) !important;
  background: var(--bg) !important;
  border-color: var(--line) !important;
}
.smart-system-capacity-grid span {
  font-size: 9.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}
.smart-system-capacity-grid strong {
  font-size: 17px !important;
  font-weight: 720 !important;
  letter-spacing: -0.4px !important;
}

/* ── Financial summary grid ───────────────────────────────────────── */
.smart-system-capacity-grid div {
  border-radius: var(--r-md) !important;
}

/* ── EEGSA Receipt styling ─────────────────────────────────────────── */
.eegsa-receipt {
  border-radius: var(--r-lg) !important;
  border: 1px solid var(--line) !important;
  box-shadow: var(--shadow-sm) !important;
}

/* ── Comparison box ────────────────────────────────────────────────── */
.comparison-box {
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r-lg) !important;
  padding: 16px !important;
}
.comparison-head strong {
  font-size: 13px !important;
  font-weight: 640 !important;
  letter-spacing: -0.2px !important;
}

/* ── Billing table wrap ────────────────────────────────────────────── */
.billing-table-wrap {
  border-radius: var(--r-lg) !important;
  overflow: hidden !important;
  border: 1px solid var(--line) !important;
}

/* ── Conduit results ───────────────────────────────────────────────── */
.conduit-results {
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r-md) !important;
  margin: 10px 0 !important;
}
.conduit-subtitle {
  font-size: 9.5px !important;
  font-weight: 750 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  margin: 14px 0 8px !important;
  padding-bottom: 6px !important;
  border-bottom: 1px solid var(--line) !important;
}

/* ── Execution KPIs ────────────────────────────────────────────────── */
.execution-kpis {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
  margin-top: 12px !important;
}
.execution-kpis > div {
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r-md) !important;
  padding: 12px 14px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
}
.execution-kpis span {
  font-size: 10px !important;
  color: var(--muted) !important;
  font-weight: 650 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}
.execution-kpis strong {
  font-size: 14px !important;
  font-weight: 680 !important;
  color: var(--ink) !important;
  letter-spacing: -0.2px !important;
}

/* ── Print: remove visual interference ─────────────────────────────── */
@media print {
  .sidebar, .toolbar { display: none !important; }
  .workspace { padding: 0 !important; }
  .sheet { box-shadow: none !important; border: none !important; border-radius: 0 !important; max-width: 100% !important; }
}

/* ── Scrollbar: subtle, professional ──────────────────────────────── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.25); }

/* ── Selection color ───────────────────────────────────────────────── */
::selection { background: var(--accent-mid); color: var(--ink); }

/* ── Focus-visible: keyboard accessibility ─────────────────────────── */
:focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: 2px !important;
}

/* ── Field amount helper text ──────────────────────────────────────── */
.field-amount {
  color: var(--accent) !important;
  font-weight: 640 !important;
  font-size: 11px !important;
  margin-top: 2px !important;
}



/* ═══════════════════════════════════════════════════════════════════════
   APPLE-GRADE UI REFINEMENT — v3.4
   Affects ONLY: sidebar + accordion headers (master + sub).
   No logic, no IDs, no listeners, no HTML touched.
   Purely additive overrides — cascades last to win without removing anything.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Sidebar shell: true frosted panel ─────────────────────────────── */
.sidebar {
  width: 286px !important;
  min-width: 286px !important;
  padding: 24px 18px 26px !important;
  gap: 10px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.78) 0%, rgba(252,252,253,0.72) 100%) !important;
  backdrop-filter: saturate(180%) blur(40px) !important;
  -webkit-backdrop-filter: saturate(180%) blur(40px) !important;
  border-right: 1px solid rgba(0,0,0,0.065) !important;
  box-shadow:
    inset -1px 0 0 rgba(255,255,255,0.5),
    1px 0 0 rgba(0,0,0,0.02) !important;
}

/* Hide scrollbar visually but keep scroll */
.sidebar::-webkit-scrollbar { width: 0 !important; }
.sidebar { scrollbar-width: none !important; }

/* ── Sidebar action button group: feels like a single grouped control ─ */
.simplified-project-actions {
  gap: 7px !important;
  margin-bottom: 6px !important;
}

/* All sidebar buttons share an Apple-style refined base */
.sidebar .btn {
  border-radius: 10px !important;
  font-size: 12.5px !important;
  font-weight: 510 !important;
  letter-spacing: -0.015em !important;
  padding: 9.5px 14px !important;
  height: auto !important;
  line-height: 1.3 !important;
  border: 0.5px solid rgba(0,0,0,0.08) !important;
  background: rgba(255,255,255,0.85) !important;
  color: var(--ink) !important;
  box-shadow:
    0 0.5px 1.5px rgba(0,0,0,0.04),
    inset 0 0.5px 0 rgba(255,255,255,0.6) !important;
  transition:
    background 0.18s var(--ease),
    transform 0.18s var(--ease-spring),
    box-shadow 0.18s var(--ease),
    border-color 0.18s var(--ease) !important;
}

.sidebar .btn:hover {
  background: rgba(255,255,255,1) !important;
  border-color: rgba(0,0,0,0.12) !important;
  transform: translateY(-0.5px) !important;
  box-shadow:
    0 2px 6px rgba(0,0,0,0.06),
    0 1px 2px rgba(0,0,0,0.04),
    inset 0 0.5px 0 rgba(255,255,255,0.7) !important;
}

.sidebar .btn:active {
  transform: translateY(0) scale(0.985) !important;
  transition-duration: 0.08s !important;
}

/* Primary "Guardar proyecto" button — vivid Apple blue */
.sidebar .btn.primary {
  background:
    linear-gradient(180deg, #1989ff 0%, #0066cc 100%) !important;
  color: #ffffff !important;
  border: 0.5px solid rgba(0,80,180,0.5) !important;
  font-weight: 590 !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.18) inset,
    0 0.5px 0 rgba(0,0,0,0.04),
    0 6px 14px rgba(0,90,210,0.22),
    0 1px 3px rgba(0,90,210,0.18) !important;
}

.sidebar .btn.primary:hover {
  background:
    linear-gradient(180deg, #2a96ff 0%, #0072e0 100%) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.22) inset,
    0 0.5px 0 rgba(0,0,0,0.04),
    0 8px 20px rgba(0,90,210,0.28),
    0 2px 5px rgba(0,90,210,0.22) !important;
}

/* Danger outline — refined */
.sidebar .btn.danger-outline {
  background: rgba(255,59,48,0.05) !important;
  border-color: rgba(255,59,48,0.18) !important;
  color: #c2271f !important;
}
.sidebar .btn.danger-outline:hover {
  background: rgba(255,59,48,0.10) !important;
  border-color: rgba(255,59,48,0.28) !important;
}

/* Pedido DC / AC small buttons — keep distinct hue */
.sidebar .pedido-btns-row {
  gap: 6px !important;
  margin-top: 3px !important;
}
.sidebar #pedidoDcBtn,
.sidebar #pedidoAcBtn {
  border-radius: 9px !important;
  font-size: 11.5px !important;
  font-weight: 560 !important;
  padding: 7.5px 8px !important;
  letter-spacing: -0.01em !important;
}

/* ── Section label inside sidebar (visual separator) ──────────────── */
.sidebar .side-label {
  font-size: 9.5px !important;
  color: rgba(0,0,0,0.36) !important;
  font-weight: 650 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 0 4px !important;
  margin: 10px 0 4px !important;
}

/* ── Utility card: Utilidad SolarPro (dark glass) ─────────────────── */
.sidebar-profit-card {
  background:
    linear-gradient(150deg, #1c1c1e 0%, #2a2a2c 100%) !important;
  border: 0.5px solid rgba(255,255,255,0.06) !important;
  border-radius: 16px !important;
  padding: 14px 16px 13px !important;
  gap: 1px !important;
  margin-top: 6px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    inset 0 -1px 0 rgba(0,0,0,0.4),
    0 8px 24px rgba(0,0,0,0.18),
    0 2px 6px rgba(0,0,0,0.08) !important;
}

.sidebar-profit-card .profit-label {
  font-size: 9.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.09em !important;
  color: rgba(255,255,255,0.5) !important;
  text-transform: uppercase !important;
}

.sidebar-profit-card strong {
  font-size: 22px !important;
  font-weight: 650 !important;
  letter-spacing: -0.6px !important;
  color: #ffffff !important;
  margin-top: 3px !important;
  font-feature-settings: "tnum" 1, "ss01" 1 !important;
}

.sidebar-profit-card small {
  font-size: 10.5px !important;
  font-weight: 450 !important;
  color: rgba(255,255,255,0.42) !important;
  margin-top: 2px !important;
  letter-spacing: -0.005em !important;
}

/* ── Utility card: Precio venta con IVA (clean light frost — neutral) ─
   Apple hierarchy: Utilidad is the hero (dark). This is the secondary
   value, so it lives on a calm light surface with neutral type.       */
.sidebar-sale-card {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(250,250,252,0.9) 100%) !important;
  border: 0.5px solid rgba(0,0,0,0.08) !important;
  border-top: 0.5px solid rgba(255,255,255,1) !important;
  border-radius: 16px !important;
  padding: 14px 16px 13px !important;
  gap: 1px !important;
  margin-top: 4px !important;
  color: var(--ink) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 1px 2px rgba(0,0,0,0.03),
    0 4px 12px rgba(0,0,0,0.04) !important;
}

.sidebar-sale-card #roundPriceBtn {
  margin-top: 8px;
  width: 100%;
  font-size: 11px !important;
  padding: 6px 10px !important;
  background: #1d1d1f !important;
  color: #ffffff !important;
  border-color: transparent !important;
  font-weight: 600 !important;
}
.sidebar-sale-card #roundPriceBtn:hover {
  background: #2c2c2e !important;
}
.sidebar-sale-card #roundPriceBtn:active {
  background: #000000 !important;
}

.sidebar-sale-card .profit-label {
  font-size: 9.5px !important;
  font-weight: 650 !important;
  letter-spacing: 0.09em !important;
  color: rgba(0,0,0,0.45) !important;
  text-transform: uppercase !important;
}

.sidebar-sale-card strong {
  font-size: 22px !important;
  font-weight: 620 !important;
  letter-spacing: -0.6px !important;
  color: #1c1c1e !important;
  margin-top: 3px !important;
  font-feature-settings: "tnum" 1, "ss01" 1 !important;
}

.sidebar-sale-card small {
  font-size: 10.5px !important;
  font-weight: 450 !important;
  color: rgba(0,0,0,0.45) !important;
  margin-top: 2px !important;
  letter-spacing: -0.005em !important;
}

/* ── Price monitor ($/WDC) — promoted to frosted card ──────────────
   Sits between the Precio venta card and the bottom of the sidebar.
   Light material, larger number, refined tabular figures.           */
.sidebar-price-monitor {
  margin-top: 4px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(250,250,252,0.9) 100%) !important;
  border: 0.5px solid rgba(0,0,0,0.08) !important;
  border-top: 0.5px solid rgba(255,255,255,1) !important;
  border-radius: 16px !important;
  padding: 14px 16px 13px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 1px !important;
  color: var(--ink) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 1px 2px rgba(0,0,0,0.03),
    0 4px 12px rgba(0,0,0,0.04) !important;
}

.sidebar-ebipay-card select{
  margin-top: 6px;
  width: 100%;
  border: 1px solid var(--line-strong);
  border-radius: var(--r-sm);
  padding: 6px 8px;
  font-size: 11.5px;
  font-weight: 600;
  font-family: inherit;
  color: var(--ink);
  background: var(--surface);
  cursor: pointer;
}

.sidebar-price-monitor span {
  font-size: 9.5px !important;
  font-weight: 650 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  color: rgba(0,0,0,0.45) !important;
}

.sidebar-price-monitor strong {
  font-size: 22px !important;
  font-weight: 620 !important;
  letter-spacing: -0.6px !important;
  color: #1c1c1e !important;
  margin-top: 3px !important;
  font-feature-settings: "tnum" 1, "ss01" 1 !important;
}

/* (label "$/WDC" is now plain text, no sub element used) */
.sidebar-price-monitor sub {
  font-size: inherit !important;
  vertical-align: baseline !important;
  color: inherit !important;
  font-weight: inherit !important;
}

/* ═══════════════════════════════════════════════════════════════════
   ACCORDION HEADERS — Apple refinement
   Master headers (project-costing, smart-design, financial-analysis,
   proposal-summary): refined dark graphite (not pure black) with
   subtle highlight rim.
   Sub headers (matrix, execution, conduit, calculators, commission):
   light frosted with airy spacing.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Master headers: refined graphite ─────────────────────────────── */
.project-costing-header,
.smart-design-header,
.financial-analysis-header,
.proposal-summary-header {
  background:
    linear-gradient(180deg, #2c2c2e 0%, #1c1c1e 100%) !important;
  border: 0.5px solid rgba(255,255,255,0.06) !important;
  border-top: 0.5px solid rgba(255,255,255,0.12) !important;
  border-radius: 16px !important;
  padding: 16px 20px !important;
  gap: 16px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    inset 0 -1px 0 rgba(0,0,0,0.4),
    0 8px 22px rgba(0,0,0,0.16),
    0 2px 5px rgba(0,0,0,0.08) !important;
  transition:
    background 0.2s var(--ease),
    box-shadow 0.2s var(--ease),
    transform 0.2s var(--ease-spring) !important;
}

.project-costing-header:hover,
.smart-design-header:hover,
.financial-analysis-header:hover,
.proposal-summary-header:hover {
  background:
    linear-gradient(180deg, #38383a 0%, #232325 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    inset 0 -1px 0 rgba(0,0,0,0.4),
    0 10px 28px rgba(0,0,0,0.22),
    0 3px 8px rgba(0,0,0,0.10) !important;
}

.project-costing-header:active,
.smart-design-header:active,
.financial-analysis-header:active,
.proposal-summary-header:active {
  transform: scale(0.995) !important;
  transition-duration: 0.08s !important;
}

/* Text inside master headers */
.project-costing-title-left strong,
.smart-design-title-left strong {
  font-size: 14px !important;
  font-weight: 620 !important;
  letter-spacing: -0.1px !important;
  text-transform: none !important;
  color: #ffffff !important;
}

.project-costing-title-left small,
.smart-design-title-left small,
.smart-design-meta-right strong,
.project-costing-meta-right strong {
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  color: rgba(255,255,255,0.55) !important;
}

/* For financial-analysis and proposal-summary headers (their inner
   markup differs; ensure their titles read white and refined) */
.financial-analysis-header strong,
.proposal-summary-header strong {
  font-size: 14px !important;
  font-weight: 620 !important;
  letter-spacing: -0.1px !important;
  color: #ffffff !important;
}
.financial-analysis-header small,
.proposal-summary-header small {
  font-size: 11.5px !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,0.55) !important;
  letter-spacing: 0 !important;
}

/* Chevron — refined glyph */
.project-costing-card .project-costing-header .chevron,
.smart-design-card .smart-design-header .chevron,
.financial-analysis-header .chevron,
.proposal-summary-header .chevron {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  color: rgba(255,255,255,0.6) !important;
  transition: transform 0.28s var(--ease-spring), color 0.2s var(--ease) !important;
}
.project-costing-header:hover .chevron,
.smart-design-header:hover .chevron,
.financial-analysis-header:hover .chevron,
.proposal-summary-header:hover .chevron {
  color: rgba(255,255,255,0.9) !important;
}

/* ── Sub-accordion headers: light frosted ─────────────────────────── */
.matrix-header,
.execution-header,
.conduit-header,
.calculators-header,
.commission-header {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(248,248,250,0.88) 100%) !important;
  border: 0.5px solid rgba(0,0,0,0.07) !important;
  border-top: 0.5px solid rgba(255,255,255,1) !important;
  border-radius: 14px !important;
  padding: 14px 18px !important;
  gap: 16px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.8),
    0 1px 2px rgba(0,0,0,0.03),
    0 3px 10px rgba(0,0,0,0.04) !important;
  transition:
    background 0.18s var(--ease),
    box-shadow 0.18s var(--ease),
    transform 0.18s var(--ease-spring),
    border-color 0.18s var(--ease) !important;
}

.matrix-header:hover,
.execution-header:hover,
.conduit-header:hover,
.calculators-header:hover,
.commission-header:hover {
  background:
    linear-gradient(180deg, #ffffff 0%, #fafafc 100%) !important;
  border-color: rgba(0,0,0,0.10) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 2px 4px rgba(0,0,0,0.04),
    0 5px 14px rgba(0,0,0,0.06) !important;
}

.matrix-header:active,
.execution-header:active,
.conduit-header:active,
.calculators-header:active,
.commission-header:active {
  transform: scale(0.995) !important;
  transition-duration: 0.08s !important;
}

/* Sub-accordion text — refined hierarchy */
.matrix-title-left strong,
.execution-title-left strong,
.conduit-title-left strong,
.calculators-title-left strong,
.commission-title-left strong {
  font-size: 13.5px !important;
  font-weight: 620 !important;
  text-transform: none !important;
  letter-spacing: -0.1px !important;
  color: #1c1c1e !important;
}

.matrix-title-left small,
.execution-title-left small,
.conduit-title-left small,
.calculators-title-left small,
.commission-title-left small {
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  color: #6b7280 !important;
}

.matrix-meta-right strong,
.execution-meta-right strong,
.conduit-meta-right strong,
.commission-total {
  font-size: 12.5px !important;
  font-weight: 650 !important;
  letter-spacing: -0.1px !important;
  color: #1c1c1e !important;
}

/* Sub chevron */
.matrix-title-left .chevron,
.execution-title-left .chevron,
.conduit-title-left .chevron,
.calculators-title-left .chevron,
.commission-title-left .chevron {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  color: #8e8e93 !important;
  transition: transform 0.28s var(--ease-spring), color 0.2s var(--ease) !important;
}
.matrix-header:hover .chevron,
.execution-header:hover .chevron,
.conduit-header:hover .chevron,
.calculators-header:hover .chevron,
.commission-header:hover .chevron {
  color: #1c1c1e !important;
}

/* ── Master accordion card containers — ensure clean radii ────────── */
.project-costing-card,
.smart-design-card,
.financial-analysis-card,
.proposal-summary-card {
  border-radius: 18px !important;
}

/* ── Mobile niceties ──────────────────────────────────────────────── */
@media (max-width: 900px) {
  .sidebar {
    width: 260px !important;
    min-width: 260px !important;
    padding: 18px 14px 20px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   APPLE-GRADE UI — small refinements addendum (v3.4.1)
   1. Group the 3 KPI cards as a visual block (tighter inner spacing)
   2. Apple-style focus ring on accordion headers (keyboard a11y)
   3. Subtle press affordance on KPI cards (Apple cards "click in")
   ═══════════════════════════════════════════════════════════════════ */

/* (1) Tighter spacing between the 3 sidebar KPI cards so they read
       as a single group, with breathing room above the group.       */
.sidebar-profit-card { margin-top: 8px !important; margin-bottom: 0 !important; }
.sidebar-sale-card   { margin-top: 6px !important; margin-bottom: 0 !important; }
.sidebar-price-monitor { margin-top: 6px !important; }

/* (2) Apple-style focus ring — only on keyboard navigation.
       Master headers (dark) get a soft white inner ring + blue glow.
       Sub headers (light) get a standard blue ring.                  */
.project-costing-header:focus-visible,
.smart-design-header:focus-visible,
.financial-analysis-header:focus-visible,
.proposal-summary-header:focus-visible {
  outline: none !important;
  box-shadow:
    inset 0 0 0 1.5px rgba(255,255,255,0.35),
    0 0 0 3px rgba(10,132,255,0.45),
    inset 0 1px 0 rgba(255,255,255,0.10),
    inset 0 -1px 0 rgba(0,0,0,0.4),
    0 8px 22px rgba(0,0,0,0.16),
    0 2px 5px rgba(0,0,0,0.08) !important;
}

.matrix-header:focus-visible,
.execution-header:focus-visible,
.conduit-header:focus-visible,
.calculators-header:focus-visible,
.commission-header:focus-visible {
  outline: none !important;
  border-color: rgba(10,132,255,0.6) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 0 0 3px rgba(10,132,255,0.18),
    0 2px 4px rgba(0,0,0,0.04),
    0 5px 14px rgba(0,0,0,0.06) !important;
}

/* (3) KPI cards: subtle press affordance (Apple cards depress lightly
       on click — gives instant haptic-like feedback even on web).    */
.sidebar-profit-card,
.sidebar-sale-card,
.sidebar-price-monitor {
  transition:
    transform 0.18s var(--ease-spring),
    box-shadow 0.18s var(--ease) !important;
}
.sidebar-profit-card:active,
.sidebar-sale-card:active,
.sidebar-price-monitor:active {
  transform: scale(0.992) !important;
  transition-duration: 0.08s !important;
}

/* ═══════════════════════════════════════════════════════════════════
   LIQUID GLASS SYSTEM — v3.4.2
   Inspired by iOS 26 Liquid Glass material.
   Key ingredients:
     1. Heavy backdrop-filter (blur + saturate) for refractive look
     2. Layered translucent gradients (highlight + body + edge)
     3. Inner specular borders (top-light + bottom-shadow)
     4. Dual shadow system (soft depth + inner glass thickness)
     5. Subtle outer glow for "floating" feel
   ═══════════════════════════════════════════════════════════════════ */

/* ── Sidebar shell: ambient frosted pane ──────────────────────────── */
.sidebar {
  background:
    linear-gradient(180deg,
      rgba(255,255,255,0.55) 0%,
      rgba(248,250,253,0.45) 100%) !important;
  backdrop-filter: blur(50px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(50px) saturate(180%) !important;
  border-right: 0.5px solid rgba(255,255,255,0.6) !important;
  box-shadow:
    inset -1px 0 0 rgba(255,255,255,0.4),
    0 0 0 0.5px rgba(0,0,0,0.04),
    4px 0 24px rgba(0,0,0,0.04) !important;
}

/* ── Sidebar KPI Cards — Liquid Glass treatment ───────────────────── */

/* PROFIT CARD — dark liquid glass (graphite refractive) */
.sidebar-profit-card {
  background:
    linear-gradient(135deg,
      rgba(58,58,60,0.85) 0%,
      rgba(28,28,30,0.92) 50%,
      rgba(44,44,46,0.88) 100%) !important;
  backdrop-filter: blur(30px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(180%) !important;
  border: 0.5px solid rgba(255,255,255,0.18) !important;
  border-radius: 18px !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.25),
    inset 0 -1px 0 rgba(0,0,0,0.5),
    inset 1px 0 0 rgba(255,255,255,0.08),
    inset -1px 0 0 rgba(0,0,0,0.2),
    0 1px 2px rgba(0,0,0,0.1),
    0 8px 24px rgba(0,0,0,0.18),
    0 16px 40px rgba(0,0,0,0.12) !important;
}

/* Specular highlight layer for profit card */
.sidebar-profit-card::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 50% !important;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.12) 0%,
    rgba(255,255,255,0) 100%) !important;
  pointer-events: none !important;
  border-radius: 18px 18px 0 0 !important;
}

/* Bottom refraction shimmer */
.sidebar-profit-card::after {
  content: "" !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 10% !important;
  right: 10% !important;
  height: 1px !important;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,0.15) 50%,
    transparent 100%) !important;
  pointer-events: none !important;
}

/* SALE CARD — light liquid glass */
.sidebar-sale-card {
  background:
    linear-gradient(135deg,
      rgba(255,255,255,0.7) 0%,
      rgba(248,250,253,0.55) 50%,
      rgba(255,255,255,0.65) 100%) !important;
  backdrop-filter: blur(30px) saturate(200%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(200%) !important;
  border: 0.5px solid rgba(255,255,255,0.9) !important;
  border-radius: 18px !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -1px 0 rgba(0,0,0,0.04),
    inset 1px 0 0 rgba(255,255,255,0.5),
    inset -1px 0 0 rgba(0,0,0,0.03),
    0 1px 2px rgba(0,0,0,0.03),
    0 6px 18px rgba(0,0,0,0.06),
    0 12px 32px rgba(0,0,0,0.04) !important;
}

.sidebar-sale-card::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 60% !important;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.5) 0%,
    rgba(255,255,255,0) 100%) !important;
  pointer-events: none !important;
  border-radius: 18px 18px 0 0 !important;
}

/* PRICE MONITOR ($/WDC) — light liquid glass matching sale card */
.sidebar-price-monitor {
  background:
    linear-gradient(135deg,
      rgba(255,255,255,0.7) 0%,
      rgba(248,250,253,0.55) 50%,
      rgba(255,255,255,0.65) 100%) !important;
  backdrop-filter: blur(30px) saturate(200%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(200%) !important;
  border: 0.5px solid rgba(255,255,255,0.9) !important;
  border-radius: 18px !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -1px 0 rgba(0,0,0,0.04),
    inset 1px 0 0 rgba(255,255,255,0.5),
    inset -1px 0 0 rgba(0,0,0,0.03),
    0 1px 2px rgba(0,0,0,0.03),
    0 6px 18px rgba(0,0,0,0.06),
    0 12px 32px rgba(0,0,0,0.04) !important;
}

.sidebar-price-monitor::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 60% !important;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.5) 0%,
    rgba(255,255,255,0) 100%) !important;
  pointer-events: none !important;
  border-radius: 18px 18px 0 0 !important;
}

/* Make label/value sit above pseudo-elements */
.sidebar-profit-card > *,
.sidebar-sale-card > *,
.sidebar-price-monitor > * {
  position: relative !important;
  z-index: 1 !important;
}

/* ── Sidebar buttons — Liquid Glass ───────────────────────────────── */
.sidebar .btn {
  background:
    linear-gradient(135deg,
      rgba(255,255,255,0.7) 0%,
      rgba(248,250,253,0.5) 100%) !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  border: 0.5px solid rgba(255,255,255,0.8) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    inset 0 -1px 0 rgba(0,0,0,0.04),
    0 1px 2px rgba(0,0,0,0.04),
    0 2px 8px rgba(0,0,0,0.04) !important;
  position: relative !important;
  overflow: hidden !important;
}

.sidebar .btn::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 50% !important;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.4) 0%,
    rgba(255,255,255,0) 100%) !important;
  pointer-events: none !important;
  border-radius: inherit !important;
}

.sidebar .btn > * {
  position: relative !important;
  z-index: 1 !important;
}

.sidebar .btn:hover {
  background:
    linear-gradient(135deg,
      rgba(255,255,255,0.85) 0%,
      rgba(250,251,253,0.65) 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -1px 0 rgba(0,0,0,0.06),
    0 2px 4px rgba(0,0,0,0.06),
    0 4px 12px rgba(0,0,0,0.06) !important;
}

/* Primary button (Guardar) — Apple blue liquid glass */
.sidebar .btn.primary,
.sidebar #exportExcelBtn {
  background:
    linear-gradient(135deg,
      rgba(10,132,255,0.95) 0%,
      rgba(0,122,255,1) 50%,
      rgba(10,132,255,0.95) 100%) !important;
  border: 0.5px solid rgba(255,255,255,0.3) !important;
  color: #ffffff !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.35),
    inset 0 -1px 0 rgba(0,0,0,0.15),
    0 1px 2px rgba(0,122,255,0.2),
    0 4px 12px rgba(0,122,255,0.25),
    0 8px 24px rgba(0,122,255,0.15) !important;
}

.sidebar .btn.primary::before,
.sidebar #exportExcelBtn::before {
  background: linear-gradient(180deg,
    rgba(255,255,255,0.25) 0%,
    rgba(255,255,255,0) 100%) !important;
}

.sidebar .btn.primary:hover,
.sidebar #exportExcelBtn:hover {
  background:
    linear-gradient(135deg,
      rgba(20,142,255,1) 0%,
      rgba(10,132,255,1) 50%,
      rgba(20,142,255,1) 100%) !important;
}

/* Danger outline — red liquid glass tint */
.sidebar .btn.danger-outline,
.sidebar #clearAllBtn {
  background:
    linear-gradient(135deg,
      rgba(255,59,48,0.08) 0%,
      rgba(255,59,48,0.04) 100%) !important;
  border: 0.5px solid rgba(255,59,48,0.35) !important;
  color: rgb(255,59,48) !important;
}

.sidebar .btn.danger-outline:hover,
.sidebar #clearAllBtn:hover {
  background:
    linear-gradient(135deg,
      rgba(255,59,48,0.15) 0%,
      rgba(255,59,48,0.08) 100%) !important;
  border-color: rgba(255,59,48,0.5) !important;
}

/* ── Master accordion headers — Dark Liquid Glass ─────────────────── */
.project-costing-header,
.smart-design-header,
.financial-analysis-header,
.proposal-summary-header {
  background:
    linear-gradient(135deg,
      rgba(58,58,60,0.88) 0%,
      rgba(28,28,30,0.94) 50%,
      rgba(44,44,46,0.9) 100%) !important;
  backdrop-filter: blur(30px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(180%) !important;
  border: 0.5px solid rgba(255,255,255,0.15) !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    inset 0 -1px 0 rgba(0,0,0,0.5),
    inset 1px 0 0 rgba(255,255,255,0.06),
    inset -1px 0 0 rgba(0,0,0,0.2),
    0 1px 2px rgba(0,0,0,0.08),
    0 6px 18px rgba(0,0,0,0.14),
    0 12px 32px rgba(0,0,0,0.08) !important;
}

.project-costing-header::before,
.smart-design-header::before,
.financial-analysis-header::before,
.proposal-summary-header::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 50% !important;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.1) 0%,
    rgba(255,255,255,0) 100%) !important;
  pointer-events: none !important;
  border-radius: 16px 16px 0 0 !important;
}

.project-costing-header > *,
.smart-design-header > *,
.financial-analysis-header > *,
.proposal-summary-header > * {
  position: relative !important;
  z-index: 1 !important;
}

/* ── Sub-accordion headers — Light Liquid Glass ───────────────────── */
.matrix-header,
.execution-header,
.conduit-header,
.calculators-header,
.commission-header {
  background:
    linear-gradient(135deg,
      rgba(255,255,255,0.75) 0%,
      rgba(248,250,253,0.6) 50%,
      rgba(255,255,255,0.7) 100%) !important;
  backdrop-filter: blur(24px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
  border: 0.5px solid rgba(255,255,255,0.85) !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -1px 0 rgba(0,0,0,0.04),
    0 1px 2px rgba(0,0,0,0.03),
    0 4px 12px rgba(0,0,0,0.05),
    0 8px 24px rgba(0,0,0,0.03) !important;
}

.matrix-header::before,
.execution-header::before,
.conduit-header::before,
.calculators-header::before,
.commission-header::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 60% !important;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.5) 0%,
    rgba(255,255,255,0) 100%) !important;
  pointer-events: none !important;
  border-radius: 14px 14px 0 0 !important;
}

.matrix-header > *,
.execution-header > *,
.conduit-header > *,
.calculators-header > *,
.commission-header > * {
  position: relative !important;
  z-index: 1 !important;
}

.matrix-header:hover,
.execution-header:hover,
.conduit-header:hover,
.calculators-header:hover,
.commission-header:hover {
  background:
    linear-gradient(135deg,
      rgba(255,255,255,0.9) 0%,
      rgba(250,252,255,0.75) 50%,
      rgba(255,255,255,0.85) 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -1px 0 rgba(0,0,0,0.05),
    0 2px 4px rgba(0,0,0,0.04),
    0 6px 16px rgba(0,0,0,0.07),
    0 10px 28px rgba(0,0,0,0.04) !important;
}

/* ═══════════════════════════════════════════════════════════════════
   END LIQUID GLASS SYSTEM — v3.4.2
   ═══════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════
   END APPLE-GRADE UI REFINEMENT — v3.4
   ═══════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════
   B2B / B2C (CLIENTE DIRECTO) · Switch de tipo de cliente + Hojas 03-05
   Bloque autocontenido. No modifica reglas previas.
   ═══════════════════════════════════════════════════════════════════ */

/* ---- Barra de selección de tipo de cliente ---- */
.proposal-client-mode-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
  padding:12px 14px;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#f9fafb;
  flex-wrap:wrap;
}
.proposal-client-mode-bar .pcm-info strong{ display:block; font-size:13px; }
.proposal-client-mode-bar .pcm-info small{ display:block; color:#6b7280; font-size:12px; margin-top:2px; }
.pcm-switch{
  display:inline-flex;
  background:#e5e7eb;
  border-radius:10px;
  padding:3px;
  gap:2px;
}
.pcm-btn{
  border:0;
  background:transparent;
  color:#374151;
  cursor:pointer;
  font-family:inherit;
  font-size:12.5px;
  font-weight:600;
  padding:7px 16px;
  border-radius:8px;
  transition:background .15s ease, color .15s ease, box-shadow .15s ease;
  white-space:nowrap;
}
.pcm-btn:hover{ color:#111827; }
.pcm-btn.active{
  background:#ffffff;
  color:#0f1b2d;
  box-shadow:0 1px 4px rgba(0,0,0,.14);
}

/* ---- Visibilidad por modo (pantalla) ---- */
.sp-mode-b2c{ display:none; }
body.client-b2c .sp-mode-b2b{ display:none !important; }
body.client-b2c .sp-mode-b2c{ display:block; }

/* ── B2B (múltiple): varios contadores integrados en una sola Hoja 02 ── */
#sp2MultiMeterBlock{ display:none; }
body.b2b-multi-mode .sp2-system-block,
body.b2b-multi-mode .sp2-chart-block{ display:none !important; }
body.b2b-multi-mode #sp2MultiMeterBlock{ display:block; }

.b2b-multi-panel{
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#f9fafb;
  padding:14px;
  margin-bottom:14px;
}
.b2b-multi-panel-head{ margin-bottom:10px; }
.b2b-multi-panel-head strong{ display:block; font-size:13px; }
.b2b-multi-panel-head small{ display:block; color:#6b7280; font-size:12px; margin-top:2px; }

.meter-line{
  display:grid;
  grid-template-columns:1.2fr 0.9fr 0.9fr 0.7fr 0.8fr 0.8fr auto;
  gap:8px;
  align-items:end;
  padding:10px;
  border:1px solid var(--line);
  border-radius:var(--r-md);
  background:#fff;
  margin-bottom:8px;
}
.meter-line label{ font-size:9.5px; font-weight:600; color:var(--muted); }
.remove-meter-line{
  border:0;
  background:var(--danger-soft);
  color:var(--danger);
  width:32px; height:32px;
  border-radius:var(--r-sm);
  cursor:pointer;
  font-weight:700;
  transition:background var(--duration) var(--ease);
}
.remove-meter-line:hover{ background:rgba(220,53,69,0.18); }
@media(max-width:900px){ .meter-line{ grid-template-columns:1fr 1fr; } }

/* Tabla de contadores impresa en Hoja 02 */
.sp2-meter-table{
  width:100%;
  border-collapse:collapse;
  font-size:11px;
  margin-bottom:16px;
}
.sp2-meter-table th{
  text-align:center;
  font-size:9.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.03em;
  color:#374151;
  padding:8px 6px;
  border-bottom:2px solid #d1d5db;
}
.sp2-meter-table th:first-child, .sp2-meter-table td:first-child{ text-align:left; }
.sp2-meter-table td{
  text-align:center;
  padding:8px 6px;
  border-bottom:1px solid #e5e7eb;
  font-weight:600;
}
.sp2-meter-table tbody tr{ position:relative; }
.sp2-meter-table tbody tr td:first-child{
  border-left:3px solid var(--accent);
  padding-left:9px;
}
.sp2-meter-table tfoot td{
  font-weight:800;
  border-top:2px solid #d1d5db;
  border-bottom:none;
  padding-top:10px;
}
.sp2-meter-chart-legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-bottom:10px;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:0.01em;
  color:#48484a;
}
.sp2-meter-chart-legend span{ display:inline-flex; align-items:center; gap:6px; }
.sp2-meter-chart-legend .dot{ width:8px; height:8px; border-radius:50%; display:inline-block; }

/* Ondas del gráfico "Rendimiento del sistema" B2B múltiple — entrada suave,
   estilo Apple Salud/Stocks (fade + leve ascenso, sin rebote brusco). */
.sp2-wave-band, .sp2-wave-line{
  animation: sp2WaveIn 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.sp2-wave-line{ opacity: 0.95; }
@keyframes sp2WaveIn{
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .sp2-wave-band, .sp2-wave-line{ animation: none; }
}

/* ---- Base de las hojas B2C en pantalla ---- */
body.client-b2c .b2c-page{
  margin:0 auto 28px auto;
}
.b2c-page{
  /* Paleta formal alineada a las hojas B2B (sin amarillos ni negros decorativos) */
  --b2c-ink:#111827;       /* títulos y números */
  --b2c-text:#374151;      /* texto general */
  --b2c-muted:#6b7280;     /* etiquetas / secundario */
  --b2c-border:#e5e7eb;    /* líneas y bordes */
  --b2c-card-bg:#f8fafc;   /* tarjetas sutiles */
  --b2c-accent:#f1ea0b;    /* positivo / ahorro (amarillo de marca) */
  --b2c-bar-base:#cbd5e1;  /* barra base / sin sistema */
  font-family:'IBM Plex Sans', sans-serif;
  color:var(--b2c-text);
}
.b2c-body{
  padding:120px 46px 105px 46px;
  position:relative;
  box-sizing:border-box;
}

/* Título de hoja: formal, sin fondo (estilo etiqueta B2B con regla inferior) */
.b2c-pill-title{
  display:block;
  background:none;
  color:var(--b2c-ink);
  font-weight:700;
  letter-spacing:.14em;
  font-size:14px;
  text-transform:uppercase;
  padding:0 0 10px;
  border-bottom:1px solid var(--b2c-border);
  margin-bottom:18px;
}
.b2c-pill-title.small{
  border-bottom:0;
  font-size:11px;
  letter-spacing:.16em;
  color:var(--b2c-muted);
  padding:0;
  margin:16px 0 10px;
}

/* Etiquetas de sección: solo texto, gris atenuado en mayúsculas */
.b2c-section-tag,
.b2c-section-tag.dark{
  display:block;
  background:none;
  color:var(--b2c-muted);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:0;
  border:0;
  border-bottom:1px solid var(--b2c-border);
  padding-bottom:8px;
  margin:22px 0 14px;
}
.b2c-sub-label{
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--b2c-muted);
  text-transform:uppercase;
  margin:16px 0 8px;
}
.b2c-sub-label.small{ font-size:10.5px; margin:12px 0 5px; }
.b2c-paragraph{
  font-size:12.5px;
  line-height:1.55;
  color:var(--b2c-text);
  margin:6px 0 12px;
}

/* ════════ HOJA 03 · FINANCIERA ════════ */
.b2c-fin-charts{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:22px;
  margin-bottom:24px;
}
.b2c-chart-card{ display:flex; flex-direction:column; }
.b2c-chart-tag,
.b2c-chart-tag.dark{
  align-self:flex-start;
  background:none;
  color:var(--b2c-ink);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:0;
  border-radius:0;
  margin-bottom:8px;
}
.b2c-chart-sub{ font-size:11px; color:var(--b2c-muted); margin-bottom:8px; }
.b2c-roi-svgwrap{ width:100%; margin-top:6px; }
.b2c-roi-svg{ width:100%; height:auto; display:block; overflow:visible; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
.b2c-roi-gridline{ stroke:#eef2f7; stroke-width:1; }
.b2c-roi-zero{ stroke:#c2cad6; stroke-width:1.1; }
.b2c-roi-line{ fill:none; stroke:#1d1d1f; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.b2c-roi-ylabel{ fill:#9ca3af; font-size:8px; font-family:'IBM Plex Sans',Arial,sans-serif; }
.b2c-roi-xlabel{ fill:#9ca3af; font-size:8.5px; font-family:'IBM Plex Sans',Arial,sans-serif; }
.b2c-roi-pbline{ stroke:#cbd5e1; stroke-width:1; stroke-dasharray:3 3; }
.b2c-roi-pbdot{ fill:#fff; stroke:#1d1d1f; stroke-width:1.4; }
.b2c-roi-pblabel{ fill:#6b7280; font-size:8.5px; font-weight:600; font-family:'IBM Plex Sans',Arial,sans-serif; }
.b2c-roi-enddot{ fill:#1d1d1f; stroke:#fff; stroke-width:2; }
.b2c-roi-endval{ fill:#111827; font-size:11px; font-weight:700; font-family:'IBM Plex Sans',Arial,sans-serif; }
.b2c-roi-startlabel{ fill:#6b7280; font-size:8.5px; font-weight:600; font-family:'IBM Plex Sans',Arial,sans-serif; }

.b2c-bars-chart{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:40px;
  height:150px;
  border-bottom:1px solid var(--b2c-border);
  padding-bottom:0;
}
.b2c-bar-col{ display:flex; flex-direction:column; align-items:center; width:90px; height:100%; justify-content:flex-end; }
.b2c-bar{ width:64px; border-radius:3px 3px 0 0; min-height:4px; }
.b2c-bar-gray{ background:var(--b2c-bar-base); }
.b2c-bar-yellow{ background:var(--b2c-accent); }
.b2c-bar-label{ font-size:9.5px; text-align:center; color:var(--b2c-muted); margin-top:6px; line-height:1.3; }

/* Métricas: solo texto, sin chips de color */
.b2c-metrics-row{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
  align-items:stretch;
  margin:10px 0 22px;
  padding-top:2px;
}
.b2c-metric{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  text-align:center;
  padding:0 4px;
  border-left:1px solid var(--b2c-border);
}
.b2c-metric:first-child{ border-left:0; }
.b2c-metric-top, .b2c-metric-bottom{
  font-size:15px;
  font-weight:700;
  color:var(--b2c-ink);
  text-align:center;
  min-height:18px;
  order:1;
}
.b2c-metric-chip,
.b2c-metric-chip.dark,
.b2c-metric-chip.light{
  background:none;
  color:var(--b2c-muted);
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-align:center;
  padding:0;
  border-radius:0;
  line-height:1.3;
  width:100%;
  box-sizing:border-box;
  order:2;
}

/* Beneficios ambientales */
.b2c-env-row, .b2c-resumen-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-bottom:6px;
}
.b2c-env-card, .b2c-resumen-card{
  background:var(--b2c-card-bg);
  border:1px solid var(--b2c-border);
  border-radius:14px;
  padding:14px 10px;
  text-align:center;
}
.b2c-env-ico, .b2c-resumen-ico{ font-size:22px; margin-bottom:4px; color:var(--b2c-muted); }
.b2c-env-label, .b2c-resumen-label{ font-size:10px; color:var(--b2c-muted); line-height:1.3; }
.b2c-env-val{ font-size:18px; font-weight:800; color:var(--b2c-ink); margin-top:4px; }
.b2c-resumen-val{ font-size:18px; font-weight:800; color:var(--b2c-ink); margin:4px 0; }
.b2c-resumen-pill{
  display:block;
  text-align:center;
  background:none;
  color:var(--b2c-muted);
  font-weight:700;
  letter-spacing:.3em;
  font-size:12px;
  text-transform:uppercase;
  padding:8px 0;
  border-top:1px solid var(--b2c-border);
  border-bottom:1px solid var(--b2c-border);
  margin:20px 0 16px;
}

/* ════════ HOJA 04 · GARANTÍAS ════════ */
.b2c-warranty-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px 26px;
  margin-bottom:8px;
}
.b2c-warr-card{
  display:flex;
  gap:14px;
  align-items:center;
  background:var(--b2c-card-bg);
  border:1px solid var(--b2c-border);
  border-radius:16px;
  padding:14px;
}
.b2c-warr-img{ width:66px; height:66px; object-fit:contain; flex:0 0 66px; }
.b2c-warr-img.lg{ width:73px; height:73px; flex:0 0 73px; }
.b2c-warr-name{ font-size:13px; font-weight:800; color:var(--b2c-ink); margin-bottom:5px; letter-spacing:.02em; }
.b2c-warr-line{ font-size:10.5px; color:#4b5563; line-height:1.4; }
.b2c-warr-line strong{ color:var(--b2c-ink); }

.b2c-monitor-block{ display:flex; align-items:center; justify-content:space-between; gap:20px; margin:6px 0 4px; }
.b2c-monitor-left{ flex:1; }
.b2c-monitor-list{ margin:6px 0 0; padding-left:18px; }
.b2c-monitor-list li{ font-size:12px; color:var(--b2c-text); line-height:1.7; }
.b2c-monitor-right{ display:flex; flex-direction:column; align-items:center; gap:4px; }
.b2c-monitor-ico{ font-size:54px; color:var(--b2c-muted); }
.b2c-monitor-demo{ font-size:11px; color:var(--b2c-muted); text-decoration:underline; }

.b2c-cronograma-area{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:150px;
  border:1.5px dashed #cbd5e1;
  border-radius:14px;
  cursor:pointer;
  background:#fafbfc;
  overflow:hidden;
}
.b2c-cronograma-area.has-image{ border-style:solid; border-color:var(--b2c-border); min-height:auto; }
.b2c-cronograma-placeholder{ color:#9ca3af; font-size:12px; }
.b2c-cronograma-img{ width:100%; display:block; }

/* ════════ HOJA 05 · PROPUESTA ECONÓMICA ════════ */
.b2c-scope-list{ margin:4px 0 4px; padding-left:20px; }
.b2c-scope-list li{ font-size:11.5px; color:var(--b2c-text); line-height:1.5; }
.b2c-offer-head-row{ display:flex; justify-content:space-between; align-items:flex-end; }
.b2c-offer-date{ text-align:right; }
.b2c-offer-date-label{ display:block; font-size:11px; font-weight:800; color:var(--b2c-ink); }
.b2c-offer-date-value{ display:block; font-size:12px; color:var(--b2c-text); }
.b2c-offer-table{ width:100%; border-collapse:separate; border-spacing:0; margin:6px 0 4px; }
.b2c-offer-table thead th{
  text-align:left;
  font-size:11px;
  font-weight:800;
  color:var(--b2c-ink);
  border-bottom:1.5px solid var(--b2c-border);
  padding:8px 10px;
}
.b2c-offer-table thead th:nth-child(1){ text-align:center; }
.b2c-offer-table thead th:nth-child(3),
.b2c-offer-table thead th:nth-child(4){ text-align:right; }
/* Rectángulo gris claro que cubre TODA la fila: de Cantidad a Total */
.b2c-offer-table tbody td{
  background:var(--b2c-card-bg);
  padding:14px 12px;
}
.b2c-offer-table tbody tr td:first-child{ border-radius:8px 0 0 8px; }
.b2c-offer-table tbody tr td:last-child{ border-radius:0 8px 8px 0; }
/* Descripción arriba; valores numéricos centrados verticalmente */
.b2c-offer-desc{ vertical-align:top; }
.b2c-offer-qty{ vertical-align:middle; text-align:center; font-size:13px; font-weight:600; color:var(--b2c-ink); width:70px; }
.b2c-offer-money{ vertical-align:middle; text-align:right; font-size:12.5px; font-weight:600; color:var(--b2c-ink); white-space:nowrap; }
.b2c-offer-desc-title{ font-weight:800; color:var(--b2c-ink); font-size:12.5px; margin-bottom:6px; }
.b2c-offer-desc-list{ margin:0; padding-left:18px; }
.b2c-offer-desc-list li{ font-size:11px; color:#4b5563; line-height:1.6; }

/* Pie de la propuesta: condiciones a la izquierda, totales a la derecha */
.b2c-offer-footer{ display:flex; justify-content:space-between; align-items:flex-start; gap:40px; margin-top:18px; }
.b2c-offer-terms{ flex:1; display:flex; flex-direction:column; gap:14px; min-width:0; margin-top:92px; }
.b2c-offer-term .b2c-sub-label.small{ margin:0 0 4px; }
.b2c-offer-term-text{ font-size:11.5px; color:var(--b2c-text); margin:0; line-height:1.5; }
.b2c-offer-term-list{ margin:0; padding-left:16px; }
.b2c-offer-term-list li{ font-size:11.5px; color:var(--b2c-text); line-height:1.6; }
.b2c-offer-totals{ flex:0 0 280px; width:280px; margin:-14px 0 0; }
.b2c-offer-total-line{ display:flex; justify-content:space-between; padding:5px 0; font-size:12.5px; color:var(--b2c-text); }
.b2c-offer-total-line strong{ color:var(--b2c-ink); }
.b2c-offer-total-line.grand{ border-top:1.5px solid var(--b2c-border); margin-top:4px; padding-top:8px; font-size:15px; }
.b2c-offer-total-line.grand strong{ font-size:16px; }
.b2c-offer-valid{ font-size:10.5px; color:var(--b2c-muted); margin:2px 0 0; line-height:1.5; }
.b2c-offer-signature{ display:flex; justify-content:space-between; align-items:flex-end; margin-top:26px; }
.b2c-offer-sign-left{ width:230px; }
.b2c-offer-sign-line{ border-top:1px solid #374151; width:230px; }
.b2c-offer-sign-client{ font-size:12px; color:var(--b2c-text); margin-top:6px; text-align:center; }
.b2c-offer-sign-right{ text-align:right; }
.b2c-offer-sign-name{ font-size:13px; color:var(--b2c-ink); }
.b2c-offer-sign-role, .b2c-offer-sign-company{ font-size:11.5px; color:#4b5563; }

/* ───────────────────────────── IMPRESIÓN ───────────────────────────── */
@media print{
  /* Ocultar la barra de selección al imprimir */
  .proposal-client-mode-bar{ display:none !important; }

  /* Forzar impresión de colores en la curva ROI, acentos y proyección */
  .b2c-roi-svg, .b2c-roi-svg *,
  .b2c-proj-card.feature .b2c-proj-amount,
  .b2c-disclaimer{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }

  /* Modo B2B (por defecto): nunca imprimir hojas B2C */
  .sp-mode-b2c{ display:none !important; }

  /* Modo B2C: ocultar hojas B2B 03 y 04, mostrar las B2C */
  body.client-b2c #proposalSummaryPage3,
  body.client-b2c #proposalSummaryPage4,
  body.client-b2c section#proposalSummaryPage4,
  body.client-b2c #proposalSummaryPage4.proposal-letter-page,
  body.client-b2c #proposalSummaryPage4.proposal-summary-page-4,
  body.client-b2c .proposal-summary-page-3.sp-mode-b2b,
  body.client-b2c .proposal-summary-page-4.sp-mode-b2b{
    display:none !important;
    visibility:hidden !important;
  }

  body.client-b2c .b2c-page{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    width:816px !important;
    height:1056px !important;
    min-height:1056px !important;
    max-height:1056px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    overflow:hidden !important;
    position:relative !important;
    background:#fff !important;
    page-break-before:auto !important;
    break-before:auto !important;
    page-break-after:always !important;
    break-after:page !important;
    page-break-inside:avoid !important;
    break-inside:avoid !important;
  }
  body.client-b2c .b2c-offer-page{
    page-break-after:auto !important;
    break-after:auto !important;
  }
  body.client-b2c .b2c-page *{
    visibility:visible !important;
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
  body.client-b2c .b2c-page .b2c-cronograma-img[style*="display:none"],
  body.client-b2c .b2c-page input[type="file"]{
    display:none !important;
    visibility:hidden !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   B2C · Iconos silueta (un solo color) + ejes/montos en gráficas
   Addendum. No modifica reglas previas.
   ═══════════════════════════════════════════════════════════════════ */

/* Iconos: silueta gris oscuro, un solo color */
.b2c-env-ico, .b2c-resumen-ico{
  color:#374151;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:6px;
  font-size:0; /* anula tamaño de cualquier texto/emoji residual */
}
.b2c-ico-svg{ width:34px; height:34px; display:block; }

/* Cards de resumen (Potencia / Ahorro / Generación): ~15% más bajas.
   Override específico para NO afectar las cards ambientales que comparten reglas. */
.b2c-resumen-card{ padding-top:7px; padding-bottom:7px; }
.b2c-resumen-card .b2c-resumen-ico{ margin-bottom:3px; }
.b2c-resumen-card .b2c-resumen-val{ margin:3px 0; }
.b2c-monitor-ico{ color:#374151; font-size:0; }
.b2c-monitor-ico svg{ width:52px; height:52px; display:block; }

/* ROI · (montos ahora se dibujan sobre la primera y última barra vía JS) */

/* Consumo vs Generación · plano con eje en quetzales (escala proporcional) */
.b2c-bars-plot{
  position:relative;
  height:160px;
  margin:6px 0 0 56px;
  border-left:1px solid var(--b2c-border);
  border-bottom:1px solid var(--b2c-border);
}
.b2c-bars-grid{ position:absolute; top:0; left:0; right:0; bottom:0; pointer-events:none; }
.b2c-grid-line{ position:absolute; left:0; right:0; border-top:1px dashed #e8edf3; }
.b2c-grid-line span{
  position:absolute; left:-56px; top:-6px; width:50px;
  text-align:right; font-size:8px; color:#9ca3af; white-space:nowrap;
}
.b2c-bars-chart{
  position:absolute !important; top:0 !important; left:0 !important; right:0 !important; bottom:0 !important;
  height:auto !important; border:0 !important;
  display:flex; align-items:flex-end; justify-content:center;
  gap:46px; padding:0;
}
.b2c-bar{ position:relative; width:60px; border-radius:3px 3px 0 0; min-height:3px; }
.b2c-bar-value{
  position:absolute; top:-16px; left:50%; transform:translateX(-50%);
  font-size:10px; font-weight:700; color:var(--b2c-ink); white-space:nowrap;
}
.b2c-bars-legend{ display:flex; justify-content:center; gap:16px; margin-top:8px; }
.b2c-bars-legend span{ width:90px; text-align:center; font-size:9.5px; color:var(--b2c-muted); line-height:1.3; }

/* B2C · Disclaimer (mismo formato que el de las hojas B2B: fondo oscuro + icono) */
.b2c-disclaimer{
  display:flex;
  align-items:center;
  gap:10px;
  background:#1d1d1f;
  border-radius:10px;
  padding:11px 14px;
  margin:20px 0 18px;
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}
.b2c-disclaimer-icon{ flex-shrink:0; display:flex; align-items:center; opacity:.85; }
.b2c-disclaimer-text{ font-size:10px; font-weight:400; color:rgba(255,255,255,.85); line-height:1.3; letter-spacing:.01em; }

/* B2C · Proyección de ahorro acumulado (5/10/25 años) — estilo Apple */
.b2c-proj{ margin-top:8px; }
.b2c-proj .b2c-sub-label{ margin:6px 0 4px; }
.b2c-proj-sub-note{ font-size:11px; color:var(--b2c-muted); margin-bottom:16px; }
.b2c-proj-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.b2c-proj-card{
  position:relative;
  background:transparent;
  border:1px solid #e5e7eb;
  border-radius:16px;
  padding:18px 18px 16px;
  box-shadow:none;
  overflow:visible;
}
.b2c-proj-accent{ display:none; }
.b2c-proj-card.feature{ box-shadow:none; border-color:#e7e1a6; }
.b2c-proj-card.feature .b2c-proj-accent{ display:none; }
/* resaltado sutil del hito a 25 años: subrayado amarillo bajo el monto (sin recuadro) */
.b2c-proj-card.feature .b2c-proj-amount{
  display:inline-block;
  padding-bottom:2px;
  border-bottom:2px solid var(--b2c-accent);
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}
.b2c-proj-eyebrow{
  font-size:10px; font-weight:700; letter-spacing:.2em;
  color:var(--b2c-muted); text-transform:uppercase;
}
.b2c-proj-amount{
  font-size:23px; font-weight:700; color:var(--b2c-ink);
  letter-spacing:-.015em; line-height:1.05; margin:9px 0 4px;
  font-variant-numeric:tabular-nums;
}
.b2c-proj-cur{ font-size:14px; font-weight:600; color:var(--b2c-muted); margin-right:1px; }
.b2c-proj-foot{ font-size:10.5px; color:var(--b2c-muted); }

/* Proyección de costo · comparativo equilibrado (dos cifras del mismo peso) */
.b2c-noinstall{ margin-top:4px; }
.b2c-noinstall-lead{
  font-size:13px; color:var(--b2c-text); line-height:1.45;
  max-width:430px; margin-bottom:14px;
}
.b2c-noinstall-item{
  display:flex; align-items:baseline; justify-content:space-between;
  max-width:440px; padding:8px 0;
}
.b2c-noinstall-item-label{ font-size:14px; color:var(--b2c-text); }
.b2c-noinstall-item-amount{
  font-size:25px; line-height:1; font-weight:600; letter-spacing:-.01em;
  font-variant-numeric:tabular-nums; color:var(--b2c-ink);
}
.b2c-noinstall-divider{ height:1px; background:var(--b2c-border); max-width:440px; }
.b2c-noinstall-note{ font-size:10.5px; color:var(--b2c-muted); margin-top:12px; }

/* =========================================================================
   FIX PDF LENTO: evitar que Chrome rasterice la SOMBRA y el fondo redondeado
   de la hoja como imágenes de página completa (~9 MP) en cada página.
   Solo afecta impresión/PDF; en pantalla la hoja conserva su sombra.
   ========================================================================= */
@media print {
  .proposal-letter-page,
  .proposal-letter-page.b2c-page,
  .b2c-page,
  #proposalSummaryPage2,
  .proposal-summary-page-2 {
    box-shadow: none !important;
    border-radius: 0 !important;
    filter: none !important;
  }
}

/* ═══ Sidebar 10/10: estado arriba, acciones abajo (reordenado en el HTML) ═══
   Estas reglas van al FINAL del archivo a propósito: los bloques anteriores de
   .simplified-project-actions y .sidebar-profit-card usan !important, y con
   igual especificidad gana la última declaración. */

/* Separador de respiración entre las métricas y el bloque de acciones */
.sidebar .sidebar-actions{
  margin-top: 16px !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--line) !important;
  margin-bottom: 0 !important;
}

/* La Utilidad es EL número del negocio: tratamiento héroe.
   El padding-top del sidebar le da aire al borde superior — sin él, la
   tarjeta quedaba pegada/recortada contra el tope de la ventana. */
.sidebar{ padding-top: 26px !important; }
.sidebar-profit-card{ margin-top: 0 !important; }
.sidebar-profit-card strong{
  font-size: 26px !important;
  letter-spacing: -0.02em !important;
  line-height: 1.15 !important;
}

/* En ventanas más chicas, los hijos del sidebar (columna flex de 100vh) se
   COMPRIMÍAN — flex-shrink por defecto — recortando las tarjetas unas sobre
   otras en vez de activar el scroll que el sidebar ya tiene (overflow-y:auto).
   Con shrink apagado, el contenido conserva su tamaño y aparece el scroll. */
.sidebar > *{ flex-shrink: 0 !important; }

/* "Abrir proyecto": botón teñido (estilo iOS "tinted") — destaca sin competir
   con el azul relleno de "Guardar", que sigue siendo LA acción principal.
   Regla de un solo botón que grita por grupo. */
.sidebar #openProjectExcelBtn{
  color: var(--accent) !important;
  background: rgba(0,102,204,0.07) !important;
  border-color: rgba(0,102,204,0.30) !important;
  font-weight: 600 !important;
}
.sidebar #openProjectExcelBtn:hover{
  background: rgba(0,102,204,0.13) !important;
}
.sidebar #openProjectExcelBtn:active{
  background: rgba(0,102,204,0.20) !important;
}

/* "Copiar resumen (WhatsApp)": teñido con los verdes de WhatsApp — el color
   comunica el destino antes de leer el texto. Texto en el verde oscuro de la
   marca (#128C7E) para contraste legible; el verde claro (#25D366) va en
   fondo/borde suaves, siguiendo el mismo lenguaje teñido del botón Abrir. */
.sidebar #copyWhatsAppBtn{
  color: #128C7E !important;
  background: rgba(37,211,102,0.10) !important;
  border-color: rgba(37,211,102,0.38) !important;
  font-weight: 600 !important;
}
.sidebar #copyWhatsAppBtn:hover{
  background: rgba(37,211,102,0.18) !important;
}
.sidebar #copyWhatsAppBtn:active{
  background: rgba(37,211,102,0.26) !important;
}

/* NOTA sobre las páginas duplicadas al imprimir desde Safari (5 hojas → 10):
   NO es un bug de esta app. El diseño es a sangre completa (816×1056 = carta
   exacta) y Safari reserva los márgenes físicos de la impresora aunque @page
   pida margin:0, así que el contenido "derrama" páginas casi en blanco. Se
   probaron dos remedios de CSS y ambos se descartaron: afeitar 2px no alcanza
   (el derrame es de decenas de px) y zoom 0.94 arregla el conteo pero mata el
   diseño a sangre (marco blanco). Soluciones reales, fuera del CSS:
   - elegir "Carta (sin márgenes)" como tamaño de papel en el diálogo de Safari, o
   - exportar el PDF desde Chrome (respeta margin:0; verificado con headless:
     conteo exacto y sangre completa). */

/* ── Número de página refinado (todas las hojas B2B y B2C) ──
   El texto lo escribe renumberProposalPages() en ui.js: "Página 02 de 05",
   dinámico según el modo. Tipografía de folio editorial: versalitas con
   tracking, discreta junto al bloque CTZ. Al final del CSS para ganar los
   5 bloques previos de .summary-page2-page. */
.summary-page2-page{
  font-size: 9.5px !important;
  font-weight: 650 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: #9a9aa0 !important;
}
