@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--blue-50:#eef4fb;--blue-100:#d6e6f5;--blue-200:#aecced;--blue-300:#7fb0e2;--blue-400:#5191d2;--blue-500:#2871b8;--blue-600:#21609f;--blue-700:#1c4f83;--blue-800:#1a4269;--blue-900:#15375a;--cafe-50:#f6f4f3;--cafe-100:#ebe7e6;--cafe-200:#d8d1cf;--cafe-300:#beb4b1;--cafe-400:#968a87;--cafe-500:#6f6462;--cafe-600:#5b5250;--cafe-700:#4f3f3f;--cafe-800:#3c3130;--cafe-900:#2a2322;--gray-0:#fff;--gray-50:#f7f8f9;--gray-100:#eef0f2;--gray-200:#e1e4e7;--gray-300:#cbd0d4;--gray-400:#999;--gray-500:#6e7378;--gray-600:#4f5458;--gray-700:#3a3e41;--gray-800:#333;--gray-900:#1d1f21;--success-50:#eaf5ee;--success-100:#cce8d6;--success-500:#2f8f5b;--success-700:#1f6b41;--warning-50:#fbf3e3;--warning-100:#f6e4c2;--warning-500:#d4922a;--warning-700:#9c6814;--danger-50:#fbecea;--danger-100:#f6d3ce;--danger-500:#c0392b;--danger-700:#8f261b;--info-50:var(--blue-50);--info-500:var(--blue-500);--info-700:var(--blue-700);--brand-primary:var(--blue-500);--brand-primary-hover:var(--blue-600);--brand-primary-active:var(--blue-700);--brand-secondary:var(--cafe-500);--brand-ink:var(--cafe-700);--surface-page:var(--cafe-50);--surface-card:var(--gray-0);--surface-sunken:var(--cafe-100);--surface-raised:var(--gray-0);--surface-inverse:var(--cafe-700);--surface-brand:var(--blue-500);--surface-hover:var(--cafe-100);--surface-selected:var(--blue-50);--text-strong:var(--gray-900);--text-body:var(--gray-800);--text-muted:var(--gray-500);--text-subtle:var(--gray-400);--text-on-brand:var(--gray-0);--text-on-dark:var(--gray-0);--text-link:var(--blue-600);--border-subtle:#e8e2df;--border-default:#d8d0cd;--border-strong:var(--cafe-400);--border-brand:var(--blue-500);--border-focus:var(--blue-500);--bg-success:var(--success-50);--bg-warning:var(--warning-50);--bg-danger:var(--danger-50);--bg-info:var(--info-50);--fg-success:var(--success-700);--fg-warning:var(--warning-700);--fg-danger:var(--danger-700);--fg-info:var(--info-700);--font-display:"Jost", "Century Gothic", "Futura", system-ui, sans-serif;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-base:16px;--fs-lg:18px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:30px;--fs-4xl:38px;--fs-5xl:48px;--fs-6xl:64px;--lh-tight:1.1;--lh-snug:1.25;--lh-normal:1.5;--lh-relaxed:1.65;--ls-tight:-.02em;--ls-normal:0;--ls-wide:.04em;--ls-wider:.12em;--text-display-font:var(--font-display);--text-heading-font:var(--font-display);--text-body-font:var(--font-sans);--text-data-font:var(--font-mono);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-none:0;--radius-xs:1px;--radius-sm:2px;--radius-md:2px;--radius-lg:3px;--radius-xl:4px;--radius-full:999px;--border-w-hairline:1px;--border-w-thick:2px;--border-accent:3px;--shadow-xs:0 1px 2px #1d1f210f;--shadow-sm:0 1px 3px #1d1f2114, 0 1px 2px #1d1f210f;--shadow-md:0 2px 6px #1d1f2114, 0 4px 12px #1d1f210f;--shadow-lg:0 6px 16px #1d1f211a, 0 12px 32px #1d1f2114;--shadow-focus:0 0 0 3px #2871b84d;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--z-base:0;--z-sticky:100;--z-dropdown:200;--z-overlay:300;--z-modal:400;--z-toast:500;--sidebar-w:248px;--topbar-h:60px;--container-max:1280px;--bg:var(--surface-page);--panel:var(--surface-card);--panel2:var(--cafe-100);--line:var(--border-subtle);--txt:var(--text-body);--muted:var(--text-muted);--accent:var(--brand-primary);--accent-ink:var(--text-on-brand);--accent2:var(--success-500);--danger:var(--danger-500);--warn:var(--warning-700);--chip:var(--cafe-100);--shadow:var(--shadow-sm)}[data-theme=dark]{--bg:var(--cafe-900);--panel:var(--cafe-800);--panel2:var(--cafe-700);--line:var(--cafe-600);--txt:var(--gray-50);--muted:var(--cafe-300);--accent:var(--blue-400);--accent-ink:var(--cafe-900);--accent2:var(--success-500);--danger:var(--danger-500);--warn:var(--warning-500);--chip:var(--cafe-700);--shadow:0 1px 3px #0006}*{box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg);color:var(--txt);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display)}.uf,.factorbox,.kpi b,.apu .price,.corr,table,.resumen td,td.r,th.r{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.right{margin-left:auto}.muted{color:var(--muted)}.hint{color:var(--muted);margin:6px 0;font-size:12px}.empty{color:var(--muted);text-align:center;padding:20px}header.app-header{background:var(--panel);border-bottom:1px solid var(--line);z-index:20;box-shadow:var(--shadow);padding:10px 16px;position:sticky;top:0}h1{margin:0;font-size:16px;font-weight:700}h1 small{color:var(--muted);font-weight:400}select,input,button{font:inherit;color:var(--txt);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px 8px}input[type=number]{text-align:right;width:92px}input[type=date]{width:auto}button{cursor:pointer;background:var(--panel2)}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.ok{background:var(--accent2);color:#fff;border-color:var(--accent2);font-weight:600}button.ghost{background:0 0}button.mini{padding:2px 8px;font-size:12px}button.danger{color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}label.fld{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}label.fld>*{color:var(--txt)}.tabs{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.tabs button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}main.app-main{padding:14px 16px}.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:12px}.card h2{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);align-items:center;gap:8px;margin:0 0 10px;font-size:13px;display:flex}.stack{flex-direction:column;gap:14px;display:flex}.two{grid-template-columns:1fr 1fr;align-items:start;gap:14px;margin-top:14px;display:grid}@media (max-width:900px){.two{grid-template-columns:1fr}}.comp-scroll{flex:1;overflow:auto}.zona{flex-wrap:wrap;align-items:stretch;gap:14px;margin-top:14px;display:flex}.zona>.card{flex-direction:column;flex:1 1 0;min-width:280px;max-height:74vh;display:flex}.compCard{min-width:320px}.zona.editing{flex-direction:column}.zona.editing .compCard{order:-1;width:100%;max-height:none}.card-hero{border:2px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){.card-hero{border:2px solid color-mix(in srgb,var(--accent) 35%,var(--line))}}.card-hero{box-shadow:0 4px 18px var(--accent)}@supports (color:color-mix(in lab, red, red)){.card-hero{box-shadow:0 4px 18px color-mix(in srgb,var(--accent) 12%,transparent)}}.bibhdr.folder{background:var(--panel2)}.bibhdr.back{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bibhdr.back{background:color-mix(in srgb,var(--accent) 10%,transparent)}}.bibhdr.back{font-weight:700}.cfg-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.lib{flex-direction:column;gap:6px;max-height:62vh;display:flex;overflow:auto}.apu{background:var(--panel2);border:1px solid var(--line);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.apu:hover{border-color:var(--accent)}.apu.sel{border-color:var(--accent);outline:2px solid var(--accent)}.apu .meta{min-width:0}.apu .cod{color:var(--accent);font-size:11px}.apu .nom{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.apu .sub{color:var(--muted);font-size:11px}.apu .price{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.drop{border:2px dashed var(--line);border-radius:10px;min-height:120px;transition:all .15s}.drop.over{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.drop.over{background:color-mix(in srgb,var(--accent) 8%,transparent)}}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 8px}th{text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}td.r,th.r{text-align:right}.tblPartidas thead th{background:var(--accent);color:var(--accent-ink);letter-spacing:.5px;border-bottom:none;padding:9px 8px;font-size:11px}.tblPartidas thead th:first-child{border-top-left-radius:8px}.tblPartidas thead th:last-child{border-top-right-radius:8px}.chev{width:24px;height:24px;color:var(--accent);cursor:pointer;vertical-align:middle;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}.chev:hover{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.chev:hover{background:color-mix(in srgb,var(--accent) 16%,transparent)}}tr.bloque td{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){tr.bloque td{background:color-mix(in srgb,var(--accent) 20%,var(--panel))}}tr.bloque td{border-top:1px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){tr.bloque td{border-top:1px solid color-mix(in srgb,var(--accent) 30%,var(--line))}}tr.bloque td{box-shadow:inset 4px 0 0 var(--accent);padding:11px 8px}tr.bloque b{letter-spacing:.2px;color:var(--txt);font-size:15px}tr.group td{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){tr.group td{background:color-mix(in srgb,var(--accent) 8%,var(--panel))}}tr.group td{text-transform:uppercase;letter-spacing:.7px;color:var(--accent);font-size:11px;font-weight:700}@supports (color:color-mix(in lab, red, red)){tr.group td{color:color-mix(in srgb,var(--accent) 55%,var(--txt))}}tr.group td{padding-top:7px;padding-bottom:7px}tr.group td:first-child{padding-left:16px}tr.group td.r{text-transform:none;letter-spacing:0;font-size:12.5px}tr.group2 td{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){tr.group2 td{background:color-mix(in srgb,var(--accent) 3%,var(--panel))}}tr.group2 td{color:var(--muted);padding:5px 0;font-size:11.5px;font-weight:600}tr.group2 td:first-child{padding-left:30px}.pinc{color:var(--muted);font-size:10.5px;font-weight:400;line-height:1.2}tr.rec td{background:var(--panel2)}@supports (color:color-mix(in lab, red, red)){tr.rec td{background:color-mix(in srgb,var(--panel2) 50%,transparent)}}tr.rec td{color:var(--muted);font-size:12px}.compBody tr.comp-root td{background:var(--panel2);font-size:12px}.compBody tr.comp-cont td{background:var(--panel2);font-size:12px;font-weight:600}.compBody tr.comp-target td{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.compBody tr.comp-target td{background:color-mix(in srgb,var(--accent) 14%,transparent)}}.compBody tr.comp-target td{box-shadow:inset 3px 0 0 var(--accent)}tr.tipo-hd td{background:var(--tipo-c)}@supports (color:color-mix(in lab, red, red)){tr.tipo-hd td{background:color-mix(in srgb,var(--tipo-c) 12%,var(--panel))}}tr.tipo-hd td{color:var(--tipo-c);text-transform:uppercase;letter-spacing:.6px;padding:8px 0;font-size:11px;font-weight:800}tr.tipo-hd td:first-child{border-left:4px solid var(--tipo-c);padding-left:14px}tr.tipo-hd--material{--tipo-c:#475569}tr.tipo-hd--equipo{--tipo-c:#2563eb}tr.tipo-hd--mano_obra{--tipo-c:#b45309}tr.tipo-hd--subcontrato{--tipo-c:#15803d}tr.tipo-hd--otro{--tipo-c:#6b7280}[data-theme=dark] tr.tipo-hd td{background:var(--tipo-c)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] tr.tipo-hd td{background:color-mix(in srgb,var(--tipo-c) 26%,var(--panel))}}[data-theme=dark] tr.tipo-hd td{color:var(--tipo-c)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] tr.tipo-hd td{color:color-mix(in srgb,var(--tipo-c) 55%,#fff)}}[data-theme=dark] tr.tipo-hd--material{--tipo-c:#94a3b8}[data-theme=dark] tr.tipo-hd--equipo{--tipo-c:#60a5fa}[data-theme=dark] tr.tipo-hd--mano_obra{--tipo-c:#fbbf24}[data-theme=dark] tr.tipo-hd--subcontrato{--tipo-c:#4ade80}[data-theme=dark] tr.tipo-hd--otro{--tipo-c:#9ca3af}[data-addaqui].on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.seccion{border-left:4px solid var(--accent)}.seccion h2 .step{background:var(--accent);width:22px;height:22px;color:var(--accent-ink);vertical-align:middle;border-radius:50%;justify-content:center;align-items:center;margin-right:6px;font-size:12px;font-weight:700;display:inline-flex}.s-datos{background:#6366f1;border-left-color:#6366f1}@supports (color:color-mix(in lab, red, red)){.s-datos{background:color-mix(in srgb,#6366f1 5%,var(--panel))}}.s-datos h2 .step{color:#fff;background:#6366f1}.s-rec{background:#16a34a;border-left-color:#16a34a}@supports (color:color-mix(in lab, red, red)){.s-rec{background:color-mix(in srgb,#16a34a 5%,var(--panel))}}.s-rec h2 .step{color:#fff;background:#16a34a}.s-apu{background:#2563eb;border-left-color:#2563eb}@supports (color:color-mix(in lab, red, red)){.s-apu{background:color-mix(in srgb,#2563eb 5%,var(--panel))}}.s-apu h2 .step{color:#fff;background:#2563eb}.s-nuevo{background:#64748b;border-left-color:#64748b}@supports (color:color-mix(in lab, red, red)){.s-nuevo{background:color-mix(in srgb,#64748b 6%,var(--panel))}}.s-nuevo h2 .step{color:#fff;background:#64748b}.s-result{border:2px solid var(--accent2);box-shadow:0 2px 14px var(--accent2);border-left-width:5px}@supports (color:color-mix(in lab, red, red)){.s-result{box-shadow:0 2px 14px color-mix(in srgb,var(--accent2) 18%,transparent)}}.s-result h2 .step{background:var(--accent2);color:#fff}.lib-sm{max-height:230px}.nivel-name{min-width:170px;padding:2px 6px;font-weight:600}.crTabla th:first-child,.crTabla td.cr-handle{white-space:nowrap;width:46px}.cr-handle .grip{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;margin-right:3px;font-size:13px}.cr-handle .grip:active{cursor:grabbing}.crTabla tr.cr-selected td{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.crTabla tr.cr-selected td{background:color-mix(in srgb,var(--accent) 12%,transparent)}}.crTabla tr.cr-drop-over td{box-shadow:inset 0 2px 0 0 var(--accent2)}.cr-acc{justify-content:flex-end;align-items:center;gap:7px;display:inline-flex}.dest-wrap{justify-content:center;align-items:center;display:inline-flex;position:relative}.dest-toggle{border:2px solid var(--muted);cursor:pointer;background:0 0;border-radius:50%;width:15px;height:15px;padding:0}.dest-toggle:hover{border-color:var(--accent2)}.dest-toggle.on{background:var(--accent2);border-color:var(--accent2);box-shadow:0 0 0 2px var(--accent2)}@supports (color:color-mix(in lab, red, red)){.dest-toggle.on{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent2) 30%,transparent)}}.dest-lbl{color:var(--accent2);margin-top:1px;font-size:9px;font-weight:600;line-height:1;position:absolute;top:100%;left:50%;transform:translate(-50%)}.crTabla button.cradd{box-sizing:border-box;color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;min-width:22px;height:22px;margin:0;padding:0;font:700 16px/1 system-ui,Arial,sans-serif;display:inline-flex;box-shadow:0 1px 2px #0000004d}.crTabla button.cradd:hover{background:#4f46e5}.crTabla tr.ro-aviso td{color:var(--warn);background:var(--warn);font-style:normal}@supports (color:color-mix(in lab, red, red)){.crTabla tr.ro-aviso td{background:color-mix(in srgb,var(--warn) 10%,transparent)}}.crTabla tr.ro-aviso td{font-size:11px}.cr-hdr{padding:3px 6px}.cr-hnom{min-width:220px;font-weight:700}.cr-cod{width:96px;padding:2px 6px}.crTabla tr.ro td{background:var(--panel2)}@supports (color:color-mix(in lab, red, red)){.crTabla tr.ro td{background:color-mix(in srgb,var(--panel2) 55%,transparent)}}.crTabla tr.ro td{color:var(--muted);font-size:12px;font-style:italic}.crTabla tr.comp-root td{background:var(--panel2)}.crTabla tr.comp-target td{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.crTabla tr.comp-target td{background:color-mix(in srgb,var(--accent) 14%,transparent)}}.crTabla tr.comp-target td{box-shadow:inset 3px 0 0 var(--accent)}.tag{background:var(--chip);color:var(--txt);white-space:nowrap;border-radius:10px;padding:1px 7px;font-size:10px}.tag.mo{color:#7c2d12;background:#fde68a}.tag.sub{color:#14532d;background:#bbf7d0}.tag.eq{color:#1e3a8a;background:#bfdbfe}[data-theme=dark] .tag.mo{color:#fde68a;background:#78350f}[data-theme=dark] .tag.sub{color:#bbf7d0;background:#14532d}[data-theme=dark] .tag.eq{color:#bfdbfe;background:#1e3a8a}.resumen td{border:none;padding:4px 8px}.resumen .tot td{border-top:2px solid var(--accent);font-size:16px;font-weight:800}.factorbox{color:var(--accent);font-size:22px;font-weight:800}.dock{z-index:18;background:var(--panel);border:1px solid var(--line);flex-direction:column;transition:left .16s;display:flex;position:fixed;box-shadow:0 0 22px #1428502e}.dock-bar{background:var(--accent);align-items:center;gap:8px;padding:7px 10px;display:flex}@supports (color:color-mix(in lab, red, red)){.dock-bar{background:color-mix(in srgb,var(--accent) 14%,var(--panel))}}.dock-bar{border-bottom:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;flex:none}.dock-bar b{white-space:nowrap;font-size:13px}.dock-modes{gap:4px;display:flex}.dock-mode{letter-spacing:.5px;border:1px solid var(--line);background:var(--panel2);cursor:pointer;border-radius:7px;padding:5px 11px;font-size:12px;font-weight:800}.dock-mode:hover{border-color:var(--accent)}.dock-mode.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.dock-spacer{flex:1}.dock-docks{gap:3px;display:flex}.dock-docks button{border:1px solid var(--line);background:0 0;padding:2px 7px;font-size:13px;line-height:1.2}.dock-docks button:hover{border-color:var(--accent);color:var(--accent)}.dock-body{flex:auto;padding:10px;overflow:auto}.dock .lib{max-height:none}.dock-resize{z-index:2;background:0 0;position:absolute}.dock-resize:hover{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dock-resize:hover{background:color-mix(in srgb,var(--accent) 35%,transparent)}}.dock.collapsed .dock-body,.dock.collapsed .dock-resize,.dock.collapsed .dock-spacer,.dock.collapsed .dock-addtodo,.dock.collapsed .dock-docks,.dock.collapsed .dock-title{display:none}.dock.collapsed.dock-left .dock-bar,.dock.collapsed.dock-right .dock-bar{flex-direction:column;align-items:stretch;gap:6px;padding:8px 6px}.dock.collapsed.dock-left .dock-modes,.dock.collapsed.dock-right .dock-modes{flex-direction:column}.dock-bottom{left:var(--cg-side-w,0);border-radius:12px 12px 0 0;bottom:0;right:0}.dock-bottom .dock-resize{cursor:ns-resize;height:7px;top:0;left:0;right:0}.dock-left{top:var(--cg-header-h,0);bottom:0;left:var(--cg-side-w,0);border-radius:0 12px 12px 0}.dock-left .dock-resize{cursor:ew-resize;width:7px;top:0;bottom:0;right:0}.dock-right{top:var(--cg-header-h,0);border-radius:12px 0 0 12px;bottom:0;right:0}.dock-right .dock-resize{cursor:ew-resize;width:7px;top:0;bottom:0;left:0}.dock.collapsed.dock-left .dock-bar b,.dock.collapsed.dock-right .dock-bar b{display:none}.toast-host{z-index:50;position:fixed;bottom:16px;right:16px}.toast{background:var(--panel);border:1px solid var(--accent);box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:8px;padding:10px 14px;display:flex}.toast.err{border-color:var(--danger)}.zona>.card{animation:.18s both zona-in}@keyframes zona-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tblPartidas tbody tr.nav:hover td{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.tblPartidas tbody tr.nav:hover td{background:color-mix(in srgb,var(--accent) 7%,var(--panel))}}.compBody tr.rec:hover td{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.compBody tr.rec:hover td{background:color-mix(in srgb,var(--accent) 7%,transparent)}}.comp-scroll input:focus-visible,.tblPartidas input:focus-visible{outline:2px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){.comp-scroll input:focus-visible,.tblPartidas input:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent)}}.comp-scroll input:focus-visible,.tblPartidas input:focus-visible{outline-offset:-1px;border-radius:4px}@media (prefers-reduced-motion:reduce){.zona>.card{animation:none}}.uf{color:var(--accent2);font-weight:700}.bibhdr{cursor:pointer;background:var(--panel2);text-transform:uppercase;color:var(--accent);-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;margin-top:4px;padding:6px 8px;font-size:12px;font-weight:700;display:flex}.bibhdr:hover{outline:1px solid var(--accent)}tr.subtot td{background:var(--panel2);font-weight:600}tr.subtot.ls td{color:var(--warn)}.corr{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px;font-weight:700}tr.bloque .corr{color:var(--accent);font-size:13px}tr.rec.ls-row td{background:0 0;font-style:italic}.avisos{background:#fff8ec;border:1px solid #fbe3b8;border-radius:10px;margin:0 0 10px;overflow:hidden}.avisos.has-err{background:#fdf1f1;border-color:#f3c0c0}.avisos-head{cursor:pointer;color:#7a4f12;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:8px 12px;font-weight:700;display:flex}.avisos.has-err .avisos-head{color:#8a1c1c}.avisos-head .avisos-chevron{margin-left:auto;font-weight:400}.avisos-badge{text-align:center;color:#fff;background:#d97706;border-radius:999px;min-width:18px;padding:0 6px;font-size:11px;font-weight:800;display:inline-block}.avisos.has-err .avisos-badge{background:#dc2626}.avisos-body{border-top:1px solid #0000000f;padding:4px 12px 10px}.aviso{color:#5b4a2a;border-bottom:1px dashed #00000014;padding:5px 0;font-size:13px}.aviso:last-child{border-bottom:none}.aviso.err{color:#7a1f1f}.aviso[data-goto]{cursor:pointer}.aviso[data-goto]:hover{background:#0000000a;border-radius:6px}.aviso-ir{float:right;color:var(--accent);font-size:12px;font-weight:700}.crumbbar{background:var(--panel2);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;padding:8px 12px;font-size:14px;display:flex}.crumb.cur{font-weight:800}.crumb.link{color:var(--accent);cursor:pointer;font-weight:700}.crumb.link:hover{text-decoration:underline}.crumb-sep{color:var(--muted);font-weight:800}.tblPartidas tr.bloque.nav{cursor:pointer}.tblPartidas tr.bloque.nav:hover td{filter:brightness(.97)}.tblRecursos td.cta{color:var(--muted);max-width:260px;font-size:12px}.tblRecursos td.cta code{background:var(--chip);border-radius:5px;margin-right:4px;padding:1px 5px;font-size:11px}.cc-tag{color:var(--muted);background:var(--chip);white-space:nowrap;border-radius:5px;padding:0 5px;font-size:11px}.plt-card{background:var(--panel2);border:1px solid var(--line);border-radius:8px;margin-bottom:8px;padding:8px 10px}.plt-h{justify-content:space-between;align-items:center;gap:8px;display:flex}.plt-meta{color:var(--muted);margin:2px 0 6px;font-size:11px}.plt-tree{max-height:200px;font-size:12px;overflow:auto}.plt-cap{margin-top:3px;font-weight:600}.plt-sub{color:var(--muted);padding-left:16px}.nav-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.nav-top a{color:var(--accent);font-size:13px;font-weight:600;text-decoration:none}.nav-top a:hover{text-decoration:underline}.kpibar{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:6px 0 4px;display:grid}.kpi{background:var(--panel2);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.kpi b{font-variant-numeric:tabular-nums;font-size:20px}.kpi span{color:var(--muted);font-size:11px}.kpi.accent{border-color:var(--accent)}.kpi.over b{color:var(--danger)}.kpi.under b{color:var(--accent2)}.over{color:var(--danger)}.under{color:var(--accent2)}.soon{color:var(--muted)}.ctl-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.ctl-card{background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:10px;padding:12px;text-decoration:none;display:block}.ctl-card:hover{border-color:var(--accent)}.ctl-card-h{margin-bottom:8px;font-weight:700}.ctl-kpis{flex-wrap:wrap;gap:12px;display:flex}.ctl-kpis span{flex-direction:column;display:flex}.ctl-kpis b{font-size:15px}.ctl-kpis i{color:var(--muted);font-size:10px;font-style:normal}.ctl-card-f{color:var(--muted);margin-top:8px;font-size:11px}.ctl-tbl th,.ctl-tbl td{padding:5px 8px}.ctl-grp td{background:var(--panel2);font-weight:700}.drillable{cursor:pointer}.drillable:hover td{filter:brightness(.97)}tr.drill td{background:var(--panel2)}@supports (color:color-mix(in lab, red, red)){tr.drill td{background:color-mix(in srgb,var(--panel2) 60%,transparent)}}tr.drill td{font-size:12px}.dchev{color:var(--accent)}.funnel .fr{grid-template-columns:220px 1fr auto;align-items:center;gap:10px;margin:6px 0;display:grid}.cbar{background:var(--panel2);border-radius:7px;height:14px;display:block;overflow:hidden}.cbar i{height:100%;display:block}.cbar i.comp{background:var(--accent)}.cbar i.real{background:var(--accent2)}.curva{width:100%;height:auto}.curva .cbase{stroke:var(--muted);stroke-dasharray:5 4;stroke-width:1px}.curva .cpoly{fill:none;stroke-width:2.4px}.curva .cpoly.comp{stroke:var(--accent)}.curva .cpoly.real{stroke:var(--accent2)}.curva .cax{fill:var(--muted);font-size:10px}.cleg{gap:16px;margin-top:6px;font-size:12px;display:flex}.cleg .comp{color:var(--accent)}.cleg .real{color:var(--accent2)}.cleg .base{color:var(--muted)}.acc{cursor:pointer}.doc{max-width:920px;margin:0 auto;padding:24px 16px}.doc h1{margin:0 0 6px;font-size:24px}.doc h2{text-transform:none;letter-spacing:0;color:var(--txt);margin:24px 0 8px;font-size:18px}.doc p,.doc li{line-height:1.6}.doc code{background:var(--chip);border-radius:5px;padding:1px 5px;font-size:13px}.doc .lead{color:var(--muted);font-size:15px}.doc .box{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;margin:12px 0;padding:14px 16px}.card,.kpi,.ctl-card,.apu,.crumbbar,.plt-card,.avisos,.doc .box{border-radius:var(--radius-lg)}.tag{border-radius:var(--radius-sm)}select,input,button,.dock-mode,.tabs button{border-radius:var(--radius-md)}.tabs button{border-radius:var(--radius-sm) var(--radius-sm) 0 0}header.app-header{border-bottom:1px solid var(--line);box-shadow:inset 0 3px 0 var(--brand-primary),var(--shadow)}.brand-title{font-family:var(--font-display);letter-spacing:var(--ls-tight);align-items:center;gap:10px;font-size:16px;font-weight:600;display:flex}.brand-eyebrow{display:none}.brand-mark{background:var(--brand-primary);flex:none;width:14px;height:14px;display:inline-block;transform:rotate(45deg)}h1 small{color:var(--muted);font-weight:400;font-family:var(--font-sans)}.tblPartidas thead th{background:var(--brand-primary)}button.primary:hover{background:var(--brand-primary-hover);border-color:var(--brand-primary-hover)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
