/*
 * Estilos personalizados para el sistema PDV utilizando AdminLTE como base.
 * Este archivo define variables de color, tipografía y pequeños ajustes de
 * apariencia para componentes específicos (tarjetas KPI, toggle switches y
 * tarjetas de productos). Se procura no sobreescribir estilos de AdminLTE,
 * sino complementarlos suavemente.
 */

/*
 * Variables de tema y estilos globales
 *
 * Definimos una paleta de colores personalizada inspirada en la estética SaaS
 * y ajustamos la tipografía. Utilizamos tonos suaves para el fondo del
 * contenido y un contraste moderado para la barra lateral. Estas
 * variables permiten un mantenimiento sencillo del tema.
 */
:root {
    --primary-color: #0d6efd;      /* Azul principal */
    --success-color: #28a745;      /* Verde éxito */
    --warning-color: #ffc107;      /* Amarillo suave */
    --danger-color: #dc3545;       /* Rojo peligro */
    --sidebar-bg: #1f2937;         /* Fondo de la barra lateral (gris oscuro azulado) */
    --sidebar-hover: #111827;      /* Color de hover en barra lateral */
    --content-bg: #f5f7fa;         /* Fondo del área de contenido */
    --card-bg: #ffffff;            /* Fondo de las tarjetas */
    --card-border: #e5e7eb;        /* Borde de las tarjetas */
    --text-muted: #6c757d;         /* Texto secundario */
    --header-bg: #0d6efd;          /* Fondo de cabecera de tarjetas (si se usa) */
}

/* Tipografía principal */
body {
    font-family: 'Poppins', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
    background-color: var(--content-bg);
    color: #374151;
    font-size: 0.95rem;
}

/* Ajustes de la barra lateral
   Utilizamos colores más cercanos al tema por defecto de AdminLTE para lograr
   una apariencia profesional similar a los ejemplos oficiales. */
.main-sidebar {
    background-color: #343a40; /* gris oscuro similar al sidebar de AdminLTE */
}
.main-sidebar .nav-link {
    color: #c2c7d0; /* tono claro para texto en sidebar */
    font-weight: 500;
}
.main-sidebar .nav-link:hover {
    background-color: #2c3e50; /* tono más oscuro en hover */
    color: #ffffff;
}
.main-sidebar .nav-link.active {
    background-color: var(--primary-color);
    color: #ffffff;
}
.main-sidebar .nav-icon {
    margin-right: 8px;
}

/* Encabezado de la navbar
   Ajustamos los colores para que coincidan con la demo de AdminLTE. */
.main-header {
    background-color: #f8f9fa; /* fondo claro */
    border-bottom: 1px solid #dee2e6;
}
.main-header .navbar-nav .nav-link {
    color: #495057;
    font-weight: 500;
}
.main-header .navbar-text {
    color: #343a40;
    font-weight: 600;
}

/* Tarjetas de KPI en el dashboard */
.small-box {
    border-radius: 0.5rem;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
}
.small-box .inner h3 {
    font-size: 2rem;
    font-weight: 700;
    margin: 0;
}
.small-box .inner p {
    font-size: 1rem;
    margin: 0;
}
.small-box .icon {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 3rem;
    opacity: 0.2;
}
.small-box.bg-primary {
    background-color: var(--primary-color);
    color: #fff;
}
.small-box.bg-info {
    background-color: #0dcaf0;
    color: #fff;
}
.small-box.bg-success {
    background-color: var(--success-color);
    color: #fff;
}
.small-box.bg-warning {
    background-color: var(--warning-color);
    color: #212529;
}

/* Tablas y acciones */
.table thead th {
    background-color: var(--content-bg);
    font-weight: 600;
    color: #374151;
}
.table tbody tr:hover {
    background-color: #f1f5f9;
}
.action-btn {
    margin-right: 0.25rem;
}

/* Formularios y switches */
.form-switch .form-check-input {
    width: 2.5rem;
    height: 1.3rem;
    margin-left: -2.5rem;
    background-color: #ced4da;
    border: none;
    transition: background-color 0.3s ease;
}
.form-switch .form-check-input:checked {
    background-color: var(--primary-color);
}
.form-switch .form-check-input:focus {
    box-shadow: none;
}

/* Tarjetas de productos en POS */
.product-card {
    border: 1px solid var(--card-border);
    border-radius: 0.5rem;
    background-color: var(--card-bg);
    padding: 1rem;
    transition: box-shadow 0.2s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.product-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.product-card .product-icon {
    font-size: 2.25rem;
    color: var(--primary-color);
    margin-bottom: 0.5rem;
    text-align: center;
}
.product-card .product-name {
    font-weight: 600;
    font-size: 0.9rem;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.product-card .product-sku {
    font-size: 0.75rem;
    color: var(--text-muted);
    text-align: center;
}
.product-card .product-price {
    font-weight: 700;
    color: var(--primary-color);
    font-size: 1rem;
    text-align: center;
}
.product-card .product-stock {
    font-size: 0.75rem;
    color: var(--text-muted);
    text-align: center;
}
.product-card .btn-add {
    margin-top: 0.5rem;
    width: 100%;
}

/* Cart vacío en POS */
.empty-cart {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--text-muted);
}

/* Ajustes de la barra lateral en modo colapsado (pushmenu)
   Aseguramos que la anchura de la barra lateral sea más estrecha cuando
   el cuerpo tenga la clase sidebar-collapse, y el contenido se desplace
   en consecuencia. AdminLTE gestiona gran parte de esto, pero estos
   ajustes mejoran la experiencia en nuestro tema. */
.sidebar-mini.sidebar-collapse .main-sidebar {
    width: 80px !important;
}
.sidebar-mini.sidebar-collapse .content-wrapper,
.sidebar-mini.sidebar-collapse .main-footer,
.sidebar-mini.sidebar-collapse .main-header {
    margin-left: 80px !important;
}
.empty-cart i {
    font-size: 3rem;
    margin-bottom: 0.5rem;
    color: var(--primary-color);
}

/* Quick action buttons en POS */
.quick-action-card {
    border: 1px solid var(--card-border);
    border-radius: 0.5rem;
    background-color: var(--card-bg);
    padding: 1rem;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    cursor: pointer;
    transition: box-shadow 0.2s ease;
}
.quick-action-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.quick-action-card i {
    font-size: 1.5rem;
    color: var(--primary-color);
}

/* KPI info boxes para estadísticas */
.info-box {
    display: flex;
    align-items: center;
    padding: 1rem;
    border-radius: 0.5rem;
    background-color: var(--card-bg);
    border: 1px solid var(--card-border);
    min-height: 100px;
}
.info-box .info-box-icon {
    font-size: 2.5rem;
    margin-right: 1rem;
    color: var(--primary-color);
}
.info-box .info-box-content h4 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
}
.info-box .info-box-content p {
    margin: 0;
    font-size: 0.95rem;
    color: var(--text-muted);
}
