
/* ---------- Leyendas «i» (se explican al pasar el ratón o al tocar) ---------- */
.info{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;
  margin-left:6px;border-radius:50%;border:1px solid var(--line);background:var(--card2);
  color:var(--mut);font-size:11px;font-style:normal;line-height:1;cursor:help;position:relative;
  vertical-align:1px;padding:0}
.info:hover,.info:focus{color:var(--tx);border-color:var(--acc);outline:none}
.info::after{content:attr(data-tip);position:absolute;left:50%;bottom:140%;transform:translateX(-50%);
  width:min(300px,70vw);background:#101722;color:var(--tx);border:1px solid var(--line);border-radius:9px;
  padding:9px 11px;font-size:12.5px;line-height:1.45;box-shadow:0 12px 30px rgba(0,0,0,.5);
  opacity:0;visibility:hidden;transition:opacity .12s ease;z-index:60;text-align:left;pointer-events:none}
.info:hover::after,.info:focus::after{opacity:1;visibility:visible}

/* ------------------------- Inquilinos (clientes) ------------------------- */
.sel-inq{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-bottom:1px solid var(--line)}
.sel-inq select{width:100%;background:var(--card2);color:var(--tx);border:1px solid var(--line);
  border-radius:8px;padding:7px 9px;font-size:13px}
.linea-inq{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0}
.linea-inq code{background:var(--card2);border:1px solid var(--line);border-radius:6px;padding:3px 7px;font-size:12.5px}
.linea-inq form{margin:0}

/* Con JS la leyenda se pinta en una ventana fija: así no la recorta la fila
   (`overflow:hidden`) ni ningún otro contenedor. Lo de arriba queda como respaldo sin JS. */
.js .info::after{display:none}
.js .tip-flotante{position:fixed;z-index:400;max-width:min(320px,88vw);background:#101722;color:var(--tx);
  border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:12.5px;line-height:1.45;
  box-shadow:0 12px 30px rgba(0,0,0,.5);text-align:left;pointer-events:none}
.js .tip-flotante[hidden]{display:none}

/* ---------- Campos con error: marcados, sin perder lo escrito ---------- */
label.mal input,label.mal select,label.mal textarea,
textarea.mal{border-color:#e0524a;background:#2a1a1c;box-shadow:0 0 0 3px rgba(224,82,74,.14)}
.mal::after{content:" ⚠ revisa este campo";color:#e0524a;font-size:12px}

/* ---------- Elección «un destino» / «multidestino» (en una sola línea) ---------- */
/* Ojo: dentro de .rejilla-form los <label> traen flex:1 1 190px y flex-direction:column,
   lo que apilaba las dos opciones. Aquí se devuelven a su tamaño natural y en fila. */
.radios{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:18px;
  flex:0 1 auto;width:auto;background:var(--card2);border:1px solid var(--line);
  border-radius:9px;padding:10px 12px}
.radios label{display:flex;flex-direction:row;align-items:center;gap:8px;
  flex:0 0 auto;width:auto;font-size:13.5px;color:var(--tx);cursor:pointer;white-space:nowrap}
.radios input{width:auto;margin:0;flex:0 0 auto}

/* ---------- URL que va impresa en el QR: seleccionable y copiable ---------- */
.enlace{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}
.enlace input{flex:1 1 240px;min-width:180px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:13px;padding:7px 9px;border-radius:8px;border:1px solid var(--line);
  background:var(--card2);color:var(--tx);cursor:text}
.enlace input:focus{outline:none;border-color:var(--acc)}
.enlace .btn{flex:0 0 auto}

/* ---------- Guía de primeros pasos ---------- */
.guia,.lista-ayuda{font-size:13.5px}
.guia .cuerpo ol{margin:6px 0 8px 18px;padding:0;display:flex;flex-direction:column;gap:6px}
.lista-ayuda{margin:6px 0 10px 18px;padding:0;display:flex;flex-direction:column;gap:5px}

/* ---------- Arrastrar carpetas y campañas en el árbol ---------- */
.node[draggable="true"]{cursor:grab}
.node.arrastrando{opacity:.45}
.node.soltando{background:var(--card2);outline:1px dashed var(--acc);outline-offset:-2px}
.rail.soltando::after{content:"soltar en la raíz";display:block;margin:6px 10px;padding:6px;
  border:1px dashed var(--line);border-radius:8px;color:var(--mut);font-size:12px;text-align:center}
