:root{--bg:#0f1419;--bg-elevated:#1a222c;--surface:#243040;--border:rgba(255,255,255,0.08);--text:#f0f4f8;--text-muted:#94a3b8;--accent:#f59e0b;--accent-hover:#fbbf24;--accent-muted:rgba(245,158,11,0.15);--radius:12px;--font-sans:var(--font-geist-sans),system-ui,sans-serif}html{height:100%}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100%;font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-body{flex:1 1;display:flex;min-height:0;align-items:stretch}.app-body__content{flex:1 1;min-width:0;display:flex;flex-direction:column}.app-header{border-bottom:1px solid var(--border);background:rgba(15,20,25,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:80;overflow:visible}.app-header__inner{max-width:95%;margin:0 auto;padding:.5rem 0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;overflow:visible}.app-header__left{display:flex;align-items:center;gap:.55rem;min-width:0}.app-header__center{display:flex;justify-content:flex-start;min-width:0;overflow:visible;position:relative;z-index:2}.app-header__obra-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.5rem;width:min(100%,22rem);max-width:22rem;min-width:0}.app-header__obra-select{flex:1 1 auto;min-width:0;position:relative;z-index:1}.app-header__obra-select .select-trigger{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.app-header__right{justify-content:flex-end}.app-logo{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.15rem;letter-spacing:-.02em}.app-logo__mark{width:10px;height:28px;border-radius:3px;background:linear-gradient(180deg,var(--accent) 0,#d97706 100%);box-shadow:0 0 20px rgba(245,158,11,.35)}.app-nav{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.app-nav a{color:var(--text-muted);transition:color .15s;white-space:nowrap}.app-nav a:hover{color:var(--text)}.app-nav__cta{padding:.45rem 1rem;border-radius:10px;background:var(--accent-muted);color:var(--accent)!important;border:1px solid rgba(245,158,11,.35);font-weight:600;cursor:pointer}.app-nav__cta:hover{background:rgba(245,158,11,.22);color:var(--accent-hover)!important}.app-nav__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.app-nav__icon-btn:hover{color:var(--text);border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}.form-success{color:#34d399;font-size:.875rem;margin:.5rem 0 0}.app-main{flex:1 1;width:100%;max-width:95%;margin:0 auto;padding:1rem 0 1.5rem}.app-footer{border-top:1px solid var(--border);padding:.55rem .75rem;text-align:center;font-size:.8rem;color:var(--text-muted)}.hero{margin-bottom:2.5rem}.hero__eyebrow{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:.75rem}.hero h1{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;letter-spacing:-.03em;line-height:1.15;margin-bottom:.75rem;max-width:32ch}.hero p{color:var(--text-muted);font-size:1.05rem;line-height:1.55;max-width:52ch}.grid-modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media (max-width:920px){.grid-modules{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.grid-modules{grid-template-columns:1fr}}.module-card{display:flex;flex-direction:column;padding:1.35rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,transform .15s;cursor:pointer}.module-card:hover{border-color:rgba(245,158,11,.25);transform:translateY(-2px)}.module-card:focus-visible{outline:none;border-color:rgba(245,158,11,.55);box-shadow:0 0 0 3px rgba(245,158,11,.15)}.module-card h2{font-size:1.05rem;font-weight:600;margin-bottom:.35rem;color:var(--text);text-transform:uppercase;letter-spacing:.04em}.module-card p{font-size:.875rem;color:var(--text-muted);line-height:1.45;flex:1 1;margin-bottom:0}.login-page{max-width:400px;margin:0 auto}.login-page h1{font-size:1.5rem;margin-bottom:.5rem}.login-page>p{color:var(--text-muted);font-size:.95rem;margin-bottom:1.75rem}.form-field{margin-bottom:.5rem}.form-field>label{display:block;font-size:.78rem;font-weight:600;margin-bottom:.28rem;color:var(--text-muted)}.autocomplete-field .autocomplete-wrap>input,.form-field .input-stepper__field,.form-field>input:not([type=checkbox]):not([type=radio]),.form-field>select,.select-trigger{box-sizing:border-box;width:100%;min-height:2.2rem;height:2.2rem;padding:0 .65rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.95rem;line-height:1.25;font-family:inherit}.codigo-subrubro{box-sizing:border-box;display:inline-flex;align-items:stretch;width:100%;min-height:2.2rem;height:2.2rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);overflow:hidden}.codigo-subrubro__prefijo{display:inline-flex;align-items:center;flex-shrink:0;padding:0 .65rem 0 .85rem;color:var(--text-muted);background:rgba(255,255,255,.03);border-right:1px solid var(--border);-webkit-user-select:none;user-select:none}.codigo-subrubro__prefijo,.codigo-subrubro__sufijo{font-family:ui-monospace,monospace;font-size:1rem;line-height:1.25}.codigo-subrubro__sufijo{box-sizing:border-box;flex:1 1;min-width:0;width:auto;min-height:0;height:100%;margin:0;padding:0 .85rem;border:none;border-radius:0;background:transparent;color:var(--text);outline:none}.codigo-subrubro:focus-within{border-color:rgba(245,158,11,.5);box-shadow:0 0 0 3px rgba(245,158,11,.12)}.codigo-subrubro__sufijo:disabled{opacity:.65;cursor:not-allowed}.select-trigger{margin:0;text-align:left;display:inline-flex;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer}.select-trigger:disabled{opacity:.65;cursor:not-allowed}.select-trigger--compact{min-height:2.25rem;height:2.25rem;font-size:.9rem}.grid-2>.autocomplete-field,.grid-2>.form-field{min-width:0}.autocomplete-field .autocomplete-wrap>input:focus,.form-field .input-stepper__field:focus,.form-field>input:not([type=checkbox]):not([type=radio]):focus,.select-trigger:focus{outline:none;border-color:rgba(245,158,11,.5);box-shadow:0 0 0 3px rgba(245,158,11,.12)}.autocomplete-field .autocomplete-wrap>input:disabled,.form-field .input-stepper__field:disabled,.form-field>input:not([type=checkbox]):not([type=radio]):disabled{opacity:.65;cursor:not-allowed}.form-field>textarea{width:100%;padding:.5rem .7rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem;font-family:inherit;line-height:1.45;resize:vertical;min-height:3.5rem}.form-field>select:focus,.form-field>textarea:focus{outline:none;border-color:rgba(245,158,11,.5);box-shadow:0 0 0 3px rgba(245,158,11,.12)}.form-field>select{appearance:none}.date-input{position:relative;width:100%}.date-input__trigger{width:100%}.date-input__value{color:var(--text)}.date-input__placeholder,.date-input__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-input__placeholder{color:var(--text-muted)}.date-input__popover{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:60;padding:.75rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:0 12px 40px rgba(0,0,0,.35)}.date-input__header{display:flex;align-items:center;justify-content:space-between;gap:.35rem;margin-bottom:.65rem}.date-input__nav-group{display:flex;align-items:center;gap:.2rem;flex-shrink:0}.date-input__month{flex:1 1;text-align:center;font-weight:600;font-size:.95rem;text-transform:capitalize;min-width:0}.date-input__nav{width:2rem;height:2rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated);color:var(--text);cursor:pointer;font-size:1.1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.date-input__nav:hover{background:var(--accent-muted);border-color:rgba(245,158,11,.45);color:var(--accent)}.date-input__nav--year{font-size:.95rem;letter-spacing:-.05em}.date-input__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.15rem;margin-bottom:.35rem}.date-input__weekday{text-align:center;font-size:.75rem;font-weight:600;color:var(--text-muted);padding:.15rem 0}.date-input__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.15rem}.date-input__day{min-height:2rem;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:.9rem;cursor:pointer;transition:background .15s ease,color .15s ease}.date-input__day:hover:not(.date-input__day--empty):not(.date-input__day--disabled){background:var(--accent-muted);color:var(--accent)}.date-input__day--today{border:1px solid rgba(245,158,11,.35)}.date-input__day--selected{background:rgba(245,158,11,.22);color:var(--accent);font-weight:700}.date-input__day--empty{cursor:default;pointer-events:none}.date-input__day--disabled{opacity:.35;cursor:not-allowed;pointer-events:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{appearance:none;display:none}input[type=search]::-moz-search-clear-button{display:none}.input--sm-placeholder::placeholder{font-size:.85em}.btn-primary{width:100%;margin-top:.4rem;padding:.45rem .75rem;border:none;border-radius:8px;background:var(--accent);color:#0f1419;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.app-header__nueva-obra.btn-primary{width:2.25rem;min-width:2.25rem;max-width:2.25rem;margin-top:0;flex:0 0 2.25rem;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:0;line-height:1;min-height:2.25rem;height:2.25rem;padding:0;font-size:.85rem}.form-error{margin-top:.5rem;padding:.5rem;border-radius:8px;background:rgba(239,68,68,.12);color:#fca5a5;font-size:.85rem}.form-hint{margin-top:.75rem;font-size:.85rem;color:var(--text-muted)}.presupuesto-layout{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:.85rem;align-items:start;margin-top:.85rem}.presupuesto-layout--panel-collapsed{grid-template-columns:minmax(0,1fr)}@media (max-width:960px){.presupuesto-layout{grid-template-columns:1fr}}.presupuesto-panel{position:sticky;top:1rem}.app-main:has(.presupuesto-page){padding-bottom:0}.presupuesto-page__workspace{height:calc(100dvh - 4rem);max-height:calc(100dvh - 4rem);margin-top:.75rem;display:flex;flex-direction:column;min-height:0}.presupuesto-page__workspace .presupuesto-layout{flex:1 1;min-height:0;margin-top:0;height:100%;align-items:stretch}.presupuesto-page .presupuesto-panel{position:relative;top:auto;height:100%;max-height:none;overflow-y:auto;align-self:stretch}.presupuesto-page .presupuesto-list{display:flex;flex-direction:column;height:100%;max-height:none;overflow:hidden;min-height:0;align-self:stretch}.presupuesto-list__head{flex-shrink:0;display:flex;flex-direction:column;gap:.4rem;padding-bottom:.55rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}.presupuesto-list__title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.presupuesto-list__body{flex:1 1;min-height:0;overflow-y:auto;padding-right:.15rem}@media (max-width:960px){.presupuesto-page__workspace{height:auto;max-height:none}.presupuesto-page__workspace .presupuesto-layout{height:auto;align-items:start}.presupuesto-page .presupuesto-list,.presupuesto-page .presupuesto-panel{height:auto;max-height:min(70dvh,36rem)}.presupuesto-page .presupuesto-list__body{max-height:42dvh}}.presupuesto-panel__tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.65rem}.panel-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:.65rem}.panel-tabs__tab{flex:1 1;min-width:0;padding:.45rem .6rem;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--text-muted);font-family:inherit;font-size:.88rem;font-weight:500;line-height:1.25;text-align:center;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.panel-tabs__tab:hover:not(:disabled):not(.panel-tabs__tab--active){color:var(--text);background:rgba(255,255,255,.03)}.panel-tabs__tab--active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.panel-tabs__tab:disabled{opacity:.45;cursor:not-allowed}.panel-segments{display:flex;flex-wrap:wrap;gap:.2rem;padding:.22rem;margin-bottom:.55rem;border:1px solid var(--border);border-radius:10px;background:rgba(0,0,0,.18)}.panel-segments__tab{flex:1 1 auto;min-width:0;padding:.35rem .5rem;border:none;border-radius:7px;background:transparent;color:var(--text-muted);font-family:inherit;font-size:.8rem;font-weight:500;line-height:1.25;text-align:center;cursor:pointer;transition:color .15s ease,background .15s ease,box-shadow .15s ease}.panel-segments__tab:hover:not(:disabled):not(.panel-segments__tab--active){color:var(--text);background:rgba(255,255,255,.04)}.panel-segments__tab--active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.22)}.panel-segments__tab--disabled,.panel-segments__tab:disabled{opacity:.45;cursor:not-allowed}.ejecucion-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;margin-bottom:.65rem}.ejecucion-stepper__step{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.4rem .25rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-muted);font-family:inherit;font-size:.72rem;line-height:1.2;cursor:pointer}.ejecucion-stepper__step:hover{color:var(--text);border-color:rgba(245,158,11,.35)}.ejecucion-stepper__num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--border);font-size:.7rem;font-weight:700}.ejecucion-stepper__step--done{color:var(--text)}.ejecucion-stepper__step--done .ejecucion-stepper__num{background:#059669;border-color:#059669;color:#fff}.ejecucion-stepper__step--current{color:var(--text);border-color:rgba(245,158,11,.6);background:rgba(245,158,11,.08);font-weight:600}.ejecucion-stepper__step--current .ejecucion-stepper__num{border-color:#f59e0b;color:#f59e0b}.obra-modulos-nav{margin-top:.55rem;margin-bottom:.15rem}.obra-modulos-nav .panel-segments__tab{font-size:.8rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:.4rem .55rem}.obra-modulos-nav a.panel-segments__tab{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.obra-sidebar{flex:0 0 13.5rem;width:13.5rem;border-right:1px solid var(--border);background:rgba(15,20,25,.55);padding:.75rem .55rem;position:sticky;top:3.4rem;align-self:flex-start;height:calc(100dvh - 3.4rem);display:flex;flex-direction:column;overflow:hidden}.obra-sidebar__title{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:0 .55rem .55rem}.obra-sidebar__nav{display:flex;flex-direction:column;gap:.2rem;flex:1 1;min-height:0;overflow-y:auto}.obra-sidebar__theme{display:grid;grid-template-columns:1fr 1fr;gap:.2rem;margin-top:auto;padding:.7rem .15rem .1rem;border-top:1px solid var(--border)}.obra-sidebar__theme-btn{border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-muted);font-family:inherit;font-size:.78rem;font-weight:600;padding:.4rem .3rem;cursor:pointer}.obra-sidebar__theme-btn:hover{color:var(--text)}.obra-sidebar__theme-btn--active{background:var(--accent-muted);border-color:var(--border);color:var(--text)}.obra-sidebar__item{display:flex;align-items:center;gap:.55rem;padding:.5rem .55rem;border-radius:8px;color:var(--text-muted);font-size:.88rem;font-weight:500;transition:background .15s ease,color .15s ease}a.obra-sidebar__item:hover{color:var(--text);background:rgba(255,255,255,.04)}.obra-sidebar__item--active{color:var(--text);background:var(--accent-muted);font-weight:600}.obra-sidebar__item--disabled{opacity:.4;cursor:not-allowed}.obra-sidebar__icon{display:inline-flex;flex-shrink:0;color:inherit}.obra-sidebar__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obra-sidebar__backdrop{display:none}@media (max-width:900px){.app-header__inner{grid-template-columns:1fr;gap:.5rem}.app-header__center,.app-header__right{justify-content:stretch}.app-header__obra-row{width:100%;max-width:none}.app-header__obra-select{max-width:none}.app-nav.app-header__right{flex-wrap:wrap;justify-content:flex-start}.obra-sidebar__backdrop{display:block;position:fixed;inset:0;z-index:55;border:none;padding:0;margin:0;background:rgba(0,0,0,.45);cursor:pointer}.obra-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:60;height:100dvh;box-shadow:12px 0 40px rgba(0,0,0,.35)}}.pago-plan{margin-top:.35rem;border:1px solid var(--border);border-radius:10px;background:rgba(0,0,0,.14);overflow:hidden}.pago-plan__title{font-size:.82rem;font-weight:600;margin:0 0 .35rem;color:var(--text)}.pago-plan__head,.pago-plan__row{display:grid;grid-template-columns:2.25rem minmax(9rem,1fr) minmax(7rem,1fr) 2.25rem;gap:.5rem;align-items:center;padding:.45rem .65rem}.pago-plan__head{font-size:.72rem;font-weight:600;letter-spacing:.01em;color:var(--text-muted);border-bottom:1px solid var(--border);background:rgba(0,0,0,.1)}.pago-plan__row+.pago-plan__row{border-top:1px solid rgba(255,255,255,.04)}.pago-plan__nro{display:flex;align-items:center;justify-content:center;min-height:2.25rem;font-size:.82rem;font-weight:600;color:var(--text-muted);border-radius:7px;background:rgba(255,255,255,.04)}.pago-plan__input{box-sizing:border-box;width:100%;min-height:2.25rem;height:2.25rem;padding:0 .65rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.9rem;font-family:inherit;line-height:1.25}.pago-plan__input::placeholder{color:var(--text-muted);opacity:.75}.pago-plan__input:focus{outline:none;border-color:rgba(245,158,11,.5);box-shadow:0 0 0 3px rgba(245,158,11,.12)}.pago-plan__input:disabled{opacity:.65;cursor:not-allowed}.pago-plan__input--monto{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pago-plan__remove{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin:0;padding:0;border-radius:8px;border:1px solid var(--border);background:rgba(239,68,68,.08);color:#f87171;font-size:1.1rem;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease}.pago-plan__remove:hover:not(:disabled){background:rgba(239,68,68,.16);border-color:rgba(239,68,68,.35)}.pago-plan__remove:disabled{opacity:.35;cursor:not-allowed}.pago-plan__toolbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:flex-end;padding:.65rem;border-top:1px solid var(--border);background:rgba(0,0,0,.08)}.pago-plan__calc{display:flex;flex-direction:column;gap:.28rem;min-width:0}.pago-plan__calc label{font-size:.72rem;font-weight:600;color:var(--text-muted)}.pago-plan__calc .pago-plan__input{width:5.5rem}.pago-plan__calc--date .pago-plan__input{width:10.5rem}@media (max-width:560px){.pago-plan__head{display:none}.pago-plan__row{grid-template-columns:2.25rem 1fr 2.25rem;grid-template-areas:"nro fecha remove" "nro monto remove";row-gap:.35rem}.pago-plan__nro{grid-area:nro;align-self:stretch}.pago-plan__row .pago-plan__input[type=date]{grid-area:fecha}.pago-plan__row .pago-plan__input--monto{grid-area:monto}.pago-plan__remove{grid-area:remove;align-self:center}}.presupuesto-panel__fields{display:flex;flex-direction:column;gap:0}.presupuesto-panel__fields .autocomplete-field,.presupuesto-panel__fields .form-field{margin-bottom:.6rem}.presupuesto-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;margin-top:.5rem}.presupuesto-header__aside{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}.presupuesto-header__tc.form-field{margin-bottom:0;display:flex;flex-direction:column;align-items:flex-end}.presupuesto-header__tc.form-field>label{text-align:right}.presupuesto-header__tc.form-field .input-stepper{width:9.5rem}.input-stepper{position:relative;display:inline-flex;width:100%}.input-stepper__field{width:100%;padding-right:2.15rem!important;text-align:right;appearance:textfield}.input-stepper__field::-webkit-inner-spin-button,.input-stepper__field::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-stepper__controls{position:absolute;right:1px;top:1px;bottom:1px;width:1.75rem;display:flex;flex-direction:column;border-left:1px solid var(--border);border-radius:0 7px 7px 0;overflow:hidden}.input-stepper__btn{flex:1 1;display:flex;align-items:center;justify-content:center;border:none;background:var(--bg-elevated);color:var(--text-muted);padding:0;cursor:pointer;min-height:0;transition:background .15s ease,color .15s ease}.input-stepper__btn+.input-stepper__btn{border-top:1px solid var(--border)}.input-stepper__btn:hover:not(:disabled){background:var(--accent-muted);color:var(--accent)}.input-stepper__btn:active:not(:disabled){background:rgba(245,158,11,.25)}.input-stepper__btn:disabled{opacity:.45;cursor:not-allowed}.input-stepper__btn svg{pointer-events:none}.presupuesto-header__total{font-size:1.15rem;font-weight:700;color:var(--accent);text-align:right}.presupuesto-header__total-equiv{margin-top:.2rem;font-size:.85rem;font-weight:500;color:var(--text-muted)}.presupuesto-nodo{margin-bottom:.5rem}.presupuesto-nodo--nested{margin-left:1rem}.presupuesto-nodo>.presupuesto-nodo--nested{margin-top:.65rem}.presupuesto-item-list+.presupuesto-nodo--nested{margin-top:.75rem}.presupuesto-row{display:flex;align-items:stretch;gap:.35rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);overflow:hidden}.presupuesto-row--selected{border-color:rgba(245,158,11,.55);background:rgba(245,158,11,.1)}.presupuesto-nodo--selected-context>.presupuesto-row{border-color:rgba(245,158,11,.35)}.presupuesto-row__main{flex:1 1;text-align:left;padding:.45rem .7rem;border:none;background:transparent;color:var(--text);cursor:pointer;font:inherit;min-width:0}.presupuesto-row__head{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.presupuesto-row__total{color:var(--accent);font-weight:600;white-space:nowrap;text-align:right}.presupuesto-row__meta{font-size:.8rem;margin-top:.25rem}.presupuesto-list-actions{display:flex;align-items:center;justify-content:flex-end;gap:.25rem;flex:0 0 5.25rem;padding:.35rem .5rem .35rem 0;box-sizing:border-box}.presupuesto-item-list{margin:.5rem 0 .15rem;padding:0;list-style:none}.presupuesto-item-list>.presupuesto-item-row+.presupuesto-item-row{margin-top:.35rem}.presupuesto-item-row{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.presupuesto-item-row--selected{background:rgba(245,158,11,.12);outline:1px solid rgba(245,158,11,.55);border-radius:6px;padding-right:.35rem}.presupuesto-item-row--selected .presupuesto-item-row__content{border-left-color:var(--accent)}.presupuesto-item-row__content{flex:1 1;min-width:0;border-left:2px solid var(--border);margin-left:.5rem;padding:.45rem .85rem}button.presupuesto-item-row__content{width:100%;text-align:left;background:none;border-top:none;border-right:none;border-bottom:none;cursor:pointer;color:inherit;font:inherit}.presupuesto-item-row__pct{flex-shrink:0;font-weight:600;color:var(--accent);padding-left:.5rem}.presupuesto-item-empty{font-size:.8rem;margin:.35rem 0 0 .85rem}.page-placeholder h1{font-size:1.2rem;margin-bottom:.35rem}.page-placeholder p{color:var(--text-muted);line-height:1.45}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.55rem}.app-main:has(.items-page){padding-bottom:0}.items-page{display:flex;flex-direction:column;height:calc(100dvh - 4.75rem);max-height:calc(100dvh - 4.75rem);overflow:hidden}.items-page>.toolbar{flex-shrink:0;margin-bottom:.75rem}.items-page__body,.items-page__list-col{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:.5rem;overflow:hidden}.items-page__list-col>.items-page__list-actions,.items-page__list-col>.items-page__search{flex-shrink:0}.items-page__list-card{flex:1 1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:0}.items-page__list-card .table th{padding-top:.4rem;padding-bottom:.4rem;font-size:.72rem;letter-spacing:.05em;vertical-align:middle}.items-page__list-card .table tbody td{vertical-align:middle}.items-page__list-card .table tbody td:last-child{vertical-align:top}.items-page__list-scroll{flex:1 1;min-height:0;overflow-y:auto}.items-page__list-loading{position:sticky;top:0;z-index:3;margin:0;padding:.45rem .75rem;background:var(--bg-elevated);border-bottom:1px solid var(--border);color:var(--text);font-size:.85rem;font-weight:600}.items-page__list-pager{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:0;padding:.3rem .75rem;border-top:1px solid var(--border);min-height:0}.items-page__list-pager .btn-secondary{padding:.3rem .65rem;font-size:.82rem;line-height:1.2}.items-page__list-pager .muted{font-size:.8rem}.items-page .grid-2{flex:1 1;min-height:0;align-items:stretch;overflow:hidden}.items-page .grid-2>.card{max-height:100%;overflow:auto}@media (min-width:900px){.items-page .grid-2{align-items:stretch}}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.65rem}.grid-2{display:grid;grid-template-columns:1fr;gap:.65rem}@media (min-width:900px){.grid-2{grid-template-columns:360px 1fr;align-items:start}.grid-2.grid-2--balanced{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid-2.grid-2--create-collapsed{grid-template-columns:minmax(0,10rem) minmax(0,1fr);gap:.75rem}}.card--create-snug{padding:.55rem .65rem}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table td,.table th{border-bottom:1px solid var(--border);padding:.45rem .5rem;text-align:left;vertical-align:top}.table th{color:var(--text-muted);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.btn-secondary{padding:.4rem .65rem;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer}.btn-secondary:hover{border-color:rgba(245,158,11,.25)}.btn-icon{padding:.3rem;width:28px;height:28px;justify-content:center}.btn-icon,.btn-with-icon{display:inline-flex;align-items:center}.btn-with-icon{gap:.35rem}.btn-with-icon svg{flex-shrink:0;pointer-events:none}.btn-primary.btn-with-icon,.btn-secondary.btn-with-icon{width:auto;margin-top:0}.lic-proveedor-edit{width:18px;height:18px;min-width:18px;padding:0;margin-top:.1rem;flex-shrink:0;border-radius:4px;border-color:transparent;background:transparent;color:var(--text-muted)}.lic-proveedor-edit:hover{color:var(--text);border-color:rgba(245,158,11,.25);background:rgba(245,158,11,.08)}.btn-danger{padding:.45rem .65rem;border-radius:8px;border:1px solid rgba(239,68,68,.6);background:rgba(239,68,68,.4);color:#ffffff;cursor:pointer}.btn-danger:hover{background:rgba(239,68,68,.18)}.muted{color:var(--text-muted)}.modal-overlay{position:fixed;inset:0;background:rgba(15,20,25,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:400;overflow:auto}.modal{width:100%;max-width:720px;max-height:calc(100vh - 3rem);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 30px 80px rgba(0,0,0,.45);display:flex;flex-direction:column}.modal--nueva-obra{max-width:min(1100px,calc(100vw - 2rem));width:min(1100px,calc(100vw - 2rem));max-height:calc(100vh - 2rem)}.modal__body--nueva-obra{padding:.85rem 1.25rem 1.25rem}.modal__header{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-elevated);z-index:1}.modal__header h3{font-size:1rem}.modal__body{padding:.75rem 1rem 1rem;overflow:auto;flex:1 1 auto;min-height:0}.modal__footer{padding:.65rem 1rem .85rem;border-top:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.inversores-list{list-style:none;padding:0}.inversores-list__item--selected{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.inversores-list__header{display:flex;justify-content:space-between;gap:.65rem;flex-wrap:wrap;width:100%;padding:0;margin:0;border:none;background:transparent;color:inherit;text-align:left;font:inherit}.inversores-list__header--clickable{cursor:pointer}.inversores-list__header--clickable:hover{opacity:.92}.inversores-list__panel{margin-top:.65rem;border-top:1px solid var(--border);padding-top:.65rem}.modal--composition{width:100%;max-width:min(980px,calc(100vw - 2rem));max-height:min(92vh,920px);position:relative;overflow:visible}.modal--composition .modal__body--composition{overflow:visible;flex:1 1;min-height:0;display:flex;flex-direction:column;gap:.75rem}.modal--composition .composition-autocomplete-wrap{position:relative;z-index:30}.modal--composition .composition-autocomplete-panel{z-index:40;box-shadow:0 12px 40px rgba(0,0,0,.35)}.modal--composition .composition-modal__list{position:relative;z-index:0;overflow:auto;max-height:min(42vh,400px);border-radius:8px;border:1px solid var(--border)}.modal--composition .composition-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem;margin-bottom:.65rem}.modal--composition .composition-toolbar__field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:0;min-width:0}.modal--composition .composition-toolbar__field--grow{flex:1 1 320px}.modal--composition .composition-toolbar__field--narrow{flex:0 0 auto}.modal--composition .composition-toolbar__label-spacer{display:block;font-size:.8rem;font-weight:600;margin-bottom:.35rem;min-height:1.15em;visibility:hidden;-webkit-user-select:none;user-select:none}.modal--composition .composition-toolbar__control{box-sizing:border-box;min-height:2.2rem;height:2.2rem;padding:0 .65rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.95rem;line-height:1.25}.modal--composition .composition-toolbar__control:focus{outline:none;border-color:rgba(245,158,11,.5)}.modal--composition .composition-autocomplete-wrap>.composition-toolbar__control{width:100%}.modal--composition .composition-toolbar__row{display:flex;align-items:stretch;gap:.5rem}.modal--composition .composition-toolbar__row .composition-toolbar__control{width:7.5rem;flex-shrink:0}.modal--composition .composition-toolbar__chip-slot{box-sizing:border-box;width:3.75rem;min-height:2.2rem;height:2.2rem;flex-shrink:0;border-radius:999px;border:1px dashed transparent;visibility:hidden}.modal--composition .composition-toolbar__btn{box-sizing:border-box;min-height:2.2rem;height:2.2rem;padding:0 .75rem}.chip,.modal--composition .composition-toolbar__btn{display:inline-flex;align-items:center;justify-content:center}.chip{gap:.4rem;padding:.25rem .55rem;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.03);color:#ffffff;font-size:.6rem;text-align:center}.chip input[type=checkbox]{appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:4px;border:1px solid var(--border);background:var(--surface);display:inline-grid;place-content:center}.chip input[type=checkbox]:before{content:"";width:10px;height:10px;border-radius:2px;background:var(--accent);transform:scale(0);transition:transform .08s ease-in-out}.chip input[type=checkbox]:checked{border-color:rgba(245,158,11,.6)}.chip input[type=checkbox]:checked:before{transform:scale(1)}.chip input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(245,158,11,.18)}.chip--material{border-color:rgba(34,211,238,.55);background:rgba(34,211,238,.36)}.chip--mano_obra,.chip--material{text-transform:uppercase;text-align:center;width:92px}.chip--mano_obra{border-color:rgba(168,85,247,.55);background:rgba(168,85,247,.39)}.chip--maquinaria{border-color:rgba(245,158,11,.6);background:rgba(245,158,11,.39);width:92px}.chip--maquinaria,.chip--subcontrato{text-transform:uppercase;text-align:center}.chip--subcontrato{border-color:rgba(96,165,250,.55);background:rgba(96,165,250,.32);min-width:92px;width:auto;padding:0 .35rem}.chip--compuesto{border-color:rgba(34,197,94,.55);background:rgba(34,197,94,.32);text-transform:uppercase;text-align:center;width:92px}.autocomplete-field .autocomplete-wrap{position:relative}.autocomplete-field .autocomplete-wrap>input::placeholder{color:var(--text-muted);opacity:.85}.autocomplete-field .autocomplete-wrap--filled>input{padding-right:2.5rem}.autocomplete-field .autocomplete-wrap--loading>input{padding-right:5.5rem}.autocomplete-clear{right:6px;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border-radius:6px}.autocomplete-clear,.autocomplete-loading{position:absolute;top:50%;transform:translateY(-50%)}.autocomplete-loading{right:38px;font-size:.8rem;pointer-events:none;white-space:nowrap}.autocomplete-panel{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;margin:0;padding:.35rem 0;list-style:none;max-height:min(40vh,280px);overflow-y:auto;border-radius:8px;border:1px solid var(--border);background:var(--surface);box-shadow:0 12px 40px rgba(0,0,0,.35)}.autocomplete-panel button{width:100%;text-align:left;padding:.5rem .85rem;border:none;background:transparent;color:var(--text);cursor:pointer;font:inherit}.autocomplete-panel button:hover{background:rgba(245,158,11,.12)}.ejecucion-gantt{margin-top:.25rem;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}.ejecucion-gantt__scroll{overflow:auto;max-height:min(70vh,640px)}.ejecucion-gantt__canvas{position:relative}.ejecucion-gantt__header{top:0;z-index:5;border-bottom:1px solid var(--border)}.ejecucion-gantt__header,.ejecucion-gantt__label-head{position:sticky;display:flex;background:var(--surface)}.ejecucion-gantt__label-head{left:0;z-index:6;flex-shrink:0;align-items:center;padding:0 .85rem;font-size:.78rem;font-weight:600;color:var(--text-muted);border-right:1px solid var(--border);box-shadow:4px 0 8px rgba(0,0,0,.06)}.ejecucion-gantt__label-resizer{position:absolute;top:0;right:-4px;z-index:7;width:8px;height:100%;cursor:col-resize;touch-action:none}.ejecucion-gantt__label-resizer:after{content:"";position:absolute;top:20%;bottom:20%;left:50%;width:2px;transform:translateX(-50%);border-radius:1px;background:transparent;transition:background .12s ease}.ejecucion-gantt--resizing .ejecucion-gantt__label-resizer:after,.ejecucion-gantt__label-resizer:hover:after{background:var(--accent)}.ejecucion-gantt--resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.ejecucion-gantt--resizing .ejecucion-gantt__scroll{overflow:hidden}.ejecucion-gantt__timeline-head{position:relative;flex-shrink:0;height:100%}.ejecucion-gantt__tick{position:absolute;top:0;bottom:0;padding:.35rem .25rem;font-size:.68rem;color:var(--text-muted);border-left:1px solid var(--border);white-space:nowrap}.ejecucion-gantt__tick--major{font-weight:600;font-size:.72rem;color:var(--text)}.ejecucion-gantt__tick--today{z-index:2;padding-left:.4rem;font-weight:700;font-size:.7rem;color:#dc2626;border-left:2px solid rgba(239,68,68,.85);background:rgba(239,68,68,.08);padding-top:22px}.ejecucion-gantt__today{position:absolute;z-index:2;width:2px;background:rgba(239,68,68,.65);pointer-events:none}.ejecucion-gantt__deps{position:absolute;z-index:1;pointer-events:none}.ejecucion-gantt__row{position:absolute;left:0;right:0;display:flex;border-bottom:1px solid var(--border)}.ejecucion-gantt__row--pending{background:rgba(245,158,11,.04)}.ejecucion-gantt__row--selected{background:rgba(59,130,246,.12);outline:1px solid rgba(59,130,246,.5);outline-offset:-1px;z-index:2}.ejecucion-gantt__label{position:sticky;left:0;z-index:3;flex-shrink:0;padding:0 .65rem 0 0;border-right:1px solid var(--border);background:inherit;box-shadow:4px 0 8px rgba(0,0,0,.04)}.ejecucion-gantt__label,.ejecucion-gantt__label-main{display:flex;align-items:center;gap:.35rem;min-width:0;color:inherit}.ejecucion-gantt__label-main{flex:1 1;padding:0;border:none;background:transparent;font:inherit;text-align:left;cursor:pointer}.ejecucion-gantt__row--contrato .ejecucion-gantt__label{box-shadow:inset 4px 0 0 var(--contrato-color),4px 0 8px rgba(0,0,0,.04)}.ejecucion-gantt__row--contrato .ejecucion-gantt__track{background:var(--contrato-tint)}.ejecucion-gantt__row--selected.ejecucion-gantt__row--contrato .ejecucion-gantt__label{box-shadow:inset 4px 0 0 var(--contrato-color),4px 0 8px rgba(59,130,246,.18)}.ejecucion-gantt__contrato-tag{flex-shrink:0;max-width:6.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;font-weight:700;line-height:1.2;padding:.08rem .35rem;border-radius:999px;color:var(--contrato-color);background:var(--contrato-tint);border:1px solid var(--contrato-color)}.ejecucion-gantt__row--selected .ejecucion-gantt__label{box-shadow:4px 0 8px rgba(59,130,246,.18)}.ejecucion-gantt__label-text{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.ejecucion-gantt__label-pct{flex-shrink:0;font-size:.75rem;font-weight:600;color:var(--accent)}.ejecucion-gantt__flag{flex-shrink:0;font-size:.62rem;font-weight:700;padding:.1rem .3rem;border-radius:999px}.ejecucion-gantt__flag--nc,.ejecucion-gantt__flag--np{background:rgba(239,68,68,.12);color:#dc2626}.ejecucion-gantt__flag--sc{background:rgba(59,130,246,.12);color:#2563eb}.ejecucion-gantt__flag--si{background:rgba(16,185,129,.12);color:#059669}.ejecucion-gantt__flag--c{background:#059669;color:#fff}.ejecucion-gantt__track{position:relative;flex-shrink:0;height:100%}.ejecucion-gantt__grid{position:absolute;inset:0;background-image:repeating-linear-gradient(to right,transparent,transparent calc(22px - 1px),var(--border) calc(22px - 1px),var(--border) 22px);opacity:.35;pointer-events:none}.ejecucion-gantt__bar{position:absolute;top:50%;transform:translateY(-50%);height:22px;padding:0;border:1px solid rgba(245,158,11,.45);border-radius:4px;background:rgba(245,158,11,.15);cursor:pointer;overflow:hidden}.ejecucion-gantt__bar--item{height:16px;border-color:rgba(59,130,246,.45);background:rgba(59,130,246,.12)}.ejecucion-gantt__bar-fill{display:block;height:100%;background:var(--accent);opacity:.85;border-radius:3px 0 0 3px}.ejecucion-gantt__bar--item .ejecucion-gantt__bar-fill{background:#3b82f6}.ejecucion-gantt__bar-extra{position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:.6rem;font-weight:600;color:var(--text-muted);pointer-events:none}.ejecucion-gantt__bar:hover{filter:brightness(1.05)}.ejecucion-lista{display:flex;flex-direction:column;gap:.5rem}.ejecucion-lista .presupuesto-row--selected{border-color:rgba(59,130,246,.55);background:rgba(59,130,246,.12)}.ejecucion-lista .presupuesto-nodo--selected-context>.presupuesto-row{border-color:rgba(59,130,246,.35)}.ejecucion-lista .presupuesto-item-row--selected{background:rgba(59,130,246,.12);outline:1px solid rgba(59,130,246,.55)}.ejecucion-lista .presupuesto-item-row--selected .presupuesto-item-row__content{border-left-color:#3b82f6}.ejecucion-lista__row-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:.35rem;flex-shrink:0;padding:.5rem .65rem .5rem 0}.ejecucion-lista__row-actions--item{padding-right:.35rem}.ejecucion-lista__nodo--no-contratado .presupuesto-row__main,.presupuesto-item-row--no-contratado .presupuesto-item-row__content{opacity:.72}.ejecucion-gantt__row--no-contratado .ejecucion-gantt__label-text,.presupuesto-item-row--no-contratado .presupuesto-item-row__content span:first-child{text-decoration:line-through;text-decoration-color:rgba(220,38,38,.65)}.ejecucion-gantt__row--no-contratado .ejecucion-gantt__label-text{opacity:.85;cursor:help}.ejecucion-lista__nodo--no-contratado .presupuesto-row__head>span:first-child,.presupuesto-item-row--no-contratado .presupuesto-item-row__content span:first-child{cursor:help}.ejecucion-gantt__bar--no-contratado{opacity:.55;border-style:dashed}.ejecucion-nc-toggle{flex-shrink:0;border:1px solid var(--border);border-radius:999px;padding:.12rem .45rem;font-size:.68rem;font-weight:700;background:var(--surface);color:var(--text-muted);cursor:pointer}.ejecucion-nc-toggle--on{border-color:rgba(220,38,38,.55);background:rgba(239,68,68,.12);color:#dc2626}.ejecucion-nc-toggle:disabled{opacity:.5;cursor:not-allowed}.obra-dashboard{display:flex;flex-direction:column;gap:.85rem;margin-top:.85rem}.obra-dashboard__kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.obra-dashboard-kpi{padding:.65rem .85rem;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.obra-dashboard-kpi--blue{border-color:rgba(59,130,246,.35);background:rgba(59,130,246,.06)}.obra-dashboard-kpi--green{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.06)}.obra-dashboard-kpi--amber{border-color:rgba(234,179,8,.4);background:rgba(234,179,8,.08)}.obra-dashboard-kpi__label{font-size:.78rem;color:var(--text-muted);margin-bottom:.25rem}.obra-dashboard-kpi__value{font-size:1.35rem;font-weight:700;line-height:1.2}.obra-dashboard-kpi__hint{font-size:.75rem;color:var(--text-muted);margin-top:.35rem;line-height:1.35}.obra-dashboard__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem}.obra-dashboard__panel{padding:.75rem .9rem;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.obra-dashboard__panel--wide{grid-column:1/-1}.obra-dashboard__panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.obra-dashboard__panel-title{margin:0;font-size:.95rem}.obra-dashboard__link{font-size:.82rem;color:var(--accent);text-decoration:none;white-space:nowrap}.obra-dashboard__link:hover{text-decoration:underline}.obra-dashboard__desvio{font-size:.85rem;margin:0 0 .75rem;color:var(--text-muted)}.obra-dashboard__footnote{font-size:.8rem;margin:.75rem 0 0}.obra-dashboard-tipo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.obra-dashboard-tipo-list__head{display:flex;justify-content:space-between;gap:.5rem;font-size:.88rem;margin-bottom:.3rem}.obra-dashboard-tipo-list__amount{font-weight:600;color:var(--accent);white-space:nowrap}.obra-dashboard-tipo-list__bar-track{height:6px;border-radius:999px;background:rgba(148,163,184,.2);overflow:hidden}.obra-dashboard-tipo-list__bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),rgba(59,130,246,.55));min-width:2px;transition:width .3s ease}.obra-evolucion-chart svg{width:100%;max-width:560px;min-height:180px;height:auto;display:block}.obra-evolucion-chart__grid{stroke:var(--border);stroke-width:1;stroke-dasharray:4 4}.obra-evolucion-chart__axis{fill:var(--text-muted);font-size:10px}.obra-evolucion-chart__line{stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.obra-evolucion-chart__line--fisico{stroke:#16a34a}.obra-evolucion-chart__line--economico{stroke:#d97706}.obra-evolucion-chart__legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.5rem;font-size:.8rem;color:var(--text-muted)}.obra-evolucion-chart__legend span{display:inline-flex;align-items:center;gap:.35rem}.obra-evolucion-chart__dot{width:10px;height:10px;border-radius:999px;display:inline-block}.obra-evolucion-chart__dot--fisico{background:#16a34a}.obra-evolucion-chart__dot--economico{background:#d97706}.finanzas-dashboard{display:flex;flex-direction:column;gap:.85rem}.finanzas-dashboard__cajas{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.finanzas-caja{padding:.65rem .85rem;border-radius:10px;border:1px solid var(--border);display:flex;flex-direction:column;gap:.35rem}.finanzas-caja--a{background:rgba(59,130,246,.08);border-color:rgba(59,130,246,.35)}.finanzas-caja--b{background:rgba(168,85,247,.08);border-color:rgba(168,85,247,.35)}.finanzas-caja__tag{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.finanzas-caja__saldo{font-size:1.25rem;font-weight:700}.finanzas-flujo-header{display:flex;align-items:center;justify-content:space-between;gap:.65rem;flex-wrap:wrap}.finanzas-flujo-period-toggle{display:inline-flex;gap:.25rem;padding:.2rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg)}.finanzas-flujo-period-toggle__btn{border:none;background:transparent;color:var(--text-muted);font-size:.78rem;font-weight:600;padding:.35rem .65rem;border-radius:calc(var(--radius) - 2px);cursor:pointer}.finanzas-flujo-period-toggle__btn:hover:not(:disabled){color:var(--text)}.finanzas-flujo-period-toggle__btn--active{background:var(--accent);color:#fff}.finanzas-flujo-period-toggle__btn:disabled{opacity:.6;cursor:wait}.finanzas-flujo-chart{display:flex;gap:.35rem;align-items:flex-end;min-height:120px;margin-bottom:.75rem;overflow-x:auto;padding-bottom:.25rem}.finanzas-flujo-chart__col{flex:1 1 48px;min-width:48px;display:flex;flex-direction:column;align-items:center;gap:.35rem}.finanzas-flujo-chart__bars{display:flex;gap:3px;align-items:flex-end;height:100px;width:100%;justify-content:center}.finanzas-flujo-chart__bar{width:10px;min-height:2px;border-radius:3px 3px 0 0;transition:height .25s ease}.finanzas-flujo-chart__bar--cobrar{background:#16a34a}.finanzas-flujo-chart__bar--pagar{background:#dc2626}.finanzas-flujo-chart__label{font-size:.65rem;color:var(--text-muted);text-align:center;line-height:1.2;max-width:64px}.finanzas-flujo-legend{display:flex;gap:1rem;font-size:.8rem;color:var(--text-muted);margin-bottom:1rem}.finanzas-flujo-legend span{display:inline-flex;align-items:center;gap:.35rem}.finanzas-flujo-legend__dot{width:10px;height:10px;border-radius:999px;display:inline-block}.finanzas-flujo-legend__dot--cobrar{background:#16a34a}.finanzas-flujo-legend__dot--pagar{background:#dc2626}.finanzas-flujo-table-wrap{overflow-x:auto}.finanzas-flujo-table{width:100%;border-collapse:collapse;font-size:.85rem}.finanzas-flujo-table td,.finanzas-flujo-table th{padding:.45rem .5rem;text-align:left;border-bottom:1px solid var(--border)}.finanzas-flujo-table th{color:var(--text-muted);font-weight:600;font-size:.78rem}.finanzas-flujo-table__cobrar{color:#16a34a;font-weight:600}.finanzas-flujo-table__pagar{color:#dc2626;font-weight:600}.finanzas-flujo-table__neg td{background:rgba(220,38,38,.06)}.variacion-costo-panel__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.55rem}.variacion-costo-panel__filter{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;color:var(--text-muted)}.variacion-detalle-table-wrap{max-height:calc(2.15rem + 6 * 3.2rem);overflow:auto}.variacion-detalle-table{font-size:.8rem}.variacion-detalle-table thead th{position:sticky;top:0;z-index:1;background:var(--surface);box-shadow:0 1px 0 var(--border)}.variacion-detalle-table__path{max-width:280px;line-height:1.35;word-break:break-word}.variacion-detalle-table__nivel{display:inline-block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);margin-right:.25rem}.variacion-detalle-table__badge{display:inline-block;margin-left:.25rem;padding:.05rem .3rem;border-radius:4px;font-size:.68rem;font-weight:700}.variacion-detalle-table__badge--nc{background:rgba(148,163,184,.25);color:var(--text-muted)}.variacion-detalle-table__badge--np{background:rgba(245,158,11,.2);color:#b45309}.variacion-detalle-table__desvio td{background:rgba(245,158,11,.05)}.kpi-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.kpi-card,.obra-dashboard-kpi.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.65rem .85rem;color:var(--text)}.kpi-card__label{display:block;font-size:.78rem;color:var(--text-muted);margin-bottom:.25rem}.kpi-card__value{display:block;font-size:1.25rem;font-weight:700;line-height:1.2;color:var(--text)}.file-input{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.file-input__native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-input__btn{display:inline-flex;align-items:center;justify-content:center;width:auto;margin:0;padding:.45rem .85rem;font-size:.85rem;cursor:pointer}.file-input__btn--disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.file-input__name{font-size:.85rem;color:var(--text-muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hitos-table,.tramites-table{width:100%;border-collapse:collapse;font-size:.88rem}.hitos-table td,.hitos-table th,.tramites-table td,.tramites-table th{border-bottom:1px solid var(--border);padding:.5rem .4rem;text-align:left;vertical-align:top}.hitos-table th,.tramites-table th{color:var(--text-muted);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.unidades-select{display:flex;flex-direction:column;gap:.45rem}.unidades-select__meta{font-size:.82rem}.unidades-select__scroll{max-height:260px;overflow:auto;border:1px solid var(--border);border-radius:8px}.unidades-select__table{margin:0}.unidades-select__table td,.unidades-select__table th{white-space:nowrap}.unidades-select__check-col{width:2rem;text-align:center}.unidades-select__table tbody tr{cursor:pointer}.unidades-select__table tbody tr.unidades-select__row--disabled{cursor:not-allowed}.unidades-select__row--vendida td{background:rgba(180,83,9,.12);color:#9a3412}.unidades-select__row--selected td{background:rgba(59,130,246,.1)}.unidades-select__badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.1rem .4rem;border-radius:4px}.unidades-select__badge--disponible{background:rgba(34,197,94,.12);color:#15803d}.unidades-select__badge--seleccionada{background:rgba(59,130,246,.15);color:#1d4ed8}.unidades-select__badge--vendida{background:rgba(180,83,9,.18);color:#9a3412}.plan-chip-list{display:flex;flex-direction:column;gap:.35rem;margin-top:.35rem}.plan-chip{display:flex;align-items:flex-start;gap:.45rem;font-size:.85rem;cursor:pointer}.plan-chip input{margin-top:.2rem}.semaforo{width:14px;height:14px;border-radius:50%;flex-shrink:0}.semaforo--verde{background:#16a34a}.semaforo--amarillo{background:#f59e0b}.semaforo--rojo{background:#dc2626}.progress-bar{height:6px;background:var(--border);border-radius:999px;overflow:hidden}.progress-bar__fill{height:100%;background:var(--accent);border-radius:999px}.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:inherit;padding:0;text-decoration:underline}.split-panel{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:.85rem;align-items:start}@media (max-width:900px){.split-panel{grid-template-columns:1fr}}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .75rem}.form-grid--single{grid-template-columns:1fr}.tramites-table__row--selected td{background:rgba(245,158,11,.08)}.estructura-editor{display:flex;flex-direction:column;gap:.65rem}.estructura-editor__main{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:.85rem;align-items:start}.estructura-editor__sidebar{display:flex;flex-direction:column;gap:.55rem}.estructura-editor__field{margin:0}.estructura-editor__field label{font-size:.75rem;margin-bottom:.2rem}.estructura-editor__field input{padding:.4rem .5rem;font-size:.88rem}.estructura-editor__hint{font-size:.7rem;margin:0;line-height:1.35}.estructura-col-head{min-width:7.25rem;vertical-align:top!important}.estructura-col-head__letter{font-size:.85rem;font-weight:700;text-align:center;margin-bottom:.3rem;color:var(--accent)}.estructura-col-head__defaults{display:flex;gap:.25rem}.estructura-cochera-item__m2,.estructura-col-head__defaults label,.estructura-unidad-cell__meta label{display:flex;flex-direction:column;gap:.1rem;flex:1 1;min-width:0;margin:0;font-size:.65rem;color:var(--text-muted);font-weight:500}.estructura-cochera-item__m2 input,.estructura-col-head__defaults input,.estructura-unidad-cell__meta input{width:100%;box-sizing:border-box;margin:0;padding:.22rem .3rem;border:1px solid color-mix(in srgb,var(--border) 90%,transparent);border-radius:5px;background:color-mix(in srgb,var(--bg) 88%,var(--bg-elevated));color:var(--text);font-size:.75rem}.estructura-cochera-item__m2 input:focus,.estructura-col-head__defaults input:focus,.estructura-unidad-cell__meta input:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 70%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.estructura-unidad-cell{display:flex;flex-direction:column;gap:.28rem;min-width:6.5rem}.estructura-unidad-cell__meta{display:flex;gap:.25rem}.estructura-cochera-item{display:flex;align-items:flex-end;gap:.35rem}.estructura-cochera-item__m2{width:3.5rem;flex:0 0 auto}.estructura-editor__summary{font-size:.72rem;margin:.15rem 0 0;line-height:1.35}.estructura-editor__table-wrap{min-width:0}.estructura-editor__table-scroll{overflow:auto;max-height:min(52vh,520px);border:1px solid var(--border);border-radius:10px}.estructura-editor__empty{font-size:.82rem;margin:.35rem 0}.estructura-grid-table{margin:0}.estructura-grid-table td,.estructura-grid-table th{vertical-align:middle;padding:.35rem .4rem;font-size:.8rem}.estructura-grid-table th{position:sticky;top:0;z-index:1;background:var(--bg-elevated)}.estructura-grid-piso{white-space:nowrap;width:2.75rem}.estructura-grid-empty{color:var(--text-muted);text-align:center;opacity:.5}.estructura-grid-add-cell{width:2.25rem;text-align:center;padding-left:.2rem!important;padding-right:.2rem!important}.estructura-grid-add{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;margin:0;padding:0;border:1px dashed color-mix(in srgb,var(--border) 80%,transparent);border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.estructura-grid-add:hover:not(:disabled){color:var(--text);border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:var(--accent-muted)}.estructura-grid-add:disabled{opacity:.4;cursor:not-allowed}.estructura-nombre-field{position:relative;min-width:6.25rem;max-width:9rem}.estructura-nombre-field--compact{min-width:5.5rem;max-width:7.5rem}.estructura-nombre-field__input{width:100%;box-sizing:border-box;margin:0;padding:.32rem 1.55rem .32rem .45rem;border:1px solid color-mix(in srgb,var(--border) 90%,transparent);border-radius:6px;background:color-mix(in srgb,var(--bg) 88%,var(--bg-elevated));color:var(--text);font-size:.8rem;font-weight:500;letter-spacing:.01em;line-height:1.2;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.estructura-nombre-field__input:hover:not(:disabled){border-color:color-mix(in srgb,var(--text) 28%,var(--border))}.estructura-nombre-field__input:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 70%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent);background:var(--bg-elevated)}.estructura-nombre-field__input:disabled{opacity:.65;cursor:not-allowed}.estructura-nombre-field__remove{position:absolute;top:50%;right:.2rem;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:1.2rem;height:1.2rem;margin:0;padding:0;border:none;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;opacity:.5;transition:opacity .15s ease,color .15s ease,background .15s ease}.estructura-nombre-field:hover .estructura-nombre-field__remove,.estructura-nombre-field__input:focus+.estructura-nombre-field__remove{opacity:.9}.estructura-nombre-field__remove:hover:not(:disabled){opacity:1;color:#ef4444;background:color-mix(in srgb,#ef4444 14%,transparent)}.estructura-nombre-field__remove:disabled{cursor:not-allowed;opacity:.35}.estructura-cocheras{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.estructura-cocheras__label{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.estructura-cocheras-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:.35rem;align-items:center;flex:1 1;min-width:0}@media (max-width:720px){.estructura-editor__main{grid-template-columns:1fr}.estructura-editor__sidebar{flex-direction:row;flex-wrap:wrap}.estructura-editor__field{flex:1 1 6.5rem}}.collapsible-panel__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:0;margin:0;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.collapsible-panel__header:hover{opacity:.92}.collapsible-panel__chevron{flex-shrink:0;font-size:2rem;line-height:1;color:var(--text-muted);transition:transform .15s ease;min-width:1.25rem;text-align:center}.collapsible-panel__chevron--open{transform:rotate(90deg)}.collapsible-panel__body{margin-top:.75rem}.landing-shell{--l-bg:#eef2f6;--l-bg-elevated:#ffffff;--l-bg-tint:#e4ebf3;--l-ink:#0b1424;--l-ink-soft:#1a2740;--l-muted:#5a6b82;--l-border:rgba(11,20,36,0.12);--l-accent:#e8870a;--l-accent-deep:#c46a00;--l-accent-soft:rgba(232,135,10,0.14);--l-ok:#0f7a65;--l-ok-soft:rgba(15,122,101,0.12);--l-warn:#9a6700;--l-warn-soft:rgba(154,103,0,0.14);--l-dev:#3557c8;--l-dev-soft:rgba(53,87,200,0.12);--l-radius:14px;--l-shadow:0 18px 40px rgba(11,20,36,0.08);min-height:100vh;display:flex;flex-direction:column;color:var(--l-ink);font-family:var(--font-landing-sans),var(--font-geist-sans),system-ui,sans-serif;background:radial-gradient(ellipse 90% 55% at 12% -10%,rgba(232,135,10,.18),transparent 55%),radial-gradient(ellipse 70% 45% at 92% 8%,rgba(53,87,200,.1),transparent 50%),linear-gradient(180deg,#f7f9fc 0,var(--l-bg) 38%,#e8eef5 100%)}.landing-shell .landing-cta h2,.landing-shell .landing-hero__brand,.landing-shell .landing-highlight__text,.landing-shell .landing-lifecycle__stage h3,.landing-shell .landing-pillar h3,.landing-shell h1,.landing-shell h2{font-family:var(--font-landing-display),Georgia,serif;font-weight:600;letter-spacing:-.02em}.landing-skip{position:absolute;left:-9999px;top:0;z-index:100;padding:.75rem 1rem;background:var(--l-accent);color:#1a1206;font-weight:700;border-radius:0 0 8px 0}.landing-skip:focus{left:0}.landing-loading{padding:4rem 1.5rem;text-align:center;color:var(--l-muted)}.landing-header{border-bottom:1px solid var(--l-border);background:rgba(247,249,252,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:50}.landing-header__inner{max-width:72rem;margin:0 auto;padding:.95rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.landing-logo{display:inline-flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.25rem;letter-spacing:-.03em;color:var(--l-ink)}.landing-logo__mark{width:11px;height:28px;border-radius:4px;background:linear-gradient(180deg,#f0a028 0,var(--l-accent-deep) 100%)}.landing-nav{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.7rem 1rem;font-size:.875rem;font-weight:560}.landing-nav a{color:var(--l-muted);transition:color .15s}.landing-nav a:hover{color:var(--l-ink)}.landing-nav__demo{padding:.42rem .9rem;border-radius:999px;border:1px solid var(--l-border);color:var(--l-ink)!important;background:var(--l-bg-elevated)}.landing-nav__demo:hover{border-color:rgba(232,135,10,.45)}.landing-nav__cta{padding:.45rem 1.05rem;border-radius:999px;background:var(--l-ink);color:#fff!important;font-weight:700}.landing-nav__cta:hover{background:var(--l-ink-soft)}.landing-hero{position:relative;padding:3.25rem 1.25rem 4.25rem;overflow:hidden}.landing-hero__glow{position:absolute;inset:auto auto -20% 55%;width:min(42rem,90vw);height:min(42rem,90vw);border-radius:50%;background:radial-gradient(circle,rgba(232,135,10,.16),transparent 65%);pointer-events:none;animation:landing-glow 8s ease-in-out infinite alternate}@keyframes landing-glow{0%{transform:translate(-8%) scale(1);opacity:.7}to{transform:translate(4%,-6%) scale(1.08);opacity:1}}.landing-hero__inner{position:relative;max-width:48rem;margin:0 auto;text-align:center}.landing-hero__brand{font-size:clamp(2.6rem,8vw,4.4rem);line-height:.95;color:var(--l-ink);margin-bottom:.85rem;animation:landing-rise .7s ease-out both}.landing-hero__eyebrow{display:inline-block;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--l-accent-deep);margin-bottom:1.1rem;animation:landing-rise .7s ease-out .08s both}.landing-hero__tabs{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:.45rem;margin-bottom:1.35rem;padding:.3rem;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid var(--l-border);animation:landing-rise .7s ease-out .12s both}.landing-hero__tab{display:inline-flex;align-items:center;padding:.4rem .9rem;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--l-muted);font-size:.82rem;font-weight:650;transition:background .15s,color .15s,border-color .15s}.landing-hero__tab:hover{color:var(--l-ink)}.landing-hero__tab--active{background:var(--l-ink);color:#fff}.landing-hero h1{font-size:clamp(1.85rem,4.4vw,2.85rem);line-height:1.12;margin:0 auto 1rem;max-width:18ch;color:var(--l-ink);animation:landing-rise .75s ease-out .16s both}.landing-hero__sub{color:var(--l-muted);font-size:1.08rem;line-height:1.6;max-width:46ch;margin:0 auto 1.5rem;animation:landing-rise .75s ease-out .22s both}.landing-hero__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:.85rem;animation:landing-rise .75s ease-out .28s both}.landing-btn{display:inline-flex;align-items:center;justify-content:center;padding:.78rem 1.3rem;border-radius:999px;font-size:.92rem;font-weight:750;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s}.landing-btn--primary{background:linear-gradient(180deg,#f2a11f 0,var(--l-accent-deep) 100%);color:#1a1206;border:1px solid rgba(196,106,0,.35);box-shadow:0 10px 24px rgba(196,106,0,.25)}.landing-btn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(196,106,0,.32)}.landing-btn--secondary{border:1px solid var(--l-border);color:var(--l-ink);background:var(--l-bg-elevated)}.landing-btn--secondary:hover{border-color:rgba(232,135,10,.45)}.landing-btn--ghost{border:1px solid rgba(255,255,255,.28);color:#fff;background:transparent}.landing-btn--ghost:hover{background:rgba(255,255,255,.08)}.landing-hero__micro{font-size:.82rem;color:var(--l-muted);margin-bottom:1.75rem;animation:landing-rise .75s ease-out .32s both}.landing-hero__bullets{list-style:none;display:grid;gap:.65rem;text-align:left;max-width:40rem;margin:0 auto;animation:landing-rise .8s ease-out .38s both}.landing-hero__bullets li{display:flex;align-items:flex-start;gap:.65rem;font-size:.94rem;line-height:1.45;color:var(--l-ink-soft);padding:.7rem .85rem;border-radius:12px;background:rgba(255,255,255,.72);border:1px solid var(--l-border)}.landing-hero__bullets svg{flex-shrink:0;margin-top:.12rem;color:var(--l-ok)}@keyframes landing-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.landing-section{padding:4rem 1.25rem}.landing-section--tint{background:rgba(255,255,255,.55);border-block:1px solid var(--l-border)}.landing-section--ink{background:linear-gradient(135deg,#0d1830,#152849 55%,#1a3058);color:#f4f7fb}.landing-section--ink .landing-kicker{color:#f0a028}.landing-section__lead--on-ink{color:rgba(244,247,251,.78)!important}.landing-section__inner{max-width:72rem;margin:0 auto}.landing-section__inner--split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2rem;align-items:start}.landing-kicker{display:inline-block;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--l-accent-deep);margin-bottom:.7rem}.landing-section h2{font-size:clamp(1.55rem,3.2vw,2.2rem);line-height:1.18;margin-bottom:.8rem;max-width:26ch;color:var(--l-ink)}.landing-section--ink h2{color:#fff;max-width:24ch}.landing-section__lead{color:var(--l-muted);font-size:1.05rem;line-height:1.6;max-width:58ch;margin-bottom:1.75rem}.landing-lifecycle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.landing-lifecycle__stage{padding:1.35rem 1.25rem;border-radius:var(--l-radius);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}.landing-lifecycle__index{display:block;font-size:.78rem;font-weight:800;letter-spacing:.08em;color:#f0a028;margin-bottom:.55rem}.landing-lifecycle__label{font-size:.78rem;color:rgba(244,247,251,.62);margin-bottom:.25rem}.landing-lifecycle__stage h3{font-size:1.35rem;color:#fff;margin-bottom:.85rem}.landing-lifecycle__stage ul{list-style:none;display:grid;gap:.4rem}.landing-lifecycle__stage li{font-size:.9rem;color:rgba(244,247,251,.82);padding-left:.85rem;position:relative;line-height:1.4}.landing-lifecycle__stage li:before{content:"";position:absolute;left:0;top:.55rem;width:.35rem;height:.35rem;border-radius:50%;background:#f0a028}.landing-problem-list{list-style:none;display:grid;gap:.75rem;max-width:52rem}.landing-problem-list li{padding:.95rem 1.1rem;border-radius:12px;background:var(--l-bg-elevated);border:1px solid var(--l-border);border-left:4px solid var(--l-accent);font-size:.98rem;line-height:1.45;box-shadow:var(--l-shadow)}.landing-modules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.landing-module-card{padding:1.2rem;background:var(--l-bg-elevated);border:1px solid var(--l-border);border-radius:var(--l-radius);box-shadow:var(--l-shadow);transition:transform .15s,border-color .15s}.landing-module-card:hover{transform:translateY(-2px);border-color:rgba(232,135,10,.35)}.landing-module-card h3{font-size:1rem;font-weight:750;margin-bottom:.4rem;color:var(--l-ink);font-family:var(--font-landing-sans),sans-serif}.landing-module-card p{font-size:.88rem;color:var(--l-muted);line-height:1.45}.landing-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.landing-pillar{padding:1.4rem 1.25rem;border-radius:var(--l-radius);background:var(--l-bg-elevated);border:1px solid var(--l-border);box-shadow:var(--l-shadow)}.landing-pillar h3{font-size:1.25rem;margin-bottom:.55rem;color:var(--l-ink)}.landing-pillar p{font-size:.95rem;color:var(--l-muted);line-height:1.55}.landing-profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.landing-profile-card{padding:1.25rem;border-radius:var(--l-radius);background:var(--l-bg-elevated);border:1px solid var(--l-border);box-shadow:var(--l-shadow)}.landing-profile-card--active{border-color:rgba(232,135,10,.5);box-shadow:0 0 0 3px var(--l-accent-soft),var(--l-shadow)}.landing-profile-card h3{font-size:1.05rem;margin-bottom:.45rem;font-family:var(--font-landing-sans),sans-serif}.landing-profile-card h3 a{color:var(--l-accent-deep)}.landing-profile-card h3 a:hover{color:var(--l-accent)}.landing-profile-card>p{font-size:.9rem;color:var(--l-muted);line-height:1.45;margin-bottom:.85rem}.landing-profile-card__bullets{list-style:none;display:grid;gap:.4rem}.landing-profile-card__bullets li{font-size:.82rem;color:var(--l-ink-soft);line-height:1.4;padding-left:.8rem;position:relative}.landing-profile-card__bullets li:before{content:"";position:absolute;left:0;top:.45rem;width:.35rem;height:.35rem;border-radius:50%;background:var(--l-accent)}.landing-faq{display:flex;flex-direction:column;gap:1rem;max-width:52rem}.landing-faq__item{padding:1.15rem 1.25rem;border-radius:var(--l-radius);background:var(--l-bg-elevated);border:1px solid var(--l-border);box-shadow:var(--l-shadow)}.landing-faq__item dt{font-weight:750;font-size:1rem;margin-bottom:.5rem;color:var(--l-ink)}.landing-faq__item dd{font-size:.94rem;color:var(--l-muted);line-height:1.55;margin:0}.landing-table__caption{caption-side:top;text-align:left;padding:.85rem 1rem;font-size:.85rem;color:var(--l-muted);border-bottom:1px solid var(--l-border)}.landing-audience{list-style:none;display:flex;flex-direction:column;gap:.65rem}.landing-audience li{display:flex;align-items:flex-start;gap:.6rem;font-size:.98rem;line-height:1.45;color:var(--l-ink-soft)}.landing-audience svg{flex-shrink:0;margin-top:.15rem;color:var(--l-ok)}.landing-highlight{padding:1.6rem;border-radius:var(--l-radius);background:linear-gradient(145deg,rgba(232,135,10,.16),#fff 55%);border:1px solid rgba(232,135,10,.28);box-shadow:var(--l-shadow)}.landing-highlight__label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--l-accent-deep);margin-bottom:.65rem}.landing-highlight__text{font-size:1.3rem;line-height:1.35;margin-bottom:.85rem;color:var(--l-ink)}.landing-highlight__note{font-size:.92rem;color:var(--l-muted);line-height:1.5}.landing-table-wrap{overflow-x:auto;border:1px solid var(--l-border);border-radius:var(--l-radius);background:var(--l-bg-elevated);box-shadow:var(--l-shadow)}.landing-table{width:100%;border-collapse:collapse;font-size:.875rem;min-width:640px}.landing-table td,.landing-table th{padding:.9rem 1rem;text-align:left;border-bottom:1px solid var(--l-border);vertical-align:top;line-height:1.45;color:var(--l-ink-soft)}.landing-table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--l-muted);background:var(--l-bg-tint)}.landing-table tbody th{font-weight:750;color:var(--l-ink);white-space:nowrap}.landing-table tbody tr:last-child td,.landing-table tbody tr:last-child th{border-bottom:none}.landing-table td:last-child{color:var(--l-accent-deep)}.landing-roadmap{padding:1.5rem;border-radius:var(--l-radius);background:var(--l-bg-elevated);border:1px solid var(--l-border);box-shadow:var(--l-shadow)}.landing-roadmap__label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--l-accent-deep);margin-bottom:.65rem}.landing-roadmap p{font-size:.98rem;color:var(--l-muted);line-height:1.55}.landing-cta{padding:4.5rem 1.25rem 5.5rem;background:linear-gradient(135deg,#0d1830,#183056 50%,#1f3b68);color:#fff}.landing-cta__inner{max-width:42rem;margin:0 auto;text-align:center}.landing-cta h2{font-size:clamp(1.6rem,3.5vw,2.25rem);line-height:1.2;margin-bottom:.75rem;color:#fff}.landing-cta p{color:rgba(244,247,251,.78);margin-bottom:1.5rem;line-height:1.55}.landing-cta .landing-hero__actions{justify-content:center}.landing-cta__note{font-size:.85rem;margin-bottom:0!important;color:rgba(244,247,251,.62)!important}.landing-footer{margin-top:auto;border-top:1px solid var(--l-border);padding:1.75rem 1.25rem;background:rgba(255,255,255,.7)}.landing-footer__inner{max-width:72rem;margin:0 auto;text-align:center;display:flex;flex-direction:column;gap:.5rem;font-size:.85rem;color:var(--l-muted)}.landing-footer__links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .75rem}.landing-footer__links a{color:var(--l-accent-deep);font-weight:650}.landing-footer__links a:hover{color:var(--l-accent)}.landing-footer__credit{font-size:.78rem}@media (max-width:1100px){.landing-modules{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:960px){.landing-lifecycle,.landing-pillars,.landing-profiles,.landing-section__inner--split{grid-template-columns:1fr}.landing-nav a:not(.landing-nav__demo):not(.landing-nav__cta){display:none}}@media (max-width:560px){.landing-modules{grid-template-columns:1fr}.landing-hero{padding-top:2.25rem}.landing-hero h1{max-width:none}}.tablero-page__eyebrow{margin:0 0 .25rem;font-size:.8rem;font-weight:600;color:var(--text-muted);letter-spacing:.02em}.tablero-page__kpis{margin-top:1rem}.tablero-obras-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media (max-width:1100px){.tablero-obras-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.tablero-obras-grid{grid-template-columns:1fr}}.tablero-obra-card{display:block;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem 1.1rem;color:inherit;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}.tablero-obra-card:hover{border-color:rgba(245,158,11,.45);box-shadow:0 0 0 3px rgba(245,158,11,.1)}.tablero-obra-card__head h3{margin:0;font-size:1.05rem;font-weight:700}.tablero-obra-card__head em{display:block;margin-top:.2rem;font-style:normal;font-size:.85rem;color:var(--text-muted)}.tablero-obra-card__avances{display:flex;gap:1rem;margin:.9rem 0 .75rem}.tablero-obra-card__avances>div{flex:1 1;min-width:0}.tablero-obra-card__metric-label{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.tablero-obra-card__metric-value{margin:.15rem 0 .35rem;font-size:1.25rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tablero-obra-card__metric-value--ok{color:#16a34a}.tablero-obra-card__metric-value--warn{color:#d97706}.tablero-obra-card__metric-value--bad{color:#dc2626}.tablero-obra-card__metric-value--neutral{color:var(--text)}.tablero-bar{height:6px;border-radius:999px;background:rgba(148,163,184,.25);overflow:hidden}.tablero-bar__fill{height:100%;border-radius:inherit;background:#16a34a}.tablero-bar__fill--warn{background:#d97706}.tablero-bar__fill--bad{background:#dc2626}.tablero-bar__fill--neutral{background:var(--accent)}.tablero-obra-card__table{width:100%;border-collapse:collapse;font-size:.88rem}.tablero-obra-card__table td{padding:.35rem 0;border-top:1px solid var(--border);vertical-align:top}.tablero-obra-card__table td:first-child{color:var(--text-muted);padding-right:.75rem}.tablero-obra-card__table td:last-child{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.tablero-tag{display:inline-block;margin-left:.4rem;padding:.1rem .4rem;border-radius:999px;font-size:.7rem;font-weight:600;vertical-align:middle}.tablero-tag--ok{background:rgba(34,197,94,.15);color:#16a34a}.tablero-tag--warn{background:rgba(245,158,11,.18);color:#b45309}.tablero-tag--bad{background:rgba(220,38,38,.14);color:#dc2626}.tablero-tag--neutral{background:rgba(148,163,184,.2);color:var(--text-muted)}html[data-theme=light]{color-scheme:light;--bg:#eef2f6;--bg-elevated:#ffffff;--surface:#e4ebf3;--border:rgba(11,20,36,0.12);--text:#0b1424;--text-muted:#5a6b82;--accent:#e8870a;--accent-hover:#c46a00;--accent-muted:rgba(232,135,10,0.14);--card:#ffffff}html[data-theme=light] body{background:radial-gradient(ellipse 90% 55% at 12% -10%,rgba(232,135,10,.16),transparent 55%),radial-gradient(ellipse 70% 45% at 92% 8%,rgba(53,87,200,.08),transparent 50%),linear-gradient(180deg,#f7f9fc 0,var(--bg) 38%,#e8eef5 100%);background-attachment:fixed}html[data-theme=light] .app-header{background:rgba(247,249,252,.88)}html[data-theme=light] .obra-sidebar{background:rgba(247,249,252,.94)}html[data-theme=light] .modal-overlay{background:rgba(11,20,36,.45)}html[data-theme=light] .card,html[data-theme=light] .module-card{box-shadow:0 10px 28px rgba(11,20,36,.06)}html[data-theme=light] .form-error{color:#9f1239}html[data-theme=light] .form-success{color:#0f7a65}html[data-theme=light] .chip{color:var(--text);background:rgba(11,20,36,.05)}html[data-theme=light] .pago-plan__remove{color:#b91c1c}html[data-theme=light] .codigo-subrubro__prefijo,html[data-theme=light] .pago-plan__nro,html[data-theme=light] .panel-segments,html[data-theme=light] .panel-segments__tab:hover:not(:disabled):not(.panel-segments__tab--active),html[data-theme=light] .panel-tabs__tab:hover:not(:disabled):not(.panel-tabs__tab--active),html[data-theme=light] a.obra-sidebar__item:hover{background:rgba(11,20,36,.05)}html[data-theme=light] .pago-plan{background:rgba(11,20,36,.03)}html[data-theme=light] .pago-plan__head{background:rgba(11,20,36,.04)}html[data-theme=light] .pago-plan__row+.pago-plan__row{border-top-color:var(--border)}.lic-public{min-height:100vh;background:radial-gradient(ellipse 80% 50% at 10% -10%,rgba(245,158,11,.12),transparent 55%),radial-gradient(ellipse 60% 40% at 100% 0,rgba(56,120,180,.1),transparent 50%),var(--bg);color:var(--text)}.lic-public__top{max-width:1040px;margin:0 auto;padding:1.75rem 1.25rem .5rem}.lic-public__brand{font-size:1.55rem;font-weight:700;letter-spacing:-.03em;color:var(--accent);margin:0}.lic-public__eyebrow{margin:.15rem 0 0;font-size:.82rem;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase}.lic-public__main{max-width:1040px;margin:0 auto;padding:.75rem 1.25rem 2.5rem}.lic-public__grid{display:grid;grid-template-columns:minmax(220px,.95fr) minmax(0,1.35fr);gap:1.25rem;align-items:start}@media (max-width:780px){.lic-public__grid{grid-template-columns:1fr}}.lic-public__aside{padding:1rem 1.05rem 1.15rem;border:1px solid var(--border);border-radius:var(--radius);background:rgba(26,34,44,.65);position:sticky;top:1rem}.lic-public__aside h2{margin:0;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.lic-public__aside-lead{margin:.45rem 0 .85rem;font-size:.98rem;font-weight:600;line-height:1.35}.lic-public__alcance{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;max-height:min(58vh,420px);overflow:auto}.lic-public__alcance li{display:grid;grid-template-columns:auto 1fr auto;gap:.35rem .5rem;align-items:baseline;font-size:.84rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.lic-public__alcance li:last-child{border-bottom:none}.lic-public__alcance-kind{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);opacity:.9}.lic-public__alcance-label{line-height:1.3}.lic-public__alcance-qty{color:var(--text-muted);font-size:.78rem;white-space:nowrap}.lic-public__ref{margin:.85rem 0 0;padding-top:.75rem;border-top:1px solid var(--border);font-size:.82rem;color:var(--text-muted)}.lic-public__panel{padding:1.15rem 1.25rem 1.35rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.lic-public__panel h1{margin:0 0 .85rem;font-size:1.25rem;font-weight:650;letter-spacing:-.02em}.lic-public__meta{display:grid;grid-template-columns:1fr 1fr;gap:.65rem 1rem;margin:0 0 .85rem}.lic-public__meta dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.lic-public__meta dd{margin:.15rem 0 0;font-size:.92rem;font-weight:560}.lic-public__notas{margin:0 0 .85rem;font-size:.88rem;line-height:1.45;color:var(--text-muted)}.lic-public__form{display:flex;flex-direction:column;gap:.85rem;margin-top:.35rem}.lic-public__field{display:flex;flex-direction:column;gap:.3rem;flex:1 1;font-size:.82rem;color:var(--text-muted)}.lic-public__field--narrow{flex:0 0 110px}.lic-public__cuota-row input,.lic-public__field input,.lic-public__field select,.lic-public__field textarea{width:100%;padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;font-size:.92rem}.lic-public__cuota-row input:focus,.lic-public__field input:focus,.lic-public__field select:focus,.lic-public__field textarea:focus{outline:2px solid rgba(245,158,11,.35);border-color:var(--accent)}.lic-public__row{display:flex;gap:.65rem;flex-wrap:wrap}.lic-public__cuotas{margin:0;padding:.75rem .85rem;border:1px solid var(--border);border-radius:8px}.lic-public__cuotas legend{padding:0 .25rem;font-size:.78rem;color:var(--text-muted)}.lic-public__cuota-row{display:grid;grid-template-columns:1.5rem minmax(0,1fr) minmax(0,1fr);gap:.45rem;align-items:center;margin-bottom:.45rem}.lic-public__cuota-n{font-size:.82rem;color:var(--text-muted);text-align:center}.lic-public__link-btn{background:none;border:none;color:var(--accent);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;padding:.15rem 0}.lic-public__submit{margin-top:.25rem;padding:.7rem 1.1rem;border:none;border-radius:8px;background:linear-gradient(180deg,var(--accent) 0,#d97706 100%);color:#0f1419;font:inherit;font-weight:700;cursor:pointer}.lic-public__submit:disabled{opacity:.65;cursor:wait}.lic-public__muted{color:var(--text-muted);font-size:.9rem}.lic-public__error{color:#f87171;margin-bottom:.75rem}.lic-public__warn{color:#fbbf24;font-size:.9rem;margin:.5rem 0}.lic-public__ok{max-width:420px;padding:1.5rem 0}.lic-public__ok h1{margin:0 0 .4rem;font-size:1.35rem;color:#34d399}.lic-public__ok p{margin:0;color:var(--text-muted)}html[data-theme=light] .lic-public{background:radial-gradient(ellipse 80% 50% at 10% -10%,rgba(245,158,11,.1),transparent 55%),#f5f7fa}html[data-theme=light] .lic-public__aside,html[data-theme=light] .lic-public__panel{background:#fff;box-shadow:0 1px 2px rgba(15,20,25,.04)}html[data-theme=light] .lic-public__cuota-row input,html[data-theme=light] .lic-public__field input,html[data-theme=light] .lic-public__field select,html[data-theme=light] .lic-public__field textarea{background:#f8fafc}