/* ==========================================
   HERO DEL SIMULADOR
========================================== */

.simulador{
    padding:180px 0 100px;
}

.simulador-hero{
    max-width:800px;
    margin:0 auto 60px;
    text-align:center;
}

.badge{
    display:inline-block;
    padding:8px 18px;
    margin-bottom:20px;
    border-radius:30px;
    background:rgba(59,130,246,.15);
    color:var(--secondary);
}

.simulador-hero h1{
    margin-bottom:20px;
}

.hero-text{
    max-width:700px;
    margin:auto;
}


/* ==========================================
   FEATURES
========================================== */

.features{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:15px;
    margin-bottom:50px;
}

.feature{
    padding:12px 18px;
    border-radius:30px;
    border:1px solid var(--border);
    background:rgba(59,130,246,.12);
    color:var(--secondary);
}


/* ==========================================
   DASHBOARD
========================================== */

.dashboard{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(380px,1fr));
    gap:30px;
    
}


/* ==========================================
   FORMULARIO
========================================== */

.form-card h2{
    margin-bottom:30px;
}

.field{
    margin-bottom:25px;
}

.field label{
    display:block;
    margin-bottom:10px;
    font-weight:600;
}

input[type="number"]{
    width:100%;
    padding:15px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#0b1220;
    color:#fff;
    font-size:1rem;
}

input[type="number"]:focus{
    outline:none;
    border-color:var(--primary);
    box-shadow:0 0 0 4px rgba(59,130,246,.15);
}


input[type="text"]{
    width:100%;
    padding:15px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#0b1220;
    color:#fff;
    font-size:1rem;
}

input[type="text"]:focus{
    outline:none;
    border-color:var(--primary);
    box-shadow:0 0 0 4px rgba(59,130,246,.15);
}

.helper{
    display:block;
    margin-top:8px;
    color:#94a3b8;
    font-size:.85rem;
}


/* ==========================================
   RADIO BUTTONS
========================================== */

.radio-group{
    display:flex;
    flex-wrap:wrap;
    gap:20px;
}

.radio{
    display:flex;
    align-items:center;
    gap:8px;
}


/* ==========================================
   BOTON CALCULAR
========================================== */

.actions{

    display:flex;

    gap:12px;

    margin-top:10px;

}

#btn-calcular{

    flex:2;

    padding:16px;

    border:none;

    border-radius:12px;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:white;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}

#btn-limpiar{

    flex:1;

    padding:16px;

    border:1px solid var(--border);

    border-radius:12px;

    background:transparent;

    color:#cbd5e1;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}

#btn-calcular:hover,
#btn-limpiar:hover{

    transform:translateY(-2px);

}

#btn-limpiar:hover{

    border-color:var(--secondary);

    color:var(--secondary);

}

/* ==========================================
   RESULTADO PRINCIPAL
========================================== */

.result-header{
    text-align:center;
    margin-bottom:30px;
}

.result-label{
    display:block;
    margin-bottom:10px;
    color:#94a3b8;
}

#categoria{
    font-size:4.5rem;
    line-height:1;
    font-weight:800;
    color:var(--secondary);
}


/* ==========================================
   TARJETAS INFORMATIVAS
========================================== */

.monthly-fee,
.next-category,
.alert-box{
    padding:18px;
    margin-bottom:20px;
    border-radius:16px;
    text-align:center;
    background:#0b1220;
    border:1px solid rgba(255,255,255,.05);
}

.monthly-fee span,
.next-category span,
.alert-box span{
    display:block;
    margin-bottom:8px;
    color:#94a3b8;
}

.monthly-fee strong{
    font-size:2rem;
    color:var(--secondary);
}




.alert-box{
    background:rgba(59,130,246,.08);
    border:1px solid rgba(59,130,246,.25);
}

.alert-box strong{

    display:block;
    margin-top:10px;

    font-size:2.5rem;
    font-weight:800;
    color:var(--secondary);
}





.detalle-item {

    display:flex;
    justify-content:space-between;
    align-items:center;

    padding:14px 16px;
    margin-bottom:10px;

    background:#0b1220;
    border:1px solid rgba(255,255,255,.05);

    border-radius:12px;

    font-size:15px;

}


.detalle-item span{

    color:#94a3b8;

}


.detalle-item strong{

    color:var(--secondary);
    font-weight:700;

}


.categoria-final {

    margin-top:20px;

    padding:18px;

    display:flex;
    justify-content:space-between;
    align-items:center;

    background:rgba(59,130,246,.10);

    border:1px solid rgba(59,130,246,.25);

    border-radius:16px;

}


.categoria-final span{

    color:#cbd5e1;
    font-weight:600;

}


.categoria-final strong{

    font-size:2rem;
    color:var(--secondary);

}

/* ==========================================
   INDICADORES
========================================== */

.result-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
    margin-bottom:30px;
}

.result-box{
    padding:10px;
    border-radius:16px;
    background:#0b1220;
    border:1px solid rgba(255,255,255,.05);
    margin-bottom: 15px;
    text-align:center;
}

.result-box span{
    display:block;
    margin-bottom:10px;
    color:#94a3b8;
    text-align: center;
}

.result-box strong{
    font-size:1.2rem;
    text-align: center;
}


.form-card,
.result-card{
    height:100%;
}

.result-card{
    display:flex;
    flex-direction:column;
}

.result-card .disclaimer{
    margin-top:auto;
}


/* ==========================================
   BARRA DE PROGRESO
========================================== */

.progress-section{
    margin-bottom:25px;
}

.progress{
    height:14px;
    overflow:hidden;
    border-radius:30px;
    background:#334155;
}

.progress-bar{
    width:0%;
    height:100%;
    transition:width .5s ease, background-color .4s ease;
    background:linear-gradient(
        90deg,
        var(--primary),
        var(--secondary)
    );
}

#porcentaje{
    display:block;
    margin-top:10px;
    text-align:right;
}


.progress-bar.verde {
    background: #22c55e;
}

.progress-bar.amarillo {
    background: #facc15;
}

.progress-bar.rojo {
    background: #ef4444;
}

#porcentaje.verde{
    color:#22c55e;
}

#porcentaje.amarillo{
    color:#ca8a04;
}

#porcentaje.rojo{
    color:#dc2626;
}

/* ==========================================
   MENSAJES
========================================== */

.status{
    padding:15px;
    text-align:center;
    border-radius:12px;
    background:rgba(59,130,246,.1);
    color:var(--secondary);
}

.status.verde{
    background:rgba(34,197,94,.15);
    color:#22c55e;
    border:1px solid rgba(34,197,94,.35);
}

.status.amarillo{
    background:rgba(250,204,21,.15);
    color:#facc15;
    border:1px solid rgba(250,204,21,.35);
}

.status.rojo{
    background:rgba(239,68,68,.15);
    color:#ef4444;
    border:1px solid rgba(239,68,68,.35);
}

.disclaimer{
    margin-top:20px;
    text-align:center;
    font-size:.85rem;
    color:#64748b;
}


/* ==========================================
   CTA
========================================== */

.cta .container{
    max-width:900px;
    padding:50px;
    text-align:center;
}

.cta p{
    max-width:700px;
    margin:0 auto 30px;
}




/* ==========================================
   TIP BOX
========================================== */

/* .tip-box{

    margin-top:30px;

    padding:20px;

    border-radius:16px;

    background:rgba(59,130,246,.08);

    border:1px solid rgba(59,130,246,.25);

}

.tip-box strong{

    display:block;

    margin-bottom:10px;

    color:var(--secondary);

    font-size:1rem;

}

.tip-box p{

    color:#94a3b8;

    font-size:.9rem;

    line-height:1.6;

} */



/* ==========================================
   INFO BOX
========================================== */

.info-box{

    display: block;
    margin-top:30px;
    padding:22px;
    border-radius:16px;

    background:rgba(59,130,246,.08);
    border:1px solid rgba(59,130,246,.20);

}

.info-box h3{

    display:block;

    margin-bottom:18px;

    color:var(--secondary);

    font-size:1.05rem;

    font-weight:600;

}

.info-box h3 i{

    margin-right:8px;

    color:var(--secondary);

}

.info-box ul{

    list-style:none;

    padding:0;

    margin:0;

}

.info-box li{

    display:flex;

    align-items:flex-start;

    gap:12px;

    margin-bottom:14px;

}

.info-box li:last-child{

    margin-bottom:0;

}

.info-box li i{

    color:#22c55e;

    margin-top:3px;

    flex-shrink:0;

}

.info-box li span{

    color:#cbd5e1;

    line-height:1.6;

}


/* ==========================================
   ACCIONES
========================================== */
.acciones-resultados {

    display: flex;
    gap: 15px;
    margin-top: 25px;
    flex-wrap: wrap;
    text-align: center;
    justify-content: center;

}


.btn-accion {

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    border: none;
    padding: 12px 20px;

    border-radius: 10px;

    font-size: 15px;
    font-weight: 600;

    cursor: pointer;

    transition: 0.3s ease;

}


/* PDF */

.btn-pdf {

    background: #d32f2f;
    color: white;

}


.btn-pdf:hover {

    transform: translateY(-2px);
    opacity: 0.9;

}


/* WhatsApp */

.btn-whatsapp {

    background: #25D366;
    color: white;

}


.btn-whatsapp:hover {

    transform: translateY(-2px);
    opacity: 0.9;

}



/* Iconos */

.btn-accion i {

    font-size: 20px;

}


/* ==========================================
   Mensaje de Error
========================================== */
.mensaje-error{
     display: none; /* oculto por defecto */
    margin-top: 15px;
    padding: 12px;
    border-radius: 8px;
    background-color: #f8d7da;
    color: #842029;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
}

.mensaje-error.visible{
    display: block;
}

/*Marca el campo que tiene error*/
.input-error{
    border: 2px solid #dc3545;
}

/* ==========================================
   RESPONSIVE
========================================== */

@media (max-width:768px){

    .dashboard{
        grid-template-columns:1fr;
    }

    .result-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width:500px){

    .simulador{
        padding-top:140px;
    }

    #categoria{
        font-size:3rem;
    }

    .monthly-fee strong{
        font-size:1.6rem;
    }
}