/* ============================================================================
   AURORA - Tema visual de HairDress (violeta profundo + oro)
   Se carga despues del core de la plantilla para sobreescribir colores.
   Paleta:
     Violeta profundo : #3B1D5E
     Violeta          : #6C2FB0
     Violeta claro    : #8A4FC7
     Oro              : #C9A227
     Oro claro        : #E3C04A
     Fondo            : #FAF7FD
   ============================================================================ */

:root {
    --aurora-deep: #3B1D5E;
    --aurora-purple: #6C2FB0;
    --aurora-purple-light: #8A4FC7;
    --aurora-gold: #C9A227;
    --aurora-gold-light: #E3C04A;
    --aurora-bg: #FAF7FD;
    --aurora-surface: #FFFFFF;
    --aurora-line: #ECE3F5;
    --bs-primary: #6C2FB0;
    --bs-primary-rgb: 108, 47, 176;
}

body {
    background-color: var(--aurora-bg) !important;
    font-family: 'Inter', 'Public Sans', system-ui, sans-serif;
}

h1, h2, h3, .aurora-serif {
    font-family: 'Playfair Display', Georgia, serif;
}

/* Titulo de cada pantalla (toolbar superior): sans moderna, tamaño contenido */
#exdtoolbar .navbar-brand {
    font-family: 'Inter', 'Public Sans', system-ui, sans-serif;
    font-weight: 600;
    font-size: 1.1rem;
    letter-spacing: 0.3px;
}

/* ===== Menu lateral (violeta profundo) ===== */
.bg-menu-theme {
    background-color: var(--aurora-deep) !important;
    color: #CBB6E6 !important;
}

.bg-menu-theme .menu-link,
.bg-menu-theme .menu-toggle,
.bg-menu-theme .menu-icon {
    color: #CBB6E6 !important;
}

.bg-menu-theme .menu-item.active > .menu-link,
.bg-menu-theme .menu-item .menu-link.active {
    background-color: rgba(201, 162, 39, 0.18) !important;
    color: #FFFFFF !important;
}

    .bg-menu-theme .menu-item.active > .menu-link .menu-icon,
    .bg-menu-theme .menu-item .menu-link.active .menu-icon {
        color: var(--aurora-gold-light) !important;
    }

.bg-menu-theme .menu-link:hover {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: #FFFFFF !important;
}

.bg-menu-theme .menu-sub .menu-link {
    color: #B49DD6 !important;
}

/* Submenus: misma separacion icono-texto que los menus principales
   (la plantilla la anula con margin-right: 0) */
.layout-wrapper:not(.layout-horizontal) .menu-vertical .menu-sub .menu-icon {
    margin-right: 0.5rem !important;
}

.bg-menu-theme .app-brand-text {
    color: #FFFFFF !important;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.35rem !important;
}

.bg-menu-theme .menu-inner-shadow {
    background: linear-gradient(var(--aurora-deep) 41%, rgba(59, 29, 94, 0.11) 95%, rgba(59, 29, 94, 0)) !important;
}

/* ===== Botones primarios ===== */
.btn-primary {
    background-color: var(--aurora-purple) !important;
    border-color: var(--aurora-purple) !important;
}

    .btn-primary:hover, .btn-primary:focus, .btn-primary:active {
        background-color: var(--aurora-deep) !important;
        border-color: var(--aurora-deep) !important;
    }

/* Boton dorado (acciones destacadas: COBRAR, etc.) */
.btn-aurora-gold {
    background: linear-gradient(135deg, var(--aurora-gold), var(--aurora-gold-light)) !important;
    color: var(--aurora-deep) !important;
    font-weight: 700 !important;
    border: none !important;
    letter-spacing: 0.4px;
}

    .btn-aurora-gold:hover {
        filter: brightness(1.06);
        color: var(--aurora-deep) !important;
    }

/* ===== Espaciado global del contenido ===== */
/* Aire entre la barra superior y el contenido de cada pantalla.
   (la toolbar usa margin-top:-70px y sin esto el contenido queda pegado
   e incluso se solapa: p.ej. el primer combo de Tablas Auxiliares) */
#PageStart > div.row:first-of-type {
    margin-top: 1.75rem;
}

/* ===== Campos de entrada: altura uniforme ===== */
/* Iguala la altura de cajas numericas, de texto, combos y fechas
   (excluye areas de texto multilinea) */
.e-outline.e-input-group:not(.e-multi-line-input):not(.e-textArea),
.e-outline.e-input-group.e-control-wrapper:not(.e-multi-line-input):not(.e-textArea) {
    height: 40px;
}

/* ===== Tarjetas y superficies ===== */
.card {
    border-radius: 14px !important;
    border: 1px solid var(--aurora-line) !important;
    box-shadow: 0 4px 18px rgba(59, 29, 94, 0.06) !important;
}

.card-header h5, .card-header .card-title {
    color: var(--aurora-deep);
}

/* ===== Enlaces y acentos ===== */
a {
    color: var(--aurora-purple);
}

    a:hover {
        color: var(--aurora-deep);
    }

.text-primary {
    color: var(--aurora-purple) !important;
}

/* ===== Navbar superior ===== */
.bg-navbar-theme {
    background-color: var(--aurora-surface) !important;
}

.layout-navbar {
    box-shadow: 0 2px 10px rgba(59, 29, 94, 0.06) !important;
}

/* ===== Badges / pills ===== */
.badge.bg-aurora {
    background-color: #EFE6FB !important;
    color: var(--aurora-purple) !important;
    font-weight: 600;
}

/* ===== TPV (pantalla tactil) ===== */
.tpv-tile {
    background: var(--aurora-surface);
    border: 1px solid var(--aurora-line);
    border-radius: 13px;
    padding: 14px 12px;
    min-height: 84px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    font-weight: 600;
    color: var(--aurora-deep);
    transition: border-color .15s ease, transform .1s ease, box-shadow .15s ease;
    user-select: none;
}

    .tpv-tile:hover {
        border-color: var(--aurora-gold);
        box-shadow: 0 4px 14px rgba(201, 162, 39, 0.18);
    }

    .tpv-tile:active {
        transform: scale(0.97);
    }

    .tpv-tile small {
        color: var(--aurora-purple-light);
        font-weight: 600;
    }

/* Ficha de SUBGRUPO en el TPV: se distingue de los productos por el fondo
   degradado violeta, el borde y el icono de carpeta */
.tpv-group-tile {
    background: linear-gradient(135deg, #F3EBFB 0%, #EADDF8 100%);
    border: 1px solid var(--aurora-purple-light);
    color: var(--aurora-purple, #6C2FB0);
}

    .tpv-group-tile:hover {
        border-color: var(--aurora-purple, #6C2FB0);
        box-shadow: 0 4px 14px rgba(108, 47, 176, 0.22);
    }

    .tpv-group-tile small {
        color: var(--aurora-purple-light);
        font-weight: 500;
    }

/* Ficha "volver al grupo padre": mas neutra que las de subgrupo */
.tpv-group-up {
    background: #F4F2F7;
    border-style: dashed;
    color: var(--aurora-deep);
}

/* Foto del vendedor en cada linea del ticket: clicable, abre el selector de empleados */
.tpv-line-seller {
    flex: 0 0 auto;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    line-height: 0;
    transition: transform .1s ease;
}

    .tpv-line-seller:hover {
        transform: scale(1.12);
    }

    .tpv-line-seller img,
    .tpv-line-seller .emp-photo-grid-empty {
        border-color: var(--aurora-gold, #C9A227);
    }

/* Caja de importe clicable (precio de linea, entregado): abre el teclado numerico */
.tpv-amount-btn {
    min-width: 84px;
    padding: 6px 10px;
    border: 1px solid var(--aurora-line);
    border-radius: 8px;
    background: #fff;
    text-align: right;
    font-weight: 600;
    color: var(--aurora-deep);
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: border-color .12s ease, box-shadow .12s ease;
}

    .tpv-amount-btn:hover {
        border-color: var(--aurora-gold, #C9A227);
        box-shadow: 0 2px 8px rgba(201, 162, 39, 0.18);
    }

    .tpv-amount-btn.disabled {
        background: #F4F2F7;
        color: var(--aurora-purple-light);
        cursor: default;
        pointer-events: none;
    }

.tpv-amount-payment {
    font-size: 1.15rem;
    padding: 8px 12px;
}

/* Campo de importe "grande" de los formularios (apertura/cierre de caja):
   mismo comportamiento que TPV/Gastos, un toque abre el teclado numerico */
.tpv-amount-field {
    width: 100%;
    font-size: 1.1rem;
    padding: 10px 14px;
}

    .tpv-amount-field:focus-visible {
        outline: 2px solid var(--aurora-gold, #C9A227);
        outline-offset: 1px;
    }

/* Primer bloque de contenido de Clientes: aire para no solaparse con la barra superior */
.cli-search-row {
    margin-top: 28px;
}

/* Las tarjetas hacen scroll dentro de su contenedor: el buscador nunca se pierde */
.cli-grid-scroll {
    max-height: calc(100vh - 310px);
    overflow-y: auto;
    padding-right: 4px;
}

/* Checkbox de solo lectura en grids (columna Activo): visible sin atenuar */
.grid-check:disabled {
    opacity: 1;
    pointer-events: none;
}

    .grid-check:checked {
        background-color: var(--aurora-purple, #6C2FB0);
        border-color: var(--aurora-purple, #6C2FB0);
    }

/* Valor vacio de un campo-boton numerico (muestra la etiqueta en gris) */
.tpv-amount-empty {
    color: #A9A0BC;
    font-weight: 500;
}

/* ===== Teclado numerico de importes (AmountPadPopUp) ===== */
/* Contenedor con foco para capturar el teclado fisico, sin marco visible */
.amount-pad-focus {
    outline: none;
}

.amount-pad-display {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    font-weight: 700;
    color: var(--aurora-deep);
    background: #F6F1FB;
    border-radius: 10px;
    padding: 8px 16px;
    text-align: right;
    margin-bottom: 12px;
    min-height: 56px;
}

.amount-pad-placeholder {
    color: var(--aurora-purple-light);
    opacity: .55;
}

.amount-pad-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.amount-pad-btn {
    height: 58px;
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--aurora-deep);
    background: #FBF9FE;
    border: 1px solid var(--aurora-line);
    border-radius: 10px;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: transform .08s ease, border-color .12s ease;
}

    .amount-pad-btn:hover {
        border-color: var(--aurora-purple-light);
    }

    .amount-pad-btn:active {
        transform: scale(0.94);
        background: #F2ECF9;
    }

.amount-pad-clear {
    min-width: 64px;
    font-weight: 700;
}

.tpv-ticket {
    background: var(--aurora-surface);
    border-left: 1px solid var(--aurora-line);
}

.tpv-total {
    font-size: 2.1rem;
    font-weight: 700;
    color: var(--aurora-deep);
}

.tpv-qty-btn {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #F2ECF9;
    color: var(--aurora-purple);
    border: none;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

    .tpv-qty-btn:active {
        transform: scale(0.94);
    }

.tpv-line {
    border-bottom: 1px solid #F0EAF6;
    padding: 8px 0;
}

.tpv-pay-btn {
    flex: 1;
    padding: 12px;
    border-radius: 10px;
    font-weight: 600;
    border: 1.5px solid transparent;
    background: #F6F1FB;
    color: #4A3560;
    cursor: pointer;
    font-size: 1rem;
}

    .tpv-pay-btn.selected {
        background: var(--aurora-deep);
        color: #fff;
        border-color: var(--aurora-deep);
    }

.tpv-cobrar {
    width: 100%;
    padding: 16px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.25rem;
    text-align: center;
    cursor: pointer;
    letter-spacing: 0.5px;
    background: linear-gradient(135deg, var(--aurora-gold), var(--aurora-gold-light));
    color: var(--aurora-deep);
    border: none;
}

    .tpv-cobrar:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

/* El cambio a devolver debe destacar: es el dato que el empleado lee en voz alta al cliente */
.tpv-change {
    display: inline-block;
    font-size: 1.9rem;
    font-weight: 800;
    color: var(--aurora-deep);
    background: #FFF7E0;
    border: 2px solid var(--aurora-gold, #C9A227);
    border-radius: 10px;
    padding: 2px 14px;
    line-height: 1.3;
}

/* ===== Clientes (CRM) ===== */
.cli-search .e-input {
    font-size: 1.1rem !important;
}

.cli-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
}

.cli-card {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fff;
    border: 1px solid var(--aurora-line);
    border-radius: 12px;
    padding: 12px 14px;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: border-color .12s ease, box-shadow .12s ease;
}

    .cli-card:hover {
        border-color: var(--aurora-gold, #C9A227);
        box-shadow: 0 2px 10px rgba(201, 162, 39, 0.18);
    }

    .cli-card.cli-inactive {
        opacity: .55;
    }

.cli-avatar {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 50%;
    background: #F2ECF9;
    color: var(--aurora-purple);
    font-weight: 700;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cli-avatar-lg {
    width: 56px;
    height: 56px;
    min-width: 56px;
    font-size: 1.5rem;
}

.cli-card-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.cli-card-name {
    font-weight: 600;
    color: var(--aurora-deep);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cli-allergy-dot {
    color: #C62828;
    font-size: 1.05rem;
}

.cli-allergy-badge {
    background: #FBEAEA;
    color: #C62828;
    border-radius: 999px;
    padding: 4px 14px;
    font-size: .85rem;
    font-weight: 600;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Pestañas de la ficha */
.cli-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.cli-tab {
    border: 1px solid var(--aurora-line);
    background: #fff;
    border-radius: 999px;
    padding: 8px 18px;
    font-weight: 600;
    color: var(--aurora-purple);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

    .cli-tab.active {
        background: var(--aurora-deep, #3B1D5E);
        border-color: var(--aurora-deep, #3B1D5E);
        color: #fff;
    }

/* KPIs del historial (solo admin) */
.cli-kpi {
    background: #fff;
    border: 1px solid var(--aurora-line);
    border-radius: 12px;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    height: 100%;
}

    .cli-kpi small {
        text-transform: uppercase;
        color: #8a8199;
        font-weight: 600;
        letter-spacing: .04em;
    }

    .cli-kpi b {
        font-size: 1.4rem;
        color: var(--aurora-deep);
        font-variant-numeric: tabular-nums;
    }

.cli-kpi-gold {
    background: #FFF7E0;
    border-color: var(--aurora-gold, #C9A227);
}

/* Ficha tecnica: tarjetas del historico */
.tech-form {
    border: 1px dashed var(--aurora-gold, #C9A227);
    border-radius: 12px;
    padding: 16px;
    background: #FFFDF6;
}

/* Lista de registros con scroll propio: el formulario de alta queda siempre a la vista */
.tech-list {
    max-height: 48vh;
    overflow-y: auto;
    padding-right: 4px;
}

.tech-card {
    border: 1px solid var(--aurora-line);
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 10px;
    background: #fff;
}

    /* El ultimo registro destaca en violeta claro (distinto del formulario, que va crema) */
    .tech-card.tech-latest {
        border-color: var(--aurora-gold, #C9A227);
        background: #F6F1FB;
    }

.tech-card-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.tech-date {
    font-weight: 700;
    color: var(--aurora-deep);
}

/* Popup de cliente del TPV */
/* Lista mas contenida (36vh) para que el dialogo completo quepa en pantalla
   sin cortarse por arriba en tablets y portatiles */
.cli-popup-list {
    max-height: 36vh;
    overflow-y: auto;
}

.cli-popup-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 6px;
    border-bottom: 1px solid var(--aurora-line);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

    .cli-popup-row:hover {
        background: #F6F1FB;
    }

/* Pildora de cliente asignado en el TPV */
.tpv-customer-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #F2ECF9;
    color: var(--aurora-deep);
    font-weight: 600;
    border: 1px solid var(--aurora-purple-light, #C9B8E8);
    border-radius: 999px;
    padding: 6px 8px 6px 14px;
    max-width: 260px;
}

    .tpv-customer-pill .tpv-customer-remove {
        border: none;
        background: #E3D9F2;
        color: var(--aurora-deep);
        border-radius: 50%;
        width: 24px;
        height: 24px;
        line-height: 1;
        font-size: 1rem;
        cursor: pointer;
    }

/* ===== Clasificacion por estrellas (Proveedores) ===== */
.rating-stars {
    display: inline-flex;
    gap: 4px;
    font-size: 1.4rem;
    color: var(--aurora-gold, #C9A227);
    user-select: none;
}

    .rating-stars .bi {
        cursor: pointer;
        transition: transform .1s ease;
    }

    .rating-stars:not(.rating-readonly):not(.rating-stars-grid) .bi:hover {
        transform: scale(1.15);
    }

    .rating-stars.rating-readonly .bi,
    .rating-stars.rating-stars-grid .bi {
        cursor: default;
        pointer-events: none;
    }

.rating-stars-grid {
    font-size: 0.95rem;
    gap: 2px;
}

/* ===== Ver arqueo (popup de cierre, solo admin) ===== */
.arqueo-lines {
    font-variant-numeric: tabular-nums;
}

.arqueo-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 2px 0;
}

    .arqueo-row.arqueo-total b {
        color: var(--aurora-deep);
    }

/* ===== Camara web (CameraCapturePopUp) ===== */
.camera-frame {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #1c1826;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .camera-frame video,
    .camera-frame img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

/* ===== Foto de empleado ===== */
.emp-photo {
    width: 120px;
    height: 120px;
    max-width: 100%;      /* nunca desborda su columna aunque la imagen sea mayor */
    border-radius: 50%;
    object-fit: cover;    /* rellena el círculo recortando, sin deformar */
    border: 3px solid var(--aurora-line);
    box-shadow: 0 4px 14px rgba(59, 29, 94, 0.12);
    background: #F6F1FB;
}

.emp-photo-empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--aurora-purple-light);
    font-size: 3rem;
}

/* Miniatura de foto en el grid de empleados */
.emp-photo-grid {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--aurora-line);
    background: #F6F1FB;
    vertical-align: middle;
}

.emp-photo-grid-empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--aurora-purple-light);
    font-size: 1.1rem;
}

/* ===== Selector de empleados (EmployeeSelectorPopUp) ===== */
.emp-selector-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 14px;
    padding: 6px 2px;
    max-height: 60vh;
    overflow-y: auto;
}

.emp-selector-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 16px 8px 14px;
    border: 2px solid transparent;
    border-radius: 14px;
    background: #FBF9FE;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.emp-selector-card:hover,
.emp-selector-card:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(59, 29, 94, 0.16);
    border-color: var(--aurora-purple-light);
    outline: none;
}

.emp-selector-card:active {
    transform: scale(0.97);
}

.emp-selector-card img,
.emp-selector-noPhoto {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--aurora-line);
    background: #F6F1FB;
}

.emp-selector-noPhoto {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--aurora-purple-light);
    font-size: 2.6rem;
}

.emp-selector-name {
    font-weight: 600;
    color: var(--aurora-deep);
    text-align: center;
    font-size: .92rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

/* Empleado seleccionado actualmente: anillo dorado */
.emp-selector-selected {
    border-color: var(--aurora-gold, #C9A227);
    background: #FDFAF1;
}

.emp-selector-selected img,
.emp-selector-selected .emp-selector-noPhoto {
    border-color: var(--aurora-gold, #C9A227);
}

/* ===== Recuento de metálico (CashCountPopUp) ===== */
/* Boton que abre el recuento, junto al campo Metálico del cierre */
.cash-count-open {
    height: 40px;
    min-width: 46px;
    font-size: 1.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.cash-count-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.cash-count-total {
    flex: 1 1 auto;
    min-width: 160px;
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    font-weight: 700;
    color: var(--aurora-deep);
    background: #F6F1FB;
    border-radius: 10px;
    padding: 4px 16px;
    text-align: right;
}

.cash-count-step .btn {
    min-width: 56px;
    font-weight: 700;
}

.cash-count-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
    gap: 10px;
    max-height: 52vh;
    overflow-y: auto;
    padding: 2px;
}

.cash-count-card {
    border: 2px solid transparent;
    border-radius: 12px;
    background: #FBF9FE;
    padding: 8px 8px 6px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    transition: border-color .12s ease, box-shadow .12s ease;
}

.cash-count-active {
    border-color: var(--aurora-gold, #C9A227);
    background: #FDFAF1;
}

.cash-count-img {
    position: relative;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    text-align: center;
    transition: transform .1s ease;
}

.cash-count-img:hover {
    transform: translateY(-2px);
}

.cash-count-img:active {
    transform: scale(0.95);
}

.cash-count-img img {
    max-width: 100%;
    height: 64px;
    object-fit: contain;
    pointer-events: none;
}

.cash-count-badge {
    position: absolute;
    top: -6px;
    right: -2px;
    min-width: 26px;
    height: 26px;
    border-radius: 13px;
    background: var(--aurora-purple, #6C2FB0);
    color: #fff;
    font-weight: 700;
    font-size: .85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 7px;
    box-shadow: 0 2px 8px rgba(59, 29, 94, 0.35);
}

.cash-count-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.cash-count-value {
    font-size: .82rem;
    font-weight: 600;
    color: var(--aurora-deep);
}

.cash-count-minus {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1px solid var(--aurora-line);
    background: #fff;
    color: #B02F2F;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.cash-count-minus:disabled {
    opacity: .35;
    cursor: default;
}

.cash-count-minus:not(:disabled):hover {
    border-color: #B02F2F;
    background: #FDF3F3;
}

/* Bloque "quien realiza la accion" (foto clicable que abre el selector) */
.cash-actor {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 8px 14px 8px 8px;
    border: 1px dashed var(--aurora-line);
    border-radius: 60px;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: box-shadow .12s ease, border-color .12s ease;
}

.cash-actor:hover {
    border-color: var(--aurora-gold, #C9A227);
    box-shadow: 0 4px 14px rgba(59, 29, 94, 0.12);
}

.cash-actor img,
.cash-actor .cash-actor-noPhoto {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--aurora-gold, #C9A227);
    background: #F6F1FB;
}

.cash-actor .cash-actor-noPhoto {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--aurora-purple-light);
    font-size: 1.6rem;
}

/* ===== Login ===== */
.aurora-login-bg {
    background: linear-gradient(150deg, var(--aurora-deep) 0%, #2A1640 60%, #1D0F2E 100%);
    min-height: 100vh;
}

.aurora-login-card {
    background: #FFFFFF;
    border-radius: 18px;
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.35);
    padding: 2.4rem;
    max-width: 460px;
    width: 100%;
}

.aurora-login-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 700;
    color: var(--aurora-deep);
    text-align: center;
}

.aurora-code-input input {
    text-align: center !important;
    font-size: 1.6rem !important;
    letter-spacing: 10px !important;
    font-weight: 700 !important;
}

/* ===== Home / dashboard ===== */
.aurora-hero {
    background: linear-gradient(135deg, var(--aurora-deep), var(--aurora-purple));
    border-radius: 18px;
    color: #fff;
    padding: 2rem 2.4rem;
}

    .aurora-hero h2 {
        color: #fff;
        font-family: 'Playfair Display', Georgia, serif;
    }

    .aurora-hero .gold {
        color: var(--aurora-gold-light);
    }

    /* Los badges del hero (caja, sin fichar) pueden ser largos en movil:
       Bootstrap los trae con nowrap y se salen; aqui se permite el salto de linea */
    .aurora-hero .badge {
        white-space: normal;
        text-align: start;
        line-height: 1.4;
    }

.aurora-quick {
    border-radius: 14px;
    border: 1px solid var(--aurora-line);
    background: #fff;
    padding: 1.3rem;
    display: flex;
    align-items: center;
    gap: 14px;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease;
    text-decoration: none;
    color: var(--aurora-deep);
}

    .aurora-quick:hover {
        border-color: var(--aurora-gold);
        box-shadow: 0 4px 16px rgba(59, 29, 94, 0.10);
        color: var(--aurora-deep);
    }

    .aurora-quick .icon {
        width: 46px;
        height: 46px;
        border-radius: 11px;
        background: #F2ECF9;
        color: var(--aurora-purple);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.4rem;
        flex-shrink: 0;
    }

    .aurora-quick b {
        display: block;
    }

    .aurora-quick small {
        color: #8a7a9e;
    }

/* ===== Agenda de citas ===== */
.agenda-banner {
    background: #FBE7E7;
    border: 1px solid #E7B3B0;
    color: #B3403A;
    border-radius: 10px;
    padding: 8px 16px;
    margin-bottom: 12px;
    font-weight: 600;
}

.agenda-week-emp { margin-right: 4px; }

/* Tarjetas de cita por estado (CssClass del Scheduler) */
.agenda-card .e-schedule .e-appointment.apt-reserved {
    background: #6C2FB0;
    border-color: #3B1D5E;
}

.agenda-card .e-schedule .e-appointment.apt-finished {
    background: #7BA98A;
    border-color: #2E7D43;
}

.agenda-card .e-schedule .e-appointment.apt-noshow {
    background: #C96A64;
    border-color: #B3403A;
    text-decoration: line-through;
}

.agenda-card .e-schedule .e-appointment { border-radius: 6px; }

/* Chips de servicios del popup de cita */
.apt-services {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-height: 30vh;
    overflow-y: auto;
    padding: 2px;
}

.apt-service-chip {
    border: 1.5px solid #D9CBEE;
    background: #fff;
    color: #3B1D5E;
    border-radius: 99px;
    padding: 6px 14px;
    font-size: .9rem;
    cursor: pointer;
    transition: all .12s ease;
}

.apt-service-chip:hover { border-color: #8A4FC7; }

.apt-service-chip.selected {
    background: #6C2FB0;
    border-color: #3B1D5E;
    color: #fff;
    font-weight: 600;
}

.apt-service-chip:disabled { opacity: .6; cursor: default; }

/* Badges de estado de cita */
.apt-badge {
    display: inline-block;
    padding: 2px 12px;
    border-radius: 99px;
    font-size: .8rem;
    font-weight: 600;
}

.apt-badge-reserved { background: #EDE3FA; color: #6C2FB0; }
.apt-badge-finished { background: #E3F2E6; color: #2E7D43; }
.apt-badge-noshow { background: #FBE7E7; color: #B3403A; }

/* Badges de estado de pedido a proveedor (pantalla Pedidos), sobre la pildora .apt-badge */
.por-badge-draft { background: #EEF0F3; color: #5F6B7A; }
.por-badge-sent { background: #E3F2E6; color: #2E7D43; }
.por-badge-partial { background: #FBF3D6; color: #8A6D0B; }
.por-badge-received { background: #EDE3FA; color: #6C2FB0; }
.por-badge-closed { background: #DCE6F2; color: #2B4C7E; }
.por-badge-cancelled { background: #FBE7E7; color: #B3403A; }

/* Cantidades y precio de la linea de pedido: caja clicable dentro de la celda (abre el teclado
   numerico, como el precio de linea del TPV), compacta para la altura de la fila del grid */
.por-cell-btn {
    min-width: 0;
    width: 100%;
    padding: 3px 8px;
    font-size: .9rem;
}

/* Tabla del horario semanal y lista de dias especiales (popup ajustes) */
.apt-week-table input[type="time"] { min-width: 92px; }

.apt-exception-list {
    max-height: 32vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.apt-exception-row {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #FAF7FD;
    border: 1px solid #E6DEF2;
    border-radius: 8px;
    padding: 6px 12px;
}

/* Cuerpo del popup de ajustes de la agenda: scroll propio para que el popup
   nunca desborde la pantalla (horario semanal + lista de dias especiales) */
.apt-settings-body {
    max-height: 62vh;
    overflow-y: auto;
    padding-right: 4px;
}

/* Fecha fija de la cita nueva (alineada con los inputs de hora) */
.apt-date-fixed {
    background: #F3ECFB;
    color: #3B1D5E;
    font-weight: 600;
    border-color: #E6DEF2;
    text-transform: capitalize;
}

/* Chip de acceso rapido (top vendidos) */
.apt-service-chip.apt-chip-top {
    border-style: dashed;
    background: #FFFDF6;
}

.apt-service-chip.apt-chip-top .bi-star-fill { color: #C9A227; font-size: .75em; }

/* Selector de servicios estilo TPV */
.apt-picker-groups {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.apt-picker-list {
    max-height: 42vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-right: 2px;
}

.apt-picker-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    text-align: left;
    background: #fff;
    border: 1.5px solid #E6DEF2;
    border-radius: 10px;
    padding: 9px 14px;
    color: #2A2233;
    cursor: pointer;
    transition: all .12s ease;
}

.apt-picker-item:hover { border-color: #8A4FC7; }

.apt-picker-item.selected {
    background: #EDE3FA;
    border-color: #6C2FB0;
    font-weight: 600;
}

.apt-picker-item .apt-picker-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    color: #6E6579;
}

/* Cabecera de columna de empleado (vista Dia): foto cuadrada + nombre */
.agenda-res-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 4px 6px;
    min-width: 0;
}

.agenda-res-header img,
.agenda-res-header .agenda-res-noPhoto {
    width: 36px;
    height: 36px;
    border-radius: 9px;          /* cuadrada con esquinas suaves, como pidio Fran */
    object-fit: cover;
    flex: 0 0 36px;
    border: 2px solid #E6DEF2;
}

.agenda-res-header .agenda-res-noPhoto {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F3ECFB;
    color: #8A4FC7;
    font-size: 1.1rem;
}

.agenda-res-header .agenda-res-name {
    font-weight: 600;
    color: #3B1D5E;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;     /* si no cabe, el nombre se recorta (la foto manda) */
    min-width: 0;
}

/* Que la celda de recurso deje sitio a la cabecera nueva */
.agenda-card .e-schedule .e-resource-cells { padding: 2px 4px; }

/* Vista Dia: fotos de empleado mas grandes (peticion de Fran) */
.agenda-res-header img,
.agenda-res-header .agenda-res-noPhoto {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 11px;
}

.agenda-res-header .agenda-res-noPhoto { font-size: 1.5rem; }

.agenda-res-header .agenda-res-name { font-size: .95rem; }

/* Vista Dia: fuera la fila que repite la fecha ("vie 28") bajo cada empleado
   (la fecha ya esta en la cabecera, ahora con el dia de la semana) */
.agenda-day .e-date-header-wrap tr:has(.e-header-cells) { display: none; }

/* La sangria IZQUIERDA (encima de la columna de horas) es una tabla aparte y debe
   medir lo mismo que la cabecera: se le oculta tambien su fila de fecha y se iguala
   la altura de la celda de recurso en los dos lados (la foto de 48px estira la de
   la derecha). Sin esto las horas quedaban descolgadas ~27px de la rejilla. */
.agenda-day .e-left-indent-wrap tr:has(.e-header-cells) { display: none; }
.agenda-day .e-left-indent-wrap .e-resource-cells,
.agenda-day .e-date-header-wrap .e-resource-cells { height: 74px; }

/* Fecha de la cabecera con el dia de la semana en mayusculas */
.agenda-date-range { color: #3B1D5E; }
.agenda-date-range b { color: #6C2FB0; letter-spacing: .04em; }

/* Coincidencias de cliente EN VIVO bajo el telefono de la cita */
.apt-cli-matches {
    margin-top: 6px;
    border: 1px solid #E6DEF2;
    border-radius: 10px;
    overflow: hidden;
    max-height: 22vh;
    overflow-y: auto;
    background: #fff;
}

.apt-cli-matches .cli-popup-row { border-radius: 0; }

/* ===== Tipo de producto: SERVICIO / PRODUCTO (segmentado con deslizador) ===== */
.prd-type-toggle {
    position: relative;
    display: inline-flex;
    background: #F3ECFB;
    border: 1.5px solid #E6DEF2;
    border-radius: 99px;
    padding: 3px;
    gap: 0;
}

.prd-type-toggle button {
    position: relative;
    z-index: 1;
    border: 0;
    background: transparent;
    color: #6E6579;
    font-weight: 600;
    padding: 7px 20px;
    border-radius: 99px;
    cursor: pointer;
    min-width: 130px;
    transition: color .18s ease;
}

.prd-type-toggle button.active { color: #fff; }

.prd-type-slider {
    position: absolute;
    z-index: 0;
    top: 3px;
    bottom: 3px;
    left: 3px;
    width: calc(50% - 3px);
    border-radius: 99px;
    background: linear-gradient(135deg, #6C2FB0, #8A4FC7);
    transition: transform .18s ease, background .18s ease;
}

.prd-type-toggle.is-goods .prd-type-slider {
    transform: translateX(100%);
    background: linear-gradient(135deg, #A07A1F, #C9A227);
}

.prd-badge-goods { background: #FFF4D6; color: #8A6D14; }

/* KPI en rojo (plantones del cliente) */
.cli-kpi-red { border-left: 4px solid #B3403A; }
.cli-kpi-red b { color: #B3403A; }

/* ===== Pantalla de inicio: citas de hoy + cumpleaños ===== */
.home-card { height: 100%; }

.home-scroll {
    max-height: 42vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.home-apt,
.home-birthday {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #FAF7FD;
    border: 1px solid #E6DEF2;
    border-radius: 10px;
    padding: 7px 12px;
    min-width: 0;
}

.home-apt-time {
    font-weight: 700;
    color: #6C2FB0;
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
}

.home-apt-body {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.home-apt-emp {
    flex: 0 0 auto;
    color: #6E6579;
    font-size: .85rem;
}

.home-apt-done { opacity: .65; }

.home-birthday .bi-cake2 { color: #C9A227; flex: 0 0 auto; }

.home-birthday-when {
    flex: 0 0 auto;
    color: #6E6579;
    font-size: .85rem;
    font-weight: 600;
}

.home-birthday-when.is-today { color: #C9A227; }

/* Badges DENTRO de grids: mas cuadrados y estrechos que la pildora de los popups,
   para que no se solapen con la linea de la fila */
.grid-badge {
    border-radius: 5px;
    padding: 1px 8px;
    font-size: .74rem;
    line-height: 1.35;
    letter-spacing: .01em;
}

/* ===== Vacaciones y ausencias ===== */
.abs-year,
.abs-month {
    color: #3B1D5E;
    min-width: 64px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* Calendario mensual del administrador: un empleado por fila, un punto por ausencia */
.abs-cal {
    border-collapse: collapse;
    width: 100%;
    font-size: .8rem;
}

.abs-cal th,
.abs-cal td {
    border: 1px solid #E6DEF2;
    text-align: center;
    padding: 3px 0;
    min-width: 26px;
}

.abs-cal th { background: #F3ECFB; color: #3B1D5E; font-weight: 600; }

.abs-cal .abs-cal-name {
    text-align: left;
    padding: 3px 10px;
    font-weight: 600;
    color: #3B1D5E;
    white-space: nowrap;
    min-width: 110px;
    background: #FAF7FD;
}

.abs-cal .abs-cal-weekend { background: #F5F2F9; }

.abs-cal-dot {
    display: inline-block;
    width: 16px;
    height: 16px;
    border-radius: 5px;
    vertical-align: middle;
}

/* Pendiente de aprobar: mismo color pero hueco (borde) */
.abs-cal-dot.is-pending {
    background: transparent !important;
    border: 2.5px dashed #8A4FC7;
}

/* Totales del año */
.abs-totals th { font-size: .8rem; }

/* Cabecera de la agenda cuando el empleado esta AUSENTE ese dia */
.agenda-res-header.is-absent img,
.agenda-res-header.is-absent .agenda-res-noPhoto {
    filter: grayscale(1);
    opacity: .55;
}

.agenda-res-header.is-absent .agenda-res-name { color: #B3403A; }

/* ===== Tickets pendientes de cobro (aparcados en el TPV) ===== */

/* Boton "Dejar pendiente" bajo el COBRAR: secundario, mismo ancho */
.tpv-park {
    width: 100%;
    margin-top: 8px;
    padding: 10px;
    border-radius: 12px;
    border: 1.5px solid #D9CBEE;
    background: #fff;
    color: #6C2FB0;
    font-weight: 600;
    cursor: pointer;
    transition: all .12s ease;
}

.tpv-park:hover:not(:disabled) { border-color: #6C2FB0; background: #FAF7FD; }

.tpv-park:disabled { opacity: .5; cursor: default; }

/* Boton de la bandeja de pendientes (cabecera del TPV) */
.tpv-parked-btn { border-style: dashed; }

/* Lista del popup de pendientes */
.pkd-list {
    max-height: 48vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pkd-row {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #FAF7FD;
    border: 1px solid #E6DEF2;
    border-radius: 10px;
    padding: 8px 12px;
    min-width: 0;
}

.pkd-time {
    font-weight: 700;
    color: #6C2FB0;
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
}

.pkd-body {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pkd-total { flex: 0 0 auto; color: #3B1D5E; }

/* ===== Modulo de FICHAJE ===== */
.tmc-clock {
    font-size: 1.6rem;
    color: #6C2FB0;
    font-variant-numeric: tabular-nums;
}

.tmc-grid .emp-selector-card { min-width: 150px; }

.tmc-panel { max-width: 560px; margin: 0 auto; }

/* Botones grandes ENTRADA / SALIDA */
.tmc-big-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    min-width: 190px;
    padding: 26px 30px;
    border-radius: 16px;
    border: 2px solid transparent;
    font-size: 1.15rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform .1s ease;
}

.tmc-big-btn i { font-size: 2.1rem; }

.tmc-big-btn:active { transform: scale(.97); }

.tmc-big-btn.tmc-entry { background: linear-gradient(135deg, #2E7D43, #4CAF6D); color: #fff; }

.tmc-big-btn.tmc-exit { background: linear-gradient(135deg, #8A2F2A, #C96A64); color: #fff; }

.tmc-big-btn.tmc-secondary {
    background: #fff;
    border-color: #E6DEF2;
    color: #6E6579;
}

/* Confirmacion tras fichar */
.tmc-done .tmc-done-icon { font-size: 3.4rem; color: #2E7D43; }

.tmc-done .tmc-done-type { color: #6E6579; margin-bottom: 0; }

.tmc-done .tmc-done-time {
    font-size: 2.6rem;
    font-weight: 700;
    color: #3B1D5E;
    font-variant-numeric: tabular-nums;
}

/* Jornada en Mis fichajes (E/S compactos) */
.tmc-journey { font-variant-numeric: tabular-nums; color: #3B1D5E; }

/* Banner de la cadena de integridad */
.tmc-chain {
    border-radius: 10px;
    padding: 8px 16px;
    margin-bottom: 14px;
    font-weight: 600;
}

.tmc-chain-ok { background: #E3F2E6; border: 1px solid #BFDcc7; color: #2E7D43; }

.tmc-chain-broken { background: #FBE7E7; border: 1px solid #E7B3B0; color: #B3403A; }

/* ============================================================================
   PROVEEDORES (pantalla rehecha 10-09-2026): lista sencilla + ficha con
   pestañas. La lista carga todos los proveedores y filtra en memoria.
   ============================================================================ */

/* ----- Filtro y conmutador de vista ----- */
.prv-filterbar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.prv-filterbox {
    flex: 1;
    min-width: 0;
}

.prv-listsub {
    font-size: 0.74rem;
    color: #8A8199;
    margin: 0 2px 9px;
}

/* ----- Lista de proveedores ----- */
.prv-list {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.prv-item {
    background: #fff;
    border: 1px solid var(--aurora-line, #ECE3F5);
    border-radius: 11px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

    .prv-item:hover {
        border-color: var(--aurora-purple-light, #8A4FC7);
    }

    .prv-item.on {
        border-color: var(--aurora-purple, #6C2FB0);
        background: #FBF8FE;
        box-shadow: inset 3px 0 0 var(--aurora-purple, #6C2FB0);
    }

    /* Proveedor de baja: se ve, pero apagado */
    .prv-item.off {
        opacity: .55;
    }

.prv-ava {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: #EFE6FA;
    color: var(--aurora-purple, #6C2FB0);
    font-weight: 700;
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.prv-ava-lg {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    font-size: 0.95rem;
    background: linear-gradient(135deg, var(--aurora-purple, #6C2FB0), var(--aurora-purple-light, #8A4FC7));
    color: #fff;
}

.prv-item-txt {
    flex: 1;
    min-width: 0;
}

    .prv-item-txt b {
        display: block;
        font-size: 0.84rem;
        color: #2A1640;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .prv-item-txt small {
        display: block;
        font-size: 0.72rem;
        color: #8A8199;
        margin-top: 1px;
    }

.prv-item-right {
    text-align: right;
    flex: 0 0 auto;
}

    .prv-item-right b {
        display: block;
        font-size: 0.8rem;
        color: #2A1640;
        font-variant-numeric: tabular-nums;
    }

    .prv-item-right small {
        font-size: 0.68rem;
        color: #8A8199;
    }

/* Punto de aviso de la lista */
.prv-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    margin-left: 5px;
}

.prv-dot-bad { background: #B3403A; }

.prv-dot-warn { background: var(--aurora-gold, #C9A227); }

.prv-dot-ok { background: #D8D2E2; }

/* ----- Cabecera de la ficha ----- */
.prv-dhead {
    display: flex;
    align-items: center;
    gap: 13px;
    flex-wrap: wrap;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--aurora-line, #ECE3F5);
    margin-bottom: 14px;
}

.prv-dhead-main {
    flex: 1;
    min-width: 220px;
}

    .prv-dhead-main h4 {
        font-family: 'Playfair Display', Georgia, serif;
        color: var(--aurora-deep, #3B1D5E);
        margin-bottom: 2px;
    }

.prv-dhead-sub {
    font-size: 0.78rem;
    color: #8A8199;
}

.prv-dhead-tags {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 7px;
    flex-wrap: wrap;
}

/* ----- Avisos del resumen ----- */
.prv-alert {
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1px solid var(--aurora-line, #ECE3F5);
    border-radius: 10px;
    padding: 9px 12px;
    font-size: 0.8rem;
    margin-bottom: 7px;
}

.prv-alert-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.prv-alert-bad .prv-alert-dot { background: #B3403A; }

.prv-alert-warn .prv-alert-dot { background: var(--aurora-gold, #C9A227); }

.prv-alert-info .prv-alert-dot { background: #2B4C7E; }

.prv-alert-ok .prv-alert-dot { background: #2E7D43; }

.prv-lastorder {
    font-size: 0.78rem;
    color: #4A3560;
    margin-top: 10px;
}

/* ----- Sin proveedor seleccionado ----- */
.prv-empty {
    text-align: center;
    padding: 48px 20px;
    color: #8A8199;
}

    .prv-empty .bi {
        font-size: 2.6rem;
        color: #D8D2E2;
    }

    .prv-empty p {
        margin-top: 10px;
        margin-bottom: 0;
    }

/* La lista ocupa un tercio y la ficha dos tercios (el maestro-detalle horizontal del
   framework reparte 50/50). Selector atado a la estructura de la pantalla para no
   tocar los col-md-6 de los formularios de dentro. */
@media (min-width: 992px) {
    .prv-page > .row > .col-xl > .row > .col-md-6:first-child {
        flex: 0 0 34%;
        max-width: 34%;
    }

    .prv-page > .row > .col-xl > .row > .col-md-6:last-child {
        flex: 0 0 66%;
        max-width: 66%;
    }
}

/* Proveedores aprovecha mas pantalla: la plantilla corta el contenido en 1440 px y esta
   pantalla llega a 1880 (440 mas), conservando el aire lateral de la plantilla. El relleno
   de las tarjetas baja un poco. Solo afecta a esta pantalla (.prv-page). */
.prv-page {
    max-width: 1880px !important;
}

    .prv-page .card-body {
        padding: 1.25rem;
    }
