/* === DPI identity layer ===
   Acentos inspirados en el logo y material de referencia:
   cyan, magenta y amarillo sobre una base limpia. */
:root {
    --dpi-cyan: #009fe3;
    --dpi-magenta: #e6007e;
    --dpi-yellow: #ffed00;
    --dpi-ink: #111827;
    --dpi-muted-surface: #f8fafc;
    --dpi-border: rgba(17, 24, 39, 0.10);
}

.fi-body {
    background-color: #f5f7fb !important;
}

.fi-main {
    background-color: transparent !important;
}

.fi-topbar {
    background-color: #050505 !important;
    border-color: var(--dpi-border) !important;
}

.fi-sidebar {
    background-color: #050505 !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

.fi-topbar-start a:has(> img.fi-logo) {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: 188px;
    max-width: 100%;
    padding: 0 0 0 12px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

img.fi-logo {
    width: 176px !important;
    height: auto !important;
    max-height: none !important;
    border-radius: 0;
    object-fit: contain;
}

.fi-topbar .fi-input-wrp {
    background-color: #ffffff !important;
}

.fi-topbar .fi-user-menu-trigger .fi-avatar {
    border: 1px solid rgba(255, 255, 255, 0.38);
}

.fi-header-heading {
    letter-spacing: -0.01em;
}

.fi-sidebar-nav::before {
    content: '';
    display: block;
    height: 3px;
    margin: 0 1rem 1rem;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--dpi-cyan), var(--dpi-magenta), var(--dpi-yellow));
}

.fi-sidebar-group-label,
.fi-sidebar-item-label,
.fi-sidebar-item a {
    color: rgba(255, 255, 255, 0.82) !important;
}

.fi-sidebar-group-button,
.fi-sidebar-item a {
    border-radius: 8px !important;
}

.fi-sidebar .fi-icon {
    color: rgba(255, 255, 255, 0.52) !important;
}

.fi-sidebar-item a[aria-current="page"],
.fi-sidebar-item.fi-active a {
    background:
        linear-gradient(90deg, rgba(0, 159, 227, 0.22), rgba(230, 0, 126, 0.18)) !important;
    color: #ffffff !important;
    font-weight: 600;
}

.fi-sidebar-item a:hover,
.fi-sidebar-item a:focus {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: #ffffff !important;
}

.fi-sidebar-item a:hover .fi-sidebar-item-label,
.fi-sidebar-item a:focus .fi-sidebar-item-label {
    color: #ffffff !important;
}

.fi-sidebar-item a:hover .fi-icon,
.fi-sidebar-item a:focus .fi-icon {
    color: var(--dpi-cyan) !important;
}

.fi-sidebar-item a[aria-current="page"]:hover,
.fi-sidebar-item.fi-active a:hover,
.fi-sidebar-item a[aria-current="page"]:focus,
.fi-sidebar-item.fi-active a:focus {
    background:
        linear-gradient(90deg, rgba(0, 159, 227, 0.25), rgba(230, 0, 126, 0.22)) !important;
    color: #ffffff !important;
}

.fi-sidebar-item a[aria-current="page"] .fi-icon,
.fi-sidebar-item.fi-active a .fi-icon {
    color: var(--dpi-yellow) !important;
}

.fi-section,
.fi-ta,
.fi-fo-field-wrp,
.fi-modal-window {
    border-color: var(--dpi-border) !important;
}

.fi-btn {
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    color: #334155 !important;
    transition:
        background-color 0.14s ease,
        border-color 0.14s ease,
        color 0.14s ease,
        transform 0.14s ease !important;
}

.fi-btn:hover,
.fi-btn:focus {
    background: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
    transform: translateY(-1px) !important;
}

.fi-btn:active {
    transform: translateY(0) !important;
}

.fi-btn-color-primary,
.fi-btn.fi-color-primary {
    background: #fff0f8 !important;
    border: 1px solid #f9a8d4 !important;
    color: #be0068 !important;
}

.fi-btn-color-primary:hover,
.fi-btn-color-primary:focus,
.fi-btn.fi-color-primary:hover,
.fi-btn.fi-color-primary:focus {
    background: #fce7f3 !important;
    border-color: var(--dpi-magenta) !important;
    color: #9d0058 !important;
}

.fi-btn-color-info,
.fi-btn.fi-color-info {
    background: #eff6ff !important;
    border: 1px solid #bfdbfe !important;
    color: #1d4ed8 !important;
}

.fi-btn-color-info:hover,
.fi-btn-color-info:focus,
.fi-btn.fi-color-info:hover,
.fi-btn.fi-color-info:focus {
    background: #dbeafe !important;
    border-color: #60a5fa !important;
    color: #1e40af !important;
}

.fi-btn-color-success,
.fi-btn.fi-color-success {
    background: #f0fdf4 !important;
    border: 1px solid #86efac !important;
    color: #15803d !important;
}

.fi-btn-color-success:hover,
.fi-btn-color-success:focus,
.fi-btn.fi-color-success:hover,
.fi-btn.fi-color-success:focus {
    background: #dcfce7 !important;
    border-color: #22c55e !important;
    color: #166534 !important;
}

.fi-btn-color-danger,
.fi-btn.fi-color-danger {
    background: #fff1f2 !important;
    border: 1px solid #fca5a5 !important;
    color: #dc2626 !important;
}

.fi-btn-color-danger:hover,
.fi-btn-color-danger:focus,
.fi-btn.fi-color-danger:hover,
.fi-btn.fi-color-danger:focus {
    background: #fee2e2 !important;
    border-color: #ef4444 !important;
    color: #b91c1c !important;
}

.fi-btn-color-warning,
.fi-btn.fi-color-warning {
    background: #fffbeb !important;
    border: 1px solid #fcd34d !important;
    color: #a16207 !important;
}

.fi-btn-color-warning:hover,
.fi-btn-color-warning:focus,
.fi-btn.fi-color-warning:hover,
.fi-btn.fi-color-warning:focus {
    background: #fef3c7 !important;
    border-color: #f59e0b !important;
    color: #854d0e !important;
}

.fi-btn-color-gray,
.fi-btn.fi-color-gray {
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    color: #334155 !important;
}

.fi-btn-color-gray:hover,
.fi-btn-color-gray:focus,
.fi-btn.fi-color-gray:hover,
.fi-btn.fi-color-gray:focus {
    background: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

.fi-btn svg {
    color: currentColor !important;
}

.fi-badge {
    border-radius: 6px !important;
}

.fi-tabs-item.dpi-order-filter-tab {
    --dpi-order-tab-accent: #64748b;
    --dpi-order-tab-bg: #f8fafc;
    --dpi-order-tab-hover: #f1f5f9;
    border-bottom: 2px solid transparent !important;
}

.fi-tabs-item.dpi-order-filter-tab-waiting {
    --dpi-order-tab-accent: #a16207;
    --dpi-order-tab-bg: #fff8cc;
    --dpi-order-tab-hover: #fff2a3;
}

.fi-tabs-item.dpi-order-filter-tab-in-process {
    --dpi-order-tab-accent: #0369a1;
    --dpi-order-tab-bg: #e0f2fe;
    --dpi-order-tab-hover: #bae6fd;
}

.fi-tabs-item.dpi-order-filter-tab-finished {
    --dpi-order-tab-accent: #15803d;
    --dpi-order-tab-bg: #dcfce7;
    --dpi-order-tab-hover: #bbf7d0;
}

.fi-tabs-item.dpi-order-filter-tab-cancelled {
    --dpi-order-tab-accent: #dc2626;
    --dpi-order-tab-bg: #fee2e2;
    --dpi-order-tab-hover: #fecaca;
}

.fi-tabs-item.dpi-order-filter-tab-priority {
    --dpi-order-tab-accent: var(--dpi-magenta);
    --dpi-order-tab-bg: #fce7f3;
    --dpi-order-tab-hover: #fbcfe8;
}

.fi-tabs-item.dpi-order-filter-tab-history {
    --dpi-order-tab-accent: #475569;
    --dpi-order-tab-bg: #f1f5f9;
    --dpi-order-tab-hover: #e2e8f0;
}

.fi-tabs-item.dpi-order-filter-tab .fi-tabs-item-label {
    color: #475569 !important;
}

.fi-tabs-item.dpi-order-filter-tab .fi-badge {
    background-color: var(--dpi-order-tab-bg) !important;
    border-color: color-mix(in srgb, var(--dpi-order-tab-accent) 22%, transparent) !important;
    color: var(--dpi-order-tab-accent) !important;
}

.fi-tabs-item.dpi-order-filter-tab:hover {
    background-color: var(--dpi-order-tab-hover) !important;
}

.fi-tabs-item.dpi-order-filter-tab.fi-active {
    background-color: var(--dpi-order-tab-bg) !important;
    border-bottom-color: var(--dpi-order-tab-accent) !important;
}

.fi-tabs-item.dpi-order-filter-tab.fi-active .fi-tabs-item-label {
    color: var(--dpi-order-tab-accent) !important;
    font-weight: 700 !important;
}

/* Pendientes requiere atención operativa, sin comunicar un error. */
.fi-tabs-item.dpi-customer-filter-tab-pending .fi-badge {
    background-color: #fff8cc !important;
    border-color: rgba(161, 98, 7, 0.2) !important;
    color: #a16207 !important;
}

.fi-tabs-item.dpi-customer-filter-tab-pending:hover,
.fi-tabs-item.dpi-customer-filter-tab-pending.fi-active {
    background-color: #fff8cc !important;
}

.fi-tabs-item.dpi-customer-filter-tab-pending.fi-active {
    border-bottom: 2px solid #a16207 !important;
}

.fi-tabs-item.dpi-customer-filter-tab-pending.fi-active .fi-tabs-item-label {
    color: #92400e !important;
    font-weight: 700 !important;
}

/* Jerarquía tipográfica global: que títulos, grupos, labels y
   texto de contenido no compitan todos con el mismo peso. */
.fi-section-header-heading,
.fi-modal-heading {
    color: #0f172a !important;
    font-weight: 750 !important;
    letter-spacing: -0.005em;
}

.fi-section-header-description,
.fi-fo-field-wrp-helper-text,
.fi-in-entry-wrp-helper-text {
    color: #64748b !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}

.fi-fo-field-wrp-label span,
.fi-in-entry-wrp-label {
    color: #111827 !important;
    font-size: 13px !important;
    font-weight: 650 !important;
}

.fi-input,
.fi-textarea,
.fi-select-input,
.fi-select-input-value-label {
    color: #111827 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
}

.fi-global-search-results-ctn {
    border-color: rgba(15, 23, 42, 0.12) !important;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.16) !important;
}

.fi-global-search-result-group-header {
    background: #f1f5f9 !important;
    border-bottom: 1px solid #e2e8f0 !important;
    border-left: 3px solid var(--dpi-magenta);
    color: #475569 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 0.045em;
    line-height: 1.2 !important;
    padding: 9px 12px !important;
    text-transform: uppercase;
}

.fi-global-search-result-link {
    padding-block: 10px !important;
}

.fi-global-search-result-heading {
    color: #111827 !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
}

.fi-global-search-result-details,
.fi-global-search-result-detail {
    color: #64748b !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

.fi-global-search-result-detail-label {
    color: #94a3b8 !important;
    font-weight: 650 !important;
}

.fi-ta-table thead {
    background:
        linear-gradient(90deg, rgba(0, 159, 227, 0.035), rgba(230, 0, 126, 0.025)),
        #ffffff !important;
}

/* La flecha identifica la columna y el sentido del orden activo. */
.fi-ta-table thead .fi-ta-header-cell-sorted .fi-ta-header-cell-sort-btn > .fi-icon:not(.fi-loading-indicator) {
    color: var(--dpi-magenta) !important;
}

/* Separadores verticales sutiles solo entre columnas con datos.
   Checkbox, espaciadores, acciones y las tarjetas mobile quedan libres. */
@media (min-width: 641px) {
    .fi-ta-table thead .fi-ta-header-cell:not(.fi-ta-empty-header-cell),
    .fi-ta-table tbody .fi-ta-cell:not(.fi-ta-selection-cell):not(:has(.fi-ta-actions)) {
        border-inline-end: 1px solid var(--dpi-table-column-divider) !important;
    }
}

/* En escritorio: resumen a la izquierda, páginas al centro y el
   selector secundario de cantidad por página a la derecha. */
@container (min-width: 56rem) {
    .fi-pagination .fi-pagination-overview {
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
    }

    .fi-pagination .fi-pagination-items {
        grid-column: 2;
        grid-row: 1;
        justify-self: center !important;
    }

    .fi-pagination .fi-pagination-records-per-page-select-ctn {
        grid-column: 3 !important;
        grid-row: 1;
        justify-self: end !important;
    }
}

.fi-pagination-items.dpi-pagination-items-enhanced {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none !important;
    gap: 6px;
    padding: 0;
}

.fi-pagination-items.dpi-pagination-items-enhanced > .fi-pagination-item {
    display: none !important;
}

.dpi-pagination-custom-item,
.dpi-pagination-jump {
    align-items: center;
    display: flex;
}

.dpi-pagination-nav button {
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--gray-300);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
    color: var(--gray-600);
    display: flex;
    font-size: 1rem;
    height: 34px;
    justify-content: center;
    transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
    width: 34px;
}

.dpi-pagination-nav button:hover:not(:disabled) {
    background: #ffffff;
    border-color: var(--dpi-magenta);
    box-shadow:
        0 0 0 1px var(--dpi-magenta),
        0 1px 2px rgba(15, 23, 42, 0.08);
    color: var(--dpi-magenta);
}

.dpi-pagination-nav button:disabled {
    background: var(--gray-50);
    border-color: var(--gray-200);
    box-shadow: none;
    color: var(--gray-300);
    cursor: default;
}

.dpi-pagination-jump label {
    align-items: center;
    color: var(--gray-500);
    display: flex;
    font-size: 0.8125rem;
    gap: 7px;
    padding-inline: 4px;
    white-space: nowrap;
}

.dpi-pagination-jump input {
    appearance: textfield;
    background: #ffffff;
    border: 1px solid var(--gray-300);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
    color: var(--gray-900);
    font-size: 0.875rem;
    font-weight: 600;
    height: 34px;
    padding: 0 9px;
    text-align: center;
    width: 56px;
}

.dpi-pagination-jump input::-webkit-inner-spin-button,
.dpi-pagination-jump input::-webkit-outer-spin-button {
    appearance: none;
    margin: 0;
}

.dpi-pagination-jump input:focus {
    border-color: var(--dpi-magenta);
    box-shadow:
        0 0 0 1px var(--dpi-magenta),
        0 1px 2px rgba(15, 23, 42, 0.08);
    outline: none;
}

@media (max-width: 640px) {
    .dpi-pagination-jump label {
        justify-content: center;
    }
}

/* Los tooltips no deben ensancharse con URLs u otras palabras
   largas sin espacios: ancho acotado y corte de palabra. */
.tippy-box {
    max-width: 260px !important;
}

.tippy-box[data-theme~="dpi-cell-tooltip"] {
    max-width: 300px !important;
}

.tippy-box[data-theme~="dpi-cell-tooltip"] .tippy-content {
    overflow-wrap: break-word;
    word-break: normal;
}

.tippy-content {
    overflow-wrap: anywhere;
    white-space: pre-line;
    word-break: break-word;
}

.fi-ta-cell:has(> .fi-ta-actions) {
    vertical-align: top !important;
}

.fi-ta-table tbody tr {
    height: 72px !important;
}

.fi-ta-table tbody tr > .fi-ta-cell {
    height: 64px !important;
}

.fi-ta-table tbody tr > .fi-ta-cell > * {
    max-height: 54px;
    overflow: hidden;
}

.fi-ta-table tbody tr > .fi-ta-cell.dpi-status-cell > * {
    max-height: none;
    overflow: visible;
}

/* Todo el contenido arriba de la celda (1 o más líneas),
   incluido checkbox, espaciador y acciones. Global a todas las
   tablas actuales y futuras. */
.fi-ta-table tbody tr > .fi-ta-cell {
    vertical-align: top !important;
}

.fi-ta-content-ctn {
    overflow-x: auto !important;
    overflow-y: hidden;
}

.fi-ta-content-ctn.dpi-table-dragging,
.fi-ta-content-ctn.dpi-table-dragging * {
    cursor: grabbing !important;
    user-select: none !important;
}

.fi-ta-table {
    --dpi-table-column-divider: rgba(148, 163, 184, 0.12);
    --dpi-table-line-height: 1.35;
    max-width: 100% !important;
    min-width: 0 !important;
    table-layout: auto;
    width: 100% !important;
}

.fi-ta-table :is(th, td):first-child:has(input[type="checkbox"]) {
    box-sizing: border-box;
    min-width: 40px !important;
    padding-left: 10px !important;
    padding-right: 8px !important;
    text-align: center !important;
    width: 40px !important;
}

.fi-ta-table :is(th, td):first-child:has(input[type="checkbox"]) label,
.fi-ta-table :is(th, td):first-child:has(input[type="checkbox"]) .fi-checkbox,
.fi-ta-table :is(th, td):first-child:has(input[type="checkbox"]) .fi-checkbox-input {
    margin-left: auto !important;
    margin-right: auto !important;
}

.fi-ta-table .fi-checkbox-input {
    transition: box-shadow 120ms ease, background-color 120ms ease !important;
}

.fi-ta-table .fi-checkbox-input:hover:not(:checked) {
    box-shadow:
        0 0 0 1px var(--dpi-magenta),
        0 0 0 4px rgba(230, 0, 126, 0.12) !important;
}

.dpi-table-cell-bulleted .dpi-table-cell-line {
    align-items: baseline;
    display: flex;
    gap: 6px;
}

.dpi-table-cell-bulleted .dpi-table-cell-line::before {
    content: "∙";
    flex: 0 0 auto;
}

/* Selección uniforme sin posicionar la celda ni alterar el layout de la tabla. */
.fi-ta-table .fi-ta-row.fi-selected > :first-child {
    position: static !important;
}

.fi-ta-table .fi-ta-row.fi-selected > :first-child::before {
    display: none !important;
}

.fi-ta-selection-indicator {
    display: none !important;
}

.fi-ta-header-toolbar {
    align-items: center !important;
    min-height: 63px;
}

.fi-ta-header-toolbar .fi-ta-actions {
    align-items: center !important;
    min-height: 38px;
}

.fi-ta-header-toolbar .fi-ta-actions .fi-btn {
    height: 36px;
    min-height: 36px;
    transform: none !important;
}

.fi-ta-header-toolbar .fi-ta-actions .fi-btn:hover,
.fi-ta-header-toolbar .fi-ta-actions .fi-btn:focus,
.fi-ta-header-toolbar .fi-ta-actions .fi-btn:active {
    transform: none !important;
}

/* === Anchos de columna (table-layout: auto, estilo Excel) ===
   TODAS las columnas se ajustan a su contenido (auto-fit) y se
   empacan a la izquierda. El sobrante lo absorbe una columna
   espaciadora vacía (.dpi-col-spacer), que deja el hueco en el
   medio y empuja el grupo derecho (aprobación/estado/acciones)
   contra el borde. No hay anchos en px a mano.

   - Columnas chicas: hug a su contenido (nowrap), sin tope.
   - Columnas de texto: hug a su contenido hasta un tope; si lo
     superan, truncan con ellipsis (producto, trabajo, detalle,
     nombres y emails largos). Así nunca hay scroll horizontal. */
/* Columnas chicas: prefieren su contenido (width: max-content)
   para NO dejarse apretar por el espaciador, y nunca truncan. */
.fi-ta-table :is(th, td).dpi-col-number,
.fi-ta-table :is(th, td).dpi-col-date,
.fi-ta-table :is(th, td).dpi-col-money,
.fi-ta-table :is(th, td).dpi-col-document,
.fi-ta-table :is(th, td).dpi-col-phone,
.fi-ta-table :is(th, td).dpi-col-status,
.fi-ta-table :is(th, td).dpi-col-order-status,
.fi-ta-table :is(th, td).dpi-col-type,
.fi-ta-table :is(th, td).dpi-col-compact {
    box-sizing: border-box;
    white-space: nowrap;
}

/* El contenido de dos líneas (fecha/total/teléfono) trae ellipsis
   propio; lo desactivamos para que la columna se mida por su
   contenido real y lo muestre completo. */
.fi-ta-table td:is(.dpi-col-date, .dpi-col-money, .dpi-col-phone) > *,
.fi-ta-table td:is(.dpi-col-date, .dpi-col-money, .dpi-col-phone) [data-dpi-truncate] {
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    width: auto !important;
}

/* Columnas de texto: prefieren su contenido hasta un tope; si lo
   superan, truncan con ellipsis (producto, trabajo, detalle,
   nombres y emails largos). */
.fi-ta-table :is(th, td).dpi-col-main,
.fi-ta-table :is(th, td).dpi-col-email,
.fi-ta-table :is(th, td).dpi-col-text,
.fi-ta-table :is(th, td).dpi-col-detail {
    box-sizing: border-box;
    max-width: 210px;
    min-width: 0;
}

/* El contenedor interno de las celdas de texto se mide por su
   contenido (no width:100%) para sostener el ancho frente al
   espaciador; capado al tope y con overflow oculto, las líneas
   internas truncan con ellipsis recién al superar el tope. */
.fi-ta-table td:is(.dpi-col-main, .dpi-col-text, .dpi-col-detail, .dpi-col-email) > * {
    max-width: 210px !important;
    overflow: hidden !important;
    width: max-content !important;
}

/* El email suele ser más largo y solo aparece en Clientes, donde
   sobra lugar: le damos más tope que al resto del texto. */
.fi-ta-table :is(th, td).dpi-col-email {
    max-width: 280px;
}

.fi-ta-table td.dpi-col-email > * {
    max-width: 280px !important;
}

/* Pedidos aprovecha el ancho disponible en sus columnas operativas.
   Cada columna conserva auto-fit por contenido y recién trunca al
   alcanzar su tope; el grupo derecho permanece intacto. */
.fi-ta-table:has(tbody .dpi-order-status-row) :is(th, td).dpi-col-text:not(.dpi-col-additionals) {
    max-width: 260px;
}

.fi-ta-table:has(tbody .dpi-order-status-row) td.dpi-col-text:not(.dpi-col-additionals) > * {
    max-width: 260px !important;
}

.fi-ta-table:has(tbody .dpi-order-status-row) :is(th, td).dpi-col-main {
    max-width: 320px;
}

.fi-ta-table:has(tbody .dpi-order-status-row) td.dpi-col-main > * {
    max-width: 320px !important;
}

.fi-ta-table:has(tbody .dpi-order-status-row) :is(th, td).dpi-col-additionals {
    max-width: 300px;
}

.fi-ta-table:has(tbody .dpi-order-status-row) td.dpi-col-additionals > * {
    max-width: 300px !important;
}

.fi-ta-table:has(tbody .dpi-order-status-row) :is(th, td).dpi-col-detail {
    max-width: 340px;
}

.fi-ta-table:has(tbody .dpi-order-status-row) td.dpi-col-detail > * {
    max-width: 340px !important;
}

/* Primera columna visible: se deja respirar sin tope para evaluar
   cuánto ocupa el contenido real. Cubre tablas con checkbox
   inicial y tablas sin checkbox. */
.fi-ta-table tr > :is(th, td):first-child:is(.dpi-col-main, .dpi-col-number),
.fi-ta-table tr > :is(th, td):first-child + :is(th, td):is(.dpi-col-main, .dpi-col-number) {
    max-width: none !important;
}

.fi-ta-table tbody tr > td:first-child:is(.dpi-col-main, .dpi-col-number) > *,
.fi-ta-table tbody tr > td:first-child + td:is(.dpi-col-main, .dpi-col-number) > * {
    max-width: none !important;
    width: max-content !important;
}

/* Espaciador: se come todo el sobrante (el hueco del medio). */
.fi-ta-table :is(th, td).dpi-col-spacer {
    padding: 0 !important;
    width: 100%;
}

.fi-ta-table .fi-ta-actions-header-cell,
.fi-ta-table :is(th, td):has(.fi-ta-actions) {
    box-sizing: border-box;
    min-width: 88px !important;
    padding-left: 8px !important;
    padding-right: 18px !important;
    width: 88px !important;
}

.fi-ta-cell .fi-ta-actions {
    align-items: flex-start;
    justify-content: flex-end;
    min-width: 56px !important;
    overflow: visible !important;
    width: 100% !important;
}

.fi-ta-table tr:has(.dpi-edit-action),
.fi-ta-table tr:has(.dpi-row-link-target) {
    cursor: pointer;
}

.fi-ta-table tr:has(.dpi-edit-action) > .fi-ta-cell:first-child:has(input[type="checkbox"]),
.fi-ta-table tr:has(.dpi-row-link-target) > .fi-ta-cell:first-child:has(input[type="checkbox"]),
.fi-ta-table tr:has(.dpi-edit-action) > .fi-ta-cell:has(.fi-ta-actions),
.fi-ta-table tr:has(.dpi-row-link-target) > .fi-ta-cell:has(.fi-ta-actions) {
    cursor: default;
}

.fi-ta-table input[type="checkbox"],
.fi-ta-table label:has(input[type="checkbox"]),
.fi-ta-actions a,
.fi-ta-actions button,
.fi-ta-actions [role="button"] {
    cursor: pointer !important;
}

.fi-ta-table tr:has(.dpi-edit-action):hover > .fi-ta-cell,
.fi-ta-table tr:has(.dpi-row-link-target):hover > .fi-ta-cell {
    background-color: #f9fafb !important;
}

.fi-ta-table tr.dpi-order-status-waiting {
    --dpi-order-row-bg: #fff8cc;
    --dpi-order-row-hover: #fff2a3;
    --dpi-order-row-text: #111827;
    --dpi-order-row-muted: #475569;
    --dpi-order-row-border: #fde68a;
    --dpi-order-row-accent: #ca8a04;
}

.fi-ta-table tr.dpi-order-status-in-process {
    --dpi-order-row-bg: #e0f2fe;
    --dpi-order-row-hover: #bae6fd;
    --dpi-order-row-text: #111827;
    --dpi-order-row-muted: #475569;
    --dpi-order-row-border: #7dd3fc;
    --dpi-order-row-accent: #0284c7;
}

.fi-ta-table tr.dpi-order-status-finished {
    --dpi-order-row-bg: #dcfce7;
    --dpi-order-row-hover: #bbf7d0;
    --dpi-order-row-text: #111827;
    --dpi-order-row-muted: #475569;
    --dpi-order-row-border: #86efac;
    --dpi-order-row-accent: #16a34a;
}

.fi-ta-table tr.dpi-order-status-cancelled {
    --dpi-order-row-bg: #fee2e2;
    --dpi-order-row-hover: #fecaca;
    --dpi-order-row-text: #111827;
    --dpi-order-row-muted: #475569;
    --dpi-order-row-border: #fca5a5;
    --dpi-order-row-accent: #dc2626;
}

.fi-ta-table tr.dpi-order-status-row > .fi-ta-cell {
    background-color: var(--dpi-order-row-bg) !important;
    border-color: var(--dpi-order-row-border) !important;
    color: var(--dpi-order-row-text) !important;
    height: auto !important;
    min-height: 64px;
}

.fi-ta-table tr.dpi-order-status-row {
    height: auto !important;
    min-height: 72px;
}

.fi-ta-table tr.dpi-order-status-row > .fi-ta-cell > * {
    max-height: none;
}

.fi-ta-table tr.dpi-order-status-row:hover > .fi-ta-cell {
    background-color: var(--dpi-order-row-hover) !important;
}

.fi-ta-table tr.dpi-order-status-row > .fi-ta-cell:first-child {
    box-shadow: inset 4px 0 0 var(--dpi-order-row-accent) !important;
}

.fi-ta-table tr.dpi-order-status-row :is(
    .fi-ta-text,
    .fi-ta-text-item,
    .fi-ta-text-item-label,
    .fi-ta-text-description,
    [data-dpi-truncate],
    [data-dpi-truncate] *,
    a,
    span
) {
    color: var(--dpi-order-row-text) !important;
}

.fi-ta-table tr.dpi-order-status-row :is(.fi-ta-text-description, [data-dpi-secondary]) {
    color: var(--dpi-order-row-muted) !important;
}

.fi-ta-table tr.dpi-order-status-row .dpi-status-cell .fi-badge {
    background-color: rgba(255, 255, 255, 0.92) !important;
    border-color: rgba(17, 24, 39, 0.18) !important;
    color: #111827 !important;
}

.fi-ta-table tr.dpi-order-status-row .fi-ta-actions :is(.fi-icon, svg) {
    color: var(--dpi-order-row-text) !important;
    opacity: 0.88 !important;
}

.fi-ta-table tr.dpi-order-status-row .fi-ta-actions :is(a, button):hover :is(.fi-icon, svg),
.fi-ta-table tr.dpi-order-status-row .fi-ta-actions :is(a, button):focus :is(.fi-icon, svg) {
    color: var(--dpi-order-row-text) !important;
    opacity: 1 !important;
}

.fi-ta-table tr.dpi-order-status-row.dpi-priority-row > .fi-ta-cell:first-child {
    box-shadow: inset 6px 0 0 #E6007E !important;
}

.fi-ta-table .fi-ta-row.fi-selected > .fi-ta-cell:first-child {
    box-shadow: inset 3px 0 0 var(--dpi-magenta) !important;
}

.fi-ta-actions .dpi-row-link-target {
    display: none !important;
}

.fi-ta-table .fi-ta-text,
.fi-ta-table .fi-ta-text-item,
.fi-ta-table .fi-ta-text-item-label,
.fi-ta-table [data-dpi-truncate] {
    line-height: var(--dpi-table-line-height) !important;
}

.fi-ta-text-description {
    color: #4b5563 !important;
    font-size: 13px !important;
    line-height: var(--dpi-table-line-height) !important;
    margin-top: 0 !important;
}

:is(.fi-ta-text.fi-ta-text-has-descriptions, .fi-ta-text.fi-ta-text-list-limited).fi-ta-text-has-badges {
    row-gap: 2px !important;
}

/* El estado usa el mismo inicio vertical que el resto de la fila,
   pero badge y fecha quedan centrados entre sí. */
.dpi-status-cell .fi-ta-text.fi-ta-text-has-descriptions.fi-ta-text-has-badges {
    padding-bottom: 0 !important;
}

.dpi-status-cell .fi-ta-text,
.dpi-status-cell .fi-ta-text-item,
.dpi-status-cell .fi-ta-text-description {
    text-align: center !important;
}

.dpi-status-cell .fi-ta-text-item {
    justify-content: center !important;
}

.dpi-status-cell .fi-ta-text-description {
    width: 100% !important;
}

.dpi-status-cell .fi-badge {
    flex: 0 0 auto !important;
}

.fi-ta-actions .fi-ac-action.fi-disabled,
.fi-ta-actions .fi-ac-action[disabled],
.fi-ta-actions .fi-icon-btn.fi-disabled,
.fi-ta-actions .fi-icon-btn[disabled],
.fi-ta-actions button:disabled,
.fi-ta-actions a[aria-disabled="true"] {
    opacity: 0.3 !important;
}

.fi-ta-actions .fi-ac-action.fi-disabled .fi-icon,
.fi-ta-actions .fi-ac-action[disabled] .fi-icon,
.fi-ta-actions .fi-icon-btn.fi-disabled .fi-icon,
.fi-ta-actions .fi-icon-btn[disabled] .fi-icon,
.fi-ta-actions button:disabled .fi-icon,
.fi-ta-actions a[aria-disabled="true"] .fi-icon {
    color: #9ca3af !important;
}

.fi-ta-actions .fi-color-gray .fi-icon {
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .fi-color-gray:hover .fi-icon,
.fi-ta-actions .fi-color-gray:focus .fi-icon {
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-actions .fi-color-gray:active .fi-icon {
    color: #374151 !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-neutral-row-action,
.fi-ta-actions .dpi-neutral-row-action:active {
    background-color: transparent !important;
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-neutral-row-action .fi-icon {
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-neutral-row-action:hover,
.fi-ta-actions .dpi-neutral-row-action:focus {
    background-color: transparent !important;
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-neutral-row-action:hover .fi-icon,
.fi-ta-actions .dpi-neutral-row-action:focus .fi-icon {
    color: #4b5563 !important;
    opacity: 1 !important;
}

.dpi-favorite-action .fi-icon {
    transform: translateY(-1px);
}

.fi-ta-actions .dpi-favorite-action,
.fi-ta-actions .dpi-favorite-action:hover,
.fi-ta-actions .dpi-favorite-action:focus,
.fi-ta-actions .dpi-favorite-action:active {
    background-color: transparent !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-favorite-action .fi-ac-action-label,
.fi-ta-actions .dpi-favorite-action .fi-icon-btn-label,
.fi-ta-actions .dpi-favorite-action .fi-loading-indicator {
    display: none !important;
}

.dpi-favorite-action-off .fi-icon {
    color: #9ca3af !important;
}

.dpi-favorite-action-off:hover .fi-icon,
.dpi-favorite-action-off:focus .fi-icon {
    color: #f59e0b !important;
}

.dpi-favorite-action-on .fi-icon {
    color: #f59e0b !important;
}

.fi-ta-actions .dpi-priority-action,
.fi-ta-actions .dpi-priority-action:hover,
.fi-ta-actions .dpi-priority-action:focus,
.fi-ta-actions .dpi-priority-action:active {
    background-color: transparent !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-priority-action .fi-ac-action-label,
.fi-ta-actions .dpi-priority-action .fi-icon-btn-label,
.fi-ta-actions .dpi-priority-action .fi-loading-indicator {
    display: none !important;
}

.dpi-priority-action-off .fi-icon {
    color: #9ca3af !important;
}

.dpi-priority-action-off:hover .fi-icon,
.dpi-priority-action-off:focus .fi-icon {
    color: #e11d48 !important;
}

.dpi-priority-action-on .fi-icon {
    color: #e11d48 !important;
}

.fi-ta-actions .dpi-priority-action[disabled],
.fi-ta-actions .dpi-priority-action.fi-disabled,
.fi-ta-actions .dpi-priority-action[aria-disabled="true"] {
    cursor: default !important;
    opacity: 0.3 !important;
}

.fi-ta-actions .dpi-summary-action,
.fi-ta-actions .dpi-summary-action:active,
.fi-ta-actions .dpi-summary-action[disabled],
.fi-ta-actions .dpi-summary-action.fi-disabled,
.fi-ta-actions .dpi-summary-action[aria-disabled="true"] {
    background-color: transparent !important;
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-summary-action .fi-icon,
.fi-ta-actions .dpi-summary-action:active .fi-icon,
.fi-ta-actions .dpi-summary-action[disabled] .fi-icon,
.fi-ta-actions .dpi-summary-action.fi-disabled .fi-icon,
.fi-ta-actions .dpi-summary-action[aria-disabled="true"] .fi-icon {
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-summary-action:hover,
.fi-ta-actions .dpi-summary-action:focus {
    background-color: transparent !important;
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-summary-action:hover .fi-icon,
.fi-ta-actions .dpi-summary-action:focus .fi-icon {
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-customer-data-action,
.fi-ta-actions .dpi-customer-data-action:active {
    background-color: transparent !important;
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-customer-data-action .fi-icon,
.fi-ta-actions .dpi-customer-data-action:active .fi-icon {
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-customer-data-action:hover,
.fi-ta-actions .dpi-customer-data-action:focus {
    background-color: transparent !important;
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-customer-data-action:hover .fi-icon,
.fi-ta-actions .dpi-customer-data-action:focus .fi-icon {
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-customer-orders-action,
.fi-ta-actions .dpi-customer-orders-action:active {
    background-color: transparent !important;
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-customer-orders-action .fi-icon,
.fi-ta-actions .dpi-customer-orders-action:active .fi-icon {
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-customer-orders-action:hover,
.fi-ta-actions .dpi-customer-orders-action:focus {
    background-color: transparent !important;
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-customer-orders-action:hover .fi-icon,
.fi-ta-actions .dpi-customer-orders-action:focus .fi-icon {
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-summary-action .fi-ac-action-label,
.fi-ta-actions .dpi-summary-action .fi-icon-btn-label,
.fi-ta-actions .dpi-summary-action .fi-loading-indicator {
    display: none !important;
}

.fi-ta-actions .dpi-row-menu-action,
.fi-ta-actions .dpi-row-menu-action:active,
.fi-ta-actions .dpi-row-menu-action[disabled],
.fi-ta-actions .dpi-row-menu-action.fi-disabled,
.fi-ta-actions .dpi-row-menu-action[aria-disabled="true"] {
    background-color: transparent !important;
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-row-menu-action .fi-icon,
.fi-ta-actions .dpi-row-menu-action:active .fi-icon,
.fi-ta-actions .dpi-row-menu-action[disabled] .fi-icon,
.fi-ta-actions .dpi-row-menu-action.fi-disabled .fi-icon,
.fi-ta-actions .dpi-row-menu-action[aria-disabled="true"] .fi-icon {
    color: #9ca3af !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-row-menu-action:hover,
.fi-ta-actions .dpi-row-menu-action:focus {
    background-color: transparent !important;
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-actions .dpi-row-menu-action:hover .fi-icon,
.fi-ta-actions .dpi-row-menu-action:focus .fi-icon {
    color: #4b5563 !important;
    opacity: 1 !important;
}

.fi-ta-table tr.dpi-order-status-row .fi-ta-actions :is(
    .dpi-neutral-row-action,
    .dpi-summary-action,
    .dpi-row-menu-action,
    .dpi-favorite-action-off,
    .dpi-priority-action-off
) .fi-icon {
    color: var(--dpi-order-row-text) !important;
    opacity: 0.82 !important;
}

.fi-ta-table tr.dpi-order-status-row .fi-ta-actions :is(
    .dpi-neutral-row-action,
    .dpi-summary-action,
    .dpi-row-menu-action,
    .dpi-favorite-action-off,
    .dpi-priority-action-off
):hover .fi-icon,
.fi-ta-table tr.dpi-order-status-row .fi-ta-actions :is(
    .dpi-neutral-row-action,
    .dpi-summary-action,
    .dpi-row-menu-action,
    .dpi-favorite-action-off,
    .dpi-priority-action-off
):focus .fi-icon {
    color: var(--dpi-order-row-text) !important;
    opacity: 1 !important;
}

.fi-ta-table tr.dpi-order-status-row .fi-ta-actions :is(
    .dpi-favorite-action-on,
    .dpi-priority-action-on
) .fi-icon {
    color: #111827 !important;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.5));
    opacity: 1 !important;
}

.fi-dropdown-panel {
    background-color: #ffffff !important;
    color: #111827 !important;
}

.fi-dropdown-panel .fi-dropdown-list {
    background-color: #ffffff !important;
}

.fi-dropdown-panel .fi-dropdown-list-item {
    color: #111827 !important;
}

.fi-dropdown-panel .fi-dropdown-list-item:not(.fi-color) .fi-dropdown-list-item-label,
.fi-ta-table tr.dpi-order-status-row .fi-dropdown-panel .fi-dropdown-list-item:not(.fi-color) .fi-dropdown-list-item-label {
    color: #111827 !important;
}

.fi-dropdown-panel .fi-dropdown-list-item.fi-color .fi-dropdown-list-item-label,
.fi-ta-table tr.dpi-order-status-row .fi-dropdown-panel .fi-dropdown-list-item.fi-color .fi-dropdown-list-item-label {
    color: var(--text, #111827) !important;
}

.fi-dropdown-panel .fi-dropdown-list-item.fi-color:hover .fi-dropdown-list-item-label,
.fi-dropdown-panel .fi-dropdown-list-item.fi-color:focus-visible .fi-dropdown-list-item-label,
.fi-ta-table tr.dpi-order-status-row .fi-dropdown-panel .fi-dropdown-list-item.fi-color:hover .fi-dropdown-list-item-label,
.fi-ta-table tr.dpi-order-status-row .fi-dropdown-panel .fi-dropdown-list-item.fi-color:focus-visible .fi-dropdown-list-item-label {
    color: var(--hover-text, var(--text, #111827)) !important;
}

.fi-dropdown-panel .fi-dropdown-list-item:not(.fi-color) > .fi-icon,
.fi-ta-table tr.dpi-order-status-row .fi-dropdown-panel .fi-dropdown-list-item:not(.fi-color) > .fi-icon {
    color: #6b7280 !important;
    opacity: 1 !important;
}

.fi-dropdown-panel .fi-dropdown-list-item.fi-color > .fi-icon,
.fi-ta-table tr.dpi-order-status-row .fi-dropdown-panel .fi-dropdown-list-item.fi-color > .fi-icon {
    color: var(--color-600, var(--text, #6b7280)) !important;
    opacity: 1 !important;
}

.fi-dropdown-panel .fi-dropdown-list-item:not(.fi-disabled):not([disabled]):hover,
.fi-dropdown-panel .fi-dropdown-list-item:not(.fi-disabled):not([disabled]):focus-visible {
    background-color: #f8fafc !important;
}

.fi-modal-close-overlay {
    background-color: rgba(17, 24, 39, 0.42) !important;
    backdrop-filter: blur(1px);
}

input[type="number"] {
    -moz-appearance: auto !important;
    appearance: auto !important;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: auto !important;
    appearance: auto !important;
    opacity: 0;
    margin: 0 !important;
    transition: opacity 120ms ease;
}

input[type="number"]:hover::-webkit-inner-spin-button,
input[type="number"]:hover::-webkit-outer-spin-button,
input[type="number"]:focus::-webkit-inner-spin-button,
input[type="number"]:focus::-webkit-outer-spin-button {
    opacity: 1;
}

/* Acciones finales de formularios: al quitar tablas auxiliares
   debajo del form, dejamos aire entre el último bloque y Guardar. */
.fi-main form > .fi-sc:last-child .fi-sc-actions,
.fi-main form .fi-sc-actions[id$="form-actions"] {
    margin-top: 0.75rem;
}

/* FileUpload / FilePond: el bloque completo es clickeable.
   Solo damos un hover mínimo para no cargar visualmente el form. */
.fi-fo-file-upload .filepond--root {
    cursor: pointer;
}

.fi-fo-file-upload .filepond--drop-label {
    cursor: pointer !important;
    transition: background-color 140ms ease, filter 140ms ease;
}

.fi-fo-file-upload .filepond--drop-label * {
    cursor: pointer !important;
}

.fi-fo-file-upload .filepond--panel-root {
    transition: filter 140ms ease;
}

.fi-fo-file-upload .filepond--root:hover .filepond--drop-label,
.fi-fo-file-upload .filepond--root[data-hopper-state="drag-over"] .filepond--drop-label,
.fi-fo-file-upload .filepond--root.filepond--hopper[data-hopper-state="drag-over"] .filepond--drop-label {
    background-color: rgba(17, 24, 39, 0.035);
}

.fi-fo-file-upload .filepond--root:hover .filepond--panel-root,
.fi-fo-file-upload .filepond--root[data-hopper-state="drag-over"] .filepond--panel-root,
.fi-fo-file-upload .filepond--root.filepond--hopper[data-hopper-state="drag-over"] .filepond--panel-root {
    filter: brightness(0.97);
}

/* ===== DPI: piezas visuales compartidas ===== */
.dpi-muted-text {
    color: #6b7280;
}

.dpi-error-text {
    color: #b91c1c;
}

.dpi-page-subheading {
    color: #4b5563;
    display: grid;
    font-size: 16px;
    gap: 4px;
    line-height: 1.5;
    max-width: 760px;
}

.dpi-page-subheading p {
    margin: 0;
}

.dpi-table-cell {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    width: 100%;
}

.dpi-table-cell-two-line,
.dpi-table-cell-stacked {
    display: grid;
    gap: 2px;
    user-select: none;
}

.dpi-table-cell-primary,
.dpi-table-cell-secondary,
.dpi-table-cell-single,
.dpi-table-cell-line {
    box-sizing: border-box;
    display: block;
    line-height: var(--dpi-table-line-height, 1.35);
    max-width: 100%;
    overflow: hidden;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.dpi-table-cell-primary {
    color: #111827;
    font-size: 14px;
    font-weight: 400;
}

.dpi-table-cell-secondary {
    color: #4b5563;
    font-size: 13px;
    font-weight: 400;
}

@media (min-width: 641px) and (max-width: 1536px) {
    .fi-ta-table:has(tbody .dpi-order-status-row) {
        min-width: 1050px !important;
    }
}

.dpi-table-cell-single {
    padding-right: 12px;
}

.dpi-table-cell-clamp-wrap {
    min-height: 2.7em;
}

.dpi-table-cell-clamp {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    box-sizing: border-box;
    display: -webkit-box;
    line-height: var(--dpi-table-line-height, 1.35);
    max-height: 2.7em;
    overflow: hidden;
    overflow-wrap: anywhere;
    padding-right: 14px;
    text-overflow: ellipsis;
    white-space: normal;
    word-break: break-word;
}

.dpi-form-file-list {
    display: grid;
    gap: 8px;
}

.dpi-form-file-card {
    align-items: center;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding: 10px 12px;
}

.dpi-form-file-card-current {
    min-height: 68px;
}

.dpi-form-file-main {
    min-width: 0;
}

.dpi-form-file-name {
    display: block;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dpi-form-file-meta {
    color: #6b7280;
    display: block;
    font-size: 12px;
    margin-top: 2px;
}

.dpi-form-file-actions {
    display: flex;
    flex-shrink: 0;
    gap: 8px;
}

.dpi-form-file-action {
    background: #f3f4f6;
    border: 0;
    border-radius: 999px;
    color: #374151;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    padding: 6px 10px;
    text-decoration: none;
}

.dpi-form-file-action:hover {
    background: #e5e7eb;
    color: #111827;
}

.dpi-form-file-action-primary {
    background: #eff6ff;
    color: #1d4ed8;
}

.dpi-form-file-action-primary:hover {
    background: #dbeafe;
    color: #1e40af;
}

.dpi-form-file-action-danger {
    background: #fef2f2;
    color: #b91c1c;
}

.dpi-form-file-action-danger:hover {
    background: #fee2e2;
    color: #991b1b;
}

.dpi-js-dialog-overlay {
    align-items: center;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 24px;
    position: fixed;
    z-index: 9999;
}

.dpi-js-dialog {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.22);
    max-width: 440px;
    padding: 24px;
    text-align: center;
    width: min(100%, 440px);
}

.dpi-js-dialog-icon {
    align-items: center;
    background: #fff1f2;
    border: 1px solid #fecdd3;
    border-radius: 999px;
    color: #dc2626;
    display: inline-flex;
    font-weight: 800;
    height: 44px;
    justify-content: center;
    margin-bottom: 14px;
    width: 44px;
}

.dpi-js-dialog-title {
    color: #111827;
    font-size: 17px;
    font-weight: 700;
    margin: 0 0 8px;
}

.dpi-js-dialog-message {
    color: #6b7280;
    line-height: 1.45;
    margin: 0;
}

.dpi-js-dialog-actions {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr 1fr;
    margin-top: 22px;
}

.dpi-js-dialog-button {
    border-radius: 999px;
    cursor: pointer;
    font-weight: 700;
    padding: 10px 16px;
    transition:
        background-color 0.14s ease,
        border-color 0.14s ease,
        color 0.14s ease,
        transform 0.14s ease;
}

.dpi-js-dialog-button:hover,
.dpi-js-dialog-button:focus-visible {
    transform: translateY(-1px);
}

.dpi-js-dialog-button-secondary {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #334155;
}

.dpi-js-dialog-button-secondary:hover,
.dpi-js-dialog-button-secondary:focus-visible {
    background: #f1f5f9;
    border-color: #cbd5e1;
    color: #0f172a;
}

.dpi-js-dialog-button-danger {
    background: #fff1f2;
    border: 1px solid #fca5a5;
    color: #dc2626;
}

.dpi-js-dialog-button-danger:hover,
.dpi-js-dialog-button-danger:focus-visible {
    background: #fee2e2;
    border-color: #ef4444;
    color: #b91c1c;
}

.dpi-js-notice {
    background: #fff1f2;
    border: 1px solid #fca5a5;
    border-radius: 12px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.16);
    color: #b91c1c;
    font-weight: 700;
    max-width: 360px;
    padding: 12px 16px;
    position: fixed;
    right: 24px;
    top: 24px;
    z-index: 10000;
}

.dpi-price-preview {
    line-height: 1.35;
}

.dpi-price-preview-value {
    color: #111827;
    font-size: 14px;
    font-weight: 600;
}

.dpi-price-preview-detail {
    color: #6b7280;
    font-size: 13px;
}

.dpi-price-tiers-preview {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dpi-price-tier-grid {
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(auto-fit, minmax(124px, 1fr));
}

.dpi-price-tier-card {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    color: #374151;
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    padding: 6px 8px;
}

.dpi-price-tier-card strong,
.dpi-price-tier-card span {
    line-height: 1.25;
}

.dpi-price-tier-card strong {
    font-size: 13px;
}

.dpi-price-tier-card span {
    font-size: 12px;
}

.dpi-price-tier-card-active {
    background: #fdf2f8;
    border-color: #f9a8d4;
    color: #9d174d;
}

.dpi-price-tier-note {
    color: #6b7280;
    font-size: 12px;
}

.dpi-order-option-note-text {
    color: #dc2626;
    font-size: 15px;
    font-weight: 600;
}

.dpi-client-empty {
    border: 1px dashed #d1d5db;
    border-radius: 8px;
    padding: 28px;
    text-align: center;
}

.dpi-client-empty-title {
    color: #111827;
    font-size: 15px;
    font-weight: 600;
    margin: 0;
}

.dpi-client-empty-text {
    color: #6b7280;
    font-size: 14px;
    margin: 6px 0 0;
}

.dpi-client-content-list {
    display: grid;
    gap: 14px;
    width: 100%;
}

.dpi-client-content-list-lg {
    gap: 16px;
}

.dpi-client-price-list-card {
    align-items: center;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    padding: 16px 20px;
}

.dpi-client-content-main {
    min-width: 0;
}

.dpi-client-price-list-title {
    color: #111827;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.dpi-client-content-description {
    color: #6b7280;
    font-size: 14px;
    line-height: 1.5;
    margin: 6px 0 0;
}

.dpi-client-content-type {
    color: #9ca3af;
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    margin-top: 6px;
}

.dpi-client-content-actions {
    display: flex;
    flex-shrink: 0;
    gap: 8px;
}

.dpi-client-content-action {
    background: #f3f4f6;
    border-radius: 999px;
    color: #374151;
    font-size: 13px;
    font-weight: 700;
    padding: 8px 14px;
    text-decoration: none;
    transition: background-color 0.14s ease, color 0.14s ease;
}

.dpi-client-content-action:hover {
    background: #e5e7eb;
    color: #111827;
}

.dpi-client-content-action-primary {
    background: #eff6ff;
    color: #1d4ed8;
}

.dpi-client-content-action-primary:hover {
    background: #dbeafe;
    color: #1e40af;
}

.dpi-client-news {
    display: grid;
    gap: 12px;
    margin-top: 8px;
    width: 100%;
}

.dpi-client-news-title {
    color: #111827;
    font-size: 16px;
    font-weight: 700;
    margin: 0;
}

.dpi-client-banner-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    display: block;
    overflow: hidden;
    width: 100%;
}

.dpi-client-banner-link {
    color: inherit;
    display: block;
    text-decoration: none;
    width: 100%;
}

.dpi-client-banner-image-wrap {
    background: #f3f4f6;
    overflow: hidden;
    width: 100%;
}

.dpi-client-banner-image {
    display: block;
    height: auto;
    max-height: 360px;
    object-fit: cover;
    width: 100%;
}

.dpi-client-banner-text {
    min-width: 0;
    padding: 18px 22px;
}

.dpi-client-banner-title {
    color: #111827;
    font-size: 22px;
    font-weight: 750;
    line-height: 1.2;
    margin: 0;
}

.dpi-client-banner-body {
    color: #4b5563;
    font-size: 15px;
    line-height: 1.55;
    margin: 8px 0 0;
}

/* ===== DPI: modal de resumen de pedido ===== */
.dpi-os {
    color: #1f2937;
    display: grid;
    font-size: 14px;
    gap: 12px;
}

.dpi-os:focus {
    outline: none;
}

.fi-modal-window:focus {
    outline: none;
}

.dpi-os-progress {
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dpi-os-progress span {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 7px;
    color: #64748b;
    display: inline-flex;
    font-size: 11px;
    font-weight: 700;
    gap: 6px;
    min-width: 0;
    padding: 7px 8px;
}

.dpi-os-progress small {
    color: currentColor;
    font-size: 10px;
    font-weight: 500;
    line-height: 1;
    opacity: .55;
    white-space: nowrap;
}

.dpi-os-progress i {
    align-items: center;
    background: #e5e7eb;
    border-radius: 50%;
    color: #64748b;
    display: inline-flex;
    flex: 0 0 auto;
    font-style: normal;
    height: 16px;
    justify-content: center;
    width: 16px;
}

.dpi-os-progress .is-current {
    background: #ffffff;
    border-color: #cbd5e1;
    color: #334155;
}

.dpi-os-progress .is-current i {
    background: #64748b;
    color: #ffffff;
}

.dpi-os-progress .is-past {
    background: #f1f5f9;
    border-color: #cbd5e1;
    color: #64748b;
}

.dpi-os-progress .is-past i {
    background: #94a3b8;
    color: #ffffff;
}

.dpi-os-progress .dpi-os-step-waiting {
    background: #fff2a8;
    border-color: #e3c400;
    color: #3f3600;
}

.dpi-os-progress .dpi-os-step-waiting i {
    background: #9d8700;
    color: #ffffff;
}

.dpi-os-progress .dpi-os-step-in_process {
    background: #d8f0ff;
    border-color: #74c7ff;
    color: #075985;
}

.dpi-os-progress .dpi-os-step-in_process i {
    background: #0284c7;
    color: #ffffff;
}

.dpi-os-progress .dpi-os-step-finished {
    background: #dcfce7;
    border-color: #86efac;
    color: #166534;
}

.dpi-os-progress .dpi-os-step-finished i {
    background: #16a34a;
    color: #ffffff;
}

.dpi-os-cancel-alert {
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 8px;
    color: #b91c1c;
    display: grid;
    gap: 8px;
    padding: 10px 12px;
}

.dpi-os-cancel-head {
    align-items: baseline;
    display: flex;
    gap: 8px;
}

.dpi-os-cancel-head strong { font-weight: 700; }

.dpi-os-cancel-head span {
    color: #991b1b;
    font-size: 12px;
    opacity: .72;
}

.dpi-os-cancel-reason {
    border-top: 1px solid #fecaca;
    display: grid;
    gap: 4px;
    padding-top: 8px;
}

.dpi-os-cancel-reason span {
    color: #991b1b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.dpi-os-cancel-reason p {
    color: #7f1d1d;
    line-height: 1.4;
    margin: 0;
    overflow-wrap: anywhere;
}

.dpi-os-meta {
    background: #f8fafc;
    border: 1px solid #dbe3ee;
    border-radius: 10px;
    display: grid;
    gap: 9px 20px;
    grid-template-columns: max-content 1fr;
    margin: 0;
    padding: 13px 15px;
}

.dpi-os-meta dt { color: #6b7280; font-size: 13px; line-height: 1.4; }

.dpi-os-meta dd {
    color: #111827;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
}

.dpi-os-meta-plain {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
}

.dpi-os-meta dt:first-child,
.dpi-os-meta dt:first-child + dd {
    color: #111827;
}

.dpi-os-meta dt:first-child + dd {
    font-size: 16px;
    font-weight: 800;
}

.dpi-os-meta-plain dt:first-child,
.dpi-os-meta-plain dt:first-child + dd {
    color: inherit;
}

.dpi-os-meta-plain dt:first-child + dd {
    font-size: 14px;
    font-weight: 600;
}

.dpi-os-sec {
    background: #f8fafc;
    border: 1px solid #dbe3ee;
    border-radius: 10px;
    display: grid;
    gap: 8px;
    padding: 13px 15px;
}

.dpi-os-sec-muted {
    background: #f9fafb;
    border-style: dashed;
}

.dpi-os-sec-label {
    color: #9aa6b6;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .07em;
    margin: 0;
    text-transform: uppercase;
}

.dpi-os-text { color: #374151; line-height: 1.5; overflow-wrap: anywhere; }
.dpi-os-empty { color: #9ca3af; font-size: 13px; }
.dpi-os-files { display: grid; gap: 7px; }

.dpi-internal-reference {
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    color: #475569;
    font-size: 13px;
    line-height: 1.45;
    overflow-wrap: anywhere;
    padding: 10px 12px;
    white-space: normal;
}

.dpi-status-history {
    display: grid;
    gap: 8px;
}

.dpi-status-history-item {
    background: #f8fafc;
    border: 1px solid #dbeafe;
    border-radius: 8px;
    padding: 10px 12px;
}

.dpi-status-history-main {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
}

.dpi-status-history-date {
    color: #64748b;
    font-size: 12px;
    font-weight: 650;
}

.dpi-status-history-transition {
    color: #111827;
    font-size: 13px;
    font-weight: 700;
}

.dpi-status-history-meta,
.dpi-status-history-reason {
    color: #64748b;
    font-size: 12px;
    line-height: 1.35;
    margin-top: 4px;
}

.dpi-os-file,
.dpi-os-link {
    align-items: center;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    color: inherit;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    max-width: 100%;
    min-width: 0;
    padding: 9px 11px;
    text-decoration: none;
}

.dpi-os-file-main {
    min-width: 0;
}

.dpi-os-file-name {
    color: #111827;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dpi-os-file-size {
    align-items: center;
    color: #6b7280;
    display: inline-flex;
    font-size: 12px;
}

.dpi-os-file-actions {
    align-items: center;
    align-self: stretch;
    border-left: 1px solid #e5e7eb;
    display: flex;
    flex-shrink: 0;
    gap: 12px;
    padding-left: 12px;
}

.dpi-os-link-text {
    color: #2563eb;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dpi-os-action { color: #2563eb; font-weight: 600; text-decoration: none; white-space: nowrap; }
.dpi-os-action-muted { color: #6b7280; }

.dpi-os-link .dpi-os-action {
    align-items: center;
    align-self: stretch;
    border-left: 1px solid #e5e7eb;
    display: inline-flex;
    flex-shrink: 0;
    padding-left: 12px;
}

.dpi-os-action:focus,
.dpi-os-link:focus {
    outline: none;
}

.dpi-os-action:focus-visible,
.dpi-os-link:focus-visible {
    border-radius: 5px;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.18);
    outline: none;
}

.dpi-price-card {
    background: #ffffff;
    border: 1px solid #dbe3ee;
    border-radius: 8px;
    display: grid;
    gap: 8px;
    padding: 12px 14px;
}

.dpi-os .dpi-price-card {
    background: #ffffff;
    border: 1px solid #cfe0f5;
    border-radius: 9px;
    box-shadow: inset 3px 0 0 #bfdbfe;
    padding: 11px 13px;
}

.dpi-price-lines { display: grid; gap: 6px; }

.dpi-price-line {
    align-items: baseline;
    color: #374151;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto auto;
}

.dpi-price-name { color: #111827; font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.dpi-price-calc { color: #6b7280; font-size: 13px; white-space: nowrap; }
.dpi-price-amount { color: #111827; font-weight: 600; white-space: nowrap; }

.dpi-price-total {
    align-items: baseline;
    border-top: 1px solid #dbe3ee;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-top: 4px;
    padding-top: 10px;
}

.dpi-price-total-label { color: #111827; font-weight: 600; }
.dpi-price-total-note { color: #6b7280; font-weight: 400; }
.dpi-price-total-value { color: #111827; font-size: 20px; font-weight: 800; white-space: nowrap; }
.dpi-price-empty { color: #6b7280; }

.dpi-price-ref { display: grid; gap: 5px; }
.dpi-price-ref-title { color: #9aa6b6; font-size: 11px; font-weight: 500; }

.dpi-price-ref-chips {
    color: #4b5563;
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    gap: 6px;
}

.dpi-price-ref-chip {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    color: #4b5563;
    line-height: 1.3;
    padding: 2px 8px;
}

.dpi-price-note { color: #6b7280; font-size: 12px; line-height: 1.45; margin: 0; }
.fi-modal-footer-actions .dpi-modal-close { margin-left: auto; }

.fi-modal-footer-actions .fi-btn.fi-color-info {
    transition:
        background-color 0.14s ease,
        border-color 0.14s ease,
        color 0.14s ease,
        transform 0.14s ease !important;
}

.fi-modal-footer-actions .fi-btn.fi-color-info:hover,
.fi-modal-footer-actions .fi-btn.fi-color-info:focus-visible {
    transform: translateY(-1px) !important;
}

.fi-modal-footer-actions .dpi-danger-soft-action {
    background: #fff1f2 !important;
    border: 1px solid #fca5a5 !important;
    box-shadow: none !important;
    color: #dc2626 !important;
    transition:
        background-color 0.14s ease,
        border-color 0.14s ease,
        color 0.14s ease,
        transform 0.14s ease !important;
}

.fi-modal-footer-actions .dpi-danger-soft-action:hover {
    background: #fee2e2 !important;
    border-color: #ef4444 !important;
    box-shadow: none !important;
    color: #b91c1c !important;
    transform: translateY(-1px) !important;
}

.fi-modal-footer-actions .dpi-danger-soft-action:focus,
.fi-modal-footer-actions .dpi-danger-soft-action:focus-visible {
    box-shadow: none !important;
    outline: none !important;
}

.fi-modal-footer-actions .dpi-danger-soft-action svg {
    color: currentColor !important;
}

@media (max-width: 640px) {
    /* Patrón único para filas mobile: selección a la izquierda,
       contenido en el centro y acciones arriba a la derecha. */
    .fi-ta-table:has(tbody .dpi-mobile-compact-row) thead {
        display: none !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-compact-row {
        display: grid !important;
        grid-template-columns: 40px minmax(0, 1fr) 64px;
        width: 100% !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-compact-row > .fi-ta-selection-cell {
        align-items: flex-start;
        display: flex !important;
        grid-column: 1;
        justify-content: center;
        padding: 17px 4px 0 !important;
        width: 40px !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-compact-row > :is(.dpi-col-mobile-summary, .dpi-col-mobile-customer) {
        grid-column: 2;
        padding-left: 4px !important;
        padding-right: 4px !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-compact-row > .fi-ta-cell:has(.fi-ta-actions) {
        display: block !important;
        grid-column: 3;
        min-width: 64px !important;
        padding: 12px 8px 0 4px !important;
        width: 64px !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-compact-row .fi-ta-actions {
        align-items: flex-start;
        justify-content: flex-end;
        min-width: 0 !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row {
        box-sizing: border-box;
        padding: 8px 72px 8px 44px !important;
        position: relative;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row > .fi-ta-selection-cell {
        align-items: flex-start;
        display: flex !important;
        justify-content: center;
        left: 4px;
        padding: 9px 4px 0 !important;
        position: absolute;
        top: 8px;
        width: 40px !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row > .fi-ta-cell:has(.fi-ta-actions) {
        display: block !important;
        min-width: 72px !important;
        padding: 8px 8px 0 4px !important;
        position: absolute;
        right: 0;
        top: 8px;
        width: 72px !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row .fi-ta-actions {
        align-items: flex-start;
        flex-wrap: nowrap !important;
        justify-content: flex-end;
        min-width: 0 !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row > .dpi-col-status {
        display: block !important;
        min-width: 0 !important;
        padding: 8px 4px 0 !important;
        position: absolute;
        right: 72px;
        top: 8px;
        width: auto !important;
        z-index: 1;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row > .dpi-col-status .fi-ta-cell-label {
        display: none !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row > .dpi-col-main {
        padding-right: 78px !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row > .dpi-col-main > * {
        max-width: 100% !important;
        overflow: hidden !important;
        width: 100% !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row > td.dpi-col-main > .fi-ta-cell-content,
    .fi-ta-table tbody tr.dpi-mobile-stacked-row > td.dpi-col-main .fi-ta-col,
    .fi-ta-table tbody tr.dpi-mobile-stacked-row > td.dpi-col-main .fi-ta-text-item,
    .fi-ta-table tbody tr.dpi-mobile-stacked-row > td.dpi-col-main .dpi-table-cell {
        max-width: 100% !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row > .dpi-col-main .dpi-table-cell-primary {
        display: -webkit-box !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        width: 100% !important;
        white-space: normal !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .fi-ta-table tbody tr.dpi-mobile-stacked-row > .fi-ta-cell:not(.fi-ta-selection-cell):not(:has(.fi-ta-actions)) {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .fi-ta-table tbody tr,
    .fi-ta-table tbody tr > .fi-ta-cell {
        height: auto !important;
    }

    .fi-ta-table tbody tr > .fi-ta-cell > * {
        max-height: none !important;
        overflow: visible !important;
    }

    .fi-ta-table :is(th, td).dpi-col-spacer {
        display: none !important;
    }

    .fi-tabs {
        scrollbar-width: none;
    }

    .fi-tabs::-webkit-scrollbar {
        display: none;
    }

    .fi-tabs-item.dpi-order-filter-tab {
        scroll-snap-align: start;
    }

    .fi-ta-table :is(th, td).dpi-col-mobile-summary {
        box-sizing: border-box;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .fi-ta-table td.dpi-col-mobile-summary > * {
        max-height: none !important;
        max-width: none !important;
        overflow: visible !important;
        width: 100% !important;
    }

    .dpi-mobile-order-summary {
        display: grid;
        gap: 3px;
        min-width: 0;
        padding: 12px 0;
    }

    .dpi-mobile-order-heading,
    .dpi-mobile-order-meta {
        align-items: center;
        display: flex;
        gap: 8px;
        justify-content: space-between;
        min-width: 0;
    }

    .dpi-mobile-order-heading strong,
    .dpi-mobile-order-work,
    .dpi-mobile-order-meta strong {
        color: #111827;
        font-weight: 700;
    }

    .dpi-mobile-order-status {
        border: 1px solid rgba(15, 23, 42, 0.14);
        border-radius: 999px;
        flex: 0 0 auto;
        font-size: 11px;
        font-weight: 700;
        padding: 2px 7px;
    }

    .dpi-mobile-order-status-waiting {
        background: #fef3c7;
        color: #92400e;
    }

    .dpi-mobile-order-status-in-process {
        background: #dbeafe;
        color: #1d4ed8;
    }

    .dpi-mobile-order-status-finished {
        background: #dcfce7;
        color: #166534;
    }

    .dpi-mobile-order-status-cancelled {
        background: #fee2e2;
        color: #b91c1c;
    }

    .dpi-mobile-order-customer,
    .dpi-mobile-order-work {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .dpi-mobile-order-customer {
        color: #334155;
        font-size: 13px;
    }

    .dpi-mobile-order-work {
        font-size: 14px;
    }

    .dpi-mobile-order-meta {
        color: #64748b;
        font-size: 12px;
    }

    .dpi-mobile-order-total {
        display: grid;
        gap: 1px;
        justify-items: end;
        line-height: 1.25;
    }

.dpi-mobile-order-additionals {
        color: #334155;
        display: grid;
        font-size: 14px;
        gap: 1px;
        line-height: 1.3;
    }

    .dpi-mobile-order-additionals span {
        align-items: baseline;
        display: flex;
        gap: 6px;
    }

    .dpi-mobile-order-additionals span::before {
        content: "∙";
        flex: 0 0 auto;
    }

    .fi-ta-table tbody tr:has(.dpi-col-mobile-summary),
    .fi-ta-table tbody tr:has(.dpi-col-mobile-summary) > .fi-ta-cell {
        height: auto !important;
    }

    .fi-ta-table tr:has(.dpi-col-mobile-customer) > :not(.dpi-col-mobile-customer):not(.fi-ta-selection-cell):not(:has(.fi-ta-actions)),
    .fi-ta-table thead tr:has(.dpi-col-mobile-customer) > :not(.dpi-col-mobile-customer):not(.fi-ta-selection-cell):not(.fi-ta-actions-header-cell) {
        display: none !important;
    }

    .fi-ta-table :is(th, td).dpi-col-mobile-customer {
        box-sizing: border-box;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .fi-ta-table td.dpi-col-mobile-customer > * {
        max-height: none !important;
        max-width: none !important;
        overflow: visible !important;
        width: 100% !important;
    }

    .dpi-mobile-customer-summary {
        display: grid;
        gap: 3px;
        min-width: 0;
        padding: 12px 0;
    }

    .dpi-mobile-customer-heading,
    .dpi-mobile-customer-meta {
        align-items: center;
        display: flex;
        gap: 8px;
        justify-content: space-between;
        min-width: 0;
    }

    .dpi-mobile-customer-heading strong {
        color: #111827;
        font-weight: 700;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .dpi-mobile-customer-company,
    .dpi-mobile-customer-contact,
    .dpi-mobile-customer-meta {
        color: #64748b;
        font-size: 12px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .dpi-mobile-customer-badge {
        border: 1px solid rgba(15, 23, 42, 0.12);
        border-radius: 999px;
        flex: 0 0 auto;
        font-size: 10px;
        font-weight: 700;
        padding: 2px 6px;
    }

    .dpi-mobile-customer-badge.is-approved,
    .dpi-mobile-customer-badge.is-active { background: #dcfce7; color: #166534; }
    .dpi-mobile-customer-badge.is-pending { background: #fef3c7; color: #92400e; }
    .dpi-mobile-customer-badge.is-inactive { background: #f1f5f9; color: #475569; }

    .dpi-os-progress,
    .dpi-os-meta {
        grid-template-columns: 1fr;
    }

    .dpi-os-meta {
        gap: 4px;
    }

    .dpi-os-meta dt:not(:first-child) {
        margin-top: 6px;
    }

    .dpi-price-line {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .dpi-price-calc {
        grid-column: 1 / -1;
        white-space: normal;
    }

    .dpi-os-file,
    .dpi-os-link,
    .dpi-price-total {
        align-items: stretch;
    }

    .dpi-os-file-actions,
    .dpi-os-link .dpi-os-action {
        align-self: auto;
    }
}
/* ===== fin modal resumen de pedido ===== */

/* Select cerrado compacto: el valor elegido nunca debe agrandar
   el campo. El dropdown conserva el texto completo al abrir. */
.fi-select-input-btn,
.fi-select-input-value-ctn,
.fi-select-input-value-label {
    min-width: 0 !important;
    max-width: 100% !important;
}

.fi-select-input-value-ctn,
.fi-select-input-value-label {
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.fi-select-input-option,
.fi-select-input-option span {
    white-space: normal !important;
}
