:root{--ink:#163247;--muted:#627586;--teal:#086f72;--bg:#f1f5f7;--line:#d8e3e8;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,sans-serif;line-height:1.55}header{background:#123144;color:white;display:flex;align-items:center;gap:24px;padding:20px 4%;}header form{margin-left:auto}header .quiet{color:white}.brand{font-size:26px;font-weight:800;color:white;text-decoration:none}.brand span{color:#7be0cf}.tagline{font-size:13px;color:#c5d6de}nav{padding:12px 4%;background:white;display:flex;gap:8px 20px;flex-wrap:wrap;border-bottom:1px solid var(--line)}nav a{color:var(--ink);font-size:14px;text-decoration:none;padding:5px 0}.scan-link{color:var(--teal);font-weight:700}main{max-width:1440px;margin:32px auto;padding:0 4%}h1{font-size:34px;line-height:1.2;letter-spacing:-1px;margin:8px 0 16px}h2{font-size:21px;margin:0 0 12px}p{margin:10px 0 18px}.page-head{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:24px}.eyebrow{text-transform:uppercase;letter-spacing:2px;color:var(--teal);font-size:12px;font-weight:700}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;margin:24px 0;box-shadow:0 4px 16px #16324705}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.metrics article{padding:24px;background:white;border:1px solid var(--line);border-radius:14px}.metrics span,.metrics small{display:block;color:var(--muted);font-size:13px}.metrics strong{display:block;font-size:30px;margin:8px 0}.metrics .accent{background:var(--teal);color:white}.accent span,.accent small{color:#d2f0eb}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:14px 0}.actions form{margin:0}a{color:var(--teal)}button,.button{border:0;background:var(--teal);color:white;border-radius:8px;padding:11px 18px;font-size:14px;cursor:pointer;display:inline-block;text-decoration:none;font-weight:650;min-height:44px}.secondary{background:#e5f1f0;color:var(--teal)}.quiet{background:transparent;color:var(--teal);padding:6px}.danger{color:#a73535}label{display:block;font-weight:650;font-size:14px;margin:14px 0 6px}input,select{border:1px solid #bcced8;background:white;border-radius:7px;padding:11px 12px;color:var(--ink);font:inherit;width:100%;max-width:620px;min-height:44px}input[type=checkbox]{width:24px;height:24px;min-height:24px;display:block}form button{margin-top:14px}input:focus,select:focus,button:focus,a:focus{outline:3px solid #75c5bd;outline-offset:2px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 24px}.auth{max-width:520px;margin:50px auto}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px}td,th{padding:14px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td .actions{margin:0}.notice{background:#e3f4ee;border-left:4px solid var(--teal);padding:14px;border-radius:6px}.validation{color:#a73535}.muted{color:var(--muted);font-size:13px}footer{padding:24px 4%;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}video{width:100%;max-height:420px;background:#142d40;border-radius:12px;margin-top:20px}.scan{max-width:760px}code{background:#eef4f5;padding:3px 6px}button:disabled{opacity:.6;cursor:wait}@media(max-width:850px){.metrics{grid-template-columns:repeat(2,1fr)}.tagline{display:none}.page-head{align-items:flex-start;flex-direction:column}}@media(max-width:540px){main{margin-top:20px}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metrics article{padding:16px}.metrics strong{font-size:23px}.panel{padding:18px}.form-grid{grid-template-columns:1fr}h1{font-size:28px}nav{gap:5px 14px}.actions .button{flex-grow:1;text-align:center}}

.ocr-text{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.6 ui-monospace,monospace;max-height:650px;overflow:auto}

.barcode-photo{display:block;margin:1rem 0}.barcode-photo input{width:100%;margin-top:.5rem}.scan video{aspect-ratio:4/3;object-fit:contain;border-radius:12px}.scan [data-barcode-status]{min-height:3em}@media(max-width:600px){.scan .actions{display:grid;grid-template-columns:1fr 1fr}.scan .actions button{width:100%}}
[hidden]{display:none!important}.validation-summary-valid{display:none}


.ocr-progress{display:flex;align-items:center;gap:12px;padding:16px 0}.ocr-spinner{display:inline-block;width:24px;height:24px;flex-shrink:0;border:3px solid #aaa;border-top-color:#ed8b36;border-radius:50%;animation:ocr-spin 1s linear infinite}.ocr-spinner[hidden]{display:none}@keyframes ocr-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ocr-spinner{animation:none}}

.statement-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;background:white;padding:12px 0;z-index:2;border-bottom:1px solid var(--line)}.statement-toolbar p{margin:0}.statement-toolbar button{flex-shrink:0;margin:0}.statement-rows{display:grid;gap:12px;margin:20px 0}.statement-row{border:1px solid var(--line);border-radius:10px;padding:16px;background:#fafcfd;min-width:0}.statement-row.needs-attention{border-left:4px solid #b58129}.statement-row-head{display:grid;grid-template-columns:125px 105px minmax(0,1fr) 105px 120px;align-items:center;gap:14px}.statement-merchant,.statement-original{overflow-wrap:anywhere;white-space:normal}.statement-amount{text-align:right;font-variant-numeric:tabular-nums}.statement-category{font-size:13px;background:#e5f1f0;border-radius:6px;padding:4px 8px;overflow-wrap:anywhere}.statement-include,.statement-options label{display:flex;align-items:center;gap:8px;margin:0;font-weight:400}.statement-include input,.statement-options input{flex-shrink:0}.statement-row summary{cursor:pointer;color:var(--teal);padding:8px 0}.statement-row .muted{margin:8px 0}.statement-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.statement-edit-grid input,.statement-edit-grid select{max-width:none}.statement-options{display:flex;flex-wrap:wrap;gap:18px;margin:18px 0}@media(max-width:850px){.statement-row-head{grid-template-columns:1fr auto}.statement-merchant{grid-column:1/-1}.statement-amount{text-align:left}.statement-toolbar{position:static;flex-wrap:wrap}.statement-edit-grid{grid-template-columns:1fr}.statement-category{justify-self:end}}

.statement-group>summary{cursor:pointer;color:var(--teal);padding:10px 0;font-weight:650}.statement-group .statement-row{margin-bottom:12px}

.calendar-legend{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:18px 0}.calendar-legend>span{padding:8px;border-radius:6px}.cal-pay{background:#d9f3df;color:#174f2b}.cal-bill{background:#ffe0e0;color:#782727}.cal-bonus{background:#258847;color:#fff}.calendar-grid{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{padding:12px;font-weight:700;text-align:center}.calendar-day{min-height:130px;padding:8px;border-top:1px solid var(--line);border-right:1px solid var(--line);min-width:0}.outside-month{background:#eef1f3;opacity:.65}.calendar-today{box-shadow:inset 0 0 0 2px var(--teal)}.calendar-event{display:block;text-decoration:none;margin-top:8px;padding:8px;border-radius:6px;font-size:12px;overflow-wrap:anywhere}.calendar-event span,.calendar-event strong,.calendar-event small{display:block}.projected{border:2px dashed currentColor}.calendar-agenda-entry{padding:16px;border-radius:10px;display:flex;justify-content:space-between;gap:18px;margin-bottom:10px;overflow-wrap:anywhere}.calendar-agenda-entry p{font-size:13px;margin:6px 0}.calendar-agenda-entry>strong{white-space:nowrap}.calendar-agenda-entry.cal-bonus a{color:white}.recurrence-pattern{border-bottom:1px solid var(--line);padding:14px 0}.recurrence-pattern>summary{cursor:pointer;overflow-wrap:anywhere;color:var(--teal);font-weight:650}@media(max-width:800px){.calendar-grid{display:none}.calendar-agenda-entry{flex-direction:column}.calendar-legend{font-size:13px}}

.bill-group-links{display:flex;flex-wrap:wrap;gap:.7rem;margin:1rem 0}.bill-group-links a{padding:.5rem .8rem;border-radius:.5rem;background:#edf3fa}.bill-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:1rem}.bill-card{border:1px solid #d5dfeb;border-radius:12px;padding:1rem;min-width:0}.bill-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.bill-card h3{margin:0;overflow-wrap:anywhere}.bill-card-head>span{font-size:.8rem;white-space:nowrap}.bill-facts{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.bill-facts dt{font-size:.8rem;color:#53647b}.bill-facts dd{margin:0;font-weight:600}.bill-facts small{display:block;font-weight:400}.bill-urgent{border-left:5px solid #c52e40;background:#fff3f3}.bill-attention{border-left:5px solid #d48a1a;background:#fffaf0}.bill-card .actions{align-items:stretch}.bill-card .actions button{white-space:normal}.bill-reminder{padding:.8rem;margin:.6rem 0;border-radius:8px;border-left:4px solid #d48a1a;background:#fffaf0}.bill-reminder.urgent{border-color:#c52e40;background:#fff3f3}.forecast-details{display:flex;gap:1.5rem;flex-wrap:wrap}.forecast-details>div{flex:1;min-width:150px}.forecast-details strong{display:block;font-size:1.4rem}
.savings-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:1rem}.savings-card{padding:1rem;border:1px solid #d5dfeb;border-radius:12px;min-width:0}.savings-card h3{margin-top:0;overflow-wrap:anywhere}.savings-card.selected{border-color:#008d87;background:#effbf8}.savings-card.essential{background:#f6f8fb}.savings-result{font-weight:700;color:#00685f}.savings-summary progress{width:100%;height:1rem;accent-color:#008d87}.savings-summary .metrics article{min-width:0}.savings-summary .metrics strong{overflow-wrap:anywhere}
[hidden]{display:none!important}.barcode-stage{position:relative;width:100%;aspect-ratio:16/9;background:#123144;overflow:hidden;border-radius:12px;margin:16px 0}.scan .barcode-stage video{width:100%;height:100%;max-height:none;aspect-ratio:16/9;object-fit:cover;margin:0}.barcode-guide{position:absolute;left:8%;right:8%;top:28%;bottom:28%;border:3px solid #7be0cf;border-radius:8px;box-shadow:0 0 0 100vmax #0005;pointer-events:none}.document-scanner{max-width:960px}.document-stage{position:relative;aspect-ratio:4/3;overflow:hidden;background:#123144;border-radius:12px}.document-stage video{width:100%;height:100%;object-fit:contain;margin:0;max-height:none}.document-stage canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.document-review canvas{width:100%;height:auto;touch-action:none;background:#123144;border-radius:8px}.document-pages{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}.document-pages article{padding:12px;border:1px solid var(--line);border-radius:8px;min-width:0}.document-pages img{width:100%;height:180px;object-fit:contain;background:#eef4f5}.document-pages .actions{gap:6px}.document-pages button{padding:8px}.inline-check{display:flex;gap:10px;align-items:center}.document-scanner [data-doc-status]{min-height:3em}.document-scanner.processing{opacity:.8}.document-scanner.processing [data-doc-status]::before{content:"";display:inline-block;width:14px;height:14px;border:2px solid #bcced8;border-top-color:#086f72;border-radius:50%;animation:scan-spin .8s linear infinite;margin-right:8px}@keyframes scan-spin{to{transform:rotate(360deg)}}

.receipt-continuation{padding:16px;background:#e5f1f0;border-radius:10px;margin:18px 0}.ocr-preview{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.ocr-preview textarea{width:100%;min-height:240px;resize:vertical;padding:12px;border:1px solid #bcced8;border-radius:8px;font:14px monospace;white-space:pre-wrap;overflow-wrap:anywhere}

.ocr-preview-dialog{width:min(800px,94vw);max-height:88vh;overflow:auto;border:1px solid var(--line);border-radius:14px;padding:20px;color:var(--ink)}.ocr-preview-dialog::backdrop{background:#102736b3}.ocr-preview-dialog textarea{width:100%;min-height:260px;padding:12px;resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere;font:14px monospace}.ocr-preview-dialog .page-head{margin-bottom:16px}

.document-stage [data-doc-ghost]{position:absolute;top:0;opacity:.38;pointer-events:none;object-fit:fill;margin:0;max-height:28%;border-bottom:2px dashed #ffca60}.document-stage:has([data-doc-ghost]:not([hidden])){outline:2px solid #7be0cf}

@media(max-width:600px){.scan .document-scanner .actions{grid-template-columns:repeat(2,minmax(0,1fr))}.document-scanner button{min-width:0;overflow-wrap:anywhere}.document-scanner .inline-check input{flex-shrink:0}}

.document-scanner [data-doc-tail]{display:block;width:100%;max-height:140px;object-fit:contain}

.ocr-preview-loading{display:flex;align-items:center;gap:12px;padding:12px 0;color:var(--teal)}

.document-camera-open{overflow:hidden}.document-camera-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#102736;color:white;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:10px}.document-camera-dialog:not([open]){display:none}.document-camera-dialog::backdrop{background:#102736}.document-camera-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.document-camera-heading h2{margin:0}.document-camera-space{min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.document-camera-space .document-stage{flex:none;border-radius:6px}.document-camera-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.document-camera-actions button{min-height:48px}.document-camera-dialog [data-camera-status]{margin:0;font-size:14px;min-height:22px}.document-camera-dialog:fullscreen{width:100vw;height:100dvh}@media(max-height:450px){.document-camera-heading h2{font-size:16px}.document-camera-dialog{gap:4px}.document-camera-dialog [data-camera-status]{font-size:12px}.document-camera-heading button,.document-camera-actions button{padding:7px 12px}}

[hidden]{display:none!important}
.nav-menu{position:relative}.nav-menu summary,.action-menu summary,.advanced-search summary{cursor:pointer;padding:.6rem .8rem;font-weight:600}
.nav-menu>div{position:absolute;top:100%;left:0;min-width:220px;background:var(--panel,#fff);border:1px solid #b8c7d5;border-radius:8px;box-shadow:0 8px 24px #0002;z-index:5;padding:.4rem;display:grid}
.nav-menu>div a{display:block;padding:.6rem}.nav-menu[open]>summary{background:#dbeafe;border-radius:6px}
.advanced-search{margin:.8rem 0}.advanced-search .form-grid{padding:.8rem;border:1px solid #d4dee7;border-radius:8px}.search-toolbar{margin:1rem 0}.search-toolbar input[type=search]{max-width:38rem}
#site-status{position:sticky;top:0;z-index:4;background:#eff6ff;color:#183c64;padding:.8rem 1rem;border-bottom:1px solid #b8c7d5}
main[aria-busy=true]{opacity:.65;pointer-events:none}.action-menu{margin:.8rem 0}.search-result-count{color:#536477}
@media(max-width:650px){nav{overflow:visible;flex-wrap:wrap}.nav-menu>div{position:fixed;left:1rem;right:1rem;top:auto;min-width:0;max-height:65vh;overflow:auto}}
.email-body { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 25rem; overflow: auto; }

.vendor-receipts{padding: .65rem;margin-block:.5rem}.vendor-receipts summary{cursor:pointer}.vendor-receipts table td{padding:.4rem}.receipt-email-dialog{width:min(850px,92vw);max-height:85vh;overflow:auto;border:1px solid #bdd0d5;border-radius:12px;padding:1.25rem}.receipt-email-dialog::backdrop{background:#102b46aa}.receipt-email-dialog .email-body{white-space:pre-wrap;overflow-wrap:anywhere}

/* Keep main navigation above page content and AJAX status messages. */
nav[aria-label="Main navigation"]{position:relative;z-index:5}

.isolated-email-view{display:block;width:100%;height:60vh;min-height:300px;border:0;background:white}.isolated-email-view[hidden],.email-body[hidden]{display:none}

.email-html-toggle{width:34px;height:34px;padding:0;border:0;border-radius:5px;background:transparent;color:#086f72;font-size:16px}.email-html-toggle[aria-pressed="true"],.email-html-toggle:hover{background:#dcefea}.email-html-toggle:focus-visible{outline:2px solid #086f72;outline-offset:2px}
