    /* [FormV2] CSS heredado depurado: se quitaron las reglas del marcado anterior (cot-*, dg-*, tot-*, vt-*, sb-*, msl-*…);
       se conservan las que usan los componentes hijos (DetalleLineasGrid ctbl-*, buscadores, etc.).
       Las reglas genéricas (*, .btn, .card, .modal-*…) quedan acotadas a .fm-reg para no afectar otros módulos. */

    /* [FormV2] controles de componentes hijos (UcBuscarProveedor, UcBuscarProducto, grilla):
       mismo borde/radio que gv-inp, como hacía antes .cot-page--dialog */
    .fm-reg input:not([type=checkbox]):not([type=radio]):not([class*="gv-"]),
    .fm-reg select:not([class*="gv-"]),
    .fm-reg textarea:not([class*="gv-"]) {
        border-color: var(--de-line-strong);
        border-radius: 6px;
    }

    .fm-reg *, .fm-reg *::before, .fm-reg *::after {
        box-sizing: border-box !important;
    }

    .cot-status-badge {
        background: #fef3c7 !important;
        color: #b45309 !important;
        border: 1px solid #fcd34d !important;
        border-radius: 20px !important;
        padding: 3px 10px !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }

        .cot-status-badge.guardado {
            background: #dcfce7 !important;
            color: #15803d !important;
            border-color: #86efac !important;
        }

    .fm-reg .btn {
        border: none !important;
        border-radius: 6px !important;
        padding: 7px 14px !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        cursor: pointer !important;
        font-family: inherit !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 5px !important;
        transition: all .15s ease !important;
        white-space: nowrap !important;
        line-height: 1 !important;
        text-decoration: none !important;
    }

        .fm-reg .btn:disabled {
            opacity: .5 !important;
            cursor: not-allowed !important;
        }

    .fm-reg .btn-sm {
        padding: 5px 10px !important;
        font-size: 11px !important;
    }

    .btn-xs {
        padding: 3px 8px !important;
        font-size: 10.5px !important;
    }

    .fm-reg .btn-primary {
        background: #1d4ed8 !important;
        color: #fff !important;
    }

        .fm-reg .btn-primary:hover:not(:disabled) {
            background: #1e40af !important;
            box-shadow: 0 2px 8px rgba(29,78,216,.3) !important;
        }

    .fm-reg .btn-outline {
        background: #ffffff !important;
        color: #64748b !important;
        border: 1px solid #cbd5e1 !important;
    }

        .fm-reg .btn-outline:hover:not(:disabled) {
            background: #f8fafc !important;
            color: #0f172a !important;
            border-color: #cbd5e1 !important;
        }

    .fm-reg .btn-ghost {
        background: transparent !important;
        color: #64748b !important;
        border: 1px solid transparent !important;
    }

        .fm-reg .btn-ghost:hover:not(:disabled) {
            background: #f8fafc !important;
            color: #0f172a !important;
        }

    .btn-danger {
        background: #dc2626 !important;
        color: #fff !important;
    }

        .btn-danger:hover:not(:disabled) {
            background: #b91c1c !important;
        }

    .btn-success {
        background: #16a34a !important;
        color: #fff !important;
    }

        .btn-success:hover:not(:disabled) {
            background: #15803d !important;
        }

    .btn-wa {
        background: #25d366 !important;
        color: #fff !important;
    }

        .btn-wa:hover:not(:disabled) {
            background: #1aab4f !important;
        }

    .btn-mail {
        background: #ea4c89 !important;
        color: #fff !important;
    }

        .btn-mail:hover:not(:disabled) {
            background: #d63f7a !important;
        }

    .btn-pdf {
        background: #dc2626 !important;
        color: #fff !important;
    }

        .btn-pdf:hover:not(:disabled) {
            background: #b91c1c !important;
        }

    .btn-cambiar {
        background: #f8fafc !important;
        color: #64748b !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 5px !important;
        padding: 2px 8px !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        cursor: pointer !important;
        font-family: inherit !important;
        transition: all .15s !important;
        line-height: 1.4 !important;
    }

        .btn-cambiar:hover {
            background: #dbeafe !important;
            color: #1d4ed8 !important;
            border-color: #93c5fd !important;
        }

    .btn-del {
        background: none !important;
        border: none !important;
        color: #94a3b8 !important;
        cursor: pointer !important;
        font-size: 16px !important;
        line-height: 1 !important;
        padding: 2px 5px !important;
        border-radius: 5px !important;
        transition: all .15s !important;
        font-family: inherit !important;
    }

        .btn-del:hover {
            background: #fee2e2 !important;
            color: #dc2626 !important;
        }

    .meta-context-group {
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        flex-wrap: wrap !important;
        row-gap: 8px !important;
        flex-shrink: 0 !important;
    }

    .meta-sep-v {
        width: 1px !important;
        height: 22px !important;
        background: #e2e8f0 !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
    }

    .meta-label {
        color: #94a3b8 !important;
        font-weight: 600 !important;
    }

    .meta-val {
        font-weight: 700 !important;
        color: #374151 !important;
    }

    .meta-val-warn {
        font-weight: 700 !important;
        color: #b45309 !important;
    }

    @keyframes vtSlideUp {
        from {
            opacity: 0;
            transform: translateY(14px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    .dg-field--full {
        grid-column: 1 / -1 !important;
    }

    .dg-static-val {
        display: inline-block !important;
        padding: 5px 10px !important;
        background: #f8fafc !important;
        border: 1px solid #eef2f7 !important;
        border-radius: 7px !important;
        width: fit-content !important;
    }

    .dg-suc-alm {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
    }

    .dg-suc-sep {
        color: #cbd5e1 !important;
        font-weight: 700 !important;
    }

    /* ============================================================
                       SECCIÓN "PARÁMETROS" — Sucursal/Almacén, IGV y Tipo de
                       cambio agrupados antes del proveedor, con el mismo estilo
                       de badge (tc-badge) para que se vean como un solo lenguaje
                       visual consistente.
                       ============================================================ */
    .param-row {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 14px !important;
    }

    @media (max-width: 576px) {
        .param-row {
            flex-direction: column !important;
            align-items: stretch !important;
            gap: 12px !important;
        }
    }

    .fm-reg .card {
        background: #ffffff !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 10px !important;
        overflow: visible !important;
        box-shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04) !important;
    }

    .fm-reg .card-header {
        padding: 10px 14px !important;
        border-bottom: 1px solid #e2e8f0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        background: #f8fafc !important;
    }

    .fm-reg .card-title {
        font-size: 11.5px !important;
        font-weight: 800 !important;
        color: #64748b !important;
        text-transform: uppercase !important;
        letter-spacing: .06em !important;
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
    }

    .fm-reg .card-body {
        padding: 12px 14px !important;
    }

    .tag {
        display: inline-flex !important;
        align-items: center !important;
        border-radius: 4px !important;
        padding: 2px 8px !important;
        font-size: 10px !important;
        font-weight: 800 !important;
        letter-spacing: .03em !important;
        white-space: nowrap !important;
        line-height: 1.4 !important;
    }

    .tag-blue {
        background: #dbeafe !important;
        color: #1d4ed8 !important;
        border: 1px solid #93c5fd !important;
    }

    .tag-green {
        background: #dcfce7 !important;
        color: #15803d !important;
        border: 1px solid #86efac !important;
    }

    .tag-amber {
        background: #fef3c7 !important;
        color: #b45309 !important;
        border: 1px solid #fcd34d !important;
    }

    .tag-gray {
        background: #f8fafc !important;
        color: #64748b !important;
        border: 1px solid #cbd5e1 !important;
    }

    .tag-red {
        background: #fee2e2 !important;
        color: #dc2626 !important;
        border: 1px solid #fca5a5 !important;
    }

    .drop-item {
        padding: 9px 13px !important;
        cursor: pointer !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 2px !important;
        border-bottom: 1px solid #e2e8f0 !important;
        transition: background .1s !important;
    }

        .drop-item:last-child {
            border-bottom: none !important;
        }

        .drop-item:hover {
            background: #dbeafe !important;
        }

    .drop-name {
        font-size: 12.5px !important;
        font-weight: 700 !important;
        color: #0f172a !important;
    }

    .drop-sub {
        font-size: 11px !important;
        color: #94a3b8 !important;
    }

    .listas-hist {
        padding: 10px 14px !important;
        border-top: 1px solid #e2e8f0 !important;
        background: #fafcff !important;
    }

    .listas-hist-label {
        font-size: 10px !important;
        font-weight: 800 !important;
        color: #94a3b8 !important;
        text-transform: uppercase !important;
        letter-spacing: .06em !important;
        margin-bottom: 7px !important;
    }

    .lista-hist-row {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 6px 10px !important;
        border-radius: 8px !important;
        margin-bottom: 4px !important;
        border: 1px solid !important;
    }

    .lista-hist-name {
        font-size: 12px !important;
        font-weight: 700 !important;
        color: #374151 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .lista-hist-stats {
        font-size: 11px !important;
        color: #94a3b8 !important;
    }

    .no-lista {
        font-size: 12px !important;
        color: #94a3b8 !important;
        font-style: italic !important;
        padding: 4px 2px !important;
    }

    .prod-table-wrap {
        overflow-x: auto !important;
    }

    .prod-table {
        width: 100% !important;
        border-collapse: collapse !important;
        font-size: 12px !important;
        min-width: 900px !important;
    }

        .prod-table thead tr {
            background: #f8fafc !important;
            border-bottom: 1.5px solid #e2e8f0 !important;
        }

        .prod-table th {
            padding: 8px 9px !important;
            text-align: left !important;
            font-size: 10px !important;
            font-weight: 800 !important;
            color: #94a3b8 !important;
            text-transform: uppercase !important;
            letter-spacing: .06em !important;
            white-space: nowrap !important;
        }

            .prod-table th.col-r {
                text-align: right !important;
            }

            .prod-table th.col-c {
                text-align: center !important;
            }

        .prod-table td {
            padding: 7px 9px !important;
            border-bottom: 1px solid #e2e8f0 !important;
            vertical-align: top !important;
        }

        .prod-table tbody tr {
            transition: background .1s !important;
        }

            .prod-table tbody tr:hover td {
                background: #f8fafc !important;
            }

            .prod-table tbody tr.row-warn td {
                background: #fffceb !important;
            }

            .prod-table tbody tr.row-warn:hover td {
                background: #fef9c3 !important;
            }

            .prod-table tbody tr.row-alerta td {
                border-bottom: none !important;
                padding-top: 2px !important;
                padding-bottom: 7px !important;
            }

            .prod-table tbody tr.row-activa td {
                background: #dbeafe !important;
            }

            .prod-table tbody tr:last-child td {
                border-bottom: none !important;
            }

    .prod-desc-main {
        font-size: 12px !important;
        font-weight: 600 !important;
        color: #0f172a !important;
        line-height: 1.35 !important;
    }

    .prod-codes {
        display: flex !important;
        gap: 8px !important;
        margin-top: 2px !important;
    }

    .prod-code-chip {
        font-size: 10px !important;
        color: #94a3b8 !important;
        font-family: "JetBrains Mono", "Courier New", monospace !important;
    }

    .num-input {
        border: 1.5px solid #e2e8f0 !important;
        border-radius: 5px !important;
        padding: 4px 8px !important;
        text-align: right !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        color: #0f172a !important;
        outline: none !important;
        background: #f8fafc !important;
        font-family: inherit !important;
        transition: border-color .15s, background .15s !important;
        -moz-appearance: textfield !important;
    }

        .num-input::-webkit-outer-spin-button,
        .num-input::-webkit-inner-spin-button {
            -webkit-appearance: none !important;
            margin: 0 !important;
        }

        .num-input:focus {
            border-color: #1d4ed8 !important;
            background: #ffffff !important;
        }

        .num-input.w-qty {
            width: 65px !important;
        }

        .num-input.w-pct {
            width: 80px !important;
        }

    .semaforo {
        width: 10px !important;
        height: 10px !important;
        border-radius: 50% !important;
        display: inline-block !important;
        flex-shrink: 0 !important;
        margin: 0 auto !important;
    }

    .sem-rojo {
        background: #ef4444 !important;
        box-shadow: 0 0 0 3px rgba(239,68,68,.18) !important;
        animation: pulsoRojo 1.8s ease-in-out infinite !important;
    }

    .sem-amarillo {
        background: #f59e0b !important;
        box-shadow: 0 0 0 3px rgba(245,158,11,.18) !important;
    }

    .sem-verde {
        background: #22c55e !important;
        box-shadow: 0 0 0 3px rgba(34,197,94,.14) !important;
    }

    .badges-wrap {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 4px !important;
    }

    .lista-badge {
        border-radius: 5px !important;
        padding: 4px 9px !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        cursor: pointer !important;
        border: 1.5px solid !important;
        transition: all .15s !important;
        white-space: nowrap !important;
        line-height: 1.3 !important;
    }

        .lista-badge:hover {
            filter: brightness(.93) !important;
            transform: scale(1.03) !important;
        }

    .sin-precio-text {
        font-size: 11px !important;
        color: #94a3b8 !important;
        font-style: italic !important;
    }

    .precio-sel {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        flex-wrap: wrap !important;
    }

    .precio-valor {
        font-weight: 800 !important;
        color: #0f172a !important;
        font-size: 13px !important;
        font-family: "JetBrains Mono", "Courier New", monospace !important;
    }

    .precio-lista-tag {
        font-size: 10px !important;
        font-weight: 700 !important;
        border-radius: 4px !important;
        padding: 2px 7px !important;
        border: 1px solid !important;
    }

    .alert-linea-text {
        font-size: 11px !important;
        color: #b45309 !important;
        background: #fef3c7 !important;
        border-left: 3px solid #fcd34d !important;
        padding: 4px 10px !important;
        border-radius: 3px !important;
        line-height: 1.45 !important;
    }

    .mono-r {
        font-family: "JetBrains Mono", "Courier New", monospace !important;
        font-size: 11.5px !important;
        font-weight: 500 !important;
        text-align: right !important;
        display: block !important;
    }

        .mono-r.val-dscto {
            color: #dc2626 !important;
        }

        .mono-r.val-igv {
            color: #b45309 !important;
        }

        .mono-r.val-total {
            color: #15803d !important;
            font-weight: 700 !important;
        }

    .tot-layout--single {
        grid-template-columns: minmax(0, 640px) !important;
    }

    .fm-reg .tot-card-obs .card-body {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .tot-obs-label {
        font-size: 10.5px !important;
        font-weight: 700 !important;
        color: #6b7280 !important;
        text-transform: uppercase !important;
        letter-spacing: .3px !important;
    }

    .ins-tip {
        background: #dbeafe !important;
        border-color: #93c5fd !important;
    }

    .ins-info {
        background: #f8fafc !important;
        border-color: #e2e8f0 !important;
    }

    .action-bar {
        display: flex !important;
        gap: 7px !important;
        justify-content: flex-end !important;
        padding-bottom: 6px !important;
        flex-wrap: wrap !important;
    }

    .fm-reg .modal-overlay {
        position: fixed !important;
        inset: 0 !important;
        background: rgba(15,23,42,.35) !important;
        backdrop-filter: blur(2px) !important;
        z-index: var(--z-modal-3) !important; /* D-51 (era 500) */
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        animation: fadeIn .2s ease !important;
    }

    .fm-reg .modal-box {
        background: #ffffff !important;
        border-radius: 10px !important;
        width: min(92vw, 520px) !important;
        box-shadow: 0 8px 24px rgba(0,0,0,.12) !important;
        overflow: hidden !important;
        animation: scaleIn .2s ease !important;
    }

    .fm-reg .modal-header {
        padding: 14px 18px !important;
        border-bottom: 1px solid #e2e8f0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        background: #f8fafc !important;
    }

    .fm-reg .modal-title {
        font-size: 14px !important;
        font-weight: 800 !important;
        color: #0f172a !important;
    }

    .fm-reg .modal-body {
        padding: 18px !important;
    }

    .fm-reg .modal-footer {
        padding: 12px 18px !important;
        border-top: 1px solid #e2e8f0 !important;
        display: flex !important;
        justify-content: flex-end !important;
        gap: 8px !important;
        background: #f8fafc !important;
    }

    .acciones-box {
        display: flex !important;
        justify-content: center !important;
        gap: 4px !important;
    }

    .btn-min {
        min-width: 25px !important;
        height: 25px !important;
        padding: 0 6px !important;
        border-radius: 5px !important;
        border: 1px solid #c7d2fe !important;
        background: #f8fafc !important;
        color: #1e3a8a !important;
        font-size: 0.70rem !important;
        font-weight: 700 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        cursor: pointer !important;
        transition: all 0.12s ease !important;
    }

        .btn-min:hover {
            background: #eef2ff !important;
            border-color: #a5b4fc !important;
        }

        .btn-min.ia {
            color: #92400e !important;
            border-color: #fde68a !important;
        }

            .btn-min.ia:hover {
                background: #fef3c7 !important;
            }

    .chips {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 4px !important;
        margin-top: 4px !important;
    }

    .chip {
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        padding: 2px 6px !important;
        border-radius: 6px !important;
        font-size: 0.70rem !important;
        white-space: nowrap !important;
    }

    .chip-serie {
        background: #fef9c3 !important;
        border: 1px solid #fde68a !important;
        color: #525252 !important;
    }

    .chip-lote {
        background: #ffedd5 !important;
        border: 1px solid #fdba74 !important;
        color: #7c2d12 !important;
    }

    .chip-x {
        border: none !important;
        background: transparent !important;
        cursor: pointer !important;
        font-size: 0.70rem !important;
        color: #6b7280 !important;
        padding: 0 !important;
        line-height: 1 !important;
    }

        .chip-x:hover {
            color: #dc2626 !important;
        }

    .row-extra td {
        background: #fafafa !important;
        padding: 6px 10px !important;
        vertical-align: top !important;
    }

    .precio-panel {
        border: 1px solid #e5e7eb !important;
        border-radius: 8px !important;
        background: #ffffff !important;
        padding: 6px !important;
    }

    .precio-header {
        font-size: 0.75rem !important;
        font-weight: 600 !important;
        color: #374151 !important;
        margin-bottom: 6px !important;
    }

    .precio-grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
    }

    .precio-item {
        min-width: 140px !important;
        padding: 6px !important;
        border-radius: 6px !important;
        border: 1px solid #e5e7eb !important;
        background: #f9fafb !important;
        font-size: 0.70rem !important;
    }

    .lp-nombre {
        font-weight: 600 !important;
        color: #1f2937 !important;
        margin-bottom: 4px !important;
    }

    .lp-row {
        display: flex !important;
        justify-content: space-between !important;
        gap: 6px !important;
    }

    .lp-label {
        color: #6b7280 !important;
    }

    .m-ok {
        color: #065f46 !important;
        font-weight: 600 !important;
    }

    .m-low {
        color: #b91c1c !important;
        font-weight: 600 !important;
    }

    .precio-item.warn {
        border-color: #fecaca !important;
        background: #fef2f2 !important;
    }

    .code-action-badge {
        border: 1px solid #93c5fd !important;
        background: #eff6ff !important;
        color: #1e3a8a !important;
        font-weight: 800 !important;
        font-size: 0.65rem !important;
        padding: 1px 6px !important;
        border-radius: 5px !important;
        cursor: pointer !important;
        line-height: 1 !important;
    }

    .prod-code-chip.empty {
        background: #fff7ed !important;
        border-color: #fb923c !important;
        color: #9a3412 !important;
    }

    .ctbl-section {
        background: #ffffff !important;
        border: 1px solid #dde3ed !important;
        border-radius: 12px !important;
        padding: 13px 15px !important;
        margin-bottom: 10px !important;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
    }

    .ctbl-hdr {
        font-size: 10.5px !important;
        font-weight: 700 !important;
        color: #5a6a80 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.6px !important;
        margin-bottom: 11px !important;
    }

        .ctbl-hdr i {
            margin-right: 7px !important;
            color: #2f65c4 !important;
            opacity: 0.75 !important;
        }

    .ctbl-search-row {
        display: flex !important;
        gap: 7px !important;
        margin-bottom: 10px !important;
        align-items: center !important;
    }

    .ctbl-ac {
        flex: 1 !important;
        position: relative !important;
    }

    .ctbl-search-input {
        width: 100% !important;
        padding: 6px 10px !important;
        border: 1px solid #dde3ed !important;
        border-radius: 8px !important;
        font-size: 12.5px !important;
        color: #1a2740 !important;
        background: #ffffff !important;
        font-family: inherit !important;
        transition: border-color 0.15s, box-shadow 0.15s !important;
    }

        .ctbl-search-input:focus {
            outline: none !important;
            border-color: #2f65c4 !important;
            box-shadow: 0 0 0 2px rgba(47, 101, 196, 0.15) !important;
        }

    .ctbl-prod-dd {
        position: absolute !important;
        top: calc(100% + 2px) !important;
        left: 0 !important;
        right: 0 !important;
        background: #ffffff !important;
        border: 1px solid #c9d4e6 !important;
        border-radius: 10px !important;
        z-index: var(--z-desplegable) !important; /* D-51 (era 80) */
        max-height: 200px !important;
        overflow-y: auto !important;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
    }

    .ctbl-prod-item {
        padding: 7px 11px !important;
        cursor: pointer !important;
        border-bottom: 1px solid #f0f3f8 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 2px !important;
        transition: background 0.1s !important;
    }

        .ctbl-prod-item:last-of-type {
            border-bottom: none !important;
        }

        .ctbl-prod-item:hover,
        .ctbl-prod-item.ctbl-prod-sel {
            background: #eef3fc !important;
        }

        .ctbl-prod-item strong {
            font-size: 12px !important;
            font-weight: 600 !important;
            color: #1a2740 !important;
        }

        .ctbl-prod-item small {
            font-size: 10.5px !important;
            color: #5a6a80 !important;
        }

    .ctbl-prod-hint {
        font-size: 10px !important;
        color: #96a3b5 !important;
        padding: 4px 11px !important;
        background: #f7f9fc !important;
        border-top: 1px solid #dde3ed !important;
        border-radius: 0 0 10px 10px !important;
    }

        .ctbl-prod-hint i {
            margin-right: 4px !important;
        }

    .ctbl-asignar-btn {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 6px 13px !important;
        border: 1px solid #dde3ed !important;
        border-radius: 8px !important;
        background: #ffffff !important;
        cursor: pointer !important;
        font-family: inherit !important;
        font-size: 11.5px !important;
        color: #2f65c4 !important;
        font-weight: 500 !important;
        transition: background 0.15s, border-color 0.15s !important;
        white-space: nowrap !important;
    }

        .ctbl-asignar-btn i {
            font-size: 12px !important;
            color: #2f65c4 !important;
        }

        .ctbl-asignar-btn:hover {
            background: #eef3fc !important;
            border-color: #b5cfee !important;
        }

    .ctbl-outer {
        overflow-x: auto !important;
        border: 1px solid #dde3ed !important;
        border-radius: 10px !important;
        margin-bottom: 8px !important;
    }

    .ctbl-main {
        width: 100% !important;
        border-collapse: collapse !important;
        font-size: 11.5px !important;
    }

        .ctbl-main thead th {
            background: linear-gradient(180deg, #f0f5fc 0%, #e8f0fb 100%) !important;
            color: #5a6a80 !important;
            font-weight: 600 !important;
            padding: 7px 8px !important;
            border-bottom: 2px solid #b5cfee !important;
            white-space: nowrap !important;
            position: sticky !important;
            top: 0 !important;
            z-index: 5 !important;
        }

    .ctbl-th-dot {
        width: 16px !important;
        padding: 7px 5px !important;
    }

    .ctbl-th-num {
        width: 20px !important;
        text-align: center !important;
    }

    .ctbl-th-l {
        width: 62px !important;
        text-align: left !important;
    }

    .ctbl-th-desc {
        min-width: 175px !important;
        text-align: left !important;
    }

    .ctbl-th-c {
        width: 42px !important;
        text-align: center !important;
    }

    .ctbl-th-r {
        text-align: right !important;
        width: 74px !important;
    }

    .ctbl-th-acc {
        width: 58px !important;
        text-align: center !important;
    }

    .ctbl-prod-row {
        border-bottom: 1px solid #f0f4fa !important;
        transition: background 0.12s !important;
    }

        .ctbl-prod-row:hover > td {
            background: #fafcff !important;
        }

    .ctbl-main td {
        padding: 5px 8px !important;
        vertical-align: middle !important;
        color: #1a2740 !important;
    }

    .ctbl-td-input {
        padding: 3px 6px !important;
        font-size: 11.5px !important;
        border: 1px solid #dde3ed !important;
        border-radius: 5px !important;
        color: #1a2740 !important;
        background: #ffffff !important;
        font-family: inherit !important;
        transition: border-color 0.15s !important;
    }

        .ctbl-td-input:focus {
            outline: none !important;
            border-color: #2f65c4 !important;
            box-shadow: 0 0 0 2px rgba(47, 101, 196, 0.15) !important;
        }

        .ctbl-td-input[readonly] {
            background: #f7f9fc !important;
            color: #96a3b5 !important;
            border-color: transparent !important;
        }

    .ctbl-td-r {
        text-align: right !important;
    }

    .ctbl-td-c {
        text-align: center !important;
    }

    .ctbl-td-num {
        text-align: center !important;
        font-family: "Consolas", "Courier New", monospace !important;
    }

    .ctbl-desc-txt {
        font-size: 11.5px !important;
    }

    .ctbl-td-desc-cell {
        font-size: 11.5px !important;
    }

    .ctbl-td-desc-input {
        min-width: 150px !important;
    }

    .ctbl-muted {
        color: #96a3b5 !important;
        font-size: 11px !important;
    }

    .ctbl-bold {
        font-weight: 600 !important;
    }

    .ctbl-igv-val {
        color: #059669 !important;
        font-size: 11.5px !important;
    }

    .ctbl-total-val {
        font-weight: 700 !important;
        color: #2f65c4 !important;
        font-family: "Consolas", "Courier New", monospace !important;
        font-size: 11.5px !important;
    }

    .ctbl-dot {
        width: 9px !important;
        height: 9px !important;
        border-radius: 50% !important;
        display: inline-block !important;
        flex-shrink: 0 !important;
    }

    .ctbl-dot-ok {
        background: #16a34a !important;
    }

    .ctbl-dot-warn {
        background: #d97706 !important;
    }

    .ctbl-dot-err {
        background: #dc2626 !important;
    }

    .ctbl-igv {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 24px !important;
        height: 19px !important;
        border-radius: 4px !important;
        font-size: 9.5px !important;
        font-weight: 700 !important;
        cursor: pointer !important;
        user-select: none !important;
        transition: opacity 0.12s !important;
    }

        .ctbl-igv:hover {
            opacity: 0.72 !important;
        }

    .ctbl-igv-G {
        background: #dcfce7 !important;
        color: #15803d !important;
    }

    .ctbl-igv-E {
        background: #e0e7ff !important;
        color: #4338ca !important;
    }

    .ctbl-igv-I {
        background: #fef9c3 !important;
        color: #92400e !important;
    }

    .ctbl-igv-X {
        background: #f1f3f6 !important;
        color: #5a6a80 !important;
    }

    .ctbl-acc-row {
        display: flex !important;
        gap: 2px !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .ctbl-rib {
        width: 25px !important;
        height: 25px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 6px !important;
        border: none !important;
        background: transparent !important;
        cursor: pointer !important;
        font-size: 11.5px !important;
        transition: background 0.15s, border-color 0.15s, color 0.15s !important;
        color: #96a3b5 !important;
        font-family: inherit !important;
    }

    .ctbl-rib-ia:hover {
        background: #f0eeff !important;
        color: #5b3fc4 !important;
    }

    .ctbl-rib-del {
        background: #ffffff !important;
        border: 1px solid #f5b8b4 !important;
        color: #c0392b !important;
    }

        .ctbl-rib-del:hover {
            background: #fdf0ef !important;
            border-color: #c0392b !important;
            color: #c0392b !important;
        }

    .ctbl-mon-tag {
        font-size: 9.5px !important;
        font-weight: 600 !important;
        padding: 1px 5px !important;
        border-radius: 3px !important;
        display: inline-block !important;
        margin-left: 4px !important;
    }

    .ctbl-mon-PEN {
        background: #fff8e6 !important;
        color: #a06000 !important;
    }

    .ctbl-mon-USD {
        background: #e8f7ef !important;
        color: #1a7a4a !important;
    }

    .ctbl-sub-sl > td {
        background: #f5f8fd !important;
        padding: 7px 10px 9px 28px !important;
        border-bottom: 1px solid #e4ecf8 !important;
    }

    .ctbl-sub-inner {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 14px !important;
        align-items: flex-start !important;
    }

    .ctbl-sl-block {
        display: flex !important;
        flex-direction: column !important;
        gap: 5px !important;
        min-width: 160px !important;
    }

    .ctbl-sl-block-hdr {
        display: flex !important;
        align-items: center !important;
        gap: 5px !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        color: #5a6a80 !important;
    }

    .ctbl-sl-chips-row {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 4px !important;
        align-items: center !important;
    }

    .ctbl-sl-trigger {
        display: inline-flex !important;
        align-items: center !important;
        gap: 5px !important;
        padding: 3px 10px !important;
        border-radius: 20px !important;
        border: 1px solid !important;
        font-size: 10.5px !important;
        font-weight: 500 !important;
        cursor: pointer !important;
        background: transparent !important;
        transition: background 0.15s !important;
        white-space: nowrap !important;
        font-family: inherit !important;
    }

        .ctbl-sl-trigger i {
            font-size: 10px !important;
        }

    .ctbl-slt-serie {
        border-color: #b5cfee !important;
        color: #2f65c4 !important;
        background: #eef3fc !important;
    }

        .ctbl-slt-serie:hover {
            background: #d6e4f7 !important;
        }

    .ctbl-slt-lote {
        border-color: #a3d9be !important;
        color: #1a7a4a !important;
        background: #e8f7ef !important;
    }

        .ctbl-slt-lote:hover {
            background: #d1f0e0 !important;
        }

    .ctbl-slt-warn {
        border-color: #f0c060 !important;
        color: #a06000 !important;
        background: #fff8e6 !important;
    }

        .ctbl-slt-warn:hover {
            background: #ffe8a0 !important;
        }

    .ctbl-chip {
        display: inline-flex !important;
        align-items: center !important;
        gap: 3px !important;
        padding: 2px 8px !important;
        border-radius: 20px !important;
        font-size: 10px !important;
        font-weight: 500 !important;
        line-height: 1.4 !important;
    }

    .ctbl-chip-s {
        background: #eef3fc !important;
        color: #2f65c4 !important;
        border: 1px solid #b5cfee !important;
    }

    .ctbl-chip-l {
        background: #e8f7ef !important;
        color: #1a7a4a !important;
        border: 1px solid #a3d9be !important;
    }

    .ctbl-chip-x {
        cursor: pointer !important;
        opacity: 0.5 !important;
        font-size: 13px !important;
        margin-left: 1px !important;
        transition: opacity 0.12s !important;
        line-height: 1 !important;
        font-weight: 400 !important;
    }

        .ctbl-chip-x:hover {
            opacity: 1 !important;
        }

    .ctbl-alinl {
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        font-size: 10px !important;
        padding: 2px 7px !important;
        border-radius: 4px !important;
        font-weight: 500 !important;
    }

    .ctbl-al-ok {
        background: #e8f7ef !important;
        color: #1a7a4a !important;
    }

    .ctbl-al-warn {
        background: #fff8e6 !important;
        color: #a06000 !important;
    }

    .ctbl-sub-lista > td {
        background: #fafcff !important;
        padding: 5px 10px 7px 28px !important;
        border-bottom: 1px solid #e4ecf8 !important;
    }

    .ctbl-ltbl {
        width: 100% !important;
        border-collapse: collapse !important;
        font-size: 11px !important;
        max-width: 700px !important;
    }

        .ctbl-ltbl thead th {
            background: transparent !important;
            color: #96a3b5 !important;
            font-weight: 600 !important;
            font-size: 10px !important;
            padding: 3px 8px !important;
            border-bottom: 1px solid #dde3ed !important;
            text-align: right !important;
            white-space: nowrap !important;
        }

    .ctbl-ltbl-l {
        text-align: left !important;
    }

    .ctbl-ltbl tbody td {
        padding: 3px 8px !important;
        text-align: right !important;
        border-bottom: 1px solid #f0f4fa !important;
        vertical-align: middle !important;
        color: #1a2740 !important;
    }

    .ctbl-ltbl tbody tr:last-child td {
        border-bottom: none !important;
    }

    .ctbl-ltbl-nom {
        text-align: left !important;
        font-weight: 600 !important;
        color: #5a6a80 !important;
        font-size: 10.5px !important;
    }

    .ctbl-ltbl-hint {
        color: #96a3b5 !important;
    }

    .ctbl-ltbl-input {
        width: 72px !important;
        padding: 2px 5px !important;
        font-size: 11px !important;
        text-align: right !important;
        border: 1px solid #dde3ed !important;
        border-radius: 4px !important;
        background: #ffffff !important;
        color: #1a2740 !important;
        font-family: inherit !important;
        transition: border-color 0.15s !important;
    }

        .ctbl-ltbl-input:focus {
            outline: none !important;
            border-color: #2f65c4 !important;
        }

    .ctbl-ltbl-sm {
        width: 50px !important;
    }

    .ctbl-tot-wrap {
        display: grid !important;
        grid-template-columns: 1fr 265px !important;
        gap: 14px !important;
        align-items: start !important;
        margin-top: 10px !important;
    }

    .ctbl-tot-left {
        display: flex !important;
        flex-direction: column !important;
        gap: 9px !important;
    }

    .ctbl-nitems-row {
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
    }

    .ctbl-nitems {
        background: #eef3fc !important;
        color: #2f65c4 !important;
        border: 1px solid #b5cfee !important;
        border-radius: 20px !important;
        padding: 2px 12px !important;
        font-size: 12.5px !important;
        font-weight: 700 !important;
    }

    .ctbl-hint-mon {
        font-size: 10.5px !important;
        color: #96a3b5 !important;
        line-height: 1.6 !important;
        background: #f7f9fc !important;
        border: 1px solid #dde3ed !important;
        border-radius: 8px !important;
        padding: 8px 11px !important;
    }

        .ctbl-hint-mon i {
            color: #2f65c4 !important;
            margin-right: 5px !important;
            opacity: 0.75 !important;
        }

    .ctbl-tot-grid {
        background: #ffffff !important;
        border: 1px solid #dde3ed !important;
        border-radius: 12px !important;
        padding: 12px 14px !important;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
    }

    .ctbl-tot-row {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 4px 0 !important;
        font-size: 11.5px !important;
        border-bottom: 1px solid #f0f4fa !important;
    }

        .ctbl-tot-row:last-child {
            border: none !important;
        }

    .ctbl-tot-lbl {
        color: #5a6a80 !important;
    }

    .ctbl-tot-val {
        font-weight: 500 !important;
        color: #1a2740 !important;
        text-align: right !important;
        min-width: 82px !important;
        font-family: "Consolas", "Courier New", monospace !important;
        font-size: 11.5px !important;
    }

    .ctbl-tot-igv .ctbl-tot-lbl,
    .ctbl-tot-igv .ctbl-tot-val {
        color: #059669 !important;
        font-weight: 600 !important;
    }

    .ctbl-tot-final {
        border-top: 2px solid #d6e4f7 !important;
        margin-top: 3px !important;
        padding-top: 7px !important;
    }

        .ctbl-tot-final .ctbl-tot-lbl {
            font-weight: 700 !important;
            font-size: 12.5px !important;
            color: #2f65c4 !important;
        }

        .ctbl-tot-final .ctbl-tot-val {
            font-size: 14px !important;
            font-weight: 800 !important;
            color: #2f65c4 !important;
        }

    .msl-hdr-titles {
        flex: 1 !important;
    }

    .msl-assigned-lbl {
        width: 100% !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        color: #2f65c4 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.4px !important;
        margin-bottom: 3px !important;
    }

    .msl-chip-l {
        background: #e8f7ef !important;
        color: #1a7a4a !important;
        border: 1px solid #a3d9be !important;
    }

    .msl-section-lbl {
        font-size: 10.5px !important;
        font-weight: 700 !important;
        color: #5a6a80 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.4px !important;
        display: flex !important;
        align-items: center !important;
        gap: 5px !important;
    }

        .msl-section-lbl i {
            font-size: 11px !important;
        }

    .msl-search {
        margin-bottom: 0 !important;
    }

    .msl-add-btn {
        display: flex !important;
        align-items: center !important;
        gap: 5px !important;
        padding: 6px 13px !important;
        border-radius: 8px !important;
        border: 1px solid #b5cfee !important;
        background: #eef3fc !important;
        color: #2f65c4 !important;
        font-size: 12px !important;
        font-weight: 500 !important;
        cursor: pointer !important;
        white-space: nowrap !important;
        transition: background 0.15s !important;
        font-family: inherit !important;
    }

        .msl-add-btn:hover {
            background: #d6e4f7 !important;
        }

    .msl-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 3px !important;
        max-height: 180px !important;
        overflow-y: auto !important;
    }

    .msl-item {
        display: flex !important;
        align-items: center !important;
        gap: 9px !important;
        padding: 7px 10px !important;
        border: 1px solid #dde3ed !important;
        border-radius: 8px !important;
        cursor: pointer !important;
        font-size: 12px !important;
        color: #1a2740 !important;
        transition: background 0.12s, border-color 0.12s !important;
        user-select: none !important;
    }

        .msl-item input[type="checkbox"] {
            accent-color: #2f65c4 !important;
            width: 14px !important;
            height: 14px !important;
            flex-shrink: 0 !important;
            pointer-events: none !important;
        }

        .msl-item:hover {
            background: #eef3fc !important;
            border-color: #b5cfee !important;
        }

        .msl-item.msl-item-on {
            background: #eef3fc !important;
            border-color: #b5cfee !important;
        }

    .msl-item-check {
        margin-left: auto !important;
        font-size: 10px !important;
        color: #2f65c4 !important;
        font-weight: 600 !important;
    }

    .msl-empty {
        text-align: center !important;
        padding: 16px !important;
        color: #96a3b5 !important;
        font-size: 12px !important;
    }

        .msl-empty i {
            margin-right: 5px !important;
        }

    .msl-btn-cancel {
        display: flex !important;
        align-items: center !important;
        gap: 5px !important;
        padding: 6px 15px !important;
        border-radius: 8px !important;
        border: 1px solid #dde3ed !important;
        background: #ffffff !important;
        color: #5a6a80 !important;
        font-size: 12px !important;
        cursor: pointer !important;
        transition: background 0.13s !important;
        font-family: inherit !important;
    }

        .msl-btn-cancel:hover {
            background: #f3f5f8 !important;
        }

    .msl-btn-confirm {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 6px 16px !important;
        border-radius: 8px !important;
        border: 1px solid #b5cfee !important;
        background: #2f65c4 !important;
        color: #ffffff !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        cursor: pointer !important;
        transition: background 0.15s !important;
        box-shadow: 0 2px 8px rgba(47, 101, 196, 0.25) !important;
        font-family: inherit !important;
    }

        .msl-btn-confirm:hover {
            background: #1e4fa3 !important;
        }

    .chip-sub {
        margin-left: 6px !important;
        font-size: 11px !important;
        opacity: 0.7 !important;
    }

    .lista-hist-row.compact {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 6px 10px !important;
        margin-bottom: 4px !important;
        border-radius: 8px !important;
        background: #f6f8fa !important;
        border: 1px solid #e5e7eb !important;
        font-size: 12px !important;
        font-weight: 500 !important;
    }

    .badge-lista {
        font-size: 10px !important;
        padding: 2px 6px !important;
        border-radius: 6px !important;
        background: #e0f2fe !important;
        color: #0369a1 !important;
    }

    .cliente-panel-footer {
        display: flex !important;
        gap: 10px !important;
        padding: 10px !important;
        border-top: 1px solid #e5e7eb !important;
        font-size: 12px !important;
    }

        .cliente-panel-footer .item {
            flex: 1 !important;
            background: #f9fafb !important;
            padding: 6px 8px !important;
            border-radius: 6px !important;
        }

    .ia-box {
        background: #f9fafb !important;
        padding: 8px !important;
        border-radius: 8px !important;
        font-size: 12px !important;
    }

    .ia-card {
        background: #fff !important;
        border-left: 3px solid #3b82f6 !important;
        padding: 6px !important;
        margin-bottom: 6px !important;
        font-size: 12px !important;
        border-radius: 6px !important;
    }

    .lista-chip-container {
        padding: 8px !important;
    }

    .label {
        font-size: 10px !important;
        color: #6b7280 !important;
        margin-bottom: 4px !important;
    }

    .chip-row {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 4px !important;
    }

    .kpi-line {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        font-size: 11px !important;
        padding: 6px 8px !important;
        color: #374151 !important;
        white-space: nowrap !important;
    }

        .kpi-line span {
            display: flex !important;
            align-items: center !important;
            gap: 4px !important;
        }

        .kpi-line i {
            font-size: 11px !important;
            color: #2563eb !important;
        }

    .dot {
        color: #d1d5db !important;
    }

    .overlay-bg {
        position: fixed !important;
        inset: 0 !important;
        background: rgba(0,0,0,0.35) !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        z-index: var(--z-modal-3) !important; /* D-51 (era 9999) */
    }

    .overlay-panel {
        width: 85% !important;
        height: 75% !important;
        background: #fff !important;
        border-radius: 12px !important;
        overflow: hidden !important;
        box-shadow: 0 20px 50px rgba(0,0,0,.25) !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .overlay-header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 12px 14px !important;
        font-weight: 600 !important;
        background: #f8fafc !important;
        border-bottom: 1px solid #e5e7eb !important;
    }

    .close-btn {
        background: transparent !important;
        border: none !important;
        cursor: pointer !important;
        font-size: 14px !important;
    }

    .overlay-search {
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 10px 12px !important;
        border-bottom: 1px solid #eee !important;
    }

        .overlay-search input {
            width: 100% !important;
            border: none !important;
            outline: none !important;
            font-size: 13px !important;
        }

    .overlay-list {
        overflow-y: auto !important;
        max-height: 400px !important;
    }

    .overlay-item {
        padding: 10px 12px !important;
        cursor: pointer !important;
        border-bottom: 1px solid #f1f1f1 !important;
    }

        .overlay-item:hover {
            background: #f3f6ff !important;
        }

        .overlay-item .name {
            font-weight: 600 !important;
            font-size: 13px !important;
        }

        .overlay-item .meta {
            font-size: 11px !important;
            color: #6b7280 !important;
            display: flex !important;
            gap: 10px !important;
        }

    .full {
        grid-column: 1 / -1 !important;
    }

    .fm-reg .btn-hover {
        transition: transform .15s ease, opacity .15s ease, box-shadow .18s ease, filter .18s ease !important;
    }

        .fm-reg .btn-hover:hover {
            transform: translateY(-1px) !important;
            filter: brightness(1.03) !important;
            box-shadow: 0 4px 10px rgba(0,0,0,.10) !important;
        }

        .fm-reg .btn-hover:active {
            transform: scale(.97) !important;
            box-shadow: 0 1px 3px rgba(0,0,0,.10) !important;
        }

        .fm-reg .btn-hover:disabled {
            opacity: .6 !important;
            cursor: not-allowed !important;
            transform: none !important;
            box-shadow: none !important;
        }

    .acc-item {
        display: flex !important;
        align-items: center !important;
        gap: 9px !important;
        padding: 8px 11px !important;
        border-radius: 5px !important;
        font-size: 12px !important;
        color: #1a4fa8 !important;
        cursor: pointer !important;
        border: none !important;
        background: transparent !important;
        width: 100% !important;
        font-weight: 500 !important;
        transition: background .12s !important;
    }

        .acc-item:hover {
            background: #d5e8fb !important;
            color: #0f3a8a !important;
        }

        .acc-item:active {
            background: #bdd9f7 !important;
        }

        .acc-item i {
            color: #3b7dd8 !important;
            font-size: 15px !important;
        }

    .sesion-badge-pos1 {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 4px 8px !important;
        border-radius: 10px !important;
        background: #f1f5ff !important;
        border: 1px solid #dbeafe !important;
        flex-wrap: wrap !important;
    }

    .sb-item-pos1 {
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        font-size: 11px !important;
        font-weight: 500 !important;
        color: #334155 !important;
        background: #ffffff !important;
        border: 1px solid #e0e7ff !important;
        padding: 3px 9px !important;
        border-radius: 8px !important;
        white-space: nowrap !important;
    }

        .sb-item-pos1 i {
            font-size: 11px !important;
            color: #2563eb !important;
        }

    .afect-badge {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 25px !important;
        height: 25px !important;
        border-radius: 5px !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        cursor: pointer !important;
        border: 1px solid transparent !important;
        user-select: none !important;
        transition: opacity .15s, transform .1s !important;
        flex-shrink: 0 !important;
    }

        .afect-badge:hover {
            opacity: .8 !important;
        }

        .afect-badge:active {
            transform: scale(.9) !important;
        }

    .afect-G {
        background: #d1fae5 !important;
        color: #065f46 !important;
        border-color: #6ee7b7 !important;
    }

    .afect-E {
        background: #dbeafe !important;
        color: #1e40af !important;
        border-color: #93c5fd !important;
    }

    .afect-I {
        background: #fef9c3 !important;
        color: #854d0e !important;
        border-color: #fde047 !important;
    }

    .afect-X {
        background: #f3e8ff !important;
        color: #6b21a8 !important;
        border-color: #d8b4fe !important;
    }

    /* ============ KEYFRAMES (sin !important: no aplica dentro de @keyframes ) ============ */
    @keyframes pulsoRojo {
        0%, 100% {
            opacity: 1;
        }

        50% {
            opacity: .35;
        }
    }

    @keyframes dp {
        0%, 100% {
            opacity: .25;
            transform: scale(.8);
        }

        50% {
            opacity: 1;
            transform: scale(1);
        }
    }

    @keyframes toastIn {
        from {
            opacity: 0;
            transform: translateY(10px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    @keyframes fadeSlideIn {
        from {
            opacity: 0;
            transform: translateY(5px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    @keyframes fadeIn {
        from {
            opacity: 0;
        }

        to {
            opacity: 1;
        }
    }

    @keyframes scaleIn {
        from {
            opacity: 0;
            transform: scale(.96);
        }

        to {
            opacity: 1;
            transform: scale(1);
        }
    }

    @keyframes ctblIaFadeIn {
        from {
            opacity: 0;
            transform: translateY(-4px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    @keyframes mslShow {
        from {
            opacity: 0;
            transform: translateY(-10px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    @keyframes accOpen {
        from {
            opacity: 0;
            transform: translateY(-5px) scale(.97);
        }

        to {
            opacity: 1;
            transform: none;
        }
    }

    /* ---------- ≤992px: tablet horizontal ----------
                           A partir de aquí el panel IA deja de "empujar" el contenido y pasa a
                           ser un panel deslizante (off-canvas) que se abre con la manija/botón. */
    @media (max-width: 992px) {

        .prod-table {
            min-width: 720px !important;
        }
    }

    /* ---------- ≤768px: tablet vertical / móvil grande ---------- */
    @media (max-width: 768px) {

        .fm-reg .card-body {
            padding: 10px !important;
        }
    }

    /* ---------- ≤576px: móvil ---------- */
    @media (max-width: 576px) {

        .prod-table {
            min-width: 560px !important;
        }

        .fm-reg .btn {
            padding: 6px 10px !important;
        }
    }

    /* ---------- ≤480px: móvil chico ---------- */
    @media (max-width: 480px) {
        
        .cot-status-badge {
            font-size: 10px !important;
            padding: 2px 7px !important;
        }

        .fm-reg .card-header {
            padding: 8px 10px !important;
            flex-wrap: wrap !important;
            row-gap: 6px !important;
        }
    }
