/* PSR Effects: las pantallas del alquiler (calendario, ficha del evento, almacén, reglas de carga
   y PDA). Usan las fichas de color de la capa Arc (tema-arc.css): neutros, tarjetas con borde de
   1 px sin sombra, botones en píldora. Los colores de estado del evento son los acordados:
   amarillo presupuestado (provisional), verde aceptado (firme), rojo rechazado, azul finalizado
   (ya ha pasado y falta cerrarlo) y gris cerrado. */
:root {
  --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);
  --alq-carril: 26px;
  --alq-borde: var(--fc-border, oklch(93.5% 0 0));
  --alq-tarjeta: var(--fc-card, #fff);
  --alq-suave: var(--fc-muted, oklch(46% 0 0));
}
html[data-theme="dark"] {
  --alq-amarillo: oklch(36% .07 90); --alq-amarillo-borde: oklch(62% .12 85); --alq-amarillo-tinta: oklch(92% .06 90);
  --alq-verde: oklch(34% .06 150); --alq-verde-borde: oklch(58% .12 150); --alq-verde-tinta: oklch(92% .06 150);
  --alq-rojo: oklch(34% .06 25); --alq-rojo-borde: oklch(60% .15 25); --alq-rojo-tinta: oklch(92% .05 25);
  --alq-gris: oklch(30% 0 0); --alq-gris-borde: oklch(50% 0 0); --alq-gris-tinta: oklch(90% 0 0);
  --alq-azul: oklch(33% .06 252); --alq-azul-borde: oklch(64% .13 252); --alq-azul-tinta: oklch(90% .06 250);
}

/* ---- Estados: chips, barras y leyenda ---- */
.alq-presupuestado { --alq-c: var(--alq-amarillo); --alq-b: var(--alq-amarillo-borde); --alq-t: var(--alq-amarillo-tinta); }
.alq-aceptado, .alq-en_curso, .alq-devuelto { --alq-c: var(--alq-verde); --alq-b: var(--alq-verde-borde); --alq-t: var(--alq-verde-tinta); }
.alq-rechazado { --alq-c: var(--alq-rojo); --alq-b: var(--alq-rojo-borde); --alq-t: var(--alq-rojo-tinta); }
.alq-cerrado { --alq-c: var(--alq-gris); --alq-b: var(--alq-gris-borde); --alq-t: var(--alq-gris-tinta); }
.alq-finalizado { --alq-c: var(--alq-azul); --alq-b: var(--alq-azul-borde); --alq-t: var(--alq-azul-tinta); }
.alq-chip { display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:600; background:var(--alq-c, var(--alq-gris)); color:var(--alq-t, inherit); border:1px solid var(--alq-b, var(--alq-borde)); white-space:nowrap; }
.alq-suave { color:var(--alq-suave); font-size:12px; }
.alq-aviso { padding:10px 12px; border-radius:12px; border:1px solid var(--alq-amarillo-borde); background:var(--alq-amarillo); color:var(--alq-amarillo-tinta); font-size:13px; }
.alq-error-caja { padding:10px 12px; border-radius:12px; border:1px solid var(--alq-rojo-borde); background:var(--alq-rojo); color:var(--alq-rojo-tinta); font-size:13px; }

/* ---- Calendario ---- */
.alq-cal-nav { display:flex; gap:6px; }
.alq-cal-barra { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:4px 0 14px; }
.alq-cal-vistas { display:inline-flex; gap:4px; padding:3px; border:1px solid var(--alq-borde); border-radius:999px; background:var(--alq-tarjeta); }
.alq-cal-vistas .filter-btn { border-radius:999px; }
.alq-cal-titulo { font-size:16px; letter-spacing:-.01em; font-family:var(--arc-display, inherit); min-width:180px; }
.alq-cal-filtros { display:flex; flex-wrap:wrap; gap:8px; margin-left:auto; }
.alq-cal-filtros select { min-width:160px; border-radius:999px; }
.alq-cal-rejilla { border:1px solid var(--alq-borde); border-radius:16px; overflow:hidden; background:var(--alq-tarjeta); }
.alq-cal-cab { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); border-bottom:1px solid var(--alq-borde); }
.alq-cal-cab div { padding:8px 10px; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--alq-suave); font-weight:600; }
.alq-semana { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); row-gap:3px; border-bottom:1px solid var(--alq-borde); padding-bottom:6px; min-height:96px; }
.alq-semana:last-child { border-bottom:0; }
.alq-semana-grande { min-height:300px; --alq-carril:44px; }
.alq-dia { border-right:1px solid var(--alq-borde); padding:4px 8px; }
.alq-dia:nth-child(7n) { border-right:0; }
.alq-dia-num { font-size:12px; font-variant-numeric:tabular-nums; color:var(--alq-suave); }
.alq-dia-hoy .alq-dia-num { display:inline-grid; place-items:center; min-width:22px; height:22px; border-radius:999px; background:var(--fc-primary, #222); color:var(--fc-on-primary, #fff); font-weight:600; }
.alq-dia-fuera { background:var(--bg-deep, oklch(98.4% 0 0)); }
.alq-dia-fuera .alq-dia-num { opacity:.55; }
.alq-barra { position:relative; z-index:1; margin:0 3px; min-width:0; height:calc(var(--alq-carril) - 3px); display:flex; align-items:center; padding:0 8px; border-radius:8px; border:1px solid var(--alq-b); color:var(--alq-t); font-size:12px; text-align:left; cursor:pointer; overflow:hidden;
  background:linear-gradient(90deg, var(--alq-c) 0 calc(100% - var(--alq-margen, 0%)), transparent calc(100% - var(--alq-margen, 0%))),
    repeating-linear-gradient(135deg, var(--alq-c) 0 4px, transparent 4px 8px); }
.alq-barra:hover { filter:saturate(1.15) brightness(.98); }
.alq-barra:focus-visible { outline:2px solid var(--fc-primary, #222); outline-offset:1px; }
.alq-barra-sigue-izq { border-top-left-radius:0; border-bottom-left-radius:0; margin-left:0; border-left-style:dashed; }
.alq-barra-sigue-der { border-top-right-radius:0; border-bottom-right-radius:0; margin-right:0; border-right-style:dashed; }
.alq-barra-txt { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.alq-barra-txt em { font-style:normal; opacity:.75; margin-left:4px; }
.alq-semana-grande .alq-barra { font-size:13px; }
.alq-cal-vacio { padding:18px; text-align:center; color:var(--alq-suave); }
.alq-leyenda { display:flex; flex-wrap:wrap; gap:14px; margin-top:12px; font-size:12px; color:var(--alq-suave); }
.alq-ley { display:inline-flex; align-items:center; gap:6px; }
.alq-ley::before { content:''; width:14px; height:10px; border-radius:3px; background:var(--alq-c); border:1px solid var(--alq-b); }
.alq-ley-margen::before { background:repeating-linear-gradient(135deg, var(--alq-verde) 0 3px, transparent 3px 6px); border-color:var(--alq-verde-borde); }
.alq-tabla .alq-fila { cursor:pointer; }

/* ---- Ficha del evento ---- */
.alq-ficha-cuerpo { display:flex; flex-direction:column; gap:14px; }
.alq-ficha-cab { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.alq-ficha-total { margin-left:auto; font-weight:700; font-variant-numeric:tabular-nums; }
.alq-ficha-h { margin:6px 0 0; font-size:14px; letter-spacing:-.01em; }
.alq-linea-tiempo { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(120px, 1fr)); gap:8px; }
.alq-linea-tiempo li { border:1px solid var(--alq-borde); border-radius:12px; padding:8px 10px; display:flex; flex-direction:column; gap:2px; background:var(--alq-tarjeta); }
.alq-linea-tiempo span { font-size:11px; color:var(--alq-suave); text-transform:uppercase; letter-spacing:.05em; }
.alq-lt-evento { border-color:var(--alq-verde-borde)!important; }
.alq-lt-margen { background:repeating-linear-gradient(135deg, var(--alq-tarjeta) 0 6px, var(--bg-deep, oklch(97% 0 0)) 6px 12px)!important; }
.alq-datos { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:8px 16px; margin:0; }
.alq-datos dt { font-size:11px; color:var(--alq-suave); text-transform:uppercase; letter-spacing:.05em; }
.alq-datos dd { margin:2px 0 0; }
.alq-datos-ancho { grid-column:1 / -1; }
.alq-ficha-acciones { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; border-top:1px solid var(--alq-borde); padding-top:12px; }

/* ---- El evento dentro del presupuesto ---- */
.alq-evento .form-grid { margin-bottom:6px; }
.alq-margen-nota { align-self:end; font-size:12px; color:var(--alq-suave); padding-bottom:10px; }
.alq-evento-error { margin:6px 0 0; padding:10px 12px; border-radius:12px; border:1px solid var(--alq-rojo-borde); background:var(--alq-rojo); color:var(--alq-rojo-tinta); font-size:13px; }
.alq-por-dia-caja { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.alq-check { display:inline-flex; align-items:center; gap:6px; font-size:13px; }
.alq-check input[type=checkbox] { width:18px; height:18px; min-height:0; padding:0; margin:0; flex:none; accent-color:var(--fc-primary, #222); }
.alq-dias { width:64px; }
.alq-dias:disabled, .alq-dias:disabled + .alq-dias-txt { opacity:.45; }
.alq-disp { font-size:12px; margin-top:6px; }
.alq-disp:empty { display:none; }
.alq-disp-ok { color:var(--alq-verde-tinta); }
.alq-disp-mal { color:var(--alq-rojo-tinta); background:var(--alq-rojo); border:1px solid var(--alq-rojo-borde); border-radius:10px; padding:6px 10px; }
.alq-disp-info { color:var(--alq-suave); }

/* ---- Almacén ---- */
.alm-pestanas { display:inline-flex; flex-wrap:wrap; gap:4px; padding:3px; border:1px solid var(--alq-borde); border-radius:999px; background:var(--alq-tarjeta); margin:4px 0 14px; }
.alm-pestanas .filter-btn { border-radius:999px; }
.alm-cuerpo { display:flex; flex-direction:column; gap:12px; }
.alm-ayuda { margin:0; max-width:820px; }
.alm-barra { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.alm-barra select { min-width:200px; border-radius:999px; }
.alm-codigo { font-family:ui-monospace, "SF Mono", Menlo, monospace; font-size:12.5px; letter-spacing:.02em; }
.alm-estado { display:inline-flex; padding:2px 9px; border-radius:999px; font-size:12px; font-weight:600; border:1px solid var(--alq-borde); }
.alm-estado-operativa { background:var(--alq-verde); border-color:var(--alq-verde-borde); color:var(--alq-verde-tinta); }
.alm-estado-reparacion { background:var(--alq-amarillo); border-color:var(--alq-amarillo-borde); color:var(--alq-amarillo-tinta); }
.alm-estado-extraviada, .alm-estado-baja { background:var(--alq-rojo); border-color:var(--alq-rojo-borde); color:var(--alq-rojo-tinta); }
.alm-lista { margin:0; padding-left:18px; font-size:13px; display:flex; flex-direction:column; gap:4px; }
.alm-enlace { background:none; border:0; padding:0; color:inherit; text-decoration:underline; cursor:pointer; font:inherit; }

/* ---- Reglas de carga ---- */
.rc-rejilla { display:grid; grid-template-columns:minmax(0, 1.5fr) minmax(280px, 1fr); gap:16px; align-items:start; }
.rc-columna { display:flex; flex-direction:column; gap:16px; min-width:0; }
.rc-tarjeta { border:1px solid var(--alq-borde); border-radius:18px; background:var(--alq-tarjeta); padding:16px 18px; }
.rc-h { margin:0 0 10px; font-size:15px; letter-spacing:-.01em; }
.rc-reglas { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.rc-regla { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:10px 0; border-top:1px solid var(--alq-borde); }
.rc-regla:first-child { border-top:0; }
.rc-inactiva .rc-frase { opacity:.5; text-decoration:line-through; }
.rc-frase { flex:1 1 240px; font-size:13.5px; }
.rc-acciones { display:inline-flex; align-items:center; gap:8px; }
.rc-orden { margin:10px 0 0; }
.rc-campos { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:10px 12px; }
.rc-campos .form-group { margin:0; min-width:0; }
.rc-ancho { grid-column:1 / -1; }
.rc-frase-previa { margin:12px 0 0; padding:10px 12px; border-radius:12px; background:var(--arc-gradient-soft, var(--bg-deep)); font-size:13.5px; }
.rc-prueba-fila { display:flex; gap:8px; margin:8px 0; }
.rc-prueba-fila select { flex:1; min-width:0; }
.rc-prueba-fila input { width:90px; padding:8px 10px; border:1px solid var(--fc-input, #ddd); border-radius:12px; background:var(--alq-tarjeta); font:inherit; }
.rc-texto { margin:6px 0; font-size:14px; }
.rc-salida { margin:0; padding-left:18px; font-size:13.5px; display:flex; flex-direction:column; gap:3px; }

/* ---- Albarán de carga en la ficha ---- */
.alq-carga-cab { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.alq-carga-cab .btn { margin-left:auto; }
.alq-progreso { display:inline-block; min-width:58px; font-variant-numeric:tabular-nums; }
.alq-motivo { display:block; font-size:11.5px; color:var(--alq-suave); font-style:italic; }

/* ---- Ampliaciones y cierre ---- */
.alq-anulada td { opacity:.5; }
.alq-cierre-num { width:96px; text-align:right; padding:6px 8px; border:1px solid var(--fc-input, #ddd); border-radius:10px; background:var(--alq-tarjeta); font:inherit; }
.alq-cierre-texto { width:100%; min-width:200px; padding:6px 8px; border:1px solid var(--fc-input, #ddd); border-radius:10px; background:var(--alq-tarjeta); font:inherit; }
.alq-cierre-decidir { border-color:var(--alq-amarillo-borde); background:var(--alq-amarillo); }
.alq-cierre-tabla td { vertical-align:middle; }
.alq-cierre-pie { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid var(--alq-borde); border-radius:14px; background:var(--arc-gradient-soft, var(--bg-deep)); }
.alq-cierre-pie label { display:inline-flex; align-items:center; gap:8px; font-size:13px; }

/* ---- PDA: botones grandes, una mano, lectura rápida ---- */
.pda { max-width:640px; margin:0 auto; display:flex; flex-direction:column; gap:14px; padding-bottom:96px; }
.pda-cab h1 { margin:4px 0 2px; font-size:26px; letter-spacing:-.03em; font-family:var(--arc-display, inherit); }
.pda-cab p { margin:0; }
.pda-atras { background:none; border:0; padding:6px 0; font:inherit; font-size:15px; color:var(--alq-suave); cursor:pointer; }
.pda-menu { display:flex; flex-direction:column; gap:12px; }
.pda-boton { display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:22px 20px; border-radius:22px; border:1px solid var(--alq-borde); background:var(--alq-tarjeta); text-align:left; cursor:pointer; font:inherit; color:inherit; min-height:96px; }
.pda-boton strong { font-size:21px; letter-spacing:-.02em; }
.pda-boton span { color:var(--alq-suave); font-size:14px; }
.pda-boton-salida { background:var(--fc-primary, #222); color:var(--fc-on-primary, #fff); border-color:var(--fc-primary, #222); }
.pda-boton-salida strong, .pda-boton-salida span { color:var(--fc-on-primary, #fff)!important; }
.pda-boton-salida span { opacity:.75; }
.pda-boton-vuelta { background:var(--arc-gradient-soft, var(--alq-tarjeta)); }
.pda-lista { display:flex; flex-direction:column; gap:10px; }
.pda-tarjeta { display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:16px; border-radius:18px; border:1px solid var(--alq-borde); background:var(--alq-tarjeta); text-align:left; font:inherit; color:inherit; cursor:pointer; }
.pda-tarjeta strong { font-size:18px; }
.pda-tarjeta span { font-size:13.5px; color:var(--alq-suave); }
.pda-tarjeta-num { font-variant-numeric:tabular-nums; }
.pda-escaneo { display:flex; gap:8px; }
.pda-codigo { flex:1; min-width:0; font-size:22px!important; padding:14px 16px!important; border-radius:16px!important; border:2px solid var(--fc-primary, #222)!important; font-family:ui-monospace, Menlo, monospace!important; letter-spacing:.04em; background:var(--alq-tarjeta); }
.pda-codigo::placeholder { font-size:16px; font-family:var(--fc-font, inherit); letter-spacing:0; }
.pda-escaneo .btn { min-width:72px; font-size:18px; border-radius:16px!important; }
.pda-herramientas { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.pda-video { width:100%; max-height:46vh; border-radius:18px; background:#000; object-fit:cover; }
.pda-respuesta { min-height:0; border-radius:16px; font-size:17px; font-weight:600; }
.pda-respuesta:empty { display:none; }
.pda-bien { padding:14px 16px; background:var(--alq-verde); color:var(--alq-verde-tinta); border:1px solid var(--alq-verde-borde); }
.pda-mal { padding:14px 16px; background:var(--alq-rojo); color:var(--alq-rojo-tinta); border:1px solid var(--alq-rojo-borde); white-space:pre-line; }
.pda-vuelta { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:4px; border:1px solid var(--alq-borde); border-radius:999px; background:var(--alq-tarjeta); }
.pda-vuelta .filter-btn { border-radius:999px; padding:12px; font-size:15px; }
.pda-lineas, .pda-pendientes { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.pda-linea { border:1px solid var(--alq-borde); border-radius:16px; padding:12px 14px; background:var(--alq-tarjeta); display:flex; flex-direction:column; gap:8px; }
.pda-linea-cab { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px; }
.pda-cuenta { margin-left:auto; font-variant-numeric:tabular-nums; font-weight:600; }
.pda-barra { height:8px; border-radius:999px; background:var(--bg-deep, oklch(96% 0 0)); overflow:hidden; }
.pda-barra span { display:block; height:100%; background:var(--fc-primary, #222); border-radius:999px; transition:width var(--arc-standard, .24s) var(--arc-ease, ease); }
.pda-linea-hecha { border-color:var(--alq-verde-borde); }
.pda-linea-hecha .pda-barra span { background:var(--alq-verde-borde); }
.pda-consumible { display:flex; gap:8px; align-items:center; }
.pda-consumible input { width:110px; font-size:17px; padding:8px 10px; border-radius:12px; border:1px solid var(--fc-input, #ddd); }
.pda-consumible label { display:flex; align-items:center; gap:6px; font-size:14px; }
.pda-h { margin:6px 0 0; font-size:16px; }
.pda-pendientes li { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid var(--alq-borde); border-radius:14px; background:var(--alq-tarjeta); }
.pda-pendientes .btn { margin-left:auto; }
.pda-pie { display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; position:sticky; bottom:calc(env(safe-area-inset-bottom, 0px) + 72px); padding:10px 0; background:linear-gradient(transparent, var(--fc-background, #fff) 30%); }
.pda-grande { flex:1; min-height:54px; font-size:17px!important; }
.pda-aviso { padding:12px 14px; border-radius:14px; border:1px solid var(--alq-amarillo-borde); background:var(--alq-amarillo); color:var(--alq-amarillo-tinta); font-size:14px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.pda-aviso-mal { border-color:var(--alq-rojo-borde); background:var(--alq-rojo); color:var(--alq-rojo-tinta); }
.pda-ficha { border:1px solid var(--alq-borde); border-radius:18px; padding:16px; background:var(--alq-tarjeta); display:flex; flex-direction:column; gap:8px; font-size:15px; }

@media (max-width:900px) { .rc-rejilla { grid-template-columns:1fr; } }
@media (min-width:801px) { .pda-pie { bottom:0; } }
@media (max-width:800px) {
  .alq-cal-filtros { margin-left:0; width:100%; }
  .alq-cal-filtros select { flex:1 1 140px; min-width:0; }
  .alq-cal-cab div { padding:6px 4px; text-align:center; }
  .alq-barra { padding:0 4px; font-size:11px; }
  .alq-semana { min-height:72px; }
}

/* ---- Calendario de fechas del presupuesto: dos meses grandes y el tramo del evento en negro.
   Inicio y fin en círculo negro; los días entre medias, en banda gris; la salida y la vuelta al
   almacén, en trama. Mientras se elige el segundo día, el tramo sigue al ratón. ---- */
.alq-cal { margin:4px 0 16px; padding:18px; border-radius:24px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
#alq-cal .alq-cal-cab { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:14px; }
#alq-cal .alq-cal-tit { display:flex; flex-direction:column; gap:3px; }
#alq-cal .alq-cal-tit strong { font-family:var(--arc-display, inherit); font-size:16px; font-weight:500; letter-spacing:-.02em; }
#alq-cal .alq-cal-tit span { font-size:13px; color:var(--alq-suave); }
#alq-cal .alq-cal-nav { display:flex; gap:4px; padding:4px; border-radius:14px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); }
#alq-cal .alq-cal-nav button { min-width:34px; height:30px; padding:0 10px; border:0; border-radius:10px; background:transparent; color:inherit; font:500 13px var(--fc-font, inherit); cursor:pointer; transition:background-color 150ms ease; }
#alq-cal .alq-cal-nav .alq-cal-flecha { font-size:18px; line-height:1; }
#alq-cal .alq-cal-nav button:hover { background:var(--fc-secondary, oklch(97% 0 0)); }
#alq-cal .alq-cal-meses { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px; }
#alq-cal .alq-cal-mes { padding:14px; border-radius:20px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); animation:alq-cal-llega 320ms cubic-bezier(.2,.8,.2,1) both; }
#alq-cal .alq-cal-mes + .alq-cal-mes { animation-delay:60ms; }
@keyframes alq-cal-llega { from { opacity:0; transform:translateY(6px); filter:blur(3px); } }
#alq-cal .alq-cal-mes-tit { margin:2px 4px 10px; font-family:var(--arc-display, inherit); font-size:15px; font-weight:500; letter-spacing:-.02em; text-transform:capitalize; }
#alq-cal .alq-cal-mes-tit span { color:var(--alq-suave); font-weight:400; }
#alq-cal .alq-cal-semana, #alq-cal .alq-cal-rejilla { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); }
#alq-cal .alq-cal-semana span { padding:4px 0 8px; text-align:center; font-size:11.5px; font-weight:500; color:var(--alq-suave); }
#alq-cal .alq-cal-rejilla { row-gap:4px; }
#alq-cal .alq-cal-dia { position:relative; height:42px; padding:0; border:0; background:transparent; color:var(--fc-ink, inherit); font:500 13.5px var(--fc-font, inherit); font-variant-numeric:tabular-nums; cursor:pointer; }
#alq-cal .alq-cal-dia > span { position:relative; z-index:1; display:grid; place-items:center; width:38px; height:38px; margin:2px auto; border-radius:50%; transition:background-color 150ms ease, color 150ms ease, transform 260ms cubic-bezier(.3,1.4,.5,1); }
#alq-cal .alq-cal-dia:hover > span { background:var(--fc-secondary, oklch(96% 0 0)); }
#alq-cal .alq-cal-dia:active > span { transform:scale(.9); }
#alq-cal .alq-cal-dia.pasado { color:oklch(70% 0 0); }
#alq-cal .alq-cal-dia.es-hoy > span { box-shadow:inset 0 0 0 1.5px var(--fc-input, oklch(85% 0 0)); }
/* El tramo: banda gris de borde a borde de la celda, recortada en los extremos. */
.alq-cal-dia.en-evento::before, #alq-cal .alq-cal-dia.logistica::before { content:""; position:absolute; inset:2px 0; background:var(--fc-selected, oklch(95% 0 0)); }
#alq-cal .alq-cal-dia.logistica::before { background:repeating-linear-gradient(-45deg, oklch(93% 0 0) 0 4px, transparent 4px 8px); }
#alq-cal .alq-cal-dia.inicio::before, #alq-cal .alq-cal-dia.salida::before { left:50%; }
#alq-cal .alq-cal-dia.fin::before, #alq-cal .alq-cal-dia.devolucion::before { right:50%; }
#alq-cal .alq-cal-dia.inicio.fin::before { display:none; }
#alq-cal .alq-cal-dia.salida.logistica::before { left:50%; }
#alq-cal .alq-cal-dia.devolucion.logistica::before { right:50%; }
/* Si la salida va antes del inicio, la banda llega hasta el círculo del inicio. */
.alq-cal-dia.inicio.en-evento:not(.fin)::before { left:50%; }
#alq-cal .alq-cal-dia:is(.inicio,.fin) > span { background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); box-shadow:0 6px 14px -8px oklch(0% 0 0 / .6); }
#alq-cal .alq-cal-dia:is(.salida,.devolucion) > span { background:var(--alq-tarjeta); box-shadow:inset 0 0 0 1.5px oklch(55% 0 0); }
#alq-cal.eligiendo .alq-cal-dia.inicio:not(.fin) > span { animation:alq-cal-latido 1.4s ease-in-out infinite; }
@keyframes alq-cal-latido { 0%,100% { box-shadow:0 0 0 0 oklch(0% 0 0 / .25); } 60% { box-shadow:0 0 0 7px oklch(0% 0 0 / 0); } }
#alq-cal .alq-cal-dia:focus-visible { outline:none; }
#alq-cal .alq-cal-dia:focus-visible > span { outline:2px solid oklch(0% 0 0 / .3); outline-offset:2px; }
/* Resumen: salida (−/+), el evento y la vuelta (−/+). */
.alq-cal-resumen { display:grid; grid-template-columns:1fr 1.3fr 1fr; gap:10px; margin-top:14px; }
#alq-cal .alq-cal-dato { display:flex; flex-direction:column; gap:8px; padding:12px 14px; border-radius:18px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); }
#alq-cal .alq-cal-etq { font-size:12px; color:var(--alq-suave); }
#alq-cal .alq-cal-dato strong { font-family:var(--arc-display, inherit); font-size:17px; font-weight:500; letter-spacing:-.02em; white-space:nowrap; }
#alq-cal .alq-cal-dato-evento { background:var(--fc-primary, oklch(23% 0 0)); border-color:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); }
#alq-cal .alq-cal-dato-evento .alq-cal-etq { color:oklch(100% 0 0 / .6); }
#alq-cal .alq-cal-ajuste { display:flex; align-items:center; justify-content:space-between; gap:8px; }
#alq-cal .alq-cal-ajuste button { width:30px; height:30px; flex:none; border-radius:10px; border:1px solid var(--alq-borde); background:var(--fc-secondary, oklch(97% 0 0)); color:inherit; font-size:16px; line-height:1; cursor:pointer; transition:background-color 150ms ease, transform 200ms cubic-bezier(.3,1.4,.5,1); }
#alq-cal .alq-cal-ajuste button:hover { background:var(--fc-selected, oklch(95% 0 0)); }
#alq-cal .alq-cal-ajuste button:active { transform:scale(.9); }
#alq-cal:not(.con-fechas) .alq-cal-ajuste button { opacity:.4; pointer-events:none; }
@media (max-width:760px) {
  #alq-cal { padding:12px; }
  #alq-cal .alq-cal-meses { grid-template-columns:1fr; }
  #alq-cal .alq-cal-mes + .alq-cal-mes { display:none; }
  #alq-cal .alq-cal-resumen { grid-template-columns:1fr 1fr; }
  #alq-cal .alq-cal-dato-evento { grid-column:1 / -1; order:-1; }
}
html[data-theme="dark"] #alq-cal-dia.logistica::before { background:repeating-linear-gradient(-45deg, oklch(35% 0 0) 0 4px, transparent 4px 8px); }
@media (prefers-reduced-motion:reduce) { #alq-cal .alq-cal-mes, #alq-cal.eligiendo .alq-cal-dia.inicio > span { animation:none; } }
/* Reglas genéricas del tema por nombre de clase (…-tit en mayúsculas, …-rejilla como tarjeta)
   que aquí no tocan: se anulan con el id del calendario. */
#alq-cal :is(.alq-cal-tit, #alq-cal .alq-cal-tit *, #alq-cal .alq-cal-mes-tit, #alq-cal .alq-cal-etq) { text-transform:none!important; }
#alq-cal .alq-cal-tit span, #alq-cal .alq-cal-etq { letter-spacing:0!important; }
#alq-cal .alq-cal-tit { flex:1 1 320px; }
#alq-cal .alq-cal-rejilla { border:0!important; background:transparent!important; border-radius:0!important; box-shadow:none!important; padding:0!important; }
#alq-cal .alq-cal-dato-evento strong { color:var(--fc-on-primary, #fff)!important; }
#alq-cal .alq-cal-dato-evento .alq-cal-etq { color:oklch(100% 0 0 / .6)!important; }

/* ---- Sugerencias de direcciones bajo «Lugar»: menú flotante al estilo de Arc. ---- */
.alq-sug-ancla { position:relative; }
.alq-sug { position:absolute; z-index:30; left:0; right:0; top:calc(100% + 6px); display:flex; flex-direction:column; gap:2px; padding:6px; border-radius:18px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); box-shadow:0 20px 44px -18px oklch(0% 0 0 / .35), 0 2px 6px oklch(0% 0 0 / .05); transform-origin:top center; animation:alq-sug-abre 180ms cubic-bezier(.2,.8,.2,1) both; }
.alq-sug.hidden { display:none; }
@keyframes alq-sug-abre { from { opacity:0; transform:translateY(-4px) scale(.98); filter:blur(2px); } }
.alq-sug-op { display:flex; align-items:center; gap:12px; width:100%; padding:9px 10px; border:0; border-radius:12px; background:transparent; color:inherit; text-align:left; cursor:pointer; font:inherit; transition:background-color 120ms ease; }
.alq-sug-op:hover, .alq-sug-op.activa { background:var(--fc-secondary, oklch(97% 0 0)); }
.alq-sug-ico { width:32px; height:32px; flex:none; border-radius:10px; background:var(--arc-tray, oklch(97.8% 0 0)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23525252' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.1-7-11.5a7 7 0 0 1 14 0C19 14.9 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center / 16px no-repeat; border:1px solid var(--alq-borde); }
.alq-sug-op.activa .alq-sug-ico { background-color:var(--alq-tarjeta); }
.alq-sug-txt { display:flex; flex-direction:column; gap:1px; min-width:0; }
.alq-sug-txt strong { font-size:13.5px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.alq-sug-txt small { font-size:12px; color:var(--alq-suave); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.alq-sug-aviso { margin:4px 6px; font-size:12.5px; color:var(--alq-suave); }
@media (prefers-reduced-motion:reduce) { .alq-sug { animation:none; } }

/* Navegación: los meses que se ven entre las flechas y «Volver a hoy» aparte, solo si hace falta. */
.alq-cal-navs { display:flex; align-items:center; gap:8px; }
#alq-cal .alq-cal-rango { min-width:128px; padding:0 6px; text-align:center; font-size:13px; font-weight:500; text-transform:capitalize; white-space:nowrap; font-variant-numeric:tabular-nums; }
#alq-cal .alq-cal-hoy { height:38px; padding:0 14px; border-radius:12px; border:1px solid var(--alq-borde); background:var(--alq-tarjeta); color:inherit; font:500 13px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; animation:alq-sug-abre 180ms cubic-bezier(.2,.8,.2,1) both; }
#alq-cal .alq-cal-hoy:hover { background:var(--fc-secondary, oklch(97% 0 0)); }
#alq-cal .alq-cal-hoy.hidden { display:none; }
#alq-cal .alq-cal-nav { align-items:center; }

/* La distancia al almacén, calculada al elegir el lugar: una píldora bajo el campo. */
.alq-km-info { display:inline-flex; align-items:center; gap:6px; width:fit-content; margin-top:8px; padding:4px 10px 4px 8px; border-radius:999px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); font-size:12.5px; color:var(--fc-ink, inherit); font-variant-numeric:tabular-nums; animation:alq-sug-abre 220ms cubic-bezier(.2,.8,.2,1) both; }
.alq-km-info::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--fc-success, oklch(55% .15 150)); }
.alq-km-info.hidden { display:none; }
/* El menú de direcciones va por encima del calendario: los meses crean su propio apilamiento
   (por su animación de entrada) y lo tapaban. */
.alq-evento .form-grid:has(.alq-sug-ancla), .alq-sug-ancla { position:relative; z-index:40; }

/* «Por día» como interruptor, no como casilla suelta. */
.alq-check { display:inline-flex!important; align-items:center; gap:8px; margin:0!important; font-size:13px!important; font-weight:500!important; text-transform:none!important; letter-spacing:0!important; color:var(--fc-ink, inherit)!important; cursor:pointer; }
.alq-check input.alq-por-dia { appearance:none; -webkit-appearance:none; position:relative; width:36px!important; height:22px!important; min-height:0!important; margin:0!important; padding:0!important; flex:none; border-radius:999px!important; border:0!important; background:oklch(88% 0 0)!important; box-shadow:none!important; cursor:pointer; transition:background-color 160ms ease; }
.alq-check input.alq-por-dia::after { content:""; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 3px oklch(0% 0 0 / .25); transition:transform 260ms cubic-bezier(.3,1.4,.5,1); }
.alq-check input.alq-por-dia:checked { background:var(--fc-primary, oklch(23% 0 0))!important; }
.alq-check input.alq-por-dia:checked::after { transform:translateX(14px); }
.alq-check input.alq-por-dia:focus-visible { outline:2px solid oklch(0% 0 0 / .25); outline-offset:2px; }
.alq-por-dia-caja { gap:10px!important; }
.alq-check input.alq-por-dia, .alq-check input.alq-por-dia:checked { background-image:none!important; }
.alq-check input.alq-por-dia::before { content:none!important; display:none!important; }

/* ---- Consumibles que acompañan a una máquina ---- */
/* En el presupuesto: bajo la línea, la propuesta en chips que se añaden con un clic. */
.alq-cons { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:12px; padding:8px 8px 8px 12px; border-radius:16px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px dashed var(--fc-input, oklch(85% 0 0)); animation:alq-sug-abre 220ms cubic-bezier(.2,.8,.2,1) both; }
.alq-cons-etq { font-size:12px; font-weight:500; color:var(--alq-suave); margin-right:2px; }
.alq-cons-op { display:inline-flex; align-items:center; gap:10px; padding:6px 12px 6px 6px; border-radius:12px; border:1px solid var(--alq-borde); background:var(--alq-tarjeta); color:inherit; font:inherit; text-align:left; cursor:pointer; transition:transform 220ms cubic-bezier(.3,1.4,.5,1), box-shadow 160ms ease, border-color 160ms ease; }
.alq-cons-op:hover { transform:translateY(-1px); border-color:oklch(80% 0 0); box-shadow:0 10px 20px -14px oklch(0% 0 0 / .35); }
.alq-cons-op:active { transform:scale(.97); }
.alq-cons-mas { width:26px; height:26px; flex:none; display:grid; place-items:center; border-radius:8px; background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); font-size:15px; line-height:1; }
.alq-cons-op span:last-child { display:flex; flex-direction:column; line-height:1.25; }
.alq-cons-op strong { font-size:13px; font-weight:500; }
.alq-cons-op small { font-size:11.5px; color:var(--alq-suave); font-variant-numeric:tabular-nums; }
/* La línea que se acaba de añadir llega con un destello suave. */
.linea-card.alq-recien { animation:alq-recien 900ms ease both; }
@keyframes alq-recien { 0% { box-shadow:0 0 0 0 oklch(55% .15 150 / .45); transform:translateY(-4px); opacity:.4; } 40% { opacity:1; transform:none; } 100% { box-shadow:0 0 0 10px oklch(55% .15 150 / 0); } }

/* En el almacén: los consumibles de cada máquina bajo su nombre y el editor. */
.alm-cons-chips { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.alm-cons-chip { padding:2px 9px; border-radius:999px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); font-size:11.5px; color:var(--alq-suave); white-space:nowrap; }
.alm-cons-ayuda { margin:0 0 14px; font-size:13px; line-height:1.5; }
.alm-cons-lista { display:flex; flex-direction:column; gap:6px; padding:6px; border-radius:18px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alm-cons-op { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:12px; border:1px solid transparent; cursor:pointer; transition:background-color 120ms ease, border-color 120ms ease; }
.alm-cons-op:hover, .alm-cons-op:has(input[type=checkbox]:checked) { background:var(--alq-tarjeta); border-color:var(--alq-borde); }
.alm-cons-nombre { flex:1; display:flex; flex-direction:column; min-width:0; }
.alm-cons-nombre strong { font-size:13.5px; font-weight:500; }
.alm-cons-nombre small { font-size:12px; color:var(--alq-suave); }
.alm-cons-cant { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.alm-cons-cant input { width:78px!important; min-height:34px; }
.alm-cons-op:not(:has(input[type=checkbox]:checked)) .alm-cons-cant { opacity:.4; }
#modal-alm-consumibles .alm-cons-cant input { border:1px solid var(--fc-input, oklch(89% 0 0))!important; border-radius:10px!important; padding:6px 10px!important; background:var(--alq-tarjeta)!important; box-shadow:none!important; text-align:right; font-variant-numeric:tabular-nums; }
#modal-alm-consumibles .modal-footer { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }

/* ---- Sublíneas: el consumible dentro de la tarjeta de su máquina, compacto y editable ---- */
.alq-sublineas { display:flex; flex-direction:column; gap:8px; margin-top:12px; padding-top:12px; border-top:1px dashed var(--alq-borde); }
.alq-sublineas:empty { display:none; }
#presupuesto-lineas-list .linea-card.alq-sublinea { margin:0!important; padding:10px 12px!important; border-radius:16px!important; background:var(--arc-tray, oklch(97.8% 0 0))!important; border:1px solid var(--alq-borde)!important; box-shadow:none!important; }
.alq-sublinea .linea-card-header { gap:10px!important; }
.alq-sublinea .linea-card-num { background:transparent!important; color:var(--alq-suave)!important; border:0!important; font-size:16px!important; width:22px!important; }
.alq-sublinea .pre-linea-desc { min-height:36px!important; font-size:13.5px!important; background:var(--alq-tarjeta)!important; }
.alq-sublinea :is(.pre-linea-producto-badge, .alq-linea-extra), .alq-sublinea .linea-card-field:has(.pre-linea-producto-select) { display:none!important; }
.alq-sublinea .linea-card-fields { margin-top:8px!important; padding-left:32px; gap:10px!important; }
.alq-sublinea .linea-card-field label { font-size:10.5px!important; }
.alq-sublinea :is(input, select) { min-height:34px!important; }
.alq-sublinea .alq-disp { margin:6px 0 0 32px; font-size:12px; }
.alq-sublinea .linea-card-remove { top:8px!important; right:8px!important; }
.alq-sublinea .pre-linea-base { font-size:15px!important; }

/* ===== Líneas del presupuesto en una sola fila, como una tabla: un presupuesto lleva muchas.
   Concepto · uds · unidad · precio · IVA · por día · base · ✕. Las etiquetas pasan a una
   cabecera común (alquiler-presupuesto.js la pone encima de la lista); debajo de la fila solo
   queda, en pequeño, la disponibilidad y la propuesta de consumible. En el móvil vuelve a la
   tarjeta de siempre. ===== */
@media (min-width:761px) {
  #modal-presupuesto #presupuesto-lineas-list { display:flex; flex-direction:column; gap:6px; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card { display:grid!important; grid-template-columns:minmax(0,1fr) auto 28px; column-gap:10px; row-gap:4px; align-items:center; margin:0!important; padding:8px 8px 8px 10px!important; border-radius:14px!important; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card > .linea-card-header { grid-column:1; grid-row:1; margin:0!important; gap:8px!important; min-width:0; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card .linea-card-num { width:24px!important; height:24px!important; min-width:24px!important; font-size:11.5px!important; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card .pre-linea-desc { min-height:34px!important; height:34px; padding:6px 10px!important; font-size:13.5px!important; border-radius:10px!important; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card > .linea-card-fields { grid-column:2; grid-row:1; display:flex!important; flex-wrap:nowrap!important; align-items:center; gap:5px!important; margin:0!important; padding:0!important; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card > .linea-card-remove { grid-column:3; grid-row:1; position:static!important; width:28px; height:28px; display:grid; place-items:center; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card > :is(.pre-linea-producto-badge) { display:none!important; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card > :is(.alq-disp, .alq-cons, .alq-sublineas) { grid-column:1 / -1; }
  /* Campos: sin etiqueta propia (la lleva la cabecera) y con anchos fijos para que encolumnen. */
  #modal-presupuesto #presupuesto-lineas-list .linea-card-field { margin:0!important; gap:0!important; flex:none; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-field > label:first-child { position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-field:has(.pre-linea-producto-select) { display:none!important; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-field:has(.pre-linea-cantidad) { width:50px; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-field:has(.pre-linea-unidad) { width:58px; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-field:has(.pre-linea-precio) { width:68px; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-field:has(.pre-linea-iva) { width:58px; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-field.alq-linea-extra { width:84px; order:5; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-field:has(.pre-linea-base) { width:84px; order:6; text-align:right; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-fields :is(input:not([type=checkbox]), select) { width:100%!important; min-height:34px!important; height:34px; padding:5px 8px!important; font-size:13px!important; border-radius:10px!important; }
  #modal-presupuesto #presupuesto-lineas-list .pre-linea-base { font-size:14px!important; font-weight:600; white-space:nowrap; }
  #modal-presupuesto #presupuesto-lineas-list .alq-por-dia-caja { gap:6px!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-check { font-size:0!important; gap:0!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-dias { width:38px!important; text-align:center; padding:5px 2px!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-check input.alq-por-dia { width:36px!important; height:22px!important; min-height:0!important; }
  #modal-presupuesto #presupuesto-lineas-list input[type=number]::-webkit-inner-spin-button, #modal-presupuesto #presupuesto-lineas-list input[type=number]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
  #modal-presupuesto #presupuesto-lineas-list input[type=number] { -moz-appearance:textfield; }
  /* El aviso de existencias, como una nota corta y no como una caja ancha. */
  #modal-presupuesto #presupuesto-lineas-list .alq-disp > * { display:inline-block!important; width:auto!important; margin:0!important; padding:2px 8px!important; border-radius:8px!important; font-size:11.5px!important; line-height:1.5; }
  #modal-presupuesto #presupuesto-lineas-list .alq-dias-txt { display:none; }
  /* Debajo de la fila, en pequeño. */
  #modal-presupuesto #presupuesto-lineas-list .alq-disp { margin:0 0 0 34px!important; padding:0!important; font-size:11.5px!important; background:none!important; border:0!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-disp:empty { display:none; }
  #modal-presupuesto #presupuesto-lineas-list .alq-disp:is(.alq-disp-mal, .error, [class*="rojo"]) { color:var(--fc-error, oklch(54% .21 25))!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-cons { margin:2px 0 0 34px; padding:4px 4px 4px 10px; border-radius:12px; gap:6px; }
  #modal-presupuesto #presupuesto-lineas-list .alq-cons-op { padding:3px 10px 3px 4px; border-radius:10px; }
  #modal-presupuesto #presupuesto-lineas-list .alq-cons-mas { width:20px; height:20px; border-radius:6px; font-size:13px; }
  /* Sublíneas: filas más finas, sangradas bajo su máquina. */
  #modal-presupuesto #presupuesto-lineas-list .alq-sublineas { margin:2px 0 0 34px!important; padding:0!important; border:0!important; gap:4px!important; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card.alq-sublinea { padding:4px 4px 4px 6px!important; border-radius:12px!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-sublinea .linea-card-fields { padding-left:0!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-sublinea .pre-linea-desc { min-height:30px!important; height:30px; font-size:13px!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-sublinea .linea-card-fields :is(input:not([type=checkbox]), select) { min-height:30px!important; height:30px; }
  #modal-presupuesto #presupuesto-lineas-list .alq-sublinea .linea-card-field.alq-linea-extra { display:block!important; visibility:hidden; }
  #modal-presupuesto #presupuesto-lineas-list .alq-sublinea .alq-disp { margin-left:30px!important; }
  /* La cabecera común, con los mismos anchos. */
  #modal-presupuesto .lin-cabecera { display:grid; grid-template-columns:minmax(0,1fr) auto 28px; column-gap:10px; padding:0 8px 6px 10px; font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--alq-suave); }
  #modal-presupuesto .lin-cabecera > span:first-child { padding-left:32px; }
  #modal-presupuesto .lin-cabecera-campos { display:flex; gap:5px; }
  #modal-presupuesto .lin-cabecera-campos > span { flex:none; }
  #modal-presupuesto .lc-uds { width:50px; } #modal-presupuesto .lc-unidad { width:58px; } #modal-presupuesto .lc-precio { width:68px; }
  #modal-presupuesto .lc-iva { width:58px; } #modal-presupuesto .lc-dia { width:84px; } #modal-presupuesto .lc-base { width:84px; text-align:right; }
  #modal-presupuesto .lin-cabecera:has(+ #presupuesto-lineas-list:empty) { display:none; }
}
@media (max-width:760px) { #modal-presupuesto .lin-cabecera { display:none; } }

/* Campos estrechos: menos relleno y la flecha del desplegable más pegada, para dar el sitio al concepto. */
@media (min-width:761px) {
  #modal-presupuesto #presupuesto-lineas-list .linea-card-fields :is(input:not([type=checkbox]), select) { padding:5px 6px!important; }
  #modal-presupuesto #presupuesto-lineas-list .linea-card-fields select { padding-right:18px!important; background-position:right 5px center!important; background-size:10px!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-por-dia-caja { gap:4px!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-check input.alq-por-dia { width:32px!important; height:20px!important; }
  #modal-presupuesto #presupuesto-lineas-list .alq-check input.alq-por-dia::after { width:14px; height:14px; }
  #modal-presupuesto #presupuesto-lineas-list .alq-check input.alq-por-dia:checked::after { transform:translateX(12px); }
  #modal-presupuesto #presupuesto-lineas-list .pre-linea-base { font-size:13.5px!important; }
}

/* ---- Plazos de pago (paso «Pago y condiciones») ---- */
.alq-plazos { margin-top:16px; padding:14px; border-radius:18px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); }
.alq-plazos-cab { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.alq-plazos-cab strong { font-family:var(--arc-display, inherit); font-size:15px; font-weight:500; letter-spacing:-.02em; margin-right:8px; }
.alq-plazos-suma { padding:3px 10px; border-radius:999px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); font-size:12px; font-weight:500; color:var(--alq-suave); white-space:nowrap; font-variant-numeric:tabular-nums; }
.alq-plazos-suma.ok { color:var(--alq-verde-tinta); background:var(--alq-verde); border-color:var(--alq-verde-borde); }
.alq-plazos-suma.mal { color:var(--alq-rojo-tinta); background:var(--alq-rojo); border-color:var(--alq-rojo-borde); }
.alq-plazos-presets { display:flex; flex-wrap:wrap; gap:6px; padding:5px; margin-bottom:12px; border-radius:14px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alq-plazos-presets button { padding:6px 11px; border-radius:10px; border:1px solid var(--alq-borde); background:var(--alq-tarjeta); color:inherit; font:500 12.5px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; transition:transform 220ms cubic-bezier(.3,1.4,.5,1), background-color 140ms ease; }
.alq-plazos-presets button:hover { transform:translateY(-1px); }
.alq-plazos-presets button:active { transform:scale(.96); background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); }
/* La barra del reparto: cada plazo, su trozo en un tono de gris. */
.alq-plazos-barra { display:flex; gap:3px; height:26px; margin-bottom:10px; }
.alq-plazos-barra.hidden { display:none; }
.alq-plazos-barra span { display:grid; place-items:center; min-width:0; border-radius:8px; font-size:11px; font-weight:600; color:var(--fc-on-primary, #fff); transition:flex 420ms cubic-bezier(.3,1.2,.5,1); overflow:hidden; white-space:nowrap; }
.alq-plazos-barra .tono-0 { background:oklch(23% 0 0); } .alq-plazos-barra .tono-1 { background:oklch(42% 0 0); }
.alq-plazos-barra .tono-2 { background:oklch(60% 0 0); } .alq-plazos-barra .tono-3 { background:oklch(74% 0 0); color:oklch(20% 0 0); }
.alq-plazos-lista { display:flex; flex-direction:column; gap:6px; }
.alq-pl-fila { display:grid; grid-template-columns:24px 84px 170px 110px minmax(0,1fr) 110px 28px; align-items:center; gap:8px; padding:6px 6px 6px 8px; border-radius:12px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); animation:alq-sug-abre 200ms cubic-bezier(.2,.8,.2,1) both; }
.alq-pl-num { width:22px; height:22px; display:grid; place-items:center; border-radius:50%; background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); font-size:11px; font-weight:600; }
.alq-pl-pct-caja, .alq-pl-dias-caja { display:flex; align-items:center; gap:4px; }
.alq-pl-pct-caja small, .alq-pl-dias-caja small { font-size:12px; color:var(--alq-suave); }
.alq-pl-fila :is(input, select) { min-height:32px!important; height:32px; padding:4px 8px!important; font-size:13px!important; border-radius:9px!important; background:var(--alq-tarjeta)!important; }
.alq-pl-pct, .alq-pl-dias { width:56px!important; text-align:right; }
.alq-pl-fila input[type=number]::-webkit-inner-spin-button { -webkit-appearance:none; }
.alq-pl-vence { font-size:12.5px; color:var(--alq-suave); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.alq-pl-vence em { font-style:normal; color:var(--alq-rojo-tinta); }
.alq-pl-importe { text-align:right; font-size:13.5px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.alq-pl-quitar { width:26px; height:26px; border:0; border-radius:8px; background:transparent; color:var(--alq-suave); cursor:pointer; }
.alq-pl-quitar:hover { background:var(--alq-tarjeta); color:var(--fc-ink, inherit); }
.alq-plazos-anadir { margin-top:8px; padding:6px 12px; border-radius:10px; border:1px dashed var(--fc-input, oklch(85% 0 0)); background:transparent; color:inherit; font:500 12.5px var(--fc-font, inherit); cursor:pointer; }
.alq-plazos-anadir:hover { background:var(--arc-tray, oklch(97.8% 0 0)); border-style:solid; }
@media (max-width:760px) { .alq-pl-fila { grid-template-columns:24px 76px 1fr 28px; } .alq-pl-fila > :is(.alq-pl-dias-caja, input[type=date], .alq-pl-hueco) { grid-column:2 / 4; } .alq-pl-vence { grid-column:2 / 3; } .alq-pl-importe { grid-column:3 / 4; } }
.alq-pl-fila :is(input, select) { border:1px solid var(--fc-input, oklch(89% 0 0))!important; box-shadow:none!important; }

/* Plazos al estilo Arc: el porcentaje y los días en píldoras con − y +, y el momento en un
   control segmentado; nada de cajas con borde. */
.alq-pl-fila { grid-template-columns:24px auto auto auto minmax(max-content,1fr) 96px 28px!important; gap:10px!important; padding:6px 6px 6px 10px!important; background:var(--alq-tarjeta)!important; }
.alq-pl-paso { display:inline-flex; align-items:center; gap:2px; padding:3px; border-radius:12px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alq-pl-paso button { width:26px; height:26px; border:0; border-radius:9px; background:transparent; color:var(--fc-ink, inherit); font-size:15px; line-height:1; cursor:pointer; transition:background-color 120ms ease, transform 200ms cubic-bezier(.3,1.4,.5,1); }
.alq-pl-paso button:hover { background:var(--alq-tarjeta); box-shadow:0 1px 2px oklch(0% 0 0 / .08); }
.alq-pl-paso button:active { transform:scale(.88); }
.alq-pl-fila .alq-pl-paso input { width:34px!important; min-height:26px!important; height:26px!important; padding:0!important; border:0!important; background:transparent!important; box-shadow:none!important; text-align:right; font:600 13.5px var(--fc-font, inherit)!important; font-variant-numeric:tabular-nums; }
.alq-pl-fila .alq-pl-paso input:focus { outline:none; background:var(--alq-tarjeta)!important; border-radius:7px!important; }
.alq-pl-paso small { margin:0 4px 0 2px; font-size:12px; color:var(--alq-suave); }
.alq-pl-seg { display:inline-flex; gap:2px; padding:3px; border-radius:12px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alq-pl-seg-op { padding:4px 10px; border:0; border-radius:9px; background:transparent; color:var(--alq-suave); font:500 12.5px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; transition:background-color 160ms ease, color 160ms ease, box-shadow 160ms ease; }
.alq-pl-seg-op:hover { color:var(--fc-ink, inherit); }
.alq-pl-seg-op.activo { background:var(--alq-tarjeta); color:var(--fc-ink, inherit); box-shadow:0 1px 2px oklch(0% 0 0 / .1), 0 0 0 1px var(--alq-borde); }
.alq-pl-fila input.alq-pl-fecha { width:140px!important; border:1px solid var(--alq-borde)!important; background:var(--arc-tray, oklch(97.8% 0 0))!important; border-radius:12px!important; }
.alq-pl-hueco { width:0; }
.alq-pl-vence { padding-left:4px; }
@media (max-width:760px) { .alq-pl-fila { grid-template-columns:24px 1fr 28px!important; } .alq-pl-fila > * { grid-column:2 / 3; } .alq-pl-fila > .alq-pl-num { grid-column:1; } .alq-pl-fila > .alq-pl-quitar { grid-column:3; grid-row:1; } }

.alq-plazos-presets button.activo { background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); border-color:var(--fc-primary, oklch(23% 0 0)); }

/* ===== Almacén · Artículos en tarjetas: foto, nombre, cuántas hay y su disponibilidad. ===== */
.alm-barra { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; padding:10px; border-radius:20px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alm-fechas { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.alm-fechas-etq { padding-left:6px; font-size:12px; font-weight:600; color:var(--alq-suave); text-transform:uppercase; letter-spacing:.04em; }
.alm-rangos { display:flex; gap:2px; padding:3px; border-radius:12px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); }
.alm-rangos button { padding:5px 10px; border:0; border-radius:9px; background:transparent; color:var(--alq-suave); font:500 12.5px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; transition:background-color 140ms ease, color 140ms ease; }
.alm-rangos button:hover { color:var(--fc-ink, inherit); }
.alm-rangos button.activo { background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); }
.alm-fechas label { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--alq-suave); }
.alm-fechas input.alm-fecha { min-height:32px!important; height:32px; padding:4px 8px!important; border-radius:10px!important; border:1px solid var(--alq-borde)!important; background:var(--alq-tarjeta)!important; font-size:13px!important; }
.alm-filtros { display:flex; align-items:center; gap:8px; }
.alm-filtros .filter-bar { margin:0!important; }
.alm-busca { width:200px; min-height:34px!important; padding:6px 12px!important; border-radius:12px!important; border:1px solid var(--alq-borde)!important; background:var(--alq-tarjeta)!important; font-size:13px!important; }
.alm-rejilla { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:14px; }
.alm-tarjeta { display:flex; flex-direction:column; overflow:hidden; border-radius:22px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); animation:alq-cal-llega 340ms cubic-bezier(.2,.8,.2,1) both; transition:transform 260ms cubic-bezier(.3,1.3,.5,1), box-shadow 200ms ease; }
.alm-tarjeta:nth-child(2) { animation-delay:40ms; } .alm-tarjeta:nth-child(3) { animation-delay:80ms; } .alm-tarjeta:nth-child(4) { animation-delay:120ms; } .alm-tarjeta:nth-child(n+5) { animation-delay:160ms; }
.alm-tarjeta:hover { transform:translateY(-3px); box-shadow:0 22px 40px -26px oklch(0% 0 0 / .45); }
.alm-foto { position:relative; aspect-ratio:4 / 3; display:grid; place-items:center; overflow:hidden; background:radial-gradient(ellipse at 30% 20%, oklch(97% 0 0), oklch(92% 0 0)); border-bottom:1px solid var(--alq-borde); }
.alm-foto img { width:100%; height:100%; object-fit:cover; transition:transform 500ms cubic-bezier(.2,.8,.2,1); }
.alm-tarjeta:hover .alm-foto img { transform:scale(1.04); }
.alm-inicial { width:84px; height:84px; display:grid; place-items:center; border-radius:24px; background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); font:500 40px var(--arc-display, inherit); letter-spacing:-.04em; box-shadow:0 18px 36px -20px oklch(0% 0 0 / .6); }
.alm-tipo { position:absolute; left:10px; top:10px; padding:3px 9px; border-radius:999px; background:oklch(100% 0 0 / .85); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:1px solid oklch(0% 0 0 / .06); font-size:11.5px; font-weight:500; }
.alm-foto-cambiar { position:absolute; right:10px; bottom:10px; padding:5px 11px; border-radius:999px; background:oklch(15% 0 0 / .78); color:#fff; font-size:12px; font-weight:500; cursor:pointer; opacity:0; transform:translateY(4px); transition:opacity 160ms ease, transform 200ms ease; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.alm-tarjeta:hover .alm-foto-cambiar, .alm-foto-cambiar:focus-within, .alm-foto:not(:has(img)) .alm-foto-cambiar { opacity:1; transform:none; }
.alm-tarjeta-cuerpo { display:flex; flex-direction:column; gap:12px; padding:14px 16px 16px; flex:1; }
.alm-tarjeta-cab { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.alm-tarjeta-cab strong { display:block; font-family:var(--arc-display, inherit); font-size:16px; font-weight:500; letter-spacing:-.02em; line-height:1.25; }
.alm-tarjeta-cab small { font-size:12px; color:var(--alq-suave); }
.alm-cifra { display:flex; align-items:baseline; gap:4px; white-space:nowrap; }
.alm-cifra span { font-family:var(--arc-display, inherit); font-size:30px; font-weight:400; letter-spacing:-.05em; line-height:1; font-variant-numeric:tabular-nums; }
.alm-cifra small { font-size:12.5px; color:var(--alq-suave); }
.alm-disp { display:flex; flex-direction:column; gap:7px; padding:10px 12px; border-radius:14px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alm-disp-txt { font-size:13px; color:var(--alq-suave); }
.alm-disp-txt b { color:var(--fc-ink, inherit); font-size:15px; font-weight:600; font-variant-numeric:tabular-nums; }
.alm-disp.agotado .alm-disp-txt b { color:var(--fc-error, oklch(54% .21 25)); }
.alm-disp-barra { display:flex; height:8px; overflow:hidden; border-radius:999px; background:oklch(93% 0 0); }
.alm-disp-barra span { height:100%; transition:width 600ms cubic-bezier(.2,.8,.2,1); }
.alm-disp-barra .libre { background:var(--fc-primary, oklch(23% 0 0)); }
.alm-disp-barra .ocupado { background:oklch(70% 0 0); }
.alm-disp-barra .taller { background:var(--alq-amarillo-borde); }
.alm-disp-eventos { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:3px; font-size:12px; color:var(--alq-suave); }
.alm-disp-eventos li { display:flex; align-items:center; gap:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.alm-disp-eventos .punto { width:6px; height:6px; flex:none; border-radius:50%; background:var(--alq-amarillo-borde); }
.alm-disp-eventos .punto.firme { background:var(--alq-verde-borde); }
.alm-disp-eventos .mas { padding-left:12px; }
.alm-chips { display:flex; flex-wrap:wrap; gap:5px; }
.alm-chip { padding:2px 9px; border-radius:999px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); font-size:11.5px; color:var(--alq-suave); white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.alm-chip.ambar { background:var(--alq-amarillo); border-color:var(--alq-amarillo-borde); color:var(--alq-amarillo-tinta); }
.alm-chip.rojo { background:var(--alq-rojo); border-color:var(--alq-rojo-borde); color:var(--alq-rojo-tinta); }
.alm-tarjeta-acciones { display:flex; gap:6px; margin-top:auto; }
.alm-tarjeta-acciones button { flex:1; padding:7px 10px; border-radius:11px; border:1px solid var(--alq-borde); background:var(--arc-tray, oklch(97.8% 0 0)); color:inherit; font:500 12.5px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; transition:background-color 140ms ease, transform 200ms cubic-bezier(.3,1.4,.5,1); }
.alm-tarjeta-acciones button:hover { background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); border-color:var(--fc-primary, oklch(23% 0 0)); }
.alm-tarjeta-acciones button:active { transform:scale(.96); }
.alm-sin-control { margin-top:18px; border-radius:18px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alm-sin-control summary { padding:12px 16px; cursor:pointer; font-size:13.5px; font-weight:500; list-style:none; display:flex; align-items:center; gap:8px; }
.alm-sin-control summary::-webkit-details-marker { display:none; }
.alm-sin-control summary span { padding:1px 8px; border-radius:999px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); font-size:11.5px; color:var(--alq-suave); }
.alm-sin-lista { display:flex; flex-direction:column; gap:4px; padding:0 8px 8px; }
.alm-sin-fila { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:10px; padding:8px 10px; border-radius:12px; background:var(--alq-tarjeta); }
.alm-sin-fila small { color:var(--alq-suave); font-size:12px; }
.alm-sin-fila select { min-height:32px!important; font-size:12.5px!important; border-radius:10px!important; }
@media (max-width:760px) { .alm-busca { width:100%; } .alm-filtros { width:100%; } .alm-rejilla { grid-template-columns:1fr 1fr; gap:10px; } .alm-cifra span { font-size:24px; } }
@media (prefers-reduced-motion:reduce) { .alm-tarjeta { animation:none; } }

.alm-foto-cambiar { color:#fff!important; text-transform:none!important; letter-spacing:0!important; }

/* La barra de filtros del almacén, fina y sin recuadro: tipo y buscador a la izquierda, fechas a
   la derecha en una sola píldora que abre el desde-hasta. */
.alm-barra { padding:0!important; background:none!important; border:0!important; border-radius:0!important; margin-bottom:18px!important; gap:10px!important; }
.alm-filtros { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.alm-seg, .alm-rangos { display:inline-flex; gap:2px; padding:3px; border-radius:13px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alm-seg button, .alm-rangos button { padding:6px 12px; border:0; border-radius:10px; background:transparent; color:var(--alq-suave); font:500 13px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; transition:background-color 160ms ease, color 160ms ease, box-shadow 160ms ease; }
.alm-seg button:hover, .alm-rangos button:hover { color:var(--fc-ink, inherit); }
.alm-seg button.activo, .alm-rangos button.activo { background:var(--alq-tarjeta)!important; color:var(--fc-ink, inherit)!important; box-shadow:0 1px 2px oklch(0% 0 0 / .1), 0 0 0 1px var(--alq-borde); }
.alm-busca-caja { position:relative; display:inline-flex; align-items:center; }
.alm-lupa { position:absolute; left:11px; width:14px; height:14px; pointer-events:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.alm-barra .alm-busca { width:220px; height:36px; min-height:36px!important; padding:6px 12px 6px 32px!important; border-radius:13px!important; border:1px solid var(--alq-borde)!important; background:var(--arc-tray, oklch(97.8% 0 0))!important; box-shadow:none!important; }
.alm-barra .alm-busca:focus { background:var(--alq-tarjeta)!important; }
.alm-fechas { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.alm-rango-pill { position:relative; }
.alm-rango-btn { display:inline-flex; align-items:center; gap:8px; height:36px; padding:0 14px; border-radius:13px; border:0; background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); font:500 13px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; font-variant-numeric:tabular-nums; box-shadow:0 10px 20px -14px oklch(0% 0 0 / .6); transition:transform 200ms cubic-bezier(.3,1.4,.5,1); }
.alm-rango-btn:active { transform:scale(.97); }
.alm-cal-ico { width:14px; height:14px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat; }
.alm-rango-pop { position:absolute; right:0; top:calc(100% + 8px); z-index:30; display:flex; gap:10px; padding:10px; border-radius:16px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); box-shadow:0 20px 44px -18px oklch(0% 0 0 / .35); animation:alq-sug-abre 180ms cubic-bezier(.2,.8,.2,1) both; }
.alm-rango-pop.hidden { display:none; }
.alm-rango-pop label { display:flex; flex-direction:column; gap:4px; font-size:11.5px; color:var(--alq-suave); }
.alm-fechas-etq { display:none; }

/* Con cientos de artículos: tarjetas más compactas, acciones en un menú «⋯» y un buscador que
   ocupa todo el sitio que queda en la barra. */
.alm-barra { flex-wrap:nowrap!important; }
.alm-filtros { flex:1; min-width:0; flex-wrap:nowrap!important; }
.alm-busca-caja { flex:1; min-width:180px; }
.alm-barra .alm-busca { width:100%!important; height:40px; min-height:40px!important; font-size:14px!important; padding-left:36px!important; border-radius:14px!important; }
.alm-lupa { left:13px; width:15px; height:15px; }
.alm-rejilla { grid-template-columns:repeat(auto-fill, minmax(210px, 1fr))!important; gap:12px!important; }
.alm-foto { aspect-ratio:16 / 10!important; }
.alm-inicial { width:64px!important; height:64px!important; border-radius:18px!important; font-size:30px!important; }
.alm-tarjeta-cuerpo { gap:10px!important; padding:12px 14px 14px!important; }
.alm-tarjeta-cab strong { font-size:14.5px!important; }
.alm-cifra span { font-size:26px!important; }
.alm-menu-caja { position:absolute; right:8px; top:8px; z-index:4; }
.alm-mas { width:30px; height:30px; display:grid; place-items:center; border:0; border-radius:10px; background:oklch(100% 0 0 / .85); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:oklch(20% 0 0); font-size:16px; line-height:1; cursor:pointer; box-shadow:0 1px 3px oklch(0% 0 0 / .15); opacity:0; transition:opacity 140ms ease, transform 200ms cubic-bezier(.3,1.4,.5,1); }
.alm-tarjeta:hover .alm-mas, .alm-mas[aria-expanded="true"], .alm-mas:focus-visible { opacity:1; }
.alm-mas:active { transform:scale(.9); }
.alm-menu { position:absolute; right:0; top:calc(100% + 6px); min-width:190px; display:flex; flex-direction:column; gap:2px; padding:6px; border-radius:14px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); box-shadow:0 20px 40px -18px oklch(0% 0 0 / .4); animation:alq-sug-abre 160ms cubic-bezier(.2,.8,.2,1) both; }
.alm-menu.hidden { display:none; }
.alm-menu > :is(button, label) { display:block; width:100%; padding:8px 10px; border:0; border-radius:9px; background:transparent; color:var(--fc-ink, inherit); font:500 13px var(--fc-font, inherit); text-align:left; cursor:pointer; white-space:nowrap; }
.alm-menu > :is(button, label):hover { background:var(--arc-tray, oklch(97.8% 0 0)); }
@media (hover:none) { .alm-mas { opacity:1; } }
@media (max-width:980px) { .alm-barra { flex-wrap:wrap!important; } .alm-filtros { flex-basis:100%; } }
/* El buscador, en su propia fila y de todo el ancho; debajo, el tipo a la izquierda y las fechas a la derecha. */
.alm-barra { flex-wrap:wrap!important; row-gap:10px!important; }
.alm-filtros { display:contents!important; }
.alm-busca-caja { order:-1; flex:1 1 100%!important; }
.alm-barra .alm-busca { height:48px!important; min-height:48px!important; font-size:15px!important; padding-left:42px!important; border-radius:16px!important; }
.alm-lupa { left:16px!important; width:17px!important; height:17px!important; }
.alm-seg { margin-right:auto; }
.alm-rejilla { grid-template-columns:repeat(auto-fill, minmax(190px, 1fr))!important; }

/* ---- Tarjeta clicable, etiquetas y texto de disponibilidad corto ---- */
.alm-tarjeta { cursor:pointer; }
.alm-tarjeta:focus-visible { outline:2px solid oklch(0% 0 0 / .3); outline-offset:3px; }
.alm-disp-txt span { color:var(--alq-suave); }
.alm-etiquetas { display:flex; flex-wrap:wrap; gap:4px; margin-top:-4px; }
.alm-etiquetas span { padding:1px 8px; border-radius:999px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); font-size:11px; font-weight:500; color:var(--alq-suave); }
.alm-filtro-etiquetas { display:flex; flex-wrap:wrap; gap:4px; }
.alm-filtro-etiquetas button { padding:6px 11px; border-radius:999px; border:1px solid var(--alq-borde); background:var(--alq-tarjeta); color:var(--alq-suave); font:500 12.5px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; transition:background-color 140ms ease, color 140ms ease; }
.alm-filtro-etiquetas button:hover { color:var(--fc-ink, inherit); }
.alm-filtro-etiquetas button.activo { background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); border-color:var(--fc-primary, oklch(23% 0 0)); }
.alm-seg { margin-right:0!important; }
.alm-filtro-etiquetas { margin-right:auto; }

/* ---- Ficha del artículo ---- */
#modal-alm-articulo .modal-content { max-width:980px; }
.alm-ficha-cab { display:grid; grid-template-columns:minmax(0, 380px) minmax(0, 1fr); gap:20px; margin-bottom:18px; }
.alm-ficha-foto { aspect-ratio:4 / 3; overflow:hidden; display:grid; place-items:center; border-radius:20px; background:radial-gradient(ellipse at 30% 20%, oklch(97% 0 0), oklch(91% 0 0)); border:1px solid var(--alq-borde); }
.alm-ficha-foto img { width:100%; height:100%; object-fit:cover; }
.alm-ficha-datos { display:flex; flex-direction:column; gap:12px; min-width:0; }
.alm-ficha-tipo { display:flex; align-items:center; gap:8px; }
.alm-ficha-tipo code { font-size:12px; color:var(--alq-suave); }
.alm-pill { display:inline-flex; align-items:center; padding:2px 10px; border-radius:999px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); font-size:12px; font-weight:500; white-space:nowrap; }
.alm-pill.ok { background:var(--alq-verde); border-color:var(--alq-verde-borde); color:var(--alq-verde-tinta); }
.alm-pill.ambar { background:var(--alq-amarillo); border-color:var(--alq-amarillo-borde); color:var(--alq-amarillo-tinta); }
.alm-pill.rojo { background:var(--alq-rojo); border-color:var(--alq-rojo-borde); color:var(--alq-rojo-tinta); }
.alm-ficha-etiquetas { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.alm-et { display:inline-flex; align-items:center; gap:4px; padding:4px 6px 4px 11px; border-radius:999px; background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); font-size:12.5px; font-weight:500; animation:alq-sug-abre 180ms cubic-bezier(.2,.8,.2,1) both; }
.alm-et button { width:18px; height:18px; display:grid; place-items:center; border:0; border-radius:50%; background:oklch(100% 0 0 / .15); color:inherit; font-size:13px; line-height:1; cursor:pointer; }
.alm-et button:hover { background:oklch(100% 0 0 / .3); }
.alm-et-nueva { width:120px!important; min-height:30px!important; height:30px; padding:4px 11px!important; border-radius:999px!important; border:1px dashed var(--fc-input, oklch(85% 0 0))!important; background:transparent!important; font-size:12.5px!important; }
.alm-et-propuestas { display:flex; flex-wrap:wrap; gap:4px; margin-top:-4px; }
.alm-et-propuestas button { padding:3px 9px; border-radius:999px; border:1px solid var(--alq-borde); background:var(--arc-tray, oklch(97.8% 0 0)); color:var(--alq-suave); font:500 11.5px var(--fc-font, inherit); cursor:pointer; }
.alm-et-propuestas button:hover { color:var(--fc-ink, inherit); background:var(--alq-tarjeta); }
.alm-ficha-cifras { display:grid; grid-template-columns:repeat(auto-fit, minmax(110px, 1fr)); gap:8px; padding:8px; margin-top:auto; border-radius:20px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alm-ficha-cifras > div { display:flex; flex-direction:column; gap:4px; padding:12px; border-radius:14px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); }
.alm-ficha-cifras > div.oscura { background:var(--fc-primary, oklch(23% 0 0)); border-color:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); }
.alm-ficha-cifras small { font-size:11.5px; color:var(--alq-suave); white-space:nowrap; }
.alm-ficha-cifras .oscura small, .alm-ficha-cifras .oscura span { color:oklch(100% 0 0 / .6); }
.alm-ficha-cifras b { font-family:var(--arc-display, inherit); font-size:28px; font-weight:400; letter-spacing:-.05em; line-height:1; font-variant-numeric:tabular-nums; }
.alm-ficha-cifras span { font-size:12px; color:var(--alq-suave); }
.alm-ficha-bloque { margin-top:16px; }
.alm-ficha-bloque h4 { display:flex; align-items:center; gap:8px; margin:0 0 8px; font-family:var(--arc-display, inherit); font-size:15px; font-weight:500; letter-spacing:-.02em; }
.alm-ficha-bloque h4 span { padding:0 8px; border-radius:999px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); font-size:11.5px; font-weight:500; color:var(--alq-suave); }
.alm-ficha-eventos, .alm-ficha-movs { list-style:none; margin:0; padding:6px; display:flex; flex-direction:column; gap:3px; border-radius:16px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alm-ficha-eventos li, .alm-ficha-movs li { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:11px; background:var(--alq-tarjeta); font-size:13px; }
.alm-ficha-eventos li small, .alm-ficha-movs li small { color:var(--alq-suave); font-size:12px; }
.alm-ficha-eventos li em, .alm-ficha-movs li em { margin-left:auto; font-style:normal; font-weight:600; font-variant-numeric:tabular-nums; }
.alm-ficha-eventos .punto { width:7px; height:7px; flex:none; border-radius:50%; background:var(--alq-amarillo-borde); }
.alm-ficha-eventos .punto.firme { background:var(--alq-verde-borde); }
.alm-ficha-movs li b { font-weight:500; min-width:110px; }
.alm-ficha-movs li small { min-width:110px; }
.alm-ficha-unidades { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:6px; padding:6px; border-radius:16px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alm-ud { display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:10px; border-radius:12px; border:1px solid var(--alq-borde); background:var(--alq-tarjeta); color:inherit; font:inherit; text-align:left; cursor:pointer; transition:transform 200ms cubic-bezier(.3,1.3,.5,1), box-shadow 160ms ease; }
.alm-ud:hover { transform:translateY(-1px); box-shadow:0 10px 20px -14px oklch(0% 0 0 / .35); }
.alm-ud code { font-size:13px; font-weight:600; }
.alm-ud small { font-size:11.5px; color:var(--alq-suave); }
.alm-ficha-acciones { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:20px; padding-top:16px; border-top:1px solid var(--alq-borde); }
.alm-ficha-acciones label.btn { cursor:pointer; }
@media (max-width:760px) { .alm-ficha-cab { grid-template-columns:1fr; } }

/* ---- Ficha de una máquina: trazabilidad por evento ---- */
#modal-alm-unidad .modal-content { max-width:900px; }
.alm-ud-cifras { margin:14px 0 4px; }
.alm-ud-cifras b.texto { font-family:var(--fc-font, inherit); font-size:15px; font-weight:600; letter-spacing:-.01em; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.alm-trazas { display:flex; flex-direction:column; gap:10px; }
.alm-traza { padding:14px 16px; border-radius:18px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); animation:alq-cal-llega 300ms cubic-bezier(.2,.8,.2,1) both; }
.alm-traza header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.alm-traza header strong { display:block; font-family:var(--arc-display, inherit); font-size:16px; font-weight:500; letter-spacing:-.02em; }
.alm-traza header small { font-size:12.5px; color:var(--alq-suave); }
.alm-traza-der { display:flex; align-items:center; gap:8px; flex:none; }
.alm-traza-ver { padding:5px 11px; border-radius:10px; border:1px solid var(--alq-borde); background:var(--alq-tarjeta); color:inherit; font:500 12.5px var(--fc-font, inherit); cursor:pointer; }
.alm-traza-ver:hover { background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); border-color:var(--fc-primary, oklch(23% 0 0)); }
.alm-traza-meta { display:flex; align-items:center; gap:8px; margin:6px 0 10px; font-size:12.5px; color:var(--alq-suave); }
.alm-traza-meta code { padding:1px 7px; border-radius:6px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); font-size:11.5px; }
/* Los pasos, como una línea de tiempo vertical. */
.alm-pasos { list-style:none; margin:0; padding:0 0 0 4px; display:flex; flex-direction:column; }
.alm-paso { position:relative; display:flex; gap:12px; padding:0 0 12px 0; }
.alm-paso:last-child { padding-bottom:0; }
.alm-paso::before { content:""; position:absolute; left:5px; top:14px; bottom:0; width:2px; background:oklch(88% 0 0); }
.alm-paso:last-child::before { display:none; }
.alm-paso-punto { position:relative; z-index:1; width:12px; height:12px; flex:none; margin-top:3px; border-radius:50%; background:var(--alq-tarjeta); border:2px solid var(--fc-primary, oklch(23% 0 0)); }
.alm-paso-salida .alm-paso-punto { background:var(--fc-primary, oklch(23% 0 0)); }
.alm-paso-devolucion .alm-paso-punto { background:var(--alq-verde-borde); border-color:var(--alq-verde-borde); }
.alm-paso.mal .alm-paso-punto, .alm-paso-falta .alm-paso-punto { background:var(--alq-rojo-borde); border-color:var(--alq-rojo-borde); }
.alm-paso div { display:flex; flex-direction:column; gap:1px; min-width:0; }
.alm-paso b { font-size:13.5px; font-weight:500; }
.alm-paso small { font-size:12px; color:var(--alq-suave); }
.alm-paso p { margin:4px 0 0; padding:6px 10px; border-radius:10px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); font-size:12.5px; }
.alm-traza-inc { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.alm-ficha-movs li span { color:var(--alq-suave); font-size:12.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.alm-ficha-movs li em { font-style:normal; }
.alm-ud-enlace { padding:1px 7px; border-radius:6px; border:1px solid var(--alq-borde); background:var(--arc-tray, oklch(97.8% 0 0)); font:600 12px ui-monospace, monospace; color:inherit; cursor:pointer; }
.alm-ud-enlace:hover { background:var(--fc-primary, oklch(23% 0 0)); color:var(--fc-on-primary, #fff); }
.alm-mov-evento { flex:1; min-width:0; }
/* Se abren sobre la ficha del artículo, como #modal-tercero sobre el asistente de contrato. */
#modal-alm-unidad, #modal-alm-consumibles { z-index:150; }

/* ---- Ficha de la máquina, segunda vuelta: cabecera con foto, cifras e historia por meses ---- */
.alm-ud-cab { display:grid; grid-template-columns:96px minmax(0,1fr) auto; align-items:center; gap:16px; padding:14px; margin-bottom:12px; border-radius:22px; background:var(--arc-tray, oklch(97.8% 0 0)); border:1px solid var(--alq-borde); }
.alm-ud-foto { width:96px; height:96px; overflow:hidden; display:grid; place-items:center; border-radius:18px; background:radial-gradient(ellipse at 30% 20%, oklch(97% 0 0), oklch(91% 0 0)); border:1px solid var(--alq-borde); }
.alm-ud-foto img { width:100%; height:100%; object-fit:cover; }
.alm-ud-foto .alm-inicial { width:56px!important; height:56px!important; font-size:26px!important; border-radius:16px!important; }
.alm-ud-id { display:flex; flex-direction:column; gap:4px; min-width:0; }
.alm-ud-codigo { font:600 26px ui-monospace, "SF Mono", monospace; letter-spacing:-.02em; line-height:1.1; }
.alm-ud-producto { font-size:13.5px; color:var(--alq-suave); }
.alm-ud-estado { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:4px; }
.alm-ud-estado small { font-size:12px; color:var(--alq-suave); }
.alm-pill.gris { color:var(--alq-suave); }
.alm-ud-datos { display:flex; gap:10px; margin:0; }
.alm-ud-datos > div { display:flex; flex-direction:column; gap:4px; min-width:120px; padding:10px 12px; border-radius:14px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); }
.alm-ud-datos dt { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--alq-suave); }
.alm-ud-datos dd { margin:0; font-size:13.5px; font-weight:500; }
.alm-ud-datos select { min-height:28px!important; height:28px; padding:2px 24px 2px 8px!important; font-size:13px!important; border-radius:8px!important; border:1px solid var(--alq-borde)!important; background-color:var(--arc-tray, oklch(97.8% 0 0))!important; }
.alm-aviso-taller { display:flex!important; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 12px!important; padding:10px 12px!important; border-radius:16px!important; }
.alm-aviso-taller > span { margin-right:auto; }
.alm-aviso-taller .btn { border-radius:10px!important; }
/* Historia: meses como separadores, eventos como tarjetas con borde de color y lo del taller en línea. */
.alm-historia { display:flex; flex-direction:column; gap:8px; }
.alm-hist-mes { margin:8px 0 0; font-size:11.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--alq-suave); }
.alm-hist-mes:first-child { margin-top:0; }
.alm-traza { position:relative; padding-left:20px!important; overflow:hidden; }
.alm-traza::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:oklch(80% 0 0); }
.alm-traza.tono-ok::before { background:var(--alq-verde-borde); }
.alm-traza.tono-rojo::before { background:var(--alq-rojo-borde); }
.alm-traza.tono-ambar::before { background:var(--alq-amarillo-borde); }
.alm-traza-dur { padding:1px 8px; border-radius:999px; background:var(--alq-tarjeta); border:1px solid var(--alq-borde); font-size:11.5px; color:var(--fc-ink, inherit); }
.alm-hist-taller { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:14px; background:var(--alq-tarjeta); border:1px dashed var(--alq-borde); font-size:13px; }
.alm-hist-taller b { font-weight:500; }
.alm-hist-taller span { color:var(--alq-suave); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.alm-hist-taller small { margin-left:auto; flex:none; font-size:12px; color:var(--alq-suave); }
.alm-hist-ico { width:22px; height:22px; flex:none; border-radius:7px; background:var(--arc-tray, oklch(97.8% 0 0)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23525252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18l3 3 6.3-6.3a4 4 0 0 0 5.4-5.4l-2.6 2.6-2.4-.6-.6-2.4z'/%3E%3C/svg%3E") center / 13px no-repeat; border:1px solid var(--alq-borde); }
.alm-hist-taller.alm-paso-alta .alm-hist-ico { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23525252' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E"); }
@media (max-width:760px) { .alm-ud-cab { grid-template-columns:72px 1fr; } .alm-ud-foto { width:72px; height:72px; } .alm-ud-datos { grid-column:1 / -1; } .alm-ud-codigo { font-size:20px; } }
.alm-aviso-taller + .alm-ud-cifras, .alm-ud-cab + .alm-ud-cifras { margin-top:0!important; }

/* ===== Ficha de la máquina en el idioma de Arc (registry: timeline, metric-card, badge,
   activity-heatmap, alert). Una superficie, separadores de 1 px, color solo como tinte. ===== */
#modal-alm-unidad { --arc-fg:var(--fc-ink, oklch(15% 0 0)); --arc-sec:var(--fc-muted, oklch(46% 0 0)); --arc-mut:oklch(60% 0 0); --arc-borde:var(--fc-border, oklch(93.5% 0 0)); --arc-borde-f:oklch(82% 0 0); --arc-sup:var(--fc-card, #fff); --arc-sup-m:oklch(97.3% 0 0); --arc-ok:oklch(52% .14 150); --arc-mal:oklch(55% .19 25); --arc-aviso:oklch(62% .14 75); }
html[data-theme="dark"] #modal-alm-unidad { --arc-mut:oklch(64% 0 0); --arc-borde-f:oklch(40% 0 0); --arc-sup-m:oklch(26% 0 0); }
#modal-alm-unidad .modal-content { max-width:760px; }
#modal-alm-unidad .modal-header h3 { font-size:13px!important; font-weight:500!important; color:var(--arc-mut)!important; letter-spacing:0!important; }
.arc-ud-cab { display:flex; align-items:center; gap:14px; }
.arc-ud-foto { width:56px; height:56px; flex:none; overflow:hidden; display:grid; place-items:center; border-radius:16px; background:var(--arc-sup-m); box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--arc-fg) 8%, transparent); }
.arc-ud-foto img { width:100%; height:100%; object-fit:cover; }
.arc-ud-foto span { font:500 22px var(--arc-display, inherit); color:var(--arc-sec); }
.arc-ud-tit { flex:1; min-width:0; }
.arc-ud-tit h2 { margin:0; font-family:var(--arc-display, inherit); font-size:24px; font-weight:500; letter-spacing:-.03em; line-height:1.15; color:var(--arc-fg); }
.arc-ud-tit p { margin:2px 0 0; font-size:13.5px; color:var(--arc-sec); }
.arc-badge { display:inline-flex; align-items:center; gap:6px; min-height:26px; padding:0 10px; border-radius:999px; border:1px solid var(--arc-borde); background:var(--arc-sup); color:var(--arc-fg); font-size:12px; font-weight:500; letter-spacing:-.01em; white-space:nowrap; }
.arc-badge i { width:6px; height:6px; border-radius:50%; background:var(--arc-mut); }
.arc-badge[data-tono="success"] { border-color:transparent; background:color-mix(in oklab, var(--arc-ok) 11%, transparent); color:var(--arc-ok); }
.arc-badge[data-tono="warning"] { border-color:transparent; background:color-mix(in oklab, var(--arc-aviso) 14%, transparent); color:oklch(45% .1 70); }
.arc-badge[data-tono="danger"] { border-color:transparent; background:color-mix(in oklab, var(--arc-mal) 11%, transparent); color:var(--arc-mal); }
.arc-badge[data-tono="info"] { border-color:transparent; background:color-mix(in oklab, var(--alq-azul-borde) 14%, transparent); color:var(--alq-azul-tinta); }
.arc-badge[data-tono] i { background:currentColor; }
.arc-ud-datos { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); margin:18px 0 0; border-top:1px solid var(--arc-borde); border-bottom:1px solid var(--arc-borde); }
.arc-ud-datos > div { padding:12px 0; min-width:0; }
.arc-ud-datos > div + div { padding-left:16px; border-left:1px solid var(--arc-borde); }
.arc-ud-datos dt { font-size:12px; color:var(--arc-mut); }
.arc-ud-datos dd { margin:3px 0 0; font-size:14px; font-weight:500; color:var(--arc-fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.arc-ud-datos select { all:unset; cursor:pointer; font-size:14px; font-weight:500; color:var(--arc-fg); padding-right:16px!important; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right center / 12px no-repeat!important; }
/* Aviso (alert de Arc): tinte suave, sin borde grueso. */
.arc-alerta { display:flex; align-items:center; gap:10px; margin:16px 0 0; padding:10px 10px 10px 14px; border-radius:16px; background:color-mix(in oklab, var(--arc-aviso) 10%, var(--arc-sup)); color:var(--arc-fg); font-size:13.5px; }
.arc-alerta i { width:8px; height:8px; flex:none; border-radius:50%; background:var(--arc-aviso); box-shadow:0 0 0 4px color-mix(in oklab, var(--arc-aviso) 18%, transparent); }
.arc-alerta span { flex:1; color:var(--arc-sec); }
.arc-alerta b { color:var(--arc-fg); font-weight:500; }
.arc-btn { min-height:32px; padding:0 12px; border-radius:11px; border:1px solid var(--arc-borde); background:var(--arc-sup); color:var(--arc-fg); font:500 13px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; box-shadow:0 1px 2px oklch(0% 0 0 / .04); transition:background-color 140ms ease, border-color 140ms ease, transform 200ms cubic-bezier(.3,1.4,.5,1); }
.arc-btn:hover { background:var(--arc-sup-m); border-color:var(--arc-borde-f); }
.arc-btn:active { transform:scale(.97); }
.arc-btn.peligro { color:var(--arc-mal); }
/* Cifras (metric-card de Arc) en una sola fila con separadores. */
.arc-mets { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); margin-top:20px; border:1px solid var(--arc-borde); border-radius:20px; background:var(--arc-sup); overflow:hidden; }
.arc-met { display:flex; flex-direction:column; padding:14px 16px; min-width:0; }
.arc-met + .arc-met { border-left:1px solid var(--arc-borde); }
.arc-met-lbl { font-size:12.5px; color:var(--arc-sec); }
.arc-met-val { margin:14px 0 2px; font-family:var(--arc-display, inherit); font-size:30px; font-weight:400; letter-spacing:-.05em; line-height:1; color:var(--arc-fg); font-variant-numeric:tabular-nums; }
.arc-met-pie { font-size:12px; color:var(--arc-mut); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* Mapa del año (activity-heatmap de Arc). */
.arc-hm { margin-top:20px; }
.arc-hm-resumen { margin:0 0 10px; font-size:13.5px; color:var(--arc-sec); }
.arc-hm-resumen b { color:var(--arc-fg); font-weight:500; }
.arc-hm-lienzo { --cel:9px; --gap:3px; overflow-x:auto; padding-bottom:4px; }
.arc-hm-meses { position:relative; height:16px; margin-bottom:6px; font-size:11px; color:var(--arc-mut); }
.arc-hm-meses span { position:absolute; top:0; left:calc(var(--col) * (var(--cel) + var(--gap))); white-space:nowrap; }
.arc-hm-rejilla { display:flex; gap:var(--gap); width:max-content; }
.arc-hm-col { display:flex; flex-direction:column; gap:var(--gap); }
.arc-hm-c { width:var(--cel); height:var(--cel); border-radius:calc(var(--cel) * .28); background:color-mix(in oklab, var(--arc-fg) 6.5%, var(--arc-sup)); animation:arc-hm-entra 380ms cubic-bezier(.2,.8,.2,1) both; }
.arc-hm-c.n4 { background:var(--arc-fg); }
.arc-hm-c.vacio { visibility:hidden; }
@keyframes arc-hm-entra { from { opacity:0; transform:scale(.5); } }
/* Historia (timeline de Arc): marcador de 28 px con icono y aro fino, raya de 1 px. */
.arc-tl { margin-top:22px; }
.arc-tl-dia { position:sticky; top:-1px; z-index:2; display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:8px 12px 8px 0; background:var(--arc-sup); font-size:14px; font-weight:500; color:var(--arc-fg); }
.arc-tl-dia small { font-size:12px; font-weight:400; color:var(--arc-mut); font-variant-numeric:tabular-nums; }
.arc-tl-lista { margin:0 0 12px; padding:0; list-style:none; }
.arc-tl-item { position:relative; padding-left:38px; animation:arc-tl-entra 320ms cubic-bezier(.2,.8,.2,1) both; }
.arc-tl-item:nth-child(2) { animation-delay:40ms; } .arc-tl-item:nth-child(3) { animation-delay:80ms; } .arc-tl-item:nth-child(n+4) { animation-delay:120ms; }
@keyframes arc-tl-entra { from { opacity:0; transform:translateY(4px); filter:blur(3px); } }
.arc-tl-marca { position:absolute; z-index:1; top:8px; left:0; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--arc-sup); color:var(--arc-sec); }
.arc-tl-marca::after { content:""; position:absolute; inset:0; border-radius:inherit; border:1px solid color-mix(in oklab, var(--arc-fg) 10%, transparent); }
.arc-tl-marca svg { width:14px; height:14px; }
.arc-tl-marca[data-tono="success"] { background:color-mix(in oklab, var(--arc-ok) 12%, var(--arc-sup)); color:var(--arc-ok); }
.arc-tl-marca[data-tono="danger"] { background:color-mix(in oklab, var(--arc-mal) 12%, var(--arc-sup)); color:var(--arc-mal); }
.arc-tl-marca[data-tono="warning"] { background:color-mix(in oklab, var(--arc-aviso) 14%, var(--arc-sup)); color:oklch(48% .1 70); }
.arc-tl-raya { position:absolute; top:40px; bottom:-4px; left:13.5px; width:1px; background:var(--arc-borde-f); transform-origin:50% 0; animation:arc-tl-raya 420ms cubic-bezier(.2,.8,.2,1) both; }
@keyframes arc-tl-raya { from { transform:scaleY(0); } }
.arc-tl-fila { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; column-gap:12px; padding:12px; border-radius:16px; transition:background-color 140ms ease; }
.arc-tl-fila:hover { background:var(--arc-sup-m); }
.arc-tl-texto { display:grid; gap:2px; min-width:0; }
.arc-tl-titulo { font-size:14px; line-height:20px; color:var(--arc-sec); }
.arc-tl-titulo b { color:var(--arc-fg); font-weight:500; }
/* El nombre del evento en la historia de la máquina es un enlace a su ficha, con el mismo peso que la negrita. */
.arc-tl-evento { all:unset; color:var(--arc-fg); font-weight:500; cursor:pointer; text-decoration:underline; text-decoration-color:color-mix(in oklab, var(--arc-fg) 25%, transparent); text-underline-offset:3px; }
.arc-tl-evento:hover, .arc-tl-evento:focus-visible { text-decoration-color:currentColor; outline:none; }
.arc-tl-meta { font-size:12px; line-height:1.45; color:var(--arc-mut); }
.arc-tl-nota { margin-top:4px; font-size:13px; color:var(--arc-sec); }
.arc-tl-nota::before { content:"“"; } .arc-tl-nota::after { content:"”"; }
.arc-tl-hora { min-width:2.75rem; text-align:right; font-size:12px; line-height:20px; color:var(--arc-mut); white-space:nowrap; font-variant-numeric:tabular-nums; }
.arc-ud-acciones { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:12px; padding-top:16px; border-top:1px solid var(--arc-borde); }
@media (max-width:620px) { .arc-mets { grid-template-columns:1fr 1fr; } .arc-met:nth-child(3) { border-left:0; } .arc-met:nth-child(n+3) { border-top:1px solid var(--arc-borde); } .arc-ud-datos { grid-template-columns:1fr; } .arc-ud-datos > div + div { padding-left:0; border-left:0; border-top:1px solid var(--arc-borde); } }
@media (prefers-reduced-motion:reduce) { .arc-tl-item, .arc-tl-raya, .arc-hm-c { animation:none; } }

/* ===== Calendario de eventos en el idioma de Arc: cabecera tranquila, cifras del mes, rejilla de
   separadores finos y eventos como barras de tinte suave que crecen al entrar. ===== */
#view-calendario { --cal-fg:var(--fc-ink, oklch(15% 0 0)); --cal-sec:var(--fc-muted, oklch(46% 0 0)); --cal-mut:oklch(60% 0 0); --cal-borde:var(--fc-border, oklch(93.5% 0 0)); --cal-sup:var(--fc-card, #fff); --cal-tray:var(--arc-tray, oklch(97.8% 0 0)); }
#view-calendario .view-subtitle { display:none; }
/* Navegación: botones sin caja que se rellenan al pasar, como en Arc. */
#view-calendario .alq-cal-nav { gap:2px!important; padding:3px; border-radius:999px; background:var(--cal-tray); border:1px solid var(--cal-borde); }
#view-calendario .alq-cal-nav .btn { min-width:34px; height:34px; padding:0 12px!important; border:0!important; border-radius:999px!important; background:transparent!important; box-shadow:none!important; color:var(--cal-sec)!important; font-size:14px!important; transition:background-color 140ms ease, color 140ms ease, scale 220ms cubic-bezier(.3,1.4,.5,1)!important; }
#view-calendario .alq-cal-nav .btn:hover { background:var(--cal-sup)!important; color:var(--cal-fg)!important; box-shadow:0 1px 2px oklch(0% 0 0 / .08)!important; }
#view-calendario .alq-cal-nav .btn:active { scale:.94; }
#view-calendario .alq-cal-barra { gap:14px!important; margin:2px 0 16px!important; }
#view-calendario .alq-cal-titulo { order:-1; flex:1 1 100%; font-family:var(--arc-display, inherit); font-size:30px!important; font-weight:500; letter-spacing:-.04em!important; line-height:1.1; color:var(--cal-fg); text-transform:none; }
#view-calendario .alq-cal-titulo span { color:var(--cal-mut); font-weight:400; }
#view-calendario .alq-cal-vistas { gap:2px!important; padding:3px!important; border-radius:13px!important; background:var(--cal-tray)!important; }
#view-calendario .alq-cal-vistas .filter-btn { border-radius:10px!important; }
#view-calendario .alq-cal-filtros select { min-width:0!important; height:34px; padding:0 30px 0 12px!important; border-radius:11px!important; border:1px solid var(--cal-borde)!important; background-color:var(--cal-sup)!important; font-size:13px!important; color:var(--cal-sec)!important; box-shadow:none!important; }
/* Cifras del mes. */
.alq-mes-cifras { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); margin-bottom:14px; border:1px solid var(--cal-borde); border-radius:20px; background:var(--cal-sup); overflow:hidden; animation:alq-cal-llega 320ms cubic-bezier(.2,.8,.2,1) both; }
.alq-mes-cifra { display:flex; flex-direction:column; padding:12px 16px; min-width:0; }
.alq-mes-cifra + .alq-mes-cifra { border-left:1px solid var(--cal-borde); }
.alq-mes-cifra span { display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--cal-sec); }
.alq-mes-cifra.verde span::before, .alq-mes-cifra.ambar span::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--alq-verde-borde); }
.alq-mes-cifra.ambar span::before { background:var(--alq-amarillo-borde); }
.alq-mes-cifra b { margin:10px 0 1px; font-family:var(--arc-display, inherit); font-size:28px; font-weight:400; letter-spacing:-.05em; line-height:1; color:var(--cal-fg); font-variant-numeric:tabular-nums; }
.alq-mes-cifra small { font-size:12px; color:var(--cal-mut); }
/* Rejilla. */
#view-calendario .alq-cal-rejilla { border-radius:22px!important; border-color:var(--cal-borde)!important; animation:alq-cal-llega 360ms cubic-bezier(.2,.8,.2,1) both; }
#view-calendario .alq-cal-cab { border-bottom-color:var(--cal-borde)!important; background:var(--cal-sup); }
#view-calendario .alq-cal-cab div { padding:10px 12px!important; font-size:12px!important; font-weight:500!important; letter-spacing:0!important; text-transform:none!important; color:var(--cal-mut)!important; }
#view-calendario .alq-cal-cab div:nth-child(n+6) { color:oklch(70% 0 0)!important; }
#view-calendario .alq-semana { border-bottom-color:var(--cal-borde)!important; min-height:108px; }
#view-calendario .alq-dia { border-right-color:oklch(95.5% 0 0)!important; padding:8px 10px!important; transition:background-color 160ms ease; }
#view-calendario .alq-dia-finde { background:color-mix(in oklab, var(--cal-tray) 70%, transparent); }
#view-calendario .alq-dia-fuera { background:var(--cal-tray)!important; }
#view-calendario .alq-dia-fuera .alq-dia-num { opacity:.4; }
#view-calendario .alq-dia-num { font-size:12.5px!important; font-weight:500; color:var(--cal-sec)!important; }
#view-calendario .alq-dia-hoy .alq-dia-num { min-width:24px!important; height:24px!important; color:var(--fc-on-primary, #fff)!important; box-shadow:0 0 0 4px oklch(0% 0 0 / .06); }
/* Barras: tinte suave, sin borde fuerte, con el punto del estado y entrada que crece. */
#view-calendario .alq-barra { height:calc(var(--alq-carril) - 4px)!important; margin:0 4px!important; padding:0 10px 0 8px!important; gap:6px; border:0!important; border-radius:9px!important; color:var(--cal-fg)!important; font-size:12px!important; font-weight:500;
  background:linear-gradient(90deg, color-mix(in oklab, var(--alq-b) 18%, var(--cal-sup)) 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) 20%, transparent) 0 3px, transparent 3px 7px)!important;
  box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--alq-b) 26%, transparent); transform-origin:left center; animation:alq-barra-crece 460ms cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i, 0) * 30ms + 120ms); transition:transform 220ms cubic-bezier(.3,1.3,.5,1), box-shadow 160ms ease; }
#view-calendario .alq-barra::before { content:""; width:6px; height:6px; flex:none; border-radius:50%; background:var(--alq-b); }
#view-calendario .alq-barra:hover { transform:translateY(-1px); box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--alq-b) 45%, transparent), 0 8px 16px -10px oklch(0% 0 0 / .35); filter:none!important; }
#view-calendario .alq-barra strong { font-weight:500; }
#view-calendario .alq-barra-txt em { color:var(--cal-sec); opacity:1!important; }
#view-calendario .alq-rechazado .alq-barra-txt { text-decoration:line-through; text-decoration-color:color-mix(in oklab, var(--alq-b) 60%, transparent); }
#view-calendario .alq-barra-sigue-izq { border-top-left-radius:2px!important; border-bottom-left-radius:2px!important; margin-left:0!important; }
#view-calendario .alq-barra-sigue-der { border-top-right-radius:2px!important; border-bottom-right-radius:2px!important; margin-right:0!important; }
@keyframes alq-barra-crece { from { opacity:0; transform:scaleX(.6); } }
/* Leyenda en píldoras discretas. */
#view-calendario .alq-leyenda { gap:6px!important; margin-top:14px!important; }
#view-calendario .alq-ley { padding:4px 10px 4px 8px; border-radius:999px; border:1px solid var(--cal-borde); background:var(--cal-sup); font-size:12px; color:var(--cal-sec); }
#view-calendario .alq-ley::before { width:7px!important; height:7px!important; border-radius:50%!important; border:0!important; background:var(--alq-b)!important; }
#view-calendario .alq-ley-margen::before { width:14px!important; height:8px!important; border-radius:3px!important; background:repeating-linear-gradient(135deg, var(--alq-verde-borde) 0 2px, transparent 2px 5px)!important; }
@media (max-width:760px) { .alq-mes-cifras { grid-template-columns:1fr 1fr; } .alq-mes-cifra:nth-child(3) { border-left:0; } .alq-mes-cifra:nth-child(n+3) { border-top:1px solid var(--cal-borde); } #view-calendario .alq-cal-titulo { font-size:24px!important; } }
@media (prefers-reduced-motion:reduce) { #view-calendario .alq-barra, .alq-mes-cifras, #view-calendario .alq-cal-rejilla { animation:none; } }
/* En pantallas estrechas los repartos rápidos se parten en dos líneas en vez de desbordar. */
@media (max-width:760px) { .alq-plazos-presets button { white-space:normal; text-align:left; line-height:1.3; } .alq-plazos, .alq-plazos-presets, .alq-pl-fila { min-width:0; max-width:100%; } }

/* ===== Móvil (hasta 760 px): lo que desbordaba o se apretaba. ===== */
@media (max-width:760px) {
  /* Plazos: una fila por plazo, con el momento a todo el ancho y el importe a la derecha. */
  .alq-pl-fila { grid-template-columns:24px 1fr auto!important; grid-template-areas:"num pct quitar" "seg seg seg" "extra extra extra" "vence vence importe"; gap:8px!important; }
  .alq-pl-fila > .alq-pl-num { grid-area:num; }
  .alq-pl-fila > .alq-pl-paso:first-of-type { grid-area:pct; justify-self:start; }
  .alq-pl-fila > .alq-pl-seg { grid-area:seg; display:flex; width:100%; }
  .alq-pl-seg-op { flex:1; text-align:center; padding:6px 4px!important; }
  .alq-pl-fila > .alq-pl-paso:not(:first-of-type), .alq-pl-fila > .alq-pl-fecha, .alq-pl-fila > .alq-pl-hueco { grid-area:extra; justify-self:start; }
  .alq-pl-fila > .alq-pl-hueco { display:none; }
  .alq-pl-fila > .alq-pl-vence { grid-area:vence; padding-left:0; }
  .alq-pl-fila > .alq-pl-importe { grid-area:importe; }
  .alq-pl-fila > .alq-pl-quitar { grid-area:quitar; }
  .alq-plazos-presets button { flex:1 1 auto; }
  /* Fechas del presupuesto: el calendario del mes ocupa todo el ancho y los días son más altos. */
  #alq-cal { padding:12px!important; }
  #alq-cal .alq-cal-cab { flex-direction:column; align-items:stretch; }
  #alq-cal .alq-cal-nav { align-self:stretch; justify-content:space-between; }
  #alq-cal .alq-cal-dia { height:44px; }
  #alq-cal .alq-cal-dia > span { width:40px; height:40px; }
  /* Líneas del presupuesto: la tarjeta de siempre, pero compacta y sin el desplegable de producto repetido. */
  #modal-presupuesto .linea-card-field:has(.pre-linea-producto-select) { display:none!important; }
  #modal-presupuesto .linea-card-fields { gap:8px 10px!important; }
  #modal-presupuesto .linea-card-fields label { font-size:10.5px!important; }
  #modal-presupuesto .alq-disp { font-size:12px!important; }
  /* Almacén: las etiquetas de filtro en una tira que se desplaza, y las fechas en una fila. */
  .alm-filtro-etiquetas { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; margin-right:0; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .alm-filtro-etiquetas::-webkit-scrollbar { display:none; }
  .alm-fechas { width:100%; flex-wrap:nowrap!important; }
  .alm-rangos { flex:1; overflow-x:auto; scrollbar-width:none; }
  .alm-rangos::-webkit-scrollbar { display:none; }
  .alm-rejilla { grid-template-columns:1fr!important; }
  .alm-foto { aspect-ratio:16 / 9!important; }
  /* Ficha del artículo: la foto más baja, las cifras en dos columnas iguales y los movimientos en una línea. */
  .alm-ficha-foto { aspect-ratio:16 / 9; }
  .alm-ficha-cifras { grid-template-columns:1fr 1fr!important; }
  .alm-ficha-unidades { grid-template-columns:1fr 1fr!important; }
  .alm-ficha-movs li { display:grid!important; grid-template-columns:auto 1fr auto; grid-template-areas:"hora tipo cant" "ud evento evento"; gap:2px 10px; align-items:center; }
  .alm-ficha-movs li small { grid-area:hora; min-width:0; }
  .alm-ficha-movs li b { grid-area:tipo; min-width:0; }
  .alm-ficha-movs li em { grid-area:cant; }
  .alm-ficha-movs li .alm-ud-enlace { grid-area:ud; justify-self:start; }
  .alm-ficha-movs li .alm-mov-evento { grid-area:evento; min-width:0; }
  .alm-ficha-movs li .alm-mov-evento:empty { display:none; }
  .alm-ud-enlace { white-space:nowrap; }
  .alm-ficha-acciones { flex-direction:column; }
  .alm-ficha-acciones > * { width:100%; justify-content:center; }
  /* Ficha de la máquina: datos en una columna, aviso de taller apilado, mapa del año que se desplaza. */
  .arc-ud-cab { flex-wrap:wrap; }
  .arc-ud-cab .arc-badge { order:3; }
  .arc-alerta { flex-wrap:wrap; }
  .arc-alerta span { flex:1 1 100%; }
  .arc-alerta .arc-btn { flex:1; }
  .arc-hm-lienzo { max-width:100%; }
  .arc-tl-fila { grid-template-columns:minmax(0,1fr); }
  .arc-tl-hora { grid-row:1; justify-self:start; min-width:0; text-align:left; margin-bottom:-2px; }
  .arc-tl-texto { grid-row:2; }
  .arc-tl-meta { overflow-wrap:anywhere; }
  .arc-ud-acciones { flex-direction:column; }
  .arc-ud-acciones .arc-btn { width:100%; }
  /* Calendario de eventos: filtros apilados y cifras en dos columnas. */
  #view-calendario .alq-cal-filtros { width:100%; margin-left:0!important; }
  #view-calendario .alq-cal-filtros select { flex:1 1 45%; min-width:0!important; }
  #view-calendario .alq-cal-titulo { font-size:26px!important; }
  #view-calendario .alq-cal-cab div { padding:8px 4px!important; font-size:11px!important; text-align:center; }
  #view-calendario .alq-dia { padding:6px 6px!important; }
  #view-calendario .alq-barra { padding:0 6px 0 6px!important; font-size:11px!important; margin:0 2px!important; }
  #view-calendario .alq-barra::before { display:none; }
}

/* El mapa del año se desplaza de lado en pantallas estrechas (los meses van dentro del lienzo que
   se desplaza, no fuera), y la barra de navegación del asistente no se sale del modal. */
.arc-hm-lienzo { overflow-x:auto; max-width:100%; }
.arc-hm-lienzo > .arc-hm-meses { width:max-content; min-width:100%; }
@media (max-width:760px) {
  #modal-presupuesto .wizard-nav { flex-wrap:wrap; gap:8px; }
  #modal-presupuesto .wizard-nav .btn { flex:1 1 auto; min-width:0; padding-left:12px!important; padding-right:12px!important; }
  #modal-presupuesto .wizard-nav #wizard-submit { flex-basis:100%; }
}

/* ===== Ficha del evento en el idioma de Arc: cabecera con el total como título y el estado como
   badge, fechas con separadores, datos en rejilla fina y listas en vez de tablas. ===== */
#modal-alq-evento, #modal-alq-cierre { --arc-fg:var(--fc-ink, oklch(15% 0 0)); --arc-sec:var(--fc-muted, oklch(46% 0 0)); --arc-mut:oklch(60% 0 0); --arc-borde:var(--fc-border, oklch(93.5% 0 0)); --arc-borde-f:oklch(82% 0 0); --arc-sup:var(--fc-card, #fff); --arc-sup-m:oklch(97.3% 0 0); --arc-ok:oklch(52% .14 150); --arc-mal:oklch(55% .19 25); --arc-aviso:oklch(62% .14 75); }
html[data-theme="dark"] :is(#modal-alq-evento, #modal-alq-cierre) { --arc-mut:oklch(64% 0 0); --arc-borde-f:oklch(40% 0 0); --arc-sup-m:oklch(26% 0 0); }
#modal-alq-evento .modal-content { max-width:820px; }
#modal-alq-evento .alq-ficha-cuerpo { gap:0!important; }
.arc-ev-cab { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding-bottom:16px; }
.arc-ev-tit p { margin:0 0 4px; font-size:13.5px; color:var(--arc-sec); }
.arc-ev-tit h2 { margin:0; font-family:var(--arc-display, inherit); font-size:30px; font-weight:400; letter-spacing:-.05em; line-height:1; color:var(--arc-fg); font-variant-numeric:tabular-nums; }
.arc-ev-fechas { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border-top:1px solid var(--arc-borde); border-bottom:1px solid var(--arc-borde); }
.arc-ev-fechas > div { display:flex; flex-direction:column; padding:14px 0; min-width:0; }
.arc-ev-fechas > div + div { padding-left:16px; border-left:1px solid var(--arc-borde); }
.arc-ev-fechas dt { font-size:12px; color:var(--arc-mut); }
.arc-ev-fechas dd { margin:4px 0 0; font-family:var(--arc-display, inherit); font-size:20px; font-weight:500; letter-spacing:-.03em; line-height:1.1; color:var(--arc-fg); white-space:nowrap; }
.arc-ev-fechas > div.evento dd { color:var(--arc-ok); }
.arc-ev-fechas small { margin-top:4px; font-size:12px; color:var(--arc-mut); }
.arc-ev-datos { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px 16px; margin:0; padding:14px 0 18px; border-bottom:1px solid var(--arc-borde); }
.arc-ev-datos > div { min-width:0; }
.arc-ev-datos > div.ancho { grid-column:1 / -1; }
.arc-ev-datos dt { font-size:12px; color:var(--arc-mut); }
.arc-ev-datos dd { margin:3px 0 0; font-size:14px; font-weight:500; color:var(--arc-fg); overflow-wrap:anywhere; }
.arc-ev-bloque { margin-top:18px; }
.arc-ev-bloque h4, #modal-alq-evento .alq-ficha-h { display:flex; align-items:center; gap:8px; margin:18px 0 8px!important; font-family:var(--arc-display, inherit); font-size:15px!important; font-weight:500!important; letter-spacing:-.02em; color:var(--arc-fg); }
.arc-ev-bloque h4 span, #modal-alq-evento .alq-ficha-h .alq-suave { padding:0 8px; border-radius:999px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); font-size:11.5px!important; font-weight:500; color:var(--arc-sec); }
.arc-ev-lista { list-style:none; margin:0; padding:0; border:1px solid var(--arc-borde); border-radius:16px; overflow:hidden; }
.arc-ev-lista li { display:grid; grid-template-columns:40px minmax(0,1fr) auto auto; align-items:center; column-gap:12px; padding:10px 14px 10px 10px; font-size:14px; color:var(--arc-fg); }
.arc-ev-lista li + li { border-top:1px solid var(--arc-borde); }
.arc-ev-q { display:inline-flex; align-items:baseline; justify-content:center; gap:1px; height:28px; padding:0 6px; border-radius:9px; background:var(--arc-sup-m); font-weight:600; font-size:13px; font-variant-numeric:tabular-nums; line-height:28px; }
.arc-ev-q small { font-size:11px; font-weight:400; color:var(--arc-mut); }
.arc-ev-txt { display:flex; flex-direction:column; min-width:0; }
.arc-ev-txt small { font-size:12px; color:var(--arc-mut); }
.arc-ev-pct { font-size:12.5px; color:var(--arc-sec); font-variant-numeric:tabular-nums; }
.arc-ev-lista em { font-style:normal; font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; }
.arc-ev-ok { color:var(--arc-ok); font-size:13px; }
/* Las secciones enganchadas (material, albarán de carga, cierre) con las mismas tablas finas. */
#modal-alq-evento .table-container { border:1px solid var(--arc-borde)!important; border-radius:16px!important; box-shadow:none!important; }
#modal-alq-evento .alq-tabla th { font-size:12px!important; font-weight:500!important; color:var(--arc-mut)!important; text-transform:none!important; letter-spacing:0!important; }
#modal-alq-evento .alq-chip { border:1px solid transparent!important; font-weight:500!important; }
#modal-alq-evento .alq-ficha-acciones { margin-top:18px; border-top-color:var(--arc-borde)!important; }
#modal-alq-evento .alq-ficha-acciones .btn { border-radius:11px!important; }
@media (max-width:760px) { .arc-ev-fechas { grid-template-columns:1fr; } .arc-ev-fechas > div + div { padding-left:0; border-left:0; border-top:1px solid var(--arc-borde); } .arc-ev-datos { grid-template-columns:1fr 1fr; } .arc-ev-lista li { grid-template-columns:36px minmax(0,1fr) auto; } .arc-ev-pct { display:none; } .arc-ev-cab { flex-wrap:wrap; } .arc-ev-tit h2 { font-size:26px; } }

/* ===== Cabecera del calendario: el periodo entre sus flechas y «Hoy» solo si hace falta. ===== */
#view-calendario .alq-cal-nav { display:none; }
#view-calendario .view-header-actions.alq-cal-vistas { margin:0; }
#view-calendario .alq-cal-barra { align-items:center!important; }
#view-calendario .alq-cal-periodo { display:flex; align-items:center; gap:4px; order:-1; flex:1 1 auto; min-width:0; }
#view-calendario .alq-cal-titulo { order:0!important; flex:0 1 auto!important; margin:0 6px; font-size:28px!important; line-height:1.15; white-space:nowrap; }
#view-calendario .alq-cal-flecha { width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:50%; background:transparent; color:var(--cal-sec); font-size:22px; line-height:1; cursor:pointer; transition:background-color 140ms ease, color 140ms ease, scale 220ms cubic-bezier(.3,1.4,.5,1); }
#view-calendario .alq-cal-flecha:hover { background:var(--cal-tray); color:var(--cal-fg); }
#view-calendario .alq-cal-flecha:active { scale:.92; }
#view-calendario .alq-cal-hoy { margin-left:8px; height:32px; padding:0 12px; border:1px solid var(--cal-borde); border-radius:999px; background:var(--cal-sup); color:var(--cal-sec); font:500 13px var(--fc-font, inherit); cursor:pointer; animation:alq-sug-abre 180ms cubic-bezier(.2,.8,.2,1) both; transition:background-color 140ms ease, color 140ms ease; }
#view-calendario .alq-cal-hoy:hover { background:var(--cal-tray); color:var(--cal-fg); }
#view-calendario .alq-cal-hoy.hidden { display:none; }
#view-calendario .alq-cal-filtros { margin-left:auto!important; }
@media (max-width:760px) {
  #view-calendario .alq-cal-periodo { flex-basis:100%; }
  #view-calendario .alq-cal-titulo { font-size:22px!important; flex:1!important; text-align:center; margin:0; }
  #view-calendario .alq-cal-hoy { margin-left:0; }
  #view-calendario .view-header { flex-wrap:wrap; }
}

/* ===== Ficha del evento en pestañas: lo esencial arriba y cada apartado se abre sin bajar.
   Control segmentado al estilo Arc; la pestaña activa, en blanco con sombra fina. ===== */
.arc-ev-pestanas { position:sticky; top:-1px; z-index:3; display:flex; gap:2px; margin:18px 0 12px; padding:3px; border-radius:14px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); overflow-x:auto; scrollbar-width:none; }
.arc-ev-pestanas::-webkit-scrollbar { display:none; }
.arc-ev-pestanas button { flex:1 0 auto; display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:34px; padding:0 14px; border:0; border-radius:11px; background:transparent; color:var(--arc-sec); font:500 13.5px var(--fc-font, inherit); white-space:nowrap; cursor:pointer; transition:background-color 160ms ease, color 160ms ease, box-shadow 160ms ease; }
.arc-ev-pestanas button:hover { color:var(--arc-fg); }
.arc-ev-pestanas button.activa { background:var(--arc-sup); color:var(--arc-fg); box-shadow:0 1px 2px oklch(0% 0 0 / .1), 0 0 0 1px var(--arc-borde); }
.arc-ev-pestanas button small { padding:0 7px; border-radius:999px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); font-size:11px; font-weight:500; color:var(--arc-mut); max-width:160px; overflow:hidden; text-overflow:ellipsis; }
.arc-ev-pestanas button.activa small { background:var(--arc-sup-m); }
.arc-ev-panel { display:none; animation:alq-cal-llega 240ms cubic-bezier(.2,.8,.2,1) both; }
.arc-ev-panel.activa { display:block; }
.arc-ev-panel > .arc-ev-bloque { margin-top:0; }
.arc-ev-panel > .arc-ev-bloque > h4 { display:none; }
.arc-ev-panel > .table-container, .arc-ev-panel > p, .arc-ev-panel > .alm-barra { margin-top:0; }
.arc-ev-panel > p:first-child { margin-top:4px; }
@media (max-width:760px) { .arc-ev-pestanas button { padding:0 10px; font-size:13px; } .arc-ev-pestanas button small { display:none; } }

/* ===== Tarjetas del almacén a la misma altura: el nombre ocupa dos líneas fijas, las etiquetas una,
   y la disponibilidad cae siempre a la misma altura; lo variable (avisos) va al final. ===== */
.alm-tarjeta-cab > div:first-child { min-width:0; }
.alm-tarjeta-cab strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; min-height:calc(2 * 1.25em); }
.alm-tarjeta-cuerpo .alm-etiquetas, .alm-tarjeta-cuerpo .alm-etiquetas-vacio { flex-wrap:nowrap; overflow:hidden; min-height:22px; max-height:22px; margin-top:-4px; }
.alm-tarjeta-cuerpo .alm-etiquetas span { white-space:nowrap; flex:0 0 auto; }
.alm-tarjeta-cuerpo .alm-chips { margin-top:auto; }

/* El anillo de «dónde están» dentro de la ficha del artículo: sin el relleno de lista del resumen. */
#modal-alm-articulo .alm-reparto .arc-res-lista { padding:0; display:block; }
#modal-alm-articulo .alm-reparto .arc-res-lista-cab { display:flex; justify-content:space-between; margin-bottom:8px; font-size:13px; color:var(--alq-suave); }
#modal-alm-articulo .alm-reparto .arc-res-lista-cab b { color:inherit; font-family:var(--arc-display, inherit); font-size:15px; font-weight:500; letter-spacing:-.02em; color:var(--arc-fg, inherit); }
#modal-alm-articulo .alm-reparto .arc-donut-cuerpo { grid-template-columns:150px minmax(0,1fr); }
#modal-alm-articulo .alm-reparto .arc-donut-anillo { width:150px; height:150px; }
#modal-alm-articulo .alm-reparto .arc-donut-anillo svg { width:150px; height:150px; }
#modal-alm-articulo .alm-reparto .arc-donut-centro b { font-size:18px; }
@media (max-width:760px) { #modal-alm-articulo .alm-reparto .arc-donut-cuerpo { grid-template-columns:1fr; } }

/* ===== Tarjetas más compactas: foto más baja, menos aire, nombre en una línea (dos si hace
   falta pero más pequeño), la disponibilidad en una sola línea con su barra y los avisos en fila. ===== */
.alm-foto { aspect-ratio:16 / 8!important; }
.alm-tarjeta-cuerpo { gap:8px!important; padding:10px 12px 12px!important; }
.alm-tarjeta-cab { gap:8px; }
.alm-tarjeta-cab strong { font-size:13.5px!important; line-height:1.2; min-height:calc(2 * 1.2em); }
.alm-tarjeta-cab small { font-size:11px; }
.alm-cifra span { font-size:22px!important; }
.alm-tarjeta-cuerpo .alm-etiquetas, .alm-tarjeta-cuerpo .alm-etiquetas-vacio { min-height:20px; max-height:20px; margin-top:-2px; }
.alm-tarjeta-cuerpo .alm-etiquetas span { padding:0 7px; font-size:10.5px; }
.alm-tarjeta .alm-disp { gap:5px; padding:7px 10px; border-radius:11px; }
.alm-tarjeta .alm-disp-txt { font-size:12px; }
.alm-tarjeta .alm-disp-txt b { font-size:13.5px; }
.alm-tarjeta .alm-disp-barra { height:6px; }
.alm-tarjeta .alm-disp-eventos { display:none; }
.alm-tarjeta-cuerpo .alm-chips { gap:4px; }
.alm-tarjeta .alm-chip { padding:1px 7px; font-size:10.5px; }
.alm-rejilla { grid-template-columns:repeat(auto-fill, minmax(180px, 1fr))!important; gap:10px!important; }
@media (max-width:760px) { .alm-foto { aspect-ratio:16 / 9!important; } .alm-rejilla { grid-template-columns:1fr 1fr!important; } }

/* ===== Tarjeta = casi solo la foto: debajo, una tira de dos líneas (nombre + cifra; libres + barra).
   Las etiquetas y los consumibles se ven en la ficha, no en la rejilla. ===== */
.alm-foto { aspect-ratio:16 / 9!important; }
.alm-tarjeta-cuerpo { gap:6px!important; padding:9px 12px 10px!important; }
.alm-tarjeta-cab { align-items:center!important; }
.alm-tarjeta-cab strong { display:block!important; -webkit-line-clamp:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-height:0!important; font-size:13.5px!important; }
.alm-tarjeta-cab > div:first-child small { display:none; }
.alm-cifra span { font-size:19px!important; }
.alm-cifra small { font-size:11px; }
.alm-tarjeta-cuerpo .alm-etiquetas, .alm-tarjeta-cuerpo .alm-etiquetas-vacio { display:none!important; }
.alm-tarjeta .alm-disp { flex-direction:row; align-items:center; gap:10px; padding:0; border:0; background:transparent; border-radius:0; }
.alm-tarjeta .alm-disp-txt { flex:none; font-size:12px; white-space:nowrap; }
.alm-tarjeta .alm-disp-txt b { font-size:13px; }
.alm-tarjeta .alm-disp-barra { flex:1; height:5px; }
.alm-tarjeta-cuerpo .alm-chips { margin-top:0; }
.alm-tarjeta .alm-chip { padding:0 6px; font-size:10px; line-height:16px; }
.alm-tarjeta .alm-chips { display:none!important; }
/* Sin estirar: cada tarjeta mide lo que tiene (la fila de avisos solo sale en la que los tiene). */
.alm-rejilla { align-items:start; }

/* ===== Pie del calendario: el aviso de «sin eventos» (estado vacío de Arc) y la leyenda, enmarcados ===== */
#view-calendario .alq-cal-pie { margin-top:12px; border:1px solid var(--alq-borde); border-radius:22px; background:var(--fc-card, #fff); overflow:hidden; }
#view-calendario .alq-cal-vacio { display:flex; flex-direction:column; align-items:center; gap:10px; margin:0; padding:26px 18px 22px; border-bottom:1px solid var(--alq-borde); font-size:13.5px; color:var(--alq-suave); background:var(--arc-tray, oklch(97.8% 0 0)); }
#view-calendario .alq-cal-vacio::before { content:""; width:44px; height:44px; border-radius:14px; background:var(--fc-card, #fff) center / 20px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23777' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E"); border:1px solid var(--alq-borde); }
#view-calendario .alq-leyenda { margin:0!important; padding:10px 14px; gap:6px!important; }

/* ===== Eventos: la lista por fechas, con el estado y el personal de cada uno (PSR Effects). ===== */
#view-eventos { --arc-fg:var(--fc-ink, oklch(15% 0 0)); --arc-sec:var(--fc-muted, oklch(46% 0 0)); --arc-mut:oklch(60% 0 0); --arc-borde:var(--fc-border, oklch(93.5% 0 0)); --arc-sup:var(--fc-card, #fff); --arc-sup-m:oklch(97.3% 0 0); --arc-ok:oklch(52% .14 150); }
html[data-theme="dark"] #view-eventos { --arc-mut:oklch(64% 0 0); --arc-sup-m:oklch(26% 0 0); }
.alq-ev-barra { display:flex; align-items:center; gap:12px; margin:4px 0 16px; }
.alq-ev-buscar { flex:1 1 280px; max-width:420px; height:38px; padding:0 14px; border:1px solid var(--arc-borde); border-radius:999px; background:var(--arc-sup); color:var(--arc-fg); font:inherit; font-size:14px; }
.alq-ev-buscar:focus { outline:none; border-color:var(--arc-mut); }
.alq-ev-cuenta { font-size:13px; color:var(--arc-mut); }
.alq-ev-rotulo { display:flex; align-items:center; gap:8px; margin:18px 0 8px; font-family:var(--arc-display, inherit); font-size:15px; font-weight:500; letter-spacing:-.01em; color:var(--arc-fg); }
.alq-ev-rotulo:first-child { margin-top:0; }
.alq-ev-rotulo span { padding:0 8px; border-radius:999px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); font-size:11.5px; font-weight:500; color:var(--arc-sec); }
.alq-ev-tarjetas { list-style:none; margin:0; padding:0; border:1px solid var(--arc-borde); border-radius:16px; background:var(--arc-sup); overflow:hidden; }
.alq-ev-tarjeta { display:grid; grid-template-columns:56px minmax(0,1fr) auto; align-items:center; column-gap:14px; padding:12px 16px 12px 12px; cursor:pointer; transition:background .15s; }
.alq-ev-tarjeta + .alq-ev-tarjeta { border-top:1px solid var(--arc-borde); }
.alq-ev-tarjeta:hover, .alq-ev-tarjeta:focus-visible { background:var(--arc-sup-m); outline:none; }
.alq-ev-fecha { display:flex; flex-direction:column; align-items:center; justify-content:center; height:52px; border-radius:12px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); font-variant-numeric:tabular-nums; }
.alq-ev-fecha b { font-family:var(--arc-display, inherit); font-size:20px; font-weight:500; letter-spacing:-.03em; line-height:1; color:var(--arc-fg); }
.alq-ev-fecha small { margin-top:3px; font-size:11px; color:var(--arc-mut); text-transform:lowercase; }
.alq-ev-hoy .alq-ev-fecha { border-color:var(--arc-ok); color:var(--arc-ok); }
.alq-ev-hoy .alq-ev-fecha b { color:var(--arc-ok); }
.alq-ev-texto { display:flex; flex-direction:column; min-width:0; gap:2px; }
.alq-ev-texto strong { font-size:14.5px; font-weight:600; color:var(--arc-fg); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.alq-ev-texto span { font-size:13px; color:var(--arc-sec); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.alq-ev-texto small { font-size:12px; color:var(--arc-mut); }
.alq-ev-lado { display:flex; align-items:center; gap:14px; }
.alq-ev-lado em { font-style:normal; font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--arc-fg); }
.alq-ev-personas { display:inline-flex; align-items:center; }
.alq-ev-personas .alq-ev-av { width:28px; height:28px; font-size:11px; border:2px solid var(--arc-sup); margin-left:-8px; }
.alq-ev-personas .alq-ev-av:first-child { margin-left:0; }
.alq-ev-personas .alq-ev-mas { background:var(--arc-sup-m); color:var(--arc-sec); }
.alq-ev-sin { font-size:12px; color:var(--arc-mut); white-space:nowrap; }
@media (max-width:760px) {
  #view-eventos .view-header { flex-wrap:wrap; }
  .alq-ev-tarjeta { grid-template-columns:48px minmax(0,1fr); row-gap:8px; }
  .alq-ev-lado { grid-column:1 / -1; justify-content:space-between; flex-wrap:wrap; gap:8px 12px; }
  .alq-ev-buscar { max-width:none; }
}

/* La pestaña «Personal» de la ficha: los asignados con su foto y su papel, y el alta debajo. */
#modal-alq-evento .alq-ev-plantilla li { grid-template-columns:32px minmax(0,1fr) auto minmax(120px, 200px) auto; }
#modal-alq-evento .alq-ev-plantilla li.alq-ev-baja { opacity:.7; }
#modal-alq-evento .alq-ev-rol { height:32px; padding:0 10px; border:1px solid var(--arc-borde); border-radius:9px; background:transparent; color:var(--arc-fg); font:inherit; font-size:13px; min-width:0; }
#modal-alq-evento .alq-ev-rol:focus { outline:none; border-color:var(--arc-borde-f); background:var(--arc-sup); }
#modal-alq-evento .alq-ev-quitar { width:28px; height:28px; border-radius:50%; color:var(--arc-mut); font-size:18px; line-height:1; }
#modal-alq-evento .alq-ev-quitar:hover { background:var(--arc-sup-m); color:var(--arc-mal); }
#modal-alq-evento .alq-ev-asignar { margin-top:14px; }
/* Las caras: una tarjeta por persona, se marca al tocarla con el anillo y el tic de Arc. */
#modal-alq-evento .alq-ev-caras { display:grid; grid-template-columns:repeat(auto-fill, minmax(96px, 1fr)); gap:8px; }
#modal-alq-evento .alq-ev-cara { position:relative; display:flex; flex-direction:column; align-items:center; gap:3px; padding:12px 6px 10px; border:1px solid var(--arc-borde); border-radius:14px; background:var(--arc-sup); cursor:pointer; text-align:center; transition:background .15s, border-color .15s, transform .15s; user-select:none; }
#modal-alq-evento .alq-ev-cara:hover { background:var(--arc-sup-m); }
#modal-alq-evento .alq-ev-cara:active { transform:scale(.97); }
#modal-alq-evento .alq-ev-cara input { position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
#modal-alq-evento .alq-ev-cara-foto { position:relative; display:grid; place-items:center; width:56px; height:56px; border-radius:50%; padding:3px; border:2px solid transparent; transition:border-color .15s; }
#modal-alq-evento .alq-ev-cara-foto .rh-task-avatar { width:46px; height:46px; font-size:15px; }
#modal-alq-evento .alq-ev-cara-foto i { position:absolute; right:-2px; bottom:-2px; width:20px; height:20px; border-radius:50%; background:var(--arc-fg); border:2px solid var(--arc-sup); opacity:0; transform:scale(.6); transition:opacity .15s, transform .15s; }
#modal-alq-evento .alq-ev-cara-foto i::after { content:""; position:absolute; left:5px; top:3px; width:5px; height:9px; border:solid var(--arc-sup); border-width:0 2px 2px 0; transform:rotate(45deg); }
#modal-alq-evento .alq-ev-cara strong { font-size:13px; font-weight:600; color:var(--arc-fg); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#modal-alq-evento .alq-ev-cara small { font-size:11px; color:var(--arc-mut); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#modal-alq-evento .alq-ev-cara:has(input:checked) { border-color:var(--arc-fg); background:var(--arc-sup-m); }
#modal-alq-evento .alq-ev-cara:has(input:checked) .alq-ev-cara-foto { border-color:var(--arc-fg); }
#modal-alq-evento .alq-ev-cara:has(input:checked) .alq-ev-cara-foto i { opacity:1; transform:scale(1); }
#modal-alq-evento .alq-ev-cara:has(input:focus-visible) { outline:2px solid var(--arc-fg); outline-offset:2px; }
#modal-alq-evento .alq-ev-asignar-pie { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:10px; }
#modal-alq-evento .alq-ev-asignar-pie input { height:38px; min-width:0; border:1px solid var(--arc-borde); border-radius:11px; padding:0 12px; background:var(--arc-sup); color:var(--arc-fg); font:inherit; font-size:14px; }
#modal-alq-evento .alq-ev-asignar-pie .btn[disabled] { opacity:.45; cursor:default; }
@media (max-width:760px) {
  #modal-alq-evento .alq-ev-plantilla li { grid-template-columns:32px minmax(0,1fr) auto; }
  #modal-alq-evento .alq-ev-plantilla .alq-ev-fichajes { grid-column:2 / -1; }
  #modal-alq-evento .alq-ev-rol { grid-column:2 / -1; }
  #modal-alq-evento .alq-ev-caras { grid-template-columns:repeat(3, minmax(0,1fr)); }
}

/* ===== Planificación: pestañas Semana / Calendario / Eventos. Las dos antiguas son paneles aquí. ===== */
#view-planificacion { --arc-fg:var(--fc-ink, oklch(15% 0 0)); --arc-sec:var(--fc-muted, oklch(46% 0 0)); --arc-mut:oklch(60% 0 0); --arc-borde:var(--fc-border, oklch(93.5% 0 0)); --arc-borde-f:oklch(82% 0 0); --arc-sup:var(--fc-card, #fff); --arc-sup-m:oklch(97.3% 0 0); --arc-ok:oklch(52% .14 150); --arc-mal:oklch(55% .19 25); }
html[data-theme="dark"] #view-planificacion { --arc-mut:oklch(64% 0 0); --arc-borde-f:oklch(40% 0 0); --arc-sup-m:oklch(26% 0 0); }
#view-planificacion .plan-panel > .view-header > div:first-child { display:none; }
#view-planificacion .plan-panel > .view-header { justify-content:flex-end; margin-top:-6px; }
#view-planificacion .plan-panel.hidden { display:none; }
#view-planificacion .view-header-actions.plan-pestanas { margin:0; }

/* La barra de la semana: el periodo entre flechas, «Hoy» solo fuera de la actual, y la ayuda. */
.plan-barra { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin:4px 0 14px; }
.plan-periodo { display:flex; align-items:center; gap:4px; }
.plan-titulo { margin:0 6px; font-family:var(--arc-display, inherit); font-size:26px; font-weight:500; letter-spacing:-.03em; line-height:1.15; white-space:nowrap; color:var(--arc-fg); }
.plan-flecha { width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:50%; background:transparent; color:var(--arc-sec); font-size:22px; line-height:1; cursor:pointer; transition:background .15s, color .15s; }
.plan-flecha:hover { background:var(--arc-sup-m); color:var(--arc-fg); }
.plan-hoy { margin-left:8px; height:32px; padding:0 12px; border:1px solid var(--arc-borde); border-radius:999px; background:var(--arc-sup); color:var(--arc-sec); font:500 13px inherit; cursor:pointer; }
.plan-hoy:hover { background:var(--arc-sup-m); color:var(--arc-fg); }
.plan-hoy.hidden { display:none; }
.plan-ayuda { margin-left:auto; font-size:12.5px; color:var(--arc-mut); }

/* La plantilla y los vehículos: dos tarjetas al 50 % encima del tablero; se arrastran o se tocan. */
.plan-cuerpo { display:flex; flex-direction:column; gap:14px; }
.plan-recurso { display:flex; align-items:center; gap:14px; min-width:0; flex:1 1 50%; }
.plan-vehiculos { padding-left:16px; border-left:1px solid var(--arc-borde); border-radius:0; transition:background .15s; }
.plan-vehiculos.plan-sobre { background:color-mix(in oklab, var(--arc-mal) 6%, var(--arc-sup)); }
.plan-vehiculo { position:relative; flex:none; display:flex; flex-direction:column; align-items:center; gap:2px; width:84px; padding:6px 4px; border-radius:14px; cursor:grab; user-select:none; transition:background .15s, transform .15s, opacity .15s; }
.plan-vehiculo:hover { background:var(--arc-sup-m); }
.plan-vehiculo:active { cursor:grabbing; transform:scale(.97); }
.plan-vehiculo.plan-elegida { background:var(--arc-sup-m); }
.plan-vehiculo.plan-elegida .plan-persona-foto { border-color:var(--arc-fg); }
.plan-vehiculo.plan-arrastrando { opacity:.4; }
.plan-vehiculo strong { max-width:100%; font-size:12.5px; font-weight:500; color:var(--arc-fg); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.plan-vehiculo small { max-width:100%; font-family:var(--arc-display, inherit); font-size:11px; letter-spacing:.06em; color:var(--arc-mut); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.plan-vehiculo-icono { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--arc-sup-m); color:var(--arc-fg); }
.plan-vehiculo-icono svg { width:18px; height:18px; }
.plan-vehiculo-icono.grande { width:40px; height:40px; border:1px solid var(--arc-borde); }
.plan-vehiculo-icono.grande svg { width:24px; height:24px; }
.plan-vehiculo-baja { position:absolute; top:2px; right:2px; width:18px; height:18px; display:grid; place-items:center; border:0; border-radius:50%; background:var(--arc-sup-m); color:var(--arc-mut); font-size:13px; line-height:1; cursor:pointer; opacity:0; transition:opacity .15s; }
.plan-vehiculo:hover .plan-vehiculo-baja, .plan-vehiculo:focus-within .plan-vehiculo-baja { opacity:1; }
.plan-vehiculo-baja:hover { color:var(--arc-mal); }
.plan-vehiculo-nuevo { flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; width:64px; padding:6px 4px; border:0; border-radius:14px; background:transparent; color:var(--arc-mut); font:inherit; cursor:pointer; }
.plan-vehiculo-nuevo span { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; border:1px dashed var(--arc-borde-f); font-size:20px; line-height:1; }
.plan-vehiculo-nuevo small { font-size:11.5px; }
.plan-vehiculo-nuevo:hover { background:var(--arc-sup-m); color:var(--arc-fg); }
/* El vehículo puesto en un evento: la pastilla con el vector y la matrícula. */
.plan-vehiculo-chip { position:relative; display:inline-flex; align-items:center; gap:5px; height:28px; padding:0 9px 0 3px; border-radius:999px; background:var(--arc-sup); border:1px solid var(--arc-borde); cursor:grab; }
.plan-vehiculo-chip .plan-vehiculo-icono { width:22px; height:22px; }
.plan-vehiculo-chip .plan-vehiculo-icono svg { width:14px; height:14px; }
.plan-vehiculo-chip b { font-family:var(--arc-display, inherit); font-size:11.5px; font-weight:500; letter-spacing:.05em; color:var(--arc-fg); white-space:nowrap; }
.plan-vehiculo-chip.plan-arrastrando { opacity:.4; }
.plan-vehiculo-chip:hover .plan-cara-quitar, .plan-vehiculo-chip:focus-within .plan-cara-quitar { opacity:1; transform:scale(1); }
.plan-plantilla { display:flex; align-items:center; gap:14px; padding:10px 16px; border-radius:16px; border:1px solid var(--arc-borde); background:var(--arc-sup); transition:border-color .15s, background .15s; }
.plan-plantilla.plan-sobre { border-style:dashed; border-color:var(--arc-mal); background:color-mix(in oklab, var(--arc-mal) 5%, var(--arc-sup)); }
.plan-rotulo { flex:none; font-size:12px; color:var(--arc-mut); }
.plan-personas { display:flex; gap:4px; overflow-x:auto; padding:2px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.plan-personas::-webkit-scrollbar { display:none; }
.plan-persona { flex:none; display:flex; flex-direction:column; align-items:center; gap:4px; width:66px; padding:6px 4px; border-radius:14px; cursor:grab; user-select:none; transition:background .15s, transform .15s, opacity .15s; }
.plan-persona:hover { background:var(--arc-sup-m); }
.plan-persona:active { cursor:grabbing; transform:scale(.97); }
.plan-persona.plan-arrastrando { opacity:.4; }
.plan-persona-foto { position:relative; display:grid; place-items:center; width:50px; height:50px; border-radius:50%; border:1.5px solid var(--arc-borde-f, oklch(82% 0 0)); padding:2px; background:var(--arc-sup); transition:border-color .15s, border-width .15s; }
.plan-persona:hover .plan-persona-foto { border-color:var(--arc-sec); }
.plan-persona-foto .rh-task-avatar { width:40px; height:40px; font-size:13px; }
.plan-persona.plan-elegida .plan-persona-foto { border-color:var(--arc-fg); border-width:2px; }
.plan-persona.plan-elegida { background:var(--arc-sup-m); }
.plan-persona strong { max-width:100%; font-size:12.5px; font-weight:500; color:var(--arc-fg); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.plan-carga { position:absolute; right:-2px; bottom:-2px; display:grid; place-items:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--arc-fg); color:var(--arc-sup); border:2px solid var(--arc-sup); font-size:10px; font-weight:600; }
.plan-plantilla-pie { margin-left:auto; font-size:12px; color:var(--arc-mal); display:none; white-space:nowrap; }
.plan-en-arrastre .plan-plantilla-pie { display:block; }

/* El tablero de la semana: siete columnas separadas por líneas finas, los eventos como barras. */
.plan-tablero { position:relative; border:1px solid var(--arc-borde); border-radius:16px; background:var(--arc-sup); }
.plan-tablero > .plan-dias { border-radius:16px 16px 0 0; overflow:hidden; }
.plan-tablero > .plan-almacen { border-radius:0 0 16px 16px; overflow:hidden; }
.plan-dias { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); border-bottom:1px solid var(--arc-borde); }
.plan-dia { display:flex; align-items:baseline; gap:6px; padding:12px 14px; font-variant-numeric:tabular-nums; }
.plan-dia + .plan-dia { border-left:1px solid var(--arc-borde); }
.plan-dia small { font-size:12px; color:var(--arc-mut); text-transform:lowercase; }
.plan-dia b { font-family:var(--arc-display, inherit); font-size:18px; font-weight:500; letter-spacing:-.03em; color:var(--arc-fg); }
.plan-dia-hoy b { display:inline-grid; place-items:center; min-width:28px; height:28px; padding:0 6px; border-radius:999px; background:var(--arc-fg); color:var(--arc-sup); font-size:15px; }
.plan-filas { position:relative; display:flex; flex-direction:column; gap:6px; min-height:300px; padding:10px 0; }
.plan-columnas { position:absolute; inset:0; display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); pointer-events:none; }
.plan-columnas i { border-left:1px solid var(--arc-borde); }
.plan-columnas i:first-child { border-left:0; }
.plan-columnas i.plan-col-hoy { background:color-mix(in oklab, var(--arc-fg) 3%, transparent); }
.plan-fila { position:relative; display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); }
/* Una pastilla con fondo encima de las columnas, para que sus rayas no crucen el texto */
.plan-vacio { position:relative; z-index:1; align-self:center; width:max-content; max-width:calc(100% - 32px); margin:auto; padding:10px 18px; font-size:13.5px; color:var(--arc-mut); text-align:center;
  background:var(--fc-card, #fff); border:1px solid var(--fc-border, oklch(92% 0 0)); border-radius:999px; box-shadow:var(--arc-resting, 0 1px 2px oklch(0% 0 0 / .04)); }
.plan-evento { position:relative; min-width:0; margin:0 6px; padding:9px 12px; border-radius:12px; background:color-mix(in oklab, var(--alq-c, var(--arc-sup-m)) 22%, var(--arc-sup)); border:1px solid color-mix(in oklab, var(--alq-t, var(--arc-sec)) 35%, transparent); transition:border-color .15s, box-shadow .15s, background .15s; }
.plan-evento { cursor:pointer; }
/* Finalizado: el azul se ve más que el tinte de los demás estados; es lo que pide atención (cerrarlo) */
.plan-evento.alq-finalizado { background:color-mix(in oklab, var(--alq-c) 70%, var(--arc-sup)); border-color:color-mix(in oklab, var(--alq-b) 55%, transparent); }
.plan-evento.plan-sigue { margin-left:0; border-top-left-radius:0; border-bottom-left-radius:0; }
.plan-evento.plan-continua { margin-right:0; border-top-right-radius:0; border-bottom-right-radius:0; }
.plan-evento.plan-sobre, .plan-con-elegida .plan-evento:hover { border-color:var(--arc-fg); box-shadow:0 0 0 3px color-mix(in oklab, var(--arc-fg) 10%, transparent); cursor:copy; }
.plan-evento header { display:flex; align-items:baseline; justify-content:space-between; gap:8px; min-width:0; }
.plan-evento-nombre { padding:0; border:0; background:none; font:inherit; font-size:13.5px; font-weight:600; color:var(--arc-fg); text-align:left; cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.plan-evento-nombre:hover { text-decoration:underline; }
.plan-evento-estado { flex:none; font-size:11.5px; color:var(--alq-t, var(--arc-sec)); }
.plan-evento p { margin:1px 0 0; font-size:12px; color:var(--arc-sec); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.plan-evento-caras { display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-top:7px; min-height:28px; }
.plan-evento-nadie { font-size:11.5px; color:var(--arc-mut); }
.plan-cara { position:relative; display:inline-flex; cursor:grab; }
.plan-cara .rh-task-avatar { width:28px; height:28px; font-size:10.5px; border:2px solid var(--arc-sup); }
.plan-cara + .plan-cara { margin-left:-8px; }
.plan-cara:hover { z-index:1; }
.plan-cara.plan-arrastrando { opacity:.4; }
.plan-cara-quitar { position:absolute; top:-6px; right:-6px; width:16px; height:16px; display:grid; place-items:center; border:0; border-radius:50%; background:var(--arc-fg); color:var(--arc-sup); font-size:12px; line-height:1; cursor:pointer; opacity:0; transform:scale(.7); transition:opacity .15s, transform .15s; }
.plan-cara:hover .plan-cara-quitar, .plan-cara:focus-within .plan-cara-quitar { opacity:1; transform:scale(1); }
/* Las caras se montan unas sobre otras: la × de una quedaba debajo de la cara siguiente y, en
   pantalla táctil (donde se ve siempre), el toque caía en la vecina. Por encima cuando se ve, y
   sin recoger el puntero mientras está oculta para no quitar a nadie por error. */
.plan-cara-quitar { z-index:2; pointer-events:none; }
.plan-cara:hover .plan-cara-quitar, .plan-cara:focus-within .plan-cara-quitar, .plan-vehiculo-chip:hover .plan-cara-quitar, .plan-vehiculo-chip:focus-within .plan-cara-quitar { pointer-events:auto; }
/* Las asas para alargar o acortar el evento por días: una franja fina en cada borde. */
.plan-asa { position:absolute; top:6px; bottom:6px; width:10px; cursor:ew-resize; touch-action:none; z-index:1; }
.plan-asa::after { content:""; position:absolute; top:50%; left:3px; width:3px; height:22px; margin-top:-11px; border-radius:3px; background:var(--alq-t, var(--arc-sec)); opacity:0; transition:opacity .15s; }
.plan-asa-izq { left:-2px; } .plan-asa-der { right:-2px; }
.plan-evento:hover .plan-asa::after, .plan-evento.plan-estirando .plan-asa::after { opacity:.55; }
.plan-evento.plan-estirando { box-shadow:0 0 0 2px var(--alq-t, var(--arc-sec)); transition:none; }
.plan-evento.plan-estirando * { pointer-events:none; }

/* La franja del almacén al pie: una celda por día donde se suelta a quien se queda. */
.plan-almacen { position:relative; border-top:1px solid var(--arc-borde); background:var(--arc-sup-m); }
.plan-almacen-rotulo { position:absolute; left:14px; top:8px; font-size:11px; font-weight:500; letter-spacing:.04em; text-transform:uppercase; color:var(--arc-mut); pointer-events:none; }
.plan-almacen-dias { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); }
.plan-almacen-dia { display:flex; flex-wrap:wrap; align-items:center; gap:4px; min-height:64px; padding:26px 10px 10px; border:1px dashed transparent; transition:border-color .15s, background .15s; }
.plan-almacen-dia + .plan-almacen-dia { border-left:1px solid var(--arc-borde); }
.plan-almacen-dia.plan-col-hoy { background:color-mix(in oklab, var(--arc-fg) 3%, var(--arc-sup-m)); }
.plan-almacen-dia.plan-sobre, .plan-con-elegida .plan-almacen-dia:hover { border-color:var(--arc-fg); background:var(--arc-sup); cursor:copy; }
.plan-almacen-hueco { width:28px; height:28px; border-radius:50%; border:1px dashed var(--arc-borde-f); opacity:.7; }
.plan-almacen-dia .plan-cara .rh-task-avatar { border-color:var(--arc-sup-m); }
/* El selector de días del almacén: una tarjeta flotante sobre la celda donde se ha soltado. */
.plan-dias-sel { position:absolute; z-index:5; width:min(360px, calc(100% - 16px)); padding:12px; border-radius:16px; background:var(--arc-sup); border:1px solid var(--arc-borde); box-shadow:0 12px 32px -12px rgba(0,0,0,.25); opacity:0; transform:translateY(6px) scale(.98); transition:opacity .16s, transform .16s; }
.plan-dias-sel.abierto { opacity:1; transform:none; }
.plan-dias-sel-cab { display:flex; align-items:center; gap:8px; margin-bottom:10px; font-size:13.5px; color:var(--arc-sec); }
.plan-dias-sel-cab .rh-task-avatar { width:28px; height:28px; font-size:11px; }
.plan-dias-sel-cab b { color:var(--arc-fg); font-weight:600; }
.plan-dias-sel-dias { display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; }
.plan-dias-sel-dias label { position:relative; display:flex; flex-direction:column; align-items:center; gap:1px; padding:6px 0; border-radius:10px; border:1px solid var(--arc-borde); cursor:pointer; user-select:none; transition:background .12s, border-color .12s; }
.plan-dias-sel-dias label input { position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.plan-dias-sel-dias label span { font-size:10.5px; color:var(--arc-mut); text-transform:lowercase; }
.plan-dias-sel-dias label b { font-size:14px; font-weight:500; color:var(--arc-fg); font-variant-numeric:tabular-nums; }
.plan-dias-sel-dias label:has(input:checked) { background:var(--arc-fg); border-color:var(--arc-fg); }
.plan-dias-sel-dias label:has(input:checked) span, .plan-dias-sel-dias label:has(input:checked) b { color:var(--arc-sup); }
.plan-dias-sel-dias label.ya { opacity:.45; cursor:default; }
.plan-dias-sel-atajos { display:flex; gap:6px; margin-top:8px; }
.plan-dias-sel-atajos button { height:28px; padding:0 10px; border-radius:999px; border:1px solid var(--arc-borde); background:var(--arc-sup); color:var(--arc-sec); font:500 12px inherit; cursor:pointer; }
.plan-dias-sel-atajos button:hover { background:var(--arc-sup-m); color:var(--arc-fg); }
.plan-dias-sel-pie { display:flex; justify-content:flex-end; gap:6px; margin-top:10px; }
.plan-dias-sel-pie .btn { height:32px; padding:0 12px; border-radius:10px!important; font-size:13px; }
@media (max-width:900px) {
  .plan-almacen { margin-top:8px; border:1px solid var(--arc-borde); border-radius:16px; overflow:hidden; }
  .plan-almacen-rotulo { position:static; padding:10px 14px 0; }
  .plan-almacen-dias { grid-template-columns:1fr; }
  .plan-almacen-dia { min-height:44px; padding:8px 14px; }
  .plan-almacen-dia + .plan-almacen-dia { border-left:0; border-top:1px solid var(--arc-borde); }
  .plan-almacen-dia::before { content:attr(data-dia); flex:0 0 64px; font-size:12.5px; color:var(--arc-sec); }
  .plan-dias, .plan-columnas { display:none; }
  .plan-tablero { border:0; background:transparent; overflow:visible; }
  .plan-filas { min-height:0; padding:0; gap:8px; }
  .plan-fila { grid-template-columns:1fr; }
  .plan-evento { grid-column:1 / -1!important; margin:0; }
  .plan-evento::after { content:attr(data-fechas); display:block; margin-top:2px; font-size:11.5px; color:var(--arc-mut); }
  .plan-ayuda { margin-left:0; }
  .plan-cara-quitar { opacity:1; transform:scale(1); pointer-events:auto; }
  /* En la lista no hay columnas de días: el asa no se ve estirar y un roce con el dedo en el
     borde de la tarjeta cambiaba las fechas a ciegas. Las fechas se cambian en la ficha. */
  .plan-asa { display:none; }
  .plan-plantilla { flex-direction:column; align-items:stretch; padding:8px 10px; gap:8px; }
  .plan-vehiculos { padding-left:0; border-left:0; padding-top:8px; border-top:1px solid var(--arc-borde); }
}

/* ===== Planificación compacta: que la semana entera quepa en pantalla sin bajar. ===== */
#view-planificacion > .view-header { margin-bottom:6px; }
#view-planificacion > .view-header .view-subtitle { display:none; }
#view-planificacion .plan-barra { margin:0 0 10px; }
#view-planificacion .plan-titulo { font-size:22px; }
#view-planificacion .plan-flecha { width:30px; height:30px; font-size:20px; }
#view-planificacion .plan-hoy { height:28px; padding:0 10px; font-size:12.5px; }
#view-planificacion .plan-cuerpo { gap:10px; }
#view-planificacion .plan-plantilla { padding:6px 14px; gap:10px; }
#view-planificacion .plan-persona { width:58px; padding:4px 2px; gap:2px; }
#view-planificacion .plan-persona-foto { width:42px; height:42px; padding:2px; }
#view-planificacion .plan-persona-foto .rh-task-avatar { width:34px; height:34px; font-size:12px; }
#view-planificacion .plan-persona strong, #view-planificacion .plan-vehiculo strong { font-size:11.5px; }
#view-planificacion .plan-vehiculo { width:72px; padding:4px 2px; }
#view-planificacion .plan-vehiculo-icono.grande { width:34px; height:34px; }
#view-planificacion .plan-vehiculo-icono.grande svg { width:20px; height:20px; }
#view-planificacion .plan-vehiculo small { font-size:10px; }
#view-planificacion .plan-vehiculo-nuevo { width:54px; padding:4px 2px; }
#view-planificacion .plan-vehiculo-nuevo span { width:34px; height:34px; font-size:18px; }
#view-planificacion .plan-vehiculo-nuevo small { font-size:10.5px; }
#view-planificacion .plan-carga { min-width:16px; height:16px; font-size:9.5px; padding:0 4px; }
#view-planificacion .plan-dia { padding:7px 12px; }
#view-planificacion .plan-dia b { font-size:16px; }
#view-planificacion .plan-dia-hoy b { min-width:24px; height:24px; font-size:13px; }
#view-planificacion .plan-filas { min-height:170px; padding:6px 0; gap:4px; }
#view-planificacion .plan-evento { padding:7px 10px; border-radius:10px; }
#view-planificacion .plan-evento-nombre { font-size:13px; }
#view-planificacion .plan-evento p { font-size:11.5px; }
#view-planificacion .plan-evento-caras { margin-top:5px; min-height:24px; gap:3px; }
#view-planificacion .plan-cara .rh-task-avatar { width:24px; height:24px; font-size:9.5px; }
#view-planificacion .plan-vehiculo-chip { height:24px; padding:0 8px 0 2px; }
#view-planificacion .plan-vehiculo-chip .plan-vehiculo-icono { width:20px; height:20px; }
#view-planificacion .plan-vehiculo-chip b { font-size:10.5px; }
#view-planificacion .plan-almacen-dia { min-height:50px; padding:20px 8px 7px; gap:3px; }
#view-planificacion .plan-almacen-rotulo { top:6px; left:12px; font-size:10px; }
#view-planificacion .plan-almacen-hueco { width:24px; height:24px; }
#view-planificacion .plan-ayuda { font-size:12px; }

/* El fondo pastel en movimiento de Inicio y de los grupos, detrás de la plantilla y los vehículos. */
html[data-ui="erp"] #view-planificacion .plan-plantilla { position:relative; isolation:isolate; overflow:hidden; }
html[data-ui="erp"] #view-planificacion .plan-plantilla::before { content:""; position:absolute; inset:-35%; z-index:-1; pointer-events:none; filter:blur(60px); will-change:transform; opacity:.85;
  background:radial-gradient(ellipse 36% 30% at 18% 22%, oklch(86% .13 300), transparent 70%), radial-gradient(ellipse 32% 28% at 82% 30%, oklch(90% .12 45), transparent 70%), radial-gradient(ellipse 38% 28% at 55% 85%, oklch(90% .09 230), transparent 70%), radial-gradient(ellipse 26% 24% at 30% 80%, oklch(93% .1 80), transparent 70%);
  animation:arc-deriva 22s ease-in-out -8s infinite alternate; }
html[data-ui="erp"][data-theme="dark"] #view-planificacion .plan-plantilla::before { opacity:.35; background:radial-gradient(ellipse 38% 32% at 18% 22%, oklch(40% .08 300 / .8), transparent 70%), radial-gradient(ellipse 34% 30% at 82% 30%, oklch(38% .07 45 / .8), transparent 70%), radial-gradient(ellipse 40% 30% at 55% 85%, oklch(36% .06 230 / .8), transparent 70%); }
html[data-ui="erp"] #view-planificacion .plan-vehiculos { border-left-color:color-mix(in oklab, var(--arc-borde) 60%, transparent); }
@media (prefers-reduced-motion:reduce) { html[data-ui="erp"] #view-planificacion .plan-plantilla::before { animation:none; } }
@media (max-width:900px) { #view-planificacion > .view-header .view-subtitle { display:block; } }

/* ===== Hoja de ruta (primera pestaña de la ficha del evento). ===== */
#modal-alq-evento .arc-ev-tit h2 { font-size:24px; letter-spacing:-.03em; }
#modal-alq-evento .arc-ev-mapa { display:inline-flex; align-items:center; gap:8px; color:inherit; text-decoration:none; }
#modal-alq-evento .arc-ev-mapa svg { color:var(--arc-mut); flex:none; transition:color .15s; }
#modal-alq-evento .arc-ev-mapa:hover svg { color:var(--arc-fg); }
#modal-alq-evento .arc-ev-mapa:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.hr-cab { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:4px 0 14px; }
.hr-cab .btn { border-radius:11px!important; }
.hr-sitios { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
.hr-tarjeta, .hr-bloque { padding:12px 14px; border:1px solid var(--arc-borde); border-radius:16px; background:var(--arc-sup); }
.hr-bloque { margin-top:10px; }
.hr-tarjeta header, .hr-bloque > header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; font-size:14px; color:var(--arc-fg); }
.hr-tarjeta { display:grid; grid-template-columns:1fr 1fr; gap:8px; align-content:start; }
.hr-tarjeta header { grid-column:1 / -1; margin-bottom:0; }
.hr-campo { display:flex; flex-direction:column; gap:3px; min-width:0; }
.hr-campo.ancho { grid-column:1 / -1; }
.hr-campo > span { font-size:11.5px; color:var(--arc-mut); }
.hr-campo input, .hr-campo textarea, .hr-alta input, .hr-alta select { width:100%; min-width:0; height:34px; padding:0 10px; border:1px solid var(--arc-borde); border-radius:10px; background:var(--arc-sup); color:var(--arc-fg); font:inherit; font-size:13.5px; }
.hr-campo textarea { height:auto; min-height:52px; padding:7px 10px; resize:vertical; line-height:1.4; }
.hr-campo input:focus, .hr-campo textarea:focus, .hr-alta input:focus, .hr-alta select:focus { outline:none; border-color:var(--arc-borde-f); }
.hr-campo input[readonly], .hr-campo textarea[readonly] { border-color:transparent; padding-left:0; background:transparent; }
.hr-mapa { display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:500; color:var(--arc-sec); text-decoration:none; padding:3px 8px; border-radius:999px; border:1px solid var(--arc-borde); }
.hr-mapa:hover { color:var(--arc-fg); background:var(--arc-sup-m); }
.hr-seg { display:inline-flex; gap:2px; padding:2px; border-radius:10px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); width:max-content; }
.hr-seg button { height:28px; padding:0 10px; border:0; border-radius:8px; background:transparent; color:var(--arc-sec); font:500 12.5px inherit; cursor:pointer; }
.hr-seg button.activo { background:var(--arc-sup); color:var(--arc-fg); box-shadow:0 1px 2px rgba(0,0,0,.08); }
.hr-aviso { color:var(--arc-aviso); font-size:12px; }
.hr-dia { margin:8px 0 4px; font-size:12px; font-weight:600; color:var(--arc-sec); text-transform:capitalize; }
.hr-lista { list-style:none; margin:0; padding:0; border:1px solid var(--arc-borde); border-radius:12px; overflow:hidden; }
.hr-lista li { display:grid; grid-template-columns:64px minmax(0,1fr) auto auto; align-items:center; column-gap:10px; padding:8px 10px; font-size:13.5px; }
.hr-lista li + li { border-top:1px solid var(--arc-borde); }
.hr-hora { font-weight:600; font-variant-numeric:tabular-nums; color:var(--arc-fg); }
.hr-hora small { font-weight:400; color:var(--arc-mut); }
.hr-txt { display:flex; flex-direction:column; min-width:0; }
.hr-txt b { font-weight:500; }
.hr-txt small { font-size:12px; color:var(--arc-mut); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hr-presu { font-size:12.5px; color:var(--arc-sec); white-space:nowrap; }
.hr-presu a { color:var(--arc-fg); text-decoration:none; }
.hr-presu em { font-style:normal; color:var(--arc-mal); font-weight:600; margin-left:4px; }
.hr-lista:not(.hr-totales) li:has(> .hr-txt:first-child) { grid-template-columns:minmax(0,1fr) auto auto; }
.hr-quitar { width:24px; height:24px; display:grid; place-items:center; border:0; border-radius:50%; background:transparent; color:var(--arc-mut); font-size:16px; cursor:pointer; }
.hr-quitar:hover { background:var(--arc-sup-m); color:var(--arc-mal); }
.hr-alta { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.hr-alta > * { flex:1 1 120px; }
.hr-alta input[type=time] { flex:0 0 96px; }
.hr-alta input[name=cantidad] { flex:0 0 70px; }
.hr-alta .btn { flex:0 0 auto; height:34px; border-radius:10px!important; }
.hr-artistas { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:8px; }
.hr-artista { padding:10px 12px; border:1px solid var(--arc-borde); border-radius:14px; background:var(--arc-sup-m); }
.hr-artista > header { display:flex; align-items:center; gap:6px; }
.hr-artista-nombre { display:flex; flex-direction:column; min-width:0; flex:1; }
.hr-artista-nombre b { font-size:14.5px; text-transform:uppercase; letter-spacing:.02em; }
.hr-artista-nombre small { font-size:12px; color:var(--arc-mut); text-transform:capitalize; }
.hr-rider { position:relative; display:inline-flex; align-items:center; height:26px; padding:0 10px; border-radius:999px; border:1px solid var(--arc-borde); background:var(--arc-sup); color:var(--arc-fg); font-size:12px; font-weight:500; text-decoration:none; cursor:pointer; white-space:nowrap; }
.hr-rider:hover { background:var(--arc-sup-m); }
.hr-subir input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.hr-efectos { display:flex; flex-wrap:wrap; gap:4px; margin-top:8px; }
.hr-efecto { display:inline-flex; align-items:center; gap:4px; height:26px; padding:0 4px 0 10px; border-radius:999px; background:var(--arc-sup); border:1px solid var(--arc-borde); font-size:12.5px; }
.hr-efecto b { font-variant-numeric:tabular-nums; }
.hr-efecto button { width:18px; height:18px; border:0; border-radius:50%; background:transparent; color:var(--arc-mut); cursor:pointer; font-size:13px; line-height:1; }
.hr-efecto button:hover { color:var(--arc-mal); background:var(--arc-sup-m); }
.hr-artista .hr-alta { margin-top:8px; }
.hr-falta { font-size:11.5px; font-weight:600; color:var(--arc-mal); padding:2px 8px; border-radius:999px; background:color-mix(in oklab, var(--arc-mal) 10%, transparent); }
.hr-ok { font-size:11.5px; font-weight:500; color:var(--arc-ok); }
.hr-equipo p { margin:0 0 4px; font-size:13.5px; }
.hr-equipo small { color:var(--arc-mut); }
@media (max-width:900px) { .hr-sitios { grid-template-columns:1fr; } }
@media (max-width:600px) {
  .hr-tarjeta { grid-template-columns:1fr; }
  .hr-lista li { grid-template-columns:52px minmax(0,1fr) auto; }
  .hr-presu { grid-column:2 / -1; white-space:normal; }
  .hr-cab { flex-direction:column; align-items:stretch; }
}
.hr-alta-efecto { display:grid; grid-template-columns:56px minmax(0,1.2fr) minmax(0,1fr) auto; }
.hr-alta-efecto > * { min-width:0; }
.hr-alta-efecto input[name=cantidad] { padding:0 6px; text-align:center; }
@media (max-width:600px) { .hr-alta-efecto { grid-template-columns:56px 1fr auto; } .hr-alta-efecto input[name=descripcion] { grid-column:1 / -1; grid-row:2; } }
.hr-enlace { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; padding:10px 12px; border-radius:16px; border:1px solid var(--arc-borde); background:var(--arc-sup-m); }
.hr-enlace-tit { display:flex; flex-direction:column; flex:1 1 220px; min-width:0; }
.hr-enlace-tit b { font-size:14px; font-weight:600; }
.hr-enlace-tit small { font-size:12px; color:var(--arc-mut); }
.hr-enlace-url { flex:2 1 260px; min-width:0; height:34px; padding:0 10px; border:1px solid var(--arc-borde); border-radius:10px; background:var(--arc-sup); color:var(--arc-sec); font:12.5px ui-monospace, SFMono-Regular, Menlo, monospace; }
.hr-enlace .btn { height:34px; border-radius:10px!important; display:inline-flex; align-items:center; text-decoration:none; }
/* Lectura de riders con IA. */
.hr-cargar { position:relative; height:32px; padding:0 12px; border-radius:10px!important; display:inline-flex; align-items:center; font-size:13px; cursor:pointer; }
.hr-cargar input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.hr-leyendo { display:flex; align-items:center; gap:10px; margin:0 0 10px; padding:10px 12px; border-radius:12px; background:var(--arc-sup-m); border:1px dashed var(--arc-borde-f); font-size:13px; color:var(--arc-sec); }
.hr-leyendo.hidden { display:none; }
.hr-giro { width:16px; height:16px; border-radius:50%; border:2px solid var(--arc-borde); border-top-color:var(--arc-fg); animation:hr-giro .8s linear infinite; flex:none; }
@keyframes hr-giro { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .hr-giro { animation:none; } }
.hr-ia { font:inherit; font-size:12px; }
.hr-ia:disabled { opacity:.6; cursor:progress; }
.hr-ia-panel { margin-top:8px; border:1px solid var(--arc-borde); border-radius:12px; background:var(--arc-sup); }
.hr-ia-panel > summary { display:flex; gap:8px; align-items:flex-start; padding:8px 10px; font-size:12.5px; line-height:1.4; color:var(--arc-sec); cursor:pointer; list-style:none; }
.hr-ia-panel > summary::-webkit-details-marker { display:none; }
.hr-ia-marca { flex:none; padding:1px 6px; border-radius:6px; background:var(--arc-gradient, var(--arc-fg)); color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.04em; }
.hr-ia-panel form { padding:0 10px 10px; }
.hr-ia-lista li { grid-template-columns:20px minmax(0,1fr) 70px!important; }
.hr-ia-lista input[type=checkbox] { width:16px; height:16px; margin:0; accent-color:var(--arc-fg); }
.hr-ia-lista input[type=number] { width:100%; height:30px; padding:0 6px; border:1px solid var(--arc-borde); border-radius:8px; background:var(--arc-sup); color:var(--arc-fg); font:inherit; font-size:13px; text-align:center; }
.hr-ia-no .hr-txt b { color:var(--arc-sec); font-weight:500; }
.hr-ia-nota { white-space:normal!important; }
.hr-ia-falta { font-size:11px; font-weight:600; color:var(--arc-mal); text-align:right; }
.hr-ia-notas { margin:8px 0 0; padding-left:18px; font-size:12px; color:var(--arc-sec); }
.hr-ia-notas li { margin:2px 0; }
.hr-ia-pie { display:flex; justify-content:flex-end; margin-top:8px; }
.hr-ia-pie .btn { height:32px; border-radius:10px!important; font-size:13px; }
.hr-artista { grid-column:span 1; }
.hr-artistas:has(.hr-ia-panel[open]) { grid-template-columns:1fr; }
.hr-ia-lista li { grid-template-columns:20px minmax(0,1fr) 64px auto!important; }
.hr-efecto-fuera { border-style:dashed; color:var(--arc-sec); }
.hr-efecto i { font-style:normal; font-size:10.5px; font-weight:600; color:var(--arc-mal); margin-left:2px; }
/* Fotos de artículo sobre blanco, enteras. */
.alm-card-foto, .alm-ficha-foto, [class*="alm"] img[src*="/uploads/almacen/"] { background:#fff; object-fit:contain; }
.alm-foto:has(img) { background:#fff!important; }
.alm-foto img { position:absolute; inset:0; width:100%!important; height:100%!important; object-fit:contain!important; padding:2% 4%; }
.alm-ficha-foto:has(img) { background:#fff!important; border:1px solid var(--arc-borde, oklch(93.5% 0 0)); }
.alm-ficha-foto:has(img) { position:relative; }
.alm-ficha-foto img { position:absolute; inset:0; width:100%!important; height:100%!important; object-fit:contain!important; padding:5%; }
.hr-ia-bloque { display:flex; align-items:center; gap:6px; margin:10px 0 4px; font-size:11.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--arc-sec); }
.hr-ia-bloque:first-child { margin-top:0; }
.hr-ia-bloque span { padding:0 6px; border-radius:999px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); font-size:10.5px; color:var(--arc-mut); letter-spacing:0; }
/* Marca y modelo del artículo. */
.alm-ficha-marca { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:8px 0 10px; }
.alm-ficha-marca:empty { display:none; }
.alm-ficha-marca .alm-ficha-sustituye { grid-column:1 / -1; }
.alm-ficha-marca label { display:flex; flex-direction:column; gap:3px; min-width:0; }
.alm-ficha-marca label span { font-size:11.5px; color:var(--arc-mut, oklch(60% 0 0)); }
.alm-ficha-marca input { height:34px; min-width:0; padding:0 10px; border:1px solid var(--arc-borde, oklch(93.5% 0 0)); border-radius:10px; background:var(--arc-sup, #fff); color:inherit; font:inherit; font-size:13.5px; }
.alm-ficha-marca input:focus { outline:none; border-color:var(--arc-borde-f, oklch(82% 0 0)); }
.alm-marca { color:var(--arc-sec, oklch(46% 0 0))!important; }

/* Unidades: selector de máquina propio (botón + lista, como los menús «⋯») junto al buscador. */
.alm-barra-acciones { display:flex; gap:8px; flex-shrink:0; }
.alm-sel-caja { position:relative; flex-shrink:0; }
.alm-sel { display:inline-flex; align-items:center; gap:8px; height:40px; max-width:280px; padding:0 12px 0 14px; border-radius:14px; border:1px solid var(--alq-borde); background:var(--alq-tarjeta); color:var(--fc-ink, inherit); font:500 13.5px var(--fc-font, inherit); cursor:pointer; transition:background .15s, box-shadow .15s; }
.alm-sel > span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.alm-sel small { font-size:12px; color:var(--alq-suave); font-variant-numeric:tabular-nums; }
.alm-sel:hover, .alm-sel[aria-expanded="true"] { background:var(--arc-tray, oklch(97.8% 0 0)); }
.alm-sel-flecha { width:14px; height:14px; flex-shrink:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat; transition:transform .2s; }
.alm-sel[aria-expanded="true"] .alm-sel-flecha { transform:rotate(180deg); }
.alm-sel-caja .alm-sel-pop { left:0; right:auto; min-width:260px; max-height:min(420px, 60vh); overflow-y:auto; z-index:40; }
.alm-sel-pop .alm-sel-op { display:flex!important; align-items:center; gap:10px; }
.alm-sel-op .alm-sel-nombre { flex:1; overflow:hidden; text-overflow:ellipsis; }
.alm-sel-op small { font-size:12px; color:var(--alq-suave); font-variant-numeric:tabular-nums; }
.alm-sel-check { width:14px; height:14px; flex-shrink:0; }
.alm-sel-op.activo { font-weight:600!important; }
.alm-sel-op.activo .alm-sel-check { background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .alm-sel-op.activo .alm-sel-check { filter:invert(1); } }
:root[data-theme="dark"] .alm-sel-op.activo .alm-sel-check { filter:invert(1); }
.alm-barra.alm-barra-ud { flex-wrap:nowrap!important; }
@media (max-width:700px) { .alm-barra.alm-barra-ud { flex-wrap:wrap!important; } .alm-barra-ud .alm-filtros { flex-wrap:wrap!important; } .alm-barra-ud .alm-sel-caja, .alm-barra-ud .alm-sel { width:100%; max-width:none; } .alm-sel > span:first-child { flex:1; text-align:left; } .alm-barra-ud .alm-barra-acciones { flex-basis:100%; } }

/* Ficha del evento más compacta: cabecera y fechas más bajas, el enlace del equipo y el PDF en
   una sola barra, y las tarjetas de sitios con menos aire (se deslizaba demasiado). */
.arc-ev-cab { padding-bottom:10px; }
.arc-ev-tit h2 { font-size:24px; }
.arc-ev-fechas > div { padding:9px 0; }
.arc-ev-fechas dd { margin-top:2px; font-size:17px; }
.arc-ev-fechas small { margin-top:2px; font-size:11.5px; }
.arc-ev-datos { padding:10px 0 12px; }
.hr-enlace { flex-wrap:nowrap; gap:6px; margin:0 0 10px; padding:6px 6px 6px 12px; border-radius:14px; }
.hr-enlace .hr-enlace-tit { flex:0 0 auto; font-size:13px; font-weight:600; white-space:nowrap; cursor:help; }
.hr-enlace-url { flex:1 1 auto; height:32px; }
.hr-enlace .btn { height:32px; padding:0 12px; font-size:13px; }
.hr-enlace-vacio { flex:1; font-size:12.5px; color:var(--arc-mut); }
.hr-icono { width:30px; height:30px; flex-shrink:0; display:grid; place-items:center; border:0; border-radius:9px; background:transparent; color:var(--arc-sec); font-size:17px; line-height:1; cursor:pointer; }
.hr-icono:hover { background:var(--arc-sup); color:var(--arc-fg); }
.hr-mapa { padding:5px; }
.hr-mapa svg { display:block; }
.hr-tarjeta, .hr-bloque { padding:10px 12px; }
.hr-tarjeta { gap:6px 8px; }
.hr-campo input, .hr-alta input, .hr-alta select { height:32px; }
.hr-campo textarea { min-height:44px; }
@media (max-width:640px) {
  .hr-enlace { flex-wrap:wrap; }
  .hr-enlace .hr-enlace-tit { flex-basis:100%; }
  .hr-enlace-url { flex-basis:100%; }
}
/* Sugerencias de dirección y hotel en la hoja de ruta: bajo el campo, por encima de lo demás. */
.hr-campo:has(> .hr-sug) { position:relative; }
.hr-sug { z-index:60; }
.hr-tarjeta { overflow:visible; }
.hr-sug { left:auto!important; right:0; width:max(100%, 340px); max-width:calc(100vw - 32px); }
.hr-sitios > .hr-tarjeta:first-child .hr-sug { left:0!important; right:auto; }
.alm-ficha-marca .alm-ficha-aporta { grid-column:1 / -1; }
.alm-aporta-fila { display:grid; grid-template-columns:72px 1fr; gap:8px; }
/* Lo que pone el cliente (bombonas de propano…), bajo las líneas del presupuesto */
.arc-ev-aporta { margin-top:10px; padding:10px 12px; border-radius:14px; background:var(--arc-sup-m, oklch(97.8% 0 0)); border:1px solid var(--arc-borde); }
.arc-ev-aporta b { display:block; margin-bottom:4px; font-size:13px; font-weight:600; color:var(--arc-fg); }
.arc-ev-aporta ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.arc-ev-aporta li { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; font-size:13.5px; }
.arc-ev-aporta li span { font-weight:600; }
.arc-ev-aporta li small { font-size:12px; color:var(--arc-mut); }

/* La ficha del evento a página entera: se abre sobre todo como una página más, con «←
   Planificación» para volver, y el contenido centrado con más ancho para las tarjetas. */
#modal-alq-evento { align-items:stretch; justify-content:stretch; padding:0; background:var(--bg-main, oklch(99% 0 0)); backdrop-filter:none; }
#modal-alq-evento .modal-content { width:100%; max-width:none!important; height:100%; max-height:none; margin:0; border:0; border-radius:0; box-shadow:none; background:var(--bg-main, oklch(99% 0 0));
  padding:0 max(24px, calc((100vw - 1160px) / 2)) 56px; overflow-y:auto; }
#modal-alq-evento .modal-header { position:sticky; top:0; z-index:5; display:flex; align-items:center; gap:14px; margin:0 -4px 6px; padding:14px 4px 12px; background:var(--bg-main, oklch(99% 0 0)); border-bottom:1px solid var(--arc-borde); }
#modal-alq-evento .modal-header h3 { flex:1; min-width:0; margin:0; font-size:22px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#modal-alq-evento .alq-ficha-x { display:none; }
.alq-ficha-volver { display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 12px 0 10px; border:1px solid var(--arc-borde); border-radius:11px; background:var(--arc-sup); color:var(--arc-sec); font:500 13px var(--fc-font, inherit); cursor:pointer; white-space:nowrap; }
.alq-ficha-volver:hover { color:var(--arc-fg); background:var(--arc-sup-m); }
#modal-alq-evento .hr-sitios { gap:12px; }
@media (max-width:640px) {
  #modal-alq-evento .modal-content { padding:0 16px 40px; }
  #modal-alq-evento .modal-header h3 { font-size:18px; }
}

/* Sitios de la hoja de ruta: se leen de un vistazo y al pincharlos se editan en una ventana */
.hr-sitio { display:flex; flex-direction:column; gap:6px; }
.hr-sitio-cuerpo { display:flex; flex-direction:column; align-items:flex-start; gap:3px; flex:1; width:calc(100% + 16px); margin:0 -8px -4px; padding:6px 8px 8px; border:0; border-radius:11px; background:transparent; color:var(--arc-sec); font:inherit; font-size:13.5px; line-height:1.4; text-align:left; }
button.hr-sitio-cuerpo { cursor:pointer; transition:background .15s; }
button.hr-sitio-cuerpo:hover { background:var(--arc-sup-m); }
button.hr-sitio-cuerpo:active { transform:scale(.99); }
.hr-sitio-cuerpo > span { max-width:100%; overflow-wrap:anywhere; }
.hr-sitio-cuerpo b { color:var(--arc-fg); font-weight:600; }
.hr-sitio-cuerpo small { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:12.5px; color:var(--arc-mut); }
.hr-sitio-vacio { color:var(--arc-mut); font-weight:500; }
button.hr-sitio-cuerpo:hover .hr-sitio-vacio { color:var(--arc-fg); }

#modal-hr-sitio { z-index:110; --arc-fg:var(--fc-ink, oklch(15% 0 0)); --arc-sec:var(--fc-muted, oklch(46% 0 0)); --arc-mut:oklch(60% 0 0); --arc-borde:var(--fc-border, oklch(93.5% 0 0)); --arc-sup:var(--bg-secondary, #fff); --arc-sup-m:oklch(97.5% 0 0); }
#modal-hr-sitio .modal-content { max-width:560px; max-height:calc(100vh - 32px); overflow-y:auto; }
.hr-sitio-form { display:flex; flex-direction:column; gap:12px; }
.hr-sitio-buscar { display:flex; flex-direction:column; gap:8px; padding:12px; border-radius:14px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); }
.hr-sitio-campos { display:grid; grid-template-columns:1fr 1fr; gap:8px 10px; }
.hr-sitio-form .hr-campo select { height:32px; padding:0 8px; border:1px solid var(--arc-borde); border-radius:10px; background:var(--arc-sup); color:var(--arc-fg); font:inherit; font-size:13.5px; }
.hr-enlace-estado { margin:0; font-size:12.5px; color:var(--arc-sec); min-height:0; }
.hr-enlace-estado:empty { display:none; }
.hr-sitio-form .alq-ficha-acciones { display:flex; justify-content:flex-end; gap:8px; margin:0; padding-top:12px; border-top:1px solid var(--arc-borde); }
#modal-hr-sitio .hr-sug { left:0!important; right:0; width:auto; }
@media (max-width:640px) { .hr-sitio-campos { grid-template-columns:1fr; } }
/* En el móvil las tres fechas siguen en una fila: apiladas ocupaban media pantalla */
@media (max-width:640px) {
  #modal-alq-evento .arc-ev-fechas { grid-template-columns:repeat(3, minmax(0,1fr))!important; }
  #modal-alq-evento .arc-ev-fechas > div { padding:8px 0!important; border-top:0!important; }
  #modal-alq-evento .arc-ev-fechas > div + div { padding-left:10px!important; border-left:1px solid var(--arc-borde)!important; }
  #modal-alq-evento .arc-ev-fechas dd { font-size:15px; white-space:normal; }
  #modal-alq-evento .arc-ev-fechas small { font-size:11px; }
  #modal-alq-evento .arc-ev-tit h2 { font-size:21px; }
}
/* Recinto, backstage y hotel juntos en una bandeja con fondo: se leen como un bloque */
#modal-alq-evento .hr-sitios { padding:8px; border-radius:20px; background:var(--arc-tray, oklch(96.5% 0 0)); border:1px solid var(--arc-borde); gap:8px; }
#modal-alq-evento .hr-sitios .hr-tarjeta { border-color:transparent; box-shadow:0 1px 2px oklch(0% 0 0 / .05); }
html[data-theme="dark"] #modal-alq-evento .hr-sitios { background:oklch(22% 0 0); }
/* La ventana del sitio en dos pasos: buscar y revisar */
.hr-paso { display:flex; flex-direction:column; gap:10px; }
.hr-paso[hidden] { display:none; }
.hr-paso-cab { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.hr-paso-tit { display:flex; align-items:center; gap:8px; margin:0; font-size:14px; font-weight:600; color:var(--arc-fg); }
.hr-paso-tit span { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--arc-fg); color:var(--arc-sup); font-size:12px; font-weight:600; }
.hr-oculto { position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.hr-buscador input { height:44px!important; font-size:15px!important; padding:0 14px!important; border-radius:13px!important; }
.hr-o { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--arc-mut); }
.hr-o::before, .hr-o::after { content:""; flex:1; height:1px; background:var(--arc-borde); }
.hr-a-mano { margin-right:auto; padding:6px 4px; border:0; background:none; color:var(--arc-sec); font:500 13px var(--fc-font, inherit); cursor:pointer; text-decoration:underline; text-decoration-color:var(--arc-borde); text-underline-offset:3px; }
.hr-a-mano:hover { color:var(--arc-fg); }
.hr-paso-cab .hr-a-mano { margin-right:0; }
.hr-origen { margin:0; padding:8px 10px; border-radius:10px; background:var(--arc-sup-m); font-size:12.5px; color:var(--arc-sec); }
.hr-origen:empty { display:none; }

/* Banner del evento: cliente, lugar, estado y fechas juntos, sobre un fondo Arc muy suave
   (un velo de color, no un dibujo) y las fechas en celdas de cristal. */
#modal-alq-evento .arc-ev-banner { position:relative; isolation:isolate; overflow:hidden; margin:10px 0 4px; padding:18px 20px 16px; border-radius:24px; border:1px solid var(--arc-borde); background:var(--arc-sup); }
#modal-alq-evento .arc-ev-banner::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.32;
  background:radial-gradient(ellipse 55% 90% at 0% 0%, oklch(86% .06 280), transparent 70%), radial-gradient(ellipse 45% 80% at 100% 10%, oklch(90% .05 30), transparent 70%), radial-gradient(ellipse 60% 70% at 60% 120%, oklch(92% .05 160), transparent 70%); }
html[data-theme="dark"] #modal-alq-evento .arc-ev-banner::before { opacity:.12; }
#modal-alq-evento .arc-ev-banner .arc-ev-cab { padding-bottom:14px; }
#modal-alq-evento .arc-ev-banner .arc-ev-fechas { gap:8px; border:0; }
#modal-alq-evento .arc-ev-banner .arc-ev-fechas > div { padding:10px 14px!important; border:1px solid oklch(100% 0 0 / .7)!important; border-radius:16px; background:oklch(100% 0 0 / .6); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
html[data-theme="dark"] #modal-alq-evento .arc-ev-banner .arc-ev-fechas > div { border-color:oklch(100% 0 0 / .08)!important; background:oklch(100% 0 0 / .04); }
#modal-alq-evento .arc-ev-banner .arc-ev-fechas > div + div { padding-left:14px!important; }
#modal-alq-evento .arc-ev-banner .arc-ev-datos { border-bottom:0; padding-bottom:0; }
@media (max-width:640px) {
  #modal-alq-evento .arc-ev-banner { padding:14px 12px 12px; border-radius:20px; }
  #modal-alq-evento .arc-ev-banner .arc-ev-fechas { gap:6px; }
  #modal-alq-evento .arc-ev-banner .arc-ev-fechas > div, #modal-alq-evento .arc-ev-banner .arc-ev-fechas > div + div { padding:8px 9px!important; }
}

/* ===== Ficha del evento, segunda vuelta Arc =====
   Barra fija: volver a la izquierda, acciones a la derecha (el nombre va en la portada).
   Portada: ceja pequeña, nombre en grande, lugar como etiqueta y fechas en línea de tiempo. */
#modal-alq-evento .modal-header h3 { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.alq-ficha-acciones-cab { margin-left:auto; }
.alq-ficha-acciones-cab:empty { display:none; }
#modal-alq-evento .arc-ev-acciones { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; margin:0!important; padding:0!important; border:0!important; }
#modal-alq-evento .arc-ev-acciones .btn { height:34px; padding:0 14px; font-size:13px; border-radius:11px!important; }

#modal-alq-evento .arc-ev-banner { padding:22px 24px 20px; }
#modal-alq-evento .arc-ev-banner .arc-ev-cab { align-items:flex-start; padding-bottom:18px; }
.arc-ev-ceja { margin:0 0 6px!important; font-size:12.5px!important; color:var(--arc-sec); letter-spacing:.01em; }
#modal-alq-evento .arc-ev-nombre { margin:0; font-family:var(--arc-display, inherit); font-size:34px; font-weight:500; letter-spacing:-.04em; line-height:1.05; color:var(--arc-fg); }
.arc-ev-lugar { display:inline-flex; align-items:center; gap:6px; max-width:100%; margin-top:12px; padding:5px 12px 5px 9px; border-radius:999px; border:1px solid oklch(100% 0 0 / .7); background:oklch(100% 0 0 / .6); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:var(--arc-fg); font-size:13px; font-weight:500; text-decoration:none; transition:background .15s, transform .1s; }
.arc-ev-lugar span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.arc-ev-lugar svg { flex:none; color:var(--arc-sec); }
.arc-ev-lugar:hover { background:oklch(100% 0 0 / .9); }
.arc-ev-lugar:active { transform:scale(.98); }
html[data-theme="dark"] .arc-ev-lugar { border-color:oklch(100% 0 0 / .1); background:oklch(100% 0 0 / .06); }

/* Línea de tiempo: tres hitos unidos por una raya fina; el del evento, en verde con halo */
.arc-ev-linea { position:relative; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; margin:0; padding-top:4px; }
.arc-ev-linea::before { content:""; position:absolute; left:6px; right:calc(33.33% - 6px); top:10px; height:2px; border-radius:2px; background:linear-gradient(90deg, var(--arc-borde), oklch(70% .12 150 / .5) 50%, var(--arc-borde)); }
.arc-ev-nodo { position:relative; display:flex; flex-direction:column; min-width:0; padding-top:22px; }
.arc-ev-nodo i { position:absolute; left:0; top:1px; width:14px; height:14px; border-radius:50%; background:var(--arc-sup); border:2px solid oklch(72% 0 0); }
.arc-ev-nodo.evento i { border-color:var(--arc-ok, oklch(55% .14 150)); background:var(--arc-ok, oklch(55% .14 150)); box-shadow:0 0 0 5px oklch(70% .14 150 / .18); }
.arc-ev-nodo dt { font-size:11.5px; color:var(--arc-mut); text-transform:uppercase; letter-spacing:.06em; }
.arc-ev-nodo dd { margin:3px 0 0; font-family:var(--arc-display, inherit); font-size:19px; font-weight:500; letter-spacing:-.02em; color:var(--arc-fg); }
.arc-ev-nodo.evento dd { color:var(--arc-ok, oklch(50% .14 150)); }
.arc-ev-nodo small { margin-top:2px; font-size:12px; color:var(--arc-mut); }

/* Bloques de la hoja de ruta: «+ Añadir» en la cabecera y la cuenta como pastilla */
.hr-alta[hidden] { display:none!important; }
.hr-mas { height:30px; padding:0 12px; border:1px solid var(--arc-borde); border-radius:10px; background:var(--arc-sup); color:var(--arc-fg); font:500 12.5px var(--fc-font, inherit); cursor:pointer; transition:background .15s; white-space:nowrap; }
.hr-mas:hover { background:var(--arc-sup-m); }
.hr-mas[aria-expanded="true"] { color:var(--arc-sec); }
.hr-cuenta { display:inline-grid; place-items:center; min-width:20px; height:20px; margin-left:6px; padding:0 6px; border-radius:999px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); font-size:11.5px; font-weight:500; color:var(--arc-sec); vertical-align:1px; }
.hr-cab-botones { display:inline-flex; align-items:center; gap:6px; }
#modal-alq-evento .hr-bloque { padding:14px 16px; border-radius:18px; }
#modal-alq-evento .hr-bloque > header { margin-bottom:10px; font-size:15px; }

@media (max-width:640px) {
  #modal-alq-evento .arc-ev-acciones .btn { height:32px; padding:0 10px; font-size:12.5px; }
  #modal-alq-evento .arc-ev-nombre { font-size:26px; }
  #modal-alq-evento .arc-ev-banner { padding:16px 14px; }
  .arc-ev-nodo dd { font-size:15px; }
  .arc-ev-linea { gap:8px; }
}
@media (max-width:640px) {
  #modal-alq-evento .solo-ancho { display:none; }
  #modal-alq-evento .alq-ficha-volver { width:36px; padding:0; justify-content:center; font-size:16px; }
  #modal-alq-evento .modal-header { gap:8px; }
  #modal-alq-evento .alq-ficha-acciones-cab { min-width:0; }
  #modal-alq-evento .arc-ev-acciones { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
  #modal-alq-evento .arc-ev-acciones .btn { flex:none; }
}

/* Ventana del alojamiento: las sugerencias se abren dentro (antes se cortaban por abajo), la
   opción de subir la reserva y el coste, que solo ve la oficina. */
#modal-hr-sitio .hr-sug { position:static!important; margin-top:6px; box-shadow:none; border:1px solid var(--arc-borde); width:auto!important; }
.hr-subir-reserva { display:flex; align-items:center; gap:12px; padding:12px 14px; border:1.5px dashed var(--arc-borde-f, oklch(82% 0 0)); border-radius:14px; background:var(--arc-sup); cursor:pointer; transition:background .15s, border-color .15s; }
.hr-subir-reserva:hover { background:var(--arc-sup-m); border-color:var(--arc-fg); }
.hr-subir-reserva b { display:block; font-size:13.5px; font-weight:600; color:var(--arc-fg); }
.hr-subir-reserva small { display:block; font-size:12px; color:var(--arc-mut); }
.hr-subir-ico { width:36px; height:36px; flex:none; border-radius:11px; background:var(--arc-sup-m) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23262626' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4'/%3E%3Cpath d='m7 9 5-5 5 5'/%3E%3Cpath d='M20 16v3a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3'/%3E%3C/svg%3E") center/18px no-repeat; }
.hr-subir-reserva.leyendo { pointer-events:none; opacity:.7; }
.hr-subir-reserva.leyendo .hr-subir-ico { animation:hr-latir 1.2s ease-in-out infinite; }
@keyframes hr-latir { 50% { opacity:.4; } }
.hr-coste { display:inline-block; padding:1px 8px; border-radius:999px; background:var(--arc-sup-m); border:1px solid var(--arc-borde); font-size:12px; font-weight:600; color:var(--arc-fg); }

/* Artistas más ligeros: el formulario de efecto recogido y los botones de cabecera compactos */
#modal-alq-evento .hr-artista { padding:12px 14px; border-radius:16px; background:var(--arc-sup); border:1px solid var(--arc-borde); }
#modal-alq-evento .hr-artista + .hr-artista { margin-top:8px; }
#modal-alq-evento .hr-artista > header { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
#modal-alq-evento .hr-artista-nombre { flex:1; min-width:160px; }
#modal-alq-evento .hr-artista-nombre b { font-size:15px; }
#modal-alq-evento .hr-artista .hr-rider, #modal-alq-evento .hr-artista .hr-mas { height:28px; padding:0 11px; border-radius:9px; font-size:12.5px; }
#modal-alq-evento .hr-efectos { margin-top:8px; }
/* «Rellenar a mano», como opción visible junto a buscar, pegar el enlace y subir la reserva */
.hr-opcion-mano { width:100%; border-style:solid; font:inherit; text-align:left; color:inherit; }
.hr-mano-ico { width:36px; height:36px; flex:none; border-radius:11px; background:var(--arc-sup-m) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23262626' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center/18px no-repeat; }
#modal-hr-sitio [data-hr-paso="1"] .alq-ficha-acciones { justify-content:flex-end; }

/* La bandeja de la hoja de ruta lleva también el vehículo: cuatro tarjetas en pantallas anchas */
#modal-alq-evento .hr-sitios { grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); }
.hr-veh { display:flex; align-items:center; gap:7px; width:100%; }
.hr-veh svg { flex:none; color:var(--arc-sec); }
.hr-veh b { color:var(--arc-fg); }
.hr-veh-mat { padding:1px 7px; border-radius:6px; border:1px solid var(--arc-borde); background:var(--arc-sup-m); font:600 11.5px ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing:.04em; color:var(--arc-fg); }
.hr-veh .hr-quitar { margin-left:auto; width:22px; height:22px; font-size:15px; }
.hr-veh-caja { position:relative; margin-top:2px; }
.hr-veh-mas { padding:4px 0; border:0; background:none; color:var(--arc-mut); font:500 13.5px var(--fc-font, inherit); cursor:pointer; }
.hr-veh-mas:hover { color:var(--arc-fg); }
.hr-veh-menu { left:0; right:auto; top:calc(100% + 4px); min-width:220px; z-index:30; }
.hr-veh-menu.hidden { display:none; }

/* Lo que pide cada artista frente a lo nuestro: verde lo tenemos, ámbar proponemos el nuestro,
   rojo no lo tenemos. Una fila por efecto (antes, pastillas que se partían). */
.hr-ef-bloque { margin:10px 0 4px; font-size:11.5px; font-weight:600; color:var(--arc-mut); text-transform:uppercase; letter-spacing:.06em; }
.hr-ef-bloque span { margin-left:4px; font-weight:500; }
.hr-ef-lista { list-style:none; margin:0; padding:0; border:1px solid var(--arc-borde); border-radius:12px; overflow:hidden; }
.hr-ef { display:grid; grid-template-columns:10px minmax(0,1.1fr) 16px minmax(0,1fr) auto auto; align-items:center; column-gap:10px; padding:8px 10px; font-size:13.5px; }
.hr-ef + .hr-ef { border-top:1px solid var(--arc-borde); }
.hr-ef-punto { width:8px; height:8px; border-radius:50%; }
.hr-ef-ok .hr-ef-punto { background:oklch(58% .15 150); }
.hr-ef-prop .hr-ef-punto { background:oklch(75% .15 80); }
.hr-ef-no .hr-ef-punto { background:oklch(58% .19 25); }
.hr-ef-ped .hr-ef-punto { background:oklch(58% .14 255); }
.hr-ef-pide { color:var(--arc-sec); overflow-wrap:anywhere; }
.hr-ef-flecha { color:var(--arc-mut); text-align:center; }
.hr-ef-nuestro { display:flex; flex-direction:column; min-width:0; }
.hr-ef-nuestro b { font-weight:600; color:var(--arc-fg); }
.hr-ef-nuestro small { font-size:12px; color:var(--arc-mut); }
.hr-ef-nada { color:var(--arc-mut); }
.hr-ef .hr-quitar { width:22px; height:22px; font-size:15px; }
.hr-estado { padding:2px 9px; border-radius:999px; font-size:11.5px; font-weight:600; white-space:nowrap; }
.hr-estado-ok { background:oklch(94% .05 150); color:oklch(40% .12 150); }
.hr-estado-prop { background:oklch(95% .07 90); color:oklch(45% .1 70); }
.hr-estado-no { background:oklch(94% .04 25); color:oklch(48% .17 25); }
.hr-estado-ped { background:oklch(94% .04 255); color:oklch(45% .14 255); }
.hr-estado-cli { background:oklch(94% .04 300); color:oklch(42% .14 300); }
.hr-estado-nofx { background:oklch(95% 0 0); color:oklch(45% 0 0); }
.hr-ef-cli .hr-ef-punto { background:oklch(55% .14 300); }
.hr-ef-nofx .hr-ef-punto { background:oklch(75% 0 0); }
.hr-ef-nofx .hr-ef-pide { color:var(--arc-mut); }
/* La pastilla de estado es un selector: se ve igual, con su flecha */
select.hr-estado-sel { appearance:none; -webkit-appearance:none; border:0; height:auto; min-height:0; padding:3px 24px 3px 10px; font:inherit; font-size:11.5px; font-weight:600; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23666' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 7px center; background-size:10px; }
select.hr-estado-sel:focus-visible { outline:2px solid currentColor; outline-offset:1px; }
@media (max-width:640px) {
  .hr-ef { grid-template-columns:10px minmax(0,1fr) auto; row-gap:3px; }
  .hr-ef-flecha { display:none; }
  .hr-ef-nuestro { grid-column:2 / 3; }
  .hr-ef .hr-estado { grid-column:2 / 3; justify-self:start; }
  .hr-ef .hr-quitar { grid-row:1; grid-column:3; }
}
/* La lista de efectos va en bloques uno debajo de otro (el contenedor era el de las pastillas, en fila) */
.hr-efectos:has(.hr-ef-lista) { display:block!important; }
.hr-efectos .hr-ef-bloque:first-child { margin-top:2px; }
/* Columnas fijas para que la flecha y lo nuestro queden en línea en todas las filas */
@media (min-width:641px) {
  .hr-ef { grid-template-columns:10px minmax(0,1.1fr) 16px minmax(0,1fr) 168px 22px; }
  .hr-ef .hr-estado { justify-self:end; }
}
/* Los artistas a todo el ancho: la lista de lo que piden necesita sitio para no partirse */
#modal-alq-evento .hr-artistas { grid-template-columns:1fr!important; }

/* Presupuesto desde los riders: el botón y el aviso de lo leído (y lo que no tenemos) */
.pre-riders-ia { cursor:pointer; }
.pre-riders-estado { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:10px 0 0; padding:12px 14px; border-radius:14px; background:var(--fc-secondary, oklch(97.5% 0 0)); border:1px solid var(--fc-border, oklch(93.5% 0 0)); font-size:13.5px; line-height:1.5; color:var(--fc-ink, inherit); }
.pre-riders-estado.hidden { display:none; }
.pre-riders-estado b { font-weight:600; }
.pre-riders-estado details { flex-basis:100%; margin-top:2px; }
.pre-riders-estado summary { cursor:pointer; color:oklch(48% .17 25); font-weight:500; }
.pre-riders-estado ul { margin:6px 0 0; padding-left:18px; color:var(--fc-muted, oklch(46% 0 0)); }
.pre-riders-error { flex-basis:100%; margin:4px 0 0; color:oklch(48% .17 25); }
.pre-riders-giro { width:16px; height:16px; border-radius:50%; border:2px solid var(--fc-border, oklch(90% 0 0)); border-top-color:var(--fc-ink, #111); animation:pre-girar .8s linear infinite; }
@keyframes pre-girar { to { transform:rotate(360deg); } }
.pre-riders-estado:not(:has(.pre-riders-giro)) { display:block; }
.pre-riders-estado:not(:has(.pre-riders-giro)).hidden { display:none; }
/* El recuadro grande de «Sube los riders» encima de las líneas (abre el mismo selector que el botón) */
.pre-riders-tarjeta { display:flex; flex-wrap:wrap; align-items:center; gap:12px 14px; margin:4px 0 14px; padding:14px 16px; border:1.5px dashed var(--fc-input, oklch(85% 0 0)); border-radius:16px; background:var(--fc-secondary, oklch(97.5% 0 0)); transition:border-color .15s, background .15s; }
.pre-riders-tarjeta:hover { border-color:var(--fc-ink, #111); background:var(--fc-card, #fff); }
.pre-riders-txt { flex:1 1 220px; min-width:0; }
.pre-riders-txt .pre-riders-ia-marca { margin-left:4px; vertical-align:1px; }
/* Qué se saca de los riders: se combinan (efectos, pirotecnia, láser); siempre queda uno */
.pre-riders-alcance { display:inline-flex; align-items:center; gap:2px; padding:3px; border-radius:12px; background:var(--fc-card, #fff); border:1px solid var(--fc-border, oklch(93.5% 0 0)); }
.pre-riders-alcance-tit { padding:0 8px 0 6px; font-size:12px; color:var(--fc-muted, oklch(46% 0 0)); }
.pre-riders-alcance button { display:inline-flex; align-items:center; gap:6px; height:28px; padding:0 11px; border:0; border-radius:9px; background:transparent; font:inherit; font-size:13px; font-weight:500; color:var(--fc-muted, oklch(46% 0 0)); cursor:pointer; transition:background .15s, color .15s; }
.pre-riders-alcance button::before { content:""; width:14px; height:14px; border-radius:4px; border:1.5px solid currentColor; opacity:.55; box-sizing:border-box; }
.pre-riders-alcance button[aria-pressed="true"] { background:var(--fc-secondary, oklch(96% 0 0)); color:var(--fc-ink, #111); }
.pre-riders-alcance button[aria-pressed="true"]::before { opacity:1; border-color:var(--fc-ink, #111); background:var(--fc-ink, #111) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 8.5 2.6 2.5L12 5.5'/%3E%3C/svg%3E") center/12px no-repeat; }
.pre-riders-alcance button:hover { color:var(--fc-ink, #111); }
.pre-riders-subir { cursor:pointer; }
.pre-riders-estado .pre-riders-pedido summary { color:oklch(45% .14 255); }
.pre-riders-tarjeta b { display:block; font-size:14.5px; font-weight:600; color:var(--fc-ink, inherit); }
.pre-riders-tarjeta small { display:block; font-size:12.5px; color:var(--fc-muted, oklch(46% 0 0)); }
.pre-riders-tarjeta > span:nth-child(2) { flex:1; min-width:0; }
.pre-riders-ico { width:40px; height:40px; flex:none; border-radius:12px; background:var(--fc-card, #fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23262626' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='M12 17v-6'/%3E%3Cpath d='m9 14 3-3 3 3'/%3E%3C/svg%3E") center/20px no-repeat; border:1px solid var(--fc-border, oklch(93.5% 0 0)); }
.pre-riders-ia-marca { padding:2px 8px; border-radius:999px; background:linear-gradient(100deg, oklch(90% .045 300), oklch(92% .045 65)); font-size:11.5px; font-weight:700; color:oklch(25% .02 300); }

/* ===== Enlace del artista para su production manager (ficha del artista en la hoja de ruta) =====
   Una línea bajo la cabecera del artista: si lo han abierto, si están conformes y el enlace con
   sus botones. La conformidad desactualizada va en ámbar: cambiaron sus efectos después. */
.hr-art-enlace { display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; margin:8px 0 2px; padding:7px 8px 7px 12px; border-radius:12px; border:1px solid var(--arc-borde); background:var(--arc-sup-m); }
.hr-art-enlace-tit { font-size:12.5px; font-weight:600; color:var(--arc-sec); margin-right:2px; }
.hr-art-enlace-botones { display:flex; align-items:center; gap:6px; flex:1 1 300px; min-width:0; }
.hr-art-enlace .hr-enlace-url { flex:1 1 auto; height:28px; font-size:12px; }
.hr-art-enlace .hr-icono { width:28px; height:28px; }
.hr-art-enlace-nota { flex-basis:100%; font-size:12px; color:var(--arc-sec); font-style:italic; }
.hr-estado-neutro { background:var(--arc-sup); color:var(--arc-sec); border:1px solid var(--arc-borde); font-weight:500; }
html[data-theme="dark"] .hr-estado-ok { background:oklch(32% .06 150); color:oklch(88% .08 150); }
html[data-theme="dark"] .hr-estado-prop { background:oklch(33% .06 80); color:oklch(88% .09 85); }
html[data-theme="dark"] .hr-estado-no { background:oklch(32% .07 25); color:oklch(86% .07 25); }
html[data-theme="dark"] .hr-estado-ped { background:oklch(32% .06 255); color:oklch(86% .06 255); }
@media (max-width:640px) { .hr-art-enlace-botones { flex-basis:100%; } }

/* ===== Almacén: «Lo que sale» un día y las revisiones de las máquinas =====
   Fuera de las fichas no están los --arc-* de las demás secciones: se definen aquí con los mismos
   valores, sobre los --fc-* del tema, que ya cambian en modo oscuro. */
.alm-sal, .alm-rev-ficha {
  --arc-fg:var(--fc-ink, oklch(15% 0 0)); --arc-sec:var(--fc-muted, oklch(46% 0 0)); --arc-mut:oklch(60% 0 0);
  --arc-borde:var(--fc-border, oklch(93.5% 0 0)); --arc-sup:var(--fc-card, #fff); --arc-sup-m:var(--fc-secondary, oklch(97.3% 0 0));
  --arc-ok:oklch(52% .14 150); --arc-mal:oklch(55% .19 25); --arc-aviso:oklch(62% .14 75);
}
.alm-sal .alm-prev-cab { justify-content:flex-start; }
.alm-sal-fecha input { height:34px; padding:0 10px; border-radius:10px; border:1px solid var(--arc-borde); background:var(--arc-sup); color:var(--arc-fg); font:inherit; font-size:13px; }
.alm-sal-botones { display:flex; gap:8px; margin-left:auto; }
.alm-sal-titulo { margin:4px 0 10px; font-family:var(--arc-display, inherit); font-size:20px; font-weight:600; letter-spacing:-.02em; color:var(--arc-fg); }
.alm-sal-titulo::first-letter { text-transform:uppercase; }
.alm-sal-cifras { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.alm-sal-cifras > div { display:flex; flex-direction:column; min-width:110px; padding:9px 14px; border-radius:14px; border:1px solid var(--arc-borde); background:var(--arc-sup); }
.alm-sal-cifras small { font-size:11.5px; color:var(--arc-mut); }
.alm-sal-cifras b { font-family:var(--arc-display, inherit); font-size:22px; font-weight:600; letter-spacing:-.02em; color:var(--arc-fg); font-variant-numeric:tabular-nums; }
.alm-sal-cifras .aviso b { color:oklch(50% .12 70); }
.alm-sal-h { display:flex; align-items:center; gap:8px; margin:16px 0 8px; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--arc-sec); }
.alm-sal-h span { padding:0 7px; border-radius:999px; background:var(--arc-sup-m); font-size:11.5px; letter-spacing:0; }
.alm-sal-tabla td { vertical-align:middle; }
.alm-sal-tabla .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.alm-sal-tabla .alm-sal-caja { width:40px; text-align:center; }
.alm-sal-tabla tr.alm-sal-art td { border-top:1px solid var(--arc-borde); font-size:14px; }
.alm-sal-tabla tr.alm-sal-des td { font-size:13px; color:var(--arc-sec); }
.alm-sal-tabla tr.alm-sal-des td:nth-child(2) { padding-left:22px; }
.alm-sal-tabla tr:has(.alm-sal-check:checked) td:not(.alm-sal-caja) { color:var(--arc-mut); text-decoration:line-through; text-decoration-color:color-mix(in oklab, var(--arc-mut) 60%, transparent); }
.alm-sal-check { width:18px; height:18px; accent-color:var(--arc-fg); cursor:pointer; }
.alm-sal-des .alm-sal-check { width:15px; height:15px; }
.alm-sal-mat { font:11.5px ui-monospace, SFMono-Regular, Menlo, monospace; color:var(--arc-mut); }
.alm-sal-eventos { list-style:none; margin:0; padding:0; border:1px solid var(--arc-borde); border-radius:14px; background:var(--arc-sup); }
.alm-sal-eventos li { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; padding:10px 14px; border-top:1px solid var(--arc-borde); }
.alm-sal-eventos li:first-child { border-top:0; }
.alm-sal-ev { display:flex; flex-direction:column; flex:1 1 220px; min-width:0; }
.alm-sal-ev b { color:var(--arc-fg); font-weight:600; }
.alm-sal-ev small { font-size:12px; color:var(--arc-mut); }
.alm-sal-veh { font-size:13px; color:var(--arc-sec); }
/* La revisión en la ficha del artículo */
.alm-rev-ficha h4 { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.alm-rev-campos { display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px 10px; }
.alm-rev-campos label { display:flex; flex-direction:column; gap:3px; flex:1 1 150px; min-width:0; }
.alm-rev-campos label span { font-size:11.5px; color:var(--arc-mut); }
.alm-rev-campos input { height:34px; min-width:0; padding:0 10px; border:1px solid var(--arc-borde); border-radius:10px; background:var(--arc-sup); color:var(--arc-fg); font:inherit; font-size:13.5px; }
.alm-rev-campos .btn { height:34px; }
.alm-rev-ficha p.alq-suave { margin:8px 0 0; }
@media (max-width:640px) {
  .alm-sal-botones { margin-left:0; flex-basis:100%; }
  .alm-sal-botones .btn { flex:1; }
  .alm-sal-tabla th:nth-child(4), .alm-sal-tabla td:nth-child(4) { display:none; }
}
/* Imprimir «Lo que sale»: solo la lista, en blanco y negro, con las casillas vacías */
@media print {
  body.alm-imprime * { visibility:hidden !important; }
  body.alm-imprime .alm-sal, body.alm-imprime .alm-sal * { visibility:visible !important; }
  body.alm-imprime .alm-sal { position:absolute; left:0; top:0; width:100%; color:#000; }
  body.alm-imprime .alm-sal .alm-no-imprimir { display:none !important; }
  body.alm-imprime .alm-sal .table-container { overflow:visible; box-shadow:none; border:0; }
  body.alm-imprime .alm-sal tr { break-inside:avoid; }
  body.alm-imprime .alm-sal tr td:not(.alm-sal-caja) { text-decoration:none !important; color:#000 !important; }
  body.alm-imprime .alm-sal-check { appearance:none; -webkit-appearance:none; width:14px; height:14px; border:1.3px solid #000; border-radius:2px; background:#fff; }
}

/* Resumen de la propuesta de un artista, redactado por la IA */
.hr-resumen { width:min(720px, calc(100vw - 32px)); max-height:min(80vh, 760px); padding:0; border:1px solid var(--arc-borde, oklch(92% 0 0)); border-radius:18px; background:var(--arc-fondo-card, #fff); color:var(--arc-fg, #111); box-shadow:0 24px 60px oklch(0% 0 0 / .18); }
.hr-resumen[open] { display:flex; flex-direction:column; }
.hr-resumen::backdrop { background:oklch(0% 0 0 / .32); backdrop-filter:blur(2px); }
.hr-resumen header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px 10px; }
.hr-resumen h3 { margin:0; font-size:17px; font-weight:600; }
.hr-resumen-texto { flex:1; overflow:auto; padding:4px 20px 12px; white-space:pre-wrap; font-size:14.5px; line-height:1.6; }
.hr-resumen footer { display:flex; justify-content:flex-end; gap:8px; padding:12px 20px 16px; border-top:1px solid var(--arc-borde, oklch(93% 0 0)); }

/* Mientras la IA lee riders: pasos, tiempo, barra y cada archivo según termina (ia-progreso.js) */
.hr-leyendo:has(.ia-prog), .pre-riders-estado:has(.ia-prog) { display:block; padding:0; border:0; background:none; }
.ia-prog { padding:14px 16px; border-radius:16px; background:var(--arc-fondo-card, #fff); border:1px solid var(--arc-borde, oklch(92% 0 0)); font-size:13.5px; color:var(--arc-fg, #111); }
.ia-prog-cab { display:flex; align-items:center; gap:10px; }
.ia-prog-cab b { flex:1; font-weight:600; }
.ia-prog-marca { padding:2px 8px; border-radius:999px; background:linear-gradient(100deg, oklch(90% .045 300), oklch(92% .045 65)); font-size:11.5px; font-weight:700; color:oklch(25% .02 300); }
.ia-prog-tiempo { font-variant-numeric:tabular-nums; color:var(--arc-mut, oklch(50% 0 0)); font-size:12.5px; }
.ia-prog-barra { height:6px; margin:12px 0 10px; border-radius:999px; background:oklch(95% 0 0); overflow:hidden; }
.ia-prog-barra span { display:block; height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg, oklch(70% .12 300), oklch(76% .12 60)); transition:width .5s ease; }
.ia-prog-pasos { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:4px 14px; margin:0 0 10px; padding:0; list-style:none; }
.ia-prog-pasos li { position:relative; padding-left:20px; color:var(--arc-mut, oklch(60% 0 0)); font-size:12.5px; }
.ia-prog-pasos li::before { content:""; position:absolute; left:0; top:4px; width:10px; height:10px; border-radius:50%; border:1.5px solid oklch(85% 0 0); box-sizing:border-box; }
.ia-prog-pasos li.hecho { color:var(--arc-sec, oklch(40% 0 0)); }
.ia-prog-pasos li.hecho::before { border-color:oklch(58% .15 150); background:oklch(58% .15 150); }
.ia-prog-pasos li.ahora { color:var(--arc-fg, #111); font-weight:600; }
.ia-prog-pasos li.ahora::before { border-color:oklch(65% .12 300); animation:ia-latido 1.2s ease-in-out infinite; }
@keyframes ia-latido { 50% { box-shadow:0 0 0 4px oklch(65% .12 300 / .18); } }
.ia-prog-archivos { margin:0; padding:10px 0 0; list-style:none; border-top:1px solid var(--arc-borde, oklch(94% 0 0)); }
.ia-prog-archivos li { display:flex; align-items:center; gap:8px; padding:3px 0; }
.ia-prog-nombre { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ia-prog-archivos small { color:var(--arc-mut, oklch(50% 0 0)); font-size:12.5px; }
.ia-prog-punto { width:8px; height:8px; border-radius:50%; background:oklch(85% 0 0); animation:ia-latido 1.2s ease-in-out infinite; }
.ia-prog-archivos li.hecho .ia-prog-punto { background:oklch(58% .15 150); animation:none; }
.ia-prog-archivos li.hecho small { color:oklch(40% .12 150); font-weight:600; }
.ia-prog-archivos li.error .ia-prog-punto { background:oklch(58% .19 25); animation:none; }
.ia-prog-archivos li.error small { color:oklch(48% .17 25); }
.ia-prog-nota { margin:8px 0 0; font-size:12px; color:var(--arc-mut, oklch(55% 0 0)); }
@media (prefers-reduced-motion: reduce) { .ia-prog-pasos li.ahora::before, .ia-prog-punto { animation:none; } }

#pre-riders-estado:not(.hidden) { margin:0 0 14px; }

.pre-comentarios { margin:14px 0 0; }
.pre-comentarios textarea { width:100%; min-height:72px; resize:vertical; line-height:1.5; }

/* Amortización de la máquina, en su ficha del almacén */
.alm-amort-campos { grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); }
.alm-amort-fuente { grid-column:1 / -1; }
.alm-amort-cifras { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:10px; margin-top:12px; }
.alm-amort-cifra { display:flex; flex-direction:column; gap:3px; padding:12px 14px; border-radius:14px; background:var(--fc-secondary, oklch(97.5% 0 0)); border:1px solid var(--fc-border, oklch(93% 0 0)); }
.alm-amort-cifra small { font-size:12px; color:var(--fc-muted, oklch(50% 0 0)); }
.alm-amort-cifra b { font-size:18px; font-weight:600; letter-spacing:-.01em; color:var(--fc-ink, #111); }
.alm-amort-cifra span { font-size:12.5px; color:var(--fc-muted, oklch(50% 0 0)); }
.alm-amort-cifra span b { font-size:12.5px; }
.alm-amort-cifra.destacada { background:var(--arc-gradient-soft, oklch(97.5% .016 300)); }
.alm-amort-cifra.destacada b { font-size:24px; }
.alm-amort-barra { display:block; height:5px; margin-top:4px; border-radius:999px; background:var(--fc-border, oklch(92% 0 0)); overflow:hidden; }
.alm-amort-barra em { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg, oklch(70% .12 300), oklch(76% .12 60)); }
.alm-amort-mas { color:var(--fc-success, oklch(48% .14 150)) !important; }
.alm-amort-menos { color:var(--fc-error, oklch(52% .18 25)) !important; }

/* Los fichajes de cada persona en la pestaña Personal del evento */
.alq-ev-fichajes { font-size:12.5px; color:var(--arc-sec, oklch(40% 0 0)); }
.alq-ev-fichajes summary { cursor:pointer; padding:4px 10px; border-radius:999px; background:var(--arc-sup-m, oklch(97% 0 0)); border:1px solid var(--arc-borde, oklch(92% 0 0)); white-space:nowrap; list-style:none; }
.alq-ev-fichajes summary::-webkit-details-marker { display:none; }
.alq-ev-fichajes summary b { color:var(--arc-fg, #111); font-weight:600; }
.alq-ev-fichajes { justify-self:end; }
.alq-ev-fichajes[open] summary { display:inline-block; }
.alq-ev-fichajes ul { margin:8px 0 2px; min-width:340px; padding:0; list-style:none; display:grid; gap:3px; }
.alq-ev-fichajes li { display:grid; grid-template-columns:90px 1fr auto; gap:10px; font-variant-numeric:tabular-nums; }
.alq-ev-fichajes li em { font-style:normal; color:var(--arc-fg, #111); }
.alq-ev-fich-mal { color:var(--arc-aviso, oklch(55% .15 70)); }
.alq-ev-sinfichar { padding:4px 10px; border-radius:999px; background:color-mix(in oklab, oklch(75% .15 80) 18%, transparent); color:oklch(45% .1 70); white-space:nowrap; }
