/* ===========================================================================
   MODO OSCURO — html[data-theme="oscuro"] (interruptor en Preferencias y
   luna/sol de la cabecera; AppState pone el atributo). "claro" = aspecto
   original sin bloque. La lista de superficies se ha GENERADO barriendo las
   hojas reales en busca de fondos blancos y rellenos claros, así ningún
   diálogo, panel, tarjeta o campo se queda atrás; los textos beben de
   --navy/--navy-soft y giran solos. La foto del HMI, los vídeos y la
   pantalla de presentación del ShowPad conservan su luz propia.
   =========================================================================== */

[data-theme="oscuro"] {
  color-scheme: dark;
  --bg:        #15171E;
  --panel:     #161d26;
  --divider:   #2b3542;
  --navy:      #e8edf4;
  --navy-soft: #98a4b4;
  --blue:      #35a1ff;
  --card-bg:   #131a22;
  --field-border: #33404e;
  --hint-grey: #6b7583;
  --dark:      #e8edf4;
  --grey:      #aab3bf;
  --soft-shadow: 0 8px 22px rgba(0, 0, 0, 0.55);
  --panel-border: 1.4px solid rgba(255, 255, 255, 0.07);
}

/* Fondo azul de referencia (#141821): totalmente plano y homogéneo. */
[data-theme="oscuro"] body:not(.light-dialog):not(.light-dialog *) { background: #15171E; }
[data-theme="oscuro"] .app-background:not(.light-dialog):not(.light-dialog *) {
  /* Se anula Fondo.jpg y cualquier degradado para conservar un único tono. */
  background-color: #15171E;
  background-image: none;
}
/* Ninguna pantalla puede colar un fondo claro por encima del telón. */
[data-theme="oscuro"] .screen:not(.light-dialog):not(.light-dialog *) { background: transparent; }

/* ---------- Superficies blancas → tarjeta oscura (lista generada) ---------- */
[data-theme="oscuro"] .pwd-input:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .viewer-card-btn:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .parts-actions button:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .light-row select:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .video-popup .vp-area:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .video-popup video:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .doc-viewer:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hmi-table:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-panel:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-chip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .plc-row:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .strip-row:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .plc-node:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .btn-elec:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gallery-fs:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-dialog:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-dialog select:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-dialog input[type="text"]:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-dialog textarea:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .mdlg:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .fld:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .fld-search:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .chk:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .shimg-preview:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .shimg-preview .lens:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .btn-update:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .btn-qr:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .cat-btn:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .docmail-dialog:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .qr-frame i:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .qr-choice-btn:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-panel:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-chip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .prio-pill:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .custom-badge:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .reminder-card:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .btn-act:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pick-chip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .switch .thumb:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .dlg-select:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .prefs-version:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .notes-paper:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .contact-list:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .mail-dialog:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .search-dialog:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .auth-field:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .rec-btn:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .view-tile:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .view-enlarge:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .ve-stage:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .ve-confirm:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .ve-mail:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-chip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-dialog:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-tool:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-empty-btn:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-card:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-editor:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-clip img:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-hero-thumb .mini:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-preset:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-stepper .up:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-stepper .dn:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-lang:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-logo-pill:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-upload:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-specs .chip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-imgframe:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-qrcard:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-qrcard .qrbox:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-exit:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .lgt-chip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .lgt-seg:not(.light-dialog):not(.light-dialog *) {
  background: #161d26;
  border-color: #2b3542;
}

/* ---------- Rellenos claros (campos, chips, pistas) → pozo oscuro ---------- */
[data-theme="oscuro"] .cust-chip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .cust-search:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pk-cat:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .nav-btn:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-card:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .reminder-card select:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-empty .circ:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .date-pill:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .fld-soft:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .stepper .sb:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .prefs-dev:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-thumb:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-motion:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-clip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-card:not(.light-dialog):not(.light-dialog *) {
  background: #101720;
  border-color: #2b3542;
}

/* Retoques puntuales que las listas no capturan. */
[data-theme="oscuro"] .app-dialog-barrier:not(.light-dialog):not(.light-dialog *) { background: rgba(0, 0, 0, 0.55); }
[data-theme="oscuro"] .menu-dialog-layer .backdrop:not(.light-dialog):not(.light-dialog *) { background: rgba(0, 0, 0, 0.45); }
[data-theme="oscuro"] .logo-text:not(.light-dialog):not(.light-dialog *) { color: rgba(255, 255, 255, 0.92); }
[data-theme="oscuro"] img.hg-thumb:not(.light-dialog):not(.light-dialog *) { background: #0d1117; }
[data-theme="oscuro"] .sp-footer:not(.light-dialog):not(.light-dialog *) { background: rgba(13, 17, 23, 0.72); border-top-color: rgba(255, 255, 255, 0.08); }

/* ---------- Logotipos: tinta blanca en oscuro ---------- */
.logo-block .logo-dark, .splash-logo.dark { display: none; }
[data-theme="oscuro"] .logo-block .logo-light:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .splash-logo.light:not(.light-dialog):not(.light-dialog *) { display: none; }
[data-theme="oscuro"] .logo-block .logo-dark:not(.light-dialog):not(.light-dialog *) { display: block; }
[data-theme="oscuro"] .splash-logo.dark:not(.light-dialog):not(.light-dialog *) { display: inline-block; }

/* ---------- Iconos ORIGINALES invertidos a blanco en oscuro ---------- */
[data-theme="oscuro"] .app-icon img:not(.light-dialog):not(.light-dialog *) { filter: brightness(0) invert(0.94); }

/* ===========================================================================
   COHERENCIA INTERIOR EN OSCURO (generado): tintas de texto hardcodeadas
   dentro de diálogos y paneles remapeadas a las variables claras, campos con
   fondo inline domados, placas blancas tras los PNG transparentes, y la
   presentación del ShowPad + el monitor de maqueta conservan su paleta clara
   LOCAL (viven sobre fondos claros propios).
   =========================================================================== */

/* ---------- Tintas oscuras → texto principal claro ---------- */
[data-theme="oscuro"] .float-panel .fp-head .x:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-head .et1:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-chip .ct .a:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .device-card .dc-title:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-group:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .row-ref:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-side .st:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-toggle:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-tip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .btn-elec:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-head .gt:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-label:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-dialog select:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-dialog input[type="text"]:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-dialog textarea:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .dlg-x:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .mdlg:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .fld-label:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .btn-save:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .btn-qr:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-head .t1:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-nav .m:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .nav-btn:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .day-cell .in:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-datehead .d:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-chip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-title:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .meta-cell .v:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .reminder-card .rt:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .reminder-card select:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .btn-act:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .mgr-bar .a:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .date-pill:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .fld-soft:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pick-chip:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .stepper .sb:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .stepper .sv:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .search-head .x:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pin-row .nm:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .views-head .t:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .views-empty .a:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .ve-head .t:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .ve-confirm .a:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-head .t1:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-block .a:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-preset .nm:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-card .ct:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-toggle .tt .a:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-stepper .v:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-stepper .up:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-stepper .dn:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-logo-pill .tx:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pinfo-name:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pinfo-path:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pinfo-row .v:not(.light-dialog):not(.light-dialog *) {
  color: var(--navy);
}

/* ---------- Grises medios → texto secundario claro ---------- */
[data-theme="oscuro"] .hmi-table .c-par:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-head .et2:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-foot .cnt:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-steps .sep:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-chip .n:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-chip .ct .b:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .row-label:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .elec-toggle .material-symbols-outlined:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .gshare-head .x:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .fld-search .material-symbols-outlined:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .cust-row .ce:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .shimg-sub:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .shimg-crow .ce:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .docs-head .t2:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .doc-shortcuts .sc-title:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sc-pill .x:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .cat-btn .cl .b:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .docs-backbar .bc:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .doc-row .ds:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .doc-row .act:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pk-cat .badge:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pk-row .sz:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-head .t2:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-wk span:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-legend .li:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-chips-title:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .custom-badge:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-desc:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .meta-cell .k:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .reminder-card .rd:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .reminder-card .row2:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-hint:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-empty .circ:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .act-foot:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .mgr-bar .b:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .form-label:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .confirm-del .lnk.grey:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pin-row .fp-ic:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .views-empty .b:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .view-tile .handle:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .view-tile .zoom:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .ve-confirm .b:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-sub:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-count:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-lnk:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-empty .tx:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-card-top .x:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-note:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-when:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .hg-rec-hint:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-head .t2:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-block .b:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-toggle .tt .b:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-lang:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-logo-pill .x:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-msg .lbl:not(.light-dialog):not(.light-dialog *) {
  color: var(--navy-soft);
}

/* ---------- Campos con fondo claro inline: el oscuro manda ---------- */
[data-theme="oscuro"] .fld:not(.light-dialog):not(.light-dialog *) {
  background: #101720 !important;
  color: var(--navy) !important;
  border-color: var(--field-border);
}

/* ---------- Placas blancas tras los PNG transparentes ---------- */
[data-theme="oscuro"] :is(.catalog-card img, .gallery-card img, .tut-tile img,
  .tut-steps .sc-icon img, .sp-logo-pill img):not(.light-dialog):not(.light-dialog *) { background: #fff; }
[data-theme="oscuro"] .catalog-card img:not(.light-dialog):not(.light-dialog *) { border-radius: 12px; }
[data-theme="oscuro"] .tut-tile img:not(.light-dialog):not(.light-dialog *) { border-radius: 10px; }
[data-theme="oscuro"] .tut-steps .sc-icon img:not(.light-dialog):not(.light-dialog *) { border-radius: 8px; padding: 3px; }
[data-theme="oscuro"] .sp-logo-pill img:not(.light-dialog):not(.light-dialog *) { border-radius: 5px; padding: 2px 4px; }

/* ---------- Islas de paleta clara: presentación ShowPad y monitor ---------- */
[data-theme="oscuro"] .sp-hero-thumb:not(.light-dialog):not(.light-dialog *) {
  --navy: #22395B;
  --navy-soft: #5B6982;
  --blue: #1E96FF;
  --divider: #D9DBE0;
}

/* ===========================================================================
   FASE 6r — repaso fino del modo oscuro (petición por secciones)
   =========================================================================== */

/* 2.1 · Share: la caja del modelo 3D, siempre blanca (la captura ya lo es). */
[data-theme="oscuro"] .shimg-preview:not(.light-dialog):not(.light-dialog *) { background: #fff; border-color: #E3E7EE; }

/* 2.3 · QR: la insignia del diálogo con contraste garantizado. */
[data-theme="oscuro"] .qr-head .badge:not(.light-dialog):not(.light-dialog *) { background: var(--blue); color: #fff; }

/* 2.4 · Changeover/Operaciones: su telón (Fondo.jpg) pasa a la aurora. */
[data-theme="oscuro"] .stage-overlay .stage-bg:not(.light-dialog):not(.light-dialog *) {
  background-color: #0d1117;
  background-image:
    radial-gradient(90% 70% at 72% -10%, rgba(53, 161, 255, 0.14) 0%, rgba(53, 161, 255, 0) 55%),
    radial-gradient(120% 90% at 50% 40%, #151c26 0%, #0d1117 62%, #080b0f 100%);
}

/* 2.5 · Catálogo: cajas de máquina BLANCAS en oscuro. */
[data-theme="oscuro"] .catalog-card:not(.light-dialog):not(.light-dialog *) { background: #fff; border-color: #E3E7EE; }

/* 2.8 · +Vistas: cajas blancas en rejilla y en la ampliación. */
[data-theme="oscuro"] .view-tile:not(.light-dialog):not(.light-dialog *) { background: #fff; border-color: #E3E7EE; }
[data-theme="oscuro"] .ve-stage:not(.light-dialog):not(.light-dialog *) { background: #fff; }

/* 2.6a/2.1b · Botones que quedan claros: tinta negra. */
[data-theme="oscuro"] .sp-foot .js-cancel:not(.light-dialog):not(.light-dialog *) { color: #16202c; }

/* 2.6b · Presets de Layout visibles: tarjeta oscura + alambres claros. */
[data-theme="oscuro"] .sp-preset:not(.light-dialog):not(.light-dialog *) { background: #101720; border-color: #2b3542; }
[data-theme="oscuro"] .sp-preset.on:not(.light-dialog):not(.light-dialog *) { background: rgba(53, 161, 255, 0.10); }
[data-theme="oscuro"] .sp-preset .wire i:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-preset .w-big:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-preset .w-half:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .sp-preset .w-slide:not(.light-dialog):not(.light-dialog *) { background: #45566b; }
[data-theme="oscuro"] .sp-preset .w-dots i:not(.light-dialog):not(.light-dialog *) { background: #45566b; }
[data-theme="oscuro"] .sp-preset .w-dots i.on:not(.light-dialog):not(.light-dialog *) { background: var(--blue); }

/* 2.6c · Presentación del ShowPad coherente con el oscuro. */
[data-theme="oscuro"] .sp-screen-root:not(.light-dialog):not(.light-dialog *) {
  background:
    radial-gradient(90% 70% at 72% -10%, rgba(53, 161, 255, 0.14) 0%, rgba(53, 161, 255, 0) 55%),
    radial-gradient(120% 90% at 50% 42%, #151c26 0%, #0d1117 64%, #080b0f 100%);
}
[data-theme="oscuro"] .sp-stage-bg .glow:not(.light-dialog):not(.light-dialog *) { opacity: 0.10; }
[data-theme="oscuro"] .sp-stage-bg .shadow:not(.light-dialog):not(.light-dialog *) { opacity: 0.5; }
[data-theme="oscuro"] .sp-stagecard:not(.light-dialog):not(.light-dialog *) {
  background: linear-gradient(180deg, #161d26, #10161d);
  border-color: #2b3542;
}
[data-theme="oscuro"] .sp-imgframe .ph:not(.light-dialog):not(.light-dialog *) { background: linear-gradient(135deg, #1b2430, #141b24); }
/* El QR necesita blanco para escanearse: tarjeta blanca con tinta oscura. */
[data-theme="oscuro"] .sp-qrcard:not(.light-dialog):not(.light-dialog *) { background: #fff; border-color: #E3E6EB; }
[data-theme="oscuro"] .sp-qrcard .a:not(.light-dialog):not(.light-dialog *) { color: #22395B; }
[data-theme="oscuro"] .sp-qrcard .b:not(.light-dialog):not(.light-dialog *) { color: #5B6982; }

/* 2.7 · El HMI es una isla clara: nada suyo cambia en oscuro. */
[data-theme="oscuro"] .hmi-overlay:not(.light-dialog):not(.light-dialog *) {
  --navy: #22395B;
  --navy-soft: #5B6982;
  --blue: #1E96FF;
  --divider: #D9DBE0;
}
[data-theme="oscuro"] .hmi-table:not(.light-dialog):not(.light-dialog *) { background: #fff; border-color: #E3E7EE; }
[data-theme="oscuro"] .hmi-table .c-par:not(.light-dialog):not(.light-dialog *) { color: #475569; }
[data-theme="oscuro"] .hmi-table .ht-row.sel .c-par:not(.light-dialog):not(.light-dialog *) { color: #fff; }
[data-theme="oscuro"] .hmi-status:not(.light-dialog):not(.light-dialog *) { color: #000; }

/* 2.9 · Preferencias: su logotipo, en blanco. */
[data-theme="oscuro"] .prefs-logo:not(.light-dialog):not(.light-dialog *) { filter: brightness(0) invert(1); }

/* ===========================================================================
   FASE 6s — segunda pasada fina del oscuro
   =========================================================================== */

/* 2.1 · Cancelar de Share (y cualquier botón con fondo claro en línea). */
[data-theme="oscuro"] .js-cancel[style*="#F5F6F8"]:not(.light-dialog):not(.light-dialog *) { color: #16202c; }

/* 2.3 · Actions: insignia con contraste + hoy en blanco con número negro. */
[data-theme="oscuro"] .act-head .badge:not(.light-dialog):not(.light-dialog *) { background: var(--blue); }
[data-theme="oscuro"] .day-cell .today-badge:not(.light-dialog):not(.light-dialog *) { background: #fff; color: #16202c; }

/* 2.4 · Changeover/Operaciones: tarjetas de la rejilla en oscuro. */
[data-theme="oscuro"] .tut-tile:not(.light-dialog):not(.light-dialog *) { background: linear-gradient(135deg, #1a2230, #141a24); }
[data-theme="oscuro"] .tut-head .badge:not(.light-dialog):not(.light-dialog *) { background: var(--blue); }

/* 2.5 · ShowPad: halo del escenario azulado (nada de fondo blanco),
        logotipo del pie en blanco y Preview negro-sobre-blanco. */
[data-theme="oscuro"] .sp-stage-bg .glow:not(.light-dialog):not(.light-dialog *) {
  background: radial-gradient(closest-side, rgba(53, 161, 255, 0.20), rgba(53, 161, 255, 0));
  opacity: 0.55;
}
[data-theme="oscuro"] .sp-footer img:not(.light-dialog):not(.light-dialog *) { filter: brightness(0) invert(1); }
[data-theme="oscuro"] .sp-foot .js-preview:not(.light-dialog):not(.light-dialog *) {
  background: #fff;
  color: #16202c;
  border-color: #E3E7EE;
}


/* Ficha de información: replica la referencia adjunta en modo azul oscuro. */
[data-theme="oscuro"] .pinfo:not(.light-dialog):not(.light-dialog *) {
  background: #161D27;
  border-color: #64D4E7;
  box-shadow:
    0 0 0 0.5px rgba(100, 212, 231, 0.58),
    0 0 12px rgba(100, 212, 231, 0.20),
    0 10px 26px rgba(0, 0, 0, 0.34);
}
[data-theme="oscuro"] .pinfo .fp-head:not(.light-dialog):not(.light-dialog *) {
  border-bottom-color: #263543;
  color: #B9C9D9;
}
[data-theme="oscuro"] .pinfo .fp-title:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pinfo-name:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pinfo-description:not(.light-dialog):not(.light-dialog *) { color: #C5D2DF; }
[data-theme="oscuro"] .pinfo-ref:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pinfo .pinfo-drag:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pinfo .pinfo-info-icon:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .pinfo .fp-head .x:not(.light-dialog):not(.light-dialog *) { color: #91A4B8; }

/* Gestor de animaciones: halo muy fino y controles integrados en modo oscuro. */
[data-theme="oscuro"] .anim-assign-panel:not(.light-dialog):not(.light-dialog *) {
  border-color: rgba(100, 212, 231, 0.62);
  box-shadow: 0 0 10px rgba(100, 212, 231, 0.12), 0 10px 26px rgba(0, 0, 0, 0.34);
}
[data-theme="oscuro"] .aa-take:not(.light-dialog):not(.light-dialog *) { background: #131A22; }
[data-theme="oscuro"] .aa-map-row select:not(.light-dialog):not(.light-dialog *),
[data-theme="oscuro"] .aa-field select:not(.light-dialog):not(.light-dialog *) { background: #131A22; border-color: #33404E; color: #E8EDF4; }

/* ===========================================================================
   V11 · DIÁLOGOS SIEMPRE CON PALETA LIGHT

   El modo oscuro sólo cambia el entorno de la aplicación. Cualquier interfaz
   marcada como .light-dialog conserva exactamente las variables de la versión
   clara. Los selectores oscuros de este archivo excluyen tanto el nodo raíz
   .light-dialog como todos sus descendientes, por lo que no pueden volver a
   invertir textos, iconos, campos o fondos dentro de un diálogo.
   =========================================================================== */
[data-theme="oscuro"] .light-dialog {
  color-scheme: light;
  --bg:        #E8E9EC;
  --panel:     #F3F4F7;
  --divider:   #D9DBE0;
  --navy:      #22395B;
  --navy-soft: #5B6982;
  --blue:      #1E96FF;
  --card-bg:   #F7F8FA;
  --field-border: #D8DBE0;
  --hint-grey: #9AA1AB;
  --dark:      #1C2230;
  --grey:      #5E6671;
  --error-red: #E0443A;
  --ok-green:  #2E9E5B;
  --green-ok:  #35C759;
  --soft-shadow: 0 4px 12px rgba(0, 0, 0, 0.10);
  --panel-border: 1.4px solid rgba(255, 255, 255, 0.85);
  color: var(--navy);
}
