:root{--ink:#111c2b;--muted:#728093;--navy:#0e1928;--navy2:#152338;--bg:#f7f8fa;--white:#fff;--border:#e6e9ee;--green:#d8ff54;--green-dark:#bde63c;--beige:#f3f5eb;--blue:#4266ac;--shadow:0 12px 32px rgba(20,31,52,.055)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:13.5px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.hidden{display:none!important} .app-shell{display:flex;min-height:100vh}.sidebar{width:259px;flex:none;position:sticky;height:100vh;top:0;background:var(--navy);color:#fff;display:flex;flex-direction:column;padding:32px 17px 22px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#3a4555 transparent}.brand{display:flex;align-items:center;gap:13px;padding:0 10px;margin-bottom:47px}.brand-logo{width:41px;height:41px;background:var(--green);border-radius:12px;color:var(--navy);display:grid;place-items:center;font-size:24px;font-weight:800;letter-spacing:-3px}.brand-logo span{font-weight:400;transform:translateX(-1px)}.brand strong{display:block;font-weight:800;letter-spacing:.17em;font-size:12px}.brand small{font-size:9px;color:#a4aebb;letter-spacing:.21em;display:block;margin-top:4px}.side-caption{font-size:10px;font-weight:800;letter-spacing:.16em;color:#77899a;margin:0 13px 13px}.section-break{margin-top:38px}.nav-main,.category-list{display:grid;gap:5px}.nav-button,.category-button{background:transparent;color:#acb8c8;border:0;text-align:left;border-radius:10px;min-height:42px;padding:11px 12px;display:flex;align-items:center;gap:11px;width:100%;font-size:12px;font-weight:580}.nav-button:hover,.category-button:hover{background:#202e40;color:#fff}.nav-button.active,.category-button.active{background:#283644;color:#fff}.nav-button.active:before{content:"";width:3px;background:var(--green);position:absolute;left:0;height:31px;border-radius:0 4px 4px 0}.nav-button{position:relative}.nav-symbol{font-size:19px;min-width:22px;text-align:center;color:#8aa0b4}.nav-tag{font-size:10px;margin-left:auto;color:#687d91}.category-button{min-height:35px;padding:8px 12px}.category-icon{font-size:15px;width:20px;text-align:center;color:#9cacbf}.category-count{margin-left:auto;font-size:10px;color:#7e8fa4}.sidebar-bottom{display:flex;gap:10px;align-items:flex-start;background:#1d2b3c;border-radius:13px;padding:16px 13px;margin-top:auto}.mini-pulse{width:9px;height:9px;border-radius:50%;background:var(--green);margin-top:3px;box-shadow:0 0 0 4px rgba(216,255,84,.1);flex:none}.sidebar-bottom strong{font-size:11px}.sidebar-bottom p{font-size:10px;line-height:1.6;color:#94a5b4;margin:6px 0 0}.work-area{min-width:0;flex:1}.topbar{height:77px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:12px}.crumb{font-size:10px;letter-spacing:.18em;color:#8e9aaa;font-weight:750}.crumb strong{color:var(--ink)}.crumb span{padding:0 9px;color:#c0c6d1}.top-actions,.heading-actions{display:flex;align-items:center;gap:9px}.status-pill{display:flex;align-items:center;gap:8px;margin-right:12px;color:#68778a;font-size:10px;font-weight:750;white-space:nowrap}.status-dot,.live-dot{height:6px;width:6px;display:inline-block;background:#91d647;border-radius:50%;box-shadow:0 0 0 3px rgba(145,214,71,.15)}.btn{border:none;border-radius:8px;padding:12px 15px;font-weight:700;font-size:11px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .15s,background .15s}.btn:hover{transform:translateY(-1px)}.btn-dark{background:var(--ink);color:#fff}.btn-ghost{background:#fff;color:#263447}.btn-outline{border:1px solid #d6dce2;background:transparent;color:#384858}.btn-accent{color:#152127;background:var(--green);box-shadow:0 5px 14px rgba(141,173,45,.13)}.btn-accent:hover{background:var(--green-dark)}.btn-light{background:#fff;color:#1d2a3b;border:1px solid #e3e7ec}.btn-full{width:100%;justify-content:space-between;margin-top:9px;font-size:11px;padding:15px 17px}main{padding:34px 35px 70px;max-width:1760px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:31px}.eyebrow{font-size:10px;letter-spacing:.16em;color:#617288;font-weight:800}.accent-line{display:inline-block;width:22px;border-top:2px solid #98b632;vertical-align:middle;margin:0 6px}.page-heading h1{font-size:clamp(32px,3.4vw,53px);letter-spacing:-.06em;line-height:1.11;margin:13px 0 12px;font-weight:780}.page-heading h1 em{font-weight:500;font-family:Georgia,serif;letter-spacing:-.07em}.page-heading p{font-size:12.5px;max-width:620px;line-height:1.6;color:#6b7a8c;margin:0}.heading-actions{padding-bottom:4px}.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:23px}.metric{height:107px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:17px 20px}.metric span{font-size:9px;color:#8695a4;font-weight:800;letter-spacing:.12em;display:block}.metric strong{display:block;font-size:30px;letter-spacing:-.06em;line-height:1.1;margin:8px 0 2px}.metric small{color:#95a0ab;font-size:10px}.metric-highlight{background:#edf5da;border-color:#e6edce}.metric-asterisk{font-size:14px!important;display:inline!important;margin-left:2px;color:#8fb525!important}.quote-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:19px;align-items:start}.edit-column{min-width:0}.panel{background:#fff;border:1px solid var(--border);border-radius:13px;padding:26px 26px 24px;box-shadow:var(--shadow);margin-bottom:18px}.panel-top{display:flex;align-items:center;gap:15px;margin-bottom:23px}.panel-num{display:grid;place-items:center;flex:none;width:34px;height:34px;background:#eff2f4;border-radius:9px;color:#6f7c88;font-size:11px;font-weight:780}.panel h2,.table-card h2{font-size:18px;letter-spacing:-.035em;margin:0 0 5px}.panel-top p,.table-toolbar p{font-size:11px;color:#8b98a6;margin:0;line-height:1.5}.panel-tag{margin-left:auto;border-radius:7px;background:#eef3db;color:#5f722b;font-size:10px;font-weight:700;padding:8px 9px;white-space:nowrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.field{display:flex;flex-direction:column;gap:8px;font-size:10px;font-weight:700;color:#59687a;letter-spacing:.025em;min-width:0}.field.full{grid-column:1/-1}.field input,.field select,.field textarea,select#marketFilter{width:100%;outline:none;border:1px solid #e1e6ec;border-radius:8px;background:#fdfefe;padding:12px;color:#223142;font-size:12px;letter-spacing:0;font-weight:450;min-height:41px;transition:border-color .2s}.field textarea{line-height:1.5;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.searchbox input:focus{border-color:#7f9d37;background:#fff;box-shadow:0 0 0 3px #d8ff5430}.field input::placeholder,.field textarea::placeholder{color:#afbac7}.feature-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:15px}.searchbox{display:flex;align-items:center;border:1px solid #e3e7ec;border-radius:9px;background:#fbfcfd;flex:1;min-width:0}.searchbox span{font-size:22px;color:#8c9aab;padding-left:13px}.searchbox input{border:0;outline:0;padding:13px 10px;background:transparent;width:100%;font-size:11px;min-width:0}.check-text{display:flex;align-items:center;gap:8px;color:#778496;font-size:11px;white-space:nowrap;cursor:pointer}.check-text input{accent-color:#7fa02e}.category-bar{display:flex;gap:7px;overflow:auto;padding-bottom:13px;scrollbar-width:thin}.category-pill{flex:none;padding:9px 12px;border:1px solid #e2e6ea;background:white;border-radius:7px;color:#6b7888;font-size:11px}.category-pill.active{color:#fff;background:#243349;border-color:#243349}.feature-list{border-top:1px solid var(--border);max-height:508px;overflow-y:auto;scrollbar-width:thin}.feature-row{display:flex;align-items:center;gap:11px;padding:15px 3px;border-bottom:1px solid #f0f2f5;cursor:pointer;min-height:72px}.feature-row:hover{background:#f9fafb}.feature-check,.tech-check{appearance:none;flex:none;width:18px;height:18px;border:1.5px solid #cbd4de;border-radius:5px;background:white;cursor:pointer;display:grid;place-items:center;margin:0}.feature-check:checked,.tech-check:checked{background:#c8ef50;border-color:#94ad3b}.feature-check:checked:after,.tech-check:checked:after{content:'✓';font-size:13px;font-weight:900;color:#1b2a2b}.feature-title{font-weight:740;font-size:12px;display:block;line-height:1.3}.feature-desc{display:block;color:#9ba6b3;font-size:10.5px;margin-top:5px;line-height:1.4}.feature-content{flex:1;min-width:0}.feature-time{text-align:right;white-space:nowrap;margin-left:5px}.feature-time strong{display:block;font-size:11px}.feature-time small{font-size:10px;color:#8796a5}.feature-selected{background:#faffed}.feature-footer{padding-top:15px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#8694a3}.link-button{background:none;border:none;font-size:11px;font-weight:730;color:#48607a}.empty-state{padding:34px 8px;color:#8594a3;text-align:center}.tech-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}.tech-group{border:1px solid #ebedf1;border-radius:9px;padding:14px}.tech-group h3{font-size:10px;letter-spacing:.11em;color:#66788a;margin:0 0 12px}.tech-item{display:flex;align-items:center;gap:8px;cursor:pointer;padding:7px 2px;font-size:11.5px;color:#324153}.tech-item small{margin-left:auto;color:#9aa7b5;font-size:10px;white-space:nowrap}.note{font-size:11px}.subtle{color:#81909e;margin:16px 0 0}.settings-subtitle{font-size:10px;font-weight:850;color:#83919e;letter-spacing:.14em;margin-bottom:17px}.role-title{margin-top:28px;display:flex;justify-content:space-between}.role-title span{color:#a7b1bc}.roles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.role-label{font-size:10px;display:flex;flex-direction:column;gap:8px;color:#647285;font-weight:700}.role-label input{border:1px solid #e3e7ec;background:#fafcfe;border-radius:8px;padding:11px;width:100%;font-size:12px;color:var(--ink)}.cost-note{background:#f5f7f9;border-radius:8px;padding:13px;margin-top:18px;font-size:10.5px;line-height:1.65;color:#748293}.panel>.field{margin:10px 0 18px}.estimate-column{position:sticky;top:17px}.estimate-card{background:var(--navy);color:#f9fbfe;padding:27px 25px 25px;border-radius:15px;box-shadow:0 16px 28px rgba(5,19,35,.14)}.estimate-card-header{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:38px}.estimate-chip{font-size:9px;font-weight:850;letter-spacing:.13em;color:#c1cbd4}.live-dot{margin-left:8px}.estimate-version{font-size:9px;color:#798c9d;white-space:nowrap}.estimate-subhead{color:#bcc8d2;font-size:12px;margin-bottom:8px}.hero-number{font-size:clamp(30px,2.7vw,41px);letter-spacing:-.065em;font-weight:800;white-space:nowrap}.total-caption{color:#8192a4;font-size:10px;margin:8px 0 25px}.range-box{background:#223144;border:1px solid #344459;border-radius:10px;padding:16px;margin-bottom:24px}.range-box span{font-size:10px;color:#9fb0bf}.range-box strong{display:block;font-size:14px;letter-spacing:-.015em;margin-top:6px}.range-stripe{display:flex;align-items:center;gap:5px;margin-top:17px}.range-stripe i,.range-stripe b{height:5px;border-radius:3px;background:#67798d;flex:1}.range-stripe b{background:var(--green);flex:2}.estimate-lines{display:grid;gap:16px;margin-bottom:25px}.estimate-lines>div{display:flex;justify-content:space-between;gap:15px;align-items:baseline}.estimate-lines span{color:#a5b1be;font-size:11px}.estimate-lines strong{font-size:12px;white-space:nowrap}.estimate-lines .emphasis{border-top:1px solid #3a4758;padding-top:17px}.estimate-lines .emphasis span,.estimate-lines .emphasis strong{color:#fff}.estimate-aux{border-top:1px solid #3a4758;border-bottom:1px solid #3a4758;display:grid;grid-template-columns:repeat(3,1fr);padding:21px 0;gap:5px}.estimate-aux>div{border-right:1px solid #3a4758;padding-left:9px}.estimate-aux>div:first-child{padding-left:0}.estimate-aux>div:last-child{border:0}.estimate-aux span{font-size:8px;letter-spacing:.04em;display:block;color:#879bad;min-height:20px}.estimate-aux strong{font-size:19px;display:block;margin-top:6px}.recurring{background:#1b2b39;border-radius:8px;margin:20px 0 24px;padding:17px}.recurring>div{display:flex;align-items:baseline;justify-content:space-between;gap:7px}.recurring span{font-size:8px;color:#a3b2bf;letter-spacing:.09em}.recurring strong{font-size:21px;letter-spacing:-.04em;white-space:nowrap}.recurring small{font-size:9px;font-weight:450;color:#8698a9}.recurring p{color:#7c8c9c;line-height:1.6;font-size:10px;margin:11px 0 0}.estimate-disclaimer{font-size:9.5px;line-height:1.7;color:#7d8c9d;margin:18px 0 0;text-align:center}.estimate-card .btn-light{background:#1b2b3b;border-color:#35485c;color:#d9e1e9}.secondary-heading{margin-bottom:26px}.notice{display:flex;gap:15px;align-items:flex-start;background:#eef3dd;border:1px solid #dbe9b8;border-radius:12px;padding:20px 23px;margin-bottom:23px}.notice>span{font-size:22px;color:#6d862e}.notice strong{font-size:12px}.notice p{margin:7px 0 0;color:#62705b;font-size:11.5px;line-height:1.7}.notice.soft{background:#f5f7f9;border-color:#e4eaf0;margin-top:24px}.notice.soft>span{color:#41556d}.notice.soft p{color:#738297}.market-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.market-stats>div{background:white;padding:21px 23px;border:1px solid var(--border);border-radius:11px}.market-stats span{font-weight:800;font-size:9px;letter-spacing:.12em;color:#8b9ba8}.market-stats strong{display:block;margin:10px 0;font-size:23px;letter-spacing:-.04em}.market-stats p{font-size:10.5px;color:#82919f;margin:0}.table-card{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:13px;margin-bottom:23px;overflow:hidden}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:23px}.table-toolbar select{width:215px!important}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:11px;min-width:640px;text-align:left}.data-table th{background:#f6f8fa;padding:15px 19px;font-size:9px;letter-spacing:.08em;color:#7f8e9d;border-top:1px solid #ebeff3}.data-table td{padding:14px 19px;border-bottom:1px solid #edf0f2;color:#405064}.data-table td:nth-child(2){color:#162c3b;font-weight:700}.data-table tr:last-child td{border-bottom:0}.table-source{font-size:10px;color:#425c80;text-decoration:underline;text-decoration-color:#c1cce0;text-underline-offset:3px}.label-category{font-size:10px;background:#ecf1f6;border-radius:5px;padding:5px 7px;white-space:nowrap}.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.method-card{background:white;border:1px solid #e7eaef;padding:22px;border-radius:11px;min-height:198px}.method-card>span{font-size:10px;color:#8b9aa9;letter-spacing:.1em;font-weight:800}.method-card h2{font-size:19px;letter-spacing:-.04em;margin:17px 0 10px}.method-card p{font-size:11px;color:#748497;line-height:1.65;margin:0}.formula{background:#152335;color:white;border-radius:12px;padding:26px 30px;margin-bottom:24px}.formula .eyebrow{color:#acbcd0;margin-bottom:15px}.formula code{display:block;white-space:normal;margin:9px 0;background:#25384a;padding:13px 15px;border-radius:6px;font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;color:#ddedcb}.formula p{font-size:11px;color:#a1b1c2;margin:16px 0 0;line-height:1.6}.source-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 20px;padding:0 25px 21px}.source-card{border-top:1px solid var(--border);padding:18px 0}.source-card>span{font-size:9px;color:#8c9aaa;letter-spacing:.1em}.source-card h3{font-size:12.5px;line-height:1.5;margin:7px 0}.source-card p{font-size:11px;line-height:1.6;color:#8492a3;margin:5px 0 10px}.source-card a{color:#315b95;font-size:10px;word-break:break-word}.footer{border-top:1px solid #e5e9ec;padding:22px 35px;color:#8593a2;font-size:9px;letter-spacing:.09em;font-weight:800}.footer span{margin:0 8px;color:#c4cdd6}.footer-right{float:right;font-weight:450;letter-spacing:0}.toast{position:fixed;bottom:26px;right:24px;background:#192738;color:#fff;border-radius:9px;box-shadow:0 10px 28px #14283a3f;padding:15px 20px;font-size:12px;opacity:0;pointer-events:none;transform:translateY(14px);transition:all .2s;z-index:25;max-width:400px}.toast.show{opacity:1;transform:translateY(0)}.print-sheet{display:none}
@media(max-width:1270px){.sidebar{width:229px}.quote-layout{grid-template-columns:minmax(0,1fr) 310px}.topbar{padding:0 24px}main{padding:29px 22px 60px}.panel{padding:23px 20px}.role-title{margin-top:21px}.status-pill{display:none}.estimate-card{padding:23px 19px}.hero-number{font-size:34px}}
@media(max-width:1080px){.quote-layout{grid-template-columns:1fr}.estimate-column{position:static}.estimate-card{max-width:none}.estimate-aux{grid-template-columns:repeat(3,1fr)}.method-grid{grid-template-columns:repeat(2,1fr)}.sidebar{width:209px}.brand strong{font-size:11px}.heading-actions{flex-wrap:wrap;justify-content:flex-end}.metrics-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:750px){.app-shell{display:block}.sidebar{width:100%;height:auto;position:static;display:block;padding:14px 14px 9px}.brand{display:none}.side-caption,.category-list,.sidebar-bottom{display:none}.nav-main{display:flex;gap:3px;overflow:auto}.nav-button{width:auto;flex:none;font-size:10px;min-height:36px;padding:7px 8px}.nav-tag{display:none}.nav-symbol{font-size:15px}.topbar{height:auto;min-height:65px;padding:10px 15px;flex-wrap:wrap}.crumb{font-size:9px}.top-actions{gap:2px}.top-actions .btn{font-size:9px;padding:8px}.page-heading{display:block}.heading-actions{margin-top:19px;justify-content:flex-start}.page-heading h1{font-size:37px}.metrics-row{gap:8px}.metric{padding:14px;height:97px}.metric strong{font-size:26px}main{padding:25px 13px 35px}.form-grid,.form-grid.three,.roles-grid,.tech-layout,.method-grid,.market-stats,.source-grid{grid-template-columns:1fr}.feature-toolbar{flex-wrap:wrap}.panel{padding:20px 15px}.panel-top{align-items:flex-start;gap:10px}.panel h2{font-size:17px}.panel-tag{font-size:9px}.estimate-card{padding:22px}.table-toolbar{display:block}.table-toolbar select{margin-top:15px}.footer{padding:20px}.footer-right{display:block;margin-top:10px;float:none}.market-stats{gap:8px}.source-grid{padding:0 18px 18px}.formula{padding:19px}.hero-number{font-size:38px}}
@media print{ @page{size:A4;margin:13mm} body{background:#fff;color:#172134;font-family:Arial,sans-serif;font-size:10pt}.app-shell,.toast{display:none!important}.print-sheet{display:block!important}.print-page{color:#122033}.print-head{display:flex;justify-content:space-between;border-bottom:2px solid #1b2c40;padding-bottom:14px}.print-brand{font-size:22pt;font-weight:800;letter-spacing:-1pt}.print-brand small{display:block;font-size:7pt;letter-spacing:2pt;color:#657483;margin-top:4px}.print-meta{text-align:right;font-size:8pt;color:#59687a;line-height:1.65}.print-title{margin:29px 0 16px}.print-title h1{font-size:20pt;letter-spacing:-1pt;margin:0 0 8px}.print-title p{margin:4px 0;font-size:9pt;color:#506174}.print-summary{display:flex;gap:10px;margin-bottom:18px}.print-tile{flex:1;background:#f0f3f5;padding:14px;border-radius:4px}.print-tile span{font-size:7.5pt;color:#667588;display:block}.print-tile strong{font-size:15pt;display:block;margin-top:8px}.print-sheet h2{font-size:11pt;margin:19px 0 9px}.print-sheet table{border-collapse:collapse;width:100%;font-size:8pt}.print-sheet th{color:#475970;background:#f3f5f7;text-align:left;padding:8px;border:1px solid #e1e6eb}.print-sheet td{padding:8px;border-bottom:1px solid #e5e9ec}.print-sheet .money{text-align:right;white-space:nowrap}.print-notes{margin-top:19px;line-height:1.5;white-space:pre-wrap;font-size:8.5pt}.print-totals{margin:17px 0 0 auto;width:55%;font-size:9pt}.print-totals div{display:flex;justify-content:space-between;gap:10px;padding:6px 0}.print-totals .print-grand{border-top:2px solid #122033;margin-top:5px;padding-top:12px;font-size:14pt;font-weight:800}.print-legal{margin-top:35px;border-top:1px solid #bac6d0;padding-top:14px;color:#637180;font-size:8pt;line-height:1.6}.avoidbreak{break-inside:avoid}a{color:#152c42;text-decoration:none}.print-sheet{word-break:normal}}

/* Repeticiones por funcionalidad seleccionada. */
.feature-quantity{display:flex;align-items:center;gap:5px;margin-left:8px;color:#8695a8;font-size:9px;font-weight:800;letter-spacing:.02em}
.feature-quantity input{width:53px;height:32px;padding:5px 5px;border:1px solid #dbe2e9;border-radius:7px;background:#fff;color:#132236;font-size:12px;font-weight:750;text-align:center}
.feature-quantity input:focus-visible{outline:2px solid #bddf63;outline-offset:2px}
@media(max-width:560px){.feature-quantity{gap:3px;margin-left:4px}.feature-quantity span{display:none}.feature-quantity input{width:40px}}
