/* ===========================
   ESTILOS GENERALES
=========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{

    font-family:'Segoe UI',sans-serif;

    background:#eef2f7;

    color:#2d3748;

}

/* ===========================
   HEADER
=========================== */

header{

    background:white;

    padding:25px;

    display:flex;

    align-items:center;

    gap:25px;

    border-bottom:1px solid #dcdcdc;

    box-shadow:0 3px 12px rgba(0,0,0,.06);

}

.logo img{

    width:70px;

}

.titulo h1{

    color:#b60707;

    font-size:30px;

}

.titulo h2{

    margin-top:4px;

    font-size:20px;

    font-weight:600;

}

.titulo p{

    color:#777;

    margin-top:6px;

    font-size:14px;

}

/* ===========================
   CONTENEDOR
=========================== */

main{

    width:95%;

    max-width:1050px;

    margin:35px auto;

}

/* ===========================
   TARJETA INFORMACIÓN
=========================== */

.info{

    background:white;

    border-radius:12px;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:20px;

    padding:25px;

    margin-bottom:25px;

    box-shadow:0 8px 20px rgba(0,0,0,.06);

}

.info span{

    display:block;

    color:#777;

    margin-bottom:8px;

    font-size:13px;

}

.info strong{

    font-size:16px;

}

.pendiente{

    color:#f39c12;

}

/* ===========================
   AVISO
=========================== */

.aviso{

    background:#fff8e7;

    border-left:6px solid #f4b400;

    padding:22px;

    margin-bottom:25px;

    border-radius:10px;

}

.aviso h3{

    margin-bottom:10px;

    color:#8a5b00;

}

.aviso p{

    line-height:1.7;

}

/* ===========================
   CONTRATO
=========================== */

.contrato{

    background:white;

    border-radius:12px;

    padding:25px;

    box-shadow:0 8px 20px rgba(0,0,0,.06);

}

.contrato img{

    width:100%;

    margin-bottom:18px;

    border-radius:8px;

    border:1px solid #ddd;

    transition:.25s;

}

.contrato img:hover{

    transform:scale(1.01);

}

/* ===========================
   FIRMA
=========================== */

.firma{

    margin-top:30px;

    background:white;

    border-radius:12px;

    padding:30px;

    box-shadow:0 8px 20px rgba(0,0,0,.06);

}

.firma h2{

    color:#0057b8;

}

.firma p{

    margin:10px 0 20px;

    color:#666;

}

/* ===========================
   CANVAS
=========================== */

canvas{

    width:100%;

    height:220px;

    background:white;

    border:3px dashed #c8ced8;

    border-radius:10px;

}

/* ===========================
   CHECK
=========================== */

.aceptacion{

    margin-top:20px;

    display:flex;

    gap:10px;

    align-items:flex-start;

}

.aceptacion input{

    transform:scale(1.3);

    margin-top:4px;

}

.aceptacion label{

    line-height:1.6;

}

/* ===========================
   BOTONES
=========================== */

.botones{

    display:flex;

    justify-content:center;

    gap:20px;

    margin-top:35px;

}

button{

    border:none;

    border-radius:8px;

    cursor:pointer;

    padding:16px 32px;

    font-size:16px;

    font-weight:600;

    transition:.25s;

}

/* BOTÓN VERDE */

.aceptar{

    background:#16a34a;

    color:white;

}

.aceptar:hover{

    background:#15803d;

    transform:translateY(-2px);

    box-shadow:0 8px 18px rgba(22,163,74,.35);

}

/* BOTÓN ROJO */

.rechazar{

    background:#dc2626;

    color:white;

}

.rechazar:hover{

    background:#b91c1c;

    transform:translateY(-2px);

    box-shadow:0 8px 18px rgba(220,38,38,.35);

}

/* ===========================
   FOOTER
=========================== */

footer{

    margin-top:40px;

    text-align:center;

    color:#888;

    padding:25px;

    font-size:14px;

}

/* ===========================
   RESPONSIVE
=========================== */

@media(max-width:900px){

.info{

    grid-template-columns:1fr 1fr;

}

header{

    flex-direction:column;

    text-align:center;

}

}

@media(max-width:600px){

.info{

    grid-template-columns:1fr;

}

.botones{

    flex-direction:column;

}

button{

    width:100%;

}

canvas{

    height:180px;

}

.titulo h1{

    font-size:24px;

}

.titulo h2{

    font-size:18px;

}

}

/*==========================================
    PANTALLA DE CARGA
==========================================*/

#overlayFirma{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    height:100%;

    background:rgba(0,0,0,.70);

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:99999;

}

.overlay-box{

    width:420px;

    max-width:90%;

    background:white;

    padding:40px;

    border-radius:18px;

    text-align:center;

    box-shadow:0 20px 50px rgba(0,0,0,.35);

}

.overlay-box h2{

    margin-top:20px;

    color:#0057b8;

}

.overlay-box p{

    margin-top:15px;

    color:#666;

    line-height:1.7;

}

.spinner{

    width:65px;

    height:65px;

    margin:auto;

    border:6px solid #e5e7eb;

    border-top:6px solid #0057b8;

    border-radius:50%;

    animation:girar 1s linear infinite;

}

@keyframes girar{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}
