/* Estilos personalizados para CellStock Pro */

/* Fuentes y scrollbar */
body {
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    -webkit-font-smoothing: antialiased;
    -webkit-tap-highlight-color: transparent;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Transiciones suaves */
.transition-all-200 {
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Modo Vendedor: Ocultar información confidencial (costos, márgenes, reportes, eliminar) */
.modo-vendedor .admin-only {
    display: none !important;
}

/* Barra inferior móvil: Soporte de área segura para iPhone (Home bar) */
.mobile-bottom-nav {
    padding-bottom: max(0.5rem, env(safe-area-inset-bottom));
}

/* Animaciones suaves para modales tipo Bottom-Sheet en móvil */
@keyframes slideUp {
    from {
        transform: translateY(100%);
        opacity: 0.5;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: scale(0.97);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@media (max-width: 639px) {
    .modal-sheet-mobile {
        align-items: flex-end !important;
        padding: 0 !important;
    }
    .modal-sheet-mobile > div {
        animation: slideUp 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
        max-height: 92vh !important;
        width: 100% !important;
        max-width: 100% !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        border-top-left-radius: 1.5rem !important;
        border-top-right-radius: 1.5rem !important;
        margin: 0 !important;
    }
}

@media (min-width: 640px) {
    .modal-sheet-mobile > div {
        animation: fadeIn 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    }
}

/* Estilos de Impresión para Ticket / Recibo Térmico (58mm / 80mm) */
@media print {
    @page {
        margin: 0;
        size: auto;
    }

    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    html, body {
        background-color: white !important;
        color: black !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }

    /* Ocultar interfaz no imprimible */
    header, nav, aside, footer,
    #sidebar, #main-content > header,
    .no-print,
    .modal-sheet-mobile:not(#modal-recibo-venta):not(#modal-boleta-reparacion) {
        display: none !important;
    }

    /* Contenedores de modales de recibo/boleta activos */
    #modal-recibo-venta, #modal-boleta-reparacion {
        position: static !important;
        display: block !important;
        background: transparent !important;
        padding: 0 !important;
        margin: 0 auto !important;
        width: 100% !important;
        overflow: visible !important;
    }

    #modal-recibo-venta > div, #modal-boleta-reparacion > div {
        border: none !important;
        box-shadow: none !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 auto !important;
        animation: none !important;
        transform: none !important;
        overflow: visible !important;
    }

    /* Contenedor imprimible */
    .ticket-printable-container {
        display: block !important;
        visibility: visible !important;
        position: static !important;
        margin: 0 auto !important;
        background: white !important;
        color: black !important;
        box-shadow: none !important;
        border: none !important;
        padding: 8px 12px !important;
        overflow: visible !important;
        max-height: none !important;
        height: auto !important;
    }

    /* Ancho estándar 58mm (impresora portátil Bluetooth) */
    .ticket-printable-container.ticket-58mm {
        width: 54mm !important;
        max-width: 54mm !important;
        padding: 4px 2px !important;
        font-size: 11px !important;
        line-height: 1.2 !important;
    }

    /* Ancho estándar 80mm (impresora de mostrador USB/Ethernet) */
    .ticket-printable-container.ticket-80mm {
        width: 76mm !important;
        max-width: 76mm !important;
        padding: 8px 4px !important;
        font-size: 12px !important;
        line-height: 1.25 !important;
    }

    img.ticket-logo-img {
        max-height: 48px !important;
        margin: 0 auto 4px auto !important;
        display: block !important;
        object-fit: contain !important;
    }

    .ticket-qr-box svg, .ticket-qr-box canvas, .ticket-qr-box img {
        margin: 0 auto !important;
        display: block !important;
        max-width: 100px !important;
        height: auto !important;
    }
}
