:root{color:#1c2925;font-synthesis:none;text-rendering:optimizelegibility;--ink:#1c2925;--muted:#66736e;--line:#dfe4de;--surface:#fffefa;--surface-2:#f0f2ec;--brand:#245f53;--brand-dark:#17463d;--accent:#dd873f;--danger:#aa3947;--success:#1f745e;--shadow:0 18px 48px #27342f17;background:#f6f5ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:#f6f5ef;min-width:320px}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #dd873f59}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:8px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,4vw,3.35rem);font-weight:500;line-height:1.02}h2{margin-bottom:5px;font-size:1.13rem}h3{margin-bottom:4px}p{color:var(--muted);line-height:1.55}small{color:var(--muted)}.button{cursor:pointer;border:1px solid #0000;border-radius:12px;min-height:42px;padding:9px 16px;font-weight:700;transition:all .16s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:wait;opacity:.58}.button.primary{color:#fff;background:var(--brand);box-shadow:0 8px 18px #245f532e}.button.primary:hover:not(:disabled){background:var(--brand-dark)}.button.secondary{border-color:var(--line);background:var(--surface)}.button.wide{width:100%}.text-button{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:7px 2px;font-weight:700}.icon-button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;width:40px;height:40px;font-size:1.45rem}.eyebrow{color:var(--brand);letter-spacing:.15em;text-transform:uppercase;margin-bottom:8px;font-size:.72rem;font-weight:800}.muted{color:var(--muted)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.positive{color:var(--success)!important}.negative{color:var(--danger)!important}label{color:#35423e;gap:7px;font-size:.84rem;font-weight:700;display:grid}input,select,textarea{width:100%;min-height:43px;color:var(--ink);background:#fff;border:1px solid #cfd7d1;border-radius:11px;padding:10px 12px}textarea{resize:vertical;min-height:74px}input[type=color]{max-width:100%;padding:4px}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--brand)}input[type=range]{accent-color:var(--brand);padding:0}input[aria-invalid=true]{border-color:#b74757;box-shadow:0 0 0 1px #b7475726}.field-hint,.field-error{font-size:.76rem;font-weight:600;line-height:1.35}.field-hint{color:var(--muted)}.field-error{color:#8f2938}.password-input{grid-template-columns:minmax(0,1fr) auto;display:grid}.password-input input{border-radius:11px 0 0 11px}.password-toggle{min-width:78px;color:var(--brand);background:var(--surface-2);border:1px solid #cfd7d1;border-left:0;border-radius:0 11px 11px 0;padding:0 12px;font-size:.78rem;font-weight:800}.password-toggle:hover{background:#e7eee9}fieldset{border:0;min-width:0;margin:0;padding:0}legend{color:#35423e;margin-bottom:8px;font-size:.84rem;font-weight:700}.form-grid{gap:15px;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.align-end{align-items:end}.form-actions,.dialog-actions,.header-actions{justify-content:flex-end;gap:10px;display:flex}.form-error,.form-success{border-radius:10px;margin:0;padding:10px 12px;font-size:.88rem}.form-error{color:#7c2632;background:#fae8ea}.form-success{color:#165b49;background:#e4f4ed}.form-success.floating{margin-bottom:18px}.center-state{text-align:center;place-content:center;justify-items:center;min-height:100vh;padding:32px;display:grid}.center-state.page-loading{min-height:calc(100vh - 72px)}.center-state h1{font-size:2rem}.brand-mark{color:#fff;background:var(--brand);border-radius:13px 13px 13px 4px;place-items:center;width:42px;height:42px;font-family:Georgia,serif;font-size:1.5rem;display:inline-grid}.brand-lockup{align-items:center;gap:11px;font-size:1.25rem;display:flex}.brand-lockup strong{letter-spacing:-.03em}.state-icon{width:44px;height:44px;color:var(--danger);background:#fae8ea;border-radius:50%;place-items:center;margin-bottom:14px;font-weight:900;display:grid}.auth-page{grid-template-columns:minmax(360px,.9fr) minmax(440px,1.1fr);min-height:100vh;display:grid}.auth-story{color:#fff;background:radial-gradient(circle at 75% 15%,#dd873f59,#0000 25%),linear-gradient(150deg,#163d35,#286b5e);flex-direction:column;justify-content:space-between;min-height:100%;padding:clamp(32px,6vw,84px);display:flex}.auth-story .brand-mark{color:var(--brand-dark);background:#f4e8d1}.auth-story h1{max-width:650px;font-size:clamp(2.7rem,5vw,5.2rem)}.auth-story p,.auth-story .eyebrow{color:#d9e9e3;max-width:570px}.auth-story blockquote{color:#f3dfc4;margin:0;font-family:Georgia,serif;font-size:1.15rem}.auth-panel{background:var(--surface);place-items:center;padding:32px;display:grid}.auth-card{width:min(430px,100%)}.auth-card h2{margin-bottom:26px;font-family:Georgia,serif;font-size:2rem;font-weight:500}.auth-card form{gap:16px;margin-bottom:12px;display:grid}.app-layout{min-height:100vh}.sidebar{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#faf9f4f5;border-right:1px solid #dce1db;flex-direction:column;width:238px;padding:28px 20px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar nav{gap:6px;margin-top:48px;display:grid}.sidebar nav a{color:#53605b;border-radius:11px;align-items:center;gap:12px;padding:11px 13px;font-size:.9rem;font-weight:650;text-decoration:none;display:flex}.sidebar nav a span{text-align:center;width:22px;font-size:1.15rem}.sidebar nav a:hover,.sidebar nav a.active{color:var(--brand-dark);background:#e6eeea}.sidebar-bottom{gap:8px;margin-top:auto;display:grid}.sidebar-bottom .text-button{justify-self:start}.app-main{min-height:100vh;margin-left:238px}.topbar{z-index:15;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f6f5efdb;border-bottom:1px solid #dae0dacc;justify-content:flex-end;align-items:center;min-height:72px;padding:12px clamp(24px,4vw,60px);display:flex;position:sticky;top:0}.mobile-brand{font-weight:800;display:none}.create-button{align-items:center;gap:5px;padding-inline:19px;display:flex}.page-content{width:min(1260px,100%);margin:0 auto;padding:48px clamp(24px,4vw,60px) 80px}.page-header{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:38px;display:flex}.page-header>div:first-child>p:last-child{margin-bottom:0}.page-header h1{margin-bottom:10px}.panel{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:25px;box-shadow:0 6px 25px #2938320a}.section-heading{justify-content:space-between;align-items:center;gap:18px;margin:30px 0 17px;display:flex}.section-heading:first-child{margin-top:0}.section-heading h2,.section-heading p{margin-bottom:0}.section-heading.compact{justify-content:flex-start;margin-top:28px}.step-badge{float:left;color:#fff;background:var(--brand);border-radius:50%;place-items:center;width:32px;height:32px;margin-right:10px;font-weight:800;display:inline-grid}.hero-balance{color:#fff;min-height:260px;box-shadow:var(--shadow);background:radial-gradient(circle at 80% 10%,#eca96c80,#0000 25%),linear-gradient(135deg,#17483f,#2b7566);border-radius:24px;justify-content:space-between;align-items:center;margin-bottom:22px;padding:clamp(30px,5vw,60px);display:flex;position:relative;overflow:hidden}.hero-balance>div:first-child{z-index:2;position:relative}.hero-balance span{color:#d5e6e0}.hero-balance strong{letter-spacing:-.04em;margin:12px 0;font-family:Georgia,serif;font-size:clamp(2.6rem,6vw,5.3rem);font-weight:400;display:block}.hero-balance p{color:#d5e6e0;margin:0}.hero-orbit{border:1px solid #fff3;border-radius:50%;place-items:center;width:160px;height:160px;display:grid;position:relative}.hero-orbit:before,.hero-orbit:after{content:"";border:1px solid #ffffff1f;border-radius:50%;position:absolute}.hero-orbit:before{inset:20px}.hero-orbit:after{inset:42px}.hero-orbit span{z-index:1;width:52px;height:52px;color:var(--brand-dark);background:#f6e6c9;border-radius:18px 18px 18px 5px;place-items:center;font-family:Georgia,serif;font-size:2rem;display:grid}.dashboard-grid{grid-template-columns:1.15fr .85fr;gap:22px;display:grid}.metric-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.metric-row div{background:var(--surface-2);border-radius:14px;padding:16px}.metric-row span,.metric-row strong{display:block}.metric-row span{color:var(--muted);margin-bottom:5px;font-size:.8rem}.metric-row strong{font-family:Georgia,serif;font-size:2rem}.budget-line{justify-content:space-between;align-items:end;gap:10px;margin:25px 0 14px;display:flex}.budget-line strong{font-size:1.35rem}.progress-track,.allocation-meter{background:#e3e7e3;border-radius:99px;height:8px;overflow:hidden}.progress-track span,.allocation-meter span{border-radius:inherit;background:var(--resource-color,var(--accent));height:100%;transition:width .3s;display:block}.privacy-chip{color:var(--success);background:#e2f1eb;border-radius:99px;flex:none;padding:7px 10px;font-size:.78rem;font-weight:700}.resource-grid{grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:16px;display:grid}.resource-card,.goal-card{border:1px solid var(--line);border-top:4px solid var(--resource-color);background:var(--surface);border-radius:16px;padding:20px}.resource-card{gap:14px;display:flex}.resource-card h3{margin:4px 0 12px}.resource-card p{margin:7px 0 0;font-size:.78rem}.resource-icon,.goal-icon{width:44px;height:44px;color:var(--resource-color);background:color-mix(in srgb, var(--resource-color) 13%, white);border-radius:13px;flex:none;place-items:center;font-weight:900;display:grid}.credit-card{color:#fff;min-height:190px;box-shadow:var(--shadow);border-radius:19px;flex-direction:column;padding:22px;display:flex}.credit-card small,.credit-card p,.credit-card span{color:#ffffffc4}.credit-card h3{margin-top:8px;font-size:1.25rem}.credit-card div{margin-top:auto}.credit-card strong{margin-top:3px;font-size:1.3rem;display:block}.credit-card p{margin:10px 0 0;font-size:.82rem}.goal-card{gap:13px;display:grid}.goal-card .goal-icon{width:40px;height:40px}.goal-values{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.goal-values span{color:var(--muted);font-size:.76rem}.goal-card.large{grid-template-columns:auto 1fr}.goal-card.large .progress-track,.goal-card.large .goal-values,.goal-card.large>p{grid-column:1/-1}.empty-card{text-align:center;background:#ffffff80;border:1px dashed #ccd4ce;border-radius:17px;place-content:center;justify-items:center;min-height:250px;padding:30px;display:grid}.empty-card>span{color:var(--brand);margin-bottom:10px;font-size:2rem}.empty-card p{max-width:500px}.empty-card.compact{min-height:120px}.form-panel{max-width:900px}.form-panel form{gap:17px;display:grid}.institution-step{gap:18px;display:grid}.institution-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.institution-grid button,.selected-institution{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px;display:flex}.institution-grid button:hover{border-color:var(--brand);background:#f2f7f4}.institution-avatar{width:38px;height:38px;color:var(--brand);background:#e3eeea;border-radius:11px;place-items:center;font-size:.72rem;font-weight:900;display:grid}.selected-institution{justify-content:flex-start}.selected-institution span:nth-child(2){display:grid}.selected-institution span:last-child{color:var(--brand);margin-left:auto;font-size:.8rem;font-weight:800}.check-label{align-items:center;gap:8px;display:flex}.card-check{border:1px solid var(--line);background:var(--surface-2);border-radius:11px;min-height:43px;padding:10px 12px}.period-nav{align-items:center;gap:7px;display:flex}.period-nav button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;width:40px;height:40px;font-size:1.5rem}.period-nav input{width:155px}.transaction-summary{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:20px;display:flex}.transaction-summary strong{font-size:1.25rem}.transaction-list article{border-bottom:1px solid #edf0ed;grid-template-columns:auto minmax(160px,1fr) auto auto minmax(130px,auto);align-items:center;gap:14px;padding:15px 2px;display:grid}.transaction-list article:last-child{border-bottom:0}.transaction-glyph{color:#20342d;border-radius:11px;place-items:center;width:38px;height:38px;font-weight:900;display:grid}.transaction-main h3,.transaction-main p{margin-bottom:0}.transaction-main h3{font-size:.95rem}.transaction-main p{margin-top:4px;font-size:.76rem}.transaction-list time{color:var(--muted);font-size:.8rem}.transaction-value{justify-items:end;display:grid}.transaction-value strong{font-size:.9rem}.loading-list{gap:11px;padding:30px 0;display:grid}.loading-list span{background:linear-gradient(90deg,#edf0ed,#f8faf8,#edf0ed) 0 0/200% 100%;border-radius:10px;height:48px;animation:1.2s infinite shimmer;display:block}.loading-list p{text-align:center}.page-tabs{background:#e7ebe6;border-radius:12px;gap:5px;width:fit-content;margin-bottom:22px;padding:4px;display:flex}.page-tabs button,.view-switch button{cursor:pointer;background:0 0;border:0;border-radius:9px;padding:9px 14px;font-weight:700}.page-tabs button.active,.view-switch button.active{color:var(--brand-dark);background:#fff;box-shadow:0 3px 10px #1e2d2714}.planning-layout{grid-template-columns:.8fr 1.2fr;align-items:start;gap:20px;display:grid}.planning-layout section{gap:18px;display:grid}.range-input{margin-top:8px}.budget-calculation{grid-template-columns:1fr auto 1fr auto 1.2fr;align-items:center;gap:11px;display:grid}.budget-calculation div{background:var(--surface-2);border-radius:12px;gap:5px;padding:13px;display:grid}.budget-calculation .highlight{color:#fff;background:var(--brand)}.budget-calculation .highlight span{color:#d7e6e1}.budget-calculation span{color:var(--muted);font-size:.73rem}.allocation-meter span{background:var(--brand)}.allocation-list{max-height:460px;display:grid;overflow:auto}.allocation-list label{border-bottom:1px solid #edf0ed;justify-content:space-between;align-items:center;gap:20px;padding:9px 2px;display:flex}.allocation-list label>span{align-items:center;gap:8px;display:flex}.allocation-list i,.accessible-legend i,table i{border-radius:50%;width:10px;height:10px;display:inline-block}.allocation-list input{text-align:right;width:145px}.report-toolbar{justify-content:space-between;align-items:end;gap:20px;margin-bottom:15px;display:flex}.report-toolbar label{width:min(410px,100%)}.view-switch{background:#e7ebe6;border-radius:11px;gap:4px;padding:4px;display:flex}.report-panel{min-height:530px}.report-loading,.inline-state{text-align:center;place-content:center;justify-items:center;min-height:450px;display:grid}.report-loading p,.inline-state p{max-width:500px}.chart-skeleton{align-items:end;gap:13px;height:210px;margin-bottom:20px;display:flex}.chart-skeleton span{background:linear-gradient(90deg,#dfe5e0,#f5f7f5,#dfe5e0) 0 0/200%;border-radius:7px 7px 2px 2px;width:45px;animation:1.2s infinite shimmer}.chart-skeleton span:first-child{height:45%}.chart-skeleton span:nth-child(2){height:80%}.chart-skeleton span:nth-child(3){height:60%}.chart-skeleton span:nth-child(4){height:100%}.report-total{border-bottom:1px solid var(--line);justify-items:center;padding-bottom:20px;display:grid}.report-total span{color:var(--muted);font-size:.82rem}.report-total strong{margin:5px 0;font-family:Georgia,serif;font-size:2.4rem;font-weight:500}.chart-layout{grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);align-items:center;gap:28px;padding-top:28px;display:grid}.chart-canvas{min-width:0}.accessible-legend{gap:4px;max-height:330px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.accessible-legend li{border-bottom:1px solid #edf0ed;grid-template-columns:auto minmax(80px,1fr) auto auto;align-items:center;gap:9px;padding:10px;font-size:.82rem;display:grid}.accessible-legend strong{text-align:right}.table-scroll{padding-top:20px;overflow-x:auto}table{border-collapse:collapse;width:100%}caption{text-align:left;color:var(--muted);padding:8px}th,td{border-bottom:1px solid var(--line);text-align:right;padding:14px}th:first-child{text-align:left}tbody th{font-weight:650}tbody th i{margin-right:8px}tfoot{background:var(--surface-2);font-weight:900}.dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#111d1994;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.dialog{background:var(--surface);border:1px solid #ffffff4d;border-radius:20px;width:min(800px,100%);max-height:calc(100vh - 48px);padding:25px;overflow-y:auto;box-shadow:0 30px 80px #0a191440}.dialog-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.dialog-header h2{font-family:Georgia,serif;font-size:1.7rem;font-weight:500}.dialog form{gap:16px;display:grid}.kind-picker{grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:20px;display:grid}.kind-picker button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;justify-items:center;gap:5px;min-height:72px;padding:9px;font-size:.75rem;font-weight:700;display:grid}.kind-picker button span{font-size:1.2rem}.kind-picker button.active{border-color:var(--brand);color:var(--brand-dark);box-shadow:inset 0 0 0 1px var(--brand);background:#e8f1ed}.money-input{grid-template-columns:78px 1fr;display:grid}.money-input select{z-index:1;background:var(--surface-2);border-radius:11px 0 0 11px}.money-input input{border-radius:0 11px 11px 0;margin-left:-1px}.date-shortcuts .segmented{grid-template-columns:auto auto 1fr;gap:7px;display:grid}.segmented>button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;align-self:end;min-height:43px;padding:9px 16px}.segmented>button.active{border-color:var(--brand);color:var(--brand);background:#e8f1ed}.date-other{grid-template-columns:auto 160px;justify-content:end;align-items:center}.tag-picker{flex-wrap:wrap;gap:7px;display:flex}.tag-option{border:1px solid color-mix(in srgb, var(--tag-color) 45%, #d8ded9);background:color-mix(in srgb, var(--tag-color) 8%, white);border-radius:99px;align-items:center;gap:6px;padding:6px 9px;font-size:.75rem;display:flex}.tag-option input{width:15px;min-height:15px}.advanced-box{background:var(--surface-2);border-radius:12px;gap:14px;padding:14px;display:grid}.toggle-row{gap:24px;display:flex}.goal-dialog{width:min(900px,100%)}.goal-template-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.goal-template-grid button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;justify-items:center;gap:6px;min-height:85px;padding:10px 5px;font-size:.73rem;font-weight:700;display:grid}.goal-template-grid button span{color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.goal-template-grid button.active{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:#e9f2ee}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=980px){.sidebar{border:0;border-top:1px solid var(--line);width:auto;height:69px;padding:7px 10px;inset:auto 0 0}.sidebar .brand-lockup,.sidebar-bottom{display:none}.sidebar nav{grid-template-columns:repeat(5,1fr);margin:0;display:grid}.sidebar nav a{justify-items:center;gap:1px;padding:5px 3px;font-size:.62rem;display:grid}.sidebar nav a span{font-size:1.05rem}.app-main{margin-left:0;padding-bottom:68px}.topbar{justify-content:space-between}.mobile-brand{display:block}.planning-layout,.dashboard-grid,.chart-layout{grid-template-columns:1fr}}@media (width<=700px){h1{font-size:2.35rem}.auth-page{grid-template-columns:1fr}.auth-story{display:none}.auth-panel{min-height:100vh;padding:24px}.page-content{padding:30px 16px 55px}.topbar{min-height:62px;padding:9px 16px}.page-header{flex-direction:column;align-items:stretch;margin-bottom:25px}.page-header .period-nav{justify-content:space-between;align-self:stretch}.page-header .period-nav input{flex:1}.hero-balance{min-height:225px}.hero-orbit{opacity:.45;position:absolute;right:-50px}.hero-balance strong{font-size:2.55rem}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.institution-grid{grid-template-columns:1fr 1fr}.resource-grid{grid-template-columns:1fr}.metric-row{grid-template-columns:repeat(3,1fr)}.panel{padding:18px}.transaction-panel{padding-inline:13px}.transaction-list article{grid-template-columns:auto minmax(0,1fr) auto;gap:9px}.transaction-list article>time,.transaction-list article>span{display:none}.transaction-value{grid-area:2/2/auto/-1;justify-items:start}.transaction-main p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.budget-calculation{grid-template-columns:1fr}.budget-calculation>span{display:none}.allocation-list label{flex-direction:column;align-items:stretch;gap:7px}.allocation-list input{text-align:left;width:100%}.report-toolbar{flex-direction:column;align-items:stretch}.view-switch{align-self:stretch}.view-switch button{flex:1}.report-total strong{font-size:1.9rem}.accessible-legend li{grid-template-columns:auto 1fr auto}.accessible-legend li small{grid-column:2}.dialog-backdrop{align-items:end;padding:0}.dialog{border-radius:22px 22px 0 0;width:100%;max-height:94vh;padding:20px 16px}.kind-picker{grid-template-columns:repeat(2,1fr)}.date-shortcuts .segmented{grid-template-columns:1fr 1fr}.date-other{grid-column:1/-1;grid-template-columns:1fr;justify-content:stretch}.dialog-actions{flex-wrap:wrap}.dialog-actions .button{flex:135px}.goal-template-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
