:root{--green:#537c73;--blue:#324d63;--ink:#353535;--paper:#f6f7f5;--line:#d9e1df;--soft:#eaf1ee;--muted:#52645f;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,select{font:inherit}button,input,select,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--blue)}:focus-visible{outline:3px solid #276c99;outline-offset:4px}.shell{width:min(1160px,calc(100% - 64px));margin:auto}.header{display:flex;align-items:center;justify-content:space-between;padding:32px 0;gap:24px}.header img{height:auto;max-width:48%}.pill{font-size:.68rem;letter-spacing:.12em;font-weight:700;border:1px solid var(--line);border-radius:30px;padding:10px 14px;color:var(--blue);white-space:nowrap}.intro{padding:20px 0 24px}.eyebrow{color:var(--green);font-size:.7rem;font-weight:700;letter-spacing:.15em;margin:0 0 16px}h1{font-size:clamp(2.2rem,4.8vw,3.75rem);font-weight:500;letter-spacing:-.055em;line-height:1.08;color:var(--blue);margin:0 0 20px}.lead{font-size:1.1rem;color:var(--muted);line-height:1.6;margin:0}h2{font-size:1.25rem;font-weight:600;line-height:1.35;color:var(--blue);margin:0 0 18px}.notice{background:#fff2d9;border-left:4px solid #947024;padding:18px 22px;font-size:.95rem;line-height:1.6;border-radius:4px;margin-bottom:28px}.layout{display:grid;grid-template-columns:minmax(0,1.13fr) minmax(0,1fr);gap:24px;align-items:start}.inputs,.results{display:grid;gap:20px}.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:28px}.step{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;background:var(--soft);color:var(--green);border-radius:50%;font-size:.85rem;margin-right:7px}.muted,small{color:var(--muted);font-size:.82rem;line-height:1.55}.muted{margin:0 0 18px}small{display:block;margin-top:7px}label{display:block;font-size:.86rem;font-weight:600;line-height:1.5;margin-top:18px}label small{font-weight:400}input:not([type=radio]):not([type=checkbox]),select{width:100%;min-height:48px;margin-top:8px;padding:12px;border:1px solid #aebfba;border-radius:8px;background:#fff;color:var(--ink)}input[aria-invalid=true]{border-color:#a03c32;background:#fff9f8}input[type=radio],input[type=checkbox]{accent-color:var(--green);width:18px;height:18px;flex-shrink:0;margin:3px 0 0}.money-input{position:relative;display:block}.money-input input{padding-right:32px!important}.money-input>span{position:absolute;right:14px;top:22px;color:var(--muted);font-weight:400}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.two label{min-width:0}.mode,.family,.economic-switch{border:0;padding:0;margin:0;min-width:0}.mode-option{display:flex;align-items:start;gap:10px;padding:16px;border:1px solid var(--line);border-radius:10px;margin-top:10px;cursor:pointer}.mode-option:has(input:checked){border-color:var(--green);background:var(--soft)}.mode-option small{margin-top:4px}.hint{background:var(--soft);color:#334d44;font-size:.84rem;line-height:1.6;padding:14px;border-radius:8px;margin:16px 0 0}.check{display:flex;align-items:start;gap:10px;font-weight:400}.check span{flex:1}.family{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.family legend{font-size:.95rem;font-weight:600;color:var(--blue);padding-top:24px}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}.actions .muted{margin:0;font-size:.75rem}button{background:var(--green);color:white;border:1px solid var(--green);border-radius:8px;min-height:44px;padding:11px 16px;font-weight:600;font-size:.82rem}button:hover:not(:disabled){background:var(--blue)}button.secondary{color:var(--blue);background:white;border-color:#aebfba}button.secondary:hover:not(:disabled){background:var(--soft)}button.text-button{background:none;color:var(--blue);border:0;padding-left:0;text-decoration:underline;margin-top:14px}details{border-top:1px solid var(--line);margin-top:20px;padding-top:16px;font-size:.82rem;line-height:1.6}summary{cursor:pointer;color:var(--blue);font-weight:600;min-height:28px}details p{margin:12px 0 0}.error{color:#99372c;font-size:.8rem;line-height:1.5}.error:empty{display:none}.reference{display:block;font-size:.75rem;color:var(--green);font-weight:400;margin-top:5px}.result-panel>h2{font-size:1.65rem;letter-spacing:-.025em;font-weight:500}.status{padding:11px 13px;border-radius:8px;background:var(--soft);color:#29493e;font-size:.83rem;font-weight:600;line-height:1.5;margin-bottom:12px}.status[data-kind=blocked]{background:#fff2d9;color:#795823}.hero-result{background:var(--blue);color:white;border-radius:12px;padding:24px;margin:22px 0}.hero-result>span{font-size:.77rem;color:#e4efeb}.hero-result output{display:block;font-size:2.5rem;letter-spacing:-.045em;font-weight:600;margin:14px 0}.hero-result small{color:#e4efeb;font-size:.73rem}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric{border:1px solid var(--line);border-radius:10px;padding:16px;min-width:0}.metric>span{font-size:.72rem;color:var(--muted);line-height:1.4;display:block}.metric output{display:block;color:var(--blue);font-size:1.2rem;font-weight:600;margin:10px 0;overflow-wrap:anywhere}.metric small{font-size:.7rem}.timing{font-size:1.5rem;font-weight:600;color:var(--green);margin:0 0 12px}.privacy{display:flex;align-items:start;gap:12px;padding:0 8px;color:var(--muted);font-size:.78rem;line-height:1.6}.privacy p{margin:0}.privacy>span{color:var(--green);font-size:1.3rem}.projects{margin-top:28px}.section-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}.projects>label{max-width:650px}.project-info{margin-top:22px;color:var(--blue)}.project-info p{font-size:.85rem;line-height:1.6}.economic-switch{display:flex;gap:16px;flex-wrap:wrap;margin-top:24px}.economic-switch legend{font-weight:600;font-size:.9rem}.economic-switch label{display:flex;gap:8px;font-weight:400}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;margin-top:20px}table{border-collapse:collapse;width:100%;text-align:left;font-size:.82rem;line-height:1.5}caption{text-align:left;color:var(--blue);padding:16px;font-weight:600}th,td{padding:14px;border-top:1px solid var(--line);vertical-align:top}th{background:var(--soft)}.economic-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:22px}.economic-metrics>div{padding:14px;background:var(--paper);border-radius:8px}.economic-metrics span,.economic-metrics strong{display:block;font-size:.8rem;line-height:1.6}.economic-metrics strong{color:var(--blue);margin-top:8px}.economic-metrics small{font-size:.7rem}footer{display:flex;justify-content:space-between;gap:16px;padding:30px 0;color:var(--muted);font-size:.72rem}.skip{position:fixed;top:8px;left:8px;padding:12px;background:var(--blue);color:white;transform:translateY(-160%);z-index:10}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}
.intro .eyebrow{margin-bottom:12px;color:var(--blue)}.intro h1{max-width:1000px;font-size:clamp(2rem,3.9vw,3rem);line-height:1.12;letter-spacing:-.035em;margin-bottom:14px}.intro .lead{max-width:88ch;font-size:1rem;line-height:1.55}.intro-bridge{max-width:88ch;margin:12px 0 0;font-size:.95rem;line-height:1.55;color:var(--blue)}.intro-caution{max-width:100ch;margin:10px 0 0;font-size:.875rem;line-height:1.55;color:var(--muted)}
.status[data-kind=neutral]{background:var(--paper);color:var(--muted);font-weight:500}
@media(max-width:850px){.shell{width:calc(100% - 40px)}.layout{grid-template-columns:1fr}.result-panel>h2 br{display:none}.economic-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.shell{width:calc(100% - 28px)}.header{padding:24px 0;gap:10px}.header img{width:160px}.pill{font-size:.56rem;padding:8px;letter-spacing:.04em}.intro{padding-top:10px}h1{font-size:2.35rem}.panel{padding:20px}.two{grid-template-columns:1fr;gap:0}.metrics{gap:8px}.metric{padding:12px}.metric output{font-size:1.08rem}.section-heading{flex-direction:column}.economic-metrics{grid-template-columns:1fr}footer{flex-direction:column}.actions button{flex:1}.notice{font-size:.85rem;padding:14px}.hero-result output{font-size:2.1rem}}

/* Presentation only: salary summary, without changing accepted blocks or amounts. */
#salary-results .proposal-total{grid-column:1/-1}
#salary-results .metric output{white-space:nowrap;overflow-wrap:normal}
#salary-results .salary-caution{margin:16px 0 0}
#salary-results .fiscal-review-status{color:var(--blue);font-weight:600;margin-top:8px}
@media(max-width:380px){#salary-results .metric output{font-size:1rem}}

/* Beta presentation: no changes to fiscal calculations or the known-data block. */
.intro h1{text-wrap:balance}
.beta-note{color:var(--muted);font-size:.85rem;line-height:1.6;max-width:105ch;margin:0 0 26px}
.beta-note strong{color:var(--blue)}
#salary-results .proposal-pair{margin-top:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}
#salary-results .proposal-pair .proposal-total{grid-column:auto}
#salary-results .chosen-outlay{font-size:.86rem;color:var(--muted);line-height:1.55;margin:12px 0 16px}
#salary-results .chosen-outlay strong{color:var(--blue);font-size:1rem;white-space:nowrap}
#salary-results .metric-saving{background:var(--blue);border-color:var(--blue)}
#salary-results .metric-saving>span,#salary-results .metric-saving output{color:#fff}
#salary-results .metric-remaining{background:#f4ead6;border-color:#dfceaa}
#salary-results .metric-remaining>span,#salary-results .metric-remaining output{color:#5f4925}
#salary-results .metric-saving output,#salary-results .metric-remaining output{font-size:clamp(1.05rem,1.7vw,1.4rem)}
.actions #tracking{flex:1;min-width:150px;line-height:1.5}
@media(max-width:600px){#salary-results .proposal-pair{grid-template-columns:1fr}}

/* Final responsive composition: accepted input panels keep their content and controls. */
.header{padding:20px 0}
.intro{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding:8px 0 18px}
.intro h1{font-size:clamp(2rem,3.5vw,2.6rem);max-width:26ch;margin:0;text-wrap:balance}
.intro .eyebrow{margin-bottom:10px}
.intro-copy{max-width:58ch}
.intro-copy .lead{max-width:none;line-height:1.6}
.intro-copy .intro-bridge{max-width:none;margin:12px 0 0;line-height:1.6}
.beta-note{max-width:none;margin-bottom:22px}
#aportaciones-title{display:flex;align-items:baseline;gap:8px}
#aportaciones-title .step{flex-shrink:0;margin-right:0}
#salary-results .proposal-pair .metric{display:flex;flex-direction:column;justify-content:space-between}
.timeline .timing-intro{font-size:1.18rem;font-weight:600;line-height:1.45;color:var(--blue);margin:0 0 14px}
.timeline .timing{font-size:1.12rem;line-height:1.5;margin:0 0 12px}
.timeline #timing-state{margin:0}
@media(min-width:700px){.intro h1>span{display:block}}
@media(min-width:1200px){.intro{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:48px;align-items:center;padding-bottom:20px}.intro h1{font-size:2.5rem;max-width:none}.intro-copy{max-width:none}.intro-copy .lead{font-size:1.04rem}}
@media(max-width:480px){.header{padding:18px 0}.intro{gap:16px}.intro h1{font-size:2rem;text-wrap:pretty}}

/* Project presentation is scoped to this section. */
.projects h3{font-size:1.12rem;line-height:1.45;color:var(--blue);margin:26px 0 12px}
.projects h4{font-size:.95rem;color:var(--blue);margin:0 0 14px}
.projects p{line-height:1.6}
.projects .project-conditions{max-width:90ch;font-size:.92rem}
.projects .project-outlay{font-size:.9rem;color:var(--muted)}
.projects .project-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.projects .project-metrics output{white-space:nowrap;overflow-wrap:normal;font-size:clamp(1rem,1.6vw,1.35rem)}
.projects .project-highlight{background:var(--blue);border-color:var(--blue)}
.projects .project-highlight>span,.projects .project-highlight output{color:white}
.projects .project-breakdowns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0}
.projects .project-breakdowns>section{min-width:0;border-top:1px solid var(--line);padding-top:18px}
.projects dl{font-size:.85rem;margin:0}
.projects dl>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line)}
.projects dt{line-height:1.5}.projects dd{margin:0;color:var(--blue);font-weight:600;white-space:nowrap;line-height:1.5}
.projects #project-loan-calendar{border:1px solid var(--line);border-radius:8px;overflow:hidden}
.projects .project-cashflows{table-layout:fixed;font-variant-numeric:tabular-nums}
.projects .project-cashflows caption{font-size:.82rem;line-height:1.6}
.projects .project-cashflows th,.projects .project-cashflows td{padding:12px 10px;font-size:.8rem}
.projects .project-cashflows td{white-space:nowrap}
.projects .project-calendar-mobile{display:none}
.projects .project-milestone{border-left:3px solid var(--green);padding:4px 0 4px 18px;margin-top:20px;font-size:.85rem}
.projects .project-milestone h4{margin:8px 0}.projects .project-milestone p{margin:10px 0}
.projects .project-joint{border-top:1px solid var(--line);margin-top:28px}
.projects .project-joint .hint{margin:12px 0 18px}
.projects .project-tax-note{font-size:.82rem;color:var(--muted)}
@media(max-width:1000px){.projects .project-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
  .projects .project-breakdowns{grid-template-columns:1fr;gap:18px}
  .projects .project-calendar-desktop{display:none}
  .projects .project-calendar-mobile{display:block;min-width:0}
  .projects .project-cashflows-reduced{table-layout:auto}
  .projects .project-cashflows-reduced th,.projects .project-cashflows-reduced td{padding:10px 5px}
  .projects .project-cashflows-reduced td,.projects .project-cashflows-reduced thead th:not(:first-child){text-align:right}
  .projects #project-calendar-details{margin:0;padding:14px 10px}
  .projects #project-scroll-help{margin:12px 0;font-size:.8rem}
  .projects .project-calendar-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:4px}
  .projects .project-calendar-scroll .project-cashflows{min-width:620px}
}
@media(max-width:480px){.projects .project-metrics{grid-template-columns:1fr}.projects .project-metrics output{font-size:1.35rem}.projects .project-milestone{padding-left:12px}}

/* Two-step entry and an optional date, without changing result cards. */
.numbered-heading{display:flex;align-items:baseline;gap:8px}
.numbered-heading .step{flex-shrink:0;margin-right:0}
.fiscal-context{margin:14px 0;color:var(--blue)}
.investment-date{border:0;padding:0;margin:0 0 22px;min-width:0}
.investment-date legend{font-size:.9rem;color:var(--blue);font-weight:600;line-height:1.5}
.investment-date label{margin-top:14px}
.investment-date .hint{margin-top:12px}

/* Investment modalities: scoped to the existing project selector. */
.projects .project-tickets{border:0;padding:0;margin:24px 0 0;min-width:0;max-width:650px}
.projects .project-tickets legend{font-size:.95rem;font-weight:600;color:var(--blue);padding:0}
.projects .project-tickets .mode-option{font-weight:400}
.projects .project-tickets .muted{margin:12px 0 0}
.projects .project-tickets span{min-width:0;overflow-wrap:anywhere}
