:root{color:#263b32;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;--green:#185c4a;--green-soft:#e7f1eb;--ink:#20342b;--muted:#829087;--line:#e8ede9;--paper:#fff;background:#f3f6f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{min-height:100svh}button,input{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #89b7a3}::selection{color:#163d30;background:#d7eadf}.loading-screen,.welcome-screen{place-items:center;min-height:100svh;padding:28px;display:grid}.loading-screen{color:var(--muted);align-content:center;gap:16px}.loading-screen p{margin:0}.welcome-card{border:1px solid var(--line);background:var(--paper);border-radius:26px;width:min(100%,450px);padding:clamp(30px,7vw,56px);box-shadow:0 24px 80px #1a403314}.welcome-card .brand-mark{margin-bottom:36px}.eyebrow{color:var(--muted);letter-spacing:.13em;font-size:.68rem;font-weight:750}.welcome-card h1{color:var(--ink);letter-spacing:-.065em;margin:13px 0 12px;font-size:clamp(2.15rem,8vw,3.2rem);font-weight:650;line-height:1.04}.welcome-copy{color:var(--muted);margin:0 0 26px;line-height:1.65}.brand-mark{background:var(--green);color:#fff;border-radius:17px;place-items:center;width:52px;height:52px;font-family:Georgia,serif;font-size:1.8rem;font-weight:700;display:grid;box-shadow:0 8px 18px #185c4a2b}.brand-mark.small{border-radius:11px;width:34px;height:34px;font-size:1.2rem}.google-button{border:1px solid var(--line);min-height:52px;color:var(--ink);background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:12px;font-weight:650;text-decoration:none;transition:border-color .14s,transform .14s;display:flex}.google-button:hover{border-color:#b7c8c0;transform:translateY(-1px)}.google-mark{width:19px;height:19px}.text-button{color:var(--green);cursor:pointer;font:inherit;background:0 0;border:0;padding:10px 0;font-weight:650}.demo-button{width:100%;margin-top:12px;display:block}.fine-print{color:var(--muted);text-align:center;margin:5px 0 0;font-size:.75rem}.notice,.inline-notice{color:#85492c;background:#fff3ec;border-radius:9px;font-size:.83rem;line-height:1.45}.notice{padding:11px 13px}.app-shell{background:var(--paper);width:min(100%,1600px);height:100svh;min-height:580px;margin:0 auto;display:flex;overflow:hidden;box-shadow:0 0 80px #1c3a2f0d}.sidebar{z-index:3;border-right:1px solid var(--line);background:#fbfcfb;flex-direction:column;flex:0 0 276px;width:276px;padding:28px 18px 18px;display:flex}.brand{color:var(--ink);letter-spacing:-.035em;align-items:center;gap:11px;padding:0 7px;font-family:Georgia,Times New Roman,serif;font-size:1.15rem;font-weight:700;text-decoration:none;display:flex}.sidebar-heading{color:var(--muted);letter-spacing:.1em;justify-content:space-between;align-items:center;margin:48px 7px 12px;font-size:.64rem;font-weight:750;display:flex}.icon-button{width:34px;height:34px;color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:10px;place-items:center;font-size:1.35rem;line-height:1;display:grid}.icon-button:hover{background:var(--green-soft);color:var(--green)}.category-form{gap:6px;margin:0 0 8px;display:flex}.category-form input{border:1px solid var(--line);outline-color:var(--green);width:100%;min-width:0;font:inherit;border-radius:9px;padding:9px;font-size:.82rem}.category-form button{background:var(--green);color:#fff;cursor:pointer;font:inherit;border:0;border-radius:9px;padding:0 10px;font-size:.8rem;font-weight:650}.category-list{align-content:start;gap:4px;display:grid;overflow:auto}.category-item{color:#586760;cursor:pointer;min-height:44px;font:inherit;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:11px;padding:0 11px;transition:background .12s,color .12s;display:flex}.category-item:hover{background:#f0f4f1}.category-item.active{background:var(--green-soft);color:var(--green);font-weight:700}.category-dot{background:#76a593;border-radius:50%;flex:0 0 9px;width:9px;height:9px}.tone-1{background:#d3a454}.tone-2{background:#a582c4}.tone-3{background:#6391b1}.tone-4{background:#d07b68}.category-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.category-count{color:#98a39d;font-size:.76rem}.sidebar-bottom{border-top:1px solid var(--line);align-items:center;gap:11px;margin-top:auto;padding:16px 5px 4px;display:flex}.profile-avatar,.message-avatar{width:36px;height:36px;color:var(--green);background:#dcebe3;border-radius:50%;flex:0 0 36px;place-items:center;font-size:.87rem;font-weight:750;display:grid}.profile-details{gap:2px;min-width:0;display:grid}.profile-details strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.81rem;overflow:hidden}.profile-details span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.main-panel{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;min-height:92px;padding:17px clamp(20px,4vw,64px);display:flex}.topbar-title .eyebrow{margin-bottom:4px;font-size:.58rem;display:block}.topbar-title h1{color:var(--ink);letter-spacing:-.035em;margin:0;font-size:1.18rem;font-weight:700}.sync-indicator{color:var(--muted);align-items:center;gap:8px;font-size:.75rem;display:flex}.sync-dot{background:#d39b51;border-radius:50%;width:7px;height:7px}.sync-indicator.is-online .sync-dot{background:#5da17c}.conversation{flex-direction:column;flex:1;align-self:center;width:min(100%,960px);min-height:0;padding:0 clamp(20px,6vw,86px);display:flex}.category-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:127px;display:flex;position:relative}.category-header .eyebrow{margin:0 0 5px;font-size:.57rem}.category-header h2{color:var(--ink);letter-spacing:-.06em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.7rem,4vw,2.2rem);font-weight:500}.category-total{text-align:right;gap:4px;display:grid}.category-total span{color:var(--muted);font-size:.72rem}.category-total strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.06rem}.remove-category{color:#a06a60;cursor:pointer;font:inherit;background:0 0;border:0;padding:3px 0;font-size:.68rem;position:absolute;bottom:8px;right:0}.message-list{flex-direction:column;flex:1;gap:22px;min-height:0;padding:28px 2px;display:flex;overflow:auto}.expense-message{align-items:flex-start;gap:12px;animation:.18s ease-out appear;display:flex}@keyframes appear{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.message-avatar{flex-basis:30px;width:30px;height:30px;font-size:.73rem}.message-content{flex:1;min-width:0}.message-meta{align-items:baseline;gap:9px;margin:1px 0 4px;display:flex}.message-meta strong{color:var(--ink);font-size:.8rem}.message-meta time{color:#9aa59f;font-size:.69rem}.message-content p{color:#55645d;overflow-wrap:anywhere;margin:0;line-height:1.5}.message-amount{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;padding:4px 0 0 8px;font-size:.88rem}.empty-state{color:var(--muted);text-align:center;flex:1;align-content:center;justify-items:center;padding:35px 20px;display:grid}.empty-icon{width:48px;height:48px;color:var(--green);background:#edf4ef;border-radius:16px;place-items:center;margin-bottom:14px;font-size:1.4rem;display:grid}.empty-state h3{color:var(--ink);letter-spacing:-.04em;margin:0 0 6px;font-family:Georgia,Times New Roman,serif;font-size:1.42rem;font-weight:500}.empty-state p{max-width:280px;margin:0;font-size:.83rem;line-height:1.5}.inline-notice{margin:0 0 10px;padding:9px 12px}.expense-composer{background:#fbfdfb;border:1px solid #e1e9e3;border-radius:16px;align-items:end;gap:12px;padding:14px;display:flex;box-shadow:0 5px 20px #1e43340a}.expense-composer label{gap:7px;min-width:0;display:grid}.expense-composer label>span:first-child{color:var(--muted);letter-spacing:.055em;text-transform:uppercase;font-size:.64rem;font-weight:700}.amount-field{flex:0 0 144px;width:144px}.amount-input-wrap{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:6px;height:44px;padding:0 10px;display:flex}.amount-input-wrap input,.description-field input{width:100%;min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;font-size:.9rem}.description-field{flex:1}.description-field input{border:1px solid var(--line);background:#fff;border-radius:10px;height:44px;padding:0 12px}.expense-composer input::placeholder{color:#a5b0aa}.send-button{background:var(--green);color:#fff;cursor:pointer;height:44px;font:inherit;border:0;border-radius:10px;flex:none;justify-content:center;align-items:center;gap:10px;padding:0 17px;font-size:.86rem;font-weight:700;transition:background .13s,transform .13s;display:flex}.send-button:hover{background:#124a3c;transform:translateY(-1px)}.composer-footnote{color:#99a59e;text-align:center;margin:9px 0 15px;font-size:.68rem}.menu-button,.mobile-scrim{display:none}@media (width<=760px){.app-shell{min-height:480px}.sidebar{width:min(84vw,310px);transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:14px 0 40px #112a201f}.sidebar.sidebar-open{transform:translate(0)}.mobile-scrim{z-index:2;background:#12241d4d;border:0;display:block;position:fixed;inset:0}.menu-button{flex:0 0 35px;width:35px;margin-left:-8px;font-size:1.1rem;display:grid}.topbar{justify-content:flex-start;gap:11px;min-height:78px;padding:12px 16px}.topbar-title{flex:1}.topbar-title .eyebrow{font-size:.5rem}.topbar-title h1{font-size:1.03rem}.sync-indicator{text-align:right;justify-content:flex-end;max-width:130px;font-size:.63rem}.category-header{min-height:116px}.conversation{padding:0 16px}.expense-composer{grid-template-columns:minmax(100px,.36fr) minmax(0,1fr);gap:10px;padding:11px;display:grid}.amount-field{flex-basis:auto;width:auto}.description-field{grid-area:2/1/auto/-1}.send-button{grid-area:1/2;justify-self:end;padding:0 14px}.amount-input-wrap,.description-field input{height:42px}.composer-footnote{margin-bottom:10px;font-size:.62rem}.message-list{gap:19px;padding:21px 0}}@media (width<=390px){.sync-indicator{max-width:92px}.sync-indicator span:last-child{line-height:1.25}.category-total span{font-size:.65rem}}
