.fm-shell { width:min(92%,960px); margin:32px auto 64px; }
.fm-back { font-size:.9rem; color:var(--verde-medio); text-decoration:underline; text-underline-offset:4px; }
.fm-intro { margin:28px 0; }
.fm-intro h1 { font-size:clamp(2rem,5vw,3.3rem); max-width:none; }
.fm-intro p:last-child { margin:12px 0 0; color:#526159; }
.fm-intro .eyebrow { font-size:.8rem; color:#785b17; }
.fm-progress-head { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 20px; font-size:.875rem; }
#fm-save { color:#536258; }
#fm-progress { display:block; width:100%; height:7px; border:0; border-radius:10px; overflow:hidden; margin:12px 0 16px; background:var(--borda); color:var(--verde); }
#fm-progress::-webkit-progress-bar { background:var(--borda); }
#fm-progress::-webkit-progress-value { background:var(--verde); }
#fm-progress::-moz-progress-bar { background:var(--verde); }
#fm-steps { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:24px; }
#fm-steps button { min-height:44px; padding:8px 12px; border:1px solid var(--borda); border-radius:8px; font-size:.875rem; background:transparent; color:var(--verde); }
#fm-steps button[aria-current=step] { background:var(--verde); border-color:var(--verde); color:var(--fundo); }
#fm-steps button:disabled { color:#74766c; cursor:default; border-style:dashed; }
.fm-panel { border:1px solid var(--borda); background:#fff; padding:clamp(20px,4vw,38px); border-radius:16px; box-shadow:var(--sombra); }
.fm-panel h2 { font-size:clamp(1.6rem,4vw,2.3rem); scroll-margin-top:140px; }
.fm-panel h3 { font-size:1.4rem; }
.fm-panel p { margin-top:0; }
.fm-muted,.fm-hint { color:#536258; }
.fm-hint { display:block; font-size:.875rem; margin-top:6px; }
.fm-fields { display:grid; gap:24px; margin:26px 0; }
.fm-field label,.fm-field legend { display:block; font-size:1rem; font-weight:700; margin-bottom:8px; color:var(--verde); }
.fm-field input:not([type=radio]),.fm-field textarea,.fm-field select { width:100%; min-height:52px; border:1px solid #a9b4ad; border-radius:8px; padding:12px 14px; background:#fff; color:var(--texto); font-size:1rem; }
.fm-field input[data-money] { font-size:1.25rem; font-variant-numeric:tabular-nums; }
.fm-field textarea { resize:vertical; min-height:100px; }
.fm-field { min-width:0; padding:0; border:0; margin:0; }
.fm-options { display:grid; gap:10px; }
.fm-option { display:flex!important; align-items:center; gap:12px; padding:14px; margin:0!important; min-height:52px; border:1px solid var(--borda); border-radius:9px; font-weight:500!important; cursor:pointer; }
.fm-option:has(input:checked) { border-color:var(--verde); background:#eff4f0; box-shadow:inset 3px 0 var(--verde); }
.fm-option input { width:20px; height:20px; flex-shrink:0; accent-color:var(--verde); }
.fm-callout { padding:18px; background:var(--creme); border-left:3px solid var(--dourado); border-radius:0 8px 8px 0; margin:20px 0; }
.fm-callout p:last-child { margin-bottom:0; }
.fm-actions { display:flex; flex-wrap:wrap; gap:12px; border-top:1px solid var(--borda); padding-top:24px; margin-top:28px; }
.fm-actions .btn { flex:1; white-space:normal; }
.fm-actions .btn-secondary { background:white; }
.fm-actions .btn-secondary:hover { background:var(--verde); }
.fm-error { color:#9e3025; font-weight:600; }
.fm-metrics { display:grid; gap:12px; margin:24px 0; }
.fm-metric { padding:22px; border:1px solid var(--borda); border-radius:12px; background:var(--fundo); min-width:0; }
.fm-metric dt { font-size:.9rem; }
.fm-metric dd { margin:8px 0 0; color:var(--verde); font-size:clamp(1.4rem,3vw,1.8rem); font-weight:700; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.fm-metric small { display:block; font-size:.875rem; font-weight:400; margin-top:6px; color:#536258; }
.fm-metric.fm-highlight { background:var(--verde); color:var(--fundo); }
.fm-metric.fm-highlight dd { color:var(--dourado); }
.fm-metric.fm-highlight small { color:#d4ded6; }
.fm-breakdown { margin:20px 0; }
.fm-breakdown div { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--borda); }
.fm-breakdown dd { margin:0; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.fm-meter { height:12px; border-radius:20px; background:var(--borda); overflow:hidden; margin:10px 0; }
.fm-meter span { display:block; height:100%; background:var(--verde-medio); }
.fm-plan { background:var(--verde); color:var(--fundo); padding:clamp(20px,4vw,32px); border-radius:12px; margin:28px 0; }
.fm-plan h3 { color:var(--dourado); }
.fm-plan dt { color:#d6ddcd; font-size:.875rem; margin-top:18px; }
.fm-plan dd { margin:4px 0 0; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; }
.fm-edit-grid { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.fm-edit-grid button { background:white; color:var(--verde); border:1px solid var(--borda); border-radius:8px; min-height:44px; padding:8px 14px; }
.fm-privacy { font-size:.875rem; color:#536258; margin-top:24px; }
.fm-disclaimer { border-top:1px solid #476154; padding-top:28px; margin-top:32px; font-size:.875rem; }
.fm-reset { border:1px solid var(--borda); border-radius:12px; padding:22px; max-width:440px; width:90%; color:var(--texto); }
.fm-reset::backdrop { background:rgba(10,32,26,.6); }
.fm-reset h2 { font-size:1.6rem; }
@media(min-width:640px) { .fm-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } .fm-fields.fm-two { grid-template-columns:1fr 1fr; } .fm-actions .btn { flex:0 1 auto; } .fm-actions .btn:last-child { margin-left:auto; } }
@media(max-width:400px) { #fm-steps { gap:4px; } #fm-steps button { padding:7px 9px; } .fm-breakdown div { flex-wrap:wrap; gap:0 12px; } }
