/* =====================================
   CIERRES DE CAJA
===================================== */

.cierres-page {
    width: 100%;
}


/* =====================================
   TÍTULO
===================================== */

.cierres-titulo {
    margin: 0 0 20px;

    font-size: 24px;

    font-weight: 700;

    color: #1e293b;
}


/* =====================================
   RESUMEN
===================================== */

.cierres-resumen {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 20px;

    margin-bottom: 24px;

}


.resumen-item {

    padding: 22px;

    border-radius: 20px;

    background: linear-gradient(
        145deg,
        #ffffff,
        #f3f6fb
    );

    border: 1px solid rgba(37, 99, 235, 0.10);

    box-shadow:
        0 10px 25px rgba(0, 0, 0, 0.08),
        0 4px 10px rgba(37, 99, 235, 0.05);

}


.resumen-item span {

    display: block;

    font-size: 14px;

    color: #64748b;

}


.resumen-item strong {

    display: block;

    margin-top: 8px;

    font-size: 25px;

    color: #1e293b;

}


/* =====================================
   FILTROS
===================================== */

.cierres-filtros-box {

    margin-bottom: 26px;

    padding: 22px;

    border-radius: 20px;

    background: #ffffff;

    border: 1px solid #e5e7eb;

    box-shadow:
        0 10px 25px rgba(0, 0, 0, 0.06);

}


.cierres-filtros-box h3 {

    margin: 0 0 16px;

    font-size: 16px;

    color: #1e293b;

}


.cierres-filtros {

    display: grid;

    grid-template-columns: repeat(2, 1fr) auto auto;

    gap: 12px;

}


.cierre-input {

    width: 100%;

    height: 44px;

    padding: 10px 14px;

    box-sizing: border-box;

    border-radius: 12px;

    border: 1px solid #e2e8f0;

    background: #f8fafc;

    color: #334155;

    font-size: 14px;

    outline: none;

    transition: all 0.2s ease;

}


.cierre-input:focus {

    border-color: #2563eb;

    background: #ffffff;

    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.10);

}


/* =====================================
   GRID DE CIERRES
===================================== */

.cierres-grid {

    display: grid;

    grid-template-columns: repeat(3, minmax(260px, 1fr));

    gap: 24px;

    padding: 10px 0 30px;

}


/* =====================================
   CARD DE CIERRE
===================================== */

.cierre-card {

    position: relative;

    min-height: 220px;

    padding: 30px 25px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    text-align: center;

    cursor: pointer;

    overflow: hidden;

    border-radius: 24px;

    background: linear-gradient(
        145deg,
        #ffffff,
        #f3f6fb
    );

    border: 1px solid rgba(37, 99, 235, 0.10);

    box-shadow:
        0 10px 25px rgba(0, 0, 0, 0.08),
        0 4px 10px rgba(37, 99, 235, 0.05);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;

}


/* =====================================
   EFECTO DECORATIVO
===================================== */

.cierre-card::before {

    content: "";

    position: absolute;

    width: 140px;

    height: 140px;

    top: -60px;

    right: -50px;

    border-radius: 50%;

    background: rgba(37, 99, 235, 0.08);

    transition: transform 0.4s ease;

}


/* =====================================
   HOVER
===================================== */

.cierre-card:hover {

    transform: translateY(-8px) scale(1.02);

    border-color: rgba(37, 99, 235, 0.3);

    box-shadow:
        0 20px 40px rgba(0, 0, 0, 0.14),
        0 8px 20px rgba(37, 99, 235, 0.12);

}


.cierre-card:hover::before {

    transform: scale(1.6);

}


/* =====================================
   CONTENIDO
===================================== */

.cierre-card > * {

    position: relative;

    z-index: 1;

}


.cierre-card-info h3 {

    margin: 0 0 12px;

    font-size: 21px;

    font-weight: 700;

    color: #1e293b;

}


.cierre-card-info p {

    margin: 8px 0;

    font-size: 15px;

    line-height: 1.6;

    color: #64748b;

}


/* =====================================
   BOTÓN VER INFORMACIÓN
===================================== */

.btn-ver-cierre {

    display: inline-block;

    margin-top: 15px;

    padding: 9px 18px;

    border: none;

    border-radius: 50px;

    font-size: 13px;

    font-weight: 600;

    color: #2563eb;

    background: rgba(37, 99, 235, 0.10);

    cursor: pointer;

    transition: all 0.3s ease;

}


.cierre-card:hover .btn-ver-cierre {

    color: #ffffff;

    background: #2563eb;

}


/* =====================================
   DETALLE
===================================== */

.cierre-detalle {

    display: none;

    width: 100%;

    margin-top: 20px;

    padding-top: 16px;

    border-top: 1px solid #e2e8f0;

}


.cierre-detalle.activo {

    display: block;

}


/* =====================================
   LÍNEAS DEL DETALLE
===================================== */

.detalle-linea {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 10px 14px;

    margin-bottom: 8px;

    border-radius: 12px;

    background: #f8fafc;

    color: #475569;

    font-size: 14px;

}


.detalle-linea strong {

    color: #1e293b;

}


/* =====================================
   TOTAL
===================================== */

.detalle-total {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-top: 12px;

    padding: 14px 16px;

    border-radius: 14px;

    background: #dcfce7;

    color: #166534;

}


/* =====================================
   BOTÓN TICKET
===================================== */

.btn-ticket {

    display: block;

    width: 100%;

    margin-top: 14px;

    padding: 10px;

    border-radius: 12px;

    text-align: center;

}


/* =====================================
   SIN CIERRES
===================================== */

.cierre-card.sin-cierres {

    cursor: default;

}


.cierre-card.sin-cierres:hover {

    transform: none;

}


/* =====================================
   TABLET
===================================== */

@media (max-width: 1100px) {

    .cierres-grid {

        grid-template-columns: repeat(
            2,
            minmax(250px, 1fr)
        );

        gap: 20px;

    }

}


/* =====================================
   MÓVIL
===================================== */

@media (max-width: 768px) {

    .cierres-resumen {

        grid-template-columns: 1fr;

    }


    .cierres-filtros {

        grid-template-columns: 1fr;

    }


    .cierres-grid {

        grid-template-columns: 1fr;

        gap: 16px;

    }


    .cierre-card {

        min-height: 200px;

        padding: 28px 20px;

    }


    .cierre-card-info h3 {

        font-size: 20px;

    }

}