/* =====================================================================
   BLOQUE 20 — Facturas: «Descargar facturas» (ZIP por periodo), anteriores
   subidas en Facturas, líneas con categoría (propio / mentoring) y precio
   de la operación (propuesta o falta, en rojo). Tokens de bloque4/bloque8:
   Noche y Día sin colores sueltos.
   ===================================================================== */

/* Botón principal en la fila del año */
.b20-btn-desc{display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 18px; font-weight:800;}
.b20-btn-desc .ico-set{width:18px; height:18px;}

/* ---------- Ventana «Descargar facturas» ---------- */
.b20-dlg .b9-dlg-cuerpo{display:flex; flex-direction:column; gap:14px;}
.b20-modos{display:flex; flex-wrap:wrap; gap:8px;}
.b20-modos .chip{min-height:40px; padding:0 16px; font-weight:700;}
.b20-nav{display:flex; align-items:center; justify-content:center; gap:10px;}
.b20-per{font-size:1.15rem; font-weight:900; min-width:9ch; text-align:center;}
.b20-res{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px 16px; border-radius:var(--r-card);
  background:var(--b4-az-bg); border:1px solid var(--line);}
.b20-res-n{display:flex; align-items:baseline; gap:6px;}
.b20-res-n strong{font-size:2rem; font-weight:900; line-height:1; color:var(--b4-az-ink);}
.b20-res-n span{font-weight:700; color:var(--ink-soft);}
.b20-lista{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; max-height:min(46dvh, 420px); overflow:auto;}
.b20-fila{display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:10px 12px;
  border:1px solid var(--line); border-radius:14px; background:var(--surface);}
.b20-fila-ico{width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:var(--b4-az-bg); color:var(--b4-az-ink);}
.b20-t-anterior .b20-fila-ico{background:var(--b4-am-bg); color:var(--b4-am-ink);}
.b20-fila-ico .ico-set{width:16px; height:16px;}
.b20-fila-tx{display:flex; flex-direction:column; min-width:0;}
.b20-fila-tx strong{font-size:.9rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.b20-fila-tx span{font-size:.76rem; color:var(--ink-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.b20-fila-t{font-size:.92rem; white-space:nowrap;}
.b20-una:disabled{opacity:.4; cursor:default;}
.b20-dlg .b9-dlg-pie{display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap;}
.b20-zip{display:inline-flex; align-items:center; gap:8px; min-height:44px;}
.b20-zip .ico-set, .b20-csv .ico-set{width:18px; height:18px;}

/* ---------- Facturas → anteriores subidas ---------- */
.b20-ant{display:flex; flex-direction:column; gap:10px; min-width:0;}
.b20-ant-t{background:var(--b4-am-bg); color:var(--b4-am-ink);}
.b20-chip-ant{background:var(--b4-am-bg); color:var(--b4-am-ink);}
.b20-card .b7-card-top{flex-wrap:wrap;}

/* Categoría por línea */
.b20-cat{display:inline-flex; align-items:center; font-size:.68rem; font-weight:800; padding:3px 10px; border-radius:var(--r-pill);
  background:var(--b4-az-bg); color:var(--b4-az-ink); white-space:nowrap;}
.b20-cat-mentoring{background:var(--b4-am-bg); color:var(--b4-am-ink);}

/* ---------- Vista previa de la factura subida ---------- */
.b20-fv{display:flex; flex-direction:column; gap:10px;}
.b20-lineas{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px;}
.b20-linea{display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:8px; padding:8px 12px;
  border-radius:12px; background:var(--bg); border:1px solid var(--line);}
.b20-linea-c{font-size:.84rem; overflow-wrap:anywhere;}
.b20-linea-i{font-size:.86rem; white-space:nowrap;}
.b20-c-mentoring{border-color:var(--b4-am-bg);}
.b20-desglose{align-items:center;}
.b20-precio{display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:12px 14px; border-radius:var(--r-card);}
.b20-precio-prop{background:var(--b4-am-bg); border:1px solid var(--line);}
.b20-precio-falta{background:var(--b4-ro-bg); border:1px solid var(--line);}
.b20-precio-tx{display:flex; flex-direction:column; min-width:0; flex:1 1 180px;}
.b20-precio-l{font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft);}
.b20-precio-falta .b20-precio-l{color:var(--b8-ro-txt);}
.b20-precio-v{font-size:1.35rem; font-weight:900; color:var(--b4-am-ink);}
.b20-precio-de{font-size:.76rem; color:var(--ink-soft);}
.b20-precio-sw{flex:0 1 auto; margin:0;}
.b20-precio-falta input{flex:1 1 160px; min-height:44px; border-radius:var(--r-pill); border:1px solid var(--line-strong); background:var(--bg);
  color:var(--ink); padding:0 14px; font:inherit; min-width:0;}
.b20-nota{margin:0; font-size:.8rem; font-weight:600; color:var(--ink-soft);}
.b20-misma{color:var(--b4-az-ink);}

/* ---------- Cierres: precio que falta y desglose ---------- */
.b4-nc-dato.b20-falta{grid-column:1 / -1; gap:6px; padding:10px 12px; border-radius:14px; background:var(--b4-ro-bg); cursor:default;}
.b20-falta-l{color:var(--b8-ro-txt); font-weight:800;}
.b20-falta-fila{display:flex; gap:8px; align-items:center;}
.b20-falta-in{flex:1 1 auto; min-width:0; min-height:44px; border-radius:var(--r-pill); border:1px solid var(--line-strong); background:var(--bg);
  color:var(--ink); padding:0 14px; font:inherit;}
.b20-falta-ok{min-height:44px; flex:none;}
.b20-prop{display:flex; align-items:center; gap:8px 12px; flex-wrap:wrap; padding:8px 10px; border-radius:12px; background:var(--b4-am-bg);}
.b20-prop-v{font-size:1.05rem; font-weight:900; color:var(--b4-am-ink);}
.b20-prop-de{font-size:.74rem; color:var(--ink-soft); flex:1 1 140px;}
.b20-prop-ok{min-height:40px; padding:0 16px; border-radius:var(--r-pill); border:1.5px solid var(--b4-am-ink); color:var(--b4-am-ink); background:transparent; font-weight:800;}
.b20-desglose-card{margin-top:10px;}

@media (max-width:600px){
  .b20-btn-desc{flex:1 1 100%; justify-content:center;}
  .b20-fila{grid-template-columns:auto minmax(0,1fr) auto; }
  .b20-fila-ico{grid-row:1 / span 2;}
  .b20-fila-t{grid-column:2; font-size:.84rem;}
  .b20-fila .b20-una{grid-row:1 / span 2; grid-column:3;}
  .b20-dlg .b9-dlg-pie > *{flex:1 1 auto; justify-content:center;}
  .b20-linea{grid-template-columns:minmax(0,1fr) auto;}
  .b20-linea .b20-cat{grid-row:2; justify-self:start;}
}

/* ---------- Bloque 21: factura de la plantilla en Excel (vista previa) ---------- */
.b21-fv{display:flex; flex-direction:column; gap:10px; margin-top:10px;}
.b21-datos{align-items:center;}
.b21-aviso{margin:0;}
.b21-extra-t{margin-top:4px;}
.b21-extra{display:flex; flex-direction:column; gap:8px; padding:10px 12px; border-radius:var(--r-card); border:1px solid var(--line); background:var(--bg);}
.b21-extra .b4-switch-fila{margin:0;}
