/* =====================================================
   MINIALFA
   IMPORTAR CHECADAS
===================================================== */


/* =====================================================
   SVG
===================================================== */

.checks-import-modal svg {
    fill:
        none;

    stroke:
        currentColor;

    stroke-width:
        1.8;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;

    vector-effect:
        non-scaling-stroke;
}


/* =====================================================
   MODAL
===================================================== */

.checks-import-modal {
    position:
        fixed;

    inset:
        0;

    z-index:
        1000;

    display:
        none;

    place-items:
        center;

    padding:
        18px;
}


.checks-import-modal.show,
.checks-import-modal.active,
.checks-import-modal.is-open,
.checks-import-modal[aria-hidden="false"] {
    display:
        grid;
}


/* =====================================================
   FONDO
===================================================== */

.checks-import-backdrop {
    position:
        absolute;

    inset:
        0;

    background:
        rgba(8, 25, 37, 0.72);

    backdrop-filter:
        blur(3px);

    -webkit-backdrop-filter:
        blur(3px);
}


/* =====================================================
   TARJETA
===================================================== */

.checks-import-card {
    position:
        relative;

    z-index:
        1;

    width:
        min(100%, 700px);

    max-height:
        calc(100vh - 36px);

    display:
        grid;

    grid-template-rows:
        auto
        minmax(0, 1fr)
        auto;

    overflow:
        hidden;

    background:
        #ffffff;

    border:
        1px solid
        rgba(214, 222, 229, 0.82);

    border-radius:
        18px;

    box-shadow:
        0 28px 80px
        rgba(0, 0, 0, 0.30);
}


.checks-import-modal.show
.checks-import-card {
    animation:
        checksImportIn
        0.22s ease-out;
}


/* =====================================================
   ENCABEZADO
===================================================== */

.checks-import-header {
    padding:
        21px 22px;

    display:
        flex;

    align-items:
        flex-start;

    justify-content:
        space-between;

    gap:
        18px;

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


.checks-import-header-content {
    min-width:
        0;
}


.checks-import-header-content > span {
    display:
        block;

    color:
        var(--accent-dark);

    font-size:
        0.69rem;

    font-weight:
        800;

    letter-spacing:
        0.09em;

    text-transform:
        uppercase;
}


.checks-import-header h2 {
    margin:
        4px 0;

    color:
        var(--brand-dark);

    font-size:
        1.32rem;

    line-height:
        1.2;
}


.checks-import-header p {
    margin:
        0;

    color:
        var(--muted);

    font-size:
        0.83rem;

    line-height:
        1.5;
}


/* =====================================================
   CERRAR
===================================================== */

.checks-import-close {
    width:
        42px;

    height:
        42px;

    padding:
        0;

    display:
        grid;

    place-items:
        center;

    flex:
        0 0 auto;

    color:
        var(--brand);

    background:
        #ffffff;

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

    border-radius:
        11px;

    cursor:
        pointer;

    transition:
        color 0.16s ease,
        background-color 0.16s ease,
        border-color 0.16s ease,
        transform 0.16s ease;
}


.checks-import-close:hover {
    color:
        var(--danger);

    background:
        var(--danger-soft);

    border-color:
        #e5a49f;

    transform:
        translateY(-1px);
}


.checks-import-close:active {
    transform:
        scale(0.94);
}


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

.checks-import-content {
    min-height:
        0;

    overflow-y:
        auto;

    padding:
        20px 22px;

    scrollbar-width:
        thin;

    scrollbar-gutter:
        stable;
}


/* =====================================================
   DROPZONE
===================================================== */

.checks-import-dropzone {
    padding:
        28px 20px;

    text-align:
        center;

    background:
        var(--surface-soft);

    border:
        2px dashed
        #a8b8c3;

    border-radius:
        14px;

    cursor:
        default;

    transition:
        background-color 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease,
        transform 0.16s ease;
}


/* =====================================================
   DRAG ACTIVO
===================================================== */

.checks-import-dropzone.is-dragging {
    background:
        #e8f7f7;

    border-color:
        var(--accent);

    box-shadow:
        inset 0 0 0 1px
        rgba(8, 122, 131, 0.08);

    transform:
        scale(1.005);
}


/* =====================================================
   ICONO
===================================================== */

.checks-import-icon {
    width:
        58px;

    height:
        58px;

    margin:
        0 auto 12px;

    display:
        grid;

    place-items:
        center;

    color:
        var(--accent-dark);

    background:
        #dff3f4;

    border:
        1px solid
        #c3e3e4;

    border-radius:
        15px;
}


.checks-import-dropzone > strong {
    display:
        block;

    color:
        var(--brand-dark);

    font-size:
        0.9rem;

    font-weight:
        800;
}


.checks-import-dropzone > p {
    margin:
        4px 0 0;

    color:
        var(--muted);

    font-size:
        0.78rem;
}


/* =====================================================
   BOTÓN ARCHIVO
===================================================== */

.checks-file-button {
    min-height:
        42px;

    margin:
        15px 0 9px;

    padding:
        9px 16px;

    color:
        var(--brand);

    background:
        #ffffff;

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

    border-radius:
        9px;

    font-size:
        0.79rem;

    font-weight:
        750;

    cursor:
        pointer;

    transition:
        color 0.16s ease,
        background-color 0.16s ease,
        border-color 0.16s ease,
        transform 0.16s ease;
}


.checks-file-button:hover {
    color:
        #ffffff;

    background:
        var(--brand);

    transform:
        translateY(-1px);
}


.checks-file-button:active {
    transform:
        scale(0.97);
}


.checks-import-format {
    display:
        block;

    color:
        var(--muted);

    font-size:
        0.69rem;
}


/* =====================================================
   ERROR / LISTO
===================================================== */

.checks-import-error,
.checks-import-ready {
    margin-top:
        14px;

    padding:
        12px 13px;

    display:
        flex;

    align-items:
        flex-start;

    gap:
        9px;

    border-radius:
        10px;

    font-size:
        0.76rem;

    line-height:
        1.45;
}


.checks-import-error[hidden],
.checks-import-ready[hidden] {
    display:
        none !important;
}


.checks-import-error {
    color:
        var(--danger);

    background:
        var(--danger-soft);

    border:
        1px solid
        rgba(196, 76, 67, 0.20);

    border-left:
        4px solid
        var(--danger);
}


.checks-import-ready {
    color:
        var(--success);

    background:
        var(--success-soft);

    border:
        1px solid
        rgba(43, 133, 88, 0.22);

    border-left:
        4px solid
        var(--success);
}


.checks-import-message-icon {
    margin-top:
        1px;

    flex:
        0 0 auto;
}


.checks-import-ready strong,
.checks-import-ready span {
    display:
        block;
}


.checks-import-ready strong {
    margin-bottom:
        2px;

    font-size:
        0.77rem;
}


.checks-import-ready span {
    color:
        #4f7f65;

    font-size:
        0.71rem;
}


/* =====================================================
   ARCHIVO SELECCIONADO
===================================================== */

.checks-selected-file {
    margin-top:
        14px;

    padding:
        13px;

    display:
        grid;

    grid-template-columns:
        auto
        minmax(0, 1fr)
        auto
        auto;

    align-items:
        center;

    gap:
        11px;

    background:
        #ffffff;

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

    border-radius:
        11px;
}


.checks-selected-file[hidden] {
    display:
        none !important;
}


/* =====================================================
   ICONO ARCHIVO
===================================================== */

.checks-selected-file-icon {
    width:
        42px;

    height:
        42px;

    display:
        grid;

    place-items:
        center;

    color:
        var(--success);

    background:
        var(--success-soft);

    border-radius:
        10px;
}


/* =====================================================
   DATOS
===================================================== */

.checks-selected-file-data {
    min-width:
        0;
}


.checks-selected-file-data span,
.checks-selected-file-data strong,
.checks-selected-file-data small {
    display:
        block;

    overflow:
        hidden;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;
}


.checks-selected-file-data span {
    color:
        var(--muted);

    font-size:
        0.65rem;

    font-weight:
        700;

    text-transform:
        uppercase;
}


.checks-selected-file-data strong {
    margin-top:
        2px;

    color:
        var(--brand-dark);

    font-size:
        0.81rem;

    font-weight:
        800;
}


.checks-selected-file-data small {
    margin-top:
        2px;

    color:
        var(--muted);

    font-size:
        0.69rem;
}


/* =====================================================
   TIPO
===================================================== */

.checks-file-type {
    padding:
        4px 7px;

    color:
        var(--success);

    background:
        var(--success-soft);

    border-radius:
        999px;

    font-size:
        0.62rem;

    font-weight:
        800;
}


/* =====================================================
   QUITAR
===================================================== */

.checks-remove-file {
    width:
        38px;

    height:
        38px;

    padding:
        0;

    display:
        grid;

    place-items:
        center;

    color:
        var(--danger);

    background:
        var(--danger-soft);

    border:
        1px solid
        #e6b8b4;

    border-radius:
        9px;

    cursor:
        pointer;

    transition:
        background-color 0.16s ease,
        border-color 0.16s ease,
        transform 0.16s ease;
}


.checks-remove-file:hover {
    background:
        #f8d8d5;

    border-color:
        var(--danger);

    transform:
        translateY(-1px);
}


.checks-remove-file:active {
    transform:
        scale(0.94);
}


/* =====================================================
   INFORMACIÓN
===================================================== */

.checks-import-info {
    margin-top:
        16px;

    padding:
        14px;

    color:
        #315e61;

    background:
        #f3f9fa;

    border:
        1px solid
        #d1e5e7;

    border-radius:
        12px;
}


.checks-import-info-header {
    display:
        flex;

    align-items:
        flex-start;

    gap:
        10px;
}


.checks-import-info-icon {
    width:
        34px;

    height:
        34px;

    display:
        grid;

    place-items:
        center;

    flex:
        0 0 auto;

    color:
        var(--accent-dark);

    background:
        #ffffff;

    border-radius:
        9px;
}


.checks-import-info-header strong {
    display:
        block;

    color:
        #164e52;

    font-size:
        0.78rem;
}


.checks-import-info-header p {
    margin:
        2px 0 0;

    color:
        #668184;

    font-size:
        0.7rem;

    line-height:
        1.45;
}


/* =====================================================
   DATOS ESPERADOS
===================================================== */

.checks-import-data-grid {
    margin-top:
        12px;

    display:
        grid;

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

    gap:
        8px;
}


.checks-import-data-grid > div {
    min-width:
        0;

    padding:
        9px 10px;

    background:
        #ffffff;

    border:
        1px solid
        #dce9ea;

    border-radius:
        8px;
}


.checks-import-data-grid span,
.checks-import-data-grid strong {
    display:
        block;
}


.checks-import-data-grid span {
    color:
        #72888a;

    font-size:
        0.61rem;

    font-weight:
        700;

    text-transform:
        uppercase;
}


.checks-import-data-grid strong {
    margin-top:
        2px;

    color:
        #234f52;

    font-size:
        0.71rem;
}


/* =====================================================
   NOTA
===================================================== */

.checks-import-note {
    margin-top:
        12px;

    padding:
        11px 12px;

    display:
        flex;

    align-items:
        flex-start;

    gap:
        9px;

    color:
        #526672;

    background:
        #f8fafb;

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

    border-radius:
        10px;
}


.checks-import-note svg {
    margin-top:
        1px;

    color:
        var(--accent-dark);

    flex:
        0 0 auto;
}


.checks-import-note p {
    margin:
        0;

    font-size:
        0.7rem;

    line-height:
        1.5;
}


/* =====================================================
   ACCIONES
===================================================== */

.checks-import-actions {
    padding:
        16px 22px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        flex-end;

    gap:
        10px;

    background:
        var(--surface-soft);

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


.checks-import-cancel,
.checks-import-confirm {
    min-height:
        43px;

    padding:
        9px 15px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        7px;

    border-radius:
        9px;

    font-size:
        0.79rem;

    font-weight:
        750;

    cursor:
        pointer;

    transition:
        color 0.16s ease,
        background-color 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease,
        transform 0.16s ease;
}


/* CANCELAR */

.checks-import-cancel {
    color:
        var(--text);

    background:
        #ffffff;

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


.checks-import-cancel:hover {
    background:
        #f4f7f8;

    border-color:
        #b9c7d1;

    transform:
        translateY(-1px);
}


/* CONFIRMAR */

.checks-import-confirm {
    color:
        #ffffff;

    background:
        var(--brand);

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


.checks-import-confirm:not(:disabled):hover {
    background:
        var(--brand-dark);

    border-color:
        var(--brand-dark);

    box-shadow:
        0 6px 14px
        rgba(10, 40, 58, 0.16);

    transform:
        translateY(-1px);
}


.checks-import-confirm:disabled {
    opacity:
        0.45;

    cursor:
        not-allowed;

    box-shadow:
        none;

    transform:
        none;
}


.checks-import-cancel:active,
.checks-import-confirm:not(:disabled):active {
    transform:
        translateY(1px)
        scale(0.97);
}


/* =====================================================
   FOCUS
===================================================== */

.checks-import-close:focus-visible,
.checks-file-button:focus-visible,
.checks-remove-file:focus-visible,
.checks-import-cancel:focus-visible,
.checks-import-confirm:focus-visible {
    outline:
        3px solid
        rgba(8, 122, 131, 0.18);

    outline-offset:
        2px;
}


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

@media (max-width: 560px) {

    .checks-import-modal {
        padding:
            10px;
    }


    .checks-import-card {
        max-height:
            calc(100vh - 20px);

        border-radius:
            15px;
    }


    .checks-import-header {
        padding:
            16px;
    }


    .checks-import-content {
        padding:
            15px;
    }


    .checks-import-actions {
        padding:
            15px;
    }


    .checks-import-dropzone {
        padding:
            24px 14px;
    }


    .checks-selected-file {
        grid-template-columns:
            auto
            minmax(0, 1fr)
            auto;
    }


    .checks-file-type {
        display:
            none;
    }

}


@media (max-width: 470px) {

    .checks-import-data-grid {
        grid-template-columns:
            1fr;
    }


    .checks-import-actions {
        display:
            grid;

        grid-template-columns:
            1fr;
    }


    .checks-import-cancel,
    .checks-import-confirm {
        width:
            100%;
    }

}


/* =====================================================
   ANIMACIÓN
===================================================== */

@keyframes checksImportIn {

    from {
        opacity:
            0;

        transform:
            translateY(12px)
            scale(0.98);
    }

    to {
        opacity:
            1;

        transform:
            translateY(0)
            scale(1);
    }

}


/* =====================================================
   MOVIMIENTO REDUCIDO
===================================================== */

@media (prefers-reduced-motion: reduce) {

    .checks-import-card,
    .checks-import-close,
    .checks-import-dropzone,
    .checks-file-button,
    .checks-remove-file,
    .checks-import-cancel,
    .checks-import-confirm {
        animation:
            none;

        transition:
            none;
    }

}


/* =====================================================
   VISTA PREVIA DE CHECADAS
===================================================== */

.checks-import-preview[hidden] {
    display: none !important;
}

.checks-import-preview {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}

.checks-import-preview-header {
    margin-bottom: 10px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
}

.checks-import-preview-header > div > span,
.checks-import-preview-header > div > strong {
    display: block;
}

.checks-import-preview-header > div > span {
    color: var(--accent-dark);
    font-size: 0.63rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.checks-import-preview-header > div > strong {
    margin-top: 2px;
    color: var(--brand-dark);
    font-size: 0.86rem;
}

.checks-import-preview-header > small {
    color: var(--muted);
    font-size: 0.65rem;
    text-align: right;
}

.checks-import-summary {
    margin-bottom: 10px;
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.checks-import-summary article {
    padding: 9px 10px;
    background: #f8fafb;
    border: 1px solid var(--border);
    border-left: 4px solid var(--brand);
    border-radius: 8px;
}

.checks-import-summary span,
.checks-import-summary strong {
    display: block;
}

.checks-import-summary span {
    color: var(--muted);
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
}

.checks-import-summary strong {
    margin-top: 2px;
    color: var(--brand-dark);
    font-size: 1.05rem;
}

.checks-import-summary-valid {
    border-left-color:
        var(--success) !important;
}

.checks-import-summary-valid strong {
    color: var(--success);
}

.checks-import-summary-duplicate {
    border-left-color:
        #b7791f !important;
}

.checks-import-summary-duplicate strong {
    color: #8a5a12;
}

.checks-import-summary-error {
    border-left-color:
        var(--danger) !important;
}

.checks-import-summary-error strong {
    color: var(--danger);
}

.checks-import-table-container {
    max-height: 300px;
    overflow: auto;
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 10px;
    scrollbar-width: thin;
}

.checks-import-table {
    width: 100%;
    min-width: 900px;
    border-collapse: collapse;
}

.checks-import-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 9px 10px;
    color: #ffffff;
    background: var(--brand);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.checks-import-table td {
    padding: 9px 10px;
    color: var(--text);
    border-bottom: 1px solid #e3e8ec;
    font-size: 0.7rem;
    vertical-align: middle;
    white-space: nowrap;
}

.checks-import-table tbody tr:last-child td {
    border-bottom: 0;
}

.checks-import-row-duplicate {
    background: #fffaf0;
}

.checks-import-row-invalid {
    background: #fff8f7;
}

.checks-import-result {
    min-height: 25px;
    padding: 3px 7px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 0.61rem;
    font-weight: 800;
    white-space: nowrap;
}

.checks-import-result-valid {
    color: var(--success);
    background: var(--success-soft);
}

.checks-import-result-duplicate {
    color: #8a5a12;
    background: #fff0c7;
}

.checks-import-result-invalid {
    color: var(--danger);
    background: var(--danger-soft);
}

@media (max-width: 560px) {
    .checks-import-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .checks-import-preview-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .checks-import-preview-header > small {
        text-align: left;
    }
}

@media (max-width: 400px) {
    .checks-import-summary {
        grid-template-columns: 1fr;
    }
}

/* =====================================================
   MARCAS CRUDAS DEL RELOJ
===================================================== */

.checks-import-table {
    min-width: 650px;
}

.checks-import-marks {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.checks-import-mark {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 7px;
    color: var(--brand-dark);
    background: #eef4f7;
    border: 1px solid #d6e0e6;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 750;
}

.checks-import-mark-empty {
    color: var(--muted);
    background: #f8fafb;
}
