/* Finanzas: Caja · P&L · Presupuesto · Proyectos · Tarjetas · Mesa de cierre.
   Solo tokens de base.css; las tarjetas, pestañas y textos pequeños son los
   de base.css («Primitivas de vista») (.card, .vtabs, .hint). */
#view-finanzas,#view-tarjetas{overflow-y:auto}
.fz-tachado{text-decoration:line-through;opacity:.5}

/* Cifras grandes */
.fz-cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:14px}
.fz-cifra{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:var(--radius);background:var(--c-surface2);min-width:0}
.fz-cifra b{font-size:20px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--c-text)}
.fz-lbl{font-size:10.5px;font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--c-text3);display:flex;align-items:center;gap:6px}

/* Tablas: .tabla* (wrap, n, sang, grp) viven en base.css */
.fz-proy-fila{cursor:pointer}
.fz-proy-nombre{text-align:left;padding:0;font-size:inherit;font-weight:600;color:var(--c-text);text-decoration:none}
.fz-barcell{width:22%;min-width:80px}
.fz-barwrap{width:100%;height:8px;background:var(--c-surface2);border-radius:6px;overflow:hidden}
.fz-bar{height:100%;border-radius:6px;background:var(--c-text3)}
.fz-bar.mal{background:var(--c-red)}

/* Movimientos y recurrentes */
.fz-mov{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto 28px;align-items:center;gap:10px;font-size:13px}
.fz-mov.off{opacity:.5}
.fz-mov-fecha{font-size:12px;color:var(--c-text3);font-variant-numeric:tabular-nums;width:40px}
.fz-mov-desc{color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fz-mov-imp{font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.fz-mov-venc{grid-template-columns:auto auto minmax(0,1fr) auto auto}
.fz-rec{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(4.5rem,auto) 28px}   /* recurrente: nombre · detalle (flexible) · importe · quitar */
.fz-mov-acc{display:flex;gap:4px;align-items:center}
.fz-mov .btn-icon{opacity:0}
.fz-mov:hover .btn-icon{opacity:1}
.fz-fila{display:flex;align-items:center;gap:10px;padding:8px 0;flex-wrap:wrap;font-size:13px}
.fz-fila+.fz-fila{border-top:1px solid var(--c-border)}
.fz-fila-t{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1 1 200px;color:var(--c-text)}
.fz-fila-t .hint{margin-left:0}
.fz-fila-imp{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.fz-aviso{padding:12px 14px;margin-bottom:14px;border-radius:var(--radius);background:color-mix(in srgb,var(--c-warning) 10%,transparent);border:1px solid color-mix(in srgb,var(--c-warning) 35%,transparent);color:var(--c-text);font-size:13px;line-height:1.5}
.fz-aviso .btn{margin-left:6px}
.fz-modal-acc{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
/* Caja: provisiones del 4109 con su mes de pago y recurrentes propuestas desde el cierre */
.fz-caja-prov{grid-template-columns:minmax(0,1fr) auto 150px auto}
.fz-caja-mes{width:150px;padding:4px 8px;font-size:13px;font-variant-numeric:tabular-nums}

/* Presupuesto */
.fz-presu-cell{display:inline-flex;align-items:center;gap:4px;justify-content:flex-end}
.fz-presu-hueco{width:28px;flex:none}

/* Personal y cuadre */
.fz-mesnav{display:flex;align-items:center;gap:4px;margin-left:auto}
.fz-mesnav-l{font-size:13px;font-weight:600;color:var(--c-text);min-width:120px;text-align:center}
.fz-pers-row{cursor:pointer;transition:background var(--tr)}
.fz-pers-row:hover td{background:var(--c-surface2)}
.fz-cuadre-res{padding:12px 14px;margin-bottom:14px;border-radius:var(--radius);background:var(--c-surface2);font-size:13.5px;line-height:1.55}
.fz-cuadre-ok td:nth-child(4),.fz-cuadre-ok td:nth-child(5){color:var(--c-green)}
.fz-cuadre-aviso td:nth-child(4),.fz-cuadre-aviso td:nth-child(5){color:var(--c-warning)}
.fz-cuadre-malo td{background:color-mix(in srgb,var(--c-red) 5%,transparent)}
.fz-cuadre-malo td:nth-child(4),.fz-cuadre-malo td:nth-child(5){color:var(--c-red)}
.fz-cuadre-sin td{color:var(--c-text3)}

/* ── Previsión, fugas, contable ─────────────────────────────────────────── */
.pv-ejerc{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 14px;margin-bottom:14px;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface2);font-size:13.5px;line-height:1.5;color:var(--c-text)}
.pv-ejerc.edit{flex-direction:column;align-items:stretch;gap:7px}
.pv-ejerc-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.pv-ejerc-form .form-group{margin:0}
.pv-mas{margin:12px 0;display:flex;justify-content:center}
.pv-suelo{margin-top:14px;padding:12px 14px;border-radius:var(--radius);background:var(--c-surface2);border:1px solid var(--c-border);font-size:12.5px;line-height:1.6;color:var(--c-text2)}
.pv-suelo b{color:var(--c-text)}
.pv-suelo-barra{display:flex;height:7px;border-radius:4px;overflow:hidden;background:var(--c-border)}
.pv-suelo-barra>span{min-width:2px}
.pv-cj-estructura{background:var(--c-text2)}
.pv-cj-produccion{background:var(--c-accent)}
.pv-cj-discrecional{background:var(--c-warning)}
.pv-cj-punto{display:inline-block;width:9px;height:9px;border-radius:3px;flex:0 0 auto;margin-right:6px}
.pv-cajones{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:11px 0}
.pv-cajon{display:flex;align-items:flex-start;gap:2px}
.pv-cajon .fz-fila-t b{font-size:12.5px}
.pv-suelo-t{display:block;margin-top:4px}
.pv-suelo .link-btn{margin-left:4px}
.pv-fijos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:13px;padding-top:12px;border-top:1px solid var(--c-border)}
.pv-fijos>.hint{grid-column:1/-1}
.pv-fijos-col{display:flex;flex-direction:column;gap:4px}
.pv-fijos-col>.hint{margin-bottom:3px}
.pv-fijo-l{display:flex;flex-direction:column;gap:5px;padding:7px 9px;border-radius:7px;border:1px solid var(--c-border);background:var(--c-surface)}
.pv-fijo-n{font-size:12.5px;color:var(--c-text);line-height:1.35;overflow-wrap:anywhere}
.pv-fijo-pie{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.pv-fijo-pie>b{font-variant-numeric:tabular-nums;font-size:12.5px;margin-right:auto;color:var(--c-text)}
.pv-fijo-l.manual{border-style:dashed;border-color:var(--c-accent)}
.pv-fijo-mv{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;border:1px solid var(--c-border);background:var(--c-surface2);color:var(--c-text3);font-family:var(--font);font-size:10.5px;cursor:pointer;white-space:nowrap;min-height:22px}
.pv-fijo-mv:hover{border-color:var(--c-text2);color:var(--c-text)}
.pv-fijo-mv .ic{font-size:13px}
.pv-fijo-mv .pv-cj-punto{width:7px;height:7px;margin:0}
.pv-fijo-mv.auto{font-style:italic}
.pv-preg{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.pv-preg .form-input{flex:1 1 260px;min-width:0;width:auto}
.pv-sugerencias{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.pv-lectura{font-size:13.5px;line-height:1.6;color:var(--c-text)}
.pv-lectura p{margin:0 0 10px}
.pv-lectura>b{display:block;margin:12px 0 5px;font-size:12px;text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--c-text3)}
.pv-lect-tit{font-size:15px;font-weight:600;line-height:1.45}
.pv-lectura ol,.pv-lectura ul{margin:0 0 10px;padding-left:20px}
.pv-lectura li{margin-bottom:5px}
.pv-sinapi{margin-top:10px;padding-top:9px;border-top:1px dashed var(--c-border)}
.pv-serie{display:flex;gap:9px;align-items:flex-end;overflow-x:auto;padding:6px 2px 0}
.pv-serie+.hint{margin-top:8px}
.pv-mes{flex:1 0 54px;display:flex;flex-direction:column;align-items:center;gap:4px}
.pv-bars{display:flex;gap:3px;align-items:flex-end;height:96px;width:100%;justify-content:center;position:relative}
.pv-umbral{position:absolute;left:2px;right:2px;height:0;border-top:2px dashed var(--c-red);opacity:.65;pointer-events:none}
.pv-bar{width:12px;border-radius:3px 3px 0 0;min-height:2px}
.pv-bar.fac{background:var(--c-accent);opacity:.5}
.pv-bar.gas{background:var(--c-text2);opacity:.55}
.pv-mes-r{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.pv-mes-r.bien{color:var(--c-green)}
.pv-mes-r.mal{color:var(--c-red)}
.pv-mes-l{font-size:10px;color:var(--c-text3);text-transform:uppercase;letter-spacing:var(--tracking-caps)}
.pv-estac{display:flex;gap:8px;align-items:flex-end;overflow-x:auto;padding:6px 2px 0}
.pv-estac-m{flex:1 0 42px;display:flex;flex-direction:column;align-items:center;gap:4px}
.pv-estac-barwrap{display:flex;align-items:flex-end;height:84px;width:100%;justify-content:center}
.pv-estac-bar{width:18px;border-radius:3px 3px 0 0;min-height:2px;background:var(--c-green);opacity:.6}
.pv-estac-bar.mal{background:var(--c-red)}
.pv-estac-bar.neutra{background:var(--c-text3)}   /* histórico de la gestoría: sin resultado, sin color */
.pv-estac-i{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--c-text2)}

/* ── Tarjetas ────────────────────────────────────────────────────────────── */
.tj-chips .filtro.off{opacity:.55;text-decoration:line-through}
.tj-ult4{font-variant-numeric:tabular-nums;opacity:.8}
.tj-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:6px 12px;font-size:13px}
.tj-row-dup{background:color-mix(in srgb,var(--c-warning) 8%,transparent);border-radius:var(--radius);padding:9px 8px;margin:0 -8px}
.tj-row-main{min-width:0}
.tj-row-prov{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--c-text);min-width:0;flex-wrap:wrap}
.tj-row-prov>span:first-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tj-row-file{color:var(--c-text2);display:inline-flex}
.tj-row-file:hover{color:var(--c-text)}
.tj-row-file .ic{font-size:18px}
.tj-row-fis{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.tj-row-imp{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--c-text)}
.tj-row-acc{display:flex;align-items:center;gap:2px}
.tj-row .btn-icon{opacity:0}
.tj-row:hover .btn-icon{opacity:1}
.tj-ocr-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.tj-ocr-row .hint{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Cámara del móvil (tjCamFoto): lo que leyó la IA y a qué tarjeta va */
.tj-cam-skel{height:96px;margin-top:12px}
.tj-cam-res{display:flex;flex-direction:column;gap:4px}
.tj-cam-res>b{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}
.tj-cam-res>span{color:var(--c-text2)}
#tj-cam-body .rotulo{display:block;margin:20px 0 6px}
.tj-cam-card{width:100%;border-width:1px 0 0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.tj-cam-card:disabled{opacity:.5;cursor:default}
#tj-ocr-hint{min-height:18px;margin-bottom:10px;line-height:1.5}
.tj-card-row{display:grid;grid-template-columns:auto minmax(0,1fr) 170px 28px;align-items:center;gap:10px;font-size:13px}
.tj-card-row.off{opacity:.6}
.tj-card-row>.ic{color:var(--c-text3)}
.tj-card-row-t{display:flex;flex-direction:column;min-width:0;color:var(--c-text)}
.tj-card-tit{padding:5px 8px;font-size:12.5px}

/* ── Editor de retribución ─────────────────────────────────────────────── */
.ret-ed-modal{width:720px}
.ret-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 12px}
.ret-grid-2{grid-template-columns:1fr 2fr}
.ret-grid .form-group{margin:0}
.ret-span{grid-column:1 / -1}
.ret-h{font-size:11px;font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--c-text3);margin:16px 0 8px}
.ret-fac-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px 0 6px;flex-wrap:wrap}
.ret-fac-row{display:grid;grid-template-columns:2fr 1fr 1fr 28px;gap:8px;align-items:center;margin-top:6px}
.ret-out{margin-top:12px;font-size:13px;color:var(--c-text2);line-height:1.6}
.ret-out b{color:var(--c-text)}
.ret-out-cifras{padding:10px 12px;border-radius:var(--radius);background:var(--c-surface2)}
.ret-kpi{margin-bottom:6px}
.ret-cal{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ret-pago{display:inline-flex;gap:4px;padding:3px 9px;border-radius:999px;background:var(--c-surface2);font-size:12px;color:var(--c-text)}
.ret-acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.ret-tramo{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto 28px;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--c-border);font-size:13px}
.ret-tramo:last-child{border-bottom:none}
.ret-tramo.vigente .ret-tramo-f{color:var(--c-green)}
.ret-tramo-f{font-variant-numeric:tabular-nums;color:var(--c-text2);white-space:nowrap}
.ret-tramo-i{min-width:0;color:var(--c-text)}

/* ── Mesa de cierre (js/mesaCierre.js) ───────────────────────────────────
   Solo tokens. Cascada, rejilla de bonus, líneas con importe editable y las
   etiquetas verde (decisión tuya) / ámbar (necesita un papel). */
/* ═══ Mesa de cierre ═══
   Dos columnas: las palancas a la izquierda; el resultado, quieto a la derecha,
   se recalcula con cada cambio. Lienzo abierto: secciones con aire y filetes;
   el único grupo con relleno es el resultado. */
#fz-body:has(>.mesa){width:min(1240px,100% - 64px)}
.mesa{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start}
.mesa-main{min-width:0;display:flex;flex-direction:column;gap:56px}
.mesa-main>*{min-width:0}
.mesa-aside{position:sticky;top:80px}
.mesa-main>.card>.card-h .section-title{font-size:20px;font-weight:700;letter-spacing:-0.015em}
.msec-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.msec-h h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-0.015em;color:var(--c-text)}
.msec-p{margin:6px 0 0;max-width:640px;font-size:13.5px;line-height:1.55;color:var(--c-text2)}
.mc-fac{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:16px 0 10px}
.mc-fac-in{width:150px}
.mc-fac-in .form-input{font-size:15px;font-weight:600}
.mc-regla{display:flex;gap:8px;align-items:flex-start;margin-top:14px;font-size:12.5px;line-height:1.5;color:var(--c-text2)}
.mc-regla .ic{flex-shrink:0;font-size:17px;color:var(--c-warning);margin-top:1px}
.mc-regla b{color:var(--c-text);font-weight:600}
/* Resultado: cifra grande, la frase y la cascada con la barra debajo de cada paso */
.mc-res{padding:20px 20px 16px;border-radius:var(--radius-xl,20px);background:var(--col-bg)}
.mc-res-h{display:flex;align-items:center;gap:6px}
.mc-res-n{margin:6px 0 2px;font-size:44px;font-weight:700;letter-spacing:-0.03em;line-height:1.05;font-variant-numeric:tabular-nums;color:var(--c-text)}
.mc-res-n.bad{color:var(--c-red)}
.mc-res-n small{margin-left:4px;font-size:20px;font-weight:500;color:var(--c-text3);letter-spacing:0}
.mc-res-frase{margin:0;font-size:13px;line-height:1.5;color:var(--c-text2)}
.mc-res-frase b{color:var(--c-text);font-weight:600;font-variant-numeric:tabular-nums}
.mc-wf{display:flex;flex-direction:column;margin-top:18px}
.mc-wf-r{display:grid;grid-template-columns:minmax(0,1fr) 88px;column-gap:10px;align-items:center;padding:6px 0}
.mc-wf-n{font-size:12.5px;color:var(--c-text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-wf-v{font-size:12.5px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mc-wf-v.neg{color:var(--c-red)}
.mc-wf-t{grid-column:1 / -1;position:relative;height:6px;margin-top:5px;border-radius:3px;background:color-mix(in srgb,var(--c-border) 60%,transparent)}
.mc-wf-b{position:absolute;top:0;height:100%;border-radius:3px}
.mc-wf-z{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--c-border2)}
.mc-wf-r.dim{opacity:.45}
.mc-wf-r.tot{margin-top:6px;padding-top:12px;border-top:1px solid var(--c-border2)}
.mc-wf-r.tot .mc-wf-n{color:var(--c-text);font-weight:600}
.mc-wf-r.tot .mc-wf-v{font-size:14px}
.mc-res-st{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--c-border2)}
.mc-res-st div{min-width:0}
.mc-res-st span{display:block;font-size:11.5px;color:var(--c-text3);line-height:1.3}
.mc-res-st b{display:block;margin-top:3px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.mc-res-st b.ok{color:var(--c-green)} .mc-res-st b.bad{color:var(--c-red)}
.mc-res-nota{margin:12px 0 0;font-size:12px;color:var(--c-text3)}
/* Lo que no se decide aquí (No se puede tocar, mes a mes, extras): .desp (base.css), en fila al final */
.mesa-main>.desp+.desp{margin-top:-56px}   /* los desplegables del final se pegan: sin el hueco de 56 px entre ellos */
/* Sin sitio para las dos columnas (barra abierta y media pantalla: la principal se
   quedaba en 98 px), una sola, con el resultado arriba como en el móvil */
#fz-body:has(>.mesa){container:mesa / inline-size}
@container mesa (max-width:900px){
  .mesa{grid-template-columns:minmax(0,1fr);gap:36px}
  .mesa-aside{position:static;order:-1}
  .mesa-main{gap:40px}
  .mesa-main>.desp+.desp{margin-top:-40px}
}
.mc-lista{display:flex;flex-direction:column}
.mgrp{margin-top:28px}
.mgrp-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mgrp-h h3{margin:0;font-size:14.5px;font-weight:600;letter-spacing:-0.005em;color:var(--c-text)}
.mgrp-p{margin:4px 0 10px;max-width:640px;font-size:12.5px;line-height:1.5;color:var(--c-text3)}
.efecto{font-variant-numeric:tabular-nums}
.chip.efecto{height:24px;font-size:12px}
/* Fila de palanca: qué es · cuánto · qué hace al cierre */
.mlin{display:grid;grid-template-columns:minmax(0,1fr) auto 176px;gap:10px 18px;align-items:center;min-height:58px;padding:10px 0;border-top:1px solid var(--c-border)}
.mlin:last-of-type{border-bottom:1px solid var(--c-border)}
.mlin.mc-lock{color:var(--c-text3)}
.mlin-n{min-width:0;font-size:13.5px;font-weight:500;color:var(--c-text)}
.mlin-n small{display:block;margin-top:2px;font-size:12px;font-weight:400;color:var(--c-text3);line-height:1.4}
.mlin-c{display:flex;align-items:center;gap:10px}
.mlin-c .form-affix{width:132px}
.mlin-c .form-affix.pct{width:84px}
.mlin-e{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}
.mlin-e .hint{font-size:11.5px}
.mlin .check{font-size:12.5px;color:var(--c-text2);white-space:nowrap}
.chg .form-affix{border-color:color-mix(in srgb,var(--c-green) 45%,transparent)}   /* cambiado en la mesa */
.mc-extra-c{width:100%}
.mc-cajon-sel{width:auto;min-width:190px}
.mc-acc{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
/* Rejilla de bonus: scroll horizontal propio, celdas centradas, casilla = botón */
.mc-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:8px}
.mc-bg{min-width:640px}
.mc-bg th,.mc-bg td{text-align:center;padding:5px 6px;white-space:nowrap}
.mc-bg th:first-child,.mc-bg td:first-child{text-align:left;position:sticky;left:0;background:var(--c-bg);z-index:1}   /* la persona se queda a la vista al desplazar los meses */
.mc-bg th.mc-op{background:var(--col-bg)}
.mc-bg tfoot td{font-weight:600;border-top:1px solid var(--c-border2);border-bottom:none;font-variant-numeric:tabular-nums}
.mc-bg tbody tr:hover td{background:transparent}
.mc-who{color:var(--c-text);font-weight:600}
.mc-who small{display:block;font-weight:400;font-size:11px;color:var(--c-text3)}
.mc-cell{width:100%;min-width:52px;height:32px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--c-text);font-family:var(--font);font-size:12.5px;text-align:right;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .15s,color .15s,transform .421s var(--spring-layout)}
.mc-cell:hover:not(:disabled){background:var(--sb-muted)}
.mc-cell:active:not(:disabled){transform:scale(.94);transition-duration:.08s}
.mc-cell[aria-pressed="false"]{text-decoration:line-through;color:var(--c-text3);background:color-mix(in srgb,var(--c-green) 9%,transparent)}   /* quitado: suma al cierre */
.mc-cell:disabled{opacity:.35;cursor:default}
.mc-all{height:26px;padding:0 8px;border:0;background:transparent;box-shadow:none;font-size:11.5px;font-weight:500;color:var(--c-text3);white-space:nowrap}
.mc-all:hover{background:var(--sb-muted);color:var(--c-text)}
/* Lista para la gestoría */
.gest{display:flex;flex-direction:column;margin-top:14px}
.gest li{display:flex;align-items:center;gap:12px;min-height:46px;padding:8px 0;border-top:1px solid var(--c-border);list-style:none;font-size:13.5px}
.gest li:last-child{border-bottom:1px solid var(--c-border)}
.gest-t{flex:1;min-width:0}
.gest .chip{flex:none}
.gest .ic{font-size:18px;color:var(--c-text3);vertical-align:0}
/* El ejercicio mes a mes: diez columnas de cifras, scroll horizontal (.mc-scroll) con la línea a la vista */
.mc-tm{min-width:760px}
.mc-tm th:first-child,.mc-tm td:first-child{position:sticky;left:0;background:var(--c-surface);z-index:1}
.tabla th.futuro,.tabla td.futuro{background:var(--col-bg)}
.tabla tr.res-fila td{font-weight:700;border-top:1px solid var(--c-border2)}

/* ── Móvil ── */
@media (max-width: 768px), ((hover: none) and (pointer: coarse) and (max-width: 1400px)) {
  /* Dos líneas: fecha · etiqueta … importe · quitar / concepto o detalle */
  .fz-mov,.fz-mov-venc{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
  .fz-mov .fz-mov-desc,.fz-mov>.hint{flex:1 1 100%;order:5;white-space:normal}
  .fz-mov-imp{margin-left:auto}
  .fz-mov .btn-icon{opacity:1}
  .fz-mov>span:empty{display:none}
  .fz-mov-venc .fz-mov-acc{flex:1 1 100%;justify-content:flex-end;order:6}
  /* Provisiones: concepto / importe · Pagada / mes a todo el ancho. Propuestas: nombre / importe a todo el ancho */
  .fz-caja-prov .fz-mov-desc{order:0}
  .fz-caja-prov .btn{min-height:40px}
  .fz-caja-mes{flex:1 1 100%;width:100%;min-height:40px;order:7}
  .fz-mesnav{margin-left:0;width:100%;justify-content:center}
  .pv-ejerc-form{flex-direction:column;align-items:stretch}
  /* Dos líneas: proveedor y detalle / IVA … importe · quitar */
  .tj-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
  .tj-row-main{flex:1 1 100%}
  .tj-row-fis{flex:1 1 auto;flex-direction:row;align-items:center;gap:8px}
  .tj-row-imp{margin-left:auto}
  .tj-row .btn-icon{opacity:1}
  .tj-card-row{grid-template-columns:auto minmax(0,1fr) 28px;row-gap:6px}
  .tj-card-row .tj-card-tit{grid-column:2 / 4}
  .ret-ed-modal{width:100%}
  .ret-grid,.ret-grid-2{grid-template-columns:1fr 1fr}
  .ret-fac-row{grid-template-columns:1fr 1fr;grid-auto-rows:auto}
  .ret-fac-row select{grid-column:1 / 3}
  .ret-tramo{grid-template-columns:auto minmax(0,1fr) auto;row-gap:6px}
  .ret-tramo .btn,.ret-tramo .btn-icon{grid-row:2}
  /* Mesa de cierre: rejilla con scroll, líneas en columna, inputs a todo el ancho */
  /* Una columna; el resultado arriba (lo primero que se quiere saber) y sin fijar */
  #fz-body:has(>.mesa){width:calc(100% - 28px)}
  .mesa{grid-template-columns:minmax(0,1fr);gap:36px}
  .mesa-aside{position:static;order:-1}
  .mesa-main{gap:40px}
  .mesa-main>.desp+.desp{margin-top:-40px}
  .mc-res-n{font-size:38px}
  .mc-fac{flex-direction:column;align-items:stretch}
  .mc-fac-in,.mc-cajon-sel,.mc-extra-c{width:100%;min-width:0}
  .mlin{grid-template-columns:minmax(0,1fr) auto;gap:10px 14px}
  .mlin-n{grid-column:1 / -1}
  .mlin-e{align-items:flex-end}
  .mlin-c{flex-wrap:wrap;min-width:0}
  .mc-acc .btn{flex:1 1 auto;justify-content:center;min-height:40px}
  .mc-cell{min-height:40px;min-width:60px}
  .mc-all{min-height:36px;padding:6px 10px}
  .mc-bg th:first-child,.mc-bg td:first-child{width:112px;min-width:112px;white-space:normal}   /* la persona fija no puede comerse los meses */
}


/* ── Resumen (js/finResumen.js) ── ámbito .frs-… / .frs ─────────────────────── */
.card.frs{min-width:0}
.frs-svg{display:block;width:100%;height:auto;max-height:260px}
.frs-lbl{font-size:14px;fill:var(--c-text2)}
.frs-val{font-size:14px;font-weight:600;fill:var(--c-text)}
.frs-cero{stroke:var(--c-border2);stroke-width:1}
.frs-ppto{fill:none;stroke:var(--c-text2);stroke-width:2;stroke-dasharray:6 4}
.frs-realln{fill:none;stroke:var(--c-accent);stroke-width:3}
.frs-real{fill:var(--c-accent)}
.frs-b-prev{fill:var(--c-border2)}
.frs-b-ppto{fill:var(--c-text2)}
.frs-b-real{fill:var(--c-accent)}
.frs-ley{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12px;color:var(--c-text2)}
.frs-ley i{display:inline-block;width:14px;height:8px;margin-right:6px;border-radius:2px;vertical-align:middle}
.frs-ley .frs-l-ppto{height:0;border-top:2px dashed var(--c-text2)}
.frs-ley .frs-l-real{height:3px;background:var(--c-accent)}
.frs-ley .frs-l-prev{background:var(--c-border2)}
.frs-ley .frs-l-bppto{background:var(--c-text2)}
.frs-ley .frs-l-breal{background:var(--c-accent)}
.frs-alertas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.frs-al{display:flex;align-items:flex-start;gap:12px}
.frs-pt{flex:none;width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--c-warning-fill)}
.frs-al.alta .frs-pt{background:var(--c-red-fill)}
.frs-al-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13px}
.frs-al-t span{color:var(--c-text2)}
.frs-br{display:flex;align-items:center;gap:12px;padding:6px 0}
.frs-br-l{flex:0 0 150px;font-size:13px}
.frs-br-bar{flex:1;min-width:0;height:14px;background:var(--c-surface2);border-radius:3px;overflow:hidden}
.frs-br-bar i{display:block;height:100%}
.frs-br-bar i.pos{background:var(--c-green-fill)}
.frs-br-bar i.neg{background:var(--c-red-fill)}
.frs-br-v{flex:0 0 110px;text-align:right;font-variant-numeric:tabular-nums;color:var(--c-green)}
.frs-br-v.neg{color:var(--c-red)}
@media (max-width: 768px){
  .frs-br{flex-wrap:wrap;gap:4px 12px}
  .frs-br-l{flex:1 1 100%}
  .frs-br-bar{flex:1 1 0}
}

/* Tarjetas · fotos de más y exportación a PDF (js/tarjetas.js, js/tarjetasPdf.js) */
.tj-adj{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}
.tj-adj-i{display:flex;align-items:center;gap:8px;font-size:13px}
.tj-adj-i a{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tj-x-rg{display:grid;grid-template-columns:1fr 1fr;gap:8px}

/* Mesa de cierre · impuesto y reparto, tareas y trazabilidad (js/mesaCierre.js, js/finCierre.js) */
.mesa .ci-estado{margin:14px 0;padding:10px 12px;border-radius:10px;background:var(--col-bg);font-size:13px;color:var(--c-text2)}
.mesa .ci-estado.ok{color:var(--c-green)}
.mesa .ci-pct{width:76px}
.mesa .ci-acc{margin-top:18px}
.mesa .ci-tareas{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.mesa .ci-tarea{align-items:flex-start}
.mc-traza{display:block;margin-top:2px}
.ci-fila{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ci-fila .form-input{min-width:0;flex:1 1 0}

/* Presupuesto · editar supuestos de un borrador (js/presuVersiones.js) */
.ppto-ed{display:flex;flex-direction:column;gap:16px}
.ppto-ed-sec{display:flex;flex-direction:column;gap:8px}
.ppto-ed-h{margin:0;font-size:13px;font-weight:600}
.ppto-ed-bar{display:flex;align-items:center;gap:12px}
.ppto-ed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.ppto-ed-c{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--c-text2)}
.ppto-ed .tabla td{padding:4px 6px}
.ppto-ed .tabla .form-input{min-width:72px}
#ppto-ed{display:flex;flex-direction:column;gap:16px}

/* ── finReal.js: real por mes, P&L del ejercicio, importar real, ventas por cliente ── */
.fr-sec{margin:0;padding:0;border:0;font-size:15px;font-weight:600;letter-spacing:-0.01em;text-transform:none;color:var(--c-text)}
.fr-meses{display:flex;flex-wrap:wrap;gap:6px}
.fr-mes{display:flex;flex-direction:column;gap:0;min-width:64px;padding:5px 9px;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface)}
.fr-mes b{font-size:13px;font-weight:600;color:var(--c-text)}
.fr-mes span{font-size:11.5px;color:var(--c-text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fr-mes.cerrado{border-color:color-mix(in srgb,var(--c-green) 40%,var(--c-border))}
.fr-mes.cerrado span{color:var(--c-green)}
.fr-mes.abierto{border-color:var(--c-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-accent) 12%,transparent)}
.fr-mes.futuro{background:transparent;border-style:dashed}
.fr-acc{display:inline-flex;align-items:center;gap:8px;margin-left:auto}
.fr-tabla .fr-pos{color:var(--c-green)}
.fr-tabla .fr-cero{color:var(--c-text3)}
.fr-prev-mes{display:flex;align-items:baseline;gap:10px}
.fr-imp-ctl{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.fr-imp-sel{display:flex;flex-direction:column;gap:4px;min-width:140px}
.fr-cli{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.fr-cli-l{display:flex;flex-direction:column;gap:6px;min-width:0}
.fr-cli-t{display:flex;align-items:center;gap:8px}
.fr-cli-f{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.fr-cli-f>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Ajustes › Cuentas */
.fr-ctas{display:flex;flex-direction:column;gap:18px}
.fr-cta-fila{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,1.4fr) auto;align-items:center;gap:8px}
.fr-cta-fila code{font-size:12.5px}
.fr-cta-fila.sin{background:color-mix(in srgb,var(--c-warning) 10%,transparent);border-radius:var(--radius);padding:4px 6px}
@media (max-width:640px){
  .fr-cta-fila{grid-template-columns:1fr 1fr}
  .fr-acc{margin-left:0;flex-wrap:wrap}
}

/* ── finCaja.js: bancos, extractos, proyección con dos líneas ── ámbito .fc-… ── */
.fc-cta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}
.fc-cta-n{flex:1 1 160px;min-width:0}
.fc-cta-s{flex:1 1 200px;min-width:0}
.fc-cta-acc{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.fc-tabla tr.fc-real td{background:color-mix(in srgb,var(--c-text3) 8%,transparent)}
.fc-tabla .hint{display:block;font-weight:400}
.fc-tabla td:first-child{white-space:nowrap}
.fc-modal{display:flex;flex-direction:column;gap:14px}
.fc-concepto{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-regla{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:8px}
@media (max-width:640px){
  .fc-cta-acc{margin-left:0;width:100%}
  .fc-cta-acc .btn{flex:1 1 auto;min-height:40px}
  .fc-regla{grid-template-columns:1fr auto}
  .fc-regla input:first-child{grid-column:1 / 3}
}

/* ── Cabecera de Finanzas: siete pestañas, selector de ejercicio y acciones ──
   No caben con nombre por debajo de ~1240 px de cabecera: las inactivas se
   quedan en icono (la barra lateral lleva los nombres), como hace layout.css
   a 980 px para el resto de vistas. */
@container (max-width:1240px){.content-wrap #fz-tabs.vtabs-sub>.vtab:not(.active){font-size:0;gap:0}}
/* Móvil: el selector de ejercicio no se come el título de la vista */
@media (max-width:767px){#view-finanzas .view-head-t{flex-shrink:0}#view-finanzas #fz-acciones .sel-barra{max-width:150px;min-width:0}}
