.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.section-heading h2{font-size:18px;color:var(--ink);display:flex;align-items:center;gap:8px;margin:0}.section-heading p{font-size:14px;margin:4px 0 0}.muted{font-size:14px;color:var(--muted)}.screen-loading{padding:32px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);color:var(--muted);font-size:15px}.skeleton-line{border-radius:8px}.text-button{color:var(--violet);font-weight:600;min-height:40px;padding:6px 10px;border-radius:10px;display:inline-flex;align-items:center;gap:6px}.text-button:hover:not(:disabled){background:var(--violet-50)}.text-button:disabled{opacity:.5}.form-message,.import-done,.recurring-notice{color:var(--success);background:var(--success-50);border-radius:var(--r-sm);padding:10px 14px;font-size:14px;margin:0}.chat-error,.error-note,.field-error,.import-error,.receipt-error,.recurring-error{color:var(--danger);background:var(--danger-50);border-radius:var(--r-sm);padding:10px 14px;font-size:14px}.import-warning{color:var(--warn);background:var(--warn-50)}.import-note,.import-warning{border-radius:var(--r-sm);padding:10px 14px;font-size:14px}.import-note{color:var(--ink);background:var(--violet-50);border-left:3px solid var(--violet)}.accounts-screen .form-error,.accounts-screen .form-message{border-radius:var(--r-sm);padding:10px 14px}.accounts-screen .form-error{background:var(--danger-50);color:var(--danger)}.accounts-screen .form-message{background:var(--success-50);color:var(--success)}.account-dialog header{align-items:flex-start}.account-dialog h2{font-size:21px;color:var(--plum)}.account-dialog p{font-size:14px}.account-form-grid{gap:16px;margin-top:18px}.account-form-grid label{gap:7px;font-size:14px;font-weight:600;color:var(--ink)}.account-form-grid input,.account-form-grid select,.account-form-grid textarea{min-height:46px;border:1px solid var(--line-strong);border-radius:12px;padding:11px 14px;font-size:15px;background:#fff}.account-form-grid textarea{min-height:90px}.account-dialog footer{gap:10px;margin-top:22px;flex-wrap:wrap}.budget-dialog-actions,.dialog-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}.accounts-screen{gap:20px}.accounts-actions,.accounts-toolbar{gap:12px;align-items:center}.accounts-toolbar label{font-size:14px;font-weight:600;color:var(--ink)}.accounts-toolbar select{min-height:44px;border-radius:12px;border:1px solid var(--line-strong);font-size:15px}.accounts-caption,.accounts-toolbar>.muted{font-size:14px;margin:0;flex:1 1 320px;max-width:62ch}.account-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(18px,2.4vw,26px);box-shadow:var(--shadow-sm)}.account-group>header{margin-bottom:16px}.account-group h2{font-size:18px;color:var(--ink);margin:0 0 4px}.account-group header p{font-size:14px}.account-group-total small{font-size:13px}.account-group-total strong{font-size:22px;color:var(--ink)}.accounts-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.financial-account{border-radius:var(--r-md);padding:18px;border:1px solid var(--line);border-top:4px solid var(--bank-color,var(--violet));background:var(--surface);box-shadow:none}.financial-account-top{margin-bottom:14px}.financial-account-top>span:last-child{font-size:13px;background:var(--violet-50);color:var(--violet-700);padding:3px 10px;border-radius:999px;font-weight:600}.financial-account h3{font-size:17px;color:var(--ink)}.account-digits{margin:4px 0 14px}.account-balance small,.account-balance>span,.account-digits{font-size:13.5px}.account-balance>strong{font-size:28px;letter-spacing:-.6px;color:var(--ink)}.financial-account-footer{margin-top:16px;padding-top:8px}.financial-account-footer button{min-height:44px;color:var(--violet);font-weight:600}.financial-account-footer .icon-button{min-width:44px;justify-content:center;color:var(--muted)}.credit-capacity{font-size:14px}.credit-capacity small{font-size:13px}.card-statement,.card-statement>div{font-size:14px}.accounts-screen .due-soon,.due-soon{color:var(--warn);font-weight:600}.accounts-due{background:var(--warn-50);border:1px solid #f0dcaa;border-left:4px solid #d9a441;border-radius:var(--r-md);padding:16px 20px;grid-template-columns:150px 1fr}.accounts-due h2{font-size:16px;color:var(--warn)}.accounts-due li{font-size:14px}.accounts-due li button{color:var(--ink);font-weight:600;min-height:36px}.accounts-empty{border:1.5px dashed var(--line-strong);border-radius:var(--r-md);padding:28px 20px;background:var(--violet-50);display:grid;justify-items:center;gap:4px}.accounts-empty svg{color:var(--violet)}.accounts-empty h3{font-size:17px;color:var(--ink);margin:8px 0 4px}.accounts-empty p{font-size:14.5px;margin:0 auto 10px}.accounts-empty .primary,.accounts-empty .secondary,.accounts-empty .text-button{margin-top:4px}.accounts-empty .text-button{background:var(--violet);color:#fff;min-height:44px;padding:10px 18px;border-radius:12px}.debt-totals{gap:14px}.debt-totals>div{background:var(--surface);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow-sm);align-items:center}.debt-totals>div>span,.debt-totals>div>svg+*{font-size:14px}.debt-totals svg{color:var(--violet)}.debt-totals strong{font-size:26px;color:var(--ink);letter-spacing:-.5px}.debt-screen article h3{margin-top:8px}.debt-payments li{font-size:14px}.segmented{padding:4px;gap:4px;border-radius:14px;background:#f0ecf6;display:inline-flex}.segmented button{min-height:42px;padding:8px 18px;border-radius:11px;font-size:14.5px;font-weight:600;color:var(--muted)}.segmented .selected{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}.goal-progress{height:10px;background:var(--violet-100);margin-top:14px}.goal-progress>span{background:var(--violet)}.goal-progress>span.done{background:var(--success)}.goal-guidance{font-size:14px}.goal-actions{gap:4px 8px;flex-wrap:wrap}.goal-actions .text-button,.goal-actions button{min-height:44px}.goal-card .financial-account-top>span:first-child{font-size:13.5px;color:var(--muted)}.budget-card,.comparison-panel,.import-source,.pending-reviews,.receipt-panel,.recurring-card,.setup-card,.takeaways-card,.workspace-names{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.budget-card{margin:0;padding:clamp(18px,2.4vw,26px)}.budget-card-heading h2{font-size:18px;color:var(--ink);margin:0 0 4px}.budget-card-heading p{font-size:14px}.budget-row{border-radius:var(--r-md);padding:16px}.budget-row.overall{background:var(--violet-50);border-color:#e3d8f4}.budget-row-heading{font-size:14px}.budget-row>strong{font-size:22px}.budget-row.overall>strong{font-size:28px}.budget-row p{font-size:14px}.budget-bar{background:#e7dff4}.budget-bar>span{background:var(--success)}.budget-bar>i{background:var(--plum)}.budget-empty{border:1.5px dashed var(--line-strong);background:var(--violet-50);border-radius:var(--r-md);padding:20px}.budget-empty p{font-size:15px;color:var(--text)}.budget-footnote{font-size:13.5px}.recurring-card{padding:clamp(18px,2.4vw,26px);gap:14px}.recurring-card h2{font-size:18px;color:var(--ink)}.recurring-card .section-heading p{font-size:14px}.recurring-empty{border:1.5px dashed var(--line-strong);background:var(--violet-50);border-radius:var(--r-md);padding:20px}.recurring-empty p{font-size:15px;color:var(--text)}.recurring-item{padding:14px 0}.recurring-main span{font-size:13.5px}.recurring-main strong{font-size:15.5px;color:var(--ink)}.recurring-item.due .recurring-main span{color:var(--warn);font-weight:600}.recurring-value{font-size:15px;min-height:40px;padding:6px 10px}.recurring-value:hover:not(:disabled){background:var(--violet-50)}.recurring-value.income{color:var(--success)}.recurring-amount input{min-height:44px;border:1px solid var(--line-strong);border-radius:12px;font-size:16px}.recurring-actions{gap:8px}.recurring-actions .primary{min-height:44px;padding:10px 20px}.recurring-actions .text-button{min-height:44px}.recurring-manage summary{font-size:14.5px;color:var(--violet);min-height:44px;display:flex;align-items:center}.recurring-manage>p{font-size:14px}.comparison-panel{padding:clamp(18px,2.4vw,26px);margin:0}.comparison-heading h2{font-size:18px;color:var(--ink)}.comparison-heading p{font-size:14px}.comparison-metrics article{border-radius:var(--r-md)}.comparison-metrics dd,.comparison-metrics dt,.comparison-metrics h4,.comparison-metrics p{font-size:14px}.comparison-note{font-size:14px;border-radius:var(--r-md)}.takeaways li{background:var(--violet-50);border-radius:var(--r-md);font-size:14.5px;padding:12px 16px;color:var(--text)}.app-shell .bucket-grid+*,.app-shell .buckets{margin-top:0}.receipt-workspace{display:grid;gap:20px}.receipt-panel{padding:clamp(18px,2.4vw,26px)}.receipt-list-head h2,.receipt-panel h2{font-size:18px;color:var(--ink)}.receipt-panel p{font-size:14.5px}.receipt-upload{border:1.5px dashed var(--line-strong);background:var(--violet-50);border-radius:var(--r-md);padding:20px}.receipt-workspace label{font-size:14px;font-weight:600;color:var(--ink)}.receipt-workspace input,.receipt-workspace select{min-height:46px;border:1px solid var(--line-strong);border-radius:12px;padding:10px 14px;font-size:15px;background:#fff}.receipt-list li{font-size:14.5px;padding:14px 0}.receipt-list li span{font-size:13.5px}.receipt-fields p,.receipt-review-grid figcaption{font-size:14px}.attachment,.receipt-review-grid img{border-radius:var(--r-md)}.attachment{background:var(--violet-50);padding:14px}.attachment>span{font-size:14.5px}.attachment small,.upload-attachment small{font-size:13px}.transaction-receipts .section-heading h3,.transaction-receipts h3{font-size:16px;color:var(--ink)}.finance-chat{max-width:860px;margin:0 auto}.chat-panel{border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-sm);background:var(--surface)}.chat-top{padding:14px 20px}.chat-top h2,.chat-top strong{font-size:16px;color:var(--ink)}.chat-top button{min-height:44px;font-size:14px;color:var(--violet);font-weight:600}.chat-workspace{font-size:14px;gap:10px;flex-wrap:wrap}.chat-workspace select{min-height:44px;border-radius:12px;font-size:15px}.chat-welcome h2{font-size:22px;color:var(--plum)}.chat-welcome p{font-size:15px}.chat-symbol{background:var(--violet-100);color:var(--violet)}.chat-suggestions button{min-height:44px;padding:10px 16px;border-radius:999px;border:1px solid #e3d8f4;background:var(--violet-50);color:var(--ink);font-size:14.5px;font-weight:500}.chat-suggestions button:hover{background:var(--violet-100)}.chat-message p{font-size:15px;border-radius:var(--r-md)}.chat-message.user p{background:var(--violet);color:#fff}.chat-composer textarea{min-height:52px;border-radius:14px;border:1px solid var(--line-strong);font-size:15px;padding:13px 16px}.chat-composer textarea:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgb(117 70 186/15%);outline:none}.chat-note{font-size:13.5px;color:var(--muted)}.chat-thinking{font-size:14px}.pending-reviews{padding:clamp(18px,2.4vw,26px);margin:0}.pending-reviews h2{font-size:18px;color:var(--ink)}.pending-reviews p{font-size:14.5px}.pending-review-list li{font-size:14.5px;padding:14px 0}.pending-review-list li span{font-size:13.5px}.pending-reviews .discard-proposal{color:var(--danger);min-height:44px}.form-row{display:flex;gap:12px;flex-wrap:wrap}.form-row>*{flex:1 1 200px}.pending-reviews dialog{border-radius:24px}.telegram-reminders h3{font-size:18px;color:var(--ink)}.telegram-reminders label,.telegram-reminders p{font-size:14.5px}.telegram-reminders blockquote{border-left:3px solid var(--violet);background:var(--violet-50);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--ink);font-size:14.5px}.telegram-reminders input[type=number],.telegram-reminders input[type=time],.telegram-reminders select{border:1px solid var(--line-strong);border-radius:12px;min-height:46px;font-size:15px}.telegram-reminders button{min-height:44px}.telegram-reminders [role=alert]{color:var(--danger)}.telegram-reminders [role=status]{color:var(--success)}.recap-heading,.reminder-heading{display:grid;gap:4px}.import-trigger{min-height:44px}dialog.import-dialog{padding:24px;border-radius:var(--r-xl)}.import-dialog .section-heading p{font-size:14.5px}.import-sources{gap:14px}.import-source{padding:20px;border-radius:var(--r-lg);box-shadow:none}.import-source h3{font-size:17px;color:var(--ink)}.import-source p{font-size:14px}.import-source>svg{color:var(--violet)}.import-file{min-height:44px;border-radius:12px;background:var(--violet);font-size:14.5px}.import-mapping-grid label,.import-review-bar label{font-size:14px;font-weight:600;color:var(--ink)}.import-dialog input:not([type=checkbox]):not([type=file]),.import-dialog select{min-height:44px;border:1px solid var(--line-strong);border-radius:12px;font-size:15px}.import-footnote,.import-preview td,.import-preview th,.import-summary{font-size:13.5px}.import-table{border-radius:var(--r-md);border-color:var(--line)}.export-controls{gap:10px;align-items:center}.export-controls .secondary{min-height:44px}.export-controls p,.transaction-toolbar .export-controls p{font-size:13.5px}.workspace-names{padding:clamp(18px,2.4vw,26px);margin:0}.workspace-names summary{font-size:18px;font-weight:650;color:var(--ink);min-height:44px;cursor:pointer}.workspace-names summary .muted{font-size:14px;font-weight:500}.workspace-name-row p,.workspace-names>p{font-size:14.5px}.workspace-name-row{padding:14px 0;border-bottom:1px solid var(--line)}.workspace-name-display strong{font-size:16px;color:var(--ink)}.workspace-name-display small{font-size:13.5px}.workspace-add-button,.workspace-name-display button{min-height:44px}.workspace-name-row [role=alert]{color:var(--danger);font-size:14px}.workspace-name-row [role=status]{color:var(--success);font-size:14px}.business-form{display:grid;gap:8px}.business-fields{gap:16px;margin:12px 0}.business-fields label{font-size:14px;color:var(--ink)}.business-fields input,.business-fields select,.business-fields textarea{min-height:46px;border:1px solid var(--line-strong);border-radius:12px;padding:11px 14px;font-size:15px}.business-actions{gap:10px;flex-wrap:wrap}.business-actions button{min-height:44px}.setup-card{padding:clamp(18px,2.4vw,26px);display:grid;gap:10px;justify-items:start}.setup-card h2{font-size:18px;color:var(--ink)}.setup-card p{font-size:14.5px}.ws-link-form{gap:10px;flex-wrap:wrap;align-items:flex-end}.ws-link-form input{min-height:46px;border-radius:12px;border:1px solid var(--line-strong);font-size:15px}.ws-disconnect-confirm{gap:10px;flex-wrap:wrap}.access-duration{font-size:14px}.setup-card .danger,.ws-disconnect-confirm .danger{min-height:44px}@media (max-width:800px){.accounts-due{grid-template-columns:1fr;gap:10px}.accounts-due li{grid-template-columns:1fr auto;gap:6px 14px}.accounts-grid{grid-template-columns:1fr}.account-group>header{align-items:flex-start;flex-wrap:wrap}.account-group-total{text-align:left}.accounts-actions{display:grid;grid-template-columns:1fr 1fr}.accounts-actions .primary{grid-column:1/-1;order:-1}.accounts-toolbar{display:grid}.accounts-toolbar select,.accounts-toolbar>.primary{width:100%}.account-form-grid{grid-template-columns:1fr}.account-dialog footer>*,.budget-dialog-actions>*,.dialog-actions>*{flex:1 1 auto}.import-mapping-grid,.import-sources{grid-template-columns:1fr}dialog.import-dialog{width:100%;padding:20px 16px}.debt-totals{grid-template-columns:1fr 1fr}.debt-totals>div{padding:14px;grid-template-columns:1fr;gap:4px}.debt-totals strong{grid-column:1;font-size:20px}.segmented{display:grid;grid-template-columns:1fr 1fr;width:100%}.finance-chat{max-width:none}.chat-top{padding:12px 14px}.goal-actions{justify-content:space-between}}@media (max-width:480px){.business-fields{grid-template-columns:1fr}.recurring-item{align-items:flex-start}.recurring-actions{width:100%}.recurring-actions .primary{flex:1 1}}.app-shell .bucket-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.app-shell .bucket-item p{font-size:14px;margin:8px 0 12px;line-height:1.5}.app-shell .bucket-item strong{font-size:22px;display:block;color:var(--ink)}.app-shell .bucket-item small{font-size:13.5px}.unassigned{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:16px 18px;border-radius:var(--r-md);background:var(--violet-50);border:1px solid #ece4f7;font-size:15px}.unassigned strong{font-size:20px;color:var(--ink)}.bucket-card{border-radius:var(--r-lg)}.recurring-manage{margin-top:4px}@media (max-width:800px){.unassigned{flex-direction:row;text-align:left}.app-shell .bucket-item{padding:14px 16px}.app-shell .bucket-item p{margin:4px 0 8px}}.app-shell .segmented{padding:4px;gap:4px;border-radius:14px;background:#f0ecf6}.app-shell .segmented button{min-height:42px;padding:8px 18px;border-radius:11px;font-size:14.5px}@media (max-width:800px){.app-shell .segmented{display:grid;grid-template-columns:1fr 1fr;width:100%}}.card .pending-reviews,.card .setup-card,.card .workspace-names{border:0;box-shadow:none;padding:0;background:transparent;border-radius:0}.workspace-names summary{font-size:16px;padding:4px 0}.card>.telegram-reminders+.telegram-reminders,.telegram-reminders+.telegram-reminders{margin-top:28px;padding-top:28px;border-top:1px solid var(--line)}.telegram-reminders form>.primary,.telegram-reminders form>button.primary{width:auto;justify-self:start;padding-inline:24px}.telegram-reminders form>p.muted{margin:0}.telegram-reminders legend{font-size:15px;color:var(--ink);margin-bottom:12px}.telegram-reminders fieldset{gap:14px}.telegram-reminders fieldset:disabled{opacity:.55}.telegram-reminders .reminder-toggle{padding:12px 14px;border-radius:var(--r-md);background:var(--violet-50);font-weight:600}.telegram-reminders .reminder-toggle input{min-height:0;width:22px;height:22px}.reminder-times{gap:14px}.account-dialog header,.account-dialog>form>header,.import-dialog .section-heading{flex-wrap:nowrap}.import-dialog .section-heading>div{flex:1 1 auto;min-width:0}.import-dialog .section-heading .icon-button{flex:0 0 auto}.workspace-name-display{flex-wrap:wrap;gap:4px 8px}.workspace-name-display>div{flex:1 1 200px}.workspace-name-row:last-child{border-bottom:0}.workspace-name-display>.muted{flex:1 1 auto}@media (max-width:560px){.workspace-name-display>div{flex-basis:100%}.workspace-name-display>.text-button:first-of-type{margin-left:-10px}}.onb-accounts{gap:14px}.onb-acct-section{border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin:0;min-width:0;display:grid;gap:12px;background:#fff}.onb-acct-section legend{display:grid;gap:2px;padding:0;float:left;width:100%}.onb-acct-section legend strong{color:var(--ink);font-size:16px}.onb-acct-section legend span{color:var(--muted);font-size:14px}.onb-acct-section legend+*{clear:both}.onb-acct-chip>span{gap:8px;min-height:44px;padding:6px 14px 6px 8px}.onb-acct-chip input:checked+span{box-shadow:0 0 0 2px rgb(117 70 186/18%)}.onb-acct-logo{height:24px;width:72px;object-fit:contain;object-position:left center}.chip-option .onb-acct-badge,.onb-acct-badge{display:inline-grid;min-height:0;padding:0;border:0;cursor:inherit;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--bank-color,var(--violet));color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em}.onb-acct-logo-chinabank,.onb-acct-logo-cimb,.onb-acct-logo-metrobank,.onb-acct-logo-rcbc,.onb-acct-logo-uniondigital{background:var(--bank-color);border-radius:4px;padding:2px 6px;box-sizing:border-box}.onb-acct-badge.cash{background:var(--success)}.onb-acct-rows{display:grid;gap:8px}.onb-acct-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,220px);align-items:center;gap:8px 12px;padding:8px 12px;border-radius:var(--r-md);background:var(--violet-50)}.onb-acct-row.saved{background:var(--success-50)}.onb-acct-name{display:flex;align-items:center;gap:10px;min-width:0}.onb-acct-name strong{color:var(--ink);font-size:15px;overflow-wrap:anywhere}.onb-acct-amount{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center;gap:6px;margin:0!important;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:0 12px;background:#fff}.onb-acct-amount:focus-within{border-color:var(--violet);box-shadow:0 0 0 3px rgb(117 70 186/15%)}.onb-acct-amount>span[aria-hidden]{color:var(--muted);font-weight:600}.onb-acct-amount input{border:0!important;box-shadow:none!important;padding:10px 0!important;min-height:44px;flex:1 1 auto;width:auto!important;min-width:0;margin:0!important;background:transparent;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.onb-acct-row .status-pill{justify-self:end}.onb-acct-error{grid-column:1/-1;margin:0;color:var(--danger);font-size:13.5px}.onb-acct-note{color:var(--muted);font-size:14px;margin:0}.onb-accounts .form-error p{margin:0}.onb-accounts .form-error p+p{margin-top:4px}@media (max-width:560px){.onb-acct-section{padding:14px 12px}.onb-acct-row{grid-template-columns:minmax(0,1fr)}.onb-acct-row .status-pill{justify-self:start}}.sk{display:grid;gap:12px;padding:20px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);animation:sk-in .2s ease .12s both}.sk-inline{padding:8px 0;border:0;background:transparent}.sk-chat{min-height:320px;align-content:end}.sk-bar,.sk-bubble,.sk-card,.sk-dot{display:block;border-radius:8px;background:linear-gradient(90deg,var(--violet-50) 0,var(--lavender) 50%,var(--violet-50) 100%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}.sk-bar{height:14px;width:100%}.sk-bar.sk-sm{height:10px}.sk-bar.sk-lg{height:22px}.sk-w20{width:20%!important}.sk-w40{width:40%!important}.sk-w60{width:60%!important}.sk-w80{width:80%!important}.sk-row{display:grid;grid-template-columns:36px minmax(0,1fr) 80px;align-items:center;gap:12px;min-height:44px}.sk-dot{width:36px;height:36px;border-radius:12px}.sk-stack{display:grid;gap:8px}.sk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.sk-card{display:grid;gap:10px;padding:18px;min-height:120px;align-content:start;background:var(--paper);animation:none}.sk-bubble{height:44px;width:58%;border-radius:16px}.sk-bubble.sk-right{justify-self:end;width:42%}.sk-input{height:48px;border-radius:14px}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes sk-in{0%{opacity:0}to{opacity:1}}@media (max-width:560px){.sk{padding:16px}.sk-grid{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.sk,.sk-bar,.sk-bubble,.sk-dot{animation:none}}.chip-option .onb-acct-chip-name.sr-only{padding:0;border:0;min-height:0}.app-shell .transaction-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 12px}.app-shell .transaction-toolbar .export-controls{display:contents}.app-shell .transaction-toolbar .search{grid-column:1;grid-row:1;width:auto}.app-shell .transaction-toolbar .export-controls>button{grid-column:2;grid-row:1;width:auto}.app-shell .transaction-toolbar .import-trigger{grid-column:3;grid-row:1;min-height:44px;align-self:center}.app-shell .transaction-toolbar .export-controls>p{grid-column:1/-1;margin:0;font-size:13px}@media (max-width:700px){.app-shell .transaction-toolbar{grid-template-columns:1fr 1fr}.app-shell .transaction-toolbar .search{grid-column:1/-1}.app-shell .transaction-toolbar .export-controls>button{grid-column:1;grid-row:2}.app-shell .transaction-toolbar .import-trigger{grid-column:2;grid-row:2;width:100%;justify-content:center}}.app-shell .transaction-name{position:relative}.app-shell .transaction-title:after{content:"";position:absolute;inset:-12px -8px}.app-shell .transaction-title:focus-visible{outline:2px solid var(--violet);outline-offset:2px;border-radius:4px}@media (max-width:550px){.app-shell .transaction-title{font-size:14.5px}.app-shell .transaction-name small,.app-shell td small{font-size:12.5px}.app-shell td.amount,.app-shell th.amount{font-size:14px}.app-shell .row-actions{flex-direction:column;gap:2px}.app-shell .row-actions .icon-button{min-width:40px;min-height:40px;padding:0;justify-content:center}.app-shell table td:last-child{padding-right:6px}}@media (max-width:800px){.accounts-actions{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.accounts-actions button{flex-direction:column;gap:4px;min-height:60px;padding:8px 6px;font-size:13px;line-height:1.2;text-align:center}}.app-shell input.quick-save-input{max-width:240px}.auth-back,.document-page p>a,.document-page>a{display:inline-flex;align-items:center;min-height:44px}.scene-footer span{font-size:12px}.app-shell .setup-card.ws-card{max-width:none;gap:12px;padding:clamp(18px,2.4vw,26px);border-radius:var(--r-lg,18px)}.app-shell .ws-card .ws-card-header{display:flex;align-items:center;gap:10px;width:100%;flex-wrap:wrap}.app-shell .ws-card .ws-card-header svg{width:22px;height:22px;margin:0;color:var(--violet)}.app-shell .ws-card h2{margin:0;font-size:18px;flex:1 1 auto}.app-shell .ws-card .status-pill,.app-shell .ws-card p{margin:0}.app-shell .ws-card .access-duration{width:100%;padding:14px 16px;border-radius:12px;background:var(--violet-50,#f6f2fc);display:grid;gap:4px}.app-shell .ws-card .button-row{display:flex;flex-wrap:wrap;gap:10px;width:100%}.app-shell .ws-card .button-row>button{margin:0;min-height:44px}.app-shell .ws-card .ws-disconnect-confirm{flex-basis:100%;display:flex;flex-wrap:wrap;gap:10px;margin:0}.app-shell .ws-card .ws-disconnect-confirm p{flex-basis:100%}.app-shell .ws-card .ws-disconnect-confirm button{margin:0}.status-pill{white-space:nowrap}.form-back-link{margin-bottom:24px}.app-shell .topbar-right>.text-button,.app-shell .topbar-right>a,.app-shell main>footer a,.form-back-link{display:inline-flex;align-items:center;min-height:44px}.accounts-due li>.text-button{padding-left:0;padding-right:0;min-height:44px;justify-content:flex-start}.chip-option{position:relative}.chip-option input{inset:0;width:100%;height:100%;margin:0}dialog.onboarding{overflow-x:hidden}.app-shell main>footer{align-items:center}.app-shell .toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-start;gap:12px 16px;margin:0 0 20px}.app-shell .page-heading+.toolbar,.app-shell main>*+.toolbar{margin-top:20px}.app-shell .toolbar .month-filter{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:0;min-width:0}.app-shell .toolbar .field-label{font-size:12px;font-weight:600;line-height:16px;color:#655b72}.app-shell .toolbar .month-filter select{box-sizing:border-box;height:44px;min-height:44px;min-width:220px;border-radius:12px;padding-top:0;padding-bottom:0;display:flex;align-items:center;line-height:20px}.app-shell .toolbar .month-switcher{box-sizing:border-box;display:grid;grid-template-columns:44px minmax(150px,1fr) 44px;align-items:stretch;gap:0;height:44px;padding:0;overflow:hidden;background:#fff;border:1px solid var(--line-strong);border-radius:12px}.app-shell .toolbar .month-switcher .icon-button{width:44px;height:42px;min-width:44px;min-height:42px;padding:0;border-radius:0;color:var(--plum,#3a2160);background:transparent}.app-shell .toolbar .month-switcher .icon-button:hover:not([aria-disabled=true]){background:var(--violet-50,#f3edfa)}.app-shell .toolbar .month-switcher .icon-button[aria-disabled=true]{opacity:.35;cursor:not-allowed}.app-shell .toolbar .month-switcher .icon-button:focus-visible,.app-shell .toolbar .month-switcher input:focus-visible{outline:2px solid #ab8bd5;outline-offset:-2px}.app-shell .toolbar .month-switcher input{position:relative;box-sizing:border-box;width:100%;min-width:0;height:42px;min-height:42px;padding:0 8px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);font-size:14px;font-weight:500;text-align:center;cursor:pointer}.app-shell .toolbar .month-switcher input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.app-shell .toolbar .month-switcher input::-webkit-datetime-edit{padding:0}.app-shell .demo-note{margin:-8px 0 20px;font-size:13px;color:var(--muted)}.app-shell .next-action,.app-shell .summary{margin-top:0}@media (max-width:550px){.app-shell .toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.app-shell .toolbar .month-filter select,.app-shell .toolbar .month-switcher{width:100%;min-width:0}.app-shell .toolbar .month-switcher{grid-template-columns:44px minmax(0,1fr) 44px}.app-shell .toolbar .month-switcher input{font-size:16px}}.receipt-chip{position:relative;z-index:1;display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:3px 9px 3px 7px;min-height:26px;border:1px solid #cfe3d8;border-radius:999px;background:var(--success-50);color:var(--success);font-size:11.5px;font-weight:600;line-height:1.4;cursor:pointer;transition:background-color .15s,border-color .15s}.receipt-chip:hover{background:#d7efe3;border-color:#a9d3bd}.receipt-chip:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.app-shell dialog.receipt-quick-view{width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px}.receipt-quick-view .section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.receipt-quick-view h2{font-size:20px;overflow-wrap:anywhere}.receipt-quick-view p.receipt-quick-summary{display:flex;flex-wrap:wrap;gap:4px 12px;margin:6px 0 0;font-size:13.5px;color:var(--muted)}.receipt-quick-summary strong{color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.receipt-quick-summary strong.positive-text{color:var(--success)}.receipt-quick-stage{position:relative;display:grid;place-items:center;margin:18px 0 0;min-height:240px;max-height:min(62dvh,560px);border-radius:var(--r-md);background:var(--violet-50);border:1px solid var(--line);overflow:hidden}.receipt-quick-stage a{display:block;width:100%;height:100%;cursor:zoom-in}.receipt-quick-stage img{display:block;width:100%;height:100%;max-height:min(62dvh,560px);object-fit:contain}.receipt-quick-stage.is-loading img{opacity:0}.receipt-quick-shimmer{position:absolute;inset:14px;border-radius:10px;background:linear-gradient(90deg,var(--violet-50) 0,var(--lavender) 50%,var(--violet-50) 100%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.receipt-quick-shimmer{animation:none}}.receipt-quick-thumbs{display:flex;gap:8px;margin-top:12px;overflow-x:auto;padding-bottom:2px}.receipt-quick-thumbs button{flex:0 0 auto;width:60px;height:72px;padding:0;border:2px solid var(--line);border-radius:10px;background:var(--violet-50);overflow:hidden;cursor:pointer}.receipt-quick-thumbs button.is-selected{border-color:var(--violet)}.receipt-quick-thumbs button:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.receipt-quick-thumbs img{width:100%;height:100%;object-fit:cover;display:block}.receipt-quick-open{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:13.5px;font-weight:600;color:var(--violet)}.receipt-quick-open:hover{text-decoration:underline;text-underline-offset:3px}.receipt-quick-view .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.receipt-list li .receipt-row-main{min-width:0;flex:1 1}.receipt-list li .receipt-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;flex-shrink:0}.receipt-list li.is-transaction strong{color:var(--success)}.receipt-list li.is-draft strong{color:var(--warn)}.receipt-linked-note .receipt-entry,.receipt-list li span.receipt-entry{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:10px;padding:10px 12px;border-radius:var(--r-sm);background:var(--violet-50);border:1px solid var(--line);color:var(--muted);font-size:13px}.receipt-list li.is-draft span.receipt-entry{background:var(--warn-50);border-color:#f0dfb4}.receipt-entry>span{margin-top:0!important;display:inline!important}.receipt-entry b{color:var(--ink);font-weight:600;overflow-wrap:anywhere}.receipt-entry .receipt-entry-amount{color:var(--ink);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.receipt-entry .receipt-entry-amount.positive-text{color:var(--success)}.receipt-linked-note{display:grid;gap:10px;justify-items:start}.receipt-linked-note p{margin:0}@media (max-width:550px){.app-shell dialog.receipt-quick-view{padding:18px}.receipt-quick-stage{min-height:200px;max-height:46dvh}.receipt-quick-stage img{max-height:46dvh}.receipt-quick-view .dialog-actions{flex-direction:column-reverse}.receipt-quick-view .dialog-actions button{width:100%}.receipt-list li{flex-direction:column;align-items:stretch}.receipt-list li .receipt-row-actions{justify-content:stretch}.receipt-list li .receipt-row-actions button{flex:1 1 auto}}.below-zero-list{display:grid;gap:12px}.below-zero-card{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:var(--r-md);background:var(--warn-50);border:1px solid color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn)}.below-zero-card>svg{flex:none;margin-top:2px}.below-zero-card h3{margin:0 0 4px;font-size:1rem}.below-zero-card p{margin:0;color:var(--text)}.below-zero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.below-zero-actions .secondary{background:var(--surface)}.account-balance strong.below-zero-amount{color:var(--danger)}.balance-input{display:flex;gap:8px}.balance-input input{flex:1 1;min-width:0}.balance-input button{flex:none;min-width:44px;font-size:1.1rem}.below-zero-note{margin:0 0 8px}@media (max-width:600px){.below-zero-actions>button{flex:1 1 auto}}.category-icon{--cat:#868e96;position:relative;display:inline-grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--cat) 14%,#fff);color:color-mix(in srgb,var(--cat) 82%,#000)}.category-icon-sm{width:24px;height:24px}.category-icon-lg{width:46px;height:46px}.category-icon.is-income{box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--green,#236952)}.category-income-badge{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--green,#236952);color:#fff;border:2px solid #fff}.category-icon-sm .category-income-badge{width:12px;height:12px;right:-3px;bottom:-3px}.category-heading{display:flex;align-items:center;gap:14px;min-width:0}.category-heading>div{min-width:0}.category-field legend,.category-review{display:flex;align-items:center;gap:8px}.category-suggested{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--violet-700,#5e3597);background:var(--violet-100,#efe7fb);border-radius:999px;padding:2px 8px}.category-field .field-hint{display:block;margin-top:6px}.category-chip span{--cat:#868e96;gap:6px;padding:6px 12px 6px 9px!important}.category-chip span svg{color:color-mix(in srgb,var(--cat) 82%,#000);flex-shrink:0}.category-chip input:checked+span{background:color-mix(in srgb,var(--cat) 13%,#fff);border-color:color-mix(in srgb,var(--cat) 70%,#000);color:var(--ink,#282235);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cat) 70%,#000)}.category-more{min-height:38px;border-radius:999px;font-size:13px;padding:6px 14px}.transaction-name .category-icon{display:inline-grid}@media (max-width:800px){.transaction-name .category-icon{width:32px;height:32px}}.pending-review-list li{grid-template-columns:auto minmax(0,1fr) auto auto}.pending-review-list li span.category-icon{display:inline-grid;margin-top:0;color:color-mix(in srgb,var(--cat) 82%,#000)}.pending-review-list li span.category-income-badge{display:grid;margin:0;color:#fff}.pending-review-list li .transaction-tags{display:flex}.pending-review-list li .transaction-tags>span{display:inline-block;margin-top:0;color:#6d489b;font-size:11px}@media (max-width:600px){.pending-review-list li{grid-template-columns:auto minmax(0,1fr) auto}}.custom-category-list{list-style:none;padding:0;margin:8px 0 0}.custom-category-list>li{border-top:1px solid var(--line,#e3e8f0);padding:12px 0}.custom-category-row{display:flex;align-items:center;gap:12px}.custom-category-row>div{flex:1 1;min-width:0;display:grid;gap:2px;overflow-wrap:anywhere}.category-editor{display:grid;gap:16px;padding:16px;margin:12px 0;border:1px solid var(--line-strong,#d3cbe0);border-radius:14px;background:var(--violet-50,#f7f3fd)}.category-color-grid,.category-icon-grid{display:flex;flex-wrap:wrap;gap:6px;max-height:176px;overflow-y:auto;padding:3px}.category-color-grid{max-height:none}.category-color-option,.category-swatch-option{position:relative;margin:0!important}.category-color-option input,.category-swatch-option input{position:absolute;inset:0;opacity:0;margin:0;width:100%;height:100%;cursor:pointer}.category-swatch-option>span{--cat:#868e96;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--line-strong,#d3cbe0);background:#fff;color:#4a4458}.category-swatch-option input:checked+span{background:color-mix(in srgb,var(--cat) 16%,#fff);color:color-mix(in srgb,var(--cat) 82%,#000);border-color:color-mix(in srgb,var(--cat) 70%,#000);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cat) 70%,#000)}.category-color-option>span{display:block;width:32px;height:32px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px var(--line-strong,#d3cbe0)}.category-color-option input:checked+span{box-shadow:0 0 0 2px var(--ink,#282235)}.category-color-option input:focus-visible+span,.category-swatch-option input:focus-visible+span{outline:3px solid #ab8bd5;outline-offset:2px}.category-preview{display:flex;align-items:center;gap:10px}.category-delete{margin-top:10px;padding:12px 14px;border-radius:12px;background:var(--danger-50,#fdeceb)}.category-delete p{margin:0 0 8px}@media (max-width:600px){.custom-categories .card-header{flex-wrap:wrap}.category-editor{padding:12px}.category-editor .dialog-actions button{flex:1 1}}.insights,.spending-preview{--viz-income:#7546ba;--viz-expense:#eb6834;--viz-net:#241b33;--viz-grid:#ece8f2;--viz-axis:#d3cbe0;--viz-track:#f3f0f7}.insights-intro p{margin:0}.insights .card-header{flex-wrap:wrap}.insights .card-header>div:first-child{flex:1 1 220px;min-width:0}.viz-toggle{display:inline-flex;flex-wrap:nowrap;gap:2px;padding:3px;background:#f0ecf6;border-radius:12px;flex:none}.viz-toggle button{flex:1 1 auto;width:auto;white-space:nowrap;border:0;background:transparent;color:var(--muted);font-weight:600;font-size:13px;min-height:34px;padding:0 12px;border-radius:9px;cursor:pointer;box-shadow:none}.viz-toggle button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}.viz-toggle button:focus-visible{outline:3px solid #ab8bd5;outline-offset:1px}.insight-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.insight-tile{display:grid;gap:6px;align-content:start;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);min-width:0}.insight-tile-label{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted)}.insight-tile-label .metric-icon{width:28px;height:28px;margin:0}.insight-tile strong{font-size:clamp(20px,2.1vw,26px);color:var(--ink);overflow-wrap:anywhere}.insight-tile .delta{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--muted)}.insight-tile .delta.good{color:var(--success)}.insight-tile .delta.bad{color:var(--danger)}.insights-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start}.insights-grid>*{min-width:0}.insights-none{margin:0;padding:8px 0}.insights-footnote{margin:0;font-size:12.5px}.insights-empty svg{color:var(--violet)}.trend-chart{position:relative;min-width:0}.viz-legend{display:flex;flex-wrap:wrap;gap:6px 16px;list-style:none;margin:0 0 10px;padding:0;font-size:12.5px;color:var(--muted)}.viz-legend li{display:inline-flex;align-items:center;gap:6px}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}.swatch.income{background:var(--viz-income)}.swatch.expense{background:var(--viz-expense)}.swatch.net{width:14px;height:2px;border-radius:1px;background:var(--viz-net);position:relative}.swatch.net:after{content:"";position:absolute;left:3px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--viz-net)}.trend-plot{position:relative}.trend-plot svg{display:block;overflow:visible}.viz-grid line{stroke:var(--viz-grid);stroke-width:1}.viz-axis{stroke:var(--viz-axis);stroke-width:1}.viz-grid text,.viz-tick{fill:var(--muted);font-size:11.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.trend-group.is-selected .viz-tick{fill:var(--ink)}.bar.income{fill:var(--viz-income)}.bar.expense{fill:var(--viz-expense)}.trend-hover{fill:#f4f0fa}.net-line{fill:none;stroke:var(--viz-net);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;opacity:.8}.net-dot{fill:var(--viz-net);stroke:var(--surface);stroke-width:2}.trend-hit{fill:transparent;cursor:pointer;outline:none}.trend-hit:focus-visible{stroke:#ab8bd5;stroke-width:2}.viz-tooltip{position:absolute;top:4px;display:grid;gap:3px;width:180px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-md);font-size:12.5px;color:var(--muted);pointer-events:none;z-index:2}.viz-tooltip strong{color:var(--ink);font-size:13px}.viz-tooltip span{display:flex;align-items:center;gap:6px}.viz-tooltip b{margin-left:auto;color:var(--ink);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bar-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}.bar-list li{display:grid;gap:6px;min-width:0}.bar-list-row{display:flex;align-items:center;gap:10px;min-width:0}.bar-chip{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;flex:none;font-size:15px;font-weight:700;background:var(--viz-track);color:var(--muted)}.bar-name{flex:1 1 auto;min-width:0;display:grid;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.bar-name small,.bar-value small{font-weight:400;font-size:12px;color:var(--muted)}.bar-value{display:grid;justify-items:end;flex:none;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bar-value strong{color:var(--ink);font-size:14px}.bar-track{display:block;height:8px;border-radius:4px;background:var(--viz-track);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:0 4px 4px 0;background:var(--viz-expense)}.bar-list.income .bar-fill{background:var(--viz-income)}.merchant-list{list-style:none;margin:0;padding:0;display:grid}.merchant-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.merchant-list li:first-child{border-top:0;padding-top:0}.merchant-list span{display:grid;min-width:0;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.merchant-list small{font-weight:400;color:var(--muted);font-size:12px}.merchant-list strong{flex:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.home-side{display:grid;gap:20px;min-width:0}.home-side>*{margin:0!important}.spending-preview .bar-list{gap:12px}.spending-preview-link{margin-top:14px}@media (max-width:900px){.insights-grid{grid-template-columns:1fr}}@media (max-width:600px){.insight-tiles{grid-template-columns:1fr 1fr;gap:12px}.insight-tile{padding:14px 16px}.insight-tile:last-child{grid-column:1/-1}.insights .card-header .viz-toggle{width:100%}.insights .card-header .viz-toggle button{flex:1 1}}.app-shell .transaction-name>span:last-child{min-width:0;overflow-wrap:anywhere}.app-shell .transaction-name small{white-space:normal;overflow-wrap:anywhere}@media (max-width:550px){.app-shell .table-scroll table{table-layout:fixed;width:100%}.app-shell .table-scroll th.amount{width:112px}.app-shell .table-scroll th:last-child:not(.amount){width:56px}.app-shell td:first-child{min-width:0;overflow-wrap:anywhere}.app-shell .transaction-name{min-width:0;max-width:100%}.app-shell .transaction-name .transaction-title{text-align:left;overflow-wrap:anywhere;max-width:100%}.app-shell .transaction-name .receipt-chip{max-width:100%}}.app-shell main{max-width:1320px}.app-shell .table-scroll table{min-width:0;width:100%}.app-shell .table-scroll td:first-child,.app-shell .table-scroll th:first-child{min-width:0;white-space:normal;overflow-wrap:anywhere}.app-shell .table-scroll td.amount,.app-shell .table-scroll td:last-child .row-actions,.app-shell .table-scroll th.amount{white-space:nowrap}.app-shell .table-scroll .row-actions{flex-wrap:nowrap}.app-shell .table-scroll td:nth-child(2){min-width:0;max-width:200px;white-space:normal}.app-shell .table-scroll .entity-tag{display:inline-block;max-width:100%;white-space:normal;overflow-wrap:anywhere}@media (max-width:800px){.app-shell .table-scroll td,.app-shell .table-scroll th{padding-inline:12px}}.receipt-workspace form.receipt-upload{display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(18px,2.4vw,24px)}.receipt-upload-head h2{margin:0 0 2px}.receipt-upload-head p{margin:0}.receipt-workspace label.receipt-drop{position:relative;display:grid;place-items:center;min-height:168px;padding:22px;border:2px dashed var(--line-strong);border-radius:var(--r-md);background:var(--violet-50);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.receipt-drop:focus-within,.receipt-drop:hover:not(.is-locked){border-color:var(--violet)}.receipt-drop.is-over{border-color:var(--violet);background:var(--violet-100)}.receipt-drop.is-locked{cursor:default}.receipt-workspace input.receipt-drop-input{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;border:0;opacity:0;cursor:inherit}.receipt-drop-empty{display:grid;justify-items:center;gap:6px;color:var(--violet);pointer-events:none}.receipt-drop-empty b{color:var(--ink);font-size:15.5px}.receipt-drop-empty small,.receipt-drop-file small{color:var(--muted);font-size:13px;font-weight:500}.receipt-drop-file{display:flex;align-items:center;gap:14px;width:100%;text-align:left;pointer-events:none}.receipt-drop-file img{width:72px;height:92px;flex:none;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#fff}.receipt-drop-file>span{display:grid;gap:4px;min-width:0}.receipt-drop-file b{color:var(--ink);font-size:15px;overflow-wrap:anywhere}.receipt-workspace label.receipt-drop.has-file{min-height:0;place-items:stretch;border-style:solid;background:var(--surface)}.receipt-file-error{margin:-4px 0 0}.receipt-upload-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.receipt-workspace label.receipt-upload-workspace{display:grid;gap:6px;flex:1 1 220px;max-width:340px;font-size:13.5px}.receipt-upload-row>button.primary{min-height:46px;min-width:132px;margin-left:auto}.receipt-workspace label.receipt-camera{position:relative;display:none;align-items:center;gap:8px;min-height:46px;padding:0 16px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:var(--violet);cursor:pointer}.receipt-workspace label.receipt-camera input{position:absolute;inset:0;opacity:0;min-height:0;padding:0;cursor:pointer}.receipt-camera.is-locked{opacity:.55}@media (max-width:720px),(pointer:coarse){.receipt-workspace label.receipt-camera{display:inline-flex}}.receipt-progress{display:block;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--violet-100) 0,var(--violet) 50%,var(--violet-100) 100%) 0 0 /200% 100%;animation:receipt-progress 1.1s linear infinite}@keyframes receipt-progress{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.receipt-progress{animation:none}}.receipt-notice{margin:0;padding:12px 14px;border-radius:var(--r-sm);background:var(--success-50);color:var(--success);font-size:14px}.receipt-list-tools{display:flex;gap:8px;flex-wrap:wrap}.receipt-list-tools button{display:inline-flex;align-items:center;gap:6px}.receipt-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:-8px}.receipt-filters button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font-size:13.5px;font-weight:600;cursor:pointer}.receipt-filters button span{color:var(--muted);font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.receipt-filters button.is-active{background:var(--violet);border-color:var(--violet);color:#fff}.receipt-filters button.is-active span{color:rgb(255 255 255/80%)}.receipt-day{display:grid;gap:8px}.receipt-day-head{margin:0;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.receipt-cards{list-style:none;margin:0;padding:0;display:grid;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.receipt-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 14px}.receipt-card+.receipt-card{border-top:1px solid var(--line)}.receipt-thumb{width:56px;height:70px;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--violet-50);overflow:hidden;cursor:zoom-in}.receipt-thumb img{display:block;width:100%;height:100%;object-fit:cover}.receipt-workspace .receipt-thumb:disabled{opacity:1;cursor:default}.receipt-thumb-wait{display:grid;place-items:center;width:100%;height:100%;color:var(--violet);background:linear-gradient(110deg,var(--violet-50) 30%,var(--violet-100) 50%,var(--violet-50) 70%) 0 0 /200% 100%;animation:receipt-progress 1.4s linear infinite}.receipt-card-main{display:grid;gap:3px;min-width:0}.receipt-pill{justify-self:start;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.5;background:var(--violet-100);color:var(--violet-700)}.receipt-pill.is-saved{background:var(--success-50);color:var(--success)}.receipt-pill.is-review{background:var(--violet-100);color:var(--violet-700)}.receipt-pill.is-details{background:var(--warn-50);color:var(--warn)}.receipt-pill.is-reading{background:#eef1f6;color:var(--muted)}.receipt-pill.is-failed{background:var(--danger-50);color:var(--danger)}.receipt-card-title{display:flex;align-items:baseline;gap:10px;min-width:0;font-size:15px;color:var(--ink)}.receipt-card-merchant{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-card-merchant.is-muted{color:var(--muted);font-weight:600}.receipt-card-amount{flex:none;margin-left:auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.receipt-card-amount.positive-text{color:var(--success)}.receipt-card-meta{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.receipt-card-actions{display:flex;align-items:center;gap:6px}.receipt-card-actions button.primary,.receipt-card-actions button.secondary{min-height:40px;padding:0 14px;white-space:nowrap}.receipt-empty,.receipt-view-button{color:var(--violet)}.receipt-empty{display:grid;justify-items:center;gap:6px;padding:36px 20px;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--surface)}.receipt-empty h3{margin:4px 0 0;color:var(--ink);font-size:16px}.receipt-empty p{margin:0 0 8px;font-size:14px}.receipt-review figcaption{text-decoration:none}@media (max-width:720px){.receipt-card{grid-template-columns:52px minmax(0,1fr);gap:10px 12px;align-items:start}.receipt-thumb{width:52px;height:64px}.receipt-card-actions{grid-column:2}.receipt-card-actions button.primary,.receipt-card-actions button.secondary{flex:1 1}.receipt-card-title{flex-wrap:wrap;gap:2px 10px}.receipt-card-merchant{white-space:normal;overflow-wrap:anywhere}.receipt-card-amount{margin-left:0}.receipt-upload-row>button.primary{flex:1 1 100%;margin-left:0}.receipt-workspace label.receipt-upload-workspace{max-width:none}.receipt-list-tools{width:100%}.receipt-list-tools button{flex:1 1;justify-content:center}}.transaction-receipts button.attachment{width:100%;border:1px solid transparent;text-align:left;color:var(--ink);cursor:zoom-in}.transaction-receipts button.attachment:hover{border-color:var(--line-strong)}.attachment-thumb{width:44px;height:54px;flex:none;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#fff}.receipt-quick-stage button.receipt-quick-zoom{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}.receipt-quick-view button.receipt-quick-open{border:0;background:none;cursor:pointer}.app-shell dialog.receipt-viewer,dialog.receipt-viewer{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#17111f;color:#fff;box-shadow:var(--shadow-lg);overflow:hidden}dialog.receipt-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}dialog.receipt-viewer::backdrop{background:rgb(27 16 45/55%);-webkit-backdrop-filter:none;backdrop-filter:none}.receipt-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 18px;border-bottom:1px solid rgb(255 255 255/10%)}.receipt-viewer-title{display:grid;gap:2px;min-width:0}.receipt-viewer-title strong{font-size:15px}.receipt-viewer-title span,.receipt-viewer-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-viewer-title span{font-size:12.5px;color:rgb(255 255 255/70%)}.receipt-viewer-tools{display:flex;align-items:center;gap:6px;flex:none}.receipt-viewer-tool{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid rgb(255 255 255/20%);border-radius:10px;background:rgb(255 255 255/6%);color:#fff;font-size:13.5px;font-weight:600;text-decoration:none;cursor:pointer}.receipt-viewer-tool:hover,.receipt-viewer-tool[aria-pressed=true]{background:rgb(255 255 255/16%)}.receipt-viewer .icon-button:focus-visible,.receipt-viewer-nav:focus-visible,.receipt-viewer-tool:focus-visible{outline:2px solid #cbb5f0;outline-offset:2px}.app-shell dialog.receipt-viewer .icon-button,dialog.receipt-viewer .icon-button{color:#fff;background:transparent}.receipt-viewer-body{position:relative;min-height:0}.receipt-viewer-stage{position:absolute;inset:0;display:grid;place-items:center;min-height:0;overflow:auto;padding:12px}.receipt-viewer-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in;border-radius:6px;background:#fff}.receipt-viewer-stage.is-actual{display:block}.receipt-viewer-stage.is-actual img{margin:0 auto;max-width:none;max-height:none;cursor:zoom-out}.receipt-viewer-stage img.is-loading{opacity:0}.receipt-viewer-stage .receipt-quick-shimmer{position:absolute;inset:24px;border-radius:12px;opacity:.25}.receipt-viewer-stage .field-error{color:#ffd9d6}.receipt-viewer-nav{position:absolute;top:50%;translate:0 -50%;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:999px;background:rgb(0 0 0/55%);color:#fff;cursor:pointer}.receipt-viewer-nav.is-prev{left:12px}.receipt-viewer-nav.is-next{right:12px}.receipt-viewer-thumbs{display:flex;gap:8px;padding:10px 14px 14px;overflow-x:auto;border-top:1px solid rgb(255 255 255/10%)}.receipt-viewer-thumbs button{flex:none;width:48px;height:60px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#fff;cursor:pointer;opacity:.7}.receipt-viewer-thumbs button.is-selected{border-color:#cbb5f0;opacity:1}.receipt-viewer-thumbs img{width:100%;height:100%;object-fit:cover}@media (min-width:1024px){.app-shell dialog.receipt-viewer,dialog.receipt-viewer{inset:16px 16px 16px auto;width:clamp(380px,calc(100vw - 720px),860px);height:calc(100dvh - 32px);border-radius:20px}dialog.receipt-viewer::backdrop{background:rgb(27 16 45/18%)}.app-shell dialog.has-side-viewer{margin-left:24px;margin-right:auto;max-width:min(640px,calc(100vw - clamp(380px, calc(100vw - 720px), 860px) - 72px))}}.data-export{display:grid;gap:10px;justify-items:start;padding:14px 16px;margin-bottom:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--violet-50)}.data-export h3{margin:0 0 2px;font-size:15px;color:var(--ink)}.data-export p{margin:0}.data-export button{display:inline-flex;align-items:center;gap:8px}.receipt-upload-row label{margin:0}.receipt-workspace label.receipt-camera{flex-direction:row;justify-content:center;font-size:14.5px}@media (max-width:720px){.receipt-workspace label.receipt-camera{flex:1 1 100%}}.app-shell dialog.record-dialog{width:min(1180px,calc(100vw - 32px));max-width:none;height:min(820px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);padding:0;overflow:hidden;touch-action:pan-y pinch-zoom}.app-shell dialog.record-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}.app-shell dialog.record-dialog:focus{outline:none}.record-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.record-bar-label{font-size:13px;font-weight:600;color:var(--muted);padding-left:4px}.record-nav{display:flex;align-items:center;gap:6px;min-width:0}.app-shell dialog .record-nav-button{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:13.5px;font-weight:600;cursor:pointer}.app-shell dialog .record-nav-button:hover:not(:disabled){background:var(--violet-50);border-color:var(--line-strong)}.app-shell dialog .record-nav-button:disabled{opacity:.4;cursor:not-allowed}.record-nav-button:focus-visible,.record-receipt-list button:focus-visible,.record-receipt:focus-visible,.record-thumbs button:focus-visible,.record-tool:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.record-position{min-width:64px;text-align:center;font-size:13px;font-weight:600;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.record-body{display:grid;grid-template-columns:minmax(340px,440px) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;min-height:0}.record-details{grid-column:1;grid-row:1;min-height:0;overflow:auto;padding:22px 26px 8px;border-right:1px solid var(--line)}.record-details h2{margin:0;overflow-wrap:anywhere}.app-shell dialog .record-details .category-heading p{margin:0 0 2px}.record-details .detail-amount{margin-top:14px}.app-shell .record-details .review{margin:16px 0}.record-details .detail-notes{margin:0 0 18px}.record-details .transaction-receipts{padding-top:18px}.record-details .transaction-receipts h3{margin:0 0 10px}.record-receipt-list{display:grid;gap:8px}.app-shell dialog .record-receipt-list button{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);text-align:left;font-size:14px;font-weight:600;cursor:pointer}.app-shell dialog .record-receipt-list button:hover{border-color:var(--line-strong)}.app-shell dialog .record-receipt-list button.is-selected{border-color:var(--violet);background:var(--violet-50)}.record-receipt-list img{width:40px;height:50px;flex:none;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#fff}.record-receipt-list small{display:block;margin-top:2px;font-size:12.5px;font-weight:400;color:var(--muted)}.record-attach .field-error{margin:8px 0 0}.app-shell dialog .record-attach .upload-attachment{margin-top:10px}.app-shell dialog .record-actions{grid-column:1;grid-row:2;display:flex;justify-content:flex-end;margin:0;padding:14px 26px 18px;border-right:1px solid var(--line);background:var(--surface)}.record-receipt{grid-column:2;grid-row:1/span 2;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;background:#efebf5}.record-receipt:focus{outline:none}.record-receipt-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px}.record-receipt-title{display:grid;gap:1px;min-width:0}.record-receipt-title strong{font-size:15px;color:var(--ink)}.record-receipt-title span{font-size:12.5px;color:var(--muted)}.record-receipt-tools{display:flex;gap:6px;flex:none}.app-shell dialog .record-tool{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);font-size:13.5px;font-weight:600;text-decoration:none;cursor:pointer}.app-shell dialog .record-tool:hover,.app-shell dialog .record-tool[aria-pressed=true]{background:var(--violet-100);border-color:var(--violet)}.record-stage{position:relative;display:grid;place-items:center;min-height:0;overflow:auto;padding:4px 16px 16px}.record-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;background:#fff;box-shadow:0 6px 24px rgb(27 16 45/14%);cursor:zoom-in}.record-stage.is-fit img{position:absolute;inset:4px 16px 16px;margin:auto;max-width:calc(100% - 32px);max-height:calc(100% - 20px)}.record-stage.is-actual{display:block;touch-action:auto}.record-stage.is-actual img{margin:0 auto;max-width:none;max-height:none;cursor:zoom-out}.record-stage img.is-loading{opacity:0}.record-stage .receipt-quick-shimmer{inset:8px 16px 16px}.record-stage.is-loading{grid-row:1/-1}.record-thumbs{display:flex;gap:8px;padding:10px 16px 14px;overflow-x:auto;border-top:1px solid var(--line)}.app-shell dialog .record-thumbs button{flex:none;width:48px;height:60px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#fff;opacity:.7;cursor:pointer}.app-shell dialog .record-thumbs button.is-selected{border-color:var(--violet);opacity:1}.record-thumbs img{width:100%;height:100%;object-fit:cover}.record-receipt-empty{grid-row:1/-1;align-self:center;justify-self:center;display:grid;justify-items:center;gap:6px;max-width:360px;padding:32px 24px;text-align:center}.record-receipt-icon{display:grid;place-items:center;width:64px;height:64px;margin-bottom:6px;border-radius:20px;background:var(--surface);color:var(--violet);box-shadow:var(--shadow-sm)}.record-receipt-empty h3{margin:0;font-size:17px;color:var(--ink)}.app-shell dialog .record-receipt-empty p{margin:0;font-size:14px;color:var(--muted)}.record-receipt-empty .record-attach{width:100%;margin-top:8px}.app-shell dialog .record-receipt-empty .upload-attachment{background:var(--surface);text-align:left}@media (max-width:799px){.app-shell dialog.record-dialog{width:calc(100vw - 16px);height:auto;max-height:calc(100dvh - 16px);overflow:auto;border-radius:20px}.app-shell dialog.record-dialog[open]{display:block}.record-bar{position:sticky;top:0;z-index:2;padding:8px 8px 8px 10px}.app-shell dialog .record-nav-button{padding:0 10px}.record-position{min-width:0}.record-body{display:block}.record-details{overflow:visible;padding:18px 18px 0;border-right:0}.app-shell dialog .record-actions{padding:14px 18px 18px;border-right:0}.record-receipt{display:block;border-top:1px solid var(--line);scroll-margin-top:56px}.record-stage{height:min(68dvh,560px)}.record-stage.is-loading{height:240px}}@media (max-width:420px){.app-shell dialog .record-nav-button{font-size:13px}.record-receipt-tools .record-tool{padding:0 10px}}