/**
 * Módulo Caja - Estilos (Fase 6) + Rediseño flujo lógico
 */

@layer feature-modules {
/* Ancho: .container en app-shell (layout.css) sin tope 1600px en escritorio */
.caja-container {
    padding: var(--space-lg);
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

/* Paneles por sección */
.caja-panel {
    margin-bottom: var(--space-xl);
}

/* Secciones con flujo numerado (1, 2, 3) */
.caja-section {
    margin-bottom: var(--space-xl);
}

.caja-section-title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-4) 0;
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--color-text);
}

.caja-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--color-header-title);
    color: var(--color-text-inverse);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold, 700);
}

.caja-section-desc {
    margin-top: calc(-1 * var(--space-2));
    margin-bottom: var(--space-4);
}

.caja-section-lead {
    margin: calc(-1 * var(--space-2)) 0 var(--space-4);
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    line-height: 1.45;
    max-width: 52rem;
}

.caja-section-card.card {
    padding: var(--space-lg);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.caja-section-resumen.caja-section-card {
    border-left: 4px solid var(--color-primary);
}

.caja-section-movimientos.caja-section-card {
    border-left: 4px solid var(--color-info);
}

.caja-section-cierre.caja-section-card {
    border-left: 4px solid var(--color-warning);
}

.caja-panel-title {
    margin: 0 0 var(--space-2);
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--color-text);
}

.caja-offline-banner {
    margin: var(--space-md) 0 0;
    padding: var(--space-sm) var(--space-md);
    font-size: var(--text-sm);
    color: var(--color-text);
    background: color-mix(in srgb, var(--color-warning) 15%, var(--color-bg-card));
    border: 1px solid color-mix(in srgb, var(--color-warning) 35%, var(--color-border));
    border-radius: var(--radius-md);
}

.caja-resumen-body {
    width: 100%;
}

.caja-resumen-groups {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.caja-resumen-group-title {
    margin: 0 0 var(--space-sm);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
}

.caja-resumen-group--totals {
    padding-top: var(--space-sm);
    border-top: 1px solid var(--color-border);
}

.caja-resumen-grid--totals {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.caja-resumen-grid--totals .caja-resumen-total {
    grid-column: auto;
    margin-top: 0;
    border-top: none;
}

.caja-resumen-grid--compact {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.caja-movimientos-card-inner,
.caja-cierre-card-redesign {
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

.caja-email-hint {
    margin-top: var(--space-1);
    font-size: var(--text-xs);
}

.caja-email-row {
    margin-bottom: var(--space-2);
}

.caja-email-row:last-child {
    margin-bottom: 0;
}

.caja-email-row .caja-email-input {
    width: 100%;
    box-sizing: border-box;
}

/* Filtros unificados (historial / corte) */
.caja-filters-panel {
    margin-bottom: var(--space-md);
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--color-border);
}

.caja-filters-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    align-items: flex-end;
}

.caja-filters-row .input-group {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.caja-filters-row .input-group label {
    margin-bottom: var(--space-1);
    font-size: var(--text-xs);
    font-weight: 500;
    color: var(--color-info);
}

.caja-filters-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
}

.caja-filters-actions .btn {
    margin-bottom: 0;
    min-height: 2.25rem;
    box-sizing: border-box;
}

.caja-corte-dia-filters-inline {
    display: contents;
}

.caja-alcance-chips-wrap[hidden] {
    display: none !important;
}

@media (min-width: 768px) {
    .caja-filters-row:not(.caja-filters-row--checks) {
        flex-wrap: nowrap;
        gap: var(--space-md) var(--space-lg);
    }

    .caja-filters-row:not(.caja-filters-row--checks) .input-group {
        flex: 0 0 auto;
    }

    .caja-filters-row:not(.caja-filters-row--checks) .input-group input[type="date"],
    .caja-filters-row:not(.caja-filters-row--checks) .input-group select {
        min-width: 10.5rem;
    }

    .caja-filters-actions {
        flex: 0 0 auto;
        margin-left: auto;
        flex-wrap: nowrap;
    }
}

.caja-section-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-2);
}

.caja-section-header .caja-section-title {
    margin-bottom: 0;
}

.caja-resumen-card.caja-resumen-card-grid {
    margin-bottom: 0;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

.caja-resumen-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: var(--space-md);
    margin-top: var(--space-sm);
}

.caja-resumen-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-md) var(--space-lg);
    background: var(--color-surface-muted);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), background-color var(--transition-base);
}

.caja-resumen-item--clickable {
    cursor: pointer;
    user-select: none;
}

.caja-resumen-item--clickable:hover {
    border-color: var(--color-border-strong);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
    background: var(--color-bg-hover, var(--color-surface-muted));
}

.caja-resumen-item--clickable:focus-visible {
    outline: 2px solid var(--color-primary-muted);
    outline-offset: 2px;
}

.caja-resumen-total.caja-resumen-item--clickable:focus-visible {
    outline-color: var(--color-primary);
}

.caja-resumen-item span {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.caja-resumen-item strong {
    font-size: 1.1rem;
    font-weight: var(--font-weight-bold);
    font-variant-numeric: tabular-nums;
}

.caja-resumen-total {
    grid-column: 1 / -1;
    padding: var(--space-lg) var(--space-lg);
    margin-top: var(--space-2);
    border-top: 2px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-bg-card);
    border: 1px solid var(--color-primary-muted);
}

.caja-resumen-total strong {
    font-size: 1.35rem;
    color: var(--color-primary);
}

.caja-positivo {
    color: var(--color-success);
}

.caja-negativo {
    color: var(--color-error);
}

.caja-faltante {
    color: var(--color-error);
}

.caja-sobrante {
    color: var(--color-info);
}

.caja-hint {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    margin: var(--space-xs) 0 var(--space-sm) 0;
}

.caja-loading {
    color: var(--color-text-muted);
}

.caja-movimientos-card.card {
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-info);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.caja-movimientos-actions {
    display: flex;
    gap: var(--space-sm);
    margin-bottom: var(--space-md);
}

.caja-btn-mov {
    font-weight: var(--font-weight-semibold);
}

.caja-btn-ingreso:hover { border-color: var(--color-success); color: var(--color-success); }
.caja-btn-retiro:hover { border-color: var(--color-error); color: var(--color-error); }

.caja-table-wrap {
    overflow-x: auto;
    margin-top: var(--space-sm);
}

/* Tabla caja: hereda estilos de components.css */

.caja-num {
    text-align: right;
}

.caja-empty {
    padding: var(--space-lg);
    text-align: center;
    color: var(--color-text-muted);
}

.caja-cierre-card {
    margin-top: var(--space-lg);
}

.caja-cierre-card-redesign.caja-cierre-card {
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.06));
}

.caja-cierre-comparacion {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--space-md);
    align-items: stretch;
    margin: var(--space-md) 0 var(--space-sm);
    padding: var(--space-lg);
    background: var(--color-surface-muted);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
}

.caja-cierre-box {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-lg);
    background: var(--color-bg-card);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.caja-cierre-esperado {
    border-left: 3px solid var(--color-info);
}

.caja-cierre-fisico {
    border-left: 3px solid var(--color-primary);
}

.caja-cierre-fisico--pending {
    border-left-color: var(--color-text-muted);
}

.caja-cierre-fisico--ok {
    border-left-color: var(--color-success);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-success) 28%, transparent);
}

.caja-cierre-fisico--warn {
    border-left-color: var(--color-warning);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-warning) 28%, transparent);
}

.caja-cierre-fisico--error {
    border-left-color: var(--color-danger);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-danger) 28%, transparent);
}

.caja-cierre-fisico-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.caja-cierre-quick-fill {
    margin: 0;
    padding: 0.2rem 0.55rem;
    font-family: inherit;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 35%, var(--color-border));
    border-radius: 999px;
    cursor: pointer;
    transition: background var(--transition-base), border-color var(--transition-base);
}

.caja-cierre-quick-fill:hover {
    background: color-mix(in srgb, var(--color-primary) 16%, transparent);
}

.caja-cierre-quick-fill:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.caja-cierre-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.caja-cierre-monto {
    font-size: clamp(1.35rem, 3vw, 1.75rem);
    font-weight: var(--font-weight-bold);
    font-variant-numeric: tabular-nums;
    color: var(--color-primary);
    line-height: 1.15;
}

.caja-cierre-amount-wrap {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
}

.caja-cierre-amount-wrap .caja-cierre-input-prefix {
    font-size: clamp(1.1rem, 2.5vw, 1.35rem);
}

.caja-cierre-compare-bridge {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 var(--space-1);
}

.caja-cierre-vs-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    font-size: 1rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-muted);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: 50%;
}

.caja-cierre-input-wrap {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0 var(--space-3);
    background: var(--color-bg);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.caja-cierre-fisico--ok .caja-cierre-input-wrap {
    border-color: color-mix(in srgb, var(--color-success) 55%, var(--color-border));
}

.caja-cierre-fisico--warn .caja-cierre-input-wrap {
    border-color: color-mix(in srgb, var(--color-warning) 55%, var(--color-border));
}

.caja-cierre-fisico--error .caja-cierre-input-wrap {
    border-color: color-mix(in srgb, var(--color-danger) 55%, var(--color-border));
}

.caja-cierre-input-wrap:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 18%, transparent);
}

.caja-cierre-input-prefix {
    font-size: clamp(1.1rem, 2.5vw, 1.35rem);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-muted);
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}

.caja-cierre-input {
    flex: 1;
    min-width: 0;
    font-size: clamp(1.2rem, 2.8vw, 1.55rem);
    font-weight: var(--font-weight-bold);
    font-variant-numeric: tabular-nums;
    padding: var(--space-3) 0;
    border: none;
    background: transparent;
    box-shadow: none;
}

.caja-cierre-input:focus {
    outline: none;
    border: none;
    box-shadow: none;
}

.caja-cierre-form {
    margin-top: var(--space-md);
}

.caja-cierre-email-details {
    margin-bottom: var(--space-md);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-bg-card);
    overflow: hidden;
}

.caja-cierre-email-summary {
    padding: var(--space-3) var(--space-md);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.caja-cierre-email-summary::-webkit-details-marker {
    display: none;
}

.caja-cierre-email-summary::before {
    content: "▸ ";
    color: var(--color-text-muted);
}

.caja-cierre-email-details[open] .caja-cierre-email-summary::before {
    content: "▾ ";
}

.caja-cierre-email-body {
    padding: 0 var(--space-md) var(--space-md);
    border-top: 1px solid var(--color-border);
}

.caja-cierre-actions {
    display: flex;
    gap: var(--space-md);
    margin-top: var(--space-lg);
    flex-wrap: wrap;
    padding-top: var(--space-md);
    border-top: 1px solid var(--color-border);
}

.caja-cierre-actions .btn-primary,
.caja-cierre-btn-submit {
    margin-left: auto;
    font-weight: var(--font-weight-semibold);
    min-width: 9.5rem;
}

.caja-cierre-btn-submit:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.caja-cierre-btn-submit--cuadra:not(:disabled) {
    animation: caja-cierre-pulse 1.6s ease-in-out infinite;
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-success) 45%, transparent);
}

@keyframes caja-cierre-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-success) 40%, transparent);
    }
    50% {
        box-shadow: 0 0 0 6px color-mix(in srgb, var(--color-success) 0%, transparent);
    }
}

@media (prefers-reduced-motion: reduce) {
    .caja-cierre-btn-submit--cuadra:not(:disabled) {
        animation: none;
        box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-success) 50%, transparent);
    }
}

.caja-kbd {
    display: inline-block;
    padding: 0.05rem 0.35rem;
    font-family: inherit;
    font-size: 0.85em;
    line-height: 1.2;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background: var(--color-surface-muted);
    color: var(--color-text-muted);
}

.caja-cierre-denom-details {
    margin-top: var(--space-sm);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--color-bg) 50%, transparent);
}

.caja-cierre-denom-summary {
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary, var(--color-text-muted));
    cursor: pointer;
    list-style: none;
}

.caja-cierre-denom-summary::-webkit-details-marker {
    display: none;
}

.caja-cierre-denom-summary::before {
    content: "▸ ";
    color: var(--color-text-muted);
}

.caja-cierre-denom-details[open] .caja-cierre-denom-summary::before {
    content: "▾ ";
}

.caja-denom-panel {
    padding: 0 var(--space-3) var(--space-3);
    border-top: 1px solid var(--color-border);
}

.caja-denom-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
    gap: var(--space-2);
    margin-top: var(--space-2);
}

.caja-denom-row {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    gap: 0.15rem 0.5rem;
    align-items: center;
}

.caja-denom-label {
    grid-column: 1 / -1;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
}

.caja-denom-qty {
    width: 4.25rem;
    min-height: 2rem;
    padding: 0.25rem 0.4rem;
    text-align: center;
}

.caja-denom-subtotal {
    font-size: var(--text-xs);
    font-variant-numeric: tabular-nums;
    color: var(--color-text-muted);
    white-space: nowrap;
}

.caja-denom-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    margin-top: var(--space-md);
    padding-top: var(--space-sm);
    border-top: 1px solid var(--color-border);
}

.caja-denom-total-line {
    margin: 0;
    font-size: var(--text-sm);
}

.caja-denom-sync-hint {
    margin: var(--space-2) 0 0;
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-xs);
    line-height: 1.45;
    color: var(--color-warning-text, #92400e);
    background: var(--color-warning-bg, rgba(245, 158, 11, 0.12));
    border: 1px solid var(--color-warning-border, rgba(245, 158, 11, 0.35));
    border-radius: var(--radius-sm);
}

.caja-denom-sync-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-2);
}

.caja-denom-cleared-note {
    margin: var(--space-2) 0 0;
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}

.caja-cierre-confirm-denom-warn {
    margin: var(--space-md) 0 0;
    font-size: var(--text-sm);
    text-align: left;
}

.caja-denom-panel--desync {
    border-left: 3px solid var(--color-warning, #f59e0b);
    padding-left: calc(var(--space-3) - 3px);
}

.caja-cierre-email-check {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: var(--space-sm) 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    cursor: pointer;
}

@media (max-width: 640px) {
    .caja-cierre-comparacion {
        grid-template-columns: 1fr;
        gap: var(--space-md);
        padding: var(--space-md);
    }

    .caja-cierre-compare-bridge {
        order: 0;
        padding: 0;
    }

    .caja-cierre-vs-icon {
        transform: rotate(90deg);
    }

    .caja-cierre-actions .btn-primary,
    .caja-cierre-btn-submit {
        margin-left: 0;
        width: 100%;
    }
}

.caja-cierre-card .input-group {
    margin-bottom: var(--space-md);
}

.caja-cierre-card button[type="submit"] {
    margin-top: 0;
}

.caja-cierre-retry-note {
    margin-top: var(--space-md);
    margin-bottom: 0;
}

.caja-diferencia-pending-hint {
    margin-top: var(--space-sm);
}

body.caja-modal-scroll-lock {
    overflow: hidden;
}

/* Modal */
.caja-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 300;
    isolation: isolate;
    padding: var(--space-md);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.caja-modal-content {
    background: var(--color-bg-card);
    border-radius: var(--radius-md);
    padding: var(--space-lg);
    max-width: 400px;
    width: 90%;
    min-width: 0;
    max-height: min(85dvh, 800px);
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    box-shadow: var(--shadow-lg);
}

@media (min-width: 1024px) {
    .caja-modal-content {
        max-width: min(95vw, 520px);
    }
}

.caja-modal-resumen-detalle-inner.caja-modal-content {
    max-width: min(95vw, 720px);
}

@media (min-width: 1024px) {
    .caja-modal-resumen-detalle-inner.caja-modal-content {
        max-width: min(95vw, 760px);
    }
}

.caja-esperado-formula {
    margin: var(--space-sm) 0 var(--space-md);
    padding-left: 1.25rem;
}

.caja-resumen-detalle-sum {
    margin: var(--space-md) 0 0;
    font-size: 1.05rem;
}

table.caja-resumen-detalle-mini td.caja-num {
    font-variant-numeric: tabular-nums;
}

.caja-modal-content h3 {
    margin: 0 0 var(--space-md) 0;
}

.caja-modal-content .input-group {
    margin-bottom: var(--space-md);
}

.caja-modal-actions {
    display: flex;
    gap: var(--space-md);
    margin-top: var(--space-lg);
}

.caja-modal-actions-stack {
    flex-direction: column;
    align-items: stretch;
}

.caja-modal-cierre-wrap .caja-modal-cierre-step h3 {
    margin-top: 0;
}

#caja-modal-cierre-step-choose.caja-modal-cierre-step--choose {
    padding: var(--space-lg);
}

@media (min-width: 768px) {
    #caja-modal-cierre-step-choose.caja-modal-cierre-step--choose {
        padding: var(--space-xl);
    }
}

.caja-modal-cierre-review-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-md);
    flex-wrap: wrap;
}

.caja-modal-cierre-review-pane .caja-modal-cierre-review-head.caja-modal-detalle-header {
    margin-bottom: 0;
    padding: var(--space-md);
    padding-top: calc(var(--space-md) + env(safe-area-inset-top, 0px));
    align-items: center;
    border-bottom: 1px solid var(--color-border);
}

.caja-modal-cierre-review-pane .caja-modal-cierre-review-head h3 {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    font-size: clamp(1.05rem, 3.2vw, 1.2rem);
    line-height: 1.35;
}

.caja-modal-cierre-review-head .caja-cierre-review-btn-back {
    flex-shrink: 0;
    min-height: 44px;
    min-width: 44px;
    padding-inline: var(--space-md);
}

@media (min-width: 640px) {
    .caja-modal-cierre-review-pane .caja-modal-cierre-review-head.caja-modal-detalle-header {
        padding-left: var(--space-lg);
        padding-right: var(--space-lg);
        padding-bottom: var(--space-md);
    }
}

.caja-cierre-review-aviso {
    margin-bottom: var(--space-md);
}

.caja-cierre-review-lines {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    font-size: var(--text-sm, 0.9rem);
}

.caja-cierre-review-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: clamp(6px, 2vw, var(--space-sm));
    align-items: baseline;
    padding: 10px 0;
    border-bottom: 1px solid var(--color-border);
}

.caja-cierre-review-line:last-child {
    border-bottom: none;
}

.caja-cierre-review-line:first-child {
    padding-top: 2px;
}

.caja-cierre-review-line-mov {
    grid-template-columns: minmax(0, 1fr) auto;
}

.caja-cierre-review-nombre {
    color: var(--color-text);
    word-break: break-word;
}

.caja-cierre-review-mid {
    text-align: right;
    color: var(--color-text-muted);
    white-space: nowrap;
}

.caja-cierre-review-sub {
    text-align: right;
    font-weight: var(--font-weight-semibold, 600);
    white-space: nowrap;
}

.caja-cierre-review-total {
    margin-top: var(--space-md);
    padding-top: var(--space-sm);
    text-align: right;
    font-weight: var(--font-weight-semibold, 600);
    font-size: 1rem;
    color: var(--color-text);
}

/* Subbloques dentro de "Otras formas de pago" (transferencia vs tarjeta, etc.) */
.caja-cierre-review-otras-grupo + .caja-cierre-review-otras-grupo {
    margin-top: var(--space-md);
    padding-top: var(--space-md);
    border-top: 1px solid rgba(127, 127, 127, 0.25);
}

.caja-cierre-review-forma-medio {
    margin: 0 0 var(--space-sm);
    font-size: 0.85rem;
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: 0.03em;
    color: var(--color-primary, #f97316);
}

.caja-cierre-review-subtotal-grupo {
    margin-top: var(--space-xs);
    text-align: right;
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text-muted);
}

.caja-cierre-review-badge {
    display: inline-block;
    margin-left: 4px;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--color-primary-muted, rgba(255, 140, 0, 0.15));
    color: var(--color-primary, #f97316);
}

@media (max-width: 520px) {
    .caja-cierre-review-line:not(.caja-cierre-review-line-mov) {
        grid-template-columns: 1fr;
        row-gap: 2px;
    }

    .caja-cierre-review-mid {
        text-align: left;
        font-size: var(--text-sm, 0.875rem);
    }

    .caja-cierre-review-sub {
        text-align: left;
        font-size: var(--text-sm, 0.875rem);
        padding-left: var(--space-xs);
    }
}

@media (min-width: 521px) {
    .caja-cierre-review-line:not(.caja-cierre-review-line-mov) {
        gap: var(--space-md);
    }

    .caja-cierre-review-mid {
        font-variant-numeric: tabular-nums;
    }

    .caja-cierre-review-sub {
        font-variant-numeric: tabular-nums;
    }
}

.caja-diferencia-msg {
    font-size: 1rem;
    margin: var(--space-sm) 0;
    color: var(--color-text);
}

/* Estado sin caja abierta */
.caja-sin-caja-container {
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-md);
    padding: var(--space-xl);
}

.caja-turnos-abiertos-banner {
    width: 100%;
    max-width: 420px;
    text-align: left;
}

.caja-turnos-abiertos-list {
    margin: var(--space-2) 0;
    padding-left: 1.25rem;
}

.caja-turnos-abiertos-list li {
    margin-bottom: var(--space-1);
}

.caja-turnos-abiertos-actions {
    margin-top: var(--space-sm);
}

.caja-turnos-abiertos-admin {
    margin: var(--space-2) 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

.caja-apertura-ocupada-hint {
    margin-top: var(--space-sm);
}

.caja-sin-caja-card {
    max-width: 420px;
    text-align: center;
    padding: var(--space-xl);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--color-border);
}

.caja-sin-caja-icon {
    font-size: 3.5rem;
    margin-bottom: var(--space-md);
    opacity: 0.9;
}

.caja-sin-caja-title {
    margin: 0 0 var(--space-sm) 0;
    font-size: var(--text-xl);
    color: var(--color-text);
}

.caja-sin-caja-desc {
    margin: 0 0 var(--space-lg) 0;
    color: var(--color-text-muted);
    font-size: var(--text-base);
    line-height: 1.5;
}

.caja-sin-caja-steps {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2) var(--space-4);
    margin-bottom: var(--space-xl);
    font-size: var(--text-sm);
    color: var(--color-header-title);
    font-weight: var(--font-weight-medium, 500);
}

.caja-sin-caja-actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    align-items: stretch;
}

.caja-sin-caja-actions .btn-lg {
    padding: var(--space-md) var(--space-lg);
    font-size: 1rem;
}

@media (min-width: 480px) {
    .caja-sin-caja-actions {
        flex-direction: row;
        justify-content: center;
    }
    .caja-sin-caja-actions .btn-lg {
        min-width: 180px;
    }
}

/* Historial de cortes */
.caja-historial-container {
    padding: var(--space-lg);
    max-width: 960px;
}

.caja-historial-hero {
    margin-bottom: var(--space-lg);
    padding: var(--space-lg);
}

.caja-historial-hero .caja-panel-heading {
    margin-top: var(--space-2);
}

.caja-historial-hero .caja-panel-lead {
    margin-bottom: var(--space-md);
}

.caja-filters-panel--compact {
    margin-bottom: var(--space-md);
}

.caja-historial-tabs {
    margin-bottom: var(--space-md);
}

.caja-historial-panel.caja-tab-panel {
    margin-bottom: var(--space-lg);
}

.caja-historial-tabs .caja-tab {
    font-size: var(--text-sm);
    border: 1px solid var(--color-tab-inactive-border, var(--color-border));
    background: var(--color-tab-inactive-bg, var(--color-surface-muted));
    color: var(--color-tab-inactive-text, var(--color-text-muted));
}

.caja-historial-tabs .caja-tab:hover:not(.caja-tab--active) {
    color: var(--color-text);
    background: var(--hover-overlay-strong);
    border-color: var(--color-border-strong);
}

.caja-historial-tabs .caja-tab--active {
    color: var(--color-primary-contrast);
    background: var(--color-primary);
    border-color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
    box-shadow: var(--shadow-sm);
}

.caja-historial-tabs .caja-tab--active:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}

.caja-alcance-chips-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    margin: calc(-1 * var(--space-2)) 0 var(--space-md);
    padding: var(--space-sm) 0;
}

.caja-alcance-label {
    margin: 0;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.caja-alcance-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.caja-alcance-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 0.25rem 0.6rem;
    font-size: var(--text-sm);
    color: var(--color-text);
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full, 999px);
}

.caja-alcance-chip-k {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.caja-alcance-chip-k::after {
    content: ':';
    margin-left: 1px;
}

.caja-historial-corte-dia {
    margin-bottom: var(--space-lg);
}

.caja-historial-corte-dia-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-md);
    margin-bottom: var(--space-md);
}

.caja-historial-corte-dia-header h2 {
    margin: 0;
}

.caja-historial-corte-dia-fecha {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.caja-historial-corte-dia-fecha label {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

.caja-historial-corte-dia-fecha .input {
    width: 150px;
}

.caja-historial-corte-dia-row-header {
    font-size: 0.8rem;
    color: var(--color-text-muted);
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--color-border);
}

.caja-historial-corte-dia-row-header strong {
    font-weight: var(--font-weight-semibold, 600);
}

.caja-historial-corte-dia-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: var(--space-md);
    margin-bottom: var(--space-md);
}

.caja-historial-corte-dia-detalle {
    margin-top: var(--space-md);
    padding-top: var(--space-md);
    border-top: 1px solid var(--color-border);
}

.caja-historial-corte-dia-row {
    display: grid;
    grid-template-columns: 1fr 1fr auto auto;
    gap: var(--space-md);
    padding: var(--space-xs) 0;
    font-size: 0.9rem;
}

/* ----- Corte del día - Rediseño reporte ----- */
.caja-corte-dia-panel.card {
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-primary);
    box-shadow: var(--elevation-1);
    overflow: hidden;
}

.caja-corte-dia-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-lg);
    margin-bottom: var(--space-xl);
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--color-border);
}

.caja-corte-dia-title-wrap {
    flex: 1;
    min-width: 0;
}

.caja-corte-dia-title {
    margin: 0 0 var(--space-xs) 0;
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    font-weight: var(--font-weight-bold, 700);
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.caja-corte-dia-subtitle {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

.caja-corte-dia-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-md);
}

.caja-corte-dia-date-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.caja-corte-dia-date-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.caja-corte-dia-date-input {
    min-width: 160px;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    font-size: var(--text-base);
}

.caja-corte-dia-btn-refresh {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    font-weight: var(--font-weight-semibold, 600);
}

.caja-corte-dia-btn-icon {
    font-size: 1.1rem;
    opacity: 0.9;
}

.caja-corte-dia-filters-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-md);
    margin-bottom: var(--space-xl);
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--color-border);
}

.caja-corte-dia-filter-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: min(220px, 100%);
}

.caja-corte-dia-filter-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

select.caja-corte-dia-filter-select {
    min-width: 200px;
    max-width: 100%;
}

/* Corte del día: mobile-first — título arriba, controles abajo para evitar superposición */
@media (max-width: 767px) {
    .caja-corte-dia-header {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-md);
        margin-bottom: var(--space-lg);
        padding-bottom: var(--space-md);
    }

    .caja-corte-dia-title-wrap {
        order: 1;
    }

    .caja-corte-dia-controls {
        order: 2;
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-sm);
    }

    .caja-corte-dia-date-wrap {
        width: 100%;
    }

    .caja-corte-dia-date-input {
        min-width: 0;
        width: 100%;
        box-sizing: border-box;
    }

    .caja-corte-dia-btn-refresh {
        width: 100%;
        justify-content: center;
    }
}

.caja-corte-dia-content.caja-loading {
    padding: var(--space-xl);
    text-align: center;
    color: var(--color-text-muted);
}

.caja-corte-dia-date-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-lg);
    padding: var(--space-2) var(--space-4);
    background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface-muted));
    border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    text-transform: capitalize;
}

.caja-corte-dia-kpi-section {
    margin-bottom: var(--space-xl);
}

.caja-corte-dia-kpi-section--medios {
    margin-top: calc(-1 * var(--space-md));
}

.caja-corte-dia-section-title {
    margin: 0 0 var(--space-md);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.caja-corte-dia-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: var(--space-md);
    margin-bottom: 0;
}

.caja-corte-dia-kpis--row1 {
    grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
}

@media (min-width: 900px) {
    .caja-corte-dia-kpis--row1 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .caja-corte-dia-kpis--row1 {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }
}

.caja-corte-dia-kpi {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-md) var(--space-lg);
    background: var(--color-surface-muted);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    transition: box-shadow var(--transition-base), border-color var(--transition-base);
}

.caja-corte-dia-kpi:hover {
    border-color: var(--color-border-strong);
    box-shadow: var(--elevation-1);
}

.caja-corte-dia-kpi-icon {
    font-size: 1.25rem;
    margin-bottom: var(--space-1);
    opacity: 0.85;
}

.caja-corte-dia-kpi-label {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.caja-corte-dia-kpi-value {
    font-size: 1.25rem;
    font-weight: var(--font-weight-bold, 700);
    font-variant-numeric: tabular-nums;
    color: var(--color-primary);
    line-height: 1.2;
}

.caja-corte-dia-kpis--medios .caja-corte-dia-kpi-value,
.caja-corte-dia-kpis--row1 .caja-corte-dia-kpi-value {
    width: 100%;
    text-align: right;
    align-self: stretch;
}

.caja-corte-dia-kpi-ventas .caja-corte-dia-kpi-value,
.caja-corte-dia-kpi-esperado .caja-corte-dia-kpi-value,
.caja-corte-dia-kpi-efectivo .caja-corte-dia-kpi-value {
    color: var(--color-success);
}

.caja-corte-dia-kpi-alert .caja-corte-dia-kpi-value {
    color: var(--color-error);
}

.caja-corte-dia-kpi-diff.caja-corte-dia-kpi-faltante .caja-corte-dia-kpi-value {
    color: var(--color-error);
}

.caja-corte-dia-kpi-diff.caja-corte-dia-kpi-sobrante .caja-corte-dia-kpi-value {
    color: var(--color-info);
}

.caja-corte-dia-kpi-count .caja-corte-dia-kpi-value {
    color: var(--color-info);
}

.caja-corte-dia-medios-intro {
    margin: var(--space-md) 0 var(--space-sm);
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

.caja-corte-dia-kpis--medios {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

button.caja-corte-dia-kpi.caja-corte-dia-kpi--interactive {
    width: 100%;
    text-align: left;
    align-items: stretch;
    font: inherit;
    cursor: pointer;
    position: relative;
    padding-bottom: calc(var(--space-md) + 16px);
}

.caja-corte-dia-kpis--medios .caja-corte-dia-kpi-label {
    flex: 1;
    min-height: 2.6em;
    display: flex;
    align-items: flex-end;
}

button.caja-corte-dia-kpi.caja-corte-dia-kpi--interactive:hover {
    border-color: var(--color-primary);
    box-shadow: var(--elevation-1);
}

button.caja-corte-dia-kpi.caja-corte-dia-kpi--interactive:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.caja-corte-dia-kpi-hint {
    position: absolute;
    bottom: 8px;
    right: var(--space-md);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}

.caja-corte-dia-kpi--dim {
    opacity: 0.85;
}

.caja-corte-dia-kpi--dim .caja-corte-dia-kpi-value {
    color: var(--color-text-muted);
}

.caja-corte-dia-kpi--filled {
    border-color: rgba(249, 115, 22, 0.45);
}

.caja-corte-dia-table-wrap {
    margin-top: var(--space-lg);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--color-border);
}

.caja-corte-dia-table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--radius-lg);
}

.caja-corte-dia-table-title {
    margin: 0 0 var(--space-md) 0;
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}

.caja-corte-dia-table {
    display: grid;
    grid-template-columns: minmax(108px, 1.2fr) minmax(88px, 1fr) repeat(5, minmax(96px, 1fr));
    gap: 0;
    min-width: 760px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    overflow: hidden;
    background: var(--color-bg-card);
    position: relative;
    isolation: isolate;
}

.caja-corte-dia-table-col-ventas {
    grid-column: 4;
    grid-row: 1 / -1;
    z-index: 0;
    pointer-events: none;
    background: color-mix(in srgb, var(--color-success) 14%, var(--color-bg-card));
    border-left: 1px solid color-mix(in srgb, var(--color-success) 28%, var(--color-border));
    border-right: 1px solid color-mix(in srgb, var(--color-success) 28%, var(--color-border));
}

.caja-corte-dia-table-header,
.caja-corte-dia-table-row,
.caja-corte-dia-table-footer {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 1 / -1;
    gap: 0;
    padding: 0;
    align-items: stretch;
    font-size: var(--text-sm);
    position: relative;
    z-index: 1;
}

.caja-corte-dia-table-header [role='columnheader'],
.caja-corte-dia-table-row [role='cell'],
.caja-corte-dia-table-footer [role='cell'] {
    padding: var(--space-3) var(--space-4);
    display: flex;
    align-items: center;
    min-height: 100%;
}

.caja-corte-dia-table .caja-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    justify-content: flex-end;
}

.caja-corte-dia-table-total-label {
    grid-column: 1 / 3;
}

.caja-corte-dia-table-header {
    background: var(--color-surface-muted);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    border-bottom: 1px solid var(--color-border);
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.caja-corte-dia-table-header [role='columnheader']:not(.caja-corte-dia-col-ventas) {
    background: var(--color-surface-muted);
}

.caja-corte-dia-table-header .caja-corte-dia-col-ventas {
    background: transparent;
}

.caja-corte-dia-table-row {
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text);
}

.caja-corte-dia-table-row:nth-child(odd of .caja-corte-dia-table-row) [role='cell']:not(.caja-corte-dia-col-ventas) {
    background: color-mix(in srgb, var(--color-surface-muted) 45%, transparent);
}

.caja-corte-dia-table-row:hover [role='cell']:not(.caja-corte-dia-col-ventas) {
    background: color-mix(in srgb, var(--color-primary) 6%, var(--color-bg-card));
}

.caja-corte-dia-table-row:hover .caja-corte-dia-col-ventas {
    background: color-mix(in srgb, var(--color-success) 22%, var(--color-bg-card));
}

.caja-corte-dia-table-footer {
    font-weight: var(--font-weight-semibold);
    border-top: 2px solid var(--color-border);
    color: var(--color-text);
}

.caja-corte-dia-table-footer [role='cell']:not(.caja-corte-dia-col-ventas):not(.caja-corte-dia-table-total-label) {
    background: var(--color-surface-muted);
}

.caja-corte-dia-table-footer .caja-corte-dia-table-total-label {
    background: var(--color-surface-muted);
}

.caja-corte-dia-table-footer .caja-corte-dia-col-ventas {
    background: transparent;
}

.caja-corte-dia-col-ventas {
    color: var(--color-success);
    font-weight: var(--font-weight-semibold);
    font-variant-numeric: tabular-nums;
    background: transparent;
}

.caja-corte-dia-table-header .caja-corte-dia-col-ventas {
    color: var(--color-success);
}

/* Navegadores sin subgrid: columnas fijas por fila (misma plantilla que el contenedor). */
@supports not (grid-template-columns: subgrid) {
    .caja-corte-dia-table-header,
    .caja-corte-dia-table-row,
    .caja-corte-dia-table-footer {
        grid-template-columns: minmax(108px, 1.2fr) minmax(88px, 1fr) repeat(5, minmax(96px, 1fr));
    }
}

@media (max-width: 767px) {
    .caja-corte-dia-table-col-ventas {
        display: none;
    }

    .caja-corte-dia-col-ventas {
        background: color-mix(in srgb, var(--color-success) 12%, var(--color-bg-card));
        border-radius: var(--radius-sm);
        padding-left: var(--space-sm);
        padding-right: var(--space-sm);
    }

    .caja-corte-dia-table-scroll {
        overflow-x: visible;
    }

    .caja-corte-dia-table {
        display: flex;
        flex-direction: column;
        min-width: 0;
        border: none;
        background: transparent;
        gap: var(--space-md);
    }

    .caja-corte-dia-table-header,
    .caja-corte-dia-table-row,
    .caja-corte-dia-table-footer {
        grid-column: auto;
        grid-template-columns: none;
    }

    .caja-corte-dia-table-total-label {
        grid-column: auto;
    }

    .caja-corte-dia-table-header {
        display: none;
    }

    .caja-corte-dia-table-row,
    .caja-corte-dia-table-footer {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding: var(--space-md);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-lg);
        background: var(--color-bg-card);
    }

    .caja-corte-dia-table-row {
        border-bottom: none;
    }

    .caja-corte-dia-table-row:nth-child(odd of .caja-corte-dia-table-row) {
        background: var(--color-bg-card);
    }

    .caja-corte-dia-table-row [role='cell'],
    .caja-corte-dia-table-footer [role='cell'] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-md);
        padding: 0.4rem 0;
        font-size: var(--text-sm);
    }

    .caja-corte-dia-table-row [role='cell']:not([hidden])::before,
    .caja-corte-dia-table-footer [role='cell']:not([hidden])::before {
        content: attr(data-label);
        font-size: var(--text-xs);
        font-weight: var(--font-weight-medium);
        color: var(--color-text-muted);
        text-transform: uppercase;
        letter-spacing: 0.03em;
        flex-shrink: 0;
    }

    .caja-corte-dia-table-row [role='cell']:first-child,
    .caja-corte-dia-table-footer [role='cell']:first-child {
        font-weight: var(--font-weight-semibold);
        font-size: var(--text-base);
        padding-bottom: var(--space-sm);
        margin-bottom: var(--space-xs);
        border-bottom: 1px solid var(--color-border);
    }

    .caja-corte-dia-table-row [role='cell']:first-child::before,
    .caja-corte-dia-table-footer [role='cell']:first-child::before {
        display: none;
    }

    .caja-corte-dia-table-row [role='cell'].caja-num,
    .caja-corte-dia-table-footer [role='cell'].caja-num {
        font-variant-numeric: tabular-nums;
        text-align: right;
    }

    .caja-corte-dia-table-footer {
        border-top: 1px solid var(--color-border);
    }
}

.caja-corte-dia-empty {
    padding: var(--space-xl);
    text-align: center;
    background: var(--color-surface-muted);
    border-radius: var(--radius-lg);
    border: 1px dashed var(--color-border);
}

.caja-corte-dia-empty-text {
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--text-base);
}

.caja-corte-dia-error .caja-corte-dia-empty-text {
    color: var(--color-error);
}

.caja-historial-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-md);
    margin-bottom: var(--space-md);
}

.caja-historial-filters .input-group {
    min-width: 120px;
}

/* Botones Hoy, 7 días, 30 días y Actualizar; en móvil permitir wrap para no cortar */
.caja-historial-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--space-sm);
    align-items: center;
}

/* Tablet/desktop: components.css usa grid en .caja-historial-actions (auto-fill) y puede apilar los botones */
@media (min-width: 768px) {
    .caja-historial-filters > .caja-historial-actions {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: var(--space-sm);
    }
}

.caja-historial-filters .input-group label {
    display: block;
    margin-bottom: var(--space-1);
}

.caja-historial-actions .btn {
    margin-bottom: 0;
    white-space: nowrap;
    min-width: 0;
}

/* Historial de cierres: mobile-first — filtros y botones sin overflow */
@media (max-width: 767px) {
    .caja-historial-container {
        padding: var(--space-md);
    }

    .caja-historial-tabs {
        flex-direction: column;
        margin-bottom: var(--space-md);
    }

    .caja-historial-filters {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-md);
    }

    .caja-historial-filters .input-group {
        min-width: 0;
        width: 100%;
    }

    .caja-historial-actions {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .caja-historial-actions .btn {
        min-height: 44px;
        flex: 1 1 auto;
        min-width: calc(50% - var(--space-sm) / 2);
    }

    #caja-historial-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin-left: calc(-1 * var(--space-md));
        margin-right: calc(-1 * var(--space-md));
        padding-left: var(--space-md);
        padding-right: var(--space-md);
    }
}

.caja-historial-modal-content {
    max-width: min(95vw, 860px);
    width: 100%;
    max-height: min(85dvh, 800px);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
}

.caja-modal-detalle-header {
    margin-bottom: var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--color-border);
}

.caja-modal-detalle-header h3 {
    margin: 0;
    font-size: 1.1rem;
    color: var(--color-text);
}

.caja-modal-detalle-body {
    max-height: calc(85dvh - 120px);
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}

/*
 * Modal "Confirmar/Revisión del cierre": solo el cuerpo con el detalle hace scroll
 * (cabecera y pie estáticos).
 */
.caja-modal-content.caja-historial-modal-content.caja-modal-cierre-wrap {
    padding: 0;
    gap: 0;
    overflow-y: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

#caja-modal-cierre-step-review.caja-modal-cierre-review-pane {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.caja-modal-cierre-review-pane .caja-modal-cierre-review-scroll {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
}

.caja-modal-cierre-review-pane .caja-modal-cierre-review-footer.caja-modal-actions {
    margin-top: 0;
    flex-shrink: 0;
    padding: var(--space-md);
    padding-bottom: max(var(--space-md), env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--color-border);
    gap: var(--space-sm);
}

.caja-modal-cierre-review-footer .caja-cierre-review-btn-primary {
    margin-top: 0;
}

@media (min-width: 640px) {
    .caja-modal-cierre-review-pane .caja-modal-cierre-review-footer.caja-modal-actions {
        flex-direction: row;
        justify-content: flex-end;
        padding-left: var(--space-lg);
        padding-right: var(--space-lg);
    }

    .caja-modal-cierre-review-footer .caja-cierre-review-btn-primary {
        min-width: min(260px, 100%);
        margin-inline: 0 auto;
    }
}

#caja-cierre-review-body.caja-modal-detalle-body {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
}

/* Secciones en revisión del cierre: tarjetas y tipografía más clara mobile-first */
#caja-cierre-review-body .caja-historial-detalle {
    gap: var(--space-md);
}

#caja-cierre-review-body .caja-historial-detalle-section.caja-cierre-review-section {
    margin: 0;
    padding: var(--space-md);
    border-bottom: none;
    background: rgba(127, 127, 127, 0.07);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

#caja-cierre-review-body .caja-historial-detalle-section.caja-cierre-review-section:last-child {
    padding-bottom: var(--space-md);
}

#caja-cierre-review-body .caja-cierre-review-section h4 {
    margin: 0 0 var(--space-sm);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-weight: var(--font-weight-semibold, 600);
    color: var(--color-text-muted);
}

#caja-cierre-review-body.caja-modal-detalle-body.caja-cierre-review-scroll {
    padding: var(--space-md);
    scrollbar-gutter: stable;
}

@media (min-width: 640px) {
    #caja-cierre-review-body.caja-modal-detalle-body.caja-cierre-review-scroll {
        padding-left: var(--space-lg);
        padding-right: var(--space-lg);
    }
}

.caja-historial-detalle {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.caja-historial-detalle-section {
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--color-border);
}

.caja-historial-detalle-section:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.caja-historial-detalle-section h4 {
    margin: 0 0 var(--space-md) 0;
    font-size: var(--text-base);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-semibold, 600);
}

.caja-historial-detalle-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: var(--space-md);
}

.caja-historial-detalle-grid--forma-pago {
    align-items: start;
}

.caja-historial-detalle-item-resumen-footer {
    grid-column: 1 / -1;
    padding-top: var(--space-md);
    margin-top: var(--space-xs);
    border-top: 1px solid var(--color-border);
}

.caja-historial-detalle-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.caja-historial-detalle-item span {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

.caja-historial-detalle-item strong {
    font-size: 1rem;
}

.caja-historial-deuda-a {
    grid-column: 1 / -1;
    padding: var(--space-md);
    background: var(--color-danger-muted);
    border-radius: var(--radius-md);
    border: 1px solid rgba(239, 68, 68, 0.35);
    border-left: 4px solid var(--color-error);
}

.caja-historial-deuda-a span {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-error);
    margin-bottom: var(--space-xs);
}

.caja-historial-deuda-a strong {
    font-size: 1.05rem;
    color: var(--color-text);
}

.caja-historial-deuda-item {
    padding: var(--space-xs) 0;
    color: var(--color-text);
}

.caja-historial-deuda-monto {
    font-size: 0.85rem;
    color: var(--color-text-muted);
    margin-top: var(--space-xs);
    display: block;
}

.caja-historial-deuda-item + .caja-historial-deuda-item {
    border-top: 1px solid rgba(239, 68, 68, 0.2);
}

.caja-historial-obs {
    margin: var(--space-md) 0 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

.caja-historial-mini-table {
    margin-top: var(--space-md);
}

.caja-historial-table-wrap {
    overflow-x: auto;
    overflow-y: visible;
    max-height: none;
    -webkit-overflow-scrolling: touch;
}

.caja-historial-table-wrap table {
    font-size: 0.9rem;
}

.caja-historial-total-row td {
    border-top: 2px solid var(--color-border);
    padding-top: var(--space-md);
    background: var(--color-bg);
}

.caja-historial-detalle p {
    margin: var(--space-sm) 0;
}

[data-theme="dark"] .caja-resumen-item {
    background: var(--color-bg-elevated, var(--color-surface-muted));
}

[data-theme="dark"] .caja-alcance-chip {
    background: var(--color-bg-elevated, var(--color-surface-muted));
}

/* ── Caja UX v2 ─────────────────────────────────────────────────────────── */

.caja-v2 {
    width: 100%;
    max-width: none;
}

.caja-cierre-obligatorio-banner {
    margin: 0 0 var(--space-lg);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
}

.caja-cierre-obligatorio-cta {
    align-self: flex-start;
}

@media (min-width: 768px) {
    .caja-cierre-obligatorio-banner {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-md);
        padding: var(--space-md) var(--space-lg);
    }

    .caja-cierre-obligatorio-cta {
        align-self: center;
        margin-left: auto;
    }
}

.caja-link-tab {
    padding: 0;
    border: none;
    background: none;
    color: var(--color-primary);
    font: inherit;
    font-weight: var(--font-weight-semibold);
    text-decoration: underline;
    cursor: pointer;
}

.caja-link-tab:hover {
    color: var(--color-primary-hover, var(--color-primary));
}

.caja-hero {
    margin-bottom: var(--space-lg);
    padding: var(--space-lg);
    background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 10%, var(--color-bg-card)), var(--color-bg-card));
    border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
    border-radius: var(--radius-lg);
}

.caja-hero--offline {
    border-color: color-mix(in srgb, var(--color-warning) 45%, var(--color-border));
    background: linear-gradient(135deg, color-mix(in srgb, var(--color-warning) 10%, var(--color-bg-card)), var(--color-bg-card));
}

.caja-hero--error {
    border-color: color-mix(in srgb, var(--color-error) 40%, var(--color-border));
}

.caja-hero-top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-lg);
    margin-bottom: var(--space-md);
}

.caja-hero-badge {
    display: inline-block;
    margin-bottom: var(--space-2);
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: color-mix(in srgb, var(--color-success) 18%, transparent);
    color: var(--color-success);
}

.caja-hero-title {
    margin: 0;
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
}

.caja-hero-meta {
    margin: var(--space-1) 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}

.caja-hero-kpi {
    text-align: right;
    min-width: min(100%, 11rem);
}

.caja-hero-kpi-label {
    display: block;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.caja-hero-kpi-value {
    display: block;
    font-size: clamp(1.75rem, 5vw, 2.25rem);
    font-weight: var(--font-weight-bold);
    font-variant-numeric: tabular-nums;
    color: var(--color-primary);
    line-height: 1.1;
}

.caja-hero-kpi-sub {
    display: block;
    margin-top: var(--space-1);
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

.caja-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.caja-tabs {
    display: flex;
    gap: var(--space-1);
    margin-bottom: var(--space-md);
    padding: var(--space-1);
    background: var(--color-surface-muted);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
}

/* Pestañas principales del módulo Caja (Resumen / Movimientos / Cerrar turno) */
.caja-main-tabs .caja-tab {
    border: 1px solid var(--color-tab-inactive-border, var(--color-border));
    background: var(--color-tab-inactive-bg, transparent);
    color: var(--color-tab-inactive-text, var(--color-text-muted));
}

.caja-main-tabs .caja-tab:hover:not(.caja-tab--active) {
    color: var(--color-text);
    background: var(--hover-overlay-strong);
    border-color: var(--color-border-strong);
}

.caja-main-tabs .caja-tab--active {
    color: var(--color-primary-contrast);
    background: var(--color-primary);
    border-color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
    box-shadow: var(--shadow-sm);
}

.caja-main-tabs .caja-tab--active:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}

.caja-main-tabs .caja-tab--cierre:not(.caja-tab--active) {
    color: var(--color-primary);
    border-color: color-mix(in srgb, var(--color-primary) 45%, var(--color-border));
    font-weight: var(--font-weight-semibold);
}

.caja-resumen-cierre-cta {
    margin-top: var(--space-lg);
    padding-top: var(--space-md);
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-sm);
}

.caja-resumen-cierre-btn {
    min-width: min(100%, 280px);
}

.caja-resumen-cierre-hint {
    margin: 0;
    max-width: 32rem;
    line-height: 1.45;
}

.caja-tab {
    flex: 1 1 0;
    min-height: 44px;
    padding: var(--space-2) var(--space-3);
    border: none;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}

.caja-tab:hover {
    color: var(--color-text);
    background: var(--hover-overlay);
}

.caja-tab--active {
    background: var(--color-bg-card);
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* Historial: override genérico con estilo naranja (ya definido arriba en .caja-historial-tabs) */

.caja-tab-panel {
    margin-bottom: var(--space-lg);
}

.caja-panel-heading {
    margin: 0 0 var(--space-2);
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
}

.caja-panel-lead {
    margin: 0 0 var(--space-lg);
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    line-height: 1.5;
    max-width: 56rem;
}

.caja-panel-head-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-md);
    margin-bottom: var(--space-md);
}

.caja-efectivo-stack {
    padding: var(--space-md);
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.caja-efectivo-formula {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.caja-formula-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    padding: var(--space-3) var(--space-2);
    border-bottom: 1px solid var(--color-border);
    font-size: var(--text-sm);
}

.caja-formula-row:last-child {
    border-bottom: none;
}

.caja-formula-row--clickable {
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: background var(--transition-fast);
}

.caja-formula-row--clickable:hover {
    background: var(--hover-overlay);
}

.caja-formula-row--clickable:focus-visible {
    outline: 2px solid var(--color-primary-muted);
    outline-offset: 1px;
}

.caja-formula-row--total {
    margin-top: var(--space-1);
    padding-top: var(--space-4);
    border-top: 2px solid color-mix(in srgb, var(--color-primary) 35%, var(--color-border));
    border-bottom: none;
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
}

.caja-formula-row--total .caja-formula-value {
    font-size: var(--text-lg);
    color: var(--color-primary);
}

.caja-formula-label {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-text-secondary);
}

.caja-formula-sign {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-muted);
}

.caja-formula-value {
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.caja-formula-tip {
    margin: var(--space-3) 0 0;
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

.caja-otros-medios {
    margin-top: var(--space-lg);
    padding: var(--space-md);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-bg-card);
}

.caja-otros-medios summary {
    cursor: pointer;
    font-weight: var(--font-weight-medium);
    font-size: var(--text-sm);
    color: var(--color-text);
    list-style: none;
}

.caja-otros-medios summary::-webkit-details-marker {
    display: none;
}

.caja-otros-medios summary::before {
    content: '▸ ';
    color: var(--color-text-muted);
}

.caja-otros-medios[open] summary::before {
    content: '▾ ';
}

.caja-otros-medios-hint {
    font-weight: normal;
    color: var(--color-text-muted);
    font-size: var(--text-xs);
}

.caja-resumen-grid--otros {
    margin-top: var(--space-md);
}

.caja-cierre-steps {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-md);
    padding: 0;
    list-style: none;
    counter-reset: caja-cierre-step;
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

.caja-cierre-step {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
    transition: background var(--transition-base), border-color var(--transition-base), color var(--transition-base);
}

.caja-cierre-step::before {
    counter-increment: caja-cierre-step;
    content: counter(caja-cierre-step) ". ";
    font-weight: var(--font-weight-semibold);
}

.caja-cierre-step--active {
    background: color-mix(in srgb, var(--color-primary) 14%, var(--color-bg-card));
    border-color: color-mix(in srgb, var(--color-primary) 45%, var(--color-border));
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
}

.caja-cierre-step--done {
    background: color-mix(in srgb, var(--color-success) 12%, var(--color-bg-card));
    border-color: color-mix(in srgb, var(--color-success) 35%, var(--color-border));
    color: var(--color-success);
}

.caja-cierre-step--ready {
    background: color-mix(in srgb, var(--color-primary) 10%, var(--color-bg-card));
    border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
    color: var(--color-primary);
    font-weight: var(--font-weight-medium);
}

.caja-cierre-hint {
    display: block;
    margin-top: var(--space-1);
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    font-weight: normal;
}

.caja-arqueo-diff {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    margin: 0 0 var(--space-md);
    padding: var(--space-3) var(--space-md);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    line-height: 1.45;
}

.caja-arqueo-diff[hidden] {
    display: none !important;
}

.caja-arqueo-diff__icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.85rem;
    font-weight: var(--font-weight-bold);
    border-radius: 50%;
}

.caja-arqueo-diff__text {
    flex: 1;
    min-width: 0;
}

.caja-arqueo-diff--pending {
    background: var(--color-surface-muted);
    color: var(--color-text-muted);
    border: 1px dashed var(--color-border);
}

.caja-arqueo-diff--pending .caja-arqueo-diff__icon {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
}

.caja-arqueo-diff--ok {
    background: color-mix(in srgb, var(--color-success) 14%, var(--color-bg-card));
    color: var(--color-success);
    border: 1px solid color-mix(in srgb, var(--color-success) 35%, var(--color-border));
}

.caja-arqueo-diff--ok .caja-arqueo-diff__icon {
    background: color-mix(in srgb, var(--color-success) 22%, transparent);
}

.caja-arqueo-diff--falta {
    background: color-mix(in srgb, var(--color-danger) 12%, var(--color-bg-card));
    color: var(--color-danger);
    border: 1px solid color-mix(in srgb, var(--color-danger) 30%, var(--color-border));
}

.caja-arqueo-diff--falta .caja-arqueo-diff__icon {
    background: color-mix(in srgb, var(--color-danger) 18%, transparent);
}

.caja-arqueo-diff--sobra {
    background: color-mix(in srgb, var(--color-warning) 14%, var(--color-bg-card));
    color: var(--color-warning);
    border: 1px solid color-mix(in srgb, var(--color-warning) 35%, var(--color-border));
}

.caja-arqueo-diff--sobra .caja-arqueo-diff__icon {
    background: color-mix(in srgb, var(--color-warning) 20%, transparent);
}

.caja-empty {
    text-align: center;
    padding: var(--space-xl);
    color: var(--color-text-muted);
}

.caja-empty p {
    margin: 0 0 var(--space-md);
}

.caja-sin-caja-flow {
    list-style: none;
    margin: 0 0 var(--space-xl);
    padding: 0;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.caja-sin-caja-flow li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    font-size: var(--text-sm);
}

.caja-sin-caja-flow-num {
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-primary) 15%, transparent);
    color: var(--color-primary);
    font-weight: var(--font-weight-bold);
    font-size: var(--text-xs);
}

.caja-sin-caja-flow li span:last-child {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.caja-sin-caja-flow li small {
    color: var(--color-text-muted);
    font-size: var(--text-xs);
}

.caja-apertura-card--v2 {
    max-width: 440px;
}

.caja-apertura-badge {
    display: inline-block;
    margin-bottom: var(--space-2);
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: color-mix(in srgb, var(--color-primary) 14%, transparent);
    color: var(--color-primary);
}

.caja-apertura-lead {
    margin: 0 0 var(--space-lg);
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    line-height: 1.5;
}

.caja-apertura-monto {
    font-size: var(--text-lg);
    font-variant-numeric: tabular-nums;
}

.caja-modal-post-cierre-inner {
    max-width: 24rem;
    text-align: center;
}

.caja-modal-post-cierre-inner .caja-modal-actions-stack {
    margin-top: var(--space-md);
}

@media (max-width: 767px) {
    .caja-hero-kpi {
        text-align: left;
        width: 100%;
    }

    .caja-hero-actions .btn {
        flex: 1 1 calc(50% - var(--space-2));
        justify-content: center;
    }

    .caja-tabs {
        flex-direction: column;
    }
}

/* Escritorio: aprovechar ancho útil del shell */
@media (min-width: 1024px) {
    .caja-hero-top {
        align-items: center;
    }

    .caja-hero-kpi {
        min-width: 14rem;
    }

    .caja-resumen-v2 {
        display: grid;
        grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
        gap: var(--space-lg);
        align-items: start;
    }

    .caja-resumen-v2 > .caja-efectivo-stack {
        grid-column: 1;
    }

    .caja-resumen-v2 > .caja-otros-medios {
        grid-column: 2;
        margin-top: 0;
        align-self: stretch;
    }

    .caja-resumen-v2 > .caja-offline-banner {
        grid-column: 1 / -1;
    }

    .caja-otros-medios[open] .caja-resumen-grid--otros {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .caja-denom-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    #caja-panel-cierre .caja-cierre-card-redesign {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(300px, 22rem);
        gap: var(--space-lg);
        align-items: start;
    }

    #caja-panel-cierre .caja-cierre-comparacion {
        grid-column: 1;
        grid-row: 1 / span 4;
        margin: 0;
    }

    #caja-panel-cierre #caja-arqueo-diff {
        grid-column: 2;
        margin-top: 0;
    }

    #caja-panel-cierre #caja-cierre-diferencia-cancel-note {
        grid-column: 2;
    }

    #caja-panel-cierre .caja-cierre-form {
        grid-column: 2;
        margin-top: 0;
    }

    .caja-v2--cierre-obligatorio .caja-hero {
        margin-bottom: var(--space-md);
    }

    .caja-v2--cierre-obligatorio #caja-panel-cierre {
        margin-bottom: 0;
    }
}

@media (min-width: 1400px) {
    .caja-cierre-comparacion {
        padding: var(--space-xl);
        gap: var(--space-lg);
    }

    .caja-denom-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    #caja-panel-cierre .caja-cierre-card-redesign {
        grid-template-columns: minmax(0, 1fr) minmax(320px, 24rem);
    }
}

}
