/* ═══════════════════════════════════════════════════════════════════════════
   deuda-financiera.css
   ───────────────────────────────────────────────────────────────────────────
   Estilos del apartado. Estaban DENTRO de deuda-financiera.js, en una
   const CSS que una función inyectaba en un <style>, y se movieron acá sin
   cambiar una línea.

   ⚠ El <link> va ÚLTIMO en el <head> de index.html: el <style> inyectado se
   agregaba en tiempo de ejecución, 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.
   ═══════════════════════════════════════════════════════════════════════════ */

.fin{font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--mx-tinta,#dce6f0);font-size:13px}
.fin *{box-sizing:border-box}
.fin-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--mx-linea,#1e2a38);padding-bottom:14px;margin-bottom:18px}
.fin-h1{font-size:24px;font-weight:650;letter-spacing:-.02em;margin:0;display:flex;align-items:center;gap:10px}
.fin-sub{color:var(--mx-tinta-3,#7e91a8);margin:4px 0 0;font-size:12.5px}
.fin-seg{display:inline-flex;background:var(--mx-sup-alza,#121b27);border:1px solid var(--mx-linea,#243240);border-radius:10px;padding:3px}
.fin-seg button{background:none;border:0;color:var(--mx-tinta-2,#9db0c6);padding:7px 16px;font-size:13px;font-weight:550;border-radius:7px;cursor:pointer}
.fin-seg button.on{background:var(--mx-acento-solido,#1d4ed8);color:var(--mx-sobre-acento,#fff)}
.fin-tabs{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.fin-tab{background:var(--mx-sup-alza,#121b27);border:1px solid var(--mx-linea,#243240);color:var(--mx-tinta-2,#9db0c6);padding:7px 13px;border-radius:8px;cursor:pointer;font-size:12.5px;display:flex;align-items:center;gap:7px}
.fin-tab.on{border-color:var(--mx-acento,#38bdf8);color:var(--mx-tinta,#dce6f0);background:var(--mx-sup-alza,#10202e)}
.fin-tab .lk{font-size:11px;opacity:.8}
.fin-addtab{background:none;border:1px dashed var(--mx-linea-2,#2f4156);color:var(--mx-tinta-3,#7e91a8);padding:7px 12px;border-radius:8px;cursor:pointer;font-size:12.5px}
.fin-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.fin-lock{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--mx-tinta-2,#9db0c6)}
.fin-chip{padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600}
.fin-chip.locked{background:var(--mx-avi-bg,#2a1d12);color:var(--mx-avi,#f5b94d);border:1px solid var(--mx-avi-linea,#4a361f)}
.fin-chip.open{background:var(--mx-ok-bg,#0f2a1c);color:var(--mx-ok,#5fd6a0);border:1px solid var(--mx-ok,#1f4a36)}
.fin-btn{background:var(--mx-acento-solido,#1d4ed8);border:0;color:var(--mx-sobre-acento,#fff);padding:8px 15px;border-radius:8px;cursor:pointer;font-size:12.5px;font-weight:550}
.fin-btn.ghost{background:var(--mx-sup-alza,#16202c);border:1px solid var(--mx-linea-2,#2f4156);color:var(--mx-tinta-2,#cdd9e6)}
.fin-btn.warn{background:var(--mx-sup-alza,#16202c);border:1px solid var(--mx-avi-linea,#4a361f);color:var(--mx-avi,#f5b94d)}
.fin-btn:disabled{opacity:.45;cursor:not-allowed}
.fin-card{background:var(--mx-sup,#0f1722);border:1px solid var(--mx-linea,#1e2a38);border-radius:12px;padding:16px 16px 18px;margin-bottom:16px}
.fin-card h3{margin:0 0 3px;font-size:14.5px;font-weight:620;letter-spacing:-.01em}
.fin-card .desc{color:var(--mx-tinta-3,#7e91a8);font-size:12px;margin:0 0 12px}
.fin-params{display:flex;gap:22px;flex-wrap:wrap;align-items:flex-end}
.fin-field{display:flex;flex-direction:column;gap:5px}
.fin-field label{font-size:11px;color:var(--mx-tinta-3,#8da0b7);text-transform:uppercase;letter-spacing:.04em}
.fin-in{background:var(--mx-sup-hund,#0a1019);border:1px solid var(--mx-linea-2,#28384a);color:var(--mx-tinta,#e6eef7);border-radius:7px;padding:7px 9px;font-size:12.5px;font-variant-numeric:tabular-nums}
.fin-in:focus{outline:none;border-color:var(--mx-acento,#38bdf8)}
.fin-in:disabled{opacity:.6}
.fin-tbhd{font-size:13px;font-weight:620;margin:0}
.fin-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--mx-tinta-2,#9db0c6)}
.fin-pill b{color:var(--mx-tinta,#dce6f0);font-variant-numeric:tabular-nums}
.fin-pill.bad b{color:var(--mx-error,#ff7676)}
.fin-pill.good b{color:var(--mx-ok,#5fd6a0)}
.fin-scroll{overflow-x:auto;border:1px solid var(--mx-linea,#1c2734);border-radius:10px}
table.fin-t{border-collapse:collapse;width:100%;font-size:12px;min-width:640px}
/* ⚠ Los encabezados ENVUELVEN, no van en una línea. Llevan nombres de banco, y
   con \`nowrap\` un nombre que no entra en su columna no se recorta: se pinta
   ENCIMA de las columnas vecinas. Medido con un nombre de 33 caracteres: caja
   de 122px, contenido de 224px. El defecto existía desde antes del rediseño y
   no se veía porque los datos de prueba tenían nombres cortos — apareció recién
   al endurecer el generador. \`overflow-wrap\` corta la palabra solo si ni
   partiendo por espacios alcanza. */
.fin-t th{background:var(--mx-sup-alza,#10202e);color:var(--mx-tinta-2,#9db0c6);font-weight:600;text-align:right;padding:8px 10px;white-space:normal;overflow-wrap:anywhere;border-bottom:1px solid var(--mx-linea,#233140)}
.fin-t th.l,.fin-t td.l{text-align:left}
.fin-t td{padding:6px 10px;text-align:right;border-bottom:1px solid var(--mx-linea,#16212d);white-space:nowrap;font-variant-numeric:tabular-nums}
.fin-t tr:hover td{background:var(--mx-sup-hund,#0d1620)}
.fin-t tfoot td{font-weight:650;color:var(--mx-tinta,#e6eef7);border-top:2px solid var(--mx-linea,#233140);background:var(--mx-sup-hund,#0e1a26)}
.fin-t .cell-in{background:var(--mx-sup-hund,#0a1019);border:1px solid var(--mx-linea,#243240);color:var(--mx-tinta,#e6eef7);border-radius:5px;padding:4px 6px;font-size:12px;width:100%;text-align:right;font-variant-numeric:tabular-nums}
.fin-t .cell-in.l{text-align:left}
.fin-t .cell-in:focus{outline:none;border-color:var(--mx-acento,#38bdf8)}
.fin-t .cell-in:disabled{opacity:.65}
.fin-t select.cell-in{text-align:left}
.fin select.cell-in,.fin select.fin-in{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding-right:26px;background:var(--mx-sup-hund,#0a1019) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237e91a8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 8px center;background-size:11px}
.fin select.cell-in:hover:not(:disabled),.fin select.fin-in:hover:not(:disabled){border-color:var(--mx-linea-2,#2f4156)}
.fin select.cell-in:focus,.fin select.fin-in:focus{border-color:var(--mx-acento,#38bdf8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2338bdf8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}
.fin select.cell-in:disabled,.fin select.fin-in:disabled{cursor:not-allowed;background-image:none}
.fin select.cell-in option,.fin select.fin-in option{background:var(--mx-sup,#0f1722);color:var(--mx-tinta,#e6eef7)}
.fin select.cell-in option:checked,.fin select.fin-in option:checked{background:var(--mx-acento-tenue,#13243a);color:var(--mx-tinta,#fff)}
.fin-del{background:none;border:0;color:var(--mx-tinta-3,#6f8197);cursor:pointer;font-size:14px;padding:0 4px}
.fin-del:hover{color:var(--mx-error,#ff7676)}
.fin-tbl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:9px}
.fin-add{background:var(--mx-sup-alza,#10202e);border:1px solid var(--mx-linea-2,#2f4156);color:var(--mx-acento,#7fd0f5);padding:6px 11px;border-radius:7px;cursor:pointer;font-size:12px}
.fin-add:disabled{opacity:.4;cursor:not-allowed}
.fin-warns{background:var(--mx-avi-bg,#1c1409);border:1px solid var(--mx-avi-linea,#4a361f);border-radius:10px;padding:11px 14px;margin-bottom:16px}
.fin-warns .ttl{color:var(--mx-avi,#f5b94d);font-weight:600;font-size:12.5px;margin-bottom:5px}
.fin-warns ul{margin:0;padding-left:18px;color:var(--mx-avi,#d9c39b);font-size:12px}
.fin-alert{background:var(--mx-error-bg,#2a1216);border:1px solid var(--mx-error,#5a2630);border-radius:10px;padding:10px 13px;margin-bottom:11px;color:var(--mx-error,#ff8585);font-size:12.5px;display:flex;gap:8px;align-items:center}
.fin-note{font-size:11.5px;color:var(--mx-tinta-3,#7e91a8);margin-top:9px;display:flex;gap:7px;align-items:flex-start}
.fin-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.fin-kpi{background:var(--mx-sup,#0f1722);border:1px solid var(--mx-linea,#1e2a38);border-radius:11px;padding:13px 15px}
.fin-kpi .k{font-size:11px;color:var(--mx-tinta-3,#8da0b7);text-transform:uppercase;letter-spacing:.04em}
.fin-kpi .v{font-size:21px;font-weight:640;margin-top:5px;font-variant-numeric:tabular-nums}
.fin-kpi.accent .v{color:var(--mx-acento,#7fd0f5)}
.fin-kpi.gold{border-color:var(--mx-avi-linea,#4a361f)}.fin-kpi.gold .v{color:var(--mx-avi,#f5b94d)}
.fin-kpi.teal{border-color:var(--mx-teal,#1f4a44)}.fin-kpi.teal .v{color:var(--mx-teal,#5fd6c4)}
/* Deuda de alimento: columnas semanales. Se dibuja con divs, como el resto del
   apartado, que no usa librería de gráficos. */
.fin-alim-wrap{display:flex;align-items:flex-end;gap:3px;height:160px;padding:6px 2px 0;overflow-x:auto}
.fin-alim-col{flex:1 0 18px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.fin-alim-bar{width:100%;max-width:26px;border-radius:4px 4px 0 0;background:var(--mx-teal,#2f7d74);transition:height .5s ease}
.fin-alim-col:hover .fin-alim-bar{background:var(--mx-teal,#43a99d)}
.fin-alim-bar.on{background:var(--mx-teal,#5fd6c4)}
.fin-alim-lab{font-size:9.5px;color:var(--mx-tinta-3,#6f8197);margin-top:5px;font-variant-numeric:tabular-nums}
.fin-alim-pie{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px;padding-top:11px;border-top:1px solid var(--mx-linea,#1c2734);font-size:12.5px;color:var(--mx-tinta-2,#b9c7d8)}
.fin-alim-pie b{font-variant-numeric:tabular-nums}
.fin-sep{height:1px;background:var(--mx-linea,#1c2734);margin:4px 0 0}
.fin-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.fin-grid2{grid-template-columns:1fr}}
.fin-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.fin-bar-lab{width:120px;font-size:12px;color:var(--mx-tinta-2,#b9c7d8);text-align:right;flex-shrink:0}
.fin-bar-track{flex:1;background:var(--mx-sup-hund,#0a1019);border-radius:6px;height:22px;position:relative;overflow:hidden;border:1px solid var(--mx-linea,#1a2533)}
.fin-bar-fill{height:100%;border-radius:5px 0 0 5px;transition:width .5s ease}
.fin-bar-val{width:120px;font-size:12px;font-variant-numeric:tabular-nums;flex-shrink:0;color:var(--mx-tinta,#dce6f0)}
.fin-donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.fin-donut{width:150px;height:150px;border-radius:50%;flex-shrink:0;position:relative}
.fin-donut::after{content:"";position:absolute;inset:26px;background:var(--mx-sup,#0f1722);border-radius:50%}
.fin-leg{display:flex;flex-direction:column;gap:7px}
.fin-leg div{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mx-tinta-2,#c3d0df)}
.fin-dot{width:11px;height:11px;border-radius:3px;flex-shrink:0}
.fin-insight{display:flex;gap:11px;padding:11px 13px;border-radius:10px;background:var(--mx-sup-hund,#0d1620);border:1px solid var(--mx-linea,#1c2734);margin-bottom:10px}
.fin-insight .ic{font-size:16px;line-height:1.3}
.fin-insight .tx{font-size:12.5px;color:var(--mx-tinta-2,#c8d4e2);line-height:1.45}
.fin-insight .tx b{color:var(--mx-tinta,#fff)}
.fin-insight.good{border-color:var(--mx-ok,#1f4a36)}.fin-insight.good .ic{color:var(--mx-ok,#5fd6a0)}
.fin-insight.watch{border-color:var(--mx-avi-linea,#4a361f)}.fin-insight.watch .ic{color:var(--mx-avi,#f5b94d)}
.fin-insight.bad{border-color:var(--mx-error,#5a2630)}.fin-insight.bad .ic{color:var(--mx-error,#ff8585)}
.fin-cover{display:flex;align-items:flex-end;gap:18px}
.fin-cover .col{flex:1;text-align:center}
.fin-cover .colbar{margin:0 auto;width:62px;border-radius:6px 6px 0 0;transition:height .5s}
.fin-cover .lab{font-size:11.5px;color:var(--mx-tinta-3,#8da0b7);margin-top:7px}
.fin-cover .amt{font-size:13px;font-variant-numeric:tabular-nums;margin-top:3px}
.fin-empty{text-align:center;color:var(--mx-tinta-3,#7e91a8);padding:60px 20px}
.fin-dd{position:relative;display:inline-block;width:100%}
.fin-dd-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:var(--mx-sup-hund,#0a1019);border:1px solid var(--mx-linea,#243240);color:var(--mx-tinta,#e6eef7);border-radius:5px;padding:4px 8px;font-size:12px;cursor:pointer;text-align:left;font-family:inherit;line-height:1.5}
.fin-dd-btn:hover:not(:disabled){border-color:var(--mx-linea-2,#2f4156)}
.fin-dd-btn.open{border-color:var(--mx-acento,#38bdf8)}
.fin-dd-btn:disabled{opacity:.65;cursor:not-allowed}
.fin-dd-btn .cv{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-dd-btn .ch{flex-shrink:0;color:var(--mx-tinta-3,#7e91a8);font-size:10px;transition:transform .15s}
.fin-dd-btn.open .ch{transform:rotate(180deg);color:var(--mx-acento,#38bdf8)}
.fin-dd-back{position:fixed;inset:0;z-index:998;background:transparent}
.fin-dd-menu{position:fixed;z-index:999;background:var(--mx-sup,#0f1722);border:1px solid var(--mx-linea-2,#2a3a4c);border-radius:8px;padding:5px;box-shadow:0 10px 28px rgba(0,0,0,.5);max-height:280px;overflow-y:auto;min-width:170px}
.fin-dd-opt{padding:7px 10px;border-radius:5px;font-size:12.5px;color:var(--mx-tinta-2,#cdd9e6);cursor:pointer;white-space:nowrap}
.fin-dd-opt:hover{background:var(--mx-sup-alza,#10202e);color:var(--mx-tinta,#e6eef7)}
.fin-dd-opt.sel{background:var(--mx-acento-tenue,#13243a);color:var(--mx-tinta,#fff)}
.fin-dd-opt.sel::after{content:" ✓";color:var(--mx-acento,#38bdf8)}
.fin-dd-sep{height:1px;background:var(--mx-linea,#243240);margin:5px 2px}
.fin-dd-add{padding:7px 10px;border-radius:5px;font-size:12px;color:var(--mx-acento,#7fd0f5);cursor:pointer;display:flex;align-items:center;gap:6px}
.fin-dd-add:hover{background:var(--mx-sup-alza,#10202e)}
.fin-dd-addrow{display:flex;gap:6px;padding:4px 4px 2px}
.fin-dd-addrow input{flex:1;min-width:0;background:var(--mx-sup-hund,#0a1019);border:1px solid var(--mx-acento,#38bdf8);color:var(--mx-tinta,#e6eef7);border-radius:5px;padding:6px 8px;font-size:12px;outline:none}
.fin-dd-addrow button{background:var(--mx-acento-solido,#1d4ed8);border:0;color:var(--mx-sobre-acento,#fff);border-radius:5px;padding:0 10px;font-size:12px;cursor:pointer}
.fin-modal-back{position:fixed;inset:0;z-index:1000;background:rgba(4,8,13,.62);display:flex;align-items:center;justify-content:center;padding:20px}
.fin-modal{background:var(--mx-sup,#0f1722);border:1px solid var(--mx-linea,#243240);border-radius:14px;padding:22px 22px 18px;width:100%;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.fin-modal h3{margin:0 0 8px;font-size:16px;font-weight:620;color:var(--mx-tinta,#f1f5f9);display:flex;align-items:center;gap:9px}
.fin-modal .ic{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--mx-error-bg,#2a1216);color:var(--mx-error,#ff8585);font-size:15px;flex-shrink:0}
.fin-modal p{margin:0 0 18px;font-size:13px;color:var(--mx-tinta-2,#b9c7d8);line-height:1.5}
.fin-modal p b{color:var(--mx-tinta,#e6eef7)}
.fin-modal-actions{display:flex;justify-content:flex-end;gap:9px}
