*{box-sizing:border-box}:root{color:#17211c;background:#f5f3ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;padding:28px}.topbar{justify-content:space-between;align-items:center;gap:24px;max-width:1480px;margin:0 auto 24px;display:flex}.eyebrow{color:#5f6b61;letter-spacing:0;text-transform:uppercase;margin:0 0 5px;font-size:.78rem;font-weight:750}h1,h2,p{margin:0}h1{color:#122118;font-size:clamp(2rem,4vw,4.25rem);line-height:.95}h2{font-size:1rem}.topbar-actions,.toolbar,.bulk-bar,.category-form,.date-filter,.select-wrap,.search-box{align-items:center;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.hidden-input{display:none}.primary-button,.secondary-button,.icon-button{border:1px solid #c8cdc5;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;font-weight:750;display:inline-flex}.primary-button{color:#fff;background:#163c2a;padding:0 16px}.secondary-button{color:#173f2d;background:#fff;padding:0 14px}.secondary-button:disabled{color:#879286;cursor:wait}.icon-button{color:#223429;background:#fff;width:42px}.icon-button.danger{color:#9b2f24}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:1480px;margin:0 auto 18px;display:grid}.metric-card{background:#fff;border:1px solid #dbded7;border-radius:8px;align-items:center;gap:14px;min-height:98px;padding:18px;display:flex}.metric-icon{color:#173f2d;background:#e8efe6;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.metric-card p{color:#667166;margin-bottom:4px;font-size:.84rem}.metric-card strong{color:#142119;font-size:1.45rem}.workspace-grid{grid-template-columns:280px minmax(0,1fr);gap:18px;max-width:1480px;margin:0 auto;display:grid}.receipt-review-grid{grid-template-columns:320px minmax(0,1fr);gap:18px;max-width:1480px;margin:0 auto;display:grid}.side-panel,.ledger-panel{background:#fff;border:1px solid #dbded7;border-radius:8px}.side-panel{align-self:start;padding:18px}.panel-heading{margin-bottom:14px}.category-form{gap:8px;margin-bottom:16px}.category-form select{min-width:128px}.account-select{gap:6px;margin-bottom:10px;display:grid}.account-select span{color:#667166;text-transform:uppercase;font-size:.78rem;font-weight:800}.category-form input,.search-box input,td input,select{color:#18241c;background:#fafaf7;border:1px solid #d7dbd2;border-radius:8px;outline:none;min-height:38px;padding:0 10px}.category-form input{width:100%;min-width:0}.account-list{border-bottom:1px solid #eceee8;gap:8px;margin-bottom:18px;padding-bottom:18px;display:grid}.account-row{background:#fafaf7;border:1px solid #e4e6df;border-radius:8px;gap:8px;padding:10px;display:grid}.account-row span{color:#17231b;overflow-wrap:anywhere;font-size:.88rem;font-weight:800}.account-row select{width:100%}.category-list{gap:8px;display:grid}.category-row{border-bottom:1px solid #eceee8;justify-content:space-between;align-items:center;padding:10px 0;font-size:.92rem;display:flex}.category-row strong{color:#2d5b40}.receipt-heading{border-top:1px solid #eceee8;justify-content:space-between;align-items:center;margin:22px 0 12px;padding-top:18px;display:flex}.receipt-heading.compact{border-top:0;margin-top:0;padding-top:0}.receipt-heading span{color:#244a33;background:#e8efe6;border-radius:999px;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 8px;font-size:.8rem;font-weight:800;display:inline-flex}.receipt-list{gap:9px;display:grid}.receipt-row{cursor:pointer;text-align:left;background:#fafaf7;border:1px solid #e4e6df;border-radius:8px;gap:3px;padding:10px;display:grid}.receipt-row.active{background:#edf3ea;border-color:#b9ceb2}.receipt-row strong{color:#17231b;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.receipt-row span,.quiet-copy{color:#667166;font-size:.84rem}.receipt-preview{border-top:1px solid #eceee8;margin-top:18px;padding-top:18px}.receipt-preview-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.receipt-preview-heading .icon-button{width:34px;min-height:34px}.receipt-image,.receipt-frame{background:#fafaf7;border:1px solid #e4e6df;border-radius:8px;width:100%;display:block}.receipt-image{object-fit:contain;max-height:420px}.receipt-frame{aspect-ratio:3/4}.receipt-detail-panel{background:#fff;border:1px solid #dbded7;border-radius:8px;min-width:0;overflow:hidden}.receipt-detail-grid{grid-template-columns:minmax(280px,.8fr) minmax(360px,1fr);gap:18px;padding:18px;display:grid}.receipt-preview-large,.receipt-data-panel{min-width:0}.receipt-image.large{max-height:720px}.receipt-frame.large{min-height:640px}.receipt-data-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.receipt-data-heading h2{font-size:1.45rem}.receipt-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.receipt-fact{background:#fafaf7;border:1px solid #e4e6df;border-radius:8px;min-height:82px;padding:12px}.receipt-fact span{color:#244a33}.receipt-fact p{color:#667166;text-transform:uppercase;margin:4px 0;font-size:.78rem}.receipt-fact strong{color:#17231b;overflow-wrap:anywhere;font-size:1.1rem;display:block}.line-items-wrap{border:1px solid #e4e6df;border-radius:8px;overflow:auto}.line-items-table{min-width:560px}.empty-state.compact{padding:18px}.candidate-panel{border-top:1px solid #eceee8;margin-top:18px;padding-top:18px}.candidate-search{align-items:center;gap:10px;margin-bottom:12px;display:flex}.candidate-search .search-box{flex:1}.candidate-list{gap:10px;display:grid}.candidate-row{background:#fafaf7;border:1px solid #e4e6df;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;gap:12px;padding:12px;display:grid}.candidate-main{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.candidate-main strong{color:#17231b;overflow-wrap:anywhere}.candidate-main span{color:#98372d;white-space:nowrap;font-weight:800}.candidate-row p{color:#667166;margin-top:4px;font-size:.84rem}.candidate-reasons{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.candidate-reasons span{color:#5f6b61;background:#fff;border:1px solid #e4e6df;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:700}.candidate-actions{align-items:center;gap:8px;display:flex}.candidate-score{color:#8a382f;background:#f4e8e5;border-radius:999px;justify-content:center;align-items:center;min-width:34px;height:34px;font-size:.85rem;font-weight:900;display:inline-flex}.candidate-score.medium{color:#6f5215;background:#fff6dc}.candidate-score.strong{color:#244a33;background:#e8efe6}.ledger-panel{min-width:0;overflow:hidden}.toolbar{border-bottom:1px solid #e3e5df;flex-wrap:wrap;gap:10px;padding:14px}.search-box{color:#6c756b;background:#fafaf7;border:1px solid #d7dbd2;border-radius:8px;flex:320px;gap:8px;min-height:42px;padding:0 12px}.search-box input{background:0 0;border:0;width:100%;min-width:0;padding:0}.select-wrap{color:#5d675f;gap:6px;position:relative}.select-wrap select{appearance:none;min-width:148px;padding-left:34px;padding-right:32px}.date-filter{color:#5d675f;background:#fafaf7;border:1px solid #d7dbd2;border-radius:8px;gap:8px;min-height:42px;padding:0 10px}.date-filter span{color:#667166;text-transform:uppercase;font-size:.74rem;font-weight:850}.date-filter input{color:#18241c;background:0 0;border:0;min-width:132px;min-height:38px;padding:0}.select-wrap svg:first-child{pointer-events:none;position:absolute;left:11px}.select-wrap svg:last-child{pointer-events:none;position:absolute;right:10px}.import-message,.bulk-bar{color:#244a33;background:#edf3ea;border-bottom:1px solid #d8e4d2;padding:10px 14px;font-size:.9rem}.import-message.warning{color:#6f5215;background:#fff6dc;border-bottom-color:#eadaa6}.bulk-bar{gap:10px}.bulk-bar select{min-height:34px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:1120px}th,td{text-align:left;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #eceee8;padding:11px 12px;font-size:.9rem}th{color:#5d685d;text-transform:uppercase;background:#fbfbf8;font-size:.78rem;font-weight:800;position:sticky;top:0}.check-cell{width:44px}.description-cell{color:#17231b;min-width:260px;font-weight:700}.see-receipt-link{color:#2d5b40;text-underline-offset:2px;width:fit-content;margin-top:4px;font-size:.78rem;font-weight:800;text-decoration:underline;display:block}.matched-row{background:#fbfdf9}.receipt-match-cell{align-items:center;gap:8px;min-width:230px;display:flex}.receipt-match-cell select{min-width:170px}.match-pill{color:#244a33;background:#e8efe6;border:1px solid #cfe0ca;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:800}.match-pill.suggested{color:#6f5215;background:#fff6dc;border-color:#eadaa6}.mini-button{color:#fff;background:#163c2a;border:0;border-radius:999px;min-height:28px;padding:0 10px;font-size:.76rem;font-weight:800}td select,td input{width:100%}.amount-negative{color:#98372d;font-weight:800}.amount-positive{color:#236f45;font-weight:800}.empty-state{color:#637065;text-align:center;padding:38px 16px}.categorize-grid,.overview-grid{gap:18px;max-width:1480px;margin:0 auto;display:grid}.categorize-grid{grid-template-columns:320px minmax(0,1fr)}.overview-grid{grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr)}.categorize-panel,.overview-panel{background:#fff;border:1px solid #dbded7;border-radius:8px;min-width:0;overflow:hidden}.categorize-card{gap:22px;padding:22px;display:grid}.transaction-focus{background:#fafaf7;border:1px solid #e4e6df;border-radius:8px;gap:8px;padding:18px;display:grid}.transaction-focus p,.transaction-focus span,.similar-prompt p{color:#667166}.transaction-focus h2{overflow-wrap:anywhere;font-size:1.45rem}.transaction-focus strong{font-size:1.6rem}.category-button-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.category-choice{color:#173f2d;text-align:left;background:#fff;border:1px solid #d7dbd2;border-radius:8px;min-height:48px;padding:0 12px;font-weight:800}.category-choice:hover{background:#edf3ea}.category-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.similar-prompt{background:#fff6dc;border:1px solid #eadaa6;border-radius:8px;gap:10px;padding:16px;display:grid}.queue-row{text-align:left;background:#fafaf7;border:1px solid #e4e6df;border-radius:8px;gap:4px;padding:10px;display:grid}.queue-row.active{background:#edf3ea;border-color:#b9ceb2}.queue-row strong{color:#17231b;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.queue-row span{color:#667166;font-size:.78rem}.overview-message{max-width:1480px;margin:0 auto 18px}.overview-panel{padding:18px}.overview-total{color:#142119;font-size:1.6rem}.pie-layout{grid-template-columns:minmax(180px,.7fr) minmax(0,1fr);align-items:center;gap:20px;display:grid}.pie-chart{width:100%;max-width:260px;height:auto;display:block;transform:rotate(-90deg)}.pie-legend,.category-comparison-list{gap:10px;display:grid}.legend-row,.comparison-row{background:#fafaf7;border:1px solid #e4e6df;border-radius:8px;align-items:center;gap:10px;padding:10px;display:grid}.legend-row{grid-template-columns:14px minmax(0,1fr) auto}.legend-row span:first-child{border-radius:999px;width:12px;height:12px}.legend-row p,.comparison-row p{color:#667166;font-size:.84rem}.legend-row strong,.comparison-values span{color:#17231b;font-weight:850}.comparison-row{grid-template-columns:minmax(0,1fr) auto}.comparison-values{place-items:flex-end end;gap:6px;display:grid}.comparison-pill{color:#244a33;background:#edf3ea;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:800}.comparison-pill.up{color:#8a382f;background:#f4e8e5}.comparison-pill.down{color:#236f45;background:#e8efe6}.setup-grid{grid-template-columns:320px minmax(0,1fr);gap:18px;max-width:1480px;margin:0 auto;display:grid}.setup-panel{background:#fff;border:1px solid #dbded7;border-radius:8px;min-width:0;padding:18px}.setup-form,.setup-section-list,.setup-category-list{gap:12px;display:grid}.setup-form label,.setup-category-row label{gap:6px;display:grid}.setup-form span,.setup-category-row span{color:#667166;text-transform:uppercase;font-size:.74rem;font-weight:850}.setup-form input,.setup-category-row input{color:#18241c;background:#fafaf7;border:1px solid #d7dbd2;border-radius:8px;outline:none;width:100%;min-width:0;min-height:38px;padding:0 10px}.setup-section{border:1px solid #e4e6df;border-radius:8px;overflow:hidden}.setup-section-heading{background:#fafaf7;border-bottom:1px solid #e4e6df;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.setup-section-heading strong{color:#236f45;font-size:1.2rem}.setup-category-list{padding:12px}.setup-category-row{grid-template-columns:minmax(160px,1.3fr) minmax(140px,1fr) minmax(120px,.6fr) minmax(110px,.45fr);align-items:end;gap:10px;display:grid}.setup-message{border:1px solid #eadaa6;border-radius:8px;margin-bottom:14px}.setup-checkbox{align-items:center;gap:8px;display:flex}.setup-checkbox input{width:auto;min-height:auto}.setup-checkbox-inline{min-height:38px}.rollover-pill{color:#6f5215;vertical-align:middle;background:#fff6dc;border-radius:999px;margin-left:8px;padding:3px 8px;font-size:.72rem;font-weight:850;display:inline-flex}.oauth-shell{justify-content:center;align-items:center;display:flex}.oauth-panel{background:#fff;border:1px solid #dbded7;border-radius:8px;align-items:flex-start;gap:16px;width:100%;max-width:620px;padding:24px;display:flex}.oauth-panel h1{font-size:2.2rem;line-height:1}.oauth-copy{color:#667166;margin-top:12px}.oauth-copy.warning{color:#8a382f}.oauth-action{margin-top:18px}@media (max-width:980px){.app-shell{padding:18px}.topbar{flex-direction:column;align-items:flex-start}.metrics-grid,.workspace-grid,.categorize-grid,.overview-grid,.setup-grid,.setup-category-row,.receipt-review-grid,.receipt-detail-grid,.pie-layout{grid-template-columns:1fr}.side-panel{order:2}}@media (max-width:620px){.app-shell{padding:14px}.metrics-grid{gap:10px}.metric-card{min-height:82px}.topbar-actions,.primary-button,.secondary-button{width:100%}.topbar-actions{align-items:stretch}.primary-button,.topbar-actions .icon-button{flex:1}.toolbar{flex-direction:column;align-items:stretch}.candidate-row,.candidate-search,.comparison-row{grid-template-columns:1fr}.candidate-search{flex-direction:column;align-items:stretch}.search-box,.select-wrap,.select-wrap select,.date-filter{flex:initial;width:100%}.date-filter input{width:100%}.comparison-values{place-items:flex-start start}}
