:root{
  --ff-ink:#173b31;--ff-ink-2:#31594c;--ff-paper:#f7f5ef;--ff-surface:#fffdfa;--ff-soft:#eef3ee;--ff-warm:#f7eee1;
  --ff-line:#e4e8e1;--ff-muted:#66766f;--ff-gold:#d8a268;--ff-danger:#b45845;--ff-positive:#33785d;
  --ff-shadow:0 1px 2px #173b3108,0 12px 36px #173b310b;--ff-shadow-float:0 18px 55px #173b3122;
  --ff-r-sm:12px;--ff-r:18px;--ff-r-lg:28px;--ff-space:8px;
  --ink:var(--ff-ink);--muted:var(--ff-muted);--paper:var(--ff-paper);--card:var(--ff-surface);--line:var(--ff-line);--green:var(--ff-positive);--accent:var(--ff-gold);
  color-scheme:light;
}
*{scrollbar-width:thin;scrollbar-color:#cad4cc transparent}
html{background:var(--ff-paper);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body{min-height:100vh;overflow-x:clip;background:radial-gradient(900px 520px at 3% -10%,#f2dfc8 0,transparent 60%),radial-gradient(700px 460px at 100% 0,#dfeae2 0,transparent 62%),var(--ff-paper);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif;letter-spacing:.005em}
button,a,input,select{font:inherit}.ff-icon{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-shell{padding-top:9vh}.brand-mark{width:76px;height:76px;padding:0;background:none!important;border-radius:22px!important;box-shadow:var(--ff-shadow-float)!important;overflow:hidden}.brand-mark img{width:100%;height:100%;display:block}.login-shell>.eyebrow{color:var(--ff-positive);letter-spacing:.12em}.login-shell h1{font-family:inherit;font-size:34px;letter-spacing:-.035em}.login-shell .lead{font-size:15px}.login-panel{border:1px solid #ffffffcc;box-shadow:var(--ff-shadow-float);backdrop-filter:blur(18px)}
.topbar{padding-top:18px}.topbar>.brand-lockup,.brand-lockup{display:flex;align-items:center;gap:12px}.brand-lockup img{width:42px;height:42px;border-radius:13px;box-shadow:0 6px 18px #173b3122}.brand-lockup small{display:block;color:var(--ff-muted);font-size:12px;margin-bottom:2px}.brand-lockup h1{font-family:inherit;margin:0;font-size:22px;letter-spacing:-.03em}.avatar{display:grid;place-items:center;background:#ffffffa8;border:1px solid #fff;backdrop-filter:blur(16px);box-shadow:var(--ff-shadow);color:var(--ff-ink)}.avatar .ff-icon{width:20px}
main{max-width:1080px;padding-top:16px;padding-bottom:150px}.hero-card{position:relative;overflow:hidden;padding:30px 32px;border-radius:var(--ff-r-lg);background:linear-gradient(135deg,#173f34,#45685b 68%,#63786a);box-shadow:0 22px 55px #173b3125}.hero-card::after{content:"";position:absolute;width:260px;height:260px;right:-65px;top:-115px;border:1px solid #ffffff22;border-radius:50%;box-shadow:0 0 0 42px #ffffff09,0 0 0 84px #ffffff07}.hero-card>*{position:relative;z-index:1}.hero-card>strong{letter-spacing:-.045em}.hero-grid b{font-size:17px}.dashboard-freshness{opacity:.86}
.metrics{gap:14px;margin:18px 0 36px}.metrics article,.panel,.fire-card,.asset-summary article,.tool-card{border:1px solid #ffffff;background:#fffdfacc;box-shadow:var(--ff-shadow);backdrop-filter:blur(12px)}.metrics article{min-height:104px;padding:17px 18px;border-radius:var(--ff-r);display:flex;flex-direction:column;justify-content:center}.metrics .dot{width:6px;height:6px}.metrics small{font-size:13px}.metrics b{font-size:18px}
.section-head{margin:34px 2px 14px}.section-head .eyebrow,.page-title .eyebrow,.panel .eyebrow{color:#7a8a82;font-size:11px;letter-spacing:.09em}.section-head h2,.panel h2,.page-title h2{font-family:inherit;font-weight:720;letter-spacing:-.025em}.section-head h2{font-size:22px}.text-button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:7px 11px;border-radius:12px;font-weight:650}.text-button:hover{background:var(--ff-soft)}
.fire-list{gap:14px}.fire-card{padding:20px;border-radius:var(--ff-r)}.fire-card header strong{font-size:17px;color:var(--ff-positive)}.fire-current{padding:11px 12px;margin:14px 0 0;border-radius:12px;background:var(--ff-soft)}.progress{height:6px;margin:14px 0;background:#e8ede8}.progress i{background:linear-gradient(90deg,#c48c57,#edc386)}.fire-details{gap:9px}.split{gap:16px}.split .panel{min-height:165px}.category-mix,.transactions{overflow:hidden}
.page-title{max-width:720px;margin:10px 0 24px}.page-title h2{font-size:29px}.page-title .muted{font-size:14px;line-height:1.65}.app-page{animation:ff-page-in .22s ease-out}.asset-summary{gap:12px}.asset-summary article{border-radius:var(--ff-r);padding:17px}.asset-summary b{font-size:22px}.asset-card{padding:17px;border-radius:var(--ff-r);border-color:transparent;box-shadow:var(--ff-shadow);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.asset-card:hover{transform:translateY(-1px);border-color:#ccd8cf;box-shadow:0 15px 38px #173b3112}.plan-card{padding:16px 2px}.portfolio-platform{border-radius:var(--ff-r)!important}.portfolio-platform>summary{padding:19px}.portfolio-platform>summary h3{font-size:17px}.owner-breakdown span{background:#fffdfa;border-color:var(--ff-line)}
.management-tools{padding:2px}.tools-grid{gap:12px}.tool-card{position:relative;display:grid!important;grid-template-columns:42px 1fr auto!important;gap:12px!important;align-items:center;border-left:1px solid #fff!important;border-radius:var(--ff-r)!important;padding:16px!important;min-height:82px;text-decoration:none;color:var(--ff-ink)}.tool-card .tool-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:var(--ff-soft);color:var(--ff-positive)}.tool-card .tool-icon .ff-icon{width:21px}.tool-card>span:not(.tool-icon){min-width:0}.tool-card i{font-style:normal;color:#94a098}.tool-card:hover{transform:translateY(-1px);box-shadow:0 16px 40px #173b3112}
.bottom-nav{left:50%;bottom:12px;width:min(660px,calc(100% - 28px));height:66px;transform:translateX(-50%);padding:6px;border:1px solid #ffffffcc;border-radius:22px;background:#fffcf6e8;box-shadow:0 14px 44px #173b3125;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.bottom-nav button{height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:16px;font-size:11px;color:#738078}.bottom-nav button .ff-icon{width:21px;height:21px}.bottom-nav button.active{background:#e8f0e9;color:var(--ff-ink);font-weight:700}.bottom-nav button.active::before{display:none}.fab{right:max(22px,calc((100vw - 1080px)/2 + 26px));bottom:92px;background:var(--ff-ink);color:white;box-shadow:0 16px 38px #173b3145}.fab .ff-icon{width:20px}.nav-feedback{bottom:90px;background:var(--ff-ink);box-shadow:var(--ff-shadow-float)}
dialog{border:0!important;border-radius:26px!important;box-shadow:0 28px 90px #172f2845;max-height:min(88vh,820px)}dialog::backdrop{background:#14251f70;backdrop-filter:blur(5px)}.entry-form{padding:4px}.entry-form header{position:sticky;top:0;z-index:2;padding:6px 0 12px;background:var(--ff-surface)}.entry-form header h2{font-family:inherit;letter-spacing:-.025em}.icon-button{width:40px;height:40px;border-radius:50%;font-size:24px;display:grid;place-items:center}.icon-button:hover{background:var(--ff-soft)}input,select{min-height:48px;border-radius:13px;border-color:#dfe5de;background:#fbfcf9}.primary,.secondary,.danger-button{min-height:48px;border-radius:14px}.primary{background:var(--ff-ink);box-shadow:none}.primary:hover{background:#214b3e}.secondary{background:var(--ff-soft);border-color:transparent;color:var(--ff-ink)}.hint{line-height:1.6}.route-card{border-radius:14px;background:var(--ff-soft)}
*:focus-visible{outline:3px solid #d6a56f66!important;outline-offset:2px!important}.positive{color:var(--ff-positive)!important}.negative{color:var(--ff-danger)!important}
@keyframes ff-page-in{from{opacity:.55;transform:translateY(5px)}to{opacity:1;transform:none}}
.bottom-nav button{white-space:nowrap}
.page-title{position:relative;max-width:760px!important;margin:10px 0 26px!important;padding-left:56px;min-height:48px}.page-title-icon{position:absolute;left:0;top:2px;width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--ff-soft);color:var(--ff-positive)}.page-title-icon .ff-icon{width:22px}.page-title .eyebrow{margin-top:0}.page-title .muted{font-size:14px!important;line-height:1.65;margin-bottom:0}.bill-toolbar .primary{display:inline-flex;align-items:center;justify-content:center;gap:7px}.bill-toolbar .primary .ff-icon{width:19px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
@media(max-width:560px){
  body{background:radial-gradient(520px 360px at 5% -6%,#f1dfc9 0,transparent 66%),var(--ff-paper)}.topbar{padding:12px 18px 4px}.brand-lockup img{width:38px;height:38px;border-radius:12px}.brand-lockup small{display:none}.brand-lockup h1{font-size:19px}.avatar{width:40px;height:40px}main{padding:12px 16px 116px}.hero-card{padding:22px;border-radius:24px}.hero-card>strong{font-size:36px;margin:10px 0 19px}.hero-grid{gap:8px}.hero-grid div+div{padding-left:14px}.metrics{grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 28px}.metrics article{min-height:88px;padding:14px}.section-head{margin-top:28px}.fire-list{gap:10px;margin-right:-16px;padding-right:16px}.fire-card{min-width:88%;padding:18px}.split{grid-template-columns:1fr}.split .panel{min-height:auto}.page-title h2{font-size:26px}.asset-summary{grid-template-columns:1fr 1fr}.owner-breakdown{margin-right:-16px;padding-right:16px}.tool-card{min-height:76px!important}.bottom-nav{bottom:8px;width:calc(100% - 20px);height:64px;border-radius:20px}.bottom-nav button{height:52px}.bottom-nav button .ff-icon{width:20px}.fab{right:16px;bottom:82px;height:50px;min-width:102px}.nav-feedback{bottom:82px}dialog{width:calc(100% - 20px)!important;max-height:calc(100dvh - 20px);border-radius:24px!important}.entry-form{padding:2px}.two{grid-template-columns:1fr}.portfolio-platform>summary{align-items:flex-start}.portfolio-platform>summary>div:last-child{max-width:48%}
}

/* R40 — visible data confidence without turning the portfolio into a report. */
.investment-trust{margin:0 0 16px;padding:17px 18px!important}.investment-trust>header{display:flex;align-items:center;justify-content:space-between;gap:16px}.investment-trust h3{margin:2px 0 0;font-size:17px}.trust-score{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:750}.trust-score.complete{background:#e8f3eb;color:var(--ff-positive)}.trust-score.partial{background:#fff1df;color:#98652f}.trust-counts{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.trust-counts span{display:flex;align-items:center;gap:5px;padding:7px 9px;border-radius:10px;background:var(--ff-soft);color:var(--ff-muted);font-size:12px}.trust-counts i{width:7px;height:7px;border-radius:50%}.trust-counts i.official{background:#397b61}.trust-counts i.estimate{background:#d19b58}.trust-counts i.platform{background:#6b89a0}.trust-counts i.missing{background:#a7afa9}.investment-trust details{margin-top:12px;border-top:1px solid var(--ff-line)}.investment-trust summary{padding:12px 0 4px;cursor:pointer;color:#8c6338;font-size:13px;font-weight:700}.trust-todos article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--ff-line)}.trust-todos article div{display:grid;gap:3px}.trust-todos small,.trust-todos article>span,.investment-trust details>p{color:var(--ff-muted);font-size:11px}.trust-todos article>span{text-align:right}.trust-complete{margin:12px 0 0;color:var(--ff-positive);font-size:12px}.compact-position i[class^=source-]{font-style:normal;font-weight:700}.source-official{color:var(--ff-positive)}.source-estimate{color:#a36f32}.source-platform{color:#58798f}.source-missing{color:#929c96}
@media(max-width:560px){.investment-trust{padding:15px!important}.trust-counts{display:grid;grid-template-columns:1fr 1fr}.trust-todos article{align-items:flex-start}.trust-todos article>span{max-width:36%}}

/* R41 — gentle, transient prompts for the few items worth attention. */
.home-action-center{margin:0 0 34px;padding:0 4px}.home-action-center>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:10px}.home-action-center h2{margin:2px 0 0;font-size:19px}.home-action-center>header>small{color:var(--ff-muted);font-size:11px}.home-action-center>#actionCenterList{display:grid;gap:8px}.home-action-item{display:grid;grid-template-columns:7px minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:13px 14px;border:1px solid var(--ff-line);border-radius:16px;background:#fffdf9}.home-action-item .action-mark{width:7px;height:7px;border-radius:50%;background:#c89a5d}.home-action-item.kind-error .action-mark{background:var(--ff-danger)}.home-action-item.kind-needs_input .action-mark{background:#b97854}.home-action-item>div{display:grid;gap:2px}.home-action-item>div small{color:#9a7244;font-size:10px;font-weight:750}.home-action-item>div b{font-size:14px}.home-action-item>div p{margin:0;color:var(--ff-muted);font-size:11px;line-height:1.45}.home-action-item>strong{font-size:14px;white-space:nowrap}.home-action-item>button{display:inline-flex;align-items:center;gap:5px;padding:8px 9px;border:0;border-radius:10px;background:var(--ff-soft);color:var(--ff-ink);font-size:11px;font-weight:700;white-space:nowrap}.home-action-item>button i{font-size:13px;font-style:normal}
@media(max-width:560px){.home-action-center{margin-bottom:27px;padding:0}.home-action-center>header{align-items:start}.home-action-item{grid-template-columns:7px minmax(0,1fr) auto;gap:10px;padding:12px}.home-action-item>strong{grid-column:2}.home-action-item>button{grid-column:3;grid-row:1 / span 2}.home-action-item>div p{margin-top:2px}.home-action-center>header>small{max-width:40%;text-align:right}}

/* R42 — configured cash demand, separated from ordinary spending and investing. */
.cash-outlook{margin:0 0 36px;padding:18px 20px!important}.cash-outlook>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:13px}.cash-outlook h2{margin:2px 0 0;font-size:19px}.cash-outlook>header>small{color:var(--ff-muted);font-size:11px}.cash-outlook-main{display:grid;grid-template-columns:minmax(180px,.75fr) 1.25fr;align-items:center;gap:22px}.cash-outlook-main>div:first-child{display:grid;gap:3px}.cash-outlook-main>div:first-child>small{color:var(--ff-muted);font-size:11px}.cash-outlook-main>div:first-child>b{font-size:25px;letter-spacing:-.035em}.cash-outlook-main>div:first-child>span{font-size:11px}.cash-outlook-main .ready{color:var(--ff-positive)}.cash-outlook-main .needs-cash{color:#a26438}.cash-outlook-split{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid var(--ff-line)}.cash-outlook-split span{display:grid;gap:4px;padding:7px 18px;color:var(--ff-muted);font-size:11px}.cash-outlook-split span+span{border-left:1px solid var(--ff-line)}.cash-outlook-split b{color:var(--ff-ink);font-size:15px}.cash-outlook details{margin-top:13px;border-top:1px solid var(--ff-line)}.cash-outlook summary{padding:12px 0 2px;color:var(--ff-muted);font-size:11px;cursor:pointer}.cash-outlook details article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--ff-line)}.cash-outlook details article>div{display:grid;gap:2px}.cash-outlook details article>div:last-child{text-align:right}.cash-outlook details small,.cash-outlook details>p{color:var(--ff-muted);font-size:10px}.cash-outlook details>p{margin:10px 0 0;line-height:1.5}
.cash-outlook-after{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:14px;border:1px solid var(--ff-line);border-radius:13px;overflow:hidden;background:var(--ff-line)}.cash-outlook-after>span{display:grid;gap:3px;padding:10px 12px;background:var(--ff-soft)}.cash-outlook-after small{color:var(--ff-muted);font-size:10px}.cash-outlook-after b{font-size:14px}.cash-outlook-after .positive{color:var(--ff-positive)}
@media(max-width:560px){.cash-outlook{margin-bottom:28px;padding:16px!important}.cash-outlook-main{grid-template-columns:1fr;gap:12px}.cash-outlook-main>div:first-child>b{font-size:23px}.cash-outlook-split{border-left:0;border-top:1px solid var(--ff-line)}.cash-outlook-split span{padding:10px 10px 2px}.cash-outlook-split span:first-child{padding-left:0}.cash-outlook-after{grid-template-columns:1fr}.cash-outlook-after>span{grid-template-columns:1fr auto;align-items:center}.cash-outlook details article{align-items:flex-start}}

/* R44 — compact family resilience and company-risk decision support. */
.resilience-panel{margin:0 0 36px;padding:18px 20px!important}.resilience-panel>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:13px}.resilience-panel h2{margin:2px 0 0;font-size:19px}.resilience-panel>header>small{color:var(--ff-muted);font-size:11px}.resilience-main{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--ff-line);border-radius:15px;background:var(--ff-soft)}.resilience-main>div{display:grid;gap:3px;padding:15px 17px}.resilience-main>div+div{border-left:1px solid var(--ff-line)}.resilience-main small,.resilience-main span{color:var(--ff-muted);font-size:11px}.resilience-main b{font-size:20px;letter-spacing:-.025em}.resilience-panel details{margin-top:10px}.resilience-panel summary{padding:8px 0;color:var(--ff-muted);font-size:11px;cursor:pointer}.resilience-panel details>p{margin:10px 0 0;color:var(--ff-muted);font-size:10px;line-height:1.5}.risk-breakdown,.risk-scenarios{display:grid;gap:0;border-top:1px solid var(--ff-line)}.risk-breakdown span{display:flex;justify-content:space-between;gap:15px;padding:10px 2px;border-bottom:1px solid var(--ff-line)}.risk-breakdown i,.risk-scenarios i{font-style:normal}.risk-scenarios{grid-template-columns:repeat(3,1fr);margin-top:10px;border:1px solid var(--ff-line);border-radius:13px;overflow:hidden}.risk-scenarios span{display:grid;gap:3px;padding:11px}.risk-scenarios span+span{border-left:1px solid var(--ff-line)}.risk-scenarios b{font-size:11px}.risk-scenarios small{color:var(--ff-muted);font-size:10px}
@media(max-width:560px){.resilience-panel{margin-bottom:28px;padding:16px!important}.resilience-main{grid-template-columns:1fr}.resilience-main>div+div{border-left:0;border-top:1px solid var(--ff-line)}.risk-scenarios{grid-template-columns:1fr}.risk-scenarios span+span{border-left:0;border-top:1px solid var(--ff-line)}}

/* R42 — fixed expenses collapse by category; raw plans stay editable. */
#billPlanList{padding:0!important;overflow:hidden}.bill-group{border-bottom:1px solid var(--ff-line)}.bill-group:last-child{border-bottom:0}.bill-group>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;cursor:pointer;list-style:none}.bill-group>summary::-webkit-details-marker{display:none}.bill-group>summary>div{display:grid;gap:2px}.bill-group>summary small{color:var(--ff-muted);font-size:10px;font-weight:500}.bill-group>summary b{font-size:15px}.bill-group>summary>strong{font-size:16px}.bill-group>summary>strong small{margin-left:2px}.bill-group>div{padding:0 12px 10px}.bill-group .plan-card{margin:0;padding:11px 8px;border:0;border-top:1px solid var(--ff-line);border-radius:0;background:transparent}.bill-group .plan-card:first-child{border-top:0}.bill-group .plan-card small{color:var(--ff-muted)}
.plan-bundle{border-top:1px solid var(--ff-line)}.plan-bundle>summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 0;cursor:pointer}.plan-bundle>summary>div{display:grid;gap:2px}.plan-bundle>summary small{color:var(--ff-muted);font-size:10px}.plan-bundle>summary>strong{font-size:13px}.plan-bundle>div{padding:0 0 6px 12px}.plan-bundle .compact-plan{padding:8px 0}
@media(max-width:560px){dialog[open]{margin:auto 10px 10px!important;align-self:end}.entry-form header{padding-top:2px}.quick-kind{position:sticky;top:54px;z-index:1;background:var(--ff-surface);padding-bottom:6px}.quick-amount input{font-size:34px}.asset-card strong{font-size:16px}}
@media(max-width:360px){.topbar{padding-inline:14px}.brand-lockup{gap:9px}.brand-lockup h1{font-size:18px}main{padding-inline:14px}.hero-card{padding:20px}.section-head{align-items:center}.section-head h2{font-size:20px}.section-head .text-button{width:40px;padding:7px;justify-content:center}.section-head .text-button span{display:none}.fire-list{margin-right:-14px;padding-right:14px}.fire-card{min-width:92%}.bottom-nav{width:calc(100% - 12px);padding-inline:3px}.bottom-nav button{font-size:10px}.fab{right:12px}}
.gold-asset-card{background:linear-gradient(135deg,#fffdfa,#fcf3e4)}.gold-badge{display:inline-flex;margin-left:5px;padding:2px 7px;border-radius:999px;background:#f2dfc1;color:#845d31;font-size:10px;font-style:normal;vertical-align:2px}.gold-asset-card small i{font-style:normal;font-weight:700}.gold-holding-panel{padding:15px;margin:2px 0 16px;border:1px solid #eadbc4;border-radius:16px;background:#fcf5e9}.gold-live-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gold-live-row div{display:flex;flex-direction:column;gap:3px}.gold-live-row div:last-child{grid-column:1/-1;padding-top:11px;border-top:1px solid #eadbc4}.gold-live-row small,.gold-live-row span{color:var(--ff-muted)}.gold-live-row b{font-size:17px}.gold-live-row span{font-size:11px}.gold-calibration{margin-top:12px;padding-top:12px;border-top:1px solid #eadbc4}.gold-calibration label{margin-bottom:10px}

/* R37 — one calm, predictable modal system across the whole product. */
html.modal-open{overflow:hidden}
dialog.ff-modal{width:min(600px,calc(100vw - 40px))!important;max-width:600px;max-height:min(86dvh,820px)!important;margin:auto;padding:0!important;overflow:hidden;border:1px solid #ffffffd9!important;border-radius:24px!important;background:var(--ff-surface);box-shadow:0 24px 72px #142b2340,0 2px 8px #142b2312;overscroll-behavior:contain}
dialog.ff-modal::backdrop{background:#172c2561;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
dialog.ff-modal[open]{display:block;animation:ff-modal-in .18s cubic-bezier(.2,.75,.25,1)}
dialog.ff-modal .ff-modal-surface{width:100%;max-height:min(86dvh,820px);padding:0 24px 24px!important;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-top:86px;-webkit-overflow-scrolling:touch}
dialog.ff-modal .ff-modal-surface>header{position:sticky!important;top:0;z-index:8;min-height:76px;margin:0 -24px 15px;padding:18px 20px 13px 24px!important;align-items:center;background:linear-gradient(to bottom,var(--ff-surface) 78%,#fffdfaeb);border-bottom:1px solid var(--ff-line);box-shadow:0 5px 14px #173b3108}
dialog.ff-modal .ff-modal-surface>header .eyebrow{margin:0 0 2px;color:#85918b;font-size:10px;letter-spacing:.12em}
dialog.ff-modal .ff-modal-surface>header h2{margin:0;font-size:22px;line-height:1.2}
dialog.ff-modal .icon-button{flex:0 0 40px;margin-left:16px;color:var(--ff-muted);font-size:0;background:var(--ff-soft)}
dialog.ff-modal .icon-button::before{content:'×';font-size:25px;font-weight:350;line-height:1}
dialog.ff-modal .icon-button:hover{color:var(--ff-ink);background:#e5ece6}
dialog.ff-modal label{font-size:13px;font-weight:620;color:#4f625a}
dialog.ff-modal input,dialog.ff-modal select{background:#fff;border-color:#dbe2dc}
dialog.ff-modal .hint{margin:10px 1px;line-height:1.65}
dialog.ff-modal .route-card{padding:14px 15px;margin:2px 0 14px}
dialog.ff-modal .detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
dialog.ff-modal .detail-actions>*{width:100%;margin:0}
dialog.ff-modal .error:not(:empty),dialog.ff-modal [id$=Result]:not(:empty){padding:10px 12px;border-radius:12px;background:#fff2ed}
dialog.ff-modal [id$=Result]:not(:empty){color:var(--ff-positive);background:#edf6ef}
@keyframes ff-modal-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

@media(max-width:560px){
  dialog.ff-modal{width:100%!important;max-width:none;max-height:min(92dvh,880px)!important;margin:auto 0 0!important;border-width:1px 0 0!important;border-radius:24px 24px 0 0!important;box-shadow:0 -12px 50px #142b2333}
  dialog.ff-modal[open]{animation:ff-sheet-in .22s cubic-bezier(.2,.8,.25,1)}
  dialog.ff-modal .ff-modal-surface{max-height:min(92dvh,880px);padding:0 18px calc(18px + env(safe-area-inset-bottom))!important;scrollbar-gutter:auto}
  dialog.ff-modal .ff-modal-surface>header{min-height:70px;margin:0 -18px 12px;padding:20px 14px 11px 18px!important}
  dialog.ff-modal .ff-modal-surface>header::before{content:'';position:absolute;top:7px;left:50%;width:38px;height:4px;transform:translateX(-50%);border-radius:99px;background:#cfd7d1}
  dialog.ff-modal .ff-modal-surface>header .eyebrow{display:none}
  dialog.ff-modal .ff-modal-surface>header h2{font-size:20px}
  dialog.ff-modal .icon-button{width:40px;height:40px;margin-left:10px}
  dialog.ff-modal .two{grid-template-columns:1fr;gap:0}
  dialog.ff-modal .detail-actions{grid-template-columns:1fr}
  dialog.ff-modal input,dialog.ff-modal select{min-height:50px;font-size:16px}
  dialog.ff-modal .primary,dialog.ff-modal .secondary,dialog.ff-modal .danger-button{min-height:50px}
  @keyframes ff-sheet-in{from{opacity:.5;transform:translateY(28px)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){dialog.ff-modal[open]{animation:none}}

.net-worth-trend{position:relative;margin:16px 0;padding:19px 20px 14px!important;overflow:hidden}.net-worth-trend>header{display:flex;align-items:end;justify-content:space-between;gap:16px}.net-worth-trend h2{font-size:19px}.trend-change{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.trend-change small,.trend-footer{color:var(--ff-muted);font-size:11px}.trend-change b{font-size:15px}.trend-chart{position:relative;height:142px;margin-top:8px;border-radius:14px;background:linear-gradient(180deg,#fafbf8,#fff)}.trend-chart svg{display:block;width:100%;height:142px;overflow:visible}.trend-area{fill:url(#trendFill)}.trend-line{fill:none;stroke:#b8864e;stroke-width:3;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.trend-line.initialized{stroke-dasharray:5 5;stroke-width:2;opacity:.72}.trend-chart circle{fill:#fff;stroke:#b8864e;stroke-width:3;vector-effect:non-scaling-stroke}.trend-last,.trend-start,.trend-end,.trend-reference{position:absolute;z-index:1;padding:3px 6px;border-radius:8px;background:#ffffffd9;font-size:11px}.trend-last{right:7px;top:8px;color:var(--ff-ink);font-size:14px}.trend-start{left:5px;bottom:4px;color:var(--ff-muted)}.trend-end{right:5px;bottom:4px;color:var(--ff-muted)}.trend-reference{left:50%;bottom:4px;transform:translateX(-50%);color:#9b7548;background:#fff8ed}.trend-footer{display:flex;justify-content:space-between;gap:14px;margin-top:7px}.trend-empty{min-height:142px;display:grid;place-items:center;color:var(--ff-muted);font-size:12px}
@media(max-width:560px){.net-worth-trend{margin:10px 0;padding:16px 15px 12px!important}.net-worth-trend>header{align-items:flex-start}.trend-change b{font-size:13px}.trend-chart,.trend-chart svg{height:120px}.trend-empty{min-height:120px}.trend-footer{align-items:flex-start;line-height:1.4}.trend-reference{font-size:10px}}

/* R38 — a quieter home dashboard with one narrative per section. */
.hero-card .hero-link{position:absolute;right:28px;bottom:25px;z-index:3;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:0;border-radius:10px;background:#ffffff0d;color:#e7efea;font-size:12px;font-weight:650}.hero-card .hero-link:hover{background:#ffffff18}.hero-card .hero-link span{font-size:15px}
.home-month{margin:16px 0 34px;padding:19px 20px 16px!important}.home-month>header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:13px}.home-month>header .eyebrow{margin:0 0 3px}.home-month>header h2{margin:0;font-size:19px}.home-insight{margin:0;color:var(--ff-muted);font-size:13px;text-align:right}.home-insight.positive{color:var(--ff-positive)}.home-insight.negative{color:var(--ff-danger)}
.home-month .metrics{grid-template-columns:repeat(4,1fr);gap:0;margin:0}.home-month .metrics article{min-height:74px;padding:10px 18px;border:0;border-left:1px solid var(--ff-line);border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}.home-month .metrics article:first-child{padding-left:2px;border-left:0}.home-month .metrics small{margin:6px 0 5px}.home-month .metrics b{margin:0;font-size:19px}.home-month .metrics .dot{width:5px;height:5px}
.home-section-head{margin-top:37px}.category-mix{padding:8px 20px}.home-empty{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0}.home-empty span{color:var(--ff-muted);font-size:12px;text-align:right}
#page-home>.section-head:first-of-type{margin-top:0}
.boot-shell{position:fixed;inset:0;z-index:1000;display:grid;place-content:center;justify-items:center;gap:14px;background:var(--ff-paper,#f7f3ed);color:var(--ff-muted,#6f7b75)}.boot-shell .brand-mark{animation:boot-breathe 1.4s ease-in-out infinite}.boot-shell p{margin:0;font-size:14px}.boot-shell[hidden]{display:none}.auth-pending{overflow:hidden}@keyframes boot-breathe{50%{transform:scale(.96);opacity:.72}}
.home-month.is-empty{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 20px!important}.home-month.is-empty>header{width:100%;align-items:center;margin:0}.home-month.is-empty>header .eyebrow{display:none}.home-month.is-empty .metrics{display:none}.home-month.is-empty .home-insight{color:var(--ff-muted)}
@media(max-width:560px){
  .hero-card{padding-bottom:66px!important}.hero-card .hero-link{left:14px;right:auto;bottom:15px;padding:7px 9px}.home-month{margin:10px 0 26px;padding:16px 15px 12px!important}.home-month>header{align-items:flex-start;display:grid;gap:5px;margin-bottom:8px}.home-insight{text-align:left;font-size:12px}.home-month .metrics{grid-template-columns:1fr 1fr}.home-month .metrics article{min-height:68px;padding:11px 12px;border-left:1px solid var(--ff-line);border-top:1px solid var(--ff-line)}.home-month .metrics article:nth-child(odd){padding-left:2px;border-left:0}.home-month .metrics article:nth-child(-n+2){border-top:0}.home-month .metrics b{font-size:17px}.home-section-head{margin-top:29px}.home-empty{align-items:flex-start;display:grid;gap:5px}.home-empty span{text-align:left;line-height:1.5}
}
