.saved-results{margin-block:1.5rem;padding:1.25rem;border:1px solid var(--hair);border-radius:.75rem;overflow-wrap:break-word}
.saved-results label{display:block;margin-block:1rem}.saved-results input[type=text]{display:block;width:100%;max-width:30rem;font:inherit;padding:.6rem}.saved-results input[type=checkbox]{margin-right:.5rem}
.saved-results button,.saved-results a{margin:.4rem .6rem .4rem 0}.saved-results dt{font-weight:600;margin-top:.7rem}.saved-results dd{margin-left:0;white-space:pre-wrap}.saved-results article{padding-block:1rem;border-bottom:1px solid var(--hair)}
.saved-results--inline{margin:1.25rem 0;padding:1.1rem 1.15rem;background:var(--soft)}
.saved-results--inline h2{font-size:1.25rem;margin-bottom:.55rem}.saved-results--inline>p{font-size:.925rem;line-height:1.55;margin-bottom:.65rem}
.result-panel{position:relative}.tool-favourite-control{margin:0;padding:0;border:0}.tool-favourite-button{position:absolute;top:1rem;right:1rem;width:44px;height:44px;padding:0;border:1px solid var(--hair);border-radius:50%;background:var(--card);color:var(--ink);font-size:1.45rem;line-height:1;box-shadow:var(--shadow-sm)}
.tool-favourite-button:hover{background:var(--soft);border-color:var(--line-ink)}.tool-favourite-button[aria-pressed=true]{color:var(--line-ink);background:var(--soft);border-color:var(--line-ink)}
.tool-favourite-status:empty,.tool-favourite-content:empty{display:none}.tool-favourite-status,.tool-favourite-content{padding-right:3.25rem;font-size:.875rem}.tool-favourite-status{margin:0 0 .75rem}.tool-favourite-content{margin-bottom:.75rem}
@media(max-width:560px){.saved-results--inline{padding:1rem}.tool-favourite-button{top:.75rem;right:.75rem}}
.save-invitation-dialog{max-width:32rem;width:calc(100% - 2rem);padding:1.5rem;border:1px solid var(--hair);border-radius:16px;background:var(--card);color:var(--ink)}.save-invitation-dialog::backdrop{background:rgba(0,0,0,.4)}.save-invitation-dialog p{line-height:1.6}.save-invitation-dialog .btn{margin:0 0 1rem}
.save-invitation-dialog{max-height:90vh;overflow:auto}
.save-invitation-dialog h2{font-size:1.45rem;line-height:1.2;margin:0 0 .5rem}.save-invitation-dialog h2:focus{outline:none}
.save-invitation-lead{color:var(--muted);font-size:.95rem;margin:0 0 1rem}.save-invitation-lead:empty{display:none}
.save-invitation-field{margin:0 0 .85rem}.save-invitation-field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.3rem}
.save-invitation-field input{display:block;box-sizing:border-box;width:100%;min-height:44px;font:inherit;padding:.6rem .75rem;border:1px solid var(--field-border);border-radius:10px;background:var(--paper);color:var(--ink)}
.save-invitation-check{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;margin:.25rem 0 .75rem}.save-invitation-check input{flex:0 0 auto;width:20px;height:20px;margin:.15rem 0 0}
.save-invitation-dialog .save-invitation-legal{font-size:.875rem;line-height:1.5;color:var(--muted);margin:0 0 .6rem}
.save-invitation-dialog .btn.primary{width:100%;margin:0 0 .75rem}.save-invitation-dialog .save-invitation-close{width:100%;margin:.25rem 0 0}
.save-invitation-dialog .save-invitation-switch{font-size:.9rem;margin:0 0 .5rem;display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:center}
.save-invitation-link{background:none;border:0;padding:.35rem 0;min-height:44px;font:inherit;font-weight:600;color:var(--brand);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.save-invitation-link:disabled{color:var(--muted);text-decoration:none;cursor:not-allowed}
.save-invitation-dialog .save-invitation-fineprint{font-size:.875rem;color:var(--muted);margin:0 0 .75rem}
#save-invitation-status{font-size:.9rem;margin:0 0 .85rem;padding:.6rem .75rem;border-radius:10px;background:var(--soft)}#save-invitation-status:empty{display:none}
@media(max-width:560px){.save-invitation-dialog{padding:1.15rem;width:calc(100% - 1.25rem);max-height:92vh}.save-invitation-dialog h2{font-size:1.3rem}}
/* Sign-up and review polish: one brand primary colour, clear label spacing, no mid-unit wrapping. */
.save-invitation-dialog .btn.primary,.saved-results .btn.primary{background:var(--brand);color:var(--brand-text);border-color:var(--brand);box-shadow:0 7px 18px color-mix(in srgb,var(--brand) 18%,transparent)}
.saved-results label{line-height:1.5}.saved-results input[type=text]{margin-top:.55rem;box-sizing:border-box}
.saved-results-cancel{background:none;border:0;padding:.35rem 0;min-height:44px;font:inherit;font-weight:600;color:var(--brand);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.save-invitation-dialog .save-invitation-resend{margin:0;min-height:44px}.save-invitation-dialog .save-invitation-resend:disabled{opacity:.65;cursor:not-allowed}
/* Wrap only between words so an amount and its unit (S$1,000/mth) stay together; long verdicts still wrap. */
.result-panel .val{overflow-wrap:normal;word-break:normal}
@media(max-width:420px){.result-panel .val{font-size:clamp(.9375rem,4.8vw,1.3125rem)}}
/* A reopened snapshot on My Saved Results: titled, marked and scrolled to, with Back controls at both ends. */
.saved-results .saved-result-view{scroll-margin-top:1rem;margin-top:.5rem;padding:.25rem 0 .5rem 1rem;border-bottom:0;border-left:4px solid var(--brand)}
.saved-result-view>h3{font-size:1.35rem;line-height:1.25;margin:0 0 .5rem}.saved-result-view h4{margin:1rem 0 .25rem}
/* wave1: the favourite control is a labelled pill in the flow (not an icon over the headline), and saves show a clear confirmation. */
.tool-favourite-control{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;margin:0 0 .75rem}.tool-favourite-button{position:static;order:-1;width:auto;height:auto;min-height:44px;padding:.35rem .95rem;border-radius:999px;display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;font-weight:600}.tool-favourite-star{font-size:1.2rem;line-height:1}.tool-favourite-status,.tool-favourite-content{flex-basis:100%;padding-right:0;text-align:right}
.save-confirmation{padding:.65rem .8rem;border-left:4px solid var(--line-ink);background:var(--soft);border-radius:8px}.save-confirmation a,.tool-favourite-status a{font-weight:600}
@media(max-width:560px){.tool-favourite-control{justify-content:flex-start}.tool-favourite-status,.tool-favourite-content{text-align:left}}
/* Panel fixes: names exactly as typed, a full-size consent target with the site's own error, and no sticky bar over Save. */
.saved-result-name{text-transform:none}
.saved-results .saved-results-consent{display:flex;align-items:center;gap:.7rem;min-height:44px;margin:1rem 0 .25rem;cursor:pointer}.saved-results .saved-results-consent input[type=checkbox]{flex:0 0 auto;width:24px;height:24px;margin:0;accent-color:var(--brand)}
.saved-results .field-error{margin:.25rem 0 .75rem;color:var(--danger,var(--line-ns-ink));font-size:.9rem;font-weight:600}.saved-results .field-error[hidden]{display:none}
.saved-results .save-confirmation:focus{outline:2px solid var(--brand);outline-offset:2px}
.saved-result-recalc-note{font-size:.9rem;color:var(--muted);margin:.25rem 0 .5rem}
body.saved-results-open .mobile-action{visibility:hidden;opacity:0;pointer-events:none}
@media(max-width:560px){.saved-results--inline .save-confirmation{padding:.6rem .65rem}}
.saved-results .saved-results-consent input:focus-visible,.saved-results .saved-results-consent input[aria-invalid=true]:focus{outline:3px solid var(--brand);outline-offset:2px}
/* Very narrow layouts (phone with large text): give the words the width instead of nested padding. */
@media(max-width:360px){.saved-results--inline{padding:.75rem .6rem;border-radius:.6rem}.saved-results--inline .save-confirmation{padding:.5rem .55rem;border-left-width:3px}.saved-results .saved-results-consent{gap:.5rem;align-items:flex-start}}
/* My Plans rows (D38): tool name and saved headline under each name, and an inline rename form. */
.saved-results .saved-result-meta{margin:.1rem 0 .15rem;color:var(--muted);font-size:.95rem}
.saved-results .saved-result-meta strong{color:var(--ink);font-weight:700;white-space:nowrap}
.saved-results .saved-result-rename{margin:.5rem 0 .75rem;padding:.75rem;border-radius:10px;background:var(--soft)}
.saved-results .saved-result-rename label{margin-block:0 .25rem;font-weight:600}
.saved-results .saved-result-rename-note{font-size:.9rem;color:var(--muted);margin:.25rem 0 .5rem}
/* Arrival from a plan email sent without figures: sign in to fill in the saved numbers. */
.saved-link-note{margin:0 0 1rem;padding:.85rem 1rem;border:2px solid var(--brand);border-radius:var(--radius);background:var(--card)}.saved-link-note p{margin:0 0 .6rem}.saved-link-note p:last-child{margin:0}.saved-link-note .btn{width:100%;max-width:22rem}

/* Close controls (Oct 2026): a 44px × in the top-right corner, beside the heading. */
.save-invitation-x{position:absolute;top:.5rem;right:.5rem;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--hair);border-radius:50%;background:var(--card);color:var(--ink);font:400 1.6rem/1 'Figtree',sans-serif;cursor:pointer;z-index:1}.save-invitation-x:hover{background:var(--soft)}.save-invitation-dialog h2{padding-right:3rem}
/* Signed-in save: the consent tick sits in a highlighted box so it is hard to miss (review 6 Oct 2026). */
.saved-results .saved-results-consent-prompt{margin:1rem 0 0;font-weight:700}
.saved-results .saved-results-consent{margin-top:.4rem;padding:.6rem .8rem;border:2px solid var(--sun);border-radius:.75rem;background:var(--tile-butter);color:var(--ink)}
