/* ═══════════════════════════════════════════════════════════════════════════
   factoring-upload.css
   ───────────────────────────────────────────────────────────────────────────
   Estilos del apartado. Estaban DENTRO de factoring-upload.js, en un
   <style> escrito en la plantilla que devuelve la vista, y se movieron acá sin
   cambiar una línea.

   ⚠ El <link> va ÚLTIMO en el <head> de index.html. El navegador insertaba ese
   <style> en cada render, o sea después de todos los <link>: moverlo antes
   cambiaría qué regla gana en los empates de especificidad, y eso no se ve en
   ningún error — se ve en la pantalla, torcida.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── .fct-wrap ───────────────────────────────────────────────────── */
.fct-wrap{max-width:860px}
.fct-drop{border:2px dashed var(--border-2,#2f4156);border-radius:12px;padding:34px 20px;text-align:center;
  background:var(--navy-2,#111827);transition:border-color .18s,background .18s;cursor:pointer}
.fct-drop.over{border-color:var(--blue,#2563eb);background:var(--blue-glow,rgba(37,99,235,.18))}
.fct-drop .big{font-size:30px;margin-bottom:8px}
.fct-drop .t{font-size:14px;font-weight:600}
.fct-drop .s{font-size:12px;color:var(--text-3);margin-top:4px}
.fct-list{margin:16px 0;display:flex;flex-direction:column;gap:6px}
.fct-empty{font-size:12.5px;color:var(--text-3);padding:8px 2px}
.fct-file{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--navy-2,#111827);
  border:1px solid var(--border,#1f2b3e);border-radius:8px;font-size:13px}
.fct-file-name{font-weight:500}
.fct-file-size{color:var(--text-3);font-size:11.5px;font-family:ui-monospace,monospace}
.fct-file-x{margin-left:auto;background:none;border:none;color:var(--text-3);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:4px}
.fct-file-x:hover{color:var(--red-txt, var(--red,#ef4444));background:var(--red-bg,rgba(239,68,68,.12))}
.fct-actions{display:flex;gap:10px;margin:16px 0}
.fct-badge{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:6px}
.fct-badge.ok{color:var(--green,#10b981);background:var(--green-bg,rgba(16,185,129,.12));border:1px solid var(--green,#10b981)}
.fct-badge.err{color:var(--red-txt, var(--red,#ef4444));background:var(--red-bg,rgba(239,68,68,.12));border:1px solid var(--red,#ef4444)}
.fct-badge.warn{color:var(--amber,#eab308);background:rgba(234,179,8,.12);border:1px solid var(--amber,#eab308)}
.fct-err{font-size:11.5px;color:var(--text-3)}
.fct-result{margin-top:18px}
.fct-msg{font-size:13px;padding:10px 0}
.fct-msg.ok{color:var(--green,#10b981);font-weight:600}
.fct-msg.err{color:var(--red-txt, var(--red,#ef4444));font-weight:600}
.fct-sub{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:14px 0 6px;font-weight:600}
.fct-table{width:100%;border-collapse:collapse;font-size:12.5px}
.fct-table th{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border,#1f2b3e);color:var(--text-3);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}
.fct-table td{padding:8px 10px;border-bottom:1px solid var(--border,#1f2b3e)}
.fct-merge{font-size:13px;background:var(--navy-2,#111827);border:1px solid var(--border,#1f2b3e);border-radius:8px;padding:11px 13px;font-family:ui-monospace,monospace}
.fct-hint{font-size:12px;color:var(--text-3);margin-top:12px}
.fct-errbox{background:var(--red-bg,rgba(239,68,68,.12));border:1px solid var(--red,#ef4444);border-radius:8px;padding:10px 13px;margin:8px 0}
.fct-errtit{font-size:12px;font-weight:700;color:var(--red-txt, var(--red,#ef4444));margin-bottom:5px}
.fct-erritem{font-size:12px;color:var(--text-2);padding:2px 0}
.fct-merge.err{border-color:var(--red,#ef4444);color:var(--red-txt, var(--red,#ef4444))}
