/* LIBRO · Arroz Moreno: papel contable verde, líneas de cuaderno, máquina de escribir y totales en rojo */
.fmt--libro { --bg: #EEF3E6; --bg-2: #E3EAD7; --fg: #12301F; --mute: #567160; --acc: #B4262A; --acc-2: #2F7A4D; --line-x: rgba(18,48,31,.16);
  --f-display: 'Libre Baskerville', Georgia, serif; --f-body: 'Libre Baskerville', Georgia, serif; --f-mono: 'Courier Prime', 'Courier New', monospace; --f-label: 'Courier Prime', 'Courier New', monospace; }
.fmt--libro { background-image: repeating-linear-gradient(0deg, transparent 0 27px, rgba(47,122,77,.18) 27px 28px); }
.fmt--libro .ftext { font-size: clamp(16px, 1.15vw, 18px); line-height: 1.75; }
.fmt--libro .htitle, .fmt--libro .cap__title, .fmt--libro .fmod__head h2 { font-weight: 700; letter-spacing: -.02em; }
.hero--libro { padding: 96px 0 40px; }
.hero--libro .htitle { font-size: clamp(48px, 7.5vw, 112px); }
.hero--libro .htitle em { color: var(--acc); }
.hoja { background: #F7FAF2; border: 1px solid var(--line-x); box-shadow: 0 24px 50px -36px rgba(18,48,31,.6); font-family: var(--f-mono); position: relative; }
.hoja::before { content: ""; position: absolute; top: 0; bottom: 0; left: 46px; width: 2px; background: rgba(180,38,42,.5); }
.hoja__h { padding: 12px 16px 12px 60px; border-bottom: 2px solid var(--fg); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--mute); }
.hoja__r { display: grid; grid-template-columns: 1fr max-content; padding: 10px 16px 10px 60px; border-bottom: 1px solid rgba(47,122,77,.25); font-size: 14px; }
.hoja__r b { font-weight: 700; color: var(--fg); }
.hoja__r--t { border-top: 2px solid var(--fg); border-bottom: 4px double var(--fg); background: rgba(180,38,42,.06); }
.hoja__r--t b { color: var(--acc); }
.fmt--libro .fnav a { font-size: 12.5px; text-transform: none; letter-spacing: 0; }
.fmt--libro .fnav a b { color: var(--acc); }
.fmt--libro .cap__num { color: var(--acc-2); }
.fmt--libro .estado { background: #F7FAF2; }
/* Partidas */
.fmod--partidas .hoja { padding: 8px 0; }
.fila { display: grid; grid-template-columns: 200px 1fr 130px; gap: 16px; align-items: center; padding: 8px 16px 8px 60px; font-family: var(--f-mono); font-size: 13.5px; border-bottom: 1px solid rgba(47,122,77,.2); }
.fila__bar { display: block; height: 14px; background: linear-gradient(90deg, var(--acc-2), #6AB187); width: 0; transition: width 1.2s var(--ease-out); }
.hoja.in .fila__bar { width: var(--w); }
.fila__m { text-align: right; }
.fila--total { border-top: 2px solid var(--fg); border-bottom: 4px double var(--fg); }
.fila--total .fila__m { color: var(--acc); font-size: 16px; }
@media (max-width: 640px) { .fila { grid-template-columns: 1fr 90px; } .fila__bar { display: none; } }
/* Flujo de aportes */
.flujo { display: grid; gap: 10px; max-width: 820px; }
.aporte { display: grid; grid-template-columns: 220px 1fr 1fr max-content; gap: 14px; align-items: center; padding: 12px 16px; background: #F7FAF2; border: 1px solid var(--line-x); font-family: var(--f-mono); font-size: 13.5px; }
.aporte b { font-family: var(--f-display); font-size: 15px; }
.aporte__arrow { height: 2px; background: var(--acc-2); position: relative; }
.aporte__arrow::after { content: ""; position: absolute; right: -1px; top: -5px; border: 6px solid transparent; border-left: 8px solid var(--acc-2); }
.aporte__como { color: var(--mute); }
.aporte em { font-style: normal; color: var(--acc); font-weight: 700; }
.flujo__dest { margin-top: 8px; padding: 18px 20px; background: var(--fg); color: #EEF3E6; display: grid; gap: 4px; }
.flujo__dest span { font-family: var(--f-display); font-size: 22px; font-weight: 700; }
.flujo__dest b { font-family: var(--f-mono); font-weight: 400; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #A9D3B6; }
@media (max-width: 760px) { .aporte { grid-template-columns: 1fr max-content; } .aporte__arrow, .aporte__como { display: none; } }
.fmt--libro .fdato b { font-family: var(--f-mono); font-weight: 700; }
.fmt--libro .cierre { background: #F7FAF2; font-family: var(--f-mono); }
.fmt--libro .cierre__lineas li, .fmt--libro .cierre__lineas b { font-family: var(--f-mono); }
.fmt--libro .cierre__lineas li:last-child { border-top: 2px solid var(--fg); border-bottom: 4px double var(--fg); }
