@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4cf2300e9c8272f7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_188709{font-family:Geist,Geist Fallback;font-style:normal}.__variable_188709{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}: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-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:50}.app-header__inner{max-width:1120px;margin:0 auto;padding:1rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.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:1.25rem;font-size:.9rem}.app-nav a{color:var(--text-muted);transition:color .15s}.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-main{flex:1 1;width:100%;max-width:1120px;margin:0 auto;padding:2.5rem 0 4rem}.app-footer{border-top:1px solid var(--border);padding:1.25rem .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:1rem}.form-field>label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.35rem;color:var(--text-muted)}.form-field>input,.form-field>select{width:100%;padding:.65rem .85rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem}.form-field>input:focus{outline:none;border-color:rgba(245,158,11,.5);box-shadow:0 0 0 3px rgba(245,158,11,.12)}.form-field>textarea{width:100%;padding:.65rem .85rem;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:4.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)}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:.5rem;padding:.75rem 1rem;border:none;border-radius:8px;background:var(--accent);color:#0f1419;font-weight:700;font-size:.95rem;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.form-error{margin-top:.75rem;padding:.65rem;border-radius:8px;background:rgba(239,68,68,.12);color:#fca5a5;font-size:.85rem}.form-hint{margin-top:1.25rem;font-size:.85rem;color:var(--text-muted)}.page-placeholder h1{font-size:1.35rem;margin-bottom:.5rem}.page-placeholder p{color:var(--text-muted);line-height:1.5}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.grid-2{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width:900px){.grid-2{grid-template-columns:360px 1fr;align-items:start}.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:.7rem .6rem;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:.55rem .75rem;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:.45rem;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center}.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:1.5rem;z-index:100;overflow:auto}.modal{width:100%;max-width:720px;max-height:calc(100vh - 3rem);border-radius:var(--radius);border:1px solid var(--border);box-shadow:0 30px 80px rgba(0,0,0,.45);flex-direction:column}.modal,.modal__header{background:var(--bg-elevated);display:flex}.modal__header{justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}.modal__header h3{font-size:1rem}.modal__body{padding:1rem 1.25rem 1.25rem;overflow:auto}.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:.75rem 1rem;margin-bottom:1rem}.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.75rem;height:2.75rem;padding:0 .85rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem;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.75rem;height:2.75rem;flex-shrink:0;border-radius:999px;border:1px dashed transparent;visibility:hidden}.modal--composition .composition-toolbar__btn{box-sizing:border-box;min-height:2.75rem;height:2.75rem;padding:0 1rem}.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)}.chip--compuesto,.chip--maquinaria{text-transform:uppercase;text-align:center;width:92px}.chip--compuesto{border-color:rgba(34,197,94,.55);background:rgba(34,197,94,.32)}