
        @keyframes _twNuevoBlink {
            0%, 100% { box-shadow: 0 0 0 0 rgba(234,88,12,0.8), 0 10px 24px rgba(15,23,42,0.08); }
            50%       { box-shadow: 0 0 0 6px rgba(234,88,12,0),  0 10px 24px rgba(15,23,42,0.08); }
        }

        #lista-pedidos {
            display: grid !important;
            grid-template-columns: repeat(5, 1fr) !important;
            gap: 6px !important;
        }

        #venta-web-panel-inline > div > h3 {
            font-size: 0.8rem !important;
            font-weight: 600 !important;
            margin-bottom: 8px !important;
        }

        #venta-web-panel-inline > div > div:last-child {
            grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)) !important;
            gap: 12px !important;
        }

        .hoverable-card {
            transition: transform .1s, box-shadow .1s;
        }
        .hoverable-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 18px rgba(0,0,0,.18);
        }

        .card {
            background: var(--panel);
            padding: 18px;
            border-radius: 16px;
            border: 1px solid rgba(255, 255, 255, 0.07);
            box-shadow: var(--elev-1);
            margin-bottom: 18px;
        }

        .preview-box {
            background: rgba(255, 255, 255, 0.03);
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 10px;
            padding: 10px;
            font-family: 'Courier New', monospace;
            font-size: 0.82rem;
            white-space: pre-wrap;
            line-height: 1.35;
            min-height: 220px;
            color: rgba(176, 200, 230, 0.9);
        }

        #view-disenos .abm-layout {
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
            gap: 16px;
        }

        #view-disenos .card {
            max-height: calc(100vh - 150px);
            overflow-y: auto;
            padding-right: 12px;
        }

        #view-disenos .dsg-sticky-actions {
            position: sticky;
            bottom: 0;
            background: var(--panel);
            padding-top: 10px;
            margin-top: 14px;
            border-top: 1px solid rgba(255, 255, 255, 0.08);
        }

        #view-disenos .dsg-output-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
            margin-bottom: 12px;
        }

        #view-disenos .dsg-output-card {
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 10px;
            padding: 12px;
            background: rgba(255, 255, 255, 0.02);
        }

        #view-disenos .dsg-output-card h4 {
            margin: 0 0 6px 0;
        }

        #view-disenos .dsg-output-copy {
            margin: 0 0 10px 0;
            color: #8ea0b3;
            font-size: 0.88rem;
            line-height: 1.4;
        }

        #view-disenos .dsg-printer-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
        }

        #view-disenos .dsg-printer-grid label {
            display: block;
            margin-bottom: 4px;
            font-size: 0.84rem;
            color: #b8c7d9;
        }

        #view-disenos .dsg-printer-grid input,
        #view-disenos .dsg-printer-grid select {
            width: 100%;
        }

        #view-config #cfg-tab-comprobantes .dsg-printer-grid {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 8px;
        }

        #view-config #cfg-tab-comprobantes .dsg-printer-grid > div {
            min-width: 0;
        }

        #view-config #cfg-tab-comprobantes .dsg-printer-grid label {
            font-size: 0.78rem;
            font-weight: 600;
            color: #556270;
            display: block;
            margin-bottom: 3px;
        }

        #view-config #cfg-tab-comprobantes .dsg-printer-grid select,
        #view-config #cfg-tab-comprobantes .dsg-printer-grid input {
            width: 100%;
            max-width: 100%;
            font-size: 0.82rem;
            padding: 5px 7px;
        }

        #view-disenos .preview-box {
            min-height: 280px;
            max-height: none;
            overflow-y: visible;
            overflow-x: hidden;
        }

        .align-picker {
            display: inline-flex;
            border: 1px solid rgba(255, 255, 255, 0.12);
            border-radius: 6px;
            overflow: hidden;
            background: rgba(255, 255, 255, 0.04);
        }

        .align-btn {
            width: 30px;
            height: 28px;
            border: 0;
            border-right: 1px solid rgba(255, 255, 255, 0.08);
            background: rgba(255, 255, 255, 0.04);
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            transition: background 0.15s;
        }

        .align-btn:last-child {
            border-right: 0;
        }

        .align-btn.active {
            background: rgba(59, 130, 246, 0.2);
        }

        .align-btn:hover {
            background: rgba(255, 255, 255, 0.1);
        }

        .align-icon {
            width: 16px;
            height: 16px;
            display: block;
            /* Invertir iconos oscuros para que sean visibles sobre fondo dark */
            filter: invert(1) opacity(0.7);
        }

        #preview-diseno {
            min-height: 320px;
            max-height: 520px;
            overflow-y: auto;
        }

        /* El preview de ticket simula papel blanco: mantener fondo claro es correcto */
        #preview-diseno.preview-ticket {
            white-space: normal;
            background: #ffffff;
            border: 1px dashed rgba(255, 255, 255, 0.2);
        }

        #preview-diseno .pv-ticket {
            width: 80mm;
            margin: 0 auto;
            font-family: 'Courier New', monospace;
            font-size: 13px;
            color: #111;
        }

        #preview-diseno .pv-header {
            text-align: center;
            margin-bottom: 8px;
            line-height: 1.35;
        }

        #preview-diseno .pv-header-lines {
            text-align: left;
            margin-bottom: 4px;
            line-height: 1.3;
        }

        #preview-diseno .pv-line { display: block; }
        #preview-diseno .pv-line-left { text-align: left; }
        #preview-diseno .pv-line-center { text-align: center; }
        #preview-diseno .pv-line-right { text-align: right; }

        #preview-diseno .pv-sep {
            border-top: 1px dashed #111;
            margin: 6px 0;
        }

        #preview-diseno .pv-client {
            margin-bottom: 8px;
            border-top: 1px solid #111;
            padding-top: 6px;
            text-align: left;
            font-size: 12px;
        }

        #preview-diseno .pv-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 12px;
        }

        #preview-diseno .pv-table th,
        #preview-diseno .pv-table td {
            padding: 2px 3px;
        }

        #preview-diseno .pv-table thead tr {
            border-bottom: 1px solid #111;
        }

        #preview-diseno .pv-right {
            text-align: right;
            white-space: nowrap;
        }

        #preview-diseno .pv-total {
            text-align: right;
            font-weight: 700;
            font-size: 16px;
            border-top: 1px dashed #111;
            margin-top: 8px;
            padding-top: 6px;
        }

        #preview-diseno .pv-fiscal {
            margin-top: 10px;
            border-top: 1px solid #111;
            padding-top: 6px;
            text-align: center;
            font-size: 11px;
            line-height: 1.35;
        }

        @media (max-width: 960px) {
            #view-disenos .dsg-output-grid,
            #view-disenos .dsg-printer-grid {
                grid-template-columns: minmax(0, 1fr);
            }

            #view-config #cfg-tab-comprobantes .dsg-printer-grid {
                grid-template-columns: minmax(0, 1fr);
            }
        }

        @media (max-width: 1180px) {
            #view-disenos .abm-layout {
                grid-template-columns: 1fr !important;
            }
        }

        /* Config layout with stable internal scroll (desktop) */
        #view-config .card {
            overflow-x: hidden;
            padding: 14px 14px 32px 14px;
        }

        /* Cuando config está activo, ocultar el header-status (el card tiene su propio header) */
        main:has(#view-config.active) .header-status {
            display: none;
        }
        main:has(#view-config.active) {
            padding-top: 8px;
        }

        /* Header del card de config — no sticky para evitar que tape contenido al scrollear */
        #view-config #cfg-header-wrap {
            margin: -14px -14px 0 -14px;
            border-radius: 16px 16px 0 0;
            overflow: hidden;
        }

        #view-config .cfg-tab-action-bar {
            padding: 4px 0 10px 0;
        }

        /* Asegurar que el scroll llegue al fondo en las pestañas fuera del abm-form */
        #cfg-tab-mant,
        #cfg-tab-mp {
            padding-bottom: 24px;
        }

        #view-config .ventas-op-status {
            grid-template-columns: 1fr;
        }

        #view-config .ventas-op-status span {
            border-right: none;
            border-bottom: 1px solid rgba(255, 255, 255, 0.06);
            padding-bottom: 4px;
        }

        #view-config .ventas-op-status span:last-child {
            border-bottom: none;
            padding-bottom: 0;
        }

        /* Modulo Compras */
        .compras-tabs-bar {
            display: flex;
            gap: 4px;
            margin: 14px 0 10px 0;
            border-bottom: 2px solid #e4ebf1;
        }

        #view-compras .compras-tab-panel .abm-form {
            max-height: calc(100vh - 220px);
        }

        #view-compras table td .btn {
            min-width: 76px;
            min-height: 30px;
            padding: 6px 8px;
            font-size: 0.76rem;
        }

        #view-config .card h2 {
            margin: 0 0 8px 0;
        }

        #view-config .abm-form input,
        #view-config .abm-form select {
            padding: 8px 10px;
        }

        /* Roles panel layout */
        .roles-panel-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 8px;
            margin-bottom: 14px;
        }

        .roles-panel-header h3 {
            margin: 0;
        }

        .roles-layout {
            display: grid;
            grid-template-columns: 260px 1fr;
            gap: 16px;
            align-items: start;
        }

        /* Lista de roles (columna izquierda) */
        .roles-list-col {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .roles-list-toolbar {
            display: flex;
            gap: 6px;
            align-items: center;
        }

        .roles-list-toolbar input {
            flex: 1;
            min-width: 0;
        }

        .roles-list-items {
            display: flex;
            flex-direction: column;
            gap: 5px;
            max-height: calc(100vh - 260px);
            overflow-y: auto;
        }

        .role-list-item {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding: 9px 10px;
            border-radius: 8px;
            border: 1px solid rgba(255, 255, 255, 0.07);
            background: rgba(255, 255, 255, 0.03);
            transition: background 0.1s, border-color 0.1s;
        }

        .role-list-item.is-active {
            background: rgba(59, 130, 246, 0.12);
            border-color: rgba(59, 130, 246, 0.35);
        }

        .role-list-item-info {
            display: flex;
            flex-direction: column;
            gap: 2px;
            min-width: 0;
            flex: 1;
        }

        .role-list-item-name {
            font-size: 0.88rem;
            font-weight: 600;
            color: var(--ink-900);
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .role-list-item-count {
            font-size: 0.73rem;
            color: var(--ink-500);
        }

        .role-list-item-btns {
            display: flex;
            gap: 4px;
            flex-shrink: 0;
        }

        .role-list-item-btns .btn {
            padding: 2px 8px !important;
            font-size: 0.72rem !important;
            min-height: 24px !important;
            height: 24px !important;
            box-shadow: none !important;
            border-radius: 5px !important;
            line-height: 1 !important;
            white-space: nowrap;
            flex-shrink: 0;
        }

        /* Formulario del rol (columna derecha) */
        .roles-form-col {
            max-height: calc(100vh - 220px);
            overflow-y: auto;
        }

        .roles-form-top {
            display: flex;
            align-items: flex-end;
            gap: 12px;
            margin-bottom: 4px;
        }

        .roles-form-name-row {
            flex: 1;
            min-width: 0;
        }

        .roles-form-name-row label {
            display: block;
            font-size: 0.82rem;
            color: var(--ink-700);
            margin-bottom: 4px;
            font-weight: 500;
        }

        .roles-form-name-row input {
            width: 100%;
            box-sizing: border-box;
        }

        .roles-form-actions {
            display: flex;
            gap: 6px;
            flex-shrink: 0;
            padding-bottom: 2px;
        }

        /* Permisos */
        .role-perm-groups {
            display: grid;
            gap: 12px;
            max-height: 58vh;
            overflow-y: auto;
            padding-right: 6px;
        }

        .role-perm-container {
            margin-top: 14px;
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 10px;
            padding: 12px 14px;
            background: rgba(255, 255, 255, 0.02);
        }

        .role-perm-container-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 8px;
            margin-bottom: 12px;
        }

        .role-perm-container-title {
            font-size: 0.88rem;
            font-weight: 700;
            color: var(--ink-900);
            letter-spacing: 0.2px;
        }

        .role-perm-group {
            border: 1px solid rgba(255, 255, 255, 0.07);
            border-radius: 10px;
            background: rgba(255, 255, 255, 0.03);
            padding: 10px 12px;
        }

        .role-perm-group-title {
            font-size: 0.74rem;
            font-weight: 700;
            letter-spacing: 0.5px;
            color: var(--ink-700);
            margin: 0 0 10px 0;
            text-transform: uppercase;
            padding-left: 9px;
            border-left: 3px solid #3b82f6;
            line-height: 1.2;
        }

        .role-perm-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
            gap: 5px;
        }

        .role-perm-item-wrap {
            display: flex;
            align-items: center;
            gap: 7px;
            padding: 7px 9px;
            border: 1px solid rgba(255, 255, 255, 0.07);
            border-radius: 7px;
            background: rgba(255, 255, 255, 0.03);
            color: var(--ink-700);
            font-size: 0.84rem;
            cursor: pointer;
            transition: background 0.12s, border-color 0.12s, color 0.12s;
            line-height: 1.3;
            user-select: none;
        }

        .role-perm-item-wrap:not(.is-disabled):hover {
            background: rgba(59, 130, 246, 0.08);
            border-color: rgba(59, 130, 246, 0.25);
        }

        .role-perm-item-wrap:has(input:checked):not(.is-disabled) {
            background: rgba(59, 130, 246, 0.14);
            border-color: rgba(59, 130, 246, 0.45);
            color: #93c5fd;
        }

        .role-perm-item-wrap input[type="checkbox"] {
            width: 15px;
            min-width: 15px;
            height: 15px;
            margin: 0;
            flex-shrink: 0;
            box-shadow: none;
            accent-color: #3b82f6;
        }

        .role-perm-item-wrap span {
            min-width: 0;
            overflow-wrap: anywhere;
        }

        .role-perm-item-wrap.is-disabled {
            opacity: 0.45;
            cursor: default;
            background: rgba(255, 255, 255, 0.01);
        }

        #view-config .abm-form h4 {
            margin: 6px 0 8px 0;
        }

        input, select {
            padding: 10px 12px;
            border: 1px solid rgba(255, 255, 255, 0.12);
            border-radius: 10px;
            width: 100%;
            background: rgba(255, 255, 255, 0.06);
            color: var(--ink-900);
            transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
        }

        input::placeholder, select::placeholder {
            color: rgba(120, 155, 195, 0.45);
        }

        input:focus, select:focus {
            border-color: #3b82f6;
            outline: none;
            background: rgba(255, 255, 255, 0.08);
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
        }

        input[readonly] {
            background: rgba(255, 255, 255, 0.03);
            color: rgba(120, 155, 195, 0.7);
            cursor: default;
        }

        /* Opciones de select: forzar fondo oscuro en Chromium */
        select option {
            background: #0d1825;
            color: #f0f6ff;
        }

        .disabled-form { pointer-events: none; opacity: 0.55; }
        .disabled-form .always-enabled { pointer-events: auto !important; opacity: 1 !important; }
        .abm-form.disabled-form { pointer-events: auto; }
        .abm-form.disabled-form > * { pointer-events: none; }
        .abm-form.disabled-form .always-enabled { pointer-events: auto !important; }

        /* ABM bloqueado: solo "Nuevo" queda habilitado y destacado */
        #form-prod-container.disabled-form .always-enabled:not(.btn-new),
        #form-rubro.disabled-form .always-enabled:not(.btn-new) {
            pointer-events: none !important;
            opacity: 0.3 !important;
            filter: grayscale(0.8) brightness(0.7) !important;
            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2) !important;
        }

        #form-prod-container.disabled-form .btn-new.always-enabled,
        #form-rubro.disabled-form .btn-new.always-enabled {
            pointer-events: auto !important;
            opacity: 1 !important;
            color: #ffffff !important;
            border-color: rgba(255, 255, 255, 0.15) !important;
            background: var(--grad-primary) !important;
            box-shadow: 0 12px 28px rgba(26, 86, 219, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
            filter: drop-shadow(0 6px 16px rgba(26, 86, 219, 0.3)) !important;
            transform: translateY(0) scale(1.04) !important;
        }

        /* Cuando formulario está bloqueado, todos los botones EXCEPTO Nuevo se ven deshabilitados */
        #form-prod-container.disabled-form .btn:not(.btn-new),
        #form-rubro.disabled-form .btn:not(.btn-new) {
            opacity: 0.25 !important;
            filter: grayscale(0.95) brightness(0.5) !important;
            box-shadow: none !important;
            cursor: not-allowed !important;
        }
        /* Pagos: botones e inputs controlados por atributo disabled directamente */
        #form-pago .btn:disabled {
            opacity: 0.25 !important;
            filter: grayscale(0.95) brightness(0.5) !important;
            box-shadow: none !important;
            cursor: not-allowed !important;
            pointer-events: none !important;
        }
        #form-pago input:not([type=checkbox]):disabled {
            background: rgba(255, 255, 255, 0.02);
            color: rgba(120, 155, 195, 0.4);
        }
        #tbody-pagos tr:hover { background: rgba(59, 130, 246, 0.08); cursor: pointer; }
        /* Usuarios: botones e inputs controlados por atributo disabled directamente */
        #form-user .btn:disabled {
            opacity: 0.25 !important;
            filter: grayscale(0.95) brightness(0.5) !important;
            box-shadow: none !important;
            cursor: not-allowed !important;
            pointer-events: none !important;
        }
        #form-user input:disabled, #form-user select:disabled {
            background: rgba(255, 255, 255, 0.02);
            color: rgba(120, 155, 195, 0.4);
        }
        #tbody-usuarios tr:hover { background: rgba(59, 130, 246, 0.08); cursor: pointer; }
        /* Clientes: botones e inputs controlados por atributo disabled directamente */
        #form-cliente .btn:disabled {
            opacity: 0.25 !important;
            filter: grayscale(0.95) brightness(0.5) !important;
            box-shadow: none !important;
            cursor: not-allowed !important;
            pointer-events: none !important;
        }
        #form-cliente input:disabled {
            background: rgba(255, 255, 255, 0.02);
            color: rgba(120, 155, 195, 0.4);
            border-color: rgba(255, 255, 255, 0.06);
            cursor: not-allowed;
        }
        /* ABM clientes compacto: menos alto para no alejar acciones */
        #form-cliente label,
        #form-prod-container label,
        #form-envase-container label,
        #form-user label {
            margin: 5px 0 2px;
            font-size: 0.78rem;
            letter-spacing: 0.04em;
        }
        #form-cliente input,
        #form-prod-container input,
        #form-prod-container select,
        #form-envase-container input,
        #form-envase-container select,
        #form-user input,
        #form-user select {
            padding: 6px 9px;
            border-radius: 9px;
            font-size: 0.9rem;
        }
        #form-cliente .abm-actions-2col[style*='margin-top:20px'],
        #form-user .abm-actions-2col[style*='margin-top:20px'] {
            margin-top: 12px !important;
        }
        /* ABM compras compacto: proveedores, insumos, compras e historial al mismo tamaño visual */
        #form-proveedor label,
        #form-insumo label,
        #compras-tab-compras label,
        #compras-tab-historial label {
            margin: 5px 0 2px;
            font-size: 0.78rem;
            letter-spacing: 0.04em;
        }
        #form-proveedor input,
        #form-proveedor select,
        #form-insumo input,
        #form-insumo select,
        #compras-tab-compras input,
        #compras-tab-compras select,
        #compras-tab-historial input,
        #compras-tab-historial select {
            padding: 6px 9px;
            border-radius: 9px;
            font-size: 0.9rem;
        }
        #form-proveedor .abm-actions-2col[style*='margin-top:14px'],
        #form-insumo .abm-actions-2col[style*='margin-top:14px'] {
            margin-top: 10px !important;
        }
        #form-proveedor {
            display: flex;
            flex-direction: column;
            overflow-y: hidden;
        }
        #form-proveedor .prov-form-scroll {
            overflow-y: auto;
            flex: 1;
            min-height: 0;
            padding-right: 2px;
        }
        #form-proveedor .prov-form-actions {
            flex-shrink: 0;
            padding-top: 10px;
            border-top: 1px solid rgba(255, 255, 255, 0.07);
            background: rgba(255, 255, 255, 0.02);
        }
        #tbody-clientes tr:hover { background: rgba(59, 130, 246, 0.08) !important; }
        #tbody-clientes tr { transition: background 0.12s; cursor: pointer; }
        /* Productos: botones e inputs controlados por atributo disabled directamente */
        #form-prod-container .btn:disabled {
            opacity: 0.25 !important;
            filter: grayscale(0.95) brightness(0.5) !important;
            box-shadow: none !important;
            cursor: not-allowed !important;
            pointer-events: none !important;
        }
        #form-prod-container input:disabled, #form-prod-container select:disabled {
            background: rgba(255, 255, 255, 0.02);
            color: rgba(120, 155, 195, 0.4);
            border-color: rgba(255, 255, 255, 0.06);
            cursor: not-allowed;
        }
        #tbody-productos tr:hover { background: rgba(59, 130, 246, 0.08); cursor: pointer; }
        #tbody-productos tr { transition: background 0.12s; }

        #form-config .btn-edit {
            pointer-events: auto !important;
            opacity: 1 !important;
            filter: none !important;
            background: #3B82F6 !important;
            color: #fff !important;
            padding: 8px 12px !important;
            font-size: 0.88rem !important;
            border-radius: 10px !important;
            border: none !important;
            margin: 0 5px 0 0 !important;
        }

        #cfg-impresora { min-height: 40px; font-size: 0.92rem; }
        .file-input-group { margin-bottom: 10px; }

        .scan-bar {
            background: rgba(255, 255, 255, 0.04);
            padding: 12px;
            border-radius: 12px;
            margin-bottom: 14px;
            display: flex;
            align-items: center;
            gap: 10px;
            border: 1px solid rgba(255, 255, 255, 0.08);
        }

        .quick-ops-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            margin-bottom: 10px;
            padding: 8px 10px;
            border: 1px solid rgba(255, 255, 255, 0.07);
            border-radius: 10px;
            background: var(--surface-soft);
        }

        .quick-shortcuts {
            font-size: 0.8rem;
            color: var(--ink-500);
            font-weight: 700;
            letter-spacing: 0.2px;
        }

        .ventas-op-status {
            margin-bottom: 10px;
            border: 1px solid rgba(255, 255, 255, 0.07);
            border-radius: 10px;
            background: var(--surface-soft);
            padding: 8px 10px;
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 8px;
            font-size: 0.82rem;
            color: var(--ink-700);
            font-weight: 700;
        }

        .ventas-op-status span {
            border-right: 1px solid rgba(255, 255, 255, 0.07);
            padding-right: 8px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .ventas-op-status span:last-child {
            border-right: none;
            padding-right: 0;
        }

        #view-ventas .ventas-op-status {
            grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.55fr) minmax(0, 1.55fr);
        }

        #view-ventas .ventas-op-status #status-turno {
            border-right: none;
            padding-right: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        body.venta-focus nav {
            display: none;
        }

        body.venta-focus main {
            padding: 14px 16px;
        }

        body.venta-focus .header-status {
            position: sticky;
            top: 0;
            z-index: 20;
        }

        body.venta-focus #view-ventas .card {
            min-height: calc(100vh - 110px);
        }

        .btn-quick-mode {
            background: var(--grad-secondary);
            color: #fff;
            border: none;
            border-radius: 10px;
            padding: 8px 12px;
            min-height: var(--btn-h);
            font-size: 0.82rem;
            font-weight: 800;
            cursor: pointer;
            box-shadow: 0 6px 14px rgba(0, 0, 0, 0.35);
        }

        .btn-quick-mode-small {
            min-height: 34px;
            padding: 5px 10px;
            font-size: 0.74rem;
            border-radius: 8px;
            box-shadow: 0 3px 8px rgba(0, 0, 0, 0.3);
        }

        .btn-nuevo-pedido-main {
            font-size: 1.1rem;
            font-weight: 900;
            padding: 14px 18px;
            min-height: 56px;
            box-shadow: 0 8px 18px rgba(31, 157, 85, 0.3);
        }

        body.modo-operador-rapido #view-ventas .quick-secondary {
            display: none !important;
        }

        body.modo-operador-rapido #view-ventas .scan-input {
            font-size: 1.35rem;
            padding: 14px 14px;
            border-width: 3px;
        }

        body.modo-operador-rapido #view-ventas .scan-bar {
            padding: 16px;
            border-radius: 14px;
        }

        body.modo-operador-rapido #view-ventas .btn-ticket {
            font-size: 1.2rem;
            padding: 16px;
            font-weight: 800;
        }

        body.modo-operador-rapido #view-ventas #total-final {
            font-size: 3rem;
            line-height: 1;
        }

        body.modo-operador-rapido #view-ventas #v-body td {
            padding-top: 12px;
            padding-bottom: 12px;
            font-size: 0.96rem;
        }

        /* Modo alto contraste: en dark mode, reforzar contrastes ya existentes */
        body.modo-alto-contraste #view-ventas .card {
            background: #0f1e30;
            border-color: rgba(255, 255, 255, 0.2);
        }

        body.modo-alto-contraste #view-ventas .scan-bar {
            background: rgba(59, 130, 246, 0.1);
            border-color: rgba(59, 130, 246, 0.3);
        }

        body.modo-alto-contraste #view-ventas .scan-input {
            border-color: #3b82f6;
            color: #f0f6ff;
            background: rgba(255, 255, 255, 0.08);
        }

        body.modo-alto-contraste #view-ventas th {
            background: rgba(59, 130, 246, 0.15);
            color: #f0f6ff;
        }

        body.modo-alto-contraste #view-ventas tbody tr:nth-child(even) {
            background: rgba(255, 255, 255, 0.04);
        }

        body.modo-alto-contraste #view-ventas tbody tr:hover {
            background: rgba(59, 130, 246, 0.12);
        }

        body.modo-alto-contraste #view-ventas .btn-ticket {
            background: linear-gradient(135deg, #126d1f 0%, #178d2b 100%);
            box-shadow: 0 10px 18px rgba(20, 95, 35, 0.4);
        }

        body.modo-alto-contraste #view-ventas #total-final {
            color: #f0f6ff;
        }

        body.modo-alto-contraste #view-ventas .ventas-op-status {
            border-color: rgba(255, 255, 255, 0.18);
            background: rgba(255, 255, 255, 0.06);
            color: #f0f6ff;
        }

        .scan-input {
            font-size: 1.1rem;
            border: 2px solid rgba(59, 130, 246, 0.4);
            flex: 1;
            font-weight: 700;
            letter-spacing: 0.3px;
        }

        .scan-input:focus {
            border-color: #3b82f6;
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
        }

        table {
            width: 100%;
            border-collapse: separate;
            border-spacing: 0;
            margin-top: 12px;
            border: 1px solid rgba(255, 255, 255, 0.06);
            border-radius: 12px;
            overflow: hidden;
        }

        th {
            background: rgba(255, 255, 255, 0.04);
            padding: 10px;
            text-align: left;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
            font-size: 0.82rem;
            text-transform: uppercase;
            letter-spacing: 0.4px;
            color: rgba(176, 200, 230, 0.75);
            position: sticky;
            top: 0;
            z-index: 2;
        }

        td {
            padding: 10px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.04);
            color: var(--ink-900);
        }
        tr:last-child td { border-bottom: none; }
        tbody tr:nth-child(even) { background: rgba(255, 255, 255, 0.02); }
        tbody tr:hover { background: rgba(59, 130, 246, 0.08); }

        .btn {
            padding: 8px 16px;
            border: 1px solid rgba(0,158,227,0.35);
            border-radius: 8px;
            color: #60c8f0;
            cursor: pointer;
            font-weight: 600;
            font-size: 0.87rem;
            min-height: var(--btn-h);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            white-space: nowrap;
            letter-spacing: 0.2px;
            background: rgba(0,158,227,0.12);
            transition: filter 0.15s ease, background 0.15s ease;
        }

        .btn:hover { filter: brightness(1.18); }

        .btn-new    { background: rgba(0,158,227,0.12);  color: #60c8f0; border-color: rgba(0,158,227,0.35); }
        .btn-edit   { background: rgba(96,149,248,0.12); color: #7baff8; border-color: rgba(96,149,248,0.35); }
        .btn-add    { background: rgba(34,197,94,0.10);  color: #4ade80; border-color: rgba(34,197,94,0.30); }
        .btn-cancel { background: rgba(239,68,68,0.08);  color: #fca5a5; border-color: rgba(239,68,68,0.25); }
        .btn-del    { background: rgba(239,68,68,0.10);  color: #f87171; border-color: rgba(239,68,68,0.30); font-size: 0.82rem; }

        .btn-new:disabled, .btn-edit:disabled, .btn-add:disabled, .btn-del:disabled, .btn-cancel:disabled {
            background: rgba(120,138,162,0.06) !important;
            color: rgba(214,226,242,0.25) !important;
            border-color: rgba(120,138,162,0.12) !important;
            box-shadow: none !important;
            cursor: not-allowed !important;
            filter: none !important;
        }
        .btn-model   { background: rgba(99,102,241,0.10); color: #a5b4fc; border-color: rgba(99,102,241,0.28); min-height: var(--btn-h-sm); padding: 8px 12px; font-size: 0.8rem; }
        .btn-import  { background: rgba(99,102,241,0.10); color: #a5b4fc; border-color: rgba(99,102,241,0.28); }
        .btn-ticket  { background: var(--grad-ok); color: #fff; font-size: 1.05rem; width: 100%; min-height: 48px; padding: 12px 14px; margin-top: 10px; border: none; }
        .btn-factura { background: var(--grad-secondary); color: #fff; font-size: 1.05rem; width: 100%; min-height: 48px; padding: 12px 14px; margin-top: 10px; border: none; }

        .btn-text-wide {
            width: auto !important;
            min-width: 164px !important;
            padding-left: 12px !important;
            padding-right: 12px !important;
        }

        .abm-actions-2col .btn {
            width: 100%;
            min-width: 0;
            min-height: 30px;
            padding: 5px 8px;
            font-size: 0.74rem;
            line-height: 1;
            box-shadow: none;
            transform: none;
        }

        .abm-actions-2col .btn:hover {
            transform: none;
        }

        .footer-panel {
            margin-top: 18px;
            padding-top: 16px;
            border-top: 1px solid rgba(255, 255, 255, 0.08);
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            gap: 6px;
        }

        .total-big { font-size: 2.4rem; font-weight: 800; color: var(--ink-900); letter-spacing: -1px; }

        .modal {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.7);
            display: none;
            justify-content: center;
            align-items: center;
            z-index: 999;
            backdrop-filter: blur(4px);
        }
        #modal-plano-editor { background: none; backdrop-filter: none; padding: 0; align-items: stretch; }

        .modal-box {
            background: #0d1825 !important;
            width: 84%;
            max-width: 840px;
            max-height: 86vh;
            border-radius: 18px;
            display: flex;
            flex-direction: column;
            box-shadow: var(--elev-2);
            overflow: hidden;
            border: 1px solid rgba(255, 255, 255, 0.1);
            animation: popIn 0.2s ease;
        }

        .modal-sm { max-width: 520px; height: auto; }

        #modal-cliente-ctacte .modal-box {
            max-width: min(1700px, 98vw) !important;
            width: min(1700px, 98vw) !important;
            height: 92vh !important;
            max-height: 92vh !important;
            overflow: hidden !important;
        }
        #modal-cliente-ctacte .modal-body {
            overflow: hidden !important;
            padding: 12px 14px !important;
            flex: 1;
            min-height: 0;
            display: flex;
            flex-direction: column;
        }

        /* Modal cobro: diseño rectangular */
        #modal-cobro .modal-box {
            border-radius: 4px !important;
            border: 1px solid rgba(255, 255, 255, 0.15) !important;
        }
        #modal-cobro .modal-box .btn-payment {
            border-radius: 4px !important;
        }
        #modal-cobro .modal-box .btn-comprobante {
            border-radius: 4px !important;
        }

        .modal-header {
            padding: 14px 18px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
            display: flex;
            justify-content: space-between;
            align-items: center;
            background: linear-gradient(135deg, #0a1422 0%, #060b14 100%);
            color: var(--ink-900);
        }

        .modal-body {
            padding: 18px;
            overflow-y: auto;
            flex: 1;
            background: #0d1825;
            color: var(--ink-900);
        }

        .close-modal {
            background: none;
            border: none;
            font-size: 1.45rem;
            cursor: pointer;
            color: rgba(176, 200, 230, 0.6);
            transition: color 0.15s;
        }
        .close-modal:hover { color: var(--ink-900); }

        .app-alert-head {
            background: var(--grad-secondary);
            color: #f0f6ff;
            padding: 14px 18px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .app-alert-title {
            font-family: 'Outfit', sans-serif;
            letter-spacing: 0.5px;
            font-size: 1rem;
            margin: 0;
        }

        .app-alert-msg {
            color: rgba(176, 200, 230, 0.9);
            line-height: 1.45;
            font-size: 0.95rem;
            white-space: pre-wrap;
        }

        .payment-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 20px; }
        .payment-grid > button:last-child:nth-child(odd) { grid-column: 1 / -1; }
        .comprobante-grid { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 10px; }

        .btn-payment {
            background: rgba(255, 255, 255, 0.06);
            border: 1px solid rgba(255, 255, 255, 0.12);
            color: var(--ink-900);
            padding: 13px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: 700;
            text-align: center;
            transition: 0.2s;
        }

        .btn-payment:hover {
            background: rgba(255, 255, 255, 0.1);
            border-color: rgba(255, 255, 255, 0.2);
        }

        .btn-payment.selected {
            background: var(--grad-ok);
            color: #fff;
            border-color: #1f9d55;
        }

        .btn-comprobante {
            width: 100%;
            margin-top: 0;
            text-align: left;
            padding: 11px 12px;
            font-size: 0.95rem;
        }

        .prod-grid-selector { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; grid-auto-rows: minmax(34px, auto); max-width:100%; box-sizing:border-box; }

        .pedido-rubro {
            grid-column: 1/-1;
            font-weight: 700;
            padding: 6px 8px;
            background: rgba(126, 58, 242, 0.12);
            border-left: 3px solid #7e3af2;
            border-radius: 8px;
            color: rgba(176, 200, 230, 0.9);
            font-size: 0.95rem;
        }

        .prod-card-btn {
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 8px;
            padding: 6px 5px;
            cursor: pointer;
            text-align: center;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
            transition: 0.12s ease;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            min-height: 54px;
            min-width: 48px;
            font-size: 0.75rem;
            color: var(--ink-900);
            overflow: hidden;
            position: relative;
        }

        .prod-card-btn:hover {
            border-color: #3b82f6;
            background: rgba(59, 130, 246, 0.12);
            transform: translateY(-2px);
            box-shadow: 0 6px 16px rgba(59, 130, 246, 0.2);
        }
        .prod-card-btn b { font-size: 0.75rem; line-height:1.2; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; word-break: break-word; }

        /* ── Espaciadores de grilla ─────────────────────────────────────── */
        .prod-spacer {
            background: transparent !important;
            border: 1.5px dashed rgba(255,255,255,0.07) !important;
            box-shadow: none !important;
            pointer-events: auto;
            cursor: context-menu !important;
        }
        .prod-spacer:hover {
            border-color: rgba(248,113,113,0.35) !important;
            background: rgba(248,113,113,0.04) !important;
            transform: none !important;
        }
        .prod-spacer::after {
            content: '×';
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.7rem;
            color: rgba(255,255,255,0.0);
            transition: color 0.15s;
            pointer-events: none;
        }
        .prod-spacer:hover::after { color: rgba(248,113,113,0.55); }

        .prod-add-spacer-btn {
            background: transparent !important;
            border: 1.5px dashed rgba(255,255,255,0.13) !important;
            box-shadow: none !important;
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            color: rgba(255,255,255,0.18) !important;
            font-size: 1.3rem !important;
            cursor: pointer !important;
            transition: border-color 0.15s, color 0.15s, background 0.15s !important;
        }
        .prod-add-spacer-btn:hover {
            border-color: rgba(99,179,237,0.45) !important;
            color: rgba(99,179,237,0.7) !important;
            background: rgba(99,179,237,0.06) !important;
            transform: none !important;
        }

        /* ── Modo Reubicar ──────────────────────────────────────────────── */
        .prod-reubicar-source {
            outline: 2.5px solid #facc15 !important;
            outline-offset: 2px;
            box-shadow: 0 0 14px rgba(250,204,21,0.55) !important;
            z-index: 2;
            position: relative;
            transform: scale(1.04) !important;
        }
        .prod-reubicar-dimmed {
            opacity: 0.28;
            filter: grayscale(0.8) brightness(0.7);
            transition: opacity 0.15s, filter 0.15s, outline 0.1s;
            cursor: crosshair !important;
        }
        .prod-reubicar-dimmed:hover {
            opacity: 0.9;
            filter: none;
            outline: 2px solid #38bdf8 !important;
            outline-offset: 2px;
            box-shadow: 0 0 10px rgba(56,189,248,0.4) !important;
            transform: scale(1.03);
        }
        /* Slot vacío visible como destino en modo reubicar */
        .prod-reubicar-slot {
            background: transparent !important;
            border: 1.5px dashed rgba(148,163,184,0.3) !important;
            box-shadow: none !important;
            opacity: 1 !important;
            filter: none !important;
        }
        .prod-reubicar-slot * { visibility: hidden; }
        .prod-reubicar-slot:hover {
            border-color: #38bdf8 !important;
            background: rgba(56,189,248,0.06) !important;
            box-shadow: 0 0 8px rgba(56,189,248,0.25) !important;
        }
        /* Spacer como destino válido en modo reubicar — override cursor y color */
        .prod-spacer.prod-reubicar-slot {
            cursor: pointer !important;
            border-color: rgba(56,189,248,0.4) !important;
            background: rgba(56,189,248,0.04) !important;
        }
        .prod-spacer.prod-reubicar-slot::after {
            content: '↓' !important;
            color: rgba(56,189,248,0.5) !important;
            font-size: 0.9rem !important;
            pointer-events: none !important;
        }
        .prod-spacer.prod-reubicar-slot:hover {
            border-color: #38bdf8 !important;
            background: rgba(56,189,248,0.1) !important;
            box-shadow: 0 0 8px rgba(56,189,248,0.3) !important;
        }
        .prod-spacer.prod-reubicar-slot:hover::after {
            color: #38bdf8 !important;
        }
        /* Slot de producto oculto — visible para permitir click derecho */
        .prod-btn-oculto {
            background: transparent !important;
            border: 1px dashed rgba(148,163,184,0.18) !important;
            box-shadow: none !important;
            cursor: context-menu !important;
            position: relative;
        }
        .prod-btn-oculto > * { visibility: hidden; }
        .prod-btn-oculto::after {
            content: '+';
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 1rem;
            color: rgba(148,163,184,0.22);
            visibility: visible;
            line-height: 1;
            pointer-events: none;
        }
        .prod-btn-oculto:hover {
            border-color: rgba(56,189,248,0.35) !important;
            background: rgba(56,189,248,0.04) !important;
        }
        .prod-btn-oculto:hover::after {
            color: rgba(56,189,248,0.55);
        }
        /* Drop zone al final de cada categoría ajena en modo reubicar */
        .prod-reubicar-drop-zone {
            background: transparent !important;
            border: 1.5px dashed rgba(56,189,248,0.45) !important;
            box-shadow: none !important;
            opacity: 1 !important;
            filter: none !important;
            cursor: crosshair !important;
            position: relative;
            min-height: 38px;
        }
        .prod-reubicar-drop-zone::after {
            content: '+';
            position: absolute;
            top: 50%; left: 50%;
            transform: translate(-50%, -50%);
            font-size: 1.1rem;
            color: rgba(56,189,248,0.5);
            pointer-events: none;
        }
        .prod-reubicar-drop-zone:hover {
            border-color: #38bdf8 !important;
            background: rgba(56,189,248,0.08) !important;
        }
        .prod-reubicar-drop-zone:hover::after { color: #38bdf8; }
        .prod-reubicar-invalid {
            animation: reubicar-shake 0.3s ease;
        }
        @keyframes reubicar-shake {
            0%,100% { transform: translateX(0); }
            20%      { transform: translateX(-5px); }
            60%      { transform: translateX(5px); }
        }
        /* ─────────────────────────────────────────────────────────────── */

        /* Media queries para pantallas grandes: más columnas para evitar scroll horizontal */
        @media (min-width: 700px) {
            .prod-grid-selector { grid-template-columns: repeat(6, 1fr); gap: 8px; }
        }
        @media (min-width: 1200px) {
            .prod-grid-selector { grid-template-columns: repeat(6, 1fr); gap: 8px; }
        }

        .abm-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 16px; align-items: start; }

        .abm-form {
            background: rgba(255, 255, 255, 0.03);
            padding: 18px;
            border-radius: 14px;
            border: 1px solid rgba(255, 255, 255, 0.06);
            overflow-y: auto;
            max-height: calc(100vh - 160px);
        }

        .abm-form h3 {
            margin: 0 0 8px 0;
            color: var(--ink-900);
            font-family: 'Outfit', sans-serif;
            letter-spacing: 0.3px;
        }

        .abm-form label {
            display: block;
            margin: 8px 0 4px;
            color: rgba(176, 200, 230, 0.75);
            font-size: 0.82rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        .abm-form input,
        .abm-form select {
            width: 100%;
            border: 1px solid rgba(255, 255, 255, 0.12);
            border-radius: 10px;
            padding: 9px 10px;
            font-size: 0.9rem;
            font-family: inherit;
            background: rgba(255, 255, 255, 0.06);
            color: var(--ink-900);
            color-scheme: dark;
            transition: border-color 0.15s ease, box-shadow 0.15s ease;
        }

        .abm-form input:disabled,
        .abm-form select:disabled {
            background: rgba(255, 255, 255, 0.03);
            color: rgba(176, 200, 230, 0.35);
            border-color: rgba(255, 255, 255, 0.06);
            cursor: default;
        }

        .abm-form input[readonly] {
            background: rgba(255, 255, 255, 0.03);
            color: rgba(176, 200, 230, 0.5);
            border-color: rgba(255, 255, 255, 0.06);
            cursor: default;
        }

        .abm-form input:focus,
        .abm-form select:focus {
            outline: none;
            border-color: #3b82f6;
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
            background: rgba(255, 255, 255, 0.09);
        }

        /* Cliente ABM — sticky actions + scrollable fields */
        .cli-abm-form {
            display: flex !important;
            flex-direction: column !important;
            overflow-y: hidden !important;
            padding: 0 !important;
        }
        .cli-fields-scroll {
            flex: 1;
            overflow-y: auto;
            padding: 18px 18px 8px;
            min-height: 0;
        }
        .cli-actions {
            flex-shrink: 0;
            padding: 10px 18px 14px;
            border-top: 1px solid rgba(255,255,255,0.07);
            background: var(--panel);
        }

        /* Cliente ABM — form sections */
        .cli-section { margin-bottom: 14px; }
        .cli-section-title {
            font-size: 0.70rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.09em;
            color: rgba(100, 160, 230, 0.65);
            margin-bottom: 8px;
            padding-bottom: 5px;
            border-bottom: 1px solid rgba(255,255,255,0.07);
        }
        .cli-grid-2 {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 4px 12px;
        }
        .cli-field { display: flex; flex-direction: column; gap: 2px; }
        .cli-field label { margin: 4px 0 2px; }
        .cli-span-2 { grid-column: span 2; }

        .abm-toolbar {
            display: flex;
            gap: 8px;
            margin-bottom: 10px;
            align-items: center;
            padding: 8px;
            border: 1px solid rgba(255, 255, 255, 0.07);
            border-radius: 10px;
            background: rgba(255, 255, 255, 0.03);
        }

        /* Ultima pasada ABM: consistencia de layout, controles y acciones */
        #view-productos .abm-layout,
        #view-clientes .abm-layout,
        #view-usuarios .abm-layout,
        #view-pagos .abm-layout,
        #view-envases .abm-layout {
            align-items: start;
        }

        #view-productos .abm-form,
        #view-clientes .abm-form,
        #view-usuarios .abm-form,
        #view-pagos .abm-form,
        #view-rubros .abm-form,
        #view-envases .abm-form {
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
        }

        /* Campos scrollables, botones siempre visibles al fondo */
        #form-prod-container {
            display: flex;
            flex-direction: column;
            overflow-y: hidden;
        }

        #form-prod-container .prod-form-scroll {
            overflow-y: auto;
            flex: 1;
            min-height: 0;
            padding-right: 2px;
        }

        #form-prod-container > div:last-child {
            flex-shrink: 0;
            padding-top: 10px;
            border-top: 1px solid rgba(255, 255, 255, 0.07);
            background: rgba(255, 255, 255, 0.02);
        }

        #search-prod,
        #search-cli,
        #search-user,
        #search-role,
        #search-pago,
        #r-search,
        #hist-search-nro,
        #search-cliente-venta,
        #filtro-selector {
            min-height: 40px;
            border: 1px solid rgba(255, 255, 255, 0.12);
            border-radius: 10px;
            padding: 9px 12px;
            background: rgba(255, 255, 255, 0.06);
            color: var(--ink-900);
        }

        #search-prod:focus,
        #search-cli:focus,
        #search-user:focus,
        #search-role:focus,
        #search-pago:focus,
        #r-search:focus,
        #hist-search-nro:focus,
        #search-cliente-venta:focus,
        #filtro-selector:focus {
            outline: none;
            border-color: #3b82f6;
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
        }

        #view-historial .historial-filtros {
            display: grid;
            grid-template-columns: minmax(180px, 220px) minmax(220px, 260px) minmax(220px, 260px) minmax(108px, 240px);
            gap: 10px;
            margin-bottom: 14px;
            align-items: end;
            justify-content: space-between;
        }

        #view-historial .historial-filtros > * {
            min-width: 0;
        }

        #view-historial #hist-search-nro,
        #view-historial #hist-filter-tipo {
            width: 100%;
            max-width: 260px;
        }

        #view-historial-ventas .historial-ventas-filtros {
            display: grid;
            grid-template-columns: 160px 160px 180px 220px minmax(220px, 1fr) auto;
            gap: 10px;
            margin-bottom: 14px;
            padding: 10px;
            border: 1px solid rgba(255, 255, 255, 0.09);
            border-radius: 10px;
            background: rgba(255, 255, 255, 0.02);
            align-items: end;
        }

        #view-historial-ventas .historial-ventas-filtro-item {
            display: flex;
            flex-direction: column;
            gap: 5px;
            min-width: 0;
        }

        #view-historial-ventas .historial-ventas-filtro-item label {
            font-size: 0.78rem;
            font-weight: 700;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            color: #6b7f91;
        }

        #view-historial-ventas #histv-desde,
        #view-historial-ventas #histv-hasta,
        #view-historial-ventas #histv-turno,
        #view-historial-ventas #histv-search-nro,
        #view-historial-ventas #histv-filter-tipo {
            width: 100%;
        }

        #view-historial-ventas .historial-ventas-filtro-actions {
            display: flex;
            gap: 8px;
            align-items: end;
            justify-content: flex-end;
            grid-column: 1 / -1;
            width: 100%;
        }

        #view-historial-ventas .historial-ventas-filtro-actions .btn {
            min-width: 108px;
        }

        #view-historial .historial-filtros input[type="date"] {
            width: 150px;
            min-width: 150px;
        }

        #view-historial #hist-turno {
            min-width: 170px !important;
        }

        #view-historial #hist-search-nro {
            width: 100%;
            max-width: 260px;
        }

        #view-historial .historial-filtros .btn {
            justify-self: end;
        }

        #view-historial .btn.btn-color-red {
            background: rgba(220,38,38,0.10) !important;
            border-color: rgba(220,38,38,0.30) !important;
            color: #f87171 !important;
            box-shadow: none !important;
        }

        #view-historial-ventas .historial-ventas-filtros {
            display: grid;
            grid-template-columns: 160px 160px 180px minmax(220px, 1fr) auto;
            gap: 10px;
            margin-bottom: 14px;
            padding: 10px;
            border: 1px solid rgba(255, 255, 255, 0.09);
            border-radius: 10px;
            background: rgba(255, 255, 255, 0.02);
            align-items: end;
        }

        #view-historial-ventas .historial-ventas-filtro-item {
            display: flex;
            flex-direction: column;
            gap: 5px;
            min-width: 0;
        }

        #view-historial-ventas .historial-ventas-filtro-item label {
            font-size: 0.78rem;
            font-weight: 700;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            color: #6b7f91;
        }

        #view-historial-ventas #histv-desde,
        #view-historial-ventas #histv-hasta,
        #view-historial-ventas #histv-turno,
        #view-historial-ventas #histv-search-nro {
            width: 100%;
        }

        #view-historial-ventas .historial-ventas-filtro-actions {
            display: flex;
            gap: 8px;
            align-items: end;
            justify-content: flex-end;
        }

        #view-historial-ventas .historial-ventas-filtro-actions .btn {
            min-width: 108px;
        }

        #view-productos .abm-form > div[style*='margin-top:20px'],
        #view-clientes .abm-form > div[style*='margin-top:20px'],
        #view-pagos .abm-form > div[style*='margin-top:20px'],
        #view-usuarios .abm-form > div[style*='margin-top:20px'],
        #view-rubros .abm-form > div[style*='margin-top:20px'],
        #view-envases .abm-form > div[style*='margin-top:20px'] {
            padding-top: 12px;
            border-top: 1px solid rgba(255, 255, 255, 0.07);
        }

        #view-productos .abm-form .btn,
        #view-clientes .abm-form .btn,
        #view-pagos .abm-form .btn,
        #view-usuarios .abm-form .btn,
        #view-rubros .abm-form .btn,
        #view-envases .abm-form .btn {
            min-width: 98px;
        }

        #form-rubro .btn:disabled {
            opacity: 0.3;
            filter: grayscale(0.7) brightness(0.5);
            cursor: not-allowed;
            pointer-events: none;
            box-shadow: none;
        }

        #form-rubro input:disabled,
        #form-rubro input[readonly] {
            background: rgba(255, 255, 255, 0.02);
            color: rgba(120, 155, 195, 0.5);
            border-color: rgba(255, 255, 255, 0.06);
            cursor: not-allowed;
        }

        #form-rubro input[readonly]#r-codigo {
            background: rgba(59, 130, 246, 0.08);
            color: rgba(99, 160, 246, 0.9);
            cursor: default;
        }

        .btn-rubro-orden {
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 6px;
            padding: 2px 7px;
            font-size: 0.82rem;
            cursor: pointer;
            color: var(--ink-700);
            line-height: 1.4;
            transition: background 0.15s;
        }
        .btn-rubro-orden:hover { background: rgba(255, 255, 255, 0.1); }
        .btn-rubro-orden:disabled { opacity: 0.25; cursor: not-allowed; }

        #tbody-rubros tr:hover { background: rgba(59, 130, 246, 0.08) !important; }
        #tbody-rubros tr { transition: background 0.12s; }

        #view-productos .abm-toolbar.productos-toolbar {
            display: grid;
            grid-template-columns: 1fr;
            row-gap: 10px;
            align-items: stretch;
        }

        #view-productos .abm-toolbar .prod-toolbar-search-row {
            width: 100%;
        }

        #view-productos .abm-toolbar .prod-toolbar-search-row #search-prod {
            width: 100%;
        }

        #view-productos .abm-toolbar .prod-toolbar-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            align-items: center;
        }

        #view-productos .abm-toolbar .btn-prod-action {
            width: auto !important;
            min-width: 178px !important;
            height: 30px;
            min-height: 30px;
            padding: 4px 8px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 8px;
            font-size: 0.73rem;
            font-weight: 700;
            white-space: nowrap;
            color: #7baff8 !important;
            border: 1px solid rgba(96,149,248,0.30) !important;
            background: rgba(96,149,248,0.10) !important;
            box-shadow: none !important;
            text-align: center;
        }

        #view-productos .abm-toolbar .btn-prod-action:hover {
            filter: brightness(1.18);
        }
        .precio-edit-input::-webkit-inner-spin-button,
        .precio-edit-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
        .precio-edit-input { -moz-appearance: textfield; }
        #cobro-multi-input::-webkit-inner-spin-button,
        #cobro-multi-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

        #view-productos .abm-toolbar .btn-prod-nav {
            width: auto !important;
            min-width: 148px !important;
            height: 30px;
            min-height: 30px;
            padding: 4px 8px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 10px;
            font-size: 0.73rem;
            font-weight: 600;
            white-space: nowrap;
            color: var(--ink-900) !important;
            background: rgba(255, 255, 255, 0.05) !important;
            border: 1px solid rgba(255, 255, 255, 0.1) !important;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
            cursor: pointer;
            text-align: center;
            transition: background 0.15s;
        }

        #view-productos .abm-toolbar .btn-prod-nav:hover {
            background: rgba(255, 255, 255, 0.1) !important;
        }

        #view-clientes .abm-toolbar.clientes-toolbar {
            display: grid;
            grid-template-columns: 1fr;
            row-gap: 10px;
            align-items: stretch;
        }

        #view-clientes .abm-toolbar .clientes-toolbar-search-row #search-cli {
            width: 100%;
        }

        #view-clientes .abm-toolbar .clientes-toolbar-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
            width: 100%;
        }

        #btn-open-cli-ctacte {
            margin-left: auto;
            margin-right: 0;
            background: var(--grad-ok) !important;
            color: #ffffff !important;
            min-width: 220px;
            width: 220px;
            max-width: min(100%, 220px);
            height: auto;
            min-height: 38px;
            white-space: normal;
            line-height: 1.15;
            text-align: center;
            word-break: break-word;
            overflow-wrap: anywhere;
            padding: 8px 12px;
            font-size: 0.74rem;
        }

        #modal-cliente-ctacte {
            position: fixed;
            inset: 0;
            z-index: 10030 !important;
        }

        #modal-cliente-ctacte .modal-box {
            position: relative;
            z-index: 10031;
        }

        #view-clientes .clientes-list-wrap {
            max-height: 430px;
            overflow-y: auto;
        }

        /* Estilo unificado para botones de ABM con tamaños consistentes */
        #view-productos .btn,
        #view-rubros .btn,
        #view-clientes .btn,
        #view-stats .btn,
        #view-usuarios .btn,
        #view-pagos .btn,
        #view-caja .btn,
        #view-auditoria .btn,
        #view-kardex .btn,
        #view-stockactual .btn,
        #view-arcaqueue .btn,
        #view-help .btn,
        #view-config .btn {
            width: 126px !important;
            height: 30px !important;
            min-height: 30px !important;
            padding: 4px 8px !important;
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            border-radius: 10px !important;
            font-size: 0.73rem !important;
            font-weight: 800 !important;
            text-align: center !important;
            white-space: nowrap;
        }

        #view-usuarios .role-list-item-btns .btn {
            width: auto !important;
            height: 26px !important;
            min-height: 26px !important;
            padding: 2px 10px !important;
            font-size: 0.72rem !important;
            font-weight: 600 !important;
            box-shadow: none !important;
        }

        #view-config #cfg-gastro-locked .btn {
            display: inline-flex !important;
            width: auto !important;
            height: auto !important;
            min-height: 42px !important;
            padding: 10px 22px !important;
            font-size: 0.92rem !important;
            white-space: nowrap !important;
            overflow: visible !important;
            max-width: none !important;
        }

        #cfg-tab-gastro > div > div:first-child {
            padding: 10px !important;
            border: 1px solid rgba(59, 130, 246, 0.24) !important;
            background: rgba(255, 255, 255, 0.03) !important;
        }

        #cfg-tab-gastro #cfg-modo-restaurante {
            width: 13px !important;
            height: 13px !important;
            accent-color: #1a56db;
            cursor: pointer;
            box-shadow: none !important;
        }

        #cfg-tab-gastro label[for="cfg-modo-restaurante"] {
            font-size: 0.92rem !important;
            color: var(--ink-800) !important;
        }

        #cfg-tab-gastro > div > div:first-child p {
            margin-left: 22px !important;
            font-size: 0.8rem !important;
            color: var(--ink-700) !important;
        }

        /* Efectos hover para todos los botones de ABM */
        #view-productos .btn:hover,
        #view-rubros .btn:hover,
        #view-clientes .btn:hover,
        #view-stats .btn:hover,
        #view-usuarios .btn:hover,
        #view-pagos .btn:hover,
        #view-caja .btn:hover,
        #view-auditoria .btn:hover,
        #view-kardex .btn:hover,
        #view-stockactual .btn:hover,
        #view-arcaqueue .btn:hover,
        #view-help .btn:hover,
        #view-config .btn:hover {
            transform: translateY(-1px);
            filter: brightness(1.06);
        }

        @media (max-width: 1280px) {
            .stats-grid {
                grid-template-columns: repeat(3, minmax(160px, 1fr));
            }
        }

        @media (max-width: 1000px) {
            .abm-layout {
                grid-template-columns: 1fr !important;
            }
            .abm-form {
                max-height: none;

            #view-config #cfg-tab-comprobantes .dsg-printer-grid select,
            #view-config #cfg-tab-comprobantes .dsg-printer-grid input {
                width: 100%;
                max-width: 100%;
            }
            }
        }

        @media (max-width: 1366px) {
            #view-productos .btn,
            #view-rubros .btn,
            #view-clientes .btn,
            #view-stats .btn,
            #view-usuarios .btn,
            #view-pagos .btn,
            #view-caja .btn,
            #view-auditoria .btn,
            #view-kardex .btn,
            #view-stockactual .btn,
            #view-arcaqueue .btn,
            #view-help .btn,
            #view-config .btn {
                width: 126px !important;
            }
        }

        /* Configuracion: botones especiales de backup/depuración */
        #view-config .btn.cfg-backup-create {
            color: #ffffff !important;
            border-color: rgba(255, 255, 255, 0.1) !important;
            background: var(--grad-primary) !important;
            box-shadow: 0 8px 20px rgba(26, 86, 219, 0.3) !important;
            white-space: normal !important;
            line-height: 1.3 !important;
            min-height: 48px !important;
            text-align: center !important;
        }

        #view-config .btn.cfg-backup-restore {
            color: #ffffff !important;
            border-color: rgba(255, 255, 255, 0.06) !important;
            background: var(--grad-secondary) !important;
            box-shadow: 0 8px 20px rgba(53, 82, 137, 0.3) !important;
            white-space: normal !important;
            line-height: 1.3 !important;
            min-height: 48px !important;
            text-align: center !important;
        }

        #view-config .btn.cfg-depurar,
        #view-config .btn.cfg-restablecer {
            color: #fff !important;
            border-color: rgba(0, 0, 0, 0.08) !important;
            background: var(--grad-danger) !important;
            box-shadow: 0 8px 20px rgba(176, 57, 47, 0.3) !important;
        }

        #view-config .btn.cfg-restablecer {
            background: linear-gradient(135deg, #9f2b2b 0%, #7b1f1f 100%) !important;
        }

        #view-caja .caja-resumen-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
            margin-bottom: 12px;
        }

        #view-caja #caja-estado {
            margin-bottom: 10px;
        }

        #view-caja .caja-head-box {
            border: 1px solid rgba(255, 255, 255, 0.10);
            border-radius: 12px;
            padding: 10px 12px;
            background: rgba(255, 255, 255, 0.03);
        }

        #view-caja .caja-head-box-open {
            border-color: rgba(34, 197, 94, 0.30);
            background: rgba(34, 197, 94, 0.08);
        }

        #view-caja .caja-head-box-closed {
            border-color: rgba(239, 68, 68, 0.30);
            background: rgba(239, 68, 68, 0.08);
        }

        #view-caja .caja-head-top {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 8px;
            flex-wrap: wrap;
        }

        #view-caja .caja-head-badge {
            color: #fff;
            font-size: 0.68rem;
            font-weight: 800;
            padding: 3px 9px;
            border-radius: 999px;
            letter-spacing: 0.05em;
            text-transform: uppercase;
        }

        #view-caja .caja-head-badge-open {
            background: #16a34a;
        }

        #view-caja .caja-head-badge-closed {
            background: #dc2626;
        }

        #view-caja .caja-head-turno {
            font-size: 0.98rem;
            font-weight: 800;
            color: #1a56db;
            line-height: 1.1;
        }

        #view-caja .caja-head-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 8px 14px;
            font-size: 0.84rem;
            font-weight: 600;
            color: #465f73;
        }

        #view-caja .caja-head-item {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            line-height: 1.2;
            white-space: nowrap;
        }

        #view-caja #caja-report-filters {
            display: grid;
            grid-template-columns: 150px 150px minmax(150px, 180px) minmax(180px, 1fr) auto;
            gap: 10px;
            align-items: end;
        }

        #view-caja #caja-report-filters > div {
            min-width: 0;
        }

        #view-caja #caja-report-filters input[type="date"] {
            width: 150px;
            min-width: 150px;
        }

        #view-caja #caja-report-filters select {
            min-width: 0;
        }

        #view-caja #caja-report-filters > div:last-child {
            display: flex;
            align-items: end;
            justify-content: flex-end;
            gap: 8px;
            flex-wrap: nowrap;
        }

        #view-caja .caja-panel {
            border: 1px solid rgba(255, 255, 255, 0.07);
            border-radius: 12px;
            background: rgba(255, 255, 255, 0.03);
            padding: 12px;
        }

        #view-caja .caja-panel h4 {
            margin: 0 0 10px 0;
            font-size: 1rem;
            color: var(--ink-900);
        }

        #view-caja .caja-total-line {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 6px 0;
            border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
            color: var(--ink-700);
            font-size: 0.9rem;
        }

        #view-caja .caja-total-line-main {
            margin-top: 4px;
            color: var(--ink-900);
            font-weight: 800;
            border-bottom: none;
            font-size: 1rem;
        }

        #view-caja .caja-total-line-sub {
            padding: 3px 0 3px 14px;
            font-size: 0.8rem;
            opacity: 0.72;
            border-bottom: none;
        }

        #view-caja .caja-panel-actions {
            margin-top: 10px;
            display: flex;
            justify-content: flex-end;
        }

        #view-caja .caja-saldo-box {
            margin-bottom: 16px;
            padding: 20px 24px;
            border-radius: 14px;
            background: rgba(59, 130, 246, 0.10);
            border: 1.5px solid rgba(59, 130, 246, 0.30);
            color: var(--ink-900);
            font-weight: 700;
            font-size: 1.1rem;
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 6px;
        }

        #view-caja .caja-saldo-box span {
            color: #60a5fa;
            font-size: 2.4rem;
            font-weight: 800;
            letter-spacing: -0.5px;
            line-height: 1;
        }

        .caja-mov-modal-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.65);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 10020;
        }

        .caja-mov-modal {
            width: min(420px, 92vw);
            background: #0d1825;
            border-radius: 12px;
            border: 1px solid rgba(255, 255, 255, 0.1);
            box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6);
            padding: 14px;
        }

        .caja-mov-modal h4 {
            margin: 0 0 10px 0;
            color: var(--ink-900);
            font-size: 1rem;
        }

        .caja-mov-modal .row {
            display: grid;
            gap: 8px;
            margin-bottom: 10px;
        }

        .caja-mov-modal .actions {
            display: flex;
            justify-content: flex-end;
            gap: 8px;
            margin-top: 6px;
        }

        @media (max-width: 960px) {
            #view-caja .caja-resumen-grid {
                grid-template-columns: 1fr;
            }

            #view-caja #caja-report-filters {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }

            #view-caja #caja-report-filters input[type="date"] {
                width: 100%;
                min-width: 0;
            }

            #view-caja #caja-report-filters > div:last-child {
                grid-column: 1 / -1;
                justify-content: flex-start;
                flex-wrap: wrap;
            }
        }

        .anulada-row { background-color: rgba(176, 57, 47, 0.1) !important; color: var(--danger); text-decoration: line-through; }

        .nc-row { background-color: rgba(220, 38, 38, 0.08) !important; }
        .nc-row td { color: #f87171; font-style: italic; }
        .badge-nc {
            display: inline-block;
            background: rgba(220, 38, 38, 0.18);
            color: #f87171;
            border: 1px solid rgba(220, 38, 38, 0.4);
            border-radius: 4px;
            padding: 2px 8px;
            font-size: .78rem;
            font-weight: 700;
            letter-spacing: .03em;
            white-space: nowrap;
        }

        /* Acciones ABM compactas (Clientes/Pagos/Usuarios): evita ancho forzado de 186px */
        #view-clientes .abm-actions-2col,
        #view-pagos .abm-actions-2col,
        #view-usuarios .abm-actions-2col {
            grid-template-columns: repeat(2, minmax(0, 126px)) !important;
            justify-content: start;
            gap: 6px !important;
        }

        #view-clientes .abm-actions-2col .btn,
        #view-pagos .abm-actions-2col .btn,
        #view-usuarios .abm-actions-2col .btn {
            width: 126px !important;
            min-width: 0 !important;
            height: 30px !important;
            min-height: 30px !important;
            padding: 4px 8px !important;
            font-size: 0.73rem !important;
            line-height: 1 !important;
            white-space: nowrap !important;
            box-shadow: none !important;
            transform: none !important;
        }

        #view-clientes .abm-actions-2col .btn:hover,
        #view-pagos .abm-actions-2col .btn:hover,
        #view-usuarios .abm-actions-2col .btn:hover {
            transform: none !important;
        }
        .promo-rules-list {
            margin-top: 10px;
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.025));
            padding: 8px;
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 10px;
            max-height: 210px;
            overflow-y: auto;
            display: flex;
            flex-direction: column;
            gap: 6px;
        }

        .promo-rule-item {
            display: grid;
            grid-template-columns: auto 1fr auto;
            align-items: center;
            gap: 8px;
            min-height: 34px;
            padding: 6px 8px;
            border-radius: 9px;
            border: 1px solid rgba(148, 163, 184, 0.25);
            background: rgba(15, 23, 42, 0.35);
        }

        .promo-rule-qty {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 34px;
            padding: 2px 8px;
            border-radius: 999px;
            font-size: 0.78rem;
            font-weight: 800;
            color: #dbeafe;
            background: rgba(30, 64, 175, 0.55);
            border: 1px solid rgba(96, 165, 250, 0.4);
        }

        .promo-rule-name {
            min-width: 0;
            font-size: 0.9rem;
            font-weight: 600;
            color: var(--ink-900);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .promo-rule-remove {
            border: 1px solid rgba(252, 165, 165, 0.45);
            background: rgba(127, 29, 29, 0.35);
            color: #fecaca;
            border-radius: 8px;
            padding: 4px 8px;
            font-size: 0.74rem;
            font-weight: 700;
            cursor: pointer;
            line-height: 1;
            transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
        }

        .promo-rule-remove:hover {
            background: rgba(153, 27, 27, 0.55);
            border-color: rgba(254, 202, 202, 0.8);
            transform: translateY(-1px);
        }

        .promo-rule-empty {
            padding: 10px;
            text-align: center;
            font-size: 0.84rem;
            color: var(--ink-700);
            border: 1px dashed rgba(148, 163, 184, 0.35);
            border-radius: 8px;
            background: rgba(15, 23, 42, 0.2);
        }

        #view-stats .stats-filtros-grid {
            grid-template-columns: repeat(6, minmax(0, 1fr)) auto;
            align-items: end;
        }

        #view-stats .stats-filtros-accion {
            display: flex;
            align-items: end;
            justify-content: flex-end;
        }

        #stats-subbmenu {
            min-width: 246px;
        }

        .stats-view-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 12px;
            margin-bottom: 14px;
        }

        .bi-section-tabs {
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
            justify-content: flex-end;
            flex-shrink: 0;
        }

        .bi-tab {
            padding: 5px 16px;
            border-radius: 6px;
            font-size: 0.83rem;
            font-weight: 600;
            cursor: pointer;
            border: 1px solid #374151;
            background: transparent;
            color: #9ca3af;
            transition: background 0.15s, color 0.15s, border-color 0.15s;
        }

        .bi-tab:hover {
            background: rgba(26,86,219,0.12);
            color: #93c5fd;
            border-color: rgba(26,86,219,0.4);
        }

        .bi-tab.bi-tab-active {
            background: #1a56db;
            color: #fff;
            border-color: #1a56db;
        }

        .stats-view-copy {
            margin: 0;
            color: var(--ink-700);
            font-size: 0.9rem;
            line-height: 1.45;
            max-width: 720px;
        }

        .stats-report-filters {
            display: grid;
            grid-template-columns: 150px 150px 190px auto;
            gap: 10px;
            align-items: end;
            margin-bottom: 14px;
        }

        .stats-report-filters.stats-report-filters-full {
            grid-template-columns: repeat(6, minmax(0, 1fr));
        }

        .stats-report-filters > div {
            min-width: 0;
        }

        .stats-report-filters input[type="date"] {
            width: 150px;
            min-width: 150px;
        }

        .stats-report-filters-action {
            display: flex;
            justify-content: flex-end;
            align-items: end;
        }

        .stats-grid { display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 10px; margin-bottom: 12px; }

        .stats-kpi {
            background: rgba(255, 255, 255, 0.04);
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 12px;
            padding: 12px;
        }

        .stats-kpi .kpi-label { font-size: 0.82rem; color: var(--ink-700); margin-bottom: 4px; }
        .stats-kpi .kpi-value { font-size: 1.35rem; font-weight: 800; color: var(--ink-900); }

        .stats-panels { display: grid; grid-template-columns: 1.2fr 1fr; gap: 12px; margin-top: 10px; }

        .stats-panel {
            border: 1px solid rgba(255, 255, 255, 0.07);
            border-radius: 12px;
            padding: 10px;
            background: rgba(255, 255, 255, 0.03);
        }

        .stats-panel h4 { margin: 0 0 10px 0; color: var(--ink-900); font-family: 'Space Grotesk', sans-serif; }
        .bars-wrap { display: flex; flex-direction: column; gap: 8px; }
        .bar-row { display: grid; grid-template-columns: minmax(100px, 140px) 1fr minmax(120px, 170px); gap: 8px; align-items: center; }
        .bar-label { font-size: 0.85rem; color: var(--ink-700); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .bar-track { background: rgba(255, 255, 255, 0.06); border-radius: 999px; height: 12px; overflow: hidden; }
        .bar-fill { height: 100%; border-radius: 999px; }
        .bar-value { font-size: 0.84rem; text-align: right; color: var(--ink-700); }

        .stats-total-row {
            background: rgba(26, 86, 219, 0.10);
        }

        .stats-total-row td {
            border-top: 1px solid rgba(26, 86, 219, 0.35);
            font-weight: 700;
        }

        .stats-bar-total,
        .stats-donut-total {
            margin-top: 8px;
            padding-top: 8px;
            border-top: 1px dashed rgba(255, 255, 255, 0.16);
            display: flex;
            justify-content: space-between;
            align-items: center;
            color: var(--ink-800);
            font-size: 0.84rem;
            font-weight: 700;
        }

        .donut-wrap { display: flex; align-items: center; gap: 12px; }
        .donut-chart { width: 150px; height: 150px; border-radius: 50%; background: conic-gradient(rgba(255,255,255,0.1) 0deg 360deg); }
        .donut-legend { display: flex; flex-direction: column; gap: 8px; font-size: 0.86rem; }
        .legend-item { display: flex; align-items: center; gap: 8px; }
        .legend-swatch { width: 12px; height: 12px; border-radius: 3px; }

        @keyframes fadeInUp {
            from { opacity: 0; transform: translateY(8px); }
            to { opacity: 1; transform: translateY(0); }
        }

        @keyframes popIn {
            from { opacity: 0; transform: scale(0.98); }
            to { opacity: 1; transform: scale(1); }
        }

        /* Doctor DB */
        #view-doctor .doctor-progress-wrap {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 4px;
        }
        #view-doctor .doctor-progress-bar-bg {
            flex: 1;
            height: 14px;
            border-radius: 99px;
            background: rgba(255,255,255,0.07);
            border: 1px solid rgba(255,255,255,0.10);
            overflow: hidden;
        }
        #view-doctor .doctor-progress-bar-fill {
            height: 100%;
            width: 0%;
            border-radius: 99px;
            background: linear-gradient(90deg, #1a56db, #7e3af2);
            transition: width 0.5s cubic-bezier(.4,0,.2,1);
        }
        #view-doctor .doctor-step {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 10px 14px;
            border-radius: 10px;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.07);
            font-size: 0.92rem;
            transition: border-color 0.3s, background 0.3s;
        }
        #view-doctor .doctor-step.running {
            border-color: rgba(96,165,250,0.35);
            background: rgba(96,165,250,0.07);
        }
        #view-doctor .doctor-step.ok {
            border-color: rgba(52,211,153,0.35);
            background: rgba(52,211,153,0.05);
        }
        #view-doctor .doctor-step.warn {
            border-color: rgba(251,191,36,0.40);
            background: rgba(251,191,36,0.07);
        }
        #view-doctor .doctor-step-icon {
            font-size: 1.1rem;
            width: 22px;
            text-align: center;
            flex-shrink: 0;
        }
        #view-doctor .doctor-step-label {
            flex: 1;
            font-weight: 600;
            color: var(--ink-900);
        }
        #view-doctor .doctor-step-detail {
            font-size: 0.82rem;
            color: var(--ink-600, #627184);
        }
        #view-doctor .doctor-summary-ok {
            background: rgba(52,211,153,0.10);
            border: 1.5px solid rgba(52,211,153,0.35);
            color: #34d399;
        }
        #view-doctor .doctor-summary-warn {
            background: rgba(251,191,36,0.10);
            border: 1.5px solid rgba(251,191,36,0.40);
            color: #fbbf24;
        }
        #view-doctor .doctor-summary-error {
            background: rgba(239,68,68,0.10);
            border: 1.5px solid rgba(239,68,68,0.35);
            color: #f87171;
        }
        @keyframes doctorPulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.5; }
        }
        #view-doctor .doctor-step.running .doctor-step-icon {
            animation: doctorPulse 1s ease-in-out infinite;
        }

        /* ── Clases de color explícito para botones (override de !important) ── */
        .btn.btn-color-green  { background: rgba(22,163,74,0.10)   !important; color: #4ade80 !important; border-color: rgba(22,163,74,0.30)   !important; box-shadow: none !important; }
        .btn.btn-color-indigo { background: rgba(79,70,229,0.10)   !important; color: #a5b4fc !important; border-color: rgba(79,70,229,0.30)   !important; box-shadow: none !important; }
        .btn.btn-color-blue   { background: rgba(29,78,216,0.10)   !important; color: #7baff8 !important; border-color: rgba(29,78,216,0.30)   !important; box-shadow: none !important; }
        .btn.btn-color-slate  { background: rgba(71,85,105,0.12)   !important; color: #94a3b8 !important; border-color: rgba(71,85,105,0.35)   !important; box-shadow: none !important; }
        .btn.btn-color-gray   { background: rgba(100,116,139,0.12) !important; color: #94a3b8 !important; border-color: rgba(100,116,139,0.35) !important; box-shadow: none !important; }
        .btn.btn-color-red    { background: rgba(220,38,38,0.10)   !important; color: #f87171 !important; border-color: rgba(220,38,38,0.30)   !important; box-shadow: none !important; }
        .btn.btn-color-amber  { background: rgba(217,119,6,0.10)   !important; color: #fbbf24 !important; border-color: rgba(217,119,6,0.28)   !important; box-shadow: none !important; }
        .btn.btn-color-sky    { background: rgba(59,130,246,0.10)  !important; color: #7baff8 !important; border-color: rgba(59,130,246,0.30)  !important; box-shadow: none !important; }
        .inv-ajuste::-webkit-inner-spin-button,
        .inv-ajuste::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
        .inv-ajuste { -moz-appearance:textfield; width:100px; text-align:right; padding:4px 6px; border-radius:5px; border:1px solid rgba(99,102,241,0.3); background:rgba(15,23,42,0.5); color:#e2e8f0; font-size:0.85rem; }
        .inv-tr { transition:background .15s; }
        .inv-td-code { padding:5px 8px; font-size:0.82rem; color:#94a3b8; }
        .inv-td-name { padding:5px 8px; font-size:0.85rem; font-weight:500; }
        .inv-td-umb  { padding:5px 8px; font-size:0.82rem; text-align:center; color:#94a3b8; }
        .inv-td-num  { padding:5px 8px; text-align:right; font-size:0.85rem; }
        .inv-td-input  { padding:4px 6px; text-align:center; }
        .inv-td-motivo { padding:4px 6px; }
        .inv-td-action { padding:4px 6px; text-align:center; }
        .inv-resultante { padding:5px 8px; text-align:right; font-size:0.85rem; color:#94a3b8; }
        .inv-motivo { width:100%; padding:4px 6px; border-radius:5px; border:1px solid rgba(99,102,241,0.3); background:rgba(15,23,42,0.5); color:#e2e8f0; font-size:0.82rem; }
        .inv-poner-cero { padding:3px 8px; border-radius:4px; border:1px solid rgba(248,113,113,0.4); background:rgba(248,113,113,0.12); color:#f87171; font-size:0.75rem; font-weight:600; cursor:pointer; white-space:nowrap; }


        #hist-comprobante-overlay input[type=number]::-webkit-inner-spin-button,
        #hist-comprobante-overlay input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
        #hist-comprobante-overlay input[type=number] { -moz-appearance: textfield; }

        .no-spinner::-webkit-outer-spin-button,
        .no-spinner::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
        .no-spinner { -moz-appearance: textfield; appearance: textfield; }
