/* Modo oscuro estilo Arc: el selector de Apariencia y los retoques hechos a mano.
   Los tokens oscuros viven en tema-interfaz.css y tema-arc.css (html[data-theme="dark"]); los
   colores fijos de las hojas antiguas se traducen solos en tema-oscuro-base.css y
   tema-oscuro-capas.css (tools/generar-tema-oscuro.js). Aquí va lo que el generador no puede
   saber: estilos escritos en los scripts de las pantallas, componentes que en oscuro piden otro
   tratamiento y el propio selector. Al imprimir, theme.js pone el tema claro. */

/* ===== Ajustes → Apariencia: tres tarjetas con su miniatura ===== */
html[data-ui="erp"] #modal-ajustes .modal-content { max-width:560px; }
html[data-ui="erp"] .arc-apariencia { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:12px!important; }
html[data-ui="erp"] .arc-apariencia .appearance-choice { padding:8px 8px 10px; border-radius:18px; background:var(--fc-card); border:1px solid var(--fc-border); box-shadow:var(--arc-resting); color:var(--fc-ink); text-align:left; cursor:pointer; transition:border-color var(--arc-fast) var(--arc-ease),box-shadow var(--arc-fast) var(--arc-ease); }
html[data-ui="erp"] .arc-apariencia .appearance-choice:hover { border-color:var(--fc-input); }
html[data-ui="erp"] .arc-apariencia .appearance-choice[aria-pressed="true"] { border-color:var(--fc-ink); box-shadow:0 0 0 1px var(--fc-ink),var(--arc-resting); }
html[data-ui="erp"] .arc-apariencia .appearance-choice-label { margin-top:10px; padding:0 4px; font-size:13.5px; font-weight:500; display:flex; justify-content:space-between; align-items:center; }
html[data-ui="erp"] .arc-apariencia .appearance-check { opacity:0; }
html[data-ui="erp"] .arc-apariencia .appearance-choice[aria-pressed="true"] .appearance-check { opacity:1; }
html[data-ui="erp"] .arc-apariencia .appearance-preview { display:block; position:relative; height:84px; border-radius:12px; overflow:hidden; border:1px solid oklch(0% 0 0 / .08); }
html[data-ui="erp"] .arc-apariencia .appearance-preview::before, html[data-ui="erp"] .arc-apariencia .appearance-preview::after { content:""; position:absolute; }
/* La miniatura: barra lateral a la izquierda y una tarjeta con dos renglones. */
html[data-ui="erp"] .arc-prev-claro { background:linear-gradient(90deg,oklch(96% 0 0) 0 26%,oklch(98.6% 0 0) 26%)!important; }
html[data-ui="erp"] .arc-prev-oscuro { background:linear-gradient(90deg,oklch(21.5% 0 0) 0 26%,oklch(17% 0 0) 26%)!important; }
html[data-ui="erp"] .arc-prev-auto { background:linear-gradient(90deg,oklch(96% 0 0) 0 26%,oklch(98.6% 0 0) 26% 60%,oklch(17% 0 0) 60%)!important; }
html[data-ui="erp"] .arc-apariencia .appearance-preview::after { left:34%; right:10%; top:22px; height:40px; border-radius:8px; }
html[data-ui="erp"] .arc-prev-claro::after { background:linear-gradient(oklch(88% 0 0),oklch(88% 0 0)) 10px 10px / 50% 6px no-repeat,linear-gradient(oklch(93% 0 0),oklch(93% 0 0)) 10px 22px / 70% 5px no-repeat,#fff; box-shadow:0 2px 6px oklch(0% 0 0 / .07); }
html[data-ui="erp"] .arc-prev-oscuro::after { background:linear-gradient(oklch(45% 0 0),oklch(45% 0 0)) 10px 10px / 50% 6px no-repeat,linear-gradient(oklch(34% 0 0),oklch(34% 0 0)) 10px 22px / 70% 5px no-repeat,oklch(23% 0 0); box-shadow:0 0 0 1px oklch(100% 0 0 / .06); }
html[data-ui="erp"] .arc-prev-auto::after { background:linear-gradient(90deg,#fff 0 60%,oklch(23% 0 0) 60%); box-shadow:0 2px 6px oklch(0% 0 0 / .07); }
html[data-ui="erp"] .arc-prev-auto::before { left:6px; top:8px; width:14px; height:14px; border-radius:50%; background:linear-gradient(90deg,oklch(78% .12 75) 50%,oklch(70% .05 260) 50%); }
html[data-ui="erp"] .arc-apariencia-nota { margin:14px 0 0!important; font-size:12.5px!important; color:var(--fc-muted)!important; }
@media (max-width:520px) { html[data-ui="erp"] .arc-apariencia { grid-template-columns:1fr!important; } html[data-ui="erp"] .arc-apariencia .appearance-preview { height:64px; } }

/* ===== Retoques del modo oscuro ===== */
html[data-ui="erp"][data-theme="dark"] {
  /* Colores que los scripts de las pantallas escriben en línea con un valor de respaldo claro. */
  --rojo-cifra:oklch(74% .15 25);
  --aviso-error-fondo:oklch(28% .06 25); --aviso-error-borde:oklch(45% .1 25);
}

/* Tonos locales (--arc-*) de la ficha del evento, Planificación, Eventos y el almacén: en claro
   están pensados para fondo blanco; en oscuro, los mismos estados, más claros. */
html[data-theme="dark"] :is(#modal-alm-unidad,#modal-alq-evento,#modal-alq-cierre,#view-eventos,#view-planificacion,.alm-sal,.alm-rev-ficha,.alm-prev-aviso,.alm-prev-tabla,.alm-prev-cab,.alq-mis-eventos,.alq-rt-vista) {
  --arc-mut:oklch(64% 0 0); --arc-borde-f:oklch(40% 0 0); --arc-sup-m:oklch(26% 0 0);
  --arc-ok:oklch(76% .14 150); --arc-mal:oklch(74% .15 25); --arc-aviso:oklch(80% .13 80);
}

/* Las tarjetas «destacadas» que en claro son casi negras (cifras del artículo, presencia de
   RRHH, resúmenes de contabilidad…) usan el color de acción, que en oscuro es casi blanco: su
   texto translúcido blanco dejaba de verse. En oscuro pasan a ser una superficie elevada. */
html[data-ui="erp"][data-theme="dark"] :is(.alm-ficha-cifras > div.oscura, #alq-cal .alq-cal-dato-evento, .arc-rrhh-presencia, #contab-panel-libro-mayor .mayor-resumen, .ana-card, #contab-panel-fiscal .dash-card:has(.fiscal-resumen), #view-contabilidad .fin-kpis > .fin-kpi:first-child, #view-contabilidad #terceros-contab-resumen > .dash-card:first-child, #view-contabilidad .ctz-hero, .conc-imp-ico, .ctz-hero-ico, .esc-cab-ico) {
  --fc-primary:oklch(29% 0 0); --fc-on-primary:oklch(97% 0 0);
  box-shadow:inset 0 0 0 1px oklch(100% 0 0 / .08), 0 18px 36px -24px oklch(0% 0 0 / .6)!important;
}

/* Las fotos de los artículos tienen fondo blanco: en oscuro la foto ocupa su marco en blanco,
   como una ficha de catálogo, en lugar de un cuadro blanco flotando en negro. */
html[data-theme="dark"] :is(.alm-foto,.alm-ficha-foto):has(img), html[data-theme="dark"] :is(.alm-card-foto,[class*="alm"] img[src*="/uploads/almacen/"]) { background:#fff!important; }

/* Avatares de color por persona (correo, chat interno): el mismo tono, oscuro. */
html[data-theme="dark"] :is(.gm-avatar,.chatint-avatar)[style*="--av-bg"] { background:color-mix(in oklab, var(--av-fg) 32%, oklch(22% 0 0))!important; color:color-mix(in oklab, var(--av-fg) 30%, white)!important; }

/* Un correo con formato es un documento ajeno, escrito para fondo blanco: se lee sobre papel. */
html[data-theme="dark"] .email-html-frame { background:#fff; color-scheme:light; border-radius:12px; padding:12px 14px; box-sizing:border-box; }

/* El logotipo de la entrada, como el de la barra lateral: en oscuro, en negativo. */
html[data-ui="erp"][data-theme="dark"] #login-screen img[data-marca="logo"] { filter:invert(1) hue-rotate(180deg); }

/* Por si el navegador imprime sin avisar antes (theme.js pone el claro en «beforeprint»): al
   imprimir, los tokens vuelven a los del tema claro. */
@media print {
  html[data-ui="erp"][data-theme="dark"] {
    color-scheme:light;
    --fc-background:oklch(98.6% 0 0); --fc-ink:oklch(15% 0 0); --fc-muted:oklch(46% 0 0);
    --fc-card:oklch(100% 0 0); --fc-primary:oklch(23% 0 0); --fc-on-primary:oklch(100% 0 0);
    --fc-secondary:oklch(97.3% 0 0); --fc-selected:oklch(95.8% 0 0);
    --fc-row-hover:oklch(98.4% 0 0);
    --fc-border:oklch(93.5% 0 0); --fc-input:oklch(89.5% 0 0);
    --fc-success:oklch(49% .19 150); --fc-warning:oklch(52% .16 70); --fc-error:oklch(54% .21 25);
    --fc-nav:rgb(255 255 255 / .72); --fc-nav-border:oklch(93.5% 0 0 / .9);
    --fc-ambient:radial-gradient(ellipse at 0% 0%,oklch(95% .03 290) 0,transparent 48%),radial-gradient(ellipse at 100% 0%,oklch(96% .025 240) 0,transparent 42%),radial-gradient(ellipse at 100% 100%,oklch(96.5% .03 65) 0,transparent 50%);
    --fc-shadow:0 6px 18px oklch(0% 0 0 / .05),0 1px 3px oklch(0% 0 0 / .035);
    --fc-floating:0 20px 48px oklch(0% 0 0 / .105),0 3px 10px oklch(0% 0 0 / .045);
    --fc-button-shadow:0 1px 2px oklch(0% 0 0 / .06);
    --arc-lift:0 12px 28px -14px oklch(0% 0 0 / .16),0 2px 6px -2px oklch(0% 0 0 / .05);
    --arc-display:"Geist Arc","Inter Arc",-apple-system,BlinkMacSystemFont,sans-serif;
    --arc-resting:0 1px 2px oklch(0% 0 0 / .035);
    --arc-gradient:linear-gradient(100deg,oklch(90% .045 300),oklch(92% .045 65));
    --arc-gradient-soft:linear-gradient(135deg,oklch(97.5% .016 300),oklch(98% .016 65));
    --arc-gradient-ink:linear-gradient(100deg,oklch(47% .1 300),oklch(50% .09 55));
    --arc-gradient-fg:oklch(22% .01 300);
    --bg-deep:oklch(98.4% 0 0); --table-stripe:oklch(99.2% 0 0);
    --accent-border:oklch(89.5% 0 0); --action-hover:oklch(32% 0 0);
    --purple:oklch(47% .1 300);
    --glass-mint:oklch(96.5% .03 155); --glass-blue:oklch(96.5% .02 250); --glass-purple:oklch(96.5% .025 300); --glass-sand:oklch(97% .035 75);
    --danger-bg:oklch(96.5% .03 25);
    --overlay:oklch(15% 0 0 / .32); --border-highlight:oklch(100% 0 0 / .85);
    --alq-amarillo: oklch(93% .09 95); --alq-amarillo-borde: oklch(78% .14 85); --alq-amarillo-tinta: oklch(40% .09 75);
    --alq-verde: oklch(92% .07 150); --alq-verde-borde: oklch(64% .14 150); --alq-verde-tinta: oklch(36% .1 150);
    --alq-rojo: oklch(93% .05 25); --alq-rojo-borde: oklch(66% .17 25); --alq-rojo-tinta: oklch(42% .14 25);
    --alq-gris: oklch(94% 0 0); --alq-gris-borde: oklch(75% 0 0); --alq-gris-tinta: oklch(38% 0 0);
    --alq-azul: oklch(93% .045 250); --alq-azul-borde: oklch(62% .14 252); --alq-azul-tinta: oklch(42% .13 256);
  }
}

/* ===== Planificación en oscuro: la jerarquía de Arc en vez de gris plano =====
   La bandeja de plantilla y vehículos con el degradado lavanda → ámbar muy tenue; el tablero
   un punto más hondo que las tarjetas, su cabecera un punto más clara; el «hoy» con el degradado
   de Arc; fines de semana apenas sombreados; la fila del almacén como un cajón más oscuro; las
   tarjetas de evento con un tinte leve del color de su estado (sin franja: más sobrio). */
html[data-ui="erp"][data-theme="dark"] #view-planificacion {
  --plan-linea:oklch(100% 0 0 / .055); --plan-finde:oklch(100% 0 0 / .032);
  --plan-hoy:linear-gradient(180deg, oklch(72% .12 300 / .10), oklch(78% .1 60 / .05));
  --plan-destino:oklch(80% .1 300);
}
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-plantilla { background:linear-gradient(100deg, oklch(25.5% .035 300) 0%, oklch(22.5% .012 285) 48%, oklch(24.5% .03 60) 100%); border-color:oklch(100% 0 0 / .07); box-shadow:inset 0 1px 0 oklch(100% 0 0 / .04); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-plantilla::before { opacity:.45; }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-vehiculos { border-left-color:oklch(100% 0 0 / .08); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion :is(.plan-persona,.plan-vehiculo,.plan-vehiculo-nuevo):hover,
html[data-ui="erp"][data-theme="dark"] #view-planificacion :is(.plan-persona,.plan-vehiculo).plan-elegida { background:oklch(100% 0 0 / .06); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-persona-foto { border-color:oklch(100% 0 0 / .14); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-persona.plan-elegida .plan-persona-foto { border-color:oklch(80% .1 300); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-vehiculo-icono { background:oklch(100% 0 0 / .07); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-vehiculo-icono.grande { border-color:oklch(100% 0 0 / .12); }

html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-tablero { background:oklch(19.5% 0 0); border-color:oklch(100% 0 0 / .07); box-shadow:0 18px 40px -28px oklch(0% 0 0 / .7); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-dias { background:oklch(23.5% 0 0); border-bottom-color:oklch(100% 0 0 / .08); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-dia + .plan-dia,
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-columnas i,
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-almacen-dia + .plan-almacen-dia { border-left-color:var(--plan-linea); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-columnas i:first-child { border-left:0; }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-dia small { color:oklch(66% 0 0); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-dia b { color:oklch(97% 0 0); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion :is(.plan-dia,.plan-columnas i,.plan-almacen-dia):nth-child(n+6) { background-color:var(--plan-finde); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-dia:nth-child(n+6) :is(small,b) { color:oklch(60% 0 0); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-dia-hoy b { background:linear-gradient(100deg, oklch(74% .12 300), oklch(80% .11 60))!important; color:oklch(18% .02 300)!important; box-shadow:0 0 0 3px oklch(74% .12 300 / .18); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-dia-hoy small { color:oklch(82% .06 300)!important; }
html[data-ui="erp"][data-theme="dark"] #view-planificacion :is(.plan-columnas i,.plan-almacen-dia).plan-col-hoy { background:var(--plan-hoy); }

html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-almacen { background:oklch(16.5% 0 0); border-top-color:oklch(100% 0 0 / .08); box-shadow:inset 0 8px 14px -12px oklch(0% 0 0 / .8); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-almacen-rotulo { color:oklch(78% .07 70); letter-spacing:.08em; }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-almacen-hueco { border-color:oklch(100% 0 0 / .16); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-almacen-dia .plan-cara .rh-task-avatar { border-color:oklch(16.5% 0 0); }

html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-evento { background:color-mix(in oklab, var(--alq-b, oklch(50% 0 0)) 9%, oklch(22.5% 0 0)); border-color:oklch(100% 0 0 / .09); box-shadow:none; }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-evento.plan-sigue { box-shadow:none; }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-evento.alq-finalizado { background:color-mix(in oklab, var(--alq-b) 20%, oklch(22.5% 0 0)); border-color:color-mix(in oklab, var(--alq-b) 45%, transparent); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-evento-nombre { color:oklch(97% 0 0); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-evento-estado { color:var(--alq-t, oklch(80% 0 0)); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-evento p { color:oklch(72% 0 0); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-evento .plan-cara .rh-task-avatar { border-color:color-mix(in oklab, var(--alq-b, oklch(50% 0 0)) 16%, oklch(22.5% 0 0)); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-vehiculo-chip { background:oklch(100% 0 0 / .07); }

/* Arrastrar y soltar: el destino se enciende con el lavanda de Arc. */
html[data-ui="erp"][data-theme="dark"] #view-planificacion :is(.plan-evento.plan-sobre, .plan-con-elegida .plan-evento:hover) { border-color:var(--plan-destino); box-shadow:0 0 0 3px oklch(74% .12 300 / .28); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion :is(.plan-almacen-dia.plan-sobre, .plan-con-elegida .plan-almacen-dia:hover) { border-color:var(--plan-destino); background:oklch(74% .12 300 / .10); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-plantilla.plan-sobre { border-color:var(--arc-mal); background:linear-gradient(100deg, oklch(27% .05 25), oklch(23% .02 25)); }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-vehiculos.plan-sobre { background:oklch(74% .15 25 / .08); }
html[data-ui="erp"][data-theme="dark"] .plan-dias-sel { background:oklch(24% 0 0); border-color:oklch(100% 0 0 / .1); box-shadow:var(--fc-floating); }

/* Planificación → Calendario: la misma jerarquía que la semana. */
html[data-ui="erp"][data-theme="dark"] #view-calendario { --cal-tray:oklch(17% 0 0); }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-mes-cifras { background:linear-gradient(100deg, oklch(25.5% .035 300) 0%, oklch(22.5% .012 285) 48%, oklch(24.5% .03 60) 100%); border-color:oklch(100% 0 0 / .07); }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-mes-cifra + .alq-mes-cifra { border-left-color:oklch(100% 0 0 / .07); }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-cal-rejilla { background:oklch(19.5% 0 0)!important; border-color:oklch(100% 0 0 / .07)!important; box-shadow:0 18px 40px -28px oklch(0% 0 0 / .7); }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-cal-cab { background:oklch(23.5% 0 0); border-bottom-color:oklch(100% 0 0 / .08)!important; }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-cal-cab div { color:oklch(68% 0 0)!important; }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-cal-cab div:nth-child(n+6) { color:oklch(56% 0 0)!important; }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-semana { border-bottom-color:oklch(100% 0 0 / .06)!important; }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-dia { border-right-color:oklch(100% 0 0 / .055)!important; }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-dia-finde { background:oklch(100% 0 0 / .032); }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-dia-fuera { background:oklch(17.5% 0 0)!important; }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-dia-num { color:oklch(78% 0 0)!important; }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-dia-hoy { background:linear-gradient(180deg, oklch(72% .12 300 / .10), oklch(78% .1 60 / .04)); }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-dia-hoy .alq-dia-num { background:linear-gradient(100deg, oklch(74% .12 300), oklch(80% .11 60))!important; color:oklch(18% .02 300)!important; box-shadow:0 0 0 3px oklch(74% .12 300 / .18); }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-barra { color:oklch(96% 0 0)!important;
  background:linear-gradient(90deg, color-mix(in oklab, var(--alq-b) 24%, oklch(21% 0 0)) 0 calc(100% - var(--alq-margen, 0%)), transparent calc(100% - var(--alq-margen, 0%))), repeating-linear-gradient(135deg, color-mix(in oklab, var(--alq-b) 40%, transparent) 0 2px, transparent 2px 6px)!important;
  box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--alq-b) 40%, transparent)!important; }
html[data-ui="erp"][data-theme="dark"] #view-calendario .alq-barra-txt em { color:oklch(74% 0 0); }

/* Planificación → Eventos: la fecha en su baldosa con el degradado tenue. */
html[data-ui="erp"][data-theme="dark"] #view-eventos .alq-ev-fecha { background:linear-gradient(160deg, oklch(26% .03 300), oklch(23% .02 60)); border-color:oklch(100% 0 0 / .08); }
