.est-section{background:#fff;border-radius:10px;box-shadow:0 2px 14px rgba(0,0,0,.09);padding:1.3rem 1.5rem;margin-bottom:1.2rem}
.est-section h3{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--brand-d);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--brand-xs)}
.est-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:900px){.est-grid{grid-template-columns:1fr}}
.est-req-table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:860px}
.est-req-table th{background:#2d3e1a;color:#fff;padding:.35rem .5rem;text-align:left;font-size:.72rem;white-space:nowrap}
.est-req-table td{padding:.3rem .4rem;border-bottom:1px solid var(--gray2);vertical-align:middle}
.est-req-table tfoot td{padding:.45rem .5rem;background:var(--brand-xs)}
.req-sub-header th{background:#4a6128;font-size:.68rem}
.sel-req{padding:.28rem .3rem;border:1.5px solid var(--gray2);border-radius:6px;font-size:.76rem;font-family:inherit;width:100%}
.inp-req-nombre{padding:.28rem .4rem;border:1.5px solid var(--gray2);border-radius:6px;font-size:.78rem;font-family:inherit;width:100%;min-width:88px}
.btn-add-req{background:var(--brand);color:#fff;border:none;border-radius:6px;padding:.35rem .8rem;font-family:inherit;font-size:.8rem;font-weight:700;cursor:pointer}
.btn-add-req:hover{background:var(--brand-d)}
.btn-del-req{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;border-radius:5px;padding:.2rem .5rem;font-size:.85rem;cursor:pointer;line-height:1;font-weight:700}
.btn-del-req:hover{background:#fca5a5}
.req-subpf{font-size:.85rem;font-weight:700;color:#555;text-align:right!important}
.req-pf-total{font-size:.95rem;font-weight:900;color:var(--brand-d);text-align:right!important}
.est-result-row{display:flex;justify-content:space-between;align-items:center;padding:.45rem .6rem;border-radius:6px;margin:.2rem 0;font-size:.88rem}
.est-phase-table,.est-cost-table{width:100%;border-collapse:collapse;font-size:.86rem;margin-top:.5rem}
.est-phase-table th,.est-cost-table th{background:#2d3e1a;color:#fff;padding:.35rem .6rem;text-align:left;font-size:.76rem}
.est-phase-table td,.est-cost-table td{padding:.32rem .6rem;border-bottom:1px solid var(--gray2)}
.est-phase-table tr:nth-child(even) td,.est-cost-table tr:nth-child(even) td{background:#f9fdf3}
.est-phase-table tr:last-child td,.est-cost-table tr:last-child td{background:var(--brand-xs)!important;font-weight:900}
td.num-col{text-align:right;font-weight:700;font-family:monospace}
.price-cascade{display:flex;flex-direction:column;gap:.3rem}
.pc-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem .7rem;border-radius:6px;font-size:.86rem}
.pc-row.base{background:#f5f6fa}
.pc-row.add{background:#e8f5e9;font-weight:700}
.pc-row.subtotal{background:var(--brand-xs);font-weight:900}
.pc-row.iva{background:#fff3cd;font-weight:700}
.pc-row.grand{background:var(--brand);color:#fff;font-weight:900;font-size:1rem}
.crono-table{width:100%;border-collapse:collapse;font-size:.78rem;overflow-x:auto;display:block}
.crono-table th{background:#2d3e1a;color:#fff;padding:.3rem .4rem;white-space:nowrap;text-align:center;font-size:.7rem}
.crono-table td{padding:.28rem .4rem;border-bottom:1px solid var(--gray2);border-right:1px solid var(--gray2);text-align:center}
.crono-table .fase-cell{text-align:left;font-weight:700;font-size:.76rem;white-space:nowrap;padding:.28rem .6rem}
.crono-table .filled{background:var(--brand);border-radius:3px}
.range-row{display:flex;gap:.8rem;margin-top:.8rem}
.range-box{flex:1;border-radius:8px;padding:.6rem .8rem;font-size:.82rem}
.range-opt{background:#dcfce7;border:1px solid #86efac}
.range-pes{background:#fee2e2;border:1px solid #fca5a5}
.range-box .label{font-size:.7rem;font-weight:700;color:#666;margin-bottom:.2rem}
.range-box .val{font-size:1.1rem;font-weight:900;color:#2d3e1a}
.btn-est-export{background:#2d3e1a;color:#fff;border:none;border-radius:8px;padding:.5rem 1.1rem;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;margin-right:.5rem;transition:.15s}
.btn-est-export:hover{background:var(--brand)}
.pf-total-big{font-size:2.5rem;font-weight:900;color:var(--brand-d);line-height:1}
.pf-lbl{font-size:.8rem;color:var(--text3);margin-top:.2rem}
.est-gastos-table{width:100%;border-collapse:collapse;font-size:.84rem;margin-bottom:.3rem}
.est-gastos-table td{padding:.28rem .5rem;border-bottom:1px solid var(--gray2)}
.est-gastos-table .total-gasto-row td{background:var(--brand-xs);font-weight:700}
.inp-gasto{width:100%;max-width:140px;padding:.28rem .5rem;border:1.5px solid var(--gray2);border-radius:6px;font-family:inherit;font-size:.83rem;text-align:right}
.est-tci-table{width:100%;border-collapse:collapse;font-size:.86rem;margin-top:.5rem}
.est-tci-table th{background:#2d3e1a;color:#fff;padding:.35rem .6rem;text-align:left;font-size:.76rem}
.est-tci-table td{padding:.32rem .6rem;border-bottom:1px solid var(--gray2)}
.est-tci-table tr.tci-ch td{background:#eff6ff}
.est-tci-table tr.tci-gastos td{background:#faf5ff}
.est-tci-table tr.tci-total td{background:#2d3e1a;color:#fff;font-weight:900}
.factor-box{border-radius:10px;padding:.8rem 1rem;margin-top:.8rem;border:1.5px solid}
.factor-ok{background:#dcfce7;border-color:#86efac}
.factor-high{background:#fee2e2;border-color:#fca5a5}
.factor-neutral{background:var(--brand-xs);border-color:var(--brand)}
.lbl-est{font-size:.78rem;font-weight:700;color:var(--text2);margin-bottom:.25rem;display:block}
.inp-est{width:100%;padding:.5rem .7rem;border:1.5px solid var(--gray2);border-radius:7px;font-family:inherit;font-size:.88rem;background:#fff}
.inp-est:focus{border-color:var(--brand);outline:none}
