:root{--ink:#20211f;--muted:#767972;--quiet:#a1a39d;--canvas:#f4f3ee;--panel:#fffefb;--sidebar:#faf9f5;--line:#e6e4dd;--line-strong:#d8d5cd;--accent:#234a80;--accent-dark:#17365f;--accent-soft:#eaf0f8;--moss:#71836a;--shadow:0 18px 48px #302b2214;--font-body:Optima, "Trebuchet MS", sans-serif;--brand-household-size:24px;--brand-finhub-size:18px;--snapshot-members-size:10px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);font-family:var(--font-body);font-variant-numeric:tabular-nums;background:#eae8e2;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #234a803d}.app-shell{background:var(--canvas);grid-template-columns:280px minmax(0,1fr);max-width:1540px;min-height:100vh;margin:0 auto;display:grid;overflow:hidden;box-shadow:0 0 50px #21201c14}.sidebar{border-right:1px solid var(--line);background:var(--sidebar);flex-direction:column;min-width:0;padding:28px 20px 20px;display:flex}.brand{color:var(--ink);letter-spacing:-.7px;align-items:center;gap:14px;padding:0 8px 34px;font-size:19px;font-weight:700;text-decoration:none;display:flex}.brand-mark{color:#fff;background:var(--accent);border-radius:14px;place-items:center;width:48px;height:48px;font-size:24px;font-weight:700;display:grid}.brand-name{gap:0;width:min(100%,165px);min-width:0;max-width:165px;display:grid}.brand-household-name{font-family:var(--font-body);font-size:var(--brand-household-size);white-space:nowrap;font-weight:600;display:block}.brand-fin-hub{font-family:Georgia,Times New Roman,serif;font-size:var(--brand-finhub-size);font-weight:700;display:block}.nav-list{gap:4px;display:grid}.nav-link{color:#666962;border-radius:9px;align-items:center;gap:11px;padding:10px 11px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.nav-link .nav-icon{color:#999c95;text-align:center;flex:0 0 14px;place-items:center;width:14px;height:14px;display:grid}.nav-link .nav-icon svg{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:14px;height:14px}.nav-link:hover{color:var(--ink);background:#f1efe9}.nav-link.active{color:var(--ink);background:#ece9e1;font-size:16px}.nav-link.active span{color:var(--accent)}.nav-link.active .nav-icon{flex-basis:16px;width:16px;height:16px}.nav-link.active .nav-icon svg{width:16px;height:16px}.spend-snapshot{border:1px solid var(--line);background:#ffffff94;border-radius:14px;margin-top:30px;margin-bottom:28px;padding:15px}.spend-snapshot>small{color:var(--muted);font-size:var(--snapshot-members-size);margin-top:8px;display:block}.snapshot-heading{color:var(--quiet);letter-spacing:1px;text-transform:uppercase;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:9px;font-weight:700;display:flex}.live-dot{background:#7e9a75;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #eaf0e7}.snapshot-total{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;display:flex}.snapshot-total span{color:var(--muted);font-size:11px}.snapshot-total strong{letter-spacing:-.6px;font-size:19px}.today-total strong{color:var(--accent-dark)}.budget-progress{border-top:1px solid var(--line);padding-top:13px}.budget-progress>div:first-child{color:var(--muted);justify-content:space-between;font-size:10px;display:flex}.budget-progress b{color:var(--ink);font-weight:600}.progress-track{background:#e5e3dc;border-radius:10px;height:4px;margin:8px 0 6px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--moss);width:62%;height:100%;display:block}.budget-progress small{color:var(--quiet);font-size:9px}.centered-screen,.setup-screen{background:var(--canvas);place-items:center;min-height:100vh;padding:24px;display:grid}.setup-card{border:1px solid var(--line-strong);background:var(--panel);width:min(100%,500px);box-shadow:var(--shadow);border-radius:20px;padding:34px}.setup-card .brand-mark{margin-bottom:26px}.setup-card h1,.modal-card h2{letter-spacing:-1.4px;margin:0;font-size:32px}.setup-card p,.modal-card p{color:var(--muted);font-size:14px;line-height:1.55}.quiet-copy{font-size:12px!important}.stack-form{gap:15px;margin-top:24px;display:grid}.stack-form label,.expense-details label,.invite-link-label{color:var(--muted);gap:6px;font-size:11px;font-weight:700;display:grid}.stack-form input,.stack-form textarea,.inline-form input{border:1px solid var(--line-strong);width:100%;color:var(--ink);background:#fff;border-radius:9px;padding:11px 12px}.form-message{background:var(--accent-soft);border-radius:9px;padding:10px 12px;color:#8c402e!important;font-size:12px!important}.full-width{justify-content:center;width:100%}.text-button,.secondary-button,.inline-form button,.row-actions button{color:var(--accent-dark);background:0 0;border:0;font-size:11px;font-weight:700}.secondary-button{border:1px solid var(--line-strong);color:var(--ink);background:var(--panel);border-radius:9px;padding:9px 12px}.text-nav{text-align:left;background:0 0;border:0;width:100%}.household-title{margin-top:-4px;font-size:16px;display:block}.sync-status{color:var(--muted);background:0 0;border:0;align-items:center;gap:7px;padding:7px 9px;font-size:10px;font-weight:600;display:inline-flex}.topbar-profile{order:2;align-items:center;gap:9px;display:flex}.topbar-profile strong,.topbar-profile small{display:block}.topbar-profile strong{font-size:11px}.topbar-profile small{color:var(--quiet);margin-top:2px;font-size:9px}.logout-button{color:var(--accent-dark);background:0 0;border:0;order:3;padding:4px;font-size:23px;line-height:1}.sync-failed i,.entry-sync.failed{background:var(--accent)!important}.ledger-tools{flex-wrap:wrap;gap:9px;margin:16px 0 24px;display:flex}.entry-sync{color:#5d6e56;text-transform:capitalize;background:#edf2e9;border-radius:5px;flex:none;padding:3px 6px;font-size:8px;font-weight:700}.entry-sync.pending{color:#8c6b2f;background:#fbf2dc}.recent-item{grid-template-columns:minmax(115px,.55fr) minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.recent-item>div{min-width:0}.entry-summary{justify-items:start;gap:5px;display:grid}.entry-details{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.recent-item small{display:block}.row-actions{gap:5px;display:flex}.row-actions button:last-child{color:#a34834}.empty-state{border:1px dashed var(--line-strong);color:var(--muted);text-align:center;border-radius:12px;margin:0;padding:22px;font-size:13px}.catalog-panel{border:1px solid var(--line);background:#fffefbb8;border-radius:16px;width:min(100%,620px);margin:0;padding:20px}.catalog-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.invite-from-household{margin:0 0 18px}.cancel-edit{margin:10px 0 -10px}.catalog-columns h3{margin:0 0 10px;font-size:13px}.catalog-columns ul{color:var(--muted);gap:6px;margin:0 0 12px;padding:0;font-size:12px;list-style:none;display:grid}.inline-form{gap:6px;display:flex}.inline-form input{width:170px;min-width:0;height:30px;padding:5px 8px}.inline-form button{width:34px;height:34px;padding:0;font-size:20px;line-height:1}.modal-backdrop{z-index:5;background:#20211f66;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:var(--panel);width:min(100%,480px);box-shadow:var(--shadow);border-radius:18px;padding:30px;position:relative}.modal-close{color:var(--muted);background:0 0;border:0;font-size:24px;position:absolute;top:12px;right:14px}.invite-link-label{margin-top:16px}.invite-link-label textarea{resize:vertical;min-height:82px}.profile{border-top:1px solid var(--line);align-items:center;gap:9px;margin-top:auto;padding:18px 7px 2px;display:flex}.avatar{color:#fff;background:#596c81;border:0;border-radius:50%;flex:none;place-items:center;width:29px;height:29px;font-size:11px;font-weight:700;display:grid}.profile strong,.profile small{display:block}.profile strong{font-size:11px}.profile small{color:var(--quiet);margin-top:2px;font-size:9px}.quiet-button{color:var(--quiet);letter-spacing:1px;background:0 0;border:0;margin-left:auto}.workspace{background:radial-gradient(circle at 50% 13%, #f0cdae42, transparent 30%), var(--canvas);min-width:0}.topbar{border-bottom:1px solid #e6e4ddbf;justify-content:space-between;align-items:center;min-height:82px;padding:0 clamp(24px,5vw,68px);display:flex}.topbar-left{align-items:center;gap:24px;min-width:0;display:flex}.topbar-actions{align-items:center;gap:16px;display:flex}.refresh-button{border:1px solid var(--line-strong);color:var(--accent-dark);background:var(--panel);border-radius:8px;padding:7px 10px;font-size:10px;font-weight:700}.date-control{gap:4px;min-width:166px;display:grid}.date-control>span,.streak-card span{color:var(--quiet);letter-spacing:1px;text-transform:uppercase;font-size:8px;font-weight:700}.date-control input{width:100%;color:var(--ink);letter-spacing:-.4px;background:0 0;border:0;padding:0;font-size:17px;font-weight:700}.streak-card{border-left:1px solid var(--line);grid-template-columns:102px minmax(170px,270px);align-items:center;gap:12px;min-width:0;padding-left:24px;display:grid}.streak-card strong{color:var(--accent-dark);letter-spacing:-.3px;margin-top:3px;font-size:14px;display:block}.streak-message{color:#63665f;text-align:left;background:0 0;border:0;padding:0;font-size:10px;line-height:1.35}.streak-message:hover{color:var(--accent-dark)}.sync-status i{background:#78916f;border-radius:50%;width:9px;height:9px}.sync-status.sync-saved{font-size:20px}.capture-stage{width:min(100%,780px);margin:0 auto;padding:92px 26px 50px}.page-hidden{display:none}.page-heading,.list-page,.household-page{width:min(100%,900px);margin:0 auto;padding:46px 26px 50px}.page-heading h1{letter-spacing:-2px;margin:0;font-size:clamp(34px,4vw,46px);font-weight:600;line-height:1.05}.page-heading p{color:var(--muted);margin:9px 0 0;font-size:13px}.household-section,.filter-panel,.activity-group{border:1px solid var(--line-strong);background:var(--panel);box-shadow:var(--shadow);border-radius:16px;margin-top:24px;padding:22px}.household-name-section{justify-content:space-between;align-items:end;gap:18px;display:flex}.household-name-section h2{margin:0;font-size:24px}.household-name-copy{min-width:0}.household-name-edit{margin:0}.household-name-edit input{border:0;border-bottom:2px solid var(--accent);width:min(100%,420px);color:var(--ink);background:0 0;border-radius:0;outline:0;padding:0;font-size:24px;font-weight:600}.household-label,.recent-heading .household-label{color:var(--accent);font-size:9px}.edit-household-button{color:var(--accent-dark);background:0 0;border:0;align-self:center;padding:6px;font-size:22px;line-height:1}.edit-household-button:disabled{cursor:wait;opacity:.55}.filter-heading{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:11px;font-weight:700;display:flex}.filter-heading label{align-items:center;gap:8px;font-size:10px;font-weight:500;display:flex}.filter-heading select{border:1px solid var(--line);color:var(--ink);background:var(--panel);border-radius:7px;padding:6px 8px;font-size:10px}.comma-list{color:var(--muted);margin:0 0 14px;font-size:14px;line-height:1.8}.household-section .recent-heading h2{font-size:20px}.filter-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.filter-bar select,.filter-bar input{border:1px solid var(--line);min-width:0;color:var(--ink);background:#faf9f6;border-radius:8px;padding:10px;font-size:11px}.activity-groups{gap:14px;display:grid}.activity-group{margin-top:14px;padding:14px}.activity-group h2{color:var(--muted);text-transform:uppercase;letter-spacing:.7px;margin:0 0 9px;font-size:11px}.activity-group .recent-item{border:1px solid var(--line);background:#fff;border-radius:10px;margin-top:7px}.activity-group .entry-details{font-size:14px}.expense-hero{color:var(--ink);letter-spacing:-.5px;font-size:18px!important}.embedded-invite h2{margin:0 0 4px;font-size:20px}.embedded-invite>.eyebrow{margin-bottom:4px}.invite-form{grid-template-columns:minmax(0,1fr) auto;align-items:end}.embedded-invite>p{color:var(--muted);margin:0 0 10px;font-size:14px;line-height:1.45}.invite-form .save-button{justify-self:end;width:auto;min-width:0;padding-left:12px}.intro{text-align:left;margin-bottom:22px}.eyebrow{color:var(--accent);letter-spacing:1.4px;margin:0 0 8px;font-size:9px;font-weight:700;display:block}.intro h1{letter-spacing:-2px;margin:0;font-size:clamp(34px,4vw,46px);font-weight:600;line-height:1.05}.intro p{color:var(--muted);margin:9px 0 0;font-size:13px}input::placeholder,textarea::placeholder{opacity:.75;font-size:.8em}.expense-composer{border:1px solid var(--line-strong);box-shadow:var(--shadow);background:#fffefbf5;border-radius:20px;overflow:hidden}.amount-section,.category-section{padding:24px 26px}.section-label{color:var(--muted);justify-content:space-between;align-items:center;font-size:10px;font-weight:600;display:flex}.section-label>span:last-child,.section-label button{color:var(--quiet);background:0 0;border:0;font-size:9px;font-weight:600}.section-label button{color:var(--accent-dark)}.amount-entry{border-bottom:1px solid var(--line);align-items:center;min-height:72px;display:flex}.currency{color:var(--quiet);font-size:34px;font-weight:500}.amount-entry input{width:100%;min-width:0;color:var(--ink);letter-spacing:-2.5px;background:0 0;border:0;outline:0;padding:4px 9px;font-size:48px;font-weight:600}.amount-entry input::placeholder{color:#ccc9c1}.clear-amount{color:var(--quiet);background:0 0;border:0;padding:6px 8px;font-size:10px;font-weight:600}.quick-amounts{flex-wrap:wrap;align-items:center;gap:7px;padding-top:13px;display:flex}.quick-amounts>span{color:var(--quiet);margin-right:2px;font-size:9px;font-weight:600}.quick-amounts button{border:1px solid var(--line);color:#555850;background:#faf9f5;border-radius:8px;padding:6px 9px;font-size:10px;font-weight:600}.quick-amounts button:hover{background:#fff;border-color:#cbc7be}.quick-amounts small{color:var(--quiet);margin-left:3px;font-size:9px;font-weight:500}.category-section{border-top:1px solid var(--line)}.category-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.category{border:1px solid var(--line);color:#63665f;text-align:left;background:0 0;border-radius:11px;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:9px;font-size:14px;transition:all .18s;display:grid}.category>b,.recent-icon{border-radius:7px;place-items:center;font-size:9px;font-style:normal;font-weight:700;display:grid}.category>b{width:25px;height:25px}.category>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.category>i{color:var(--accent);font-size:10px;font-style:normal}.category:hover{border-color:#c9c5bc;transform:translateY(-1px)}.category.selected{color:var(--ink);background:var(--accent-soft);border-color:#8fa7c8}.sage{color:#60755a;background:#e9f0e6}.clay{color:#bf5e42;background:#fae8df}.slate{color:#5d7488;background:#e5edf2}.sand{color:#8a7353;background:#f3eadc}.expense-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#faf9f6;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.expense-details label,.date-detail{border-right:1px solid var(--line);gap:4px;min-width:0;padding:13px 15px;display:grid}.expense-details>:last-child{border-right:0}.expense-details span{color:var(--quiet);text-transform:uppercase;letter-spacing:.8px;grid-column:1/-1;font-size:8px;font-weight:600}.expense-details b{font-size:14px;font-weight:600}.expense-details select,.expense-details input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;padding:0;font-size:14px;font-weight:600}.expense-details select{cursor:pointer;font-size:14px}.expense-details input::placeholder{color:#aaa9a2;font-weight:500}.date-detail small{color:var(--accent-dark);letter-spacing:.4px;text-transform:uppercase;font-size:8px;font-weight:700}.save-row{justify-content:space-between;align-items:center;gap:18px;padding:17px 18px 17px 26px;display:flex}.save-summary span,.save-summary small{display:block}.save-summary span{color:#5f625b;font-size:10px;font-weight:600}.save-summary small{color:var(--quiet);margin-top:3px;font-size:9px}.save-action{justify-items:end;gap:4px;display:grid}.saving-for{color:var(--accent-dark);font-size:10px;font-weight:700}.save-button{color:#fff;background:var(--accent);border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:20px;min-width:170px;padding:12px 14px 12px 16px;font-size:11px;font-weight:700;transition:all .18s;display:flex;box-shadow:0 7px 16px #234a8033}.expense-composer .save-button{font-size:14px}.save-button:not(:disabled):hover{background:var(--accent-dark);transform:translateY(-1px)}.save-button:disabled{cursor:not-allowed;color:#a7a69f;box-shadow:none;background:#e9e7e1}.save-button b{background:#ffffff29;border-radius:7px;place-items:center;width:22px;height:22px;font-size:14px;display:grid}.recent-strip{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.recent-heading{justify-content:space-between;align-items:flex-end;margin-bottom:10px;display:flex}.recent-heading .eyebrow{color:var(--quiet);margin-bottom:3px;font-size:8px}.household-section .recent-heading .household-label{color:var(--accent);font-size:9px}.recent-heading h2{letter-spacing:-.2px;margin:0;font-size:14px;font-weight:600}.recent-heading a{color:var(--muted);font-size:9px;font-weight:600;text-decoration:none}.activity-link{color:var(--accent-dark);cursor:pointer;background:0 0;border:0;padding:0;font-size:9px;font-weight:700}.recent-list{gap:10px;display:grid}.recent-list>.recent-item{border:1px solid var(--line);background:#ffffffa6;border-radius:11px}.activity-day{border:1px solid var(--line);background:#ffffff6b;border-radius:11px;overflow:hidden}.future-day{background:#fff2eb;border-color:#efbca8;box-shadow:0 8px 18px #bc4f2c12}.activity-day-heading{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:8px 11px;font-size:9px;font-weight:600;display:flex}.future-day .activity-day-heading{color:#a94f34;border-color:#efc7b7}.activity-day-heading b{color:var(--ink);font-size:9px}.future-day .activity-day-heading b{color:var(--accent-dark)}.day-entries{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.recent-item{border-right:1px solid var(--line);grid-template-columns:minmax(115px,.55fr) minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:10px;display:grid}.recent-item:last-child{border-right:0}.future-day .recent-item{border-color:#efc7b7}.recent-icon{width:25px;height:25px}.recent-item strong,.recent-item small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.recent-item strong{font-size:9px;font-weight:600}.recent-item small{color:var(--quiet);margin-top:2px;font-size:8px}.recent-item>b{font-size:9px;font-weight:600}.toast{z-index:5;color:#fff;opacity:0;pointer-events:none;background:#252622;border-radius:10px;align-items:center;gap:20px;padding:11px 12px 11px 15px;font-size:11px;transition:all .22s;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%,16px);box-shadow:0 14px 34px #0003}.toast.show{opacity:1;pointer-events:auto;transform:translate(-50%)}.toast button{color:#ffb198;background:#ffffff14;border:0;border-radius:5px;padding:4px 7px;font-size:10px;font-weight:700}@media (width<=900px){.app-shell{grid-template-columns:252px minmax(0,1fr)}.category-list,.expense-details{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-details>:nth-child(2){border-right:0}.expense-details>:nth-child(-n+2){border-bottom:1px solid var(--line)}.day-entries{grid-template-columns:1fr}.recent-item{border-right:0;border-bottom:1px solid var(--line)}.recent-item:last-child{border-bottom:0}}@media (width<=700px){.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:18px;display:block}.brand{padding:0}.brand-name{width:auto;max-width:min(70vw,300px)}.nav-list{gap:4px;margin-top:14px;display:flex;overflow-x:auto}.profile{display:none}.spend-snapshot{grid-template-columns:1fr 1fr;gap:0;margin-top:14px;padding:0;display:grid;overflow:hidden}.snapshot-heading,.budget-progress{display:none}.snapshot-total{border-top:0;padding:10px 13px;display:block}.snapshot-total+.snapshot-total{border-left:1px solid var(--line)}.snapshot-total strong{margin-top:3px;font-size:18px;display:block}.topbar{align-items:flex-start;min-height:0;padding:14px 18px}.topbar-left{flex-wrap:wrap;align-items:flex-start;gap:14px}.date-control input{font-size:16px}.streak-card{grid-template-columns:86px minmax(140px,1fr);gap:8px;padding-left:14px}.sync-status{order:1;display:inline-flex}.capture-stage{padding:92px 26px 50px}.intro h1{font-size:34px}}@media (width<=500px){.page-heading,.list-page,.household-page{padding:30px 16px 36px}.filter-bar{grid-template-columns:1fr 1fr}.capture-stage{padding:60px 16px 36px}.household-name-section{flex-direction:column;align-items:stretch}.amount-section,.category-section{padding:20px 18px}.amount-entry input{font-size:42px}.category-list,.expense-details{grid-template-columns:1fr 1fr}.streak-card{border-top:1px solid var(--line);border-left:0;width:100%;padding:10px 0 0}.streak-card p{font-size:9px}.save-row{flex-direction:column;align-items:stretch;padding:16px 18px}.save-button{width:100%}.save-action{justify-items:stretch;width:100%}.saving-for{text-align:right}.recent-strip{margin-top:20px}.toast{white-space:nowrap;max-width:calc(100vw - 28px);bottom:14px}}
