:root{--espresso-950:#24150b;--espresso-900:#3a2414;--espresso-800:#553417;--espresso-700:#6a5136;--espresso-500:#876e56;--espresso-300:#bca78c;--crema-50:#fdfaf3;--crema-100:#faf3dd;--crema-200:#f3e8cc;--crema-300:#e9dbb8;--pistacho-700:#3f5f2c;--pistacho-600:#4f7a37;--pistacho-500:#6f9a4f;--pistacho-100:#e7f0dc;--fresa-700:#9a2f22;--fresa-600:#b5473a;--fresa-100:#f8e3df;--caramelo-700:#8a5a12;--caramelo-500:#c68a3e;--caramelo-100:#fbefd9;--mora-600:#5b4b8a;--mora-100:#ebe7f6;--roccia-900:var(--espresso-800);--roccia-700:var(--espresso-700);--roccia-500:var(--espresso-500);--roccia-100:var(--crema-100);--roccia-50:var(--crema-100);--bg:var(--crema-50);--ink:var(--espresso-900);--ink-soft:var(--espresso-700);--muted:var(--espresso-500);--card:#fff;--card-soft:#fbf7ec;--line:#ece2c9;--line-strong:#d9c9a5;--venta:var(--pistacho-600);--compra:var(--fresa-600);--positivo:var(--pistacho-600);--negativo:var(--fresa-600);--aviso:var(--caramelo-700);--inversion:var(--mora-600);--radius:14px;--radius-sm:9px;--shadow:0 1px 2px rgba(58,36,20,.05),0 8px 24px rgba(58,36,20,.06);--shadow-lg:0 2px 4px rgba(58,36,20,.06),0 18px 40px rgba(58,36,20,.1);--font-sans:"Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-display:"Fraunces",Georgia,"Times New Roman",serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--espresso-700);text-underline-offset:3px}h1,h2,h3{color:var(--ink)}::selection{background:var(--pistacho-100)}.shell{display:flex;min-height:100vh;align-items:stretch}.main{flex:1 1;min-width:0}.sidebar{width:236px;flex-shrink:0;background:var(--espresso-950);background-image:radial-gradient(120% 60% at 0 0,rgba(111,154,79,.16),transparent 60%),linear-gradient(180deg,#2c1a0d,#1f1208);color:#f1e6cb;display:flex;flex-direction:column;padding:18px 12px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.side-brand{display:flex;align-items:center;gap:11px;padding:4px 10px 20px;text-decoration:none;color:inherit}.side-logo{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,var(--pistacho-500),var(--pistacho-700));color:#fff;font-weight:700;box-shadow:inset 0 -2px 0 rgba(0,0,0,.15)}.side-brand-txt,.side-logo{font-family:var(--font-display);font-size:19px}.side-brand-txt{font-weight:650;letter-spacing:.2px;line-height:1.05}.side-brand-txt small{display:block;font-family:var(--font-sans);font-weight:500;font-size:11px;opacity:.6;letter-spacing:.4px;margin-top:3px}.side-nav{display:flex;flex-direction:column;gap:2px;flex:1 1}.side-sec{font-size:10.5px;text-transform:uppercase;letter-spacing:1.1px;color:hsla(43,58%,87%,.42);padding:14px 12px 6px;font-weight:700}.side-link{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:hsla(43,58%,87%,.86);text-decoration:none;font-size:13.5px;font-weight:550;border:none;background:transparent;cursor:pointer;width:100%;text-align:left;transition:background .12s,color .12s;position:relative}.side-link:hover{background:hsla(0,0%,100%,.07);color:#fff}.side-link.on{background:hsla(0,0%,100%,.12);color:#fff}.side-link.on:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--pistacho-500)}.side-link svg{width:18px;height:18px;flex-shrink:0;opacity:.9}.side-link .cuenta{margin-left:auto;background:var(--caramelo-500);color:#2a1a0c;font-size:11px;font-weight:800;border-radius:999px;padding:1px 7px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.side-link.ia{background:linear-gradient(135deg,rgba(111,154,79,.28),rgba(111,154,79,.1));color:#fff;margin-top:4px}.side-link.ia:hover{background:linear-gradient(135deg,rgba(111,154,79,.4),rgba(111,154,79,.16))}.side-out{color:#e8bfb3;margin-top:8px}.side-out:hover{background:rgba(200,90,70,.2)}@media (max-width:860px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;flex-direction:row;align-items:center;gap:4px;padding:8px 10px;z-index:20;overflow:visible}.side-brand{padding:2px 8px 2px 2px}.side-brand-txt,.side-sec{display:none}.side-nav{flex-direction:row;flex:1 1;overflow-x:auto;gap:2px}.side-link span.txt{display:none}.side-link{padding:10px;width:auto}.side-link.on:before{display:none}}.container{max-width:1240px;margin:0 auto;padding:28px 28px 72px}.container.ancho{max-width:1440px}.page-head,header.app{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:22px;border-bottom:1px solid var(--line-strong)}.page-head h1,header.app h1{font-family:var(--font-display);font-weight:600;font-size:30px;line-height:1.1;margin:0;letter-spacing:-.2px}.page-head .sub{color:var(--muted);font-size:13.5px;margin-top:6px;max-width:70ch}.page-head .acciones{display:flex;gap:8px;align-items:center;flex-wrap:wrap}header.app .ruc{color:var(--muted);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grid{display:grid;grid-gap:16px;gap:16px}@media (min-width:720px){.grid.cols-2{grid-template-columns:1fr 1fr}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2-1{grid-template-columns:2fr 1fr}.grid.cols-1-2{grid-template-columns:1fr 2fr}}.stack{flex-direction:column;gap:16px}.row,.stack{display:flex}.row{gap:10px;align-items:center;flex-wrap:wrap}.spacer{flex:1 1}.mt{margin-top:16px}.mb{margin-bottom:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);min-width:0}.card.suave{background:var(--card-soft)}.card.plano,.card.suave{box-shadow:none}.card.acento{border-color:var(--pistacho-500);box-shadow:0 0 0 3px var(--pistacho-100),var(--shadow)}.card.alerta{border-color:#eccb95;background:var(--caramelo-100);box-shadow:none}.card h2{margin:0 0 12px;font-size:12.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--espresso-700);font-weight:750}.card h3{margin:0 0 8px;font-size:15px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 14px;flex-wrap:wrap}.card-head h2{margin:0}.card-head .hint,.hint{font-size:12px;color:var(--muted)}.titulo-display{font-family:var(--font-display);font-weight:600;font-size:21px;margin:0 0 4px;letter-spacing:-.1px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:15px 18px 14px;box-shadow:var(--shadow);min-width:0;position:relative}.kpi.destacado{background:var(--espresso-900);border-color:var(--espresso-900);color:#fbf3df}.kpi.destacado .label,.kpi.destacado .pie{color:hsla(43,78%,93%,.7)}.kpi .label{color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;font-weight:700}.kpi .value{font-family:var(--font-display);font-size:27px;font-weight:600;font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums;margin-top:6px;line-height:1.1;letter-spacing:-.3px}.kpi .pie{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.35}.pos{color:var(--positivo)}.neg{color:var(--negativo)}.kpi.destacado .pos{color:#b9dc9a}.kpi.destacado .neg{color:#ffb4a6}.inv{color:var(--inversion)}.delta{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:700;padding:1px 7px;border-radius:999px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.delta.bien{background:var(--pistacho-100);color:var(--pistacho-700)}.delta.mal{background:var(--fresa-100);color:var(--fresa-700)}.delta.neutro{background:var(--crema-200);color:var(--espresso-700)}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;vertical-align:top}th{color:var(--muted);font-weight:700;text-transform:uppercase;font-size:10.5px;letter-spacing:.6px}td.num,th,th.num{white-space:nowrap}td.num,th.num{text-align:right}tfoot td,tr.total td{font-weight:800;border-top:1.5px solid var(--line-strong);border-bottom:none}tr.grupo td{background:var(--card-soft);font-weight:750}tr.clic{cursor:pointer}tr.clic:hover td{background:#fbf6ea}.tabla-compacta td,.tabla-compacta th{padding:6px 8px}.scroll{overflow-x:auto}.subtable{width:100%;border-collapse:collapse;background:var(--card-soft)}.subtable td,.subtable th{font-size:12px;padding:6px 10px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;background:var(--crema-200);color:var(--espresso-700);line-height:1.5}.badge.compra,.badge.error,.badge.mal{background:var(--fresa-100);color:var(--fresa-700)}.badge.bien,.badge.hidratado,.badge.venta{background:var(--pistacho-100);color:var(--pistacho-700)}.badge.aviso,.badge.pendiente{background:var(--caramelo-100);color:var(--caramelo-700)}.badge.ia,.badge.inv{background:var(--mora-100);color:var(--mora-600)}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.truncar{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.btn,a.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--espresso-900);color:var(--crema-100);border:1px solid var(--espresso-900);border-radius:var(--radius-sm);padding:9px 15px;font-size:13.5px;font-weight:700;cursor:pointer;text-decoration:none;font-family:inherit;line-height:1.2;transition:transform .06s,background .12s,box-shadow .12s}.btn:hover:not(:disabled){background:var(--espresso-800)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn.sec{background:var(--card);color:var(--ink);border-color:var(--line-strong)}.btn.sec:hover:not(:disabled){background:var(--card-soft)}.btn.ok{background:var(--pistacho-600);border-color:var(--pistacho-600);color:#fff}.btn.ok:hover:not(:disabled){background:var(--pistacho-700)}.btn.peligro{background:var(--card);color:var(--fresa-700);border-color:#e7b9b0}.btn.ia{background:linear-gradient(135deg,var(--pistacho-600),var(--pistacho-700));border-color:var(--pistacho-700);color:#fff}.btn.chico{padding:5px 10px;font-size:12px;border-radius:7px}.btn.link{background:none;border:none;color:var(--espresso-700);padding:2px 4px;text-decoration:underline;font-weight:600}input,select,textarea{font-family:inherit;font-size:13.5px;color:var(--ink)}.input,select.input,textarea.input{padding:8px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--card);min-width:0}.input:focus,.search:focus{outline:none;border-color:var(--espresso-500);box-shadow:0 0 0 3px rgba(135,110,86,.16)}.search{flex:1 1;min-width:200px;padding:10px 13px;font-size:14px;border:1px solid var(--line-strong);border-radius:10px;background:var(--card);color:var(--ink)}label.campo{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:600}.result{margin-top:12px;font-size:13px;white-space:pre-wrap;background:var(--crema-200);border-radius:8px;padding:12px}.upload{border:1.5px dashed var(--espresso-300);border-radius:12px;padding:18px;background:var(--card-soft)}.upload input[type=file]{display:block;margin:10px 0}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.segment{display:inline-flex;background:var(--crema-200);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}.segment a,.segment button{border:none;background:transparent;color:var(--espresso-700);font-size:13px;font-weight:700;padding:6px 13px;border-radius:8px;cursor:pointer;text-decoration:none;font-family:inherit}.segment a.on,.segment button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(58,36,20,.14)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line-strong);margin-bottom:18px;overflow-x:auto}.tabs a,.tabs button{background:none;font:inherit;font-weight:700;font-size:13.5px;color:var(--muted);padding:10px 14px;border:none;border-bottom:2.5px solid transparent;margin-bottom:-1px;cursor:pointer;text-decoration:none;white-space:nowrap}.tabs a.on,.tabs button.on{color:var(--ink);border-bottom-color:var(--pistacho-600)}.tabs .cuenta{font-size:11px;background:var(--caramelo-100);color:var(--caramelo-700);border-radius:999px;padding:1px 7px;margin-left:6px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{background:var(--espresso-900);color:var(--crema-100);border-radius:999px;padding:5px 6px 5px 12px;font-size:12px;font-weight:700;gap:8px}.chip,.chip .x{display:inline-flex;align-items:center}.chip .x{background:hsla(46,74%,92%,.2);border:none;color:inherit;cursor:pointer;width:18px;height:18px;border-radius:999px;font-size:13px;line-height:1;justify-content:center}.bars{display:flex;flex-direction:column;gap:4px}.bar-row{display:grid;grid-template-columns:1fr;grid-gap:4px;gap:4px;padding:7px 8px;margin:0 -8px;border-radius:8px;cursor:pointer;transition:background .12s}.bar-row:hover{background:#fbf6ea}.bar-row.sel{background:var(--crema-200)}.bar-row .bar-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.bar-row .bar-name{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1;min-width:0}.bar-row .bar-val{font-size:13px;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.bar-track{height:8px;background:var(--crema-200);border-radius:5px;overflow:hidden}.bar-fill{height:100%;border-radius:5px;min-width:3px;background:linear-gradient(90deg,var(--espresso-500),var(--espresso-700))}.bar-fill.verde{background:linear-gradient(90deg,var(--pistacho-500),var(--pistacho-600))}.bar-fill.rojo{background:linear-gradient(90deg,#d97d70,var(--fresa-600))}.bar-fill.morado{background:linear-gradient(90deg,#8f80c0,var(--mora-600))}.bar-row.sel .bar-fill{background:var(--espresso-900)}.bar-row .bar-sub{font-size:11px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pyg{width:100%;border-collapse:collapse}.pyg td{padding:7px 10px;border-bottom:1px dashed var(--line);font-size:13.5px}.pyg td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pyg tr.sub td{font-weight:800;border-bottom:1px solid var(--line-strong);background:var(--card-soft)}.pyg tr.gran td{font-family:var(--font-display);font-size:18px;font-weight:650;border-top:2px solid var(--espresso-900);border-bottom:none;padding-top:11px}.pyg tr.rubro td:first-child{padding-left:26px;color:var(--ink-soft)}.pyg tr.aparte td{color:var(--inversion)}.pyg .pct{color:var(--muted);font-size:11.5px;font-weight:600;width:64px}.aviso{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--caramelo-100);border:1px solid #eccb95;color:#5d3d0b;font-size:13px;margin-bottom:16px}.aviso.info{background:var(--mora-100);border-color:#d3cbeb;color:#3b3066}.aviso.ok{background:var(--pistacho-100);border-color:#c6dbb0;color:var(--pistacho-700)}.aviso.mal{background:var(--fresa-100);border-color:#eab8af;color:var(--fresa-700)}.aviso b{font-weight:800}.aviso .ico{font-size:16px;line-height:1.2}.vacio-estado{text-align:center;padding:34px 16px;color:var(--muted)}.vacio-estado .t{font-family:var(--font-display);font-size:18px;color:var(--ink);margin-bottom:4px}.explorer{display:grid;grid-template-columns:280px 1fr;grid-gap:18px;gap:18px;align-items:start}.explorer-filters{position:-webkit-sticky;position:sticky;top:18px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 34px);overflow-y:auto}.explorer-filters .card-head h2{font-size:11.5px}.explorer-main{min-width:0}@media (max-width:900px){.explorer{grid-template-columns:1fr}.explorer-filters{position:static;max-height:none}}.celda-btn{border:none;background:transparent;font:inherit;color:var(--ink);cursor:pointer;padding:3px 7px;border-radius:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;border-bottom:1px dashed var(--espresso-500)}.celda-btn:hover:not(:disabled){background:var(--crema-200)}.celda-btn.on{background:var(--espresso-900);color:#fff;border-bottom-color:transparent}.celda-btn:disabled{color:var(--muted);cursor:default;border-bottom:none;opacity:.55}.prod-row{cursor:pointer}.prod-row td{transition:background .12s}.prod-row:hover td{background:#fbf6ea}.trend-up{color:var(--compra);font-size:11px}.trend-down{color:var(--venta);font-size:11px}details.plegable>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;font-weight:700}details.plegable>summary::-webkit-details-marker{display:none}details.plegable>summary:before{content:"▸";color:var(--muted);transition:transform .12s}details.plegable[open]>summary:before{transform:rotate(90deg)}.columnas{display:flex;align-items:flex-end;gap:10px;height:180px;padding:8px 4px 0;border-bottom:1px solid var(--line-strong)}.columnas .col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;height:100%;justify-content:flex-end}.columnas .par{display:flex;gap:3px;align-items:flex-end;height:100%;width:100%;justify-content:center}.columnas .b{width:42%;max-width:22px;border-radius:4px 4px 0 0;min-height:2px}.columnas .b.ing{background:var(--pistacho-500)}.columnas .b.gas{background:#d98a7d}.columnas .etq{font-size:10.5px;color:var(--muted);white-space:nowrap}.leyenda{display:flex;gap:14px;font-size:12px;color:var(--muted);flex-wrap:wrap}.leyenda i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.chat{display:flex;flex-direction:column;gap:14px}.burbuja{max-width:82%;padding:12px 15px;border-radius:14px;font-size:14px;line-height:1.55;white-space:pre-wrap}.burbuja.yo{align-self:flex-end;background:var(--espresso-900);color:var(--crema-100);border-bottom-right-radius:4px}.burbuja.ia{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:4px;box-shadow:var(--shadow);white-space:normal}.burbuja.ia table{margin:8px 0;font-size:12.5px}.burbuja.ia p{margin:0 0 8px}.burbuja.ia ol,.burbuja.ia ul{margin:4px 0 8px;padding-left:20px}.pasos-ia{font-size:11.5px;color:var(--muted);margin-top:8px;border-top:1px dashed var(--line);padding-top:6px}@media (max-width:720px){.container{padding:18px 14px 60px}.page-head h1,header.app h1{font-size:24px}}.rol-hojas{background:#fff;color:#1a1a1a;font-size:12px}.rol-barra{align-items:center;gap:16px;padding:14px 20px;background:var(--roccia-50,#faf3dd);border-bottom:1px solid #eadfc8}.rol-barra,.rol-hoja{display:flex;justify-content:space-between}.rol-hoja{width:210mm;min-height:297mm;margin:0 auto;padding:12mm 14mm;box-sizing:border-box;flex-direction:column;background:#fff}.rol-copia{flex:1 1;display:flex;flex-direction:column}.rol-cab{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #553417;padding-bottom:6px}.rol-cab b{font-size:15px;color:#553417}.rol-sub{font-size:11px;letter-spacing:.06em;color:#6a5136;margin-top:2px}.rol-copia-tag{font-size:9px;letter-spacing:.12em;border:1px solid #876e56;color:#6a5136;padding:2px 7px;border-radius:3px;white-space:nowrap}.rol-datos{width:100%;margin:8px 0;border-collapse:collapse}.rol-datos td{padding:3px 8px 3px 0;vertical-align:top;width:33%}.rol-datos span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.07em;color:#8a7a68}.rol-cols{display:flex;gap:12px;margin-top:4px}.rol-cols table{flex:1 1;border-collapse:collapse}.rol-cols th{text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#6a5136;border-bottom:1px solid #c9b89f;padding:3px 0}.rol-cols td.n,.rol-cols th.n{text-align:right}.rol-cols td{padding:2.5px 0;border-bottom:1px dotted #e3d8c4}.rol-cols tr.tot td{border-top:1px solid #876e56;border-bottom:none;font-weight:700;padding-top:4px}.rol-cols td.vacio{color:#a89880;font-style:italic}.rol-neto{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:7px 10px;background:#f3ead6;border:1px solid #c9b89f}.rol-neto span{font-size:10px;letter-spacing:.1em;color:#553417}.rol-neto b{font-size:16px;color:#553417}.rol-nota{font-size:7.5px;line-height:1.35;color:#7a6a58;margin:8px 0 0;text-align:justify}.rol-firma{display:flex;gap:40px;margin-top:18px;font-size:9px;color:#6a5136}.rol-firma>div{flex:1 1;text-align:center}.rol-firma .linea{border-top:1px solid #8a7a68;margin-bottom:3px}.rol-corte{position:relative;text-align:center;margin:10px 0;border-top:1px dashed #a89880}.rol-corte span{position:relative;top:-7px;background:#fff;padding:0 8px;font-size:8px;color:#a89880}@media print{.no-print,.shell>aside,.sidebar{display:none!important}.rol-hoja{page-break-after:always;margin:0;padding:10mm 12mm;min-height:auto;height:100vh}.rol-hoja:last-child{page-break-after:auto}.rol-hojas,body{background:#fff}}@page{size:A4 portrait;margin:0}.horas-grid{width:100%;border-collapse:collapse;font-size:12px}.horas-grid td,.horas-grid th{border-bottom:1px solid #f0e7d5;padding:2px 6px}.horas-grid thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--roccia-50,#faf3dd);z-index:1;text-align:center;font-size:11px;padding:6px}.horas-grid tbody tr.finde{background:#fbf8f0}.horas-grid tbody tr.feriado{background:#f6ecd8}.horas-grid tfoot td,.horas-grid tfoot th{border-top:1px solid #c9b89f;border-bottom:none;padding-top:5px;font-size:12px}.horas-grid tfoot td.num{text-align:right}.celda-dia{all:unset;cursor:pointer;display:block;width:100%;box-sizing:border-box;padding:2px 5px;border-radius:5px;font-size:11px;white-space:nowrap;text-align:center;border:1px solid transparent}.celda-dia.plantilla{color:#8a7a68}.celda-dia.editado{color:#553417;font-weight:600;border-color:#dcccae;background:#fffdf7}.celda-dia.alerta{color:#9a5a12;border-color:#e0a44e;background:#fdf3e2}.celda-dia.vacia{color:#cbbfa8}.celda-dia:hover{background:#f3ead6}.celda-dia .marcas{opacity:.75}.celda-hueca{display:block;text-align:center;color:#ded4bf;font-size:11px}.celda-editor{border:1px solid #876e56;border-radius:6px;padding:4px;background:#fffdf7;min-width:130px}.horas-hoja .rol-copia{justify-content:flex-start}.horas-detalle{width:100%;border-collapse:collapse;margin-top:6px;font-size:8.5px}.horas-detalle th{text-align:left;font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#6a5136;border-bottom:1px solid #c9b89f;padding:3px 4px}.horas-detalle td{padding:1.5px 4px;border-bottom:1px dotted #e3d8c4}.horas-detalle td.n,.horas-detalle th.n{text-align:right}.horas-detalle tr.feriado td{background:#f6ecd8}.horas-detalle tr.tot td{border-top:1px solid #876e56;border-bottom:none;font-weight:700;padding-top:4px}.flujo{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;align-items:start}@media (max-width:900px){.flujo{grid-template-columns:1fr}}.badge.aviso{display:inline-flex;padding:2px 8px;margin:0;border:none;border-radius:999px;font-size:11px;gap:4px}.esq{animation:esq-entra .2s ease .12s both}.esq-b{border-radius:var(--radius-sm);background:linear-gradient(100deg,var(--crema-200) 30%,var(--crema-100) 50%,var(--crema-200) 70%);background-size:300% 100%;animation:esq-brillo 1.3s ease-in-out infinite}.esq-titulo{height:34px;width:min(280px,60%)}.esq-sub{height:14px;width:min(460px,85%);margin-top:12px}.esq-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:14px;gap:14px;margin:26px 0 18px}.esq-kpis .esq-b{height:92px;border-radius:var(--radius)}.esq-panel{height:300px;border-radius:var(--radius);margin-bottom:18px}.esq-panel.corto{height:160px}@keyframes esq-brillo{0%{background-position:100% 0}to{background-position:0 0}}@keyframes esq-entra{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.esq,.esq-b{animation:none}}