:root{interpolate-size:allow-keywords;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page-width:1180px;--page-gutter:32px;--card-radius:14px;--control-radius:999px;--control-radius-compact:12px;--card-padding:18px;--panel-padding:22px;--row-padding:14px 16px;--control-height:44px;--control-height-small:42px;--font-small:.85rem;--font-base:1rem;--font-heading:1.35rem;--font-display:clamp(2.33333rem, 4vw, 3.33333rem);--text-main:#172033;--text-muted:#637086;--text-accent:#1b5fbf;--text-inverse:#fff;--text-danger:#a12c2c;--surface:#fff;--surface-blue:#edf5ff;--page-blue:#f4f8ff;--line:#d6e1f0;--line-strong:#b8cbe4;--action:#2169ce;--action-dark:#1956a9;font-family:Manrope,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}body{min-width:320px;color:var(--text-main);background:radial-gradient(circle at -100px 100px, #478be821, transparent 310px), radial-gradient(circle at calc(100% + 100px) 140px, #4ca6e71a, transparent 330px), linear-gradient(170deg, #eaf3ff 0%, var(--page-blue) 58%, #fff 100%);font-size:var(--font-base);margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.62}:focus,:focus-visible{box-shadow:none!important;outline:none!important}h1,h2,h3,p{margin-top:0}h1,h2{font-size:var(--font-heading)}h3{font-size:var(--font-base)}small{font-size:var(--font-small)}p{color:var(--text-muted);line-height:1.55}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}details::details-content{opacity:0;block-size:0;transition:block-size .18s ease, opacity .15s ease, content-visibility .18s allow-discrete;overflow:clip}details[open]::details-content{opacity:1;block-size:auto}.ui-card,.card,.panel,.window,.empty,.notice,.period-card,.metrics>article,.metric-button,.result-card,.receipt-card,.dialog{border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface)}.ui-card,.card{width:100%}.panel{padding:var(--panel-padding)}.ui-button,.button,.tab{min-height:var(--control-height);border-radius:var(--control-radius);color:var(--text-main);white-space:nowrap;background:#fff;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:500;text-decoration:none;display:inline-flex}.ui-button--primary,.button--primary{border-color:var(--action);background:var(--action);color:var(--text-inverse)}.ui-button--secondary,.button--secondary{border-color:var(--line);color:var(--text-main);background:#fff}.ui-icon-button,.icon-button{border:1px solid var(--line-strong);width:32px;min-height:32px;color:var(--text-accent);background:#fff;border-radius:50%;place-items:center;padding:0;font-weight:600;line-height:1;display:inline-grid}.ui-empty-state,.empty{width:100%;padding:var(--panel-padding);border:1px dashed var(--line-strong);border-radius:var(--card-radius);color:var(--text-muted);background:#fff;gap:12px;display:grid}.empty>.button{justify-self:center}.page{background:linear-gradient(170deg,#edf5ff,#fff 72%);place-items:center;min-height:100vh;padding:24px;display:grid}.card{width:min(460px,100%);padding:28px;box-shadow:0 18px 48px #17407514}.brand{align-items:center;gap:10px;display:flex}.brand h1,h1{letter-spacing:-.02em;margin:0;font-weight:600}.brand h1{font-size:var(--font-display)}.brand span{background:var(--surface-blue);color:var(--text-accent);font-size:var(--font-small);border:1px solid #cfe0f5;border-radius:999px;padding:3px 8px}.tabs{border:1px solid var(--line);border-radius:var(--control-radius-compact);background:var(--surface-blue);grid-template-columns:1fr 1fr;gap:6px;margin:22px 0;padding:4px;display:grid}.tabs .tab{min-height:var(--control-height-small);background:0 0;border-radius:10px}.tabs .tab--active{color:var(--text-accent);background:#fff;border-color:#0000}.form,.stack{gap:12px;display:grid}label{color:var(--text-main);font-size:var(--font-small);gap:6px;font-weight:500;display:grid}input,textarea,select{width:100%;min-height:var(--control-height-small);border:1px solid var(--line-strong);border-radius:var(--control-radius-compact);color:var(--text-main);background:#fff;padding:10px 12px}input:focus,textarea:focus,select:focus{border-color:var(--line-strong)}textarea{resize:vertical;min-height:96px}.consent-control{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;line-height:1.45}.consent-control input[type=checkbox]{width:24px;min-height:24px;accent-color:var(--action);-webkit-tap-highlight-color:transparent;border-radius:6px;margin:0;padding:0}.manual-receipt-actions{justify-self:center}.manual-receipt-item{grid-template-columns:minmax(0,1fr) minmax(110px,.45fr) auto;align-items:end;gap:10px;display:grid}.status{min-height:24px;font-size:var(--font-small);margin:14px 0 0}.app-page{width:min(100%, var(--page-width));min-height:100dvh;padding:0 var(--page-gutter) 42px;flex-direction:column;margin:0 auto;display:flex}.app-topbar{min-height:96px;margin:0 calc(-1 * var(--page-gutter));padding:0 var(--page-gutter);background:#fff;justify-content:flex-start;align-items:center;display:flex}.session-footer{color:var(--text-muted);font-size:var(--font-small);grid-template-columns:auto auto 1fr;align-items:center;gap:12px;margin-top:auto;padding:28px 0 4px;display:grid}.session-action{min-height:32px;color:var(--text-muted);font:inherit;text-align:left;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.session-action--logout{justify-self:end}.session-action:hover{color:var(--text-main)}.text-danger-small{color:var(--text-danger);font-size:var(--font-small)}.session-action.text-danger-small,.session-action.text-danger-small:hover{color:var(--text-danger)}.upload-panel-react{background:0 0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:22px 0;display:grid}.upload-panel-react h2{font-size:var(--font-heading);margin:0;font-weight:400;line-height:1.3}.eyebrow{color:var(--text-accent);font-size:var(--font-small);letter-spacing:.04em;text-transform:uppercase;margin:0 0 8px;font-weight:600}.upload-actions-react{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.upload-actions-react p{display:none}.window-nav-react{margin:22px calc(-1 * var(--page-gutter)) 16px;padding:12px var(--page-gutter);scrollbar-width:none;background:#fff;justify-content:center;gap:6px;display:flex;overflow-x:auto}.window-nav-react::-webkit-scrollbar{display:none}.window-nav-react .tab{border-radius:var(--control-radius-compact);background:0 0;border-color:#0000;min-height:40px;padding:0 14px}.window-nav-react .tab--active{border-color:var(--line);color:var(--text-main);background:#fff}.ui-collapsible-region{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .18s,opacity .15s,margin .18s;display:grid;overflow:hidden}.ui-collapsible-region--open{opacity:1;grid-template-rows:1fr}.status-region{margin:0}.status-region--visible{margin:0 0 16px}.status-region>*{overflow:hidden}.notice{color:var(--text-main);font-size:var(--font-small);margin:0;padding:13px 16px}.window{background:0 0;border:0;border-radius:0;gap:12px;padding:0;display:grid}.section-heading{color:var(--text-main);font-size:var(--font-heading);letter-spacing:-.02em;margin:0;font-weight:600}.analysis-copy,.goal-summary-copy,.metric-label{color:var(--text-main);font-size:var(--font-heading);letter-spacing:-.02em;margin:0;font-weight:400;line-height:1.3}.window>h2{font-size:var(--font-heading);margin:4px 0 0}.period-card{flex-wrap:wrap;align-items:end;gap:10px;padding:14px;display:flex}.period-trigger{width:100%;min-height:56px;color:var(--text-main);font:inherit;font-size:var(--font-heading);text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 28px;align-items:center;padding:0 6px;font-weight:600;display:grid}.period-trigger>span:first-child{grid-column:1}.period-trigger>.disclosure-chevron{grid-column:2}button,[role=button]{-webkit-tap-highlight-color:transparent}.disclosure-chevron{block-size:28px;inline-size:28px;color:var(--action);flex:0 0 28px;place-items:center;display:inline-grid}.disclosure-chevron svg{fill:none;stroke:currentColor;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round;transform-origin:50%;block-size:18px;inline-size:18px;transition:transform .18s}.disclosure-chevron--open svg{transform:rotate(180deg)}.calendar-popover{flex-basis:100%;width:100%;min-height:0;max-height:0;margin:0;transition:grid-template-rows .18s,max-height .18s,opacity .15s,margin .18s}.calendar-popover--open{max-height:600px;margin:0}.calendar-popover__inner{border:1px solid var(--line);border-radius:var(--control-radius-compact);background:var(--surface-blue);min-height:0;padding:16px;overflow:hidden}.calendar-popover p{font-size:var(--font-small);text-align:center;margin-bottom:10px}.calendar-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.calendar-top button,.calendar-grid button{min-height:36px;color:var(--text-main);background:0 0;border:0;border-radius:9px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-grid button[aria-pressed=true]{background:var(--action);color:#fff}.calendar-grid .calendar-day--in-range{background:color-mix(in srgb, var(--action) 30%, transparent);color:var(--text-main)}.calendar-grid .muted{opacity:.42}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.metrics>article,.metric-button{text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:104px;padding:20px;display:grid;position:relative}.metrics>article>.analysis-copy,.metrics>article>.metric-label,.metric-button>.analysis-copy,.metric-button>.metric-label{color:var(--text-main)}.metrics>article>strong,.metric-button strong{color:var(--text-main);font-size:var(--font-heading);text-align:right;margin:0;font-weight:600}.metric-button{cursor:pointer;gap:10px;display:grid}.metric-loading{vertical-align:middle;border:3px solid;border-right-color:#0000;border-radius:50%;block-size:22px;inline-size:22px;animation:.7s linear infinite metric-spin;display:inline-block}@keyframes metric-spin{to{transform:rotate(1turn)}}.metric-button:hover{border-color:var(--line-strong)}.metric-button--savings{border-color:var(--action);background:var(--action);grid-template-columns:minmax(0,1fr) auto 28px}.metric-button--savings>.analysis-copy,.metric-button--savings>.metric-label,.metric-button--savings>strong{font-size:var(--font-heading)}.metric-button--savings .analysis-copy,.metric-button--savings .metric-label,.metric-button--savings .disclosure-chevron,.metric-button--savings .analysis-copy,.metric-button--savings .metric-label,.metric-button--savings strong{color:var(--text-inverse)}.metric-button--savings:hover,.metric-button--savings[aria-expanded=true]{border-color:var(--action);background:var(--action)}.metric-button--savings[aria-expanded=true]{border-bottom-right-radius:0;border-bottom-left-radius:0}.savings-stack{align-self:start;gap:0;display:grid}.slogan-nowrap{white-space:nowrap}.goal-edit{position:absolute;top:12px;right:12px}.goal-edit svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px;transform:rotate(0)}.goal-edit--active,.receipt-edit--active{border-color:var(--action);background:var(--action);color:var(--text-inverse)}.goal-delete{position:absolute;top:12px;left:50%;transform:translate(-50%)}.metrics .goal-card{min-height:104px;display:block;position:relative}.metrics .goal-card--editing{interpolate-size:allow-keywords;opacity:0;height:0;padding:0;transition:height .22s,padding .22s,opacity .18s;overflow:hidden}.metrics .goal-card--editing-open{height:auto;padding:var(--card-padding);opacity:1}.goal-card--editing form{padding-top:44px}.goal-summary{gap:4px;display:grid}.goal-summary-copy{text-align:left;align-items:baseline;gap:5px;display:flex}.goal-summary-copy span{color:inherit;font-weight:inherit}.goal-summary small.goal-summary-copy{display:flex}.goal-remaining{color:var(--text-muted);font-size:var(--font-small);font-weight:400}.metrics .goal-card--with-photo{grid-template-columns:110px minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.goal-card--with-photo .goal-thumbnail{aspect-ratio:auto;grid-area:1/1;align-self:stretch;width:100%;height:100%;min-height:0}.goal-card--with-photo .goal-summary{grid-area:1/2;min-height:72px;margin-left:0}.goal-editor-bottom{align-items:center;gap:14px;display:flex}.goal-photo-picker{width:96px;min-height:96px;color:var(--text-muted);font-size:var(--font-heading);background:#e5e7eb;border:0;border-radius:10px;flex:0 0 96px;place-items:center;padding:0;display:grid;overflow:hidden}.goal-photo-picker img{object-fit:cover;width:100%;height:100%}.goal-editor-bottom .actions{grid-template-columns:1fr;justify-content:flex-end;width:132px;margin-left:auto;display:grid}.goal-editor-bottom .actions .button{flex:none;width:100%}.category-toggle{width:28px;min-height:28px;color:var(--action);background:0 0;border:0;padding:0;line-height:1;position:absolute;top:12px;right:12px}.category-toggle:hover{color:var(--action-dark)}.category-purchases-wrap{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .18s,opacity .15s,margin .18s;display:grid;overflow:hidden}.result-card>.category-purchases-wrap{min-height:0;display:grid}.category-purchases-wrap--open{opacity:1;grid-template-rows:1fr;margin-top:12px}.category-purchases-wrap>.category-purchases{min-height:0;overflow:hidden}.result-card>div>strong{padding-right:34px}.savings-details{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .18s,opacity .15s,margin .18s;display:grid;overflow:hidden}.savings-details>div{min-height:0;overflow:hidden}.savings-details--open{opacity:1;grid-template-rows:1fr;margin:0}.savings-details--open>div{padding:var(--panel-padding);border:1px solid var(--action);border-radius:0 0 var(--card-radius) var(--card-radius);background:var(--action);color:var(--text-inverse);border-top:0}.savings-details h2.metric-label{color:var(--text-inverse);font-size:var(--font-small);letter-spacing:0;margin:0 0 10px;font-weight:600;line-height:1.3}.savings-details p{color:color-mix(in srgb, var(--text-inverse) 82%, transparent);font-size:var(--font-small)}.savings-details article{border-top:1px solid #ffffff47;min-height:0;padding:10px 0;display:block}.savings-details article h3,.savings-details article p{font-size:var(--font-small);margin:0}.savings-details article h3{color:var(--text-inverse);font-weight:600}.savings-details article p{margin-top:4px}.savings-details-dismiss{cursor:pointer}.savings-details-dismiss:focus-visible{outline-color:#ffffffb8}.list{gap:10px;display:grid}.result-card{min-height:0;position:relative}.result-card,.receipt-card{padding:var(--card-padding)}.result-card>div,.receipt-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.result-card h3,.receipt-card h3{font-size:var(--font-base);margin:0;font-weight:600}.result-card p,.receipt-card p{font-size:var(--font-small);margin:8px 0 0}.result-card>p{margin-bottom:0}.analysis-time{font-size:var(--font-small);margin:-6px 0 0}.category-purchases{border-top:1px solid var(--line);gap:10px;margin:0;padding:12px 0 0;list-style:none;display:grid}.category-purchases li{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.category-purchases li span{min-width:0}.category-purchases li strong{white-space:nowrap;font-size:var(--font-small)}.custom-category-result{gap:12px;display:grid}.category-result-summary{color:var(--text-accent);font-size:var(--font-base);margin:0;font-weight:600}.custom-category-add{justify-self:center;width:min(100%,280px)}.receipt-photo-link{margin-top:48px;width:fit-content;margin-inline:auto;display:block}.receipt-photo{border:1px solid var(--line);border-radius:10px;max-width:150px;max-height:190px;margin-bottom:14px;display:block}.receipt-card{position:relative}.receipt-editor-region{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .22s,opacity .18s;display:grid;overflow:hidden}.receipt-editor-region>form{min-height:0;padding-top:44px;overflow:hidden}.receipt-editor-region>form.stack>.actions{justify-self:center}.receipt-editor-region--open{opacity:1;grid-template-rows:1fr}.receipt-read-region{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .22s,opacity .18s;display:grid;overflow:hidden}.receipt-read-region>*{min-height:0;overflow:hidden}.receipt-read-region--open{opacity:1;grid-template-rows:1fr}@media (prefers-reduced-motion:reduce){.receipt-editor-region,.receipt-read-region{transition-duration:0s}}.receipt-list-toolbar{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.receipt-list-toolbar h2{margin:0;line-height:1.25}.receipt-sort-select{width:auto;min-height:auto;color:var(--text-muted);font-size:var(--font-small);text-align:right;box-shadow:none;background:0 0;border:0;outline:none;align-self:baseline;margin:0;padding:0 18px 0 0;line-height:1.25}.receipt-sort-select:focus,.receipt-sort-select:focus-visible{box-shadow:none;outline:none}.receipt-edit{position:absolute;top:12px;right:12px}.receipt-edit svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px;transform:rotate(0)}.receipt-edit--active{z-index:1}.receipt-card>form.stack{padding-top:44px}.receipt-delete{justify-content:center;align-items:center;display:inline-flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.item-remove{width:32px;min-height:32px;font-size:var(--font-heading);background:0 0;border:0;border-radius:0;place-items:center;padding:0;line-height:1;text-decoration:none;display:inline-grid}.item-add{width:44px;min-height:44px;color:var(--action);background:0 0;border:0;border-radius:0;justify-self:center;padding:0;line-height:1;transform:scale(1.6)}.item-add svg{fill:none;stroke:currentColor;stroke-width:3.25px;stroke-linecap:round;width:22px;height:22px}.item-add:hover{color:var(--action-dark)}.receipt-card>form.stack>.actions{justify-self:center}.item-edit{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;display:grid}.item-amount{grid-template-columns:calc(6ch + 26px) auto;align-items:center;gap:6px;display:grid}.item-amount input{text-align:right;width:calc(6ch + 26px);min-width:0}.item-remove{align-self:center}.item-amount span{color:var(--text-muted)}.actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:fit-content;display:inline-grid}.actions .button{width:100%}.danger{color:var(--text-danger);border-color:#d99595}.overlay{z-index:20;background:#0f1d356b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{width:min(100%,560px);max-height:92vh;padding:24px;overflow:auto;box-shadow:0 24px 72px #0f1d3538}.receipt-camera-overlay{z-index:80;background:#0f1d35b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.receipt-upload-progress .actions{grid-template-columns:1fr;justify-self:center}.receipt-camera-dialog{width:min(100%,560px);max-height:calc(100dvh - 32px)}.receipt-camera-notice{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;display:grid}.receipt-camera-notice-icon{width:30px;min-height:100%;color:var(--action);font-size:var(--font-display);transform-origin:50%;background:0 0;border-radius:0;place-items:center;font-weight:700;line-height:.72;display:grid;transform:scaleY(1.65)}.receipt-camera-message{color:var(--text-muted);font-size:var(--font-small);margin:0}.receipt-camera-message p{margin:0}.receipt-camera-message p+p{margin-top:6px}.receipt-camera-viewport{aspect-ratio:3/4;border:1px solid var(--line);border-radius:var(--control-radius-compact);background:var(--page);touch-action:none;justify-self:center;place-items:center;width:min(100%,420px);display:grid;position:relative;overflow:hidden}.receipt-camera-viewport .metric-loading{z-index:1;position:absolute}.receipt-camera-video{opacity:0;object-fit:cover;width:100%;height:100%;transform:scale(var(--camera-zoom,1));transform-origin:50%;transition:opacity .16s;display:block;position:absolute;inset:0}.receipt-camera-viewport.is-ready .receipt-camera-video{opacity:1}.receipt-camera-flash{z-index:2;width:44px;min-height:44px;color:var(--text-main);background:#ffffffe0;border:1px solid #ffffffb8;border-radius:50%;place-items:center;padding:0;display:inline-grid;position:absolute;bottom:12px;right:12px;box-shadow:0 2px 10px #0f1d353d}.receipt-camera-flash svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round;width:22px;height:22px}.receipt-camera-flash.is-active{border-color:var(--action);background:var(--action);color:var(--text-inverse)}.receipt-camera-actions{grid-template-columns:1fr;justify-self:center}.receipt-camera-actions .button{width:100%}.goal-preview,.goal-thumbnail{aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:12px;width:72px}.goal-crop{aspect-ratio:1;touch-action:none;border:1px solid var(--line);border-radius:12px;width:min(100%,512px)}.warning{margin-top:6px;display:block}fieldset{border:1px solid var(--line);border-radius:var(--control-radius-compact);gap:8px;display:grid}fieldset label{align-items:center;gap:8px;display:flex}fieldset input{width:auto;min-height:auto}.saving-rule-extra>div{min-height:0;overflow:hidden}.saving-rule-extra--open{margin-top:2px}@media (width<=760px){:root{--page-gutter:14px;--panel-padding:16px}.app-topbar{min-height:72px}.window-nav-react{justify-content:flex-start}.upload-panel-react{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px 0 6px}.upload-actions-react .button{min-width:126px}.window-nav-react{margin-top:8px}.metrics{grid-template-columns:1fr}.period-card{align-items:stretch}.period-card .button{width:100%}.period-trigger{min-width:0}.receipt-list-toolbar{flex-direction:row;align-items:baseline;gap:12px}.receipt-sort-select{flex:0 auto;max-width:58vw}.item-edit{grid-template-columns:minmax(0,1fr) auto auto}.window-nav-react .tab{padding:0 12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
