@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{font-family:Noto Sans SC,Noto Sans,sans-serif;color:#0c2344;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--blue-950: #092552;--blue-900: #0d356f;--blue-700: #075fd8;--blue-600: #0a6bf2;--blue-100: #dcecff;--blue-50: #f4f8ff;--ink: #0c2344;--muted: #63728a;--rule: #d7e0ec;--surface: #fff;--canvas: #f7f9fc;--teal: #16b8bd;--danger: #c84f3d;--danger-bg: #fff5f2;--success: #0d7a6d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#f5f8fc 0,#fff 15rem)}button,input,select{font:inherit}button{color:inherit}button,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid rgba(10,107,242,.45);outline-offset:2px}.app-shell{width:min(100% - 2rem,1240px);margin:0 auto;padding:1.15rem 0 2rem}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;border-bottom:1px solid var(--rule);padding:.15rem 0 1.2rem}.brand-block{display:flex;align-items:center;gap:.75rem}.brand-mark{display:grid;width:2.3rem;height:2.3rem;place-items:center;border-radius:.48rem;background:var(--blue-600);color:#fff;box-shadow:0 8px 20px #0a6bf233}.brand-mark svg{width:1.2rem}.brand-block h1{margin:0;color:var(--blue-950);font-size:clamp(1.25rem,2.4vw,1.62rem);letter-spacing:-.04em}.brand-block p{margin:.18rem 0 0;color:#53657e;font-size:.72rem}.header-actions{display:flex;align-items:center;gap:.55rem}.real-money-badge{border:1px solid #bcd4f2;border-radius:999px;background:var(--blue-50);padding:.43rem .62rem;color:var(--blue-700);font-size:.58rem;font-weight:700}.tools-button{display:inline-flex;align-items:center;gap:.38rem;border:1px solid var(--blue-600);border-radius:.42rem;background:var(--blue-600);padding:.55rem .72rem;color:#fff;font-size:.68rem;font-weight:700;cursor:pointer}.tools-button:hover{background:var(--blue-700)}.tools-button svg{width:.9rem;height:.9rem}.planner-layout{display:grid;grid-template-columns:minmax(320px,360px) minmax(0,1fr);grid-template-areas:"inputs dashboard";align-items:start;gap:1rem;padding:1.2rem 0}.input-panel{grid-area:inputs;display:grid;gap:.75rem;min-width:0}.dashboard-stack{grid-area:dashboard;display:grid;min-width:0;gap:.75rem}.input-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid #b9cbe0;border-radius:.5rem;background:#fff;padding:.22rem;box-shadow:0 4px 14px #1a3a6009}.input-mode-switch button{display:flex;align-items:center;justify-content:center;gap:.35rem;border:0;border-radius:.35rem;background:transparent;padding:.58rem;color:#62738a;font-size:.64rem;font-weight:700;cursor:pointer}.input-mode-switch button svg{width:.82rem;height:.82rem}.input-mode-switch button.active{background:var(--blue-600);color:#fff;box-shadow:0 4px 10px #0a6bf22e}.quick-input-card{border:1px solid #bcd4f2;border-radius:.52rem;background:#fff;padding:.85rem;box-shadow:0 8px 24px #193d680e}.quick-input-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.8rem}.quick-input-head span{color:var(--blue-600);font-size:.5rem;font-weight:700;letter-spacing:.1em}.quick-input-head h2{margin:.16rem 0 0;font-size:.9rem;letter-spacing:-.02em}.quick-input-head>b{border-radius:999px;background:#f0fbf8;padding:.3rem .48rem;color:var(--success);font-size:.5rem}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.quick-grid .field{border:1px solid #dce5ef;border-radius:.42rem;background:#fbfdff;padding:.52rem}.quick-grid .field-label{color:#405672;font-size:.57rem}.quick-grid .field-control input{border:0;border-bottom:1px solid #bdcbdc;border-radius:0;background:transparent;padding:.35rem 1.5rem .28rem 0;font-size:.8rem}.quick-family{margin-top:.75rem;border-top:1px solid #e4eaf2;padding-top:.7rem}.quick-row-title{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.quick-row-title strong{font-size:.66rem}.quick-row-title button{display:inline-flex;align-items:center;gap:.25rem;border:0;background:transparent;color:var(--blue-700);font-size:.54rem;font-weight:700;cursor:pointer}.quick-row-title button svg{width:.72rem}.quick-family>p{margin:.45rem 0 0;color:var(--muted);font-size:.54rem}.quick-spouse{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.55rem}.child-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}.child-chips>span,.child-chips>button{display:inline-flex;align-items:center;gap:.25rem;border:1px solid #d0dce9;border-radius:999px;background:#f8fbff;padding:.32rem .5rem;color:#53677f;font-size:.52rem}.child-chips button{cursor:pointer}.child-chips>span button{border:0;background:transparent;padding:0;color:#8b98a8}.child-chips>button{border-style:dashed;color:var(--blue-700)}.child-chips>button svg{width:.62rem}.assumption-note{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;margin-top:.75rem;border:1px solid #c5d8ef;border-radius:.42rem;background:var(--blue-50);padding:.58rem}.assumption-note>svg{width:.9rem;color:var(--blue-600)}.assumption-note strong{display:block;font-size:.57rem}.assumption-note p{margin:.12rem 0 0;color:#5f7189;font-size:.49rem;line-height:1.5}.assumption-note button{border:0;background:transparent;color:var(--blue-700);font-size:.52rem;font-weight:700;cursor:pointer}.input-section{overflow:hidden;border:1px solid var(--rule);border-radius:.5rem;background:#fff;box-shadow:0 4px 16px #1a3a6009}.input-section>summary{display:flex;min-height:3rem;cursor:pointer;list-style:none;align-items:center;gap:.55rem;padding:.72rem .9rem;color:var(--ink);font-size:.9rem;font-weight:700}.input-section>summary::-webkit-details-marker{display:none}.input-section>summary svg{width:1rem;color:var(--blue-600)}.input-section>summary b{display:grid;min-width:1.4rem;height:1.4rem;margin-left:auto;place-items:center;border-radius:50%;background:var(--blue-50);color:var(--blue-700);font-size:.58rem}.input-section[open]>summary{border-bottom:1px solid var(--rule)}.input-section-body{padding:.85rem}.section-heading,.children-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.2rem 0 .65rem}.section-heading:not(:first-child){margin-top:1.15rem}.section-heading>span{display:inline-flex;align-items:center;gap:.45rem}.section-heading strong,.children-heading strong{font-size:.7rem;color:#223b5b}.section-index{display:grid;width:1.4rem;height:1.4rem;place-items:center;border-radius:.35rem;background:var(--blue-50);color:var(--blue-700);font-size:.52rem;font-weight:700}.text-button{display:inline-flex;align-items:center;gap:.25rem;border:0;background:transparent;color:var(--blue-700);font-size:.6rem;font-weight:700;cursor:pointer}.text-button svg{width:.76rem}.field-grid{display:grid;gap:.55rem}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:grid;min-width:0;gap:.28rem}.field-label,.event-name>span,.event-meta label>span{color:#5c6e86;font-size:.56rem;font-weight:650}.field-control{position:relative;display:flex;align-items:center}.field-control input,.event-name input,.event-meta select,.child-row input,.member-card-title input{width:100%;min-width:0;border:1px solid #becbdd;border-radius:.36rem;background:#fff;padding:.52rem .55rem;color:var(--ink);font-size:.68rem;font-weight:600}.field-control input{padding-right:2rem;text-align:right;font-variant-numeric:tabular-nums}.field-control em{position:absolute;right:.5rem;color:#7c8ba0;font-size:.53rem;font-style:normal;pointer-events:none}.field small{color:var(--muted);font-size:.5rem}.compact .field-control input{padding-top:.42rem;padding-bottom:.42rem}.member-stack{display:grid;gap:.55rem}.member-card{border:1px solid #dbe4ef;border-radius:.42rem;background:#fbfdff;padding:.65rem}.member-card-title{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}.member-card-title label{display:flex;flex:1;align-items:center;gap:.45rem}.member-card-title label span{min-width:2.2rem;color:var(--blue-700);font-size:.58rem;font-weight:700}.member-card-title input{border:0;border-bottom:1px solid #cbd7e6;border-radius:0;background:transparent;padding:.28rem 0}.member-card-title button,.child-row>button,.event-editor-head>button{display:grid;width:1.7rem;height:1.7rem;place-items:center;border:0;background:transparent;color:#8a98aa;cursor:pointer}.member-card-title button:hover,.child-row>button:hover,.event-editor-head>button:hover{color:var(--danger)}.member-card-title button svg,.child-row>button svg,.event-editor-head>button svg{width:.82rem}.children-heading{margin-top:.8rem}.children-list{display:grid;gap:.4rem}.child-row{display:grid;grid-template-columns:minmax(0,1fr) 5.2rem 1.7rem;align-items:center;gap:.35rem}.child-row label{position:relative;display:flex;align-items:center}.child-row label input{padding-right:1.5rem;text-align:right}.child-row label span{position:absolute;right:.45rem;color:#7c8ba0;font-size:.52rem}.empty-copy,.section-help{margin:0;color:var(--muted);font-size:.57rem;line-height:1.6}.advanced-settings{margin-top:.8rem;border-top:1px solid #e8edf4;padding-top:.65rem}.advanced-settings>summary{cursor:pointer;color:var(--blue-700);font-size:.6rem;font-weight:700}.advanced-settings>.field-grid{margin-top:.6rem}.section-help{margin-bottom:.7rem}.event-stack{display:grid;gap:.55rem}.event-editor{border:1px solid #dce5ef;border-left:3px solid #dc6553;border-radius:.42rem;padding:.62rem}.event-editor.income{border-left-color:var(--teal)}.event-editor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.45rem}.event-type-toggle{display:inline-flex;overflow:hidden;border:1px solid #ced9e6;border-radius:.32rem}.event-type-toggle button{border:0;background:#fff;padding:.28rem .55rem;color:#65758b;font-size:.55rem;font-weight:700;cursor:pointer}.event-type-toggle button+button{border-left:1px solid #ced9e6}.event-type-toggle button.active{background:var(--blue-50);color:var(--blue-700)}.event-name{display:grid;gap:.25rem}.event-fields{display:grid;grid-template-columns:1.05fr .75fr 1.2fr;gap:.38rem;margin-top:.45rem}.event-editor-simple .event-fields{grid-template-columns:1fr 1.25fr}.event-meta{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:.45rem;margin-top:.45rem}.event-meta>label:not(.check-field){display:grid;gap:.25rem}.check-field{display:flex;min-height:2rem;align-items:center;gap:.35rem;color:#52657d;font-size:.56rem}.check-field input{accent-color:var(--blue-600)}.add-event-button{display:flex;width:100%;align-items:center;justify-content:center;gap:.35rem;margin-top:.65rem;border:1px dashed #9fbce1;border-radius:.4rem;background:var(--blue-50);padding:.62rem;color:var(--blue-700);font-size:.62rem;font-weight:700;cursor:pointer}.add-event-button svg{width:.8rem}.dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border:1px solid #bcd4f2;border-radius:.55rem;background:#fff;padding:.9rem 1rem;box-shadow:0 8px 24px #193d680f}.eyebrow{display:block;margin-bottom:.22rem;color:var(--blue-600);font-size:.54rem;font-weight:700;letter-spacing:.08em}.dashboard-head h1{margin:0;font-size:1.15rem;letter-spacing:-.025em}.dashboard-head p{margin:.25rem 0 0;color:var(--muted);font-size:.62rem}.status-pill{flex-shrink:0;border:1px solid #c6d5e7;border-radius:999px;background:#f7f9fc;padding:.38rem .58rem;color:#52657e;font-size:.58rem;font-weight:700}.status-pill.danger{border-color:#e8bcb4;background:var(--danger-bg);color:var(--danger)}.status-pill.success{border-color:#a8d9d2;background:#f0fbf8;color:var(--success)}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.kpi-card{min-width:0;border:1px solid var(--rule);border-radius:.48rem;background:#fff;padding:.75rem;box-shadow:0 4px 14px #1a3a6009}.kpi-card>span{display:flex;align-items:center;gap:.3rem;color:#60708a;font-size:.55rem;font-weight:600}.kpi-card>span svg{width:.78rem;height:.78rem;color:var(--blue-600)}.kpi-card strong{display:block;overflow:hidden;margin-top:.42rem;color:var(--ink);font-size:clamp(.92rem,1.6vw,1.14rem);letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.kpi-card small{display:block;overflow:hidden;margin-top:.18rem;color:#7b899c;font-size:.49rem;text-overflow:ellipsis;white-space:nowrap}.kpi-card.danger{border-color:#e8bcb4;background:snow}.kpi-card.danger strong{color:var(--danger)}.kpi-card.success{border-color:#addbd5;background:#f9fffd}.kpi-card.success strong{color:var(--success)}.chart-card,.annual-details{border:1px solid var(--rule);border-radius:.5rem;background:#fff;box-shadow:0 4px 16px #1a3a6009}.chart-card{padding:.85rem .9rem .65rem}.chart-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.5rem}.chart-heading h2{margin:0;font-size:.8rem}.chart-order{display:block;margin-bottom:.14rem;color:var(--blue-600);font-size:.46rem;font-weight:700;letter-spacing:.08em}.chart-heading p{margin:.2rem 0 0;color:var(--muted);font-size:.52rem}.chart-legend{display:flex;flex-shrink:0;gap:.65rem;padding-top:.1rem}.chart-legend span{display:inline-flex;align-items:center;gap:.28rem;color:#68788e;font-size:.5rem}.chart-legend span:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:#0a6bf2}.chart-legend .red:before,.chart-legend .coral:before{background:#dd5746}.wealth-chart{height:330px}.cashflow-chart{height:285px}.chart-card-primary{border-color:#bfd5f0;box-shadow:0 8px 24px #193d680f}.chart-tooltip{display:grid;min-width:9.5rem;gap:.25rem;border:1px solid #c8d6e6;border-radius:.4rem;background:#fffffff7;padding:.55rem .62rem;box-shadow:0 12px 28px #14325624}.chart-tooltip strong{color:var(--ink);font-size:.62rem}.chart-tooltip span{display:flex;justify-content:space-between;gap:.8rem;color:#5f7087;font-size:.53rem}.chart-tooltip span b{color:var(--ink)}.chart-tooltip small{margin-top:.12rem;border-top:1px solid #edf1f6;padding-top:.28rem;color:var(--teal);font-size:.5rem}.risk-callout{display:grid;grid-template-columns:auto 1fr;gap:.65rem;border:1px solid #e8bcb4;border-left:4px solid var(--danger);border-radius:.48rem;background:var(--danger-bg);padding:.75rem}.risk-callout svg{width:1rem;color:var(--danger)}.risk-callout strong{font-size:.66rem}.risk-callout p{margin:.18rem 0 0;color:#7a5b56;font-size:.54rem;line-height:1.5}.annual-details{overflow:hidden}.annual-details>summary{display:flex;cursor:pointer;list-style:none;align-items:center;justify-content:space-between;padding:.75rem .9rem;font-size:.68rem;font-weight:700}.annual-details>summary::-webkit-details-marker{display:none}.annual-details>summary span{border-radius:999px;background:var(--blue-50);padding:.2rem .42rem;color:var(--blue-700);font-size:.5rem}.annual-details[open]>summary{border-bottom:1px solid var(--rule)}.table-scroll{max-height:440px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:.54rem}th{position:sticky;top:0;z-index:2;background:#f7f9fc;color:#617187;text-align:right}th:first-child,td:first-child,th:last-child,td:last-child{text-align:left}th,td{border-bottom:1px solid #e8edf4;padding:.55rem .58rem;text-align:right;white-space:nowrap}td{color:#435770;font-variant-numeric:tabular-nums}td:first-child strong,td:first-child small{display:block}td:first-child small{margin-top:.08rem;color:#8491a2}td.negative{color:var(--danger)}td.strong{color:var(--ink);font-weight:700}.drawer-backdrop{position:fixed;inset:0;z-index:80;visibility:hidden;border:0;background:#09255247;opacity:0;transition:opacity .18s ease,visibility .18s ease}.drawer-backdrop.open{visibility:visible;opacity:1}.tools-drawer{position:fixed;top:0;right:0;bottom:0;z-index:90;width:min(92vw,390px);overflow-y:auto;border-left:1px solid #bfcddd;background:#f8fafc;padding:1rem;transform:translate(102%);transition:transform .22s ease;box-shadow:-18px 0 40px #0f2a4e24}.tools-drawer.open{transform:translate(0)}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--rule);padding-bottom:.85rem}.drawer-head span{color:var(--blue-600);font-size:.52rem;font-weight:700;letter-spacing:.1em}.drawer-head h2{margin:.18rem 0 0;font-size:1.05rem}.drawer-head>button{display:grid;width:2rem;height:2rem;place-items:center;border:1px solid var(--rule);border-radius:.4rem;background:#fff;cursor:pointer}.drawer-head svg{width:1rem}.tool-section{margin-top:.75rem;border:1px solid var(--rule);border-radius:.48rem;background:#fff;padding:.8rem}.tool-section h3{display:flex;align-items:center;gap:.38rem;margin:0;font-size:.72rem}.tool-section h3 svg{width:.88rem;color:var(--blue-600)}.tool-section>p{margin:.3rem 0 .65rem;color:var(--muted);font-size:.54rem;line-height:1.55}.tool-actions,.scenario-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.tool-actions button,.scenario-actions button,.primary-tool{display:inline-flex;align-items:center;justify-content:center;gap:.28rem;border:1px solid #c6d4e4;border-radius:.36rem;background:#fff;padding:.52rem;color:#334a66;font-size:.57rem;font-weight:700;cursor:pointer}.tool-actions button:hover,.scenario-actions button:hover{border-color:var(--blue-600);color:var(--blue-700)}.tool-actions svg{width:.75rem}.primary-tool{width:100%;border-color:var(--blue-600);background:var(--blue-600);color:#fff}.tool-message{display:block;margin-top:.5rem;color:var(--success);font-size:.54rem}.template-list{display:grid;gap:.35rem}.template-list button{display:flex;align-items:center;justify-content:space-between;border:1px solid #d7e1ec;border-radius:.38rem;background:#fbfdff;padding:.55rem .6rem;cursor:pointer}.template-list strong{font-size:.59rem}.template-list span{color:var(--blue-700);font-size:.51rem}.scenario-result{display:grid;gap:.35rem;margin:.55rem 0;border:1px solid #d8e2ed;border-radius:.4rem;background:#f8fbff;padding:.6rem}.scenario-result>div{display:flex;justify-content:space-between;gap:1rem;color:#5e7087;font-size:.54rem}.scenario-result strong{color:var(--ink)}.scenario-result .scenario-delta{border-top:1px solid #dfe7f0;padding-top:.35rem;color:var(--blue-700)}.details-link{display:block;margin-top:.75rem;color:var(--blue-700);text-align:center;font-size:.58rem;font-weight:700;text-decoration:none}footer{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--rule);padding-top:.8rem;color:#7b899b;font-size:.52rem}footer p{margin:0}@media(max-width:980px){.planner-layout{grid-template-columns:320px minmax(0,1fr)}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wealth-chart{height:310px}.cashflow-chart{height:260px}}@media(max-width:760px){.app-shell{width:min(100% - 1rem,620px);padding-top:.65rem}.app-header{padding:.1rem .2rem .8rem}.brand-block{align-items:flex-start}.brand-mark{width:2rem;height:2rem}.brand-block h1{font-size:1.12rem}.brand-block p{max-width:15rem;font-size:.6rem;line-height:1.45}.real-money-badge{display:none}.tools-button{padding:.48rem}.tools-button svg{width:1rem}.tools-button{font-size:0}.planner-layout{display:flex;flex-direction:column;padding:.75rem 0}.dashboard-stack{order:1;width:100%}.input-panel{order:2;width:100%;margin-top:.2rem}.input-mode-switch{position:sticky;top:.4rem;z-index:20;box-shadow:0 8px 20px #1430521a}.quick-input-card{padding:.72rem}.quick-input-head h2{font-size:.82rem}.quick-grid{gap:.45rem}.quick-grid .field{padding:.46rem}.quick-grid .field-control input{font-size:.72rem}.dashboard-head{padding:.75rem}.dashboard-head h1{font-size:.95rem}.dashboard-head p{font-size:.54rem}.status-pill{font-size:.5rem}.kpi-grid{gap:.45rem}.kpi-card{padding:.62rem}.wealth-chart{height:265px}.cashflow-chart{height:270px}.chart-heading{display:block}.chart-legend{margin-top:.35rem}.field-grid.three{grid-template-columns:1fr}footer{display:block;padding:.75rem .2rem 0;line-height:1.5}footer span{display:block;margin-top:.2rem}}@media(max-width:420px){.field-grid.two,.event-meta{grid-template-columns:1fr}.quick-grid,.quick-spouse{grid-template-columns:repeat(2,minmax(0,1fr))}.event-fields{grid-template-columns:1fr 1fr}.event-editor-simple .event-fields{grid-template-columns:1fr 1.2fr}.event-fields .field:last-child{grid-column:1 / -1}.kpi-card strong{font-size:.84rem}.wealth-chart{height:250px}}@media print{body{background:#fff}.app-shell{width:100%;padding:0}.header-actions,.input-panel,.tools-drawer,.drawer-backdrop,footer,.annual-details{display:none!important}.planner-layout{display:block;padding:.5rem 0}.dashboard-stack{gap:.4rem}.chart-card,.dashboard-head,.kpi-card{box-shadow:none;break-inside:avoid}.wealth-chart{height:310px}.cashflow-chart{height:170px}}
