:root{--ground:#F6F8F4;--surface:#FFFFFF;--surface-alt:#EEF3EA;--stripe:#F4F7F2;--ink:#17201A;--ink-soft:#45524A;--ink-faint:#6E7C73;--rule:#DCE4D9;--rule-strong:#B4C1B0;--verde:#2E5E4E;--verde-hover:#24493D;--verde-soft:#E3EDE6;--tueste:#8A4B2A;--tueste-soft:#F3E7DF;--alerta:#A8873E;--alerta-soft:#F7F0DE;--peligro:#A33B2A;--peligro-soft:#F8E6E2;--sombra:0 1px 2px rgba(23,32,26,.05),0 8px 24px -14px rgba(23,32,26,.16);--radio:5px;--g1:#007A60;--g2:#B4761C;--g3:#5C6BC7;--g4:#A8443A;--g5:#8A5EA8;--g-reja:#E7ECE4}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#12160F;--surface:#1A1F17;--surface-alt:#212820;--stripe:#1E241C;--ink:#E8EFE6;--ink-soft:#B2BFB4;--ink-faint:#7F8D82;--rule:#2C352B;--rule-strong:#3E4A3D;--verde:#7FB79C;--verde-hover:#96C7AE;--verde-soft:#23332B;--tueste:#C9885E;--tueste-soft:#33241B;--alerta:#C4A954;--alerta-soft:#2E2A1B;--peligro:#D9836F;--peligro-soft:#33201C;--sombra:0 1px 2px rgba(0,0,0,.3),0 8px 24px -14px rgba(0,0,0,.6);--g1:#34997F;--g2:#B8842A;--g3:#7B87CC;--g4:#C4655A;--g5:#A87FC4;--g-reja:#262E24}}:root[data-theme=dark]{--ground:#12160F;--surface:#1A1F17;--surface-alt:#212820;--stripe:#1E241C;--ink:#E8EFE6;--ink-soft:#B2BFB4;--ink-faint:#7F8D82;--rule:#2C352B;--g1:#34997F;--g2:#B8842A;--g3:#7B87CC;--g4:#C4655A;--g5:#A87FC4;--g-reja:#262E24;--rule-strong:#3E4A3D;--verde:#7FB79C;--verde-hover:#96C7AE;--verde-soft:#23332B;--tueste:#C9885E;--tueste-soft:#33241B;--alerta:#C4A954;--alerta-soft:#2E2A1B;--peligro:#D9836F;--peligro-soft:#33201C;--sombra:0 1px 2px rgba(0,0,0,.3),0 8px 24px -14px rgba(0,0,0,.6)}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font-family:Public Sans,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Newsreader,Georgia,serif;font-weight:600;margin:0;text-wrap:balance}h1{font-size:1.85rem;line-height:1.15;letter-spacing:-.01em}h2{font-size:1.3rem}h3{font-size:1rem;font-family:Public Sans,sans-serif;font-weight:600}p{margin:0}a{color:var(--verde);text-underline-offset:.2em}.mono,.num{font-family:IBM Plex Mono,ui-monospace,SF Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--verde);outline-offset:2px;border-radius:3px}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}@media (max-width:860px){.shell{grid-template-columns:1fr}}.lateral{background:var(--surface);border-right:1px solid var(--rule);padding:1.4rem 1rem;display:flex;flex-direction:column;gap:1.6rem}@media (max-width:860px){.lateral{border-right:none;border-bottom:1px solid var(--rule)}}.marca{display:flex;flex-direction:column;gap:.15rem;padding:0 .5rem}.marca strong{font-family:Newsreader,serif;font-size:1.15rem;font-weight:600}.marca span{font-size:.72rem;color:var(--ink-faint);letter-spacing:.02em}.nav{flex-direction:column;gap:.15rem}.nav,.nav a{display:flex}.nav a{align-items:center;gap:.6rem;padding:.5rem .65rem;border-radius:var(--radio);color:var(--ink-soft);text-decoration:none;font-size:.9rem;font-weight:500}.nav a:hover{background:var(--surface-alt);color:var(--ink)}.nav a[aria-current=page]{background:var(--verde-soft);color:var(--verde);font-weight:600}.nav-grupo{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);padding:.8rem .65rem .3rem;font-family:IBM Plex Mono,monospace}.pie-lateral{margin-top:auto;padding:0 .5rem;font-size:.78rem;color:var(--ink-faint);display:flex;flex-direction:column;gap:.5rem}.contenido{padding:2rem 2.2rem 4rem;max-width:1180px}@media (max-width:860px){.contenido{padding:1.4rem 1.1rem 3rem}}.cabecera{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.8rem}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint)}.rejilla{display:grid;grid-gap:1rem;gap:1rem}.rejilla.c2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.rejilla.c3{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}.rejilla.c4{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}.tarjeta{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radio);padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.7rem}.tarjeta>header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.tarjeta h3{font-size:.82rem;color:var(--ink-faint);font-weight:600;letter-spacing:.01em}.cifra{font-family:IBM Plex Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:500;letter-spacing:-.02em;line-height:1.1}.cifra.sm{font-size:1.15rem}.cifra.verde{color:var(--verde)}.cifra.tueste{color:var(--tueste)}.cifra.peligro{color:var(--peligro)}.pie{font-size:.78rem;color:var(--ink-faint)}.envoltura-tabla{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--radio);background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:.87rem}td,th{padding:.55rem .8rem;text-align:left}thead th{font-family:IBM Plex Mono,monospace;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;border-bottom:1px solid var(--rule-strong);white-space:nowrap}tbody tr:nth-child(2n){background:var(--stripe)}tbody tr:hover{background:var(--surface-alt)}td.num,th.num{text-align:right;font-family:IBM Plex Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}tfoot td{border-top:1px solid var(--rule-strong);font-weight:600}.vacio{padding:2rem 1rem;text-align:center;color:var(--ink-faint);font-size:.88rem}.campo{display:flex;flex-direction:column;gap:.3rem}.campo label{font-size:.78rem;font-weight:600;color:var(--ink-soft)}.campo .ayuda{font-size:.74rem;color:var(--ink-faint)}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radio);padding:.45rem .6rem;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--verde);outline:none;box-shadow:0 0 0 3px var(--verde-soft)}input.num,input[type=number]{font-family:IBM Plex Mono,monospace;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fila-campos{display:grid;grid-gap:.8rem;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}.boton,button{font:inherit;font-weight:600;font-size:.88rem;padding:.5rem .95rem;border-radius:var(--radio);cursor:pointer;border:1px solid var(--verde);background:var(--verde);color:var(--ground);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}.boton:hover,button:hover{background:var(--verde-hover);border-color:var(--verde-hover)}button:disabled{opacity:.5;cursor:not-allowed}.boton.secundario,button.secundario{background:var(--surface);color:var(--ink-soft);border-color:var(--rule-strong)}button.secundario:hover{background:var(--surface-alt);color:var(--ink)}button.discreto{background:none;border:none;color:var(--ink-faint);padding:.3rem .5rem;font-weight:500}button.discreto:hover{background:var(--surface-alt);color:var(--peligro)}.aviso{padding:.75rem .95rem;border-radius:var(--radio);font-size:.87rem;border:1px solid;display:flex;flex-direction:column;gap:.3rem}.aviso.error{background:var(--peligro-soft);border-color:var(--peligro);color:var(--peligro)}.aviso.exito{background:var(--verde-soft);border-color:var(--verde);color:var(--verde)}.aviso.atencion{background:var(--alerta-soft);border-color:var(--alerta);color:var(--alerta)}.etiqueta{font-family:IBM Plex Mono,monospace;font-size:.68rem;letter-spacing:.04em;padding:.15rem .45rem;border-radius:3px;border:1px solid var(--rule-strong);color:var(--ink-soft);background:var(--surface-alt);white-space:nowrap}.etiqueta.verde{color:var(--verde);border-color:var(--verde);background:var(--verde-soft)}.etiqueta.tueste{color:var(--tueste);border-color:var(--tueste);background:var(--tueste-soft)}.etiqueta.alerta{color:var(--alerta);border-color:var(--alerta);background:var(--alerta-soft)}.barra{display:flex;height:.55rem;border-radius:3px;overflow:hidden;background:var(--surface-alt)}.barra>span{display:block;height:100%}.leyenda{display:flex;flex-direction:column;gap:.45rem;font-size:.82rem}.leyenda-fila{display:grid;grid-template-columns:.6rem 1fr auto;grid-gap:.55rem;gap:.55rem;align-items:center}.punto{width:.6rem;height:.6rem;border-radius:2px}.pila{gap:1.5rem}.pila,.pila-sm{display:flex;flex-direction:column}.pila-sm{gap:.7rem}.linea-inferior{border-bottom:1px solid var(--rule);padding-bottom:.7rem}.selector-tema{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2px;gap:2px;padding:2px;background:var(--surface-alt);border:1px solid var(--rule);border-radius:var(--radio)}.selector-tema button{background:none;border:none;color:var(--ink-faint);font-size:.72rem;font-weight:500;font-family:IBM Plex Mono,ui-monospace,monospace;padding:.3rem .2rem;border-radius:3px;justify-content:center}.selector-tema button:hover{background:var(--surface);color:var(--ink-soft)}.selector-tema button[aria-pressed=true]{background:var(--surface);color:var(--verde);box-shadow:0 1px 2px rgba(0,0,0,.08)}.rango{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.55rem .7rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radio)}.rango[data-pendiente=si]{opacity:.6}.rango-atajos{display:flex;flex-wrap:wrap;gap:.3rem}.rango-atajos button{background:none;border:1px solid transparent;color:var(--ink-faint);font-size:.78rem;font-weight:500;padding:.25rem .6rem;border-radius:999px}.rango-atajos button:hover{background:var(--surface-alt);color:var(--ink)}.rango-atajos button[aria-pressed=true]{background:var(--verde-soft);color:var(--verde);border-color:var(--verde)}.rango-fechas{display:flex;align-items:center;gap:.4rem;margin-left:auto;color:var(--ink-faint)}.rango-fechas input{font-family:IBM Plex Mono,monospace;font-size:.76rem;padding:.22rem .4rem;border:1px solid var(--rule);border-radius:4px;background:var(--ground);color:var(--ink)}.visualmente-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.grafica{margin:0}.grafica svg{width:100%;height:auto;display:block;font-family:inherit}.grafica figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;margin-top:.6rem;font-size:.78rem;color:var(--ink-faint)}.leyenda-grafica{display:flex;align-items:center;gap:.35rem}.leyenda-grafica .marca{width:.6rem;height:.6rem;border-radius:2px;display:inline-block}.grafica .lectura{margin-left:auto;text-align:right}.grafica .lectura strong{color:var(--ink);font-weight:600}@media (max-width:640px){.grafica .lectura{margin-left:0;text-align:left}.rango-fechas{margin-left:0}}.num.entrada{color:var(--verde)}.num.salida{color:var(--peligro)}.fila-elegida>td{background:var(--verde-soft)}.boton-enlace{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;border-radius:var(--radio);border:1px solid var(--rule);background:var(--surface-alt);color:var(--ink);text-decoration:none;font-size:.82rem}.boton-enlace:hover{border-color:var(--ink-soft)}.documento{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radio);padding:2rem}.documento .membrete{text-align:center;margin-bottom:1.5rem}.documento .membrete h2{margin:0 0 .2rem}.documento .membrete p{margin:.1rem 0;font-size:.85rem;color:var(--ink-soft)}.documento .parrafo{text-align:justify;line-height:1.65;margin:0 0 1rem}table.libro{width:100%;border-collapse:collapse;font-size:.8rem}table.libro td,table.libro th{padding:.3rem .5rem;vertical-align:top}table.libro thead th{border-bottom:1.5px solid var(--ink);text-align:left}table.libro td.num,table.libro thead th.num{text-align:right}table.libro tbody tr.nuevo-asiento>td{border-top:1px solid var(--rule)}table.libro tfoot td{border-top:1.5px solid var(--ink);font-weight:600}.mes-mayor{page-break-inside:avoid;break-inside:avoid;margin-bottom:1.5rem}.mes-mayor h3{margin:0 0 .4rem;font-size:.95rem}.firmas{display:grid;grid-template-columns:1fr 1fr;grid-gap:3rem;gap:3rem;margin-top:3.5rem}.firmas p{margin:.15rem 0}.linea-firma{display:block;border-top:1px solid var(--ink);margin-bottom:.4rem}@media print{.aviso.atencion,.lateral,.no-imprimir,.rango{display:none!important}.shell{display:block}.contenido{padding:0}.documento{border:0;padding:0;background:#fff}table.libro thead{display:table-header-group}.firmas,table.libro tr{page-break-inside:avoid;break-inside:avoid}body{background:#fff;color:#000;font-size:10pt}a{color:inherit;text-decoration:none}}@page{margin:1.8cm 1.5cm}.hueso{display:block;border-radius:3px;background:linear-gradient(90deg,var(--surface-alt) 25%,var(--stripe) 50%,var(--surface-alt) 75%);background-size:200% 100%;animation:latido 1.4s ease-in-out infinite}@keyframes latido{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.hueso{animation:none;background:var(--surface-alt)}}.nav-alternar{display:none}@media (max-width:860px){.nav-alternar{display:flex;align-items:center;gap:.6rem;width:100%;justify-content:flex-start;font-weight:600}.nav[data-abierto=false]{display:none}.lateral{gap:.9rem}}table.libro thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--surface);box-shadow:0 1px 0 var(--ink)}@media print{table.libro thead th{position:static;box-shadow:none}}button.peligro{background:var(--peligro);border-color:var(--peligro);color:#fff}button.peligro:hover{filter:brightness(.93)}.aviso{scroll-margin-top:1rem}.tarjeta h3 a{color:inherit;text-decoration:none}.tarjeta h3 a:after{content:" ›";color:var(--ink-faint)}.tarjeta h3 a:hover{color:var(--verde);text-decoration:underline}.rejilla-proyectos{display:grid;grid-gap:.9rem;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.proyecto{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radio);padding:1.05rem 1.1rem;display:flex;flex-direction:column;gap:.85rem;transition:border-color .15s ease,box-shadow .15s ease}.proyecto:hover{border-color:var(--rule-strong);box-shadow:var(--sombra)}.proyecto>header{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.proyecto h3{font-size:1.02rem;line-height:1.25;margin:0}.proyecto h3 a{color:inherit;text-decoration:none}.proyecto h3 a:hover{color:var(--verde);text-decoration:underline}.proyecto .lugar{font-size:.78rem;color:var(--ink-faint);margin:.12rem 0 0}.estado-proyecto{font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;padding:.2rem .45rem;border-radius:3px;white-space:nowrap;border:1px solid transparent}.estado-proyecto.cotizado,.estado-proyecto.visitado{background:var(--surface-alt);color:var(--ink-soft)}.estado-proyecto.ejecutando{background:var(--verde-soft);color:var(--verde)}.estado-proyecto.entregado{background:var(--peligro-soft);color:var(--peligro)}.estado-proyecto.facturado{background:var(--verde-soft);color:var(--verde)}.estado-proyecto.cancelado{background:var(--surface-alt);color:var(--ink-faint)}.composicion{display:flex;height:26px;border-radius:3px;overflow:hidden;background:var(--surface-alt);transform-origin:left center;animation:abrir-barra .8s cubic-bezier(.22,.8,.3,1) both}@keyframes abrir-barra{0%{transform:scaleX(0);opacity:.4}}.composicion>span{display:block;min-width:2px}.seg-material{background:var(--rule-strong)}.seg-margen{background:var(--tueste)}.seg-obra{background:var(--verde)}.seg-vacio{background:repeating-linear-gradient(45deg,transparent 0 5px,var(--rule) 5px 6px);border:1px dashed var(--rule-strong);border-left:0}.leyenda-composicion{display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.78rem;color:var(--ink-soft)}.leyenda-composicion>span{display:inline-flex;align-items:center;gap:.35rem}.leyenda-composicion b{color:var(--ink);font-family:IBM Plex Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cuadro{width:9px;height:9px;border-radius:2px;flex:none}.consejo{font-size:.82rem;line-height:1.45;padding:.6rem .7rem;border-radius:3px;margin:0;background:var(--alerta-soft);color:var(--ink);border-left:2px solid var(--alerta)}.consejo.grave{background:var(--peligro-soft);border-left-color:var(--peligro)}.consejo b{font-family:IBM Plex Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.medidor{position:relative;height:34px}.medidor .pista{position:absolute;inset:12px 0 auto 0;height:10px;background:var(--surface-alt);border-radius:5px;overflow:hidden}.medidor .lleno{height:100%;background:var(--tueste);border-radius:5px 0 0 5px}.medidor .marca{position:absolute;top:4px;bottom:4px;width:2px;background:var(--verde)}.medidor .marca:after{content:attr(data-texto);position:absolute;left:50%;transform:translateX(-50%);top:-14px;font-family:IBM Plex Mono,monospace;font-size:.64rem;letter-spacing:.06em;color:var(--verde);white-space:nowrap}@media (prefers-reduced-motion:reduce){.composicion{animation:none}}.seg-perdida{background:var(--peligro)}.opciones{display:grid;grid-gap:.55rem;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.opcion{display:flex;flex-direction:column;gap:.2rem;cursor:pointer;padding:.7rem .8rem;border:1px solid var(--borde);border-radius:var(--radio);background:var(--surface);transition:border-color .15s,background .15s}.opcion.elegida,.opcion:hover{border-color:var(--tueste)}.opcion.elegida{background:var(--tueste-soft)}.opcion input{position:absolute;opacity:0;pointer-events:none}.opcion:focus-within{outline:2px solid var(--tueste);outline-offset:2px}.opcion b{font-size:.85rem}.opcion span{font-size:.74rem;color:var(--ink-faint);line-height:1.35}@media (prefers-reduced-motion:reduce){.opcion{transition:none}}