/* Public pages: logged-out landing intro, free Sandbox, margin and loan calculators.
   Uses the shared theme variables from style.css; nothing here targets the signed-in app. */

/* Link buttons: Sign in / Get FolioVIP */
.public-actions{display:flex;gap:8px;align-items:center;flex-wrap:nowrap}
.public-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);font-size:13px;font-weight:550;text-decoration:none;white-space:nowrap}
.public-btn:hover,.public-btn:focus-visible{border-color:var(--accent)}
.public-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.public-btn-primary:hover,.public-btn-primary:focus-visible{filter:brightness(1.08);border-color:var(--text)}
header .public-btn{background:#1d2a41;color:#eef5ff;border-color:#405778}
header .public-btn-primary{background:var(--accent);color:#0b101b;border-color:var(--accent)}
body.light header .public-btn{background:var(--panel);color:var(--text);border-color:var(--border)}
body.light header .public-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}

/* Standalone public page shell (margin and loan calculators) */
.public-page>header{flex-wrap:wrap}
.public-page>header .brand{margin-right:auto;display:grid;color:inherit;text-decoration:none;line-height:1.25}
.public-page>header .brand strong{margin:0}
.public-page>header .brand span{font-size:11px;letter-spacing:.6px;opacity:.8}
.public-nav{display:flex;gap:4px;flex-wrap:wrap}
.public-nav a{color:inherit;text-decoration:none;font-size:14px;padding:6px 10px;border-radius:8px;opacity:.85}
.public-nav a:hover,.public-nav a[aria-current=page]{opacity:1;background:#ffffff14}
body.light .public-nav a:hover,body.light .public-nav a[aria-current=page]{background:#00000010}
.public-page>header #theme{padding:6px 10px;font-size:13px;min-height:36px}
.public-main{max-width:1240px;margin:28px auto 0;padding:0 24px}
.public-main>.margin-calculator,.public-tool>.margin-calculator{margin-top:0}

/* Hero and SEO copy */
.public-hero{margin:8px 0 22px;max-width:760px}
.public-hero .eyebrow{margin:0 0 6px}
.public-hero h1{font-size:clamp(30px,4.4vw,46px);letter-spacing:-1.2px;line-height:1.1;margin:0 0 10px}
.public-lede{font-size:17px;line-height:1.55;margin:0;max-width:680px}
.public-hero-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.public-nojs{border:1px dashed var(--border);border-radius:14px;padding:18px;font-size:14px}
.public-guide{margin:34px 0}
.public-guide>h2{font-size:24px;letter-spacing:-.4px;margin:0 0 6px}
.public-guide>p{max-width:760px}
.public-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.public-guide-grid.public-guide-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.public-guide-grid section{border:1px solid var(--border);border-radius:14px;padding:16px 18px;background:var(--bg)}
.public-guide-grid h3{font-size:15px;margin:0 0 6px}
.public-guide-grid p{font-size:14px;line-height:1.55;margin:0}
.public-disclaimer{font-size:13px;border-left:3px solid var(--accent);padding:6px 0 6px 12px;margin:20px 0 0;max-width:760px}
.public-cross{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.public-cross h2{margin:0 0 4px;font-size:19px}
.public-cross p{margin:0}
/* Calculators: one small line under the hero (estimates only · not advice, or Budget-Calc's sample-numbers note). */
.calc-note{margin:-10px 0 18px;font-size:13px;line-height:1.5;color:var(--muted)}
.calc-note a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.calc-note a:hover,.calc-note a:focus-visible{color:var(--accent)}
.public-footer{max-width:1240px;margin:20px auto 0;padding:22px 24px 120px;border-top:1px solid var(--border);display:flex;gap:10px 22px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted)}
.public-footer a{color:var(--muted)}
.public-footer span{margin-right:auto}

/* Reserved ad slots: collapsed (no layout gap) until FOLIO_ADS_CLIENT is configured. */
body:not([data-ads="on"]) .ad-slot{display:none}
.ad-slot{display:block;margin:22px auto;max-width:970px;min-height:100px;border:1px dashed var(--border);border-radius:12px;padding:6px 10px;text-align:center}
.ad-label{display:block;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}

/* Sandbox: header actions take the old "Lock app" grid cell; intro sits above the demo. */
.sandbox-public-hero{margin:4px 0 22px}
.sandbox-public-hero .public-lede{font-size:16px}
body.signed-in>main>.sandbox-public-hero{max-width:900px}
.sandbox-about{margin-top:40px}

/* Logged-out landing: product overview (inside #login, so it hides when signed in). */
.public-intro{margin-top:56px;padding-top:36px;border-top:1px solid var(--border)}
.public-intro h2{font-size:24px;letter-spacing:-.4px;margin:0 0 4px}
.public-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 34px;padding:0;list-style:none}
.public-features li{border:1px solid var(--border);border-radius:14px;padding:14px 16px;background:color-mix(in srgb,var(--panel) 82%,transparent)}
.public-features strong{display:block;font-size:15px;margin-bottom:4px}
.public-features span{display:block;font-size:14px;line-height:1.5;color:var(--muted)}
.public-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 34px}
.public-tool-card{display:block;border:1px solid var(--border);border-radius:14px;padding:16px;text-decoration:none;color:var(--text);background:color-mix(in srgb,var(--panel) 82%,transparent)}
.public-tool-card:hover,.public-tool-card:focus-visible{border-color:var(--accent)}
.public-tool-card strong{display:block;font-size:16px}
.public-tool-card span{display:block;font-size:14px;line-height:1.5;color:var(--muted);margin-top:4px}
.public-tool-card em{display:block;font-style:normal;color:var(--accent);font-size:13px;margin-top:10px;font-weight:600}
.public-get-started{border:1px solid var(--accent);border-radius:16px;padding:20px;background:color-mix(in srgb,var(--accent) 9%,var(--panel))}
.public-get-started h2{margin:0 0 6px}
.public-get-started p{margin:0 0 14px}
.public-get-started .public-hero-links{margin-top:0}
.public-badge{display:inline-block;font-size:11px;letter-spacing:1px;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);border-radius:99px;padding:2px 9px;margin-left:8px;vertical-align:middle}

@media(max-width:1000px){.public-guide-grid,.public-guide-grid.public-guide-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
 .public-page>header{gap:10px}
 .public-nav{order:5;width:100%}
 .public-main{padding:0 16px;margin-top:20px}
 .public-footer{padding:20px 16px 110px}
}
@media(max-width:560px){
 .public-features,.public-tools,.public-guide-grid,.public-guide-grid.public-guide-grid-4{grid-template-columns:1fr}
 .public-tool>.margin-calculator{padding:18px 14px}
 .public-guide{padding:20px 16px}
 .public-btn{min-height:34px;padding:5px 9px;font-size:12px}
 .public-actions{gap:6px}
 .public-lede{font-size:16px}
}
@media(max-width:400px){.public-btn{font-size:11px;padding:5px 7px}}
@media(pointer:coarse){.public-btn{min-height:44px}}
body.signed-in>header .public-actions{padding:0;min-height:0;justify-self:end}
.sandbox-notify-note{font-size:13px;margin:14px 0 10px;flex-basis:100%}

/* Landing page (signed-out "/"): free tools first, previews of each area, member sign-in secondary. */
#login.landing{max-width:1240px;margin:28px auto 0;padding:0}
.landing h1{font-size:clamp(32px,4.6vw,52px);line-height:1.08;letter-spacing:-1.6px;margin:0 0 14px}
.landing h2{font-size:clamp(22px,2.6vw,28px);letter-spacing:-.5px;margin:0 0 16px}
.landing-hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px;align-items:center;padding:12px 0 8px}
.landing-copy .eyebrow{margin:0 0 10px}
.landing-lede{font-size:18px;line-height:1.55;margin:0 0 22px;max-width:560px}
.landing-ctas{display:flex;gap:12px;flex-wrap:wrap}
.landing-btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:10px 20px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text);font-size:16px;font-weight:600;text-decoration:none}
.landing-btn:hover,.landing-btn:focus-visible{border-color:var(--accent)}
.landing-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-size:17px;padding:12px 24px;box-shadow:0 10px 28px -12px var(--accent)}
.landing-btn-primary:hover,.landing-btn-primary:focus-visible{filter:brightness(1.08);border-color:var(--text)}
.landing-note{font-size:13px;margin:12px 0 0;letter-spacing:.2px}
.landing-trust{display:flex;align-items:center;gap:6px;font-size:13px;margin:6px 0 0;letter-spacing:.2px;color:var(--muted)}
.landing-trust svg{flex:none;color:var(--accent)}
.landing-signin{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:30px;padding-top:18px;border-top:1px solid var(--border);max-width:560px}
.landing-signin-label{font-size:14px;color:var(--muted)}
#login.landing #signin{background:transparent;color:var(--text);border:1px solid var(--border);font-weight:600;padding:8px 14px;font-size:14px}
#login.landing #signin:hover,#login.landing #signin:focus-visible{border-color:var(--accent)}
.landing-signin #setupNote,.landing-signin #fileHelp{flex-basis:100%;margin:0;font-size:13px}
.landing-signin #setupNote:empty{display:none}
#login.landing .remember-device{flex-basis:100%;display:inline-flex;align-items:center;gap:8px;margin:2px 0 0;font-size:13px;line-height:1.4;color:var(--muted);cursor:pointer;width:fit-content}
#login.landing .remember-device input{width:15px;height:15px;margin:0;padding:0;flex:none;accent-color:var(--accent);cursor:pointer}
.landing-shot{position:relative;display:block;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--panel);box-shadow:0 28px 60px -28px #000c,0 0 0 6px color-mix(in srgb,var(--panel) 60%,transparent);text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.landing-shot img,.landing-tool img,.landing-feature-shot{display:block;width:100%;height:auto}
.landing-shot:hover,.landing-shot:focus-visible{transform:translateY(-3px);box-shadow:0 34px 70px -28px #000d,0 0 0 6px color-mix(in srgb,var(--accent) 30%,transparent)}
.landing-shot picture{display:block}
body.light .landing-shot>picture:has(+picture img[data-theme-img=light]){display:none}
.landing-why{font-family:var(--mix-sans);text-wrap:balance;font-size:clamp(24px,3vw,34px);line-height:1.15;letter-spacing:-.02em;font-weight:500;margin:-4px 0 20px;color:var(--text)}
.landing-tools{margin:56px 0 0}
.landing-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.landing-tool-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.landing-also{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 0;font-size:14px;line-height:1.4}
.landing-also span{border:1px solid var(--border);border-radius:4px;padding:5px 11px;color:var(--text)}
.landing-also .landing-also-label{border:0;padding:0 6px 0 0;color:var(--muted);font-weight:600}
.landing-tool{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--panel);color:var(--text);text-decoration:none;transition:border-color .2s,transform .2s}
.landing-tool:hover,.landing-tool:focus-visible{border-color:var(--accent);transform:translateY(-2px)}
.landing-tool img{aspect-ratio:16/8;object-fit:cover;object-position:top left;border-bottom:1px solid var(--border)}
.landing-tool-text{display:grid;gap:6px;padding:16px 18px 18px}
.landing-tool-text strong{font-size:18px}
.landing-tool-text span{color:var(--muted);font-size:15px;line-height:1.5}
.landing-tool-text em{font-style:normal;color:var(--accent);font-weight:600;font-size:15px;margin-top:4px}
.landing-features{margin:64px 0 0}
.landing-feature{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:36px;align-items:center;margin:0 0 44px}
.landing-feature-flip{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}
.landing-feature-flip .landing-feature-text{order:2}
.landing-feature-text h3{font-size:22px;letter-spacing:-.3px;margin:0 0 8px}
.landing-feature-text p{font-size:16px;line-height:1.6;margin:0 0 12px}
.landing-feature-text a{color:var(--accent);font-weight:600;text-decoration:none}
.landing-feature-text a:hover{text-decoration:underline}
.landing-feature-shot{border-radius:14px;border:1px solid var(--border);box-shadow:0 22px 50px -30px #000c}
.landing-pill{display:inline-block;font-size:12px;letter-spacing:.6px;text-transform:uppercase;border:1px solid var(--border);border-radius:99px;padding:3px 10px;color:var(--muted)}
.landing-fun{text-align:center;font-size:15px;margin:8px 0 0}
.landing-cta-final{margin-top:48px}
.landing-footer{margin-top:36px}
@media(max-width:900px){
 .landing-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .landing-hero{grid-template-columns:1fr;gap:26px}
 .landing-feature,.landing-feature-flip{grid-template-columns:1fr;gap:16px;margin-bottom:36px}
 .landing-feature-flip .landing-feature-text{order:0}
 .landing-feature-text{order:0}
 .landing-feature .landing-feature-shot{order:1}
}
@media(max-width:640px){
 #login.landing{margin-top:14px}
 .landing-lede{font-size:16px}
 .landing-ctas{flex-direction:column;align-items:stretch}
 .landing-btn{justify-content:center}
 .landing-tool-grid{grid-template-columns:1fr}
 .landing-tools{margin-top:40px}
 .landing-features{margin-top:44px}
}
@media(prefers-reduced-motion:reduce){.landing-shot,.landing-tool{transition:none}.landing-shot:hover,.landing-tool:hover{transform:none}}

/* "Send feedback" (free public pages). The toggle sits in the footer; the form
   opens as a small card pinned to the bottom corner so it is visible wherever
   the footer ends up after the page renders. Works without JavaScript. */
.public-feedback{display:block}
.public-feedback-toggle{position:fixed;z-index:58;right:16px;bottom:calc(16px + var(--feedback-lift,0px) + env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px 0 12px;border:1px solid color-mix(in srgb,var(--gold,#d8bd88) 70%,transparent);border-radius:999px;background:var(--panel);color:var(--text);font:600 13px/1 var(--mix-sans,system-ui,sans-serif);letter-spacing:.2px;cursor:pointer;list-style:none;box-shadow:0 8px 22px -10px #000a;transition:bottom .2s ease,border-color .15s,transform .15s}
.public-feedback-toggle::-webkit-details-marker{display:none}
.public-feedback-toggle svg{color:var(--gold,#d8bd88)}
.public-feedback-toggle:hover{border-color:var(--gold,#d8bd88);transform:translateY(-1px)}
.public-feedback[open]>.public-feedback-toggle{visibility:hidden}
/* App: Ask Folio's round button owns the corner, so the pill sits just left of it; the chat button steps aside
   while the feedback form or its result note is open. */
body.signed-in .app-feedback>.public-feedback-toggle{right:78px}
body:has(#feedback[open]) .folio-chat,body:has(#feedbackStatus:not([hidden])) .folio-chat{display:none!important}
.public-feedback-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
body.light .public-feedback-toggle{background:var(--navy,#14284b);color:#fff;border-color:var(--gold-hi,#d6b36c);box-shadow:0 8px 22px -12px #14213999}
body.light .public-feedback-toggle svg{color:var(--gold-hi,#d6b36c)}
/* The signed-in app shows the pill only once signed in; the landing page never does. */
body:not(.signed-in) .app-feedback{display:none!important}
body.play-mode .public-feedback-toggle,body.play-mode .feedback-prompt{display:none}
.public-feedback-link{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
@media print{.public-feedback-toggle,.feedback-prompt{display:none}}
.public-feedback-panel{position:fixed;z-index:60;right:24px;bottom:calc(24px + var(--feedback-lift,0px) + env(safe-area-inset-bottom));width:min(380px,calc(100vw - 32px));max-height:calc(100vh - 48px - var(--feedback-lift,0px));overflow:auto;display:grid;gap:6px;margin:0;padding:16px 18px 18px;border:1px solid var(--border);border-radius:16px;background:var(--panel);color:var(--text);box-shadow:0 18px 50px #0007,0 2px 8px #0004;font-size:14px;line-height:1.45}
body.light .public-feedback-panel{box-shadow:0 18px 50px #14213930,0 2px 8px #1421391f}
.public-feedback-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}
.public-feedback-head h2{margin:0;font-size:16px;letter-spacing:-.2px}
.public-feedback-panel .public-feedback-field{display:block;min-width:0;width:auto;max-width:none;margin-top:6px;font-size:13px;font-weight:550;color:var(--text)}
.public-feedback-field span{font-weight:400;color:var(--muted)}
.public-feedback-panel textarea,.public-feedback-panel input[type=email]{display:block;width:100%;max-width:none;font:inherit;font-size:14px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:9px 11px}
.public-feedback-panel textarea{min-height:104px;resize:vertical}
.public-feedback-panel textarea:focus-visible,.public-feedback-panel input[type=email]:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.public-feedback-count{justify-self:end;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.public-feedback-count.near{color:var(--chart-gold,#e5cc87)}
.public-feedback-privacy{margin:4px 0 0;font-size:12px;color:var(--muted)}
.public-feedback-error{margin:0;padding:8px 10px;border-radius:10px;border:1px solid var(--chart-red,#ff947f);background:color-mix(in srgb,var(--chart-red,#ff947f) 12%,transparent);font-size:13px}
.public-feedback-error[hidden],.public-feedback-status[hidden]{display:none}
.public-feedback-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.public-feedback-actions .public-btn{min-width:84px;font-size:14px}
.public-feedback-actions .public-btn:disabled{opacity:.7;cursor:progress}
.public-feedback-close{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.public-feedback-close:hover,.public-feedback-close:focus-visible{color:var(--text);border-color:var(--border)}
/* Honeypot: off-screen for people, still present for form-filling bots. */
.public-feedback-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.public-feedback-status{position:fixed;z-index:60;right:24px;bottom:calc(24px + var(--feedback-lift,0px) + env(safe-area-inset-bottom));width:min(380px,calc(100vw - 32px));display:flex;align-items:center;gap:10px;padding:10px 10px 10px 16px;border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:14px;background:var(--panel);color:var(--text);box-shadow:0 14px 40px #0006;font-size:14px}
body.light .public-feedback-status{box-shadow:0 14px 40px #1421392b}
.public-feedback-status p{margin:0;flex:1}
@media(max-width:560px){
 .public-feedback-panel,.public-feedback-status{right:16px;left:16px;bottom:calc(16px + var(--feedback-lift,0px) + env(safe-area-inset-bottom));width:auto}
 .public-feedback-panel{max-height:calc(100vh - 32px - var(--feedback-lift,0px))}
 .feedback-prompt{right:12px;left:12px;width:auto;bottom:calc(12px + var(--feedback-lift,0px) + env(safe-area-inset-bottom))}
 .feedback-face span{font-size:10.5px}
 body.signed-in .app-feedback>.public-feedback-toggle{right:64px}
 .public-feedback-actions .public-btn{min-height:44px;flex:1}
}
@media(prefers-reduced-motion:no-preference){.public-feedback[open]>.public-feedback-panel,.public-feedback-status:not([hidden]){animation:public-feedback-in .16s ease-out}}
@keyframes public-feedback-in{from{opacity:0;transform:translateY(8px)}}
/* "How are we doing?" (feedback-prompt.js): slides out of the bottom-right corner, above the pill. */
.feedback-prompt{position:fixed;z-index:59;right:16px;bottom:calc(64px + var(--feedback-lift,0px) + env(safe-area-inset-bottom));width:min(340px,calc(100vw - 24px));max-height:calc(100vh - 80px - var(--feedback-lift,0px));overflow:auto;padding:14px 16px 16px;border:1px solid var(--border);border-top:3px solid var(--gold,#d8bd88);border-radius:16px;background:var(--panel);color:var(--text);box-shadow:0 18px 50px #0007,0 2px 8px #0004;font-size:14px;line-height:1.45;opacity:0;transform:translateX(24px);transition:opacity .25s ease,transform .25s ease,bottom .2s ease}
.feedback-prompt.in{opacity:1;transform:none}
.feedback-prompt[hidden]{display:none}
body.light .feedback-prompt{box-shadow:0 18px 50px #14213930,0 2px 8px #1421391f}
.feedback-prompt-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.feedback-prompt-head h2{margin:0;font-size:16px;letter-spacing:-.2px}
.feedback-prompt form{display:grid;gap:6px;margin:0}
.feedback-faces{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:6px 0 0;padding:0;border:0;min-width:0}
.feedback-face{display:grid;justify-items:center;gap:3px;padding:6px 2px;border:1px solid transparent;border-radius:12px;color:var(--muted);cursor:pointer;text-align:center}
.feedback-face input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.feedback-face svg{transition:transform .15s ease,color .15s}
.feedback-face span{font-size:11px;line-height:1.2}
.feedback-face:hover{color:var(--text)}
.feedback-face:hover svg{transform:scale(1.08)}
.feedback-face:has(input:checked){color:var(--gold,#d8bd88);border-color:color-mix(in srgb,var(--gold,#d8bd88) 60%,transparent);background:color-mix(in srgb,var(--gold,#d8bd88) 10%,transparent)}
body.light .feedback-face:has(input:checked){color:var(--navy,#14284b);border-color:var(--gold,#b08a3e);background:color-mix(in srgb,var(--gold-hi,#d6b36c) 22%,transparent)}
.feedback-face:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}
.feedback-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.feedback-prompt-more{display:grid;gap:6px}
.feedback-prompt-more[hidden]{display:none}
.feedback-prompt .public-feedback-field{display:block;margin-top:6px;font-size:13px;font-weight:550;color:var(--text)}
.feedback-prompt textarea,.feedback-prompt input[type=email]{display:block;width:100%;max-width:none;font:inherit;font-size:14px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:9px 11px}
.feedback-prompt textarea{min-height:76px;resize:vertical}
.feedback-prompt textarea:focus-visible,.feedback-prompt input[type=email]:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
@media(prefers-reduced-motion:reduce){.feedback-prompt,.public-feedback-toggle{transition:none}.feedback-prompt{transform:none}}
/* /survey (beta-survey.mjs): five questions on one short page. */
.survey-form{display:grid;gap:14px;max-width:640px;margin-top:22px;text-align:left}
.survey-q{display:grid;gap:8px;margin:0;padding:14px 16px 16px;border:1px solid var(--border);border-radius:14px;background:var(--panel);min-width:0}
.survey-q legend,.survey-label{display:flex;gap:10px;align-items:baseline;padding:0;font-size:15px;font-weight:600;color:var(--text)}
fieldset.survey-q legend{float:left;width:100%;margin-bottom:8px}
fieldset.survey-q legend+*{clear:both}
.survey-num{flex:none;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--gold,#d8bd88) 18%,transparent);color:var(--gold,#d8bd88);font-size:12px;font-weight:700}
body.light .survey-num{background:var(--navy,#14284b);color:var(--gold-hi,#d6b36c)}
.survey-q textarea{width:100%;max-width:none;font:inherit;font-size:15px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;resize:vertical}
.survey-q textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.survey-picks{display:flex;flex-wrap:wrap;gap:6px}
.survey-scale .survey-picks{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr))}
.survey-scale[data-count="5"]{--n:5}.survey-scale[data-count="11"]{--n:11}
.survey-pick{position:relative;display:grid;place-items:center;min-height:40px;padding:6px 12px;border:1px solid var(--border);border-radius:10px;cursor:pointer;color:var(--text);font-size:14px;font-variant-numeric:tabular-nums}
.survey-scale .survey-pick{padding:6px 0}
.survey-pick input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.survey-pick:hover{border-color:var(--gold,#d8bd88)}
.survey-pick:has(input:checked){border-color:var(--gold,#d8bd88);background:color-mix(in srgb,var(--gold,#d8bd88) 16%,transparent);font-weight:700}
body.light .survey-pick:has(input:checked){background:var(--navy,#14284b);color:#fff;border-color:var(--gold-hi,#d6b36c)}
.survey-pick:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}
.survey-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.survey-why{margin-top:4px;font-size:13px}
.survey-privacy{margin:0;font-size:12.5px;color:var(--muted)}
.survey-error{margin:0;padding:10px 12px;border-radius:10px;border:1px solid var(--chart-red,#ff947f);background:color-mix(in srgb,var(--chart-red,#ff947f) 12%,transparent)}
.survey-send{justify-self:start;min-width:140px}
@media(max-width:560px){.survey-q{padding:12px}.survey-scale[data-count="11"] .survey-pick{min-height:36px;font-size:12.5px;border-radius:8px}.survey-scale[data-count="11"] .survey-picks{gap:3px}.survey-send{justify-self:stretch}}

/* "Request an invite" (landing #get-started). The server marks the section
   open or closed; without a configured sender only the closed note shows. */
.waitlist-form{display:grid;gap:8px;max-width:620px;margin:0 0 14px}
.waitlist-label{font-size:14px;font-weight:600}
.waitlist-row{display:flex;gap:10px;flex-wrap:wrap}
.waitlist-row input[type=email]{flex:1 1 260px;min-width:0;max-width:none;min-height:48px;font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:10px 14px}
.waitlist-row input[type=email]:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.waitlist-row .waitlist-submit{flex:0 0 auto;justify-content:center;cursor:pointer;font:inherit;font-size:16px;font-weight:650}
.waitlist-row .waitlist-submit:disabled{opacity:.75;cursor:progress}
.public-get-started .waitlist-note{margin:0;font-size:13px;color:var(--muted)}
.waitlist-note a{color:inherit}
.waitlist-check:empty,.waitlist-check[hidden]{display:none}
.public-get-started .waitlist-closed{font-weight:600}
[data-waitlist="closed"] .waitlist-form,[data-waitlist="open"] .waitlist-closed{display:none}
[data-waitlist="open"] .waitlist-sandbox{background:var(--panel);border-color:var(--border);color:var(--text)}
.public-get-started .waitlist-status{margin:0 0 14px;max-width:620px;padding:10px 14px;border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:12px;background:var(--panel);font-size:14px}
.waitlist-status[data-result="fix"]{border-left-color:var(--chart-red,#ff947f)}
.waitlist-status[data-result="wait"]{border-left-color:var(--chart-gold,#e5cc87)}
.waitlist-status[hidden]{display:none}
.waitlist-status:focus{outline:none}
@media(max-width:560px){.waitlist-row{flex-direction:column}.waitlist-row input[type=email],.waitlist-row .waitlist-submit{flex:none;width:100%}}

/* Privacy, terms and disclaimer pages */
.legal-doc{max-width:760px;margin:0 0 34px}
.legal-doc h2{font-size:21px;letter-spacing:-.3px;margin:30px 0 8px}
.legal-doc h3{font-size:16px;margin:18px 0 6px}
.legal-doc p,.legal-doc li{font-size:16px;line-height:1.65}
.legal-doc ul{padding-left:22px;margin:8px 0}
.legal-doc li{margin:4px 0}
.legal-doc a{color:var(--accent)}
.legal-updated{font-size:14px;color:var(--muted);margin:10px 0 0}
.legal-toc{display:flex;flex-wrap:wrap;gap:6px 14px;margin:18px 0 6px;padding:12px 16px;border:1px solid var(--border);border-radius:12px;font-size:14px}
.legal-toc a{color:var(--text)}
.waitlist-result{max-width:640px;margin-bottom:80px}
.waitlist-result .public-hero-links,.waitlist-remove{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.waitlist-remove .public-btn{cursor:pointer}.waitlist-remove button.public-btn{border-radius:10px!important}
/* Signed-out landing: the same 1240px column and footer width as the calculator and legal pages. */
body.site-landing:not(.signed-in)>main{max-width:1240px}
@media(min-width:641px){
 body.site-landing:not(.signed-in)>main{padding-left:24px!important;padding-right:24px!important}
 body.site-landing:not(.signed-in) #login>.landing-footer{margin-left:-24px!important;margin-right:-24px!important}
}
