*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

body{

    background:linear-gradient(135deg,#edf2f7,#dce6f2);

    padding:35px;

    color:#2d3436;

}

/* ==========================
   CONTENEDOR
========================== */

.contenedor{

    width:95%;

    max-width:1600px;

    margin:auto;

    background:#fff;

    border-radius:18px;

    overflow:hidden;

    box-shadow:
        0 15px 40px rgba(0,0,0,.12);

    animation:entrada .45s ease;

}

@keyframes entrada{

    from{

        opacity:0;

        transform:translateY(20px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ==========================
   HEADER
========================== */

header{

    background:linear-gradient(135deg,#1f4e79,#2f75a8);

    color:white;

    text-align:center;

    font-size:30px;

    font-weight:700;

    letter-spacing:1px;

    padding:28px;

    box-shadow:
        inset 0 -2px rgba(255,255,255,.12);

}

/* ==========================
   FILTROS
========================== */

.barra-filtros{

    display:flex;

    justify-content:space-between;

    align-items:flex-end;

    gap:25px;

    padding:35px;

    flex-wrap:wrap;

}

.grupo-filtro{

    display:flex;

    flex-direction:column;

}

.grupo-filtro label{

    margin-bottom:8px;

    font-weight:600;

    color:#4b5563;

}

.grupo-filtro select{

    width:250px;

    padding:12px 14px;

    border:1px solid #d5dde7;

    border-radius:10px;

    background:white;

    font-size:15px;

    transition:.25s;

}

.grupo-filtro select:hover{

    border-color:#9abedb;

}

.grupo-filtro select:focus{

    outline:none;

    border-color:#2f75a8;

    box-shadow:
        0 0 0 4px rgba(47,117,168,.18);

}

/* ==========================
   BOTÓN PRINCIPAL
========================== */

.btn-atender{

    background:linear-gradient(135deg,#ff7eb3,#ff5d8f);

    color:white;

    border:none;

    padding:13px 28px;

    border-radius:10px;

    cursor:pointer;

    font-weight:600;

    transition:.3s;

    box-shadow:
        0 8px 18px rgba(255,93,143,.35);

}

.btn-atender:hover{

    transform:translateY(-3px);

    box-shadow:
        0 12px 25px rgba(255,93,143,.45);

}

/* ==========================
   TABLA
========================== */

table{

    width:100%;

    border-collapse:collapse;

    background:white;

}

thead{

    background:#2f75a8;

}

thead th{

    padding:17px;

    color:white;

    font-size:15px;

    font-weight:600;

    border:none;

}

tbody td{

    padding:16px;

    border-bottom:1px solid #edf2f7;

    text-align:center;

    font-size:14px;

}

tbody tr{

    transition:.25s;

}

tbody tr:nth-child(even){

    background:#fafcfe;

}

tbody tr:hover{

    background:#eef7ff;

    transform:scale(1.002);

}

/* ==========================
   ESTADOS
========================== */

.estado{

    display:inline-block;

    padding:7px 16px;

    border-radius:50px;

    font-size:13px;

    font-weight:600;

    color:white;

}

.abierta{

    background:linear-gradient(135deg,#ffd54f,#f4b400);

    color:#333;

}

.cerrada{

    background:linear-gradient(135deg,#2ecc71,#27ae60);

}

/* ==========================
   TIPOS
========================== */

.tipo{

    display:inline-block;

    padding:7px 16px;

    border-radius:50px;

    font-size:13px;

    font-weight:600;

    color:white;

}

.nuevo{

    background:linear-gradient(135deg,#56ccf2,#2f80ed);

}

.actualizacion{

    background:linear-gradient(135deg,#b06ab3,#8e44ad);

}

.baja{

    background:linear-gradient(135deg,#ff7675,#e74c3c);

}

/* ==========================
   BOTONES DE ACCIÓN
========================== */

.icono{

    width:42px;

    height:42px;

    border:none;

    border-radius:50%;

    background:#2f75a8;

    color:white;

    cursor:pointer;

    font-size:17px;

    transition:.25s;

    box-shadow:
        0 5px 15px rgba(0,0,0,.18);

}

.icono:hover{

    background:#1f4e79;

    transform:translateY(-3px) scale(1.08);

}

.cancelar{

    background:#e74c3c;

}

.cancelar:hover{

    background:#c0392b;

}

/* ==========================
   RESPONSIVE
========================== */

@media(max-width:1100px){

    .barra-filtros{

        flex-direction:column;

        align-items:flex-start;

    }

    .grupo-filtro{

        width:100%;

    }

    .grupo-filtro select{

        width:100%;

    }

}

@media(max-width:900px){

    body{

        padding:15px;

    }

    .contenedor{

        overflow-x:auto;

    }

    table{

        min-width:1200px;

    }

}

/* ==========================
   GRUPO DE BOTONES
========================== */

.grupo-botones{

    display:flex;

    flex-direction:column;

    gap:12px;

}

/* ==========================
   BOTÓN SALIR
========================== */

.btn-salir{

    background:linear-gradient(135deg,#e74c3c,#c0392b);

    color:white;

    border:none;

    padding:12px 25px;

    border-radius:8px;

    cursor:pointer;

    font-size:15px;

    font-weight:600;

    transition:.3s;

    box-shadow:
        0 6px 15px rgba(231,76,60,.35);

}

.btn-salir:hover{

    background:linear-gradient(135deg,#c0392b,#a93226);

    transform:translateY(-3px);

    box-shadow:
        0 10px 22px rgba(192,57,43,.45);

}

.btn-salir i{

    margin-right:8px;

}

/*====================================
            MODAL
====================================*/

.modal{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.45);

    backdrop-filter:blur(5px);

    display:flex;

    justify-content:center;

    align-items:center;

    visibility:hidden;

    opacity:0;

    transition:.3s;

    z-index:9999;

}

.modal.activo{

    visibility:visible;

    opacity:1;

}



.modal-contenido{

    width:480px;

    background:white;

    border-radius:14px;

    padding:30px;

    box-shadow:

    0 20px 45px rgba(0,0,0,.25);

    animation:modalEntrada .25s ease;

}

@keyframes modalEntrada{

    from{

        transform:translateY(-20px);

        opacity:0;

    }

    to{

        transform:translateY(0);

        opacity:1;

    }

}

.modal-contenido h2{

    text-align:center;

    color:#2E638A;

    margin-bottom:25px;

}



.zona-carga{

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    height:180px;

    border:2px dashed #8aa9bf;

    border-radius:12px;

    cursor:pointer;

    transition:.25s;

    text-align:center;

}

.zona-carga:hover{

    background:#eef7fc;

    border-color:#2E638A;

}

.zona-carga i{

    font-size:55px;

    color:#2E638A;

    margin-bottom:12px;

}

.zona-carga p{

    font-weight:600;

}

#nombreArchivo{

    margin-top:12px;

    color:#777;

    font-size:14px;

}



.botones-modal{

    display:flex;

    justify-content:flex-end;

    gap:15px;

    margin-top:30px;

}



.btn-cancelar{

    background:#d9534f;

    color:white;

    border:none;

    padding:12px 24px;

    border-radius:8px;

    cursor:pointer;

}



.btn-cancelar:hover{

    background:#c9302c;

}



.btn-aceptar{

    background:#b5b5b5;

    color:white;

    border:none;

    padding:12px 24px;

    border-radius:8px;

    cursor:not-allowed;

    transition:.3s;

}



.btn-aceptar.activo{

    background:#2DBE60;

    cursor:pointer;

}

.btn-aceptar.activo:hover{

    background:#24a451;

}