:root{color-scheme:light;--bg:#f7f6ee;--paper:#fffef9;--ink:#25372d;--muted:#687368;--line:#dfe3d6;--green:#3e6649;--green-dark:#2e5038;--sage:#e6eddf;--spend:#d17a4c;--save:#527252;--grow:#7c75a5;--give:#b0707b;--shadow:0 12px 35px #30482c09;font-family:Inter,"Segoe UI",system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.55}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8d9c66;outline-offset:4px}button{color:inherit}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-1.5px;font-size:clamp(34px,5vw,48px)}h2{font-size:23px;letter-spacing:-.7px;font-weight:600}h3{font-size:17px;font-weight:600}.site-header{max-width:1160px;margin:auto;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:20px;font-weight:650;letter-spacing:-.5px}.brand-mark{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;background:var(--green);color:#fffef4;border-radius:15px 15px 6px 15px;font-size:33px;line-height:1}.brand small{display:block;font-size:8px;letter-spacing:1.6px;font-weight:650;margin-top:2px;color:var(--muted)}.header-actions{display:flex;gap:12px;align-items:center}.icon-button{border:0;background:transparent;width:38px;height:38px;border-radius:50%;font-size:24px;display:grid;place-items:center}.icon-button:hover{background:var(--sage)}.mode-button{background:transparent;border:1px solid #cdd5c6;border-radius:24px;font-size:12px;font-weight:600;padding:9px 15px}.mode-button span{margin-left:8px}.mode-button.active{background:var(--green);border-color:var(--green);color:#fff}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:700;color:var(--muted)}main{max-width:1160px;padding:22px 36px 30px;margin:auto;min-height:70vh}.greeting{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:10px 0 28px}.greeting h1{margin-top:8px}.greeting h1 em{font-style:normal;color:var(--green)}.greeting p:not(.eyebrow){margin-top:9px;color:var(--muted);font-size:14px}.date-label{color:var(--muted);font-size:12px;padding-bottom:5px;white-space:nowrap}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px}.balance-card{background:var(--sage);border:1px solid #dce4d2;border-radius:23px;padding:28px 30px;position:relative;overflow:hidden;min-height:178px;display:flex;justify-content:space-between;align-items:center;gap:15px}.balance-title{font-size:12px;letter-spacing:.3px}.balance-value{font-size:56px;letter-spacing:-3px;line-height:1.2;font-weight:550;font-variant-numeric:tabular-nums;margin:6px 0}.balance-caption{color:#5c6e55;font-size:12px}.plant{width:145px;height:130px;flex-shrink:0}.jar-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:27px 0 14px}.section-meta{font-size:11px;color:var(--muted)}.jar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.jar-card{appearance:none;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:17px 14px 14px;min-width:0;transition:transform .15s,border-color .15s}.jar-card:hover{transform:translateY(-3px);border-color:#a7b49a}.jar-illustration{height:70px;display:flex;justify-content:center;align-items:center;margin-bottom:12px}.jar-illustration svg{width:59px;height:67px}.jar-name{display:block;font-size:13px;font-weight:600}.jar-balance{display:block;font-size:22px;font-weight:550;letter-spacing:-.7px;font-variant-numeric:tabular-nums;margin-top:2px}.jar-description{display:block;font-size:10px;color:var(--muted);margin-top:4px;line-height:1.4}.money-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:19px}.button{border:1px solid var(--line);background:var(--paper);border-radius:11px;padding:11px 16px;font-size:13px;font-weight:600;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.button.primary:hover{background:var(--green-dark)}.button.quiet{background:transparent}.button.danger{color:#a24135}.button.full{width:100%}.button .plus{font-size:19px;font-weight:400;line-height:1}.side-stack{display:flex;flex-direction:column;gap:18px}.goal-card,.payday-card,.story-card{border:1px solid var(--line);border-radius:19px;background:var(--paper);padding:22px}.goal-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.text-button{background:none;border:0;padding:4px 0;font-size:12px;font-weight:600;color:var(--green);text-decoration:none;min-height:30px}.goal-emoji{font-size:40px;text-align:center;margin:14px 0 7px}.goal-card h3{text-align:center;overflow-wrap:anywhere}.goal-progress-label{display:flex;justify-content:space-between;font-size:12px;margin:16px 0 8px;gap:8px}.progress-track{height:8px;background:#e9ece0;border-radius:8px;overflow:hidden}.progress-track>span{display:block;height:100%;background:var(--green);border-radius:8px}.goal-note{font-size:11px;color:var(--muted);margin-top:11px}.empty-goal{font-size:13px;text-align:center;color:var(--muted);margin:8px 0 16px}.payday-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.small-symbol{display:grid;place-items:center;width:33px;height:33px;background:var(--sage);border-radius:10px;font-size:20px;color:var(--green)}.payday-card h3{font-size:16px;margin-bottom:5px}.payday-card p{font-size:12px;color:var(--muted)}.payday-split{display:flex;margin:15px 0 9px;gap:2px;height:5px;border-radius:6px;overflow:hidden}.payday-label{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;margin-top:28px}.activity-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.activity-list{border-top:1px solid var(--line)}.activity-row{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:14px 1px}.activity-symbol{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;background:var(--sage);color:var(--green);font-size:18px;flex-shrink:0}.activity-symbol.expense{background:#f4e9de;color:#ae633c}.activity-symbol.transfer{background:#ece9f2;color:#7b7299}.activity-content{min-width:0;flex:1}.activity-name{font-size:13px;font-weight:550;overflow-wrap:anywhere}.activity-detail{font-size:10px;color:var(--muted);margin-top:3px;display:flex;gap:7px;flex-wrap:wrap}.activity-amount{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.activity-amount.positive{color:var(--green)}.undo-button{width:32px;min-height:36px;background:none;border:0;color:var(--muted);font-size:17px}.activity-empty{padding:35px 12px;text-align:center;color:var(--muted);font-size:13px}.activity-empty strong{display:block;color:var(--ink);font-weight:550;margin:8px 0 5px}.story-card{background:transparent}.story-card p{font-size:12px;color:var(--muted);margin-top:9px}.story-card .quote{font-family:Georgia,serif;font-size:20px;line-height:1.45;color:var(--green);margin-top:14px}.mini-chart{width:100%;height:85px;margin-top:16px;display:block;overflow:visible}.chart-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:6px}.site-footer{max-width:1160px;margin:10px auto 0;padding:24px 36px 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;color:var(--muted);font-size:11px}.site-footer>span:first-child{font-family:Georgia,serif;font-style:italic;font-size:13px}.connection-dot{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin-right:6px}.connection-dot.offline{background:#bd8152}.banner{border:1px solid #dbc7a0;background:#fbf2df;color:#73552b;padding:12px 15px;border-radius:12px;margin-bottom:18px;font-size:12px}.banner .text-button{margin-left:8px;color:inherit}.parent-toolbar{display:flex;gap:9px;flex-wrap:wrap;padding-bottom:17px;margin-bottom:20px;border-bottom:1px solid var(--line)}.parent-toolbar .button{font-size:12px;padding:8px 12px;min-height:36px}.install-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-top:20px;font-size:12px}.setup-container{max-width:650px;margin:20px auto}.setup-container>p{color:var(--muted);margin:14px 0 25px}.setup-form{border:1px solid var(--line);background:var(--paper);border-radius:21px;padding:27px}.field{display:flex;flex-direction:column;gap:6px;min-width:0;margin-bottom:17px}.field label{font-size:12px;font-weight:600}.field input,.field select{width:100%;border:1px solid #ccd5c5;background:#fffefb;color:var(--ink);border-radius:10px;padding:11px 12px;min-height:45px;outline-offset:2px}.field small,.form-note{font-size:11px;color:var(--muted);line-height:1.5}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.split-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.split-fields input{padding:10px 8px}.split-total{font-size:11px;margin-bottom:17px;color:var(--muted)}.check-field{display:flex;align-items:center;gap:10px;font-size:13px;margin-bottom:17px}.check-field input{width:18px;height:18px;accent-color:var(--green)}.form-error{color:#a13e30;font-size:12px;margin:10px 0;min-height:18px}.form-buttons{display:flex;gap:10px;justify-content:end;margin-top:22px}.form-note{margin:8px 0 14px}.setup-intro{margin-bottom:26px}.form-section{border-top:1px solid var(--line);padding-top:20px;margin-top:18px}.form-section h3{font-size:14px;margin-bottom:12px}dialog{border:1px solid var(--line);border-radius:21px;padding:25px;background:var(--paper);color:var(--ink);width:calc(100% - 32px);max-width:480px;max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 25px 100px #25372d26}dialog::backdrop{background:#26362d66;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;gap:15px;align-items:start;margin-bottom:23px}.modal-head h2{font-family:Georgia,serif;font-size:28px;font-weight:400;margin-top:5px}.modal-head .eyebrow{font-size:9px}.modal-description{font-size:13px;color:var(--muted);margin-bottom:18px}.modal-balance{font-size:43px;letter-spacing:-2px;font-variant-numeric:tabular-nums;margin:5px 0 16px}.jar-detail-list{max-height:240px;overflow:auto}.jar-detail-list .activity-row{padding:10px 0}.badge{display:inline-flex;padding:1px 5px;border-radius:4px;background:#f3e5c8;color:#795b2b;font-size:9px;line-height:1.5}.badge.undone{background:#e9e9e2;color:var(--muted)}.pending-panel{margin:15px 0;font-size:12px}.pending-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.pending-row>div{flex:1}.pending-row p{font-size:11px;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:13px 21px;border-radius:12px;font-size:13px;box-shadow:var(--shadow);max-width:calc(100% - 32px);z-index:20;width:max-content;text-align:center}.loading{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;min-height:350px;color:var(--muted)}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.empty-offline{text-align:center;max-width:500px;margin:80px auto}.empty-offline p{margin:16px 0 25px;color:var(--muted)}.parent-note{font-size:11px;color:var(--muted);margin-top:12px}.all-history-controls{display:flex;gap:8px;align-items:center;margin-top:15px}.file-input{display:none}.danger-text{color:#a13e30}.setup-welcome{font-size:40px;margin-bottom:12px}.grow-notice{font-size:11px;color:var(--muted);margin-top:15px;padding-top:12px;border-top:1px solid var(--line)}
body.eink{--bg:#fff;--paper:#fff;--ink:#000;--muted:#333;--line:#777;--green:#111;--green-dark:#000;--sage:#f0f0f0;--spend:#333;--save:#000;--grow:#555;--give:#777;--shadow:none;font-size:17px}body.eink *{transition:none!important;animation:none!important;box-shadow:none!important}body.eink .jar-card{border:2px solid #000}body.eink .jar-description,body.eink .goal-note,body.eink .activity-detail,body.eink .section-meta{font-size:12px}body.eink .plant,body.eink .jar-illustration{filter:grayscale(1)}body.eink .activity-symbol,body.eink .balance-card{background:#fff;border:1px solid #000}body.eink .balance-caption{color:#222}body.eink dialog::backdrop{backdrop-filter:none;background:#0008}
@media(min-width:1200px){main{padding-top:30px}.greeting{margin-bottom:32px}.balance-card{min-height:190px}.jar-card{padding-top:22px;padding-bottom:18px}}
@media(max-width:900px){.dashboard-grid,.bottom-grid{grid-template-columns:minmax(0,1fr) 270px;gap:18px}.jar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jar-card{display:grid;grid-template-columns:58px 1fr;column-gap:12px;padding:15px 12px}.jar-illustration{grid-row:1/4;height:66px;margin:0}.jar-name{align-self:end}.jar-description{margin-top:1px}.jar-balance{font-size:21px}.site-header,main,.site-footer{padding-left:24px;padding-right:24px}.balance-value{font-size:48px}.plant{width:115px}.balance-card{padding:23px}.date-label{display:none}}
@media(max-width:650px){.site-header{padding:21px 20px 14px}.brand{font-size:18px}.brand small{font-size:7px;letter-spacing:1.1px}.brand-mark{width:36px;height:36px;font-size:29px;border-radius:12px 12px 4px 12px}.header-actions{gap:4px}.mode-button{font-size:11px;padding:8px 11px}.mode-button span{margin-left:3px}.icon-button{width:32px;height:36px}.site-header .icon-button{font-size:22px}main{padding:18px 20px 25px}.greeting{margin:5px 0 22px}.greeting h1{font-size:36px;letter-spacing:-1.3px}.greeting p:not(.eyebrow){font-size:12px}.greeting .eyebrow{font-size:9px}.dashboard-grid,.bottom-grid{grid-template-columns:1fr;gap:21px}.balance-card{min-height:158px;border-radius:18px;padding:23px}.balance-value{font-size:48px}.plant{width:120px;height:110px}.jar-heading{margin-top:25px}.jar-heading h2,.activity-head h2{font-size:20px}.jar-grid{gap:10px}.jar-card{grid-template-columns:49px 1fr;gap:0 10px;padding:15px 11px;border-radius:14px}.jar-illustration svg{width:46px;height:57px}.jar-description{font-size:10px}.jar-name{font-size:12px}.jar-balance{font-size:23px}.money-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.money-actions .button:first-child{grid-column:1/-1}.money-actions .button{padding:11px 9px}.side-stack{display:grid;grid-template-columns:1fr;gap:15px}.goal-card{padding:19px 21px;display:grid;grid-template-columns:53px minmax(0,1fr);gap:0 15px}.goal-top{grid-column:1/-1;margin-bottom:12px}.goal-emoji{grid-column:1;grid-row:2/5;margin:6px 0;font-size:38px;align-self:center}.goal-card h3{grid-column:2;text-align:left;font-size:16px}.goal-progress-label{grid-column:2;margin:8px 0 6px;font-size:11px}.goal-card .progress-track{grid-column:2}.goal-note{grid-column:1/-1;font-size:11px;margin-top:13px}.empty-goal{grid-column:2;margin-bottom:0;font-size:12px;text-align:left}.goal-card .full{grid-column:1/-1;margin-top:12px}.payday-card{padding:19px 21px}.payday-head{margin-bottom:9px}.payday-split{margin-top:12px}.bottom-grid{margin-top:25px}.story-card{padding:20px}.story-card .quote{font-size:20px}.site-footer{padding:19px 20px 25px;font-size:10px;align-items:start;flex-wrap:wrap;gap:9px}.site-footer>span:first-child{font-size:12px}.activity-row{gap:10px}.activity-amount{font-size:13px}.setup-container{margin:8px auto}.setup-form{padding:21px}.setup-container h1{font-size:34px}.two-fields{gap:12px}.split-fields{gap:7px}.field input,.field select{font-size:16px}.modal-head h2{font-size:26px}dialog{padding:22px}.parent-toolbar{gap:7px}.parent-toolbar .button{font-size:11px;padding:7px 10px}.install-banner{align-items:start}.balance-caption{font-size:11px}}
@media(max-width:360px){.site-header,main,.site-footer{padding-left:14px;padding-right:14px}.brand small{display:none}.header-actions{gap:0}.mode-button{padding:7px 9px}.plant{width:90px}.balance-card{padding:20px}.jar-card{grid-template-columns:40px 1fr;column-gap:7px;padding:13px 8px}.jar-illustration svg{width:40px}.jar-balance{font-size:21px}.jar-description{font-size:9px}.two-fields{grid-template-columns:1fr}.greeting h1{font-size:33px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.mode-button{white-space:nowrap;flex-shrink:0}.setup-intro>p:not(.eyebrow){color:var(--muted);font-size:14px;margin-top:14px}
.auth-links{display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;margin-top:18px}.auth-notice{background:var(--sage);border:1px solid var(--line);border-radius:10px;font-size:13px;padding:13px;margin-bottom:18px;line-height:1.6}.auth-captcha{min-height:140px;margin:8px 0;max-width:100%;display:flex;justify-content:center}
.rewards-section{margin-top:30px}.rewards-section h2{margin-top:5px}.rewards-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.reward-card{background:var(--paper);border:1px solid var(--line);border-radius:19px;padding:24px;min-width:0}.reward-card h3{margin-top:9px;font-size:19px}.reward-caption{color:var(--muted);font-size:12px;margin-top:9px;line-height:1.6}.chore-list{margin-top:17px}.chore-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:15px 0;background:none;border:0;border-top:1px solid var(--line);min-height:64px;color:var(--ink);font-size:13px}.chore-button>span{overflow-wrap:anywhere;min-width:0}.chore-button small{display:block;font-size:11px;margin-top:4px;color:var(--muted)}.chore-button strong{white-space:nowrap;color:var(--green);font-size:14px}.time-balance{font-family:Georgia,serif;font-size:42px;line-height:1.2;overflow-wrap:anywhere;margin:14px 0 7px;color:var(--green);font-variant-numeric:tabular-nums}.time-negative .time-balance{color:#945e34}.time-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.time-actions .button{font-size:12px;padding:10px 12px}.timer-panel{border-top:1px solid var(--line);margin-top:23px;padding-top:19px;font-size:13px}.timer-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.timer-elapsed{font-size:26px;font-variant-numeric:tabular-nums}.reward-edit-row{border-top:1px solid var(--line);padding:19px 0}.reward-edit-row .field{margin-bottom:10px}.reward-edit-row .field label{display:flex;flex-direction:column;gap:7px}body.eink .time-balance,body.eink .time-negative .time-balance{color:#000}
@media(max-width:650px){.rewards-grid{grid-template-columns:1fr;gap:15px}.reward-card{padding:21px}.rewards-section>.activity-head{align-items:start}.rewards-section h2{font-size:23px}.rewards-section .eyebrow{font-size:8px}.rewards-section>.activity-head .text-button{white-space:nowrap}.time-balance{font-size:37px}.time-actions .button{flex:1}.timer-heading{flex-wrap:wrap}}
@media(max-width:650px){.site-header .brand small{display:none}.site-header{gap:10px}}
