/* Cactus ERP Online v1.5.94 · modo claro / oscuro */
:root{
  --dark-bg:#111217;
  --dark-surface:#1a1c23;
  --dark-surface-2:#20232c;
  --dark-line:#343844;
  --dark-text:#f2f3f7;
  --dark-muted:#a9afbb;
}

.cactus-theme-toggle{
  width:40px;height:40px;border:1px solid var(--line);border-radius:11px;
  background:#fff;color:#403748;display:inline-grid;place-items:center;
  font-size:18px;line-height:1;cursor:pointer;transition:.16s;
  box-shadow:0 3px 12px rgba(35,30,45,.06)
}
.cactus-theme-toggle:hover{transform:translateY(-1px)}
.cactus-theme-toggle:focus-visible{outline:3px solid rgba(107,43,217,.22);outline-offset:2px}

body.cactus-dark{background:var(--dark-bg);color:var(--dark-text);color-scheme:dark}
body.cactus-dark .main,
body.cactus-dark .content{background:var(--dark-bg);color:var(--dark-text)}
body.cactus-dark .topbar{background:rgba(17,18,23,.93);border-bottom-color:var(--dark-line);color:var(--dark-text)}
body.cactus-dark .topbar h1,
body.cactus-dark h1,
body.cactus-dark h2,
body.cactus-dark h3,
body.cactus-dark h4,
body.cactus-dark strong{color:var(--dark-text)}
body.cactus-dark .date-pill,
body.cactus-dark .menu-btn,
body.cactus-dark .cactus-theme-toggle{background:var(--dark-surface-2);border-color:var(--dark-line);color:var(--dark-text)}
body.cactus-dark .muted,
body.cactus-dark .sub,
body.cactus-dark .hint,
body.cactus-dark .panel-head p,
body.cactus-dark .timeline-item p,
body.cactus-dark .timeline-item small,
body.cactus-dark .task p,
body.cactus-dark .task-meta,
body.cactus-dark label{color:var(--dark-muted)}

body.cactus-dark .panel,
body.cactus-dark .kpi,
body.cactus-dark .task,
body.cactus-dark .login-card,
body.cactus-dark .pricing-option-row,
body.cactus-dark .card,
body.cactus-dark .modal,
body.cactus-dark .modal-card,
body.cactus-dark .dialog,
body.cactus-dark .drawer,
body.cactus-dark .popover,
body.cactus-dark .dropdown-menu{
  background:var(--dark-surface)!important;
  border-color:var(--dark-line)!important;
  color:var(--dark-text)
}
body.cactus-dark .pricing-builder-group,
body.cactus-dark .base-price-explain,
body.cactus-dark .kanban-col,
body.cactus-dark .reset-box,
body.cactus-dark .settings-card,
body.cactus-dark .demo-box,
body.cactus-dark .section-note{
  background:var(--dark-surface-2)!important;
  border-color:var(--dark-line)!important;
  color:var(--dark-text)
}
body.cactus-dark input,
body.cactus-dark select,
body.cactus-dark textarea{
  background:#15171d!important;color:var(--dark-text)!important;border-color:var(--dark-line)!important
}
body.cactus-dark input::placeholder,
body.cactus-dark textarea::placeholder{color:#777e8b}
body.cactus-dark input[readonly],body.cactus-dark input:disabled,body.cactus-dark select:disabled,body.cactus-dark textarea:disabled{background:#20232a!important;color:#a5aab4!important}

body.cactus-dark .btn-secondary{background:var(--dark-surface-2);border-color:var(--dark-line);color:var(--dark-text)}
body.cactus-dark .btn-danger{background:#3a1f27;border-color:#6b303e;color:#ffb7c4}
body.cactus-dark .link-btn{color:#c7a8ff}
body.cactus-dark th{color:#a8afbb;border-bottom-color:var(--dark-line)}
body.cactus-dark td{border-bottom-color:#2b2e37;color:var(--dark-text)}
body.cactus-dark tbody tr:hover{background:#22252d}
body.cactus-dark .timeline-item{border-bottom-color:#2b2e37}
body.cactus-dark .count{background:#2a2d36;color:#c4c8d1}
body.cactus-dark .task{box-shadow:none}
body.cactus-dark .kpi:after{background:rgba(190,154,255,.06)}
body.cactus-dark hr{border-color:var(--dark-line)}

/* Estados: conservar el código de color, pero con contraste suficiente en oscuro */
body.cactus-dark .draft{background:#30343e;color:#d2d7df}
body.cactus-dark .sent{background:#243354;color:#a9c0ff}
body.cactus-dark .approved{background:#1f3c28;color:#a9e8b5}
body.cactus-dark .rejected{background:#46252d;color:#ffacbb}
body.cactus-dark .design{background:#342852;color:#d2bcff}
body.cactus-dark .approval{background:#4b3a20;color:#ffd98b}
body.cactus-dark .production{background:#203d4a;color:#9eddf8}
body.cactus-dark .installation{background:#46273a;color:#ffb2d9}
body.cactus-dark .finished{background:#203d2b;color:#a8e8ba}

/* No alterar documentos destinados a impresión/PDF */
body.cactus-dark .customer-doc,
body.cactus-dark .quote-doc,
body.cactus-dark .print-sheet,
body.cactus-dark [class*="customer-doc"],
body.cactus-dark [class*="quote-print"]{
  color-scheme:light
}

@media print{
  .cactus-theme-toggle{display:none!important}
  body.cactus-dark{background:#fff!important;color:#111!important;color-scheme:light}
}


/* v1.5.92 · refinamiento de contraste para modo oscuro */
@media screen {
  /* Base de lectura: gana sobre la hoja global de legibilidad */
  html body.cactus-dark #app{color:#f4f6fb!important}
  html body.cactus-dark #app label,
  html body.cactus-dark #app .muted,
  html body.cactus-dark #app .sub,
  html body.cactus-dark #app .hint,
  html body.cactus-dark #app small,
  html body.cactus-dark #app .mini{color:#b8bfcc!important}

  html body.cactus-dark #app input,
  html body.cactus-dark #app select,
  html body.cactus-dark #app textarea{
    background:#12151c!important;
    color:#f5f7fb!important;
    border-color:#454b59!important;
  }
  html body.cactus-dark #app input:hover,
  html body.cactus-dark #app select:hover,
  html body.cactus-dark #app textarea:hover{border-color:#596172!important}
  html body.cactus-dark #app input:focus,
  html body.cactus-dark #app select:focus,
  html body.cactus-dark #app textarea:focus{
    border-color:#8b5cf6!important;
    box-shadow:0 0 0 3px rgba(139,92,246,.16)!important;
    outline:none!important;
  }
  html body.cactus-dark #app input::placeholder,
  html body.cactus-dark #app textarea::placeholder{color:#9098a8!important;opacity:1}
  html body.cactus-dark #app input[readonly],
  html body.cactus-dark #app input:disabled,
  html body.cactus-dark #app select:disabled,
  html body.cactus-dark #app textarea:disabled{
    background:#222630!important;
    color:#aeb5c1!important;
    opacity:1!important;
  }

  /* Tarjetas y paneles: separar mejor los niveles */
  html body.cactus-dark #app .panel,
  html body.cactus-dark #app .card,
  html body.cactus-dark #app .modal-card,
  html body.cactus-dark #app .dialog,
  html body.cactus-dark #app .drawer{
    background:#1a1d25!important;
    border-color:#373d49!important;
  }
  html body.cactus-dark #app .modal{
    background:#1b1e26!important;
    border-color:#444a57!important;
    box-shadow:0 24px 70px rgba(0,0,0,.48)!important;
  }

  /* Ítem personalizado: elimina los dos bloques claros que se veían en la captura */
  html body.cactus-dark #app .custom-item-intro{
    background:#24202d!important;
    border:1px solid #4b405e!important;
    color:#d9d1e3!important;
  }
  html body.cactus-dark #app .custom-design-box-1475{
    background:#20232b!important;
    border-color:#414754!important;
    color:#f4f6fb!important;
  }
  html body.cactus-dark #app .custom-design-box-1475>strong{
    color:#f1edf7!important;
  }
  html body.cactus-dark #app .custom-design-box-1475 label,
  html body.cactus-dark #app .custom-design-note-1475,
  html body.cactus-dark #app .custom-design-line-1476,
  html body.cactus-dark #app .custom-area-readout-1463,
  html body.cactus-dark #app .custom-client-description,
  html body.cactus-dark #app .custom-doc-desc-1463{
    color:#c2c8d3!important;
  }

  /* Autoguardado: conservar verde pero sin franja blanca */
  html body.cactus-dark #app .quote-autosave-strip{
    background:#18251c!important;
    border-color:#34533b!important;
    color:#c4dbc8!important;
  }
  html body.cactus-dark #app .quote-autosave-copy strong{color:#d8efdb!important}
  html body.cactus-dark #app .quote-autosave-footer{color:#aeb9b0!important}
  html body.cactus-dark #app .quote-autosave-footer.is-saving{color:#e0bf78!important}
  html body.cactus-dark #app .quote-autosave-footer.is-saved{color:#9bd3a2!important}
  html body.cactus-dark #app .quote-autosave-discard{color:#d1b8ff!important}

  /* Texto creado por módulos antiguos que traía colores claros forzados */
  html body.cactus-dark #app .quote-filter-note-1477,
  html body.cactus-dark #app .quote-locked-1477,
  html body.cactus-dark #app .ot-design-main-1477 small,
  html body.cactus-dark #app .ot-design-state-1477,
  html body.cactus-dark #app .ot-design-state-1477 .sub,
  html body.cactus-dark #app .ot-design-file-1477,
  html body.cactus-dark #app .cactus-modal-head-1477 p,
  html body.cactus-dark #app .cactus-modal-grid-1477 label,
  html body.cactus-dark #app .design-extra-1477 p,
  html body.cactus-dark #app .approved-quote-meta-1477 span,
  html body.cactus-dark #app .approved-item-1477 p,
  html body.cactus-dark #app .approved-item-1477 .specs,
  html body.cactus-dark #app .ot81-kicker,
  html body.cactus-dark #app .ot81-section-title,
  html body.cactus-dark #app .ot81-description>span,
  html body.cactus-dark #app .ot81-note>span,
  html body.cactus-dark #app .ot81-tech-head p,
  html body.cactus-dark #app .ot81-info span,
  html body.cactus-dark #app .ot81-spec span,
  html body.cactus-dark #app .ot81-updated,
  html body.cactus-dark #app .ot81-empty,
  html body.cactus-dark #app .ot81-modal-head p,
  html body.cactus-dark #app .ot81-form-grid label,
  html body.cactus-dark #app .ot82-summary span,
  html body.cactus-dark #app .ot82-approval span,
  html body.cactus-dark #app .ot82-approval small,
  html body.cactus-dark #app .ot82-head p,
  html body.cactus-dark #app .ot82-form label,
  html body.cactus-dark #app .ot82-confirm,
  html body.cactus-dark #app .ot82-evidence span,
  html body.cactus-dark #app .ot82-evidence p,
  html body.cactus-dark #app .dup-reason,
  html body.cactus-dark #app .dup-meta{
    color:#b9c0cc!important;
  }
  html body.cactus-dark #app .ot81-description p,
  html body.cactus-dark #app .ot81-note p,
  html body.cactus-dark #app .ot81-info strong,
  html body.cactus-dark #app .ot81-spec strong{color:#f0f2f7!important}

  /* Tablas y filas */
  html body.cactus-dark #app th{color:#c2c8d3!important}
  html body.cactus-dark #app td{color:#eef1f6!important}

  /* Botones secundarios: que no se pierdan contra el fondo */
  html body.cactus-dark #app .btn-secondary,
  html body.cactus-dark #app .menu-btn{
    background:#252934!important;
    color:#eef1f6!important;
    border-color:#4a5160!important;
  }
  html body.cactus-dark #app .btn-secondary:hover,
  html body.cactus-dark #app .menu-btn:hover{background:#303541!important;border-color:#626b7d!important}
}


/* v1.5.92 — contraste específico del Tablero por trabajador y etapa */
body.cactus-dark .cx1565-panel{
  color:#eef1f7;
}
body.cactus-dark .cx1565-kicker{color:#b894ff!important}
body.cactus-dark .cx1565-head h3{color:#f7f8fb!important}
body.cactus-dark .cx1565-head p{color:#b4bac7!important}
body.cactus-dark .cx1565-total{
  background:#2c213d!important;
  color:#e0c8ff!important;
  border:1px solid #50396f!important;
}
body.cactus-dark .cx1565-filters{
  background:#191c23!important;
  border-color:#353a47!important;
  box-shadow:0 8px 24px rgba(0,0,0,.16);
}
body.cactus-dark .cx1565-filters label{color:#c6cbd5!important}
body.cactus-dark .cx1565-filters select,
body.cactus-dark .cx1565-filters input{
  background:#11141a!important;
  border-color:#434958!important;
  color:#f4f6fa!important;
}
body.cactus-dark .cx1565-filters select:focus,
body.cactus-dark .cx1565-filters input:focus{
  border-color:#8b5ce6!important;
  box-shadow:0 0 0 3px rgba(139,92,230,.18)!important;
}
body.cactus-dark .cx1565-chip{
  background:#20242d!important;
  border-color:#3b414f!important;
  color:#edf0f6!important;
}
body.cactus-dark .cx1565-chip:hover{background:#292e39!important;border-color:#555d6e!important}
body.cactus-dark .cx1565-chip b{
  background:#303541!important;
  color:#f5f6f9!important;
}
body.cactus-dark .cx1565-lane{
  background:#171a21!important;
  border-color:#353a47!important;
  box-shadow:0 6px 20px rgba(0,0,0,.13);
}
body.cactus-dark .cx1565-lane>header{
  background:#20242d!important;
  border-bottom-color:#353a47!important;
}
body.cactus-dark .cx1565-lane>header strong{color:#f3f5f9!important}
body.cactus-dark .cx1565-lane>header span{
  background:#303541!important;
  color:#e7eaf0!important;
}
body.cactus-dark .cx1565-card{
  border-color:#3b414f!important;
  box-shadow:0 3px 12px rgba(0,0,0,.22)!important;
}
body.cactus-dark .cx1565-card h4{color:#f7f8fb!important}
body.cactus-dark .cx1565-order strong{color:#d3b8ff!important}
body.cactus-dark .cx1565-order span{color:#bac0cb!important}
body.cactus-dark .cx1565-workerbar{
  background:rgba(10,12,16,.42)!important;
  border-top-color:rgba(255,255,255,.09)!important;
}
body.cactus-dark .cx1565-workerbar span{color:#aeb5c1!important}
body.cactus-dark .cx1565-workerbar strong{color:#f0f2f6!important}
body.cactus-dark .cx1565-open{
  background:#2c313b!important;
  color:#f5f6f9!important;
  border:1px solid #444b59!important;
}
body.cactus-dark .cx1565-open:hover{background:#383e4a!important;border-color:#626b7d!important}
body.cactus-dark .cx1565-late{
  background:#4a2325!important;
  color:#ffb4b0!important;
  border:1px solid #6c3033!important;
}
body.cactus-dark .cx1565-empty{
  color:#b7bdc8!important;
  border-color:#414754!important;
  background:#181b22!important;
}
/* Tarjetas: misma codificación cromática, pero en tonos oscuros legibles */
body.cactus-dark .stage-design.cx1565-card{background:#2a1c29!important;border-top-color:#e45aa9!important}
body.cactus-dark .stage-approval.cx1565-card{background:#29251a!important;border-top-color:#e5b82d!important}
body.cactus-dark .stage-production.cx1565-card{background:#18271e!important;border-top-color:#42a65a!important}
body.cactus-dark .stage-workshop.cx1565-card{background:#192432!important;border-top-color:#4e8edc!important}
body.cactus-dark .stage-installation.cx1565-card{background:#2b2118!important;border-top-color:#e98532!important}
body.cactus-dark .stage-quality.cx1565-card{background:#241d2e!important;border-top-color:#9b73d7!important}
body.cactus-dark .stage-external.cx1565-card{background:#1d2529!important;border-top-color:#8fa4ad!important}
body.cactus-dark .stage-collection.cx1565-card{background:#1a2632!important;border-top-color:#6fa2d6!important}
body.cactus-dark .stage-billing.cx1565-card{background:#231e30!important;border-top-color:#9d85dc!important}
body.cactus-dark .stage-unassigned.cx1565-card{background:#2d1d1d!important;border-top-color:#df655f!important}
body.cactus-dark .stage-other.cx1565-card{background:#22242a!important;border-top-color:#9ba0aa!important}
/* Etiquetas de etapa más luminosas que en claro */
body.cactus-dark .stage-design .cx1565-stage{color:#ff8cca!important}
body.cactus-dark .stage-approval .cx1565-stage{color:#f1d05f!important}
body.cactus-dark .stage-production .cx1565-stage{color:#77d18b!important}
body.cactus-dark .stage-workshop .cx1565-stage{color:#86baff!important}
body.cactus-dark .stage-installation .cx1565-stage{color:#ffad62!important}
body.cactus-dark .stage-quality .cx1565-stage{color:#c6a3ff!important}
body.cactus-dark .stage-external .cx1565-stage{color:#bac8cf!important}
body.cactus-dark .stage-collection .cx1565-stage{color:#9bc8f0!important}
body.cactus-dark .stage-billing .cx1565-stage{color:#c6b4ff!important}
body.cactus-dark .stage-unassigned .cx1565-stage{color:#ff928c!important}
body.cactus-dark .stage-other .cx1565-stage{color:#c8cbd1!important}

/* =========================================================
   v1.5.93 · pasada global de contraste + preparación OT
   Corrige módulos antiguos que todavía forzaban superficies claras.
   ========================================================= */
@media screen {
  /* Cotización: avisos de diseño que quedaban blancos */
  html body.cactus-dark #app .custom-design-line-1476,
  html body.cactus-dark #app .client-design-line,
  html body.cactus-dark #app .cactus-design-detail{
    background:#232730!important;
    border-color:#414856!important;
    color:#d7dce5!important;
  }
  html body.cactus-dark #app .custom-design-line-1476 strong,
  html body.cactus-dark #app .client-design-line strong,
  html body.cactus-dark #app .cactus-design-detail strong{color:#f5f7fb!important}

  /* Clientes: panel de contactos */
  html body.cactus-dark #app .client-contacts-panel-1542{
    background:#1d2028!important;
    border-color:#3d4350!important;
  }
  html body.cactus-dark #app .client-contacts-head-1542 strong{color:#f4f6fa!important}
  html body.cactus-dark #app .client-contacts-head-1542 span{color:#b4bbc7!important}
  html body.cactus-dark #app .client-contact-row-1542{
    background:#15181f!important;
    border-color:#383e4a!important;
    color:#edf0f5!important;
  }
  html body.cactus-dark #app .client-contact-row-1542 strong{color:#f7f8fb!important}
  html body.cactus-dark #app .client-contact-row-1542 span{color:#b6bdc8!important}
  html body.cactus-dark #app .contact-primary-1542{
    background:#34264d!important;
    color:#d9c1ff!important;
  }

  /* Producto: los bloques de ayuda y constructor ya no quedan blancos */
  html body.cactus-dark #app .engine-type-help,
  html body.cactus-dark #app .engine-base-row,
  html body.cactus-dark #app .engine-empty-builder,
  html body.cactus-dark #app .clean-hint,
  html body.cactus-dark #app .base-price-explain{
    background:#20232b!important;
    border-color:#3c4350!important;
    color:#b9c0cb!important;
  }
  html body.cactus-dark #app .engine-base-row span,
  html body.cactus-dark #app .base-price-explain span{color:#aeb5c1!important}
  html body.cactus-dark #app .engine-base-row strong,
  html body.cactus-dark #app .base-price-explain strong{color:#c9a9ff!important}
  html body.cactus-dark #app .engine-base-row p,
  html body.cactus-dark #app .base-price-explain p,
  html body.cactus-dark #app .engine-empty-builder span{color:#b5bdc9!important}
  html body.cactus-dark #app .engine-empty-builder strong{color:#f0f2f6!important}
  html body.cactus-dark #app .pricing-builder-group,
  html body.cactus-dark #app .pricing-option-row,
  html body.cactus-dark #app .field-builder-row{
    background:#181b22!important;
    border-color:#373e4a!important;
  }
  html body.cactus-dark #app .pricing-option-row:hover,
  html body.cactus-dark #app .pricing-builder-group:hover{border-color:#505866!important}

  /* Foto de producto */
  html body.cactus-dark #app .product-photo-preview{
    background:#171a21!important;
    border-color:#3a414d!important;
  }
  html body.cactus-dark #app .product-photo-preview img{background:#171a21!important}
  html body.cactus-dark #app .product-photo-placeholder{color:#b1b8c4!important}
  html body.cactus-dark #app .product-photo-placeholder b{color:#f0f2f6!important}
  html body.cactus-dark #app .product-photo-note,
  html body.cactus-dark #app .product-photo-status{color:#aeb5c1!important}

  /* Importar configuración: modal realmente oscuro */
  html body.cactus-dark .cactus-import-backdrop{background:rgba(4,6,10,.72)!important}
  html body.cactus-dark .cactus-import-modal{
    background:#1b1e26!important;
    border-color:#414754!important;
    color:#f2f4f8!important;
    box-shadow:0 26px 90px rgba(0,0,0,.55)!important;
  }
  html body.cactus-dark .cactus-import-head{border-bottom-color:#373d49!important}
  html body.cactus-dark .cactus-import-head h3{color:#f5f7fb!important}
  html body.cactus-dark .cactus-import-head p{color:#b5bdc8!important}
  html body.cactus-dark .cactus-import-close{
    background:#292d37!important;color:#f1f3f7!important
  }
  html body.cactus-dark .cactus-import-tip,
  html body.cactus-dark .cactus-import-preview{
    background:#222630!important;
    border-color:#414856!important;
    color:#c6ccd6!important;
  }
  html body.cactus-dark .cactus-import-body textarea{
    background:#11141a!important;
    border-color:#484f5e!important;
    color:#f4f6fa!important;
  }
  html body.cactus-dark .cactus-import-preview-grid div{
    background:#171a21!important;
    border-color:#3b424e!important;
  }
  html body.cactus-dark .cactus-import-preview-grid span{color:#aeb5c1!important}
  html body.cactus-dark .cactus-import-preview-grid b{color:#f5f7fb!important}
  html body.cactus-dark .cactus-import-actions{border-top-color:#373d49!important}
  html body.cactus-dark .cactus-import-analyze{
    background:#262a34!important;border-color:#4b5260!important;color:#f1f3f7!important
  }
  html body.cactus-dark .cactus-import-config-btn{
    background:#292238!important;border-color:#59447a!important;color:#d9c1ff!important
  }

  /* Preparar OT: todo el wizard respeta modo oscuro */
  html body.cactus-dark .cx1535-card,
  html body.cactus-dark .cx1535-head,
  html body.cactus-dark .cx1535-footer{
    background:#171a21!important;color:#f4f6fa!important
  }
  html body.cactus-dark .cx1535-head,
  html body.cactus-dark .cx1535-section,
  html body.cactus-dark .cx1535-footer{border-color:#353c48!important}
  html body.cactus-dark .cx1535-title h3,
  html body.cactus-dark .cx1535-itemhead h4,
  html body.cactus-dark .cx1535-taskhead strong{color:#f4f6fa!important}
  html body.cactus-dark .cx1535-head p,
  html body.cactus-dark .cx1535-title p,
  html body.cactus-dark .cx1535-taskhead span,
  html body.cactus-dark .cx1535-footer span,
  html body.cactus-dark .cx1535-itemhead p{color:#b5bdc8!important}
  html body.cactus-dark .cx1535-item,
  html body.cactus-dark .cx1536-design-edit,
  html body.cactus-dark .cx1536-inherited{
    background:#1d2028!important;border-color:#3a414e!important
  }
  html body.cactus-dark .cx1536-inherited span,
  html body.cactus-dark .cx1536-inherited small{color:#b3bac6!important}
  html body.cactus-dark .cx1536-inherited strong{color:#f5f7fb!important}

  /* Nuevo bloque pago + vista previa lateral */
  html body.cactus-dark .cx1535-payment{
    background:#1c2028!important;
    border:1px solid #3a414e!important;
  }
  html body.cactus-dark .cx1593-payment-preview{
    background:#11141a!important;
    border-color:#434a57!important;
  }
  html body.cactus-dark .cx1593-preview-empty{color:#adb5c2!important}
  html body.cactus-dark .cx1593-preview-empty strong{color:#eef1f6!important}
  html body.cactus-dark .cx1593-preview-head{
    background:#20242d!important;
    border-bottom-color:#3c4350!important;
  }
  html body.cactus-dark .cx1593-preview-head strong{color:#f4f6fa!important}
  html body.cactus-dark .cx1593-preview-head span{color:#aeb6c3!important}
  html body.cactus-dark .cx1593-preview-head a{color:#c8a8ff!important}
  html body.cactus-dark .cx1593-preview-error{color:#ffb3bd!important;background:#351d25!important}

  /* Administración de pagos ya tenía preview, ahora también en oscuro */
  html body.cactus-dark .ot86-preview-panel,
  html body.cactus-dark .ot86-payment-fields{
    background:#1b1f27!important;
    border-color:#3d4451!important;
  }
  html body.cactus-dark .ot86-preview-head strong,
  html body.cactus-dark .ot86-fields-title strong{color:#f5f7fb!important}
  html body.cactus-dark .ot86-preview-head span,
  html body.cactus-dark .ot86-fields-title span,
  html body.cactus-dark .ot86-preview-empty{color:#b5bdc8!important}
  html body.cactus-dark .ot86-proof-preview{
    background:#11141a!important;border-color:#424957!important
  }
  html body.cactus-dark .ot86-preview-empty strong,
  html body.cactus-dark .ot86-proof-meta strong{color:#eef1f6!important}
  html body.cactus-dark .ot86-proof-meta{color:#aeb6c2!important}
  html body.cactus-dark .ot86-proof-meta a{color:#c8a8ff!important}
  html body.cactus-dark .ot86-payment-fields label{color:#d8dde5!important}
  html body.cactus-dark .ot86-payment-fields input[name="amount"]{color:#fff!important}
}

/* Layout nuevo de comprobante al generar OT */
.cx1535-payment{grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr)!important;gap:16px!important;align-items:stretch}
.cx1593-payment-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.cx1593-payment-fields .cx1535-span,.cx1593-proof-field{grid-column:1/-1}
.cx1593-proof-field small{display:block;margin-top:6px;font-size:12px;font-weight:500;color:#7a7180;line-height:1.4}
.cx1593-payment-preview{min-height:330px;border:1px solid #ddd5e4;border-radius:12px;overflow:hidden;background:#f7f5f9;display:flex;flex-direction:column}
.cx1593-preview-empty,.cx1593-preview-error{min-height:330px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:5px;padding:22px;color:#766c7d}
.cx1593-preview-empty strong,.cx1593-preview-error strong{font-size:14px;color:#4a4050}
.cx1593-preview-empty span,.cx1593-preview-error span{font-size:13px}
.cx1593-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #e4dce8;background:#fff}
.cx1593-preview-head>div{min-width:0}.cx1593-preview-head strong,.cx1593-preview-head span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cx1593-preview-head strong{font-size:13px}.cx1593-preview-head span{font-size:12px;color:#746b7a;margin-top:2px}.cx1593-preview-head a{font-size:12px;font-weight:850;text-decoration:none;color:#6b25ce;white-space:nowrap}
.cx1593-payment-preview iframe{width:100%;min-height:470px;flex:1;border:0;background:#fff}
.cx1593-preview-image{min-height:330px;flex:1;display:flex;align-items:center;justify-content:center;padding:10px;overflow:auto}.cx1593-preview-image img{max-width:100%;max-height:470px;object-fit:contain;display:block}
@media(max-width:900px){.cx1535-payment{grid-template-columns:1fr!important}.cx1593-payment-fields{grid-template-columns:1fr}.cx1593-payment-preview,.cx1593-preview-empty,.cx1593-preview-error{min-height:280px}.cx1593-payment-preview iframe{min-height:360px}}


/* =========================================================
   v1.5.94 · consolidación final de contraste
   Dashboard + OT + Administración de pagos + módulos heredados.
   ========================================================= */
@media screen {
  /* Dashboard: estado vacío de Mis tareas */
  html body.cactus-dark #app .cx156-empty{
    background:#181c23!important;
    border-color:#3f4754!important;
  }
  html body.cactus-dark #app .cx156-empty strong{color:#f4f6fa!important}
  html body.cactus-dark #app .cx156-empty span{color:#b7bfca!important}

  /* Dashboard: tarjetas propias del módulo de tareas */
  html body.cactus-dark #app .cx156-kpis article,
  html body.cactus-dark #app .cx156-card{
    background:#1b1f27!important;
    border-color:#39414d!important;
  }
  html body.cactus-dark #app .cx156-kpis span,
  html body.cactus-dark #app .cx156-kpis small,
  html body.cactus-dark #app .cx156-meta span,
  html body.cactus-dark #app .cx156-meta strong,
  html body.cactus-dark #app .cx156-order span{color:#b5bdc8!important}
  html body.cactus-dark #app .cx156-kpis strong,
  html body.cactus-dark #app .cx156-card h4{color:#f5f7fb!important}
  html body.cactus-dark #app .cx156-note{background:#151920!important;color:#dce1e8!important}

  /* OT: cabecera de ficha y tarjeta de producto completa */
  html body.cactus-dark #app .ot81-main-head,
  html body.cactus-dark #app .ot81-product{
    background:#1a1e25!important;
    border-color:#3b434f!important;
    color:#edf1f6!important;
  }
  html body.cactus-dark #app .ot81-product-head{border-bottom-color:#353d49!important}
  html body.cactus-dark #app .ot81-product h4,
  html body.cactus-dark #app .ot81-main-head h3{color:#f6f8fb!important}
  html body.cactus-dark #app .ot81-main-head p{color:#b7bfca!important}
  html body.cactus-dark #app .ot81-tabs{background:#12161c!important}
  html body.cactus-dark #app .ot81-tabs button{color:#b8c0cb!important}
  html body.cactus-dark #app .ot81-tabs button.is-active{
    background:#282d37!important;color:#d6bbff!important;box-shadow:none!important
  }
  html body.cactus-dark #app .ot81-pane{background:#1a1e25!important}
  html body.cactus-dark #app .ot81-description,
  html body.cactus-dark #app .ot81-note,
  html body.cactus-dark #app .ot81-spec{
    background:#14181f!important;border-color:#3a424e!important
  }
  html body.cactus-dark #app .ot81-info{
    background:#151920!important;border-color:#3a424e!important
  }
  html body.cactus-dark #app .ot81-info em{color:#9ea8b5!important}
  html body.cactus-dark #app .ot81-item-no{background:#35284d!important;color:#d8bfff!important}

  /* Administración y pagos: resumen que quedaba blanco */
  html body.cactus-dark #app .ot85-summary>div{
    background:#171b22!important;
    border-color:#3c4450!important;
  }
  html body.cactus-dark #app .ot85-summary span{color:#b5bdc8!important}
  html body.cactus-dark #app .ot85-summary strong{color:#f5f7fb!important}
  html body.cactus-dark #app .ot85-balance{color:#ffad8e!important}
  html body.cactus-dark #app .ot85-chip{
    background:#242933!important;color:#d7dde6!important;border:1px solid #3c4450!important
  }
  html body.cactus-dark #app .ot85-chip.ok{background:#173024!important;color:#9fe0b3!important;border-color:#315d42!important}
  html body.cactus-dark #app .ot85-chip.warn{background:#332918!important;color:#f2cf77!important;border-color:#63512a!important}

  /* Modal Administración y pagos */
  html body.cactus-dark .ot85-card{background:#191d24!important;color:#f4f6fa!important}
  html body.cactus-dark .ot85-modal-head{border-color:#38404c!important}
  html body.cactus-dark .ot85-modal-head h3,
  html body.cactus-dark .ot85-section-head h4,
  html body.cactus-dark .ot85-list-row strong{color:#f5f7fb!important}
  html body.cactus-dark .ot85-modal-head p,
  html body.cactus-dark .ot85-section-head p,
  html body.cactus-dark .ot85-list-row span,
  html body.cactus-dark .ot85-empty{color:#b5bdc8!important}
  html body.cactus-dark .ot85-kpis>div,
  html body.cactus-dark .ot85-total-note,
  html body.cactus-dark .ot85-list-row{
    background:#151920!important;border-color:#39414d!important
  }
  html body.cactus-dark .ot85-field,
  html body.cactus-dark .ot85-form label,
  html body.cactus-dark .ot88-due-wrap,
  html body.cactus-dark .ot88-due-wrap span{color:#d7dce4!important}
  html body.cactus-dark .ot85-section{border-color:#353d49!important}
  html body.cactus-dark .ot85-remove{background:#332027!important;border-color:#68404d!important;color:#ff9bac!important}

  /* Cabeceras/avisos genéricos que heredaban fondos blancos */
  html body.cactus-dark #app .panel-head,
  html body.cactus-dark #app .empty:not(.customer-doc *):not(.print-sheet *){
    border-color:#3a424e!important;
  }

  /* Foco visible y accesible en formularios */
  html body.cactus-dark input:focus,
  html body.cactus-dark select:focus,
  html body.cactus-dark textarea:focus{
    border-color:#9a6df2!important;
    box-shadow:0 0 0 3px rgba(154,109,242,.18)!important;
    outline:none!important;
  }
}
