/* Estilos generales de la calculadora y de la version imprimible. */
:root{--verde:#00492c;--verde-2:#0f6a47;--verde-claro:#eef7f1;--gris:#64716a;--borde:#d5ded8;--fondo:#f4f6f5;--blanco:#fff;--texto:#243029;--alerta:#9b2c2c}
    *{box-sizing:border-box} body{margin:0;padding:24px;background:var(--fondo);font-family:Arial,Helvetica,sans-serif;color:var(--texto)}
    .app{max-width:1080px;margin:0 auto;background:var(--blanco);border-radius:18px;overflow:hidden;box-shadow:0 10px 34px rgba(0,0,0,.10)}
    .header{background:linear-gradient(135deg,var(--verde),var(--verde-2));color:#fff;padding:30px 24px;text-align:center}.header h1{margin:0 0 8px;font-size:30px}.header p{margin:0;opacity:.92}
    .layout{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;padding:28px}.card{border:1px solid var(--borde);border-radius:14px;padding:22px;background:#fff}.card h2{margin:0 0 18px;color:var(--verde);font-size:21px}
    .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{margin-bottom:16px}label{display:block;font-weight:bold;margin-bottom:7px;font-size:14px}
    input,select{width:100%;padding:12px 13px;border:1px solid #bac7bf;border-radius:9px;font-size:16px;background:#fff;color:var(--texto)}input:focus,select:focus{border-color:var(--verde);outline:2px solid rgba(0,73,44,.14)}
    .product-info{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 18px}.mini{background:var(--verde-claro);border:1px solid #c9ded1;border-radius:10px;padding:12px;font-size:13px;line-height:1.4}.mini strong{color:var(--verde)}
    /* Ficha de beneficios propia de cada solución comercial. */
    .product-features{margin:0 0 18px;padding:14px 16px;background:#f8faf9;border:1px solid var(--borde);border-radius:10px}
    .product-features h3{margin:0 0 9px;color:var(--verde);font-size:15px}
    .product-features ul{margin:0;padding-left:20px;color:#45534b;font-size:13px;line-height:1.55}
    .product-features li+li{margin-top:3px}
    .discount-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px}button{border:0;border-radius:9px;padding:12px 14px;cursor:pointer;font-weight:bold;font-size:14px}.quick{background:var(--verde-claro);color:var(--verde);border:1px solid #bfd6c7}.quick:hover{background:#dfede4}
    .actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.primary{background:var(--verde);color:#fff;flex:1}.secondary{background:#e9eeeb;color:#324139;flex:1}
    .result{background:#fbfcfb}.row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #e5ebe7;font-size:15px}.row span:first-child{color:var(--gris)}.row strong{text-align:right}
    .highlight{margin-top:14px;padding:16px;background:var(--verde);color:#fff;border-radius:10px;border-bottom:0}.highlight span:first-child{color:#fff}.highlight strong{font-size:22px}
    .notice{margin-top:14px;padding:12px;background:#fff8e7;border:1px solid #ead7a5;border-radius:9px;font-size:13px;line-height:1.5}.error{color:var(--alerta);font-size:13px;margin-top:7px;display:none}.hidden{display:none}.footer{text-align:center;padding:0 24px 28px;color:var(--gris);font-size:13px}
    @media(max-width:800px){body{padding:10px}.layout{grid-template-columns:1fr;padding:16px}.grid-2,.product-info{grid-template-columns:1fr}.header h1{font-size:24px}}
    @media print{body{background:#fff;padding:0}.app{box-shadow:none}.actions,.discount-buttons{display:none}}
  
    .print-quote{display:none}
    @media print{
      @page{size:letter;margin:14mm}
      body{background:#fff;padding:0;color:#1f2937}
      .app{box-shadow:none;border-radius:0;max-width:none}
      .header,.layout,.footer{display:none!important}
      .print-quote{display:block!important;font-family:Arial,Helvetica,sans-serif}
      .print-sheet{
        border:1px solid #d9e2dc;
        border-radius:16px;
        overflow:hidden;
      }
      .print-head{
        background:linear-gradient(135deg,#00492c,#0f6a47);
        color:#fff;
        padding:24px 28px;
        text-align:center;
      }
      .print-head h1{margin:0;font-size:26px}
      .print-head p{margin:6px 0 0;font-size:13px;opacity:.95}
      .print-body{padding:26px 30px}
      .print-product-card{
        display:grid;
        grid-template-columns:132px 1fr;
        gap:15px;
        align-items:center;
        margin:0 0 12px;
        padding:10px;
        border:1px solid #d8e2dc;
        border-radius:10px;
        background:#f8faf9;
      }
      .print-product-card>img{
        width:132px;
        height:86px;
        object-fit:cover;
        display:block;
        border-radius:8px;
        border:1px solid #d0dad4;
      }
      .print-product-info{min-width:0}
      .print-product-label{
        display:block;
        margin-bottom:3px;
        font-size:9px;
        color:#6b756f;
        text-transform:uppercase;
        letter-spacing:.5px;
      }
      .print-product{
        margin:0 0 7px;
        color:#00492c;
        font-size:17px;
        line-height:1.15;
        text-align:left;
      }
      .print-product-meta{
        display:flex;
        flex-wrap:wrap;
        gap:5px 18px;
        font-size:10.5px;
        color:#4f5b54;
      }

      /* Datos del cliente: una sola fila dentro de una tarjeta imprimible. */
      .print-client{
        display:grid;
        grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
        margin:0 0 12px;
        border:1px solid #d8e2dc;
        border-radius:9px;
        overflow:hidden;
        background:#fff;
      }
      .print-client>div{
        display:flex;
        align-items:baseline;
        gap:7px;
        min-width:0;
        padding:8px 10px;
      }
      .print-client>div+div{border-left:1px solid #dfe7e2}
      .print-client span{
        flex:0 0 auto;
        color:#68736c;
        font-size:8.5px;
        text-transform:uppercase;
        letter-spacing:.25px;
      }
      .print-client strong{
        min-width:0;
        color:#1d2c24;
        font-size:10.5px;
        line-height:1.2;
        overflow-wrap:anywhere;
      }


      .print-footer-contact{
        display:flex;
        justify-content:space-between;
        align-items:center;
        gap:18px;
        margin-top:12px;
        padding-top:10px;
        border-top:1px solid #dce5df;
      }
      .print-advisor{
        margin:0;
        padding:0;
        border:0;
        text-align:left;
      }
      .advisor-caption{
        display:block;
        margin-bottom:2px;
        font-size:9px!important;
        color:#6d7771!important;
        text-transform:uppercase;
        letter-spacing:.45px;
      }
      .print-qr{
        display:flex;
        align-items:center;
        gap:7px;
        max-width:170px;
      }
      .print-qr img{
        width:58px;
        height:58px;
        object-fit:contain;
      }
      .print-qr span{
        font-size:9px;
        line-height:1.2;
        color:#59645e;
      }
      .print-plans{margin-top:12px}
      .print-plans h3{margin-bottom:6px;font-size:14px}
      .print-plans th,.print-plans td{padding:6px 5px}
      .print-grid{gap:8px}
      .print-card{padding:8px 10px}
      .print-card span{font-size:9px}
      .print-card strong{font-size:12px}
      .print-note{margin-top:9px;font-size:8.5px;line-height:1.25}
      .print-sheet{padding:0}
      .print-header{margin-bottom:10px}
      .print-header h1{font-size:19px}
      .print-header p{font-size:10px}
      @page{size:A4 portrait;margin:9mm}
      .print-sheet,.print-sheet *{
        page-break-inside:avoid;
        break-inside:avoid;
      }

      .print-plans{margin-top:12px}
      .print-plans h3{
        margin:0 0 10px;
        color:#00492c;
        font-size:16px;
        text-align:center;
      }
      .print-plans table{
        width:100%;
        border-collapse:collapse;
        font-size:12px;
      }
      .print-plans th,.print-plans td{
        padding:9px 8px;
        text-align:center;
        border:1px solid #dce5df;
      }
      .print-plans th{
        background:#eef7f1;
        color:#00492c;
      }
      .print-plans tr.selected-plan{
        background:#dff1e6;
        font-weight:700;
      }
    }

  
    .advisor-box{
      margin-bottom:18px;
      padding:16px;
      background:var(--verde-claro);
      border:1px solid #c9ded1;
      border-radius:12px;
    }
    .advisor-box h3{
      margin:0 0 12px;
      color:var(--verde);
      font-size:16px;
    }
    .advisor-box .grid-2{gap:10px}
    .advisor-box .field{margin-bottom:0}
    .plans-preview{
      margin-top:18px;
      border:1px solid var(--borde);
      border-radius:12px;
      overflow:hidden;
      background:#fff;
    }
    .plans-preview h3{
      margin:0;
      padding:13px 15px;
      background:var(--verde-claro);
      color:var(--verde);
      font-size:16px;
    }
    .plans-table{
      width:100%;
      border-collapse:collapse;
      font-size:13px;
    }
    .plans-table th,.plans-table td{
      padding:10px 8px;
      text-align:center;
      border-bottom:1px solid #e5ebe7;
    }
    .plans-table th{
      background:#f8faf9;
      color:var(--gris);
      font-size:12px;
    }
    .plans-table tr.selected-plan{
      background:#e7f5ec;
      color:var(--verde);
      font-weight:700;
    }
    .plans-table tr:last-child td{border-bottom:0}

  
    .client-box{
      margin-bottom:18px;
      padding:16px;
      background:#f8faf9;
      border:1px solid var(--borde);
      border-radius:12px;
    }
    .client-box h3{
      margin:0 0 12px;
      color:var(--verde);
      font-size:16px;
    }
    .client-box .grid-2{gap:10px}
    .client-box .field{margin-bottom:0}

    .product-photo-box{
      margin:0 0 18px;
      border:1px solid var(--borde);
      border-radius:14px;
      overflow:hidden;
      background:#eef3f0;
    }
    .product-photo-box img{
      display:block;
      width:100%;
      height:220px;
      object-fit:cover;
    }
    .pdf-button{
      background:#b42318;
      color:#fff;
      flex:1;
    }
    .pdf-button:hover{background:#8f1c13}
    .whatsapp-button{
      background:#168c4c;
      color:#fff;
      flex:1;
    }
    .whatsapp-button:hover{background:#11733e}

    @media(max-width:800px){
      .product-photo-box img{height:190px}
    }

  
    .special-price{
      background:#e7f5ec;
      color:var(--verde);
      font-weight:800;
    }
    .special-price strong{font-size:18px}

  
    .financial-proposal{margin-top:14px;border:1px solid var(--borde);border-radius:12px;overflow:hidden;background:#fff}
    .financial-proposal h3{margin:0;padding:12px 14px;background:var(--verde-claro);color:var(--verde);font-size:16px}
    .financial-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0}
    .financial-summary-grid .summary-item{padding:11px 13px;border-right:1px solid #e3ebe6;border-bottom:1px solid #e3ebe6}
    .financial-summary-grid .summary-item:nth-child(2n){border-right:0}
    .financial-summary-grid .summary-item span{display:block;margin-bottom:3px;color:var(--gris);font-size:12px}
    .financial-summary-grid .summary-item strong{color:#183126;font-size:15px}
    /* Dentro del resumen, highlight es una celda: no debe heredar la forma
       redondeada ni el margen del bloque principal de "Valor de cuota". */
    .financial-summary-grid .summary-item.highlight{
      margin:0;
      border-radius:0;
      background:#edf8f1;
      color:inherit;
    }
    .financial-summary-grid .summary-item.highlight strong{color:var(--verde);font-size:17px}
    @media print{
      .print-financial-proposal{margin-top:10px;border:1px solid #d7e1db;border-radius:9px;overflow:hidden}
      .print-financial-proposal h3{margin:0;padding:7px 9px;background:#eef7f1;color:#00492c;font-size:13px}
      .print-financial-grid{display:grid;grid-template-columns:repeat(4,1fr)}
      .print-financial-item{padding:7px 8px;border-right:1px solid #dfe7e2;border-top:1px solid #dfe7e2}
      .print-financial-item:nth-child(4n){border-right:0}
      .print-financial-item span{display:block;margin-bottom:2px;color:#68736c;font-size:8.5px;text-transform:uppercase;letter-spacing:.2px}
      .print-financial-item strong{color:#1d2c24;font-size:10.5px}
      .print-financial-item.highlight{background:#e8f5ed}
      .print-financial-item.highlight strong{color:#00492c;font-size:11.5px}
    }
