:root{--bg: #f5f6f4;--surface: #ffffff;--surface-2: #eceeea;--ink: #1b2229;--ink-soft: #4a545c;--line: #d8dcd6;--accent: #2f6b64;--accent-soft: #e4eeec;--accent-ink: #1d4d47;--danger: #a23b1e;--danger-bg: #f7e7df;--warn: #8a6408;--warn-bg: #f4ecd6;--ok: #2c6b3f;--ok-bg: #e4efe3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}.page{max-width:980px;margin:0 auto;padding:2.5rem 1.5rem 5rem}h1{font-size:1.7rem;margin:0 0 .3rem}.dek{color:var(--ink-soft);margin:0 0 2rem;max-width:60ch}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1.5rem;margin-bottom:1.5rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--ink-soft)}select,input[type=number],input[type=file],textarea{font:inherit;padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;min-height:140px}button{font:inherit;font-weight:600;padding:.65rem 1.3rem;border-radius:8px;border:none;background:var(--accent);color:#fff;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--ink)}.callout{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:8px;padding:.8rem 1rem;font-size:.85rem;color:var(--accent-ink);margin-bottom:1rem}.callout.error{background:var(--danger-bg);color:var(--danger);border-color:transparent}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem}.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1rem 1.1rem}.stat .valor{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}.stat .etiqueta{font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.stat.bloqueante .valor{color:var(--danger)}.stat.advertencia .valor{color:var(--warn)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:.88rem}th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:.65rem .8rem;border-bottom:1px solid var(--line);background:var(--surface-2)}td{padding:.65rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}td.num{font-variant-numeric:tabular-nums;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}tr:last-child td{border-bottom:none}.sev{display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;padding:.2em .6em;border-radius:6px;white-space:nowrap}.sev.BLOQUEANTE{background:var(--danger-bg);color:var(--danger)}.sev.ADVERTENCIA{background:var(--warn-bg);color:var(--warn)}.sev.MENOR{background:var(--ok-bg);color:var(--ok)}.corregido{font-size:.72rem;color:var(--ok);font-weight:600}details>summary{cursor:pointer;font-weight:600;margin-bottom:.5rem}.barra-app{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.5rem;background:var(--ink);color:var(--bg)}.marca{font-weight:700}.barra-links{display:flex;gap:1.2rem}.barra-links a{color:#c9cfd4;text-decoration:none;padding:.3rem 0}.barra-links a.es-activa,.barra-links a:hover{color:#fff}.lector-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.lector-head h2{margin:0;font-size:1.4rem}.lector-sub{margin:.2rem 0 0;color:var(--ink-soft)}.lector-acciones{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.lector-cargando{color:var(--ink-soft)}.filtros{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface)}.filtros button{border:0;background:transparent;color:var(--ink-soft);padding:.45rem .9rem;cursor:pointer;font:inherit}.filtros button.is-activa{background:var(--accent);color:#fff}.chip{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--surface-2);color:var(--ink-soft)}.chip-warn{background:var(--warn-bg);color:var(--warn)}.chip-ok{background:var(--ok-bg);color:var(--ok)}.enlace{border:0;background:none;padding:0;color:var(--accent-ink);font:inherit;cursor:pointer;text-align:left}.enlace:hover{text-decoration:underline}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.88rem}.num{text-align:right;font-variant-numeric:tabular-nums;font-family:ui-monospace,Consolas,monospace}.vacio{text-align:center;color:var(--ink-soft);padding:2rem}.tabla-scroll{overflow-x:auto}.pista{font-size:.85rem;color:var(--ink-soft);margin:0 0 .8rem}.nota{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.6rem .9rem;color:var(--ink-soft);font-size:.9rem;margin:0 0 1rem}.nota-ok{background:var(--ok-bg);color:var(--ok);border-radius:8px;padding:.6rem .9rem;margin:0 0 1rem}.lector-grid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(400px,1.2fr);gap:1.5rem;align-items:start}.lector-grid.sin-visor{grid-template-columns:1fr}.lector-grid>*{min-width:0}.lector-form{display:flex;flex-direction:column;gap:1rem}.visor{position:sticky;top:1rem;display:flex;flex-direction:column;max-height:calc(100vh - 2rem);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}.visor-barra{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.5rem .7rem;border-bottom:1px solid var(--line)}.visor-hojas,.visor-zoom{display:flex;gap:.25rem;align-items:center}.visor-hojas button,.visor-zoom button{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:.3rem .6rem;cursor:pointer;font:inherit;min-height:34px}.visor-hojas button.is-activa{background:var(--accent);color:#fff;border-color:var(--accent)}.visor-nivel{font-variant-numeric:tabular-nums;color:var(--ink-soft);min-width:3.5rem;text-align:center;font-size:.85rem}.visor-viewport{flex:1;overflow:auto;background:#262b2a;min-height:14rem}.visor-viewport.es-arrastrable{cursor:grab}.visor-viewport.es-arrastrable:active{cursor:grabbing;-webkit-user-select:none;user-select:none}.visor-img{display:block;height:auto;max-width:none}.visor-ayuda{margin:0;padding:.35rem .7rem;font-size:.78rem;color:var(--ink-soft);border-top:1px solid var(--line)}.visor-mostrar{margin-bottom:1rem}.visor-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:1rem;overflow:auto;background:#141817e5}.visor-lightbox img{max-width:100%;height:auto}.visor-cerrar{align-self:flex-end}.lector-aprendido{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.7rem 1rem;margin-bottom:1rem}.lector-aprendido summary{cursor:pointer;font-weight:600}.lector-aprendido h4{margin:.8rem 0 .3rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.lector-aprendido ul{margin:0;padding-left:1.2rem;font-size:.9rem}.lector-form fieldset{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:1rem;margin:0}.lector-form legend{font-weight:700;padding:0 .4rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.lector-form label{display:flex;flex-direction:column;gap:.25rem}.lector-form label>span{font-size:.8rem;font-weight:600;color:var(--ink-soft)}.lector-form input,.lector-form textarea{font:inherit;padding:.45rem .6rem;border:1px solid var(--line);border-radius:6px;background:#fff;width:100%}.lector-form label.es-incierto input{border-color:var(--warn);background:#fffbf2;box-shadow:0 0 0 3px #8a64081f}.bloque-incierto{border-color:var(--warn)!important;background:var(--warn-bg)!important}.lista-inciertos{margin:0;padding-left:1.2rem;font-size:.9rem}.tabla-items input{min-width:5.5rem}.tabla-items .col-desc{min-width:16rem}.tabla-items tr.es-incierto td{background:var(--warn-bg)}.reconciliacion{display:grid;gap:.1rem;max-width:26rem;margin-bottom:1rem;padding:.6rem .9rem;border:1px solid var(--line);border-radius:8px;font-size:.9rem}.reconciliacion>div{display:flex;justify-content:space-between;gap:1rem;color:var(--ink-soft)}.reconciliacion b{font-variant-numeric:tabular-nums;color:var(--ink)}.reconciliacion .rec-subtotal{border-top:1px solid var(--line);padding-top:.2rem;margin-top:.15rem}.reconciliacion .rec-diferencia b{color:var(--ok)}.reconciliacion.no-cierra .rec-diferencia b{color:var(--warn);font-weight:700}.rec-nota{margin:.3rem 0 0;font-size:.8rem;color:var(--ink-soft)}.campo-nota textarea{resize:vertical}.chip-activo{background:var(--accent-soft);color:var(--accent-ink)}.chip-error{background:var(--danger-bg);color:var(--danger)}
