:root {
  --ink: #18211f;
  --muted: #7e8984;
  --muted-2: #aeb8b1;
  --line: #e1e7df;
  --canvas: #f6f8f4;
  --paper: #ffffff;
  --cream: #f4eee4;
  --lime: #d7f17f;
  --lime-deep: #92b63d;
  --sage: #e4eee2;
  --green: #2f6a56;
  --red: #c96b51;
  --shadow: 0 20px 50px rgba(30, 46, 38, .06);
  --radius-lg: 28px;
  --radius-md: 18px;
  --mono: 'DM Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--canvas); }
body { margin: 0; min-width: 320px; background: var(--canvas); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; }
button { border: 0; cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgba(146, 182, 61, .35); outline-offset: 2px; }

.app-shell { display: flex; min-height: 100vh; }
.sidebar { width: 242px; flex: 0 0 242px; min-height: 100vh; padding: 34px 20px 24px; display: flex; flex-direction: column; background: #eef3ed; border-right: 1px solid #e1e8e0; }
.brand-lockup, .mobile-brand { display: flex; align-items: center; gap: 11px; }
.brand-mark { width: 28px; height: 28px; padding: 6px 5px; display: flex; align-items: end; gap: 3px; border-radius: 9px; background: var(--ink); }
.brand-mark span { display: block; width: 4px; border-radius: 4px; background: var(--lime); }
.brand-mark span:nth-child(1) { height: 8px; opacity: .7; }.brand-mark span:nth-child(2) { height: 13px; }.brand-mark span:nth-child(3) { height: 17px; opacity: .85; }
.brand-mark.small { width: 24px; height: 24px; padding: 5px 4px; border-radius: 8px; }.brand-mark.small span { width: 3px; }.brand-mark.small span:nth-child(1) { height: 7px; }.brand-mark.small span:nth-child(2) { height: 11px; }.brand-mark.small span:nth-child(3) { height: 15px; }
.brand-name { margin: 0; color: var(--ink); font-size: 13px; line-height: 1; font-weight: 800; letter-spacing: -.04em; text-transform: lowercase; }.brand-caption { margin: 5px 0 0; color: #9aa79d; font-family: var(--mono); font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.nav-stack { margin-top: 72px; display: grid; gap: 8px; }
.nav-item { width: 100%; padding: 12px 12px; display: flex; align-items: center; gap: 11px; border-radius: 11px; background: transparent; color: #7d8981; font-size: 12px; text-align: left; transition: .18s ease; }.nav-item:hover { color: var(--ink); background: rgba(255,255,255,.7); }.nav-item.active { color: var(--ink); background: white; box-shadow: 0 8px 20px rgba(49, 75, 56, .06); font-weight: 800; }.nav-icon { width: 18px; color: #96a49a; font-size: 16px; text-align: center; }.nav-item.active .nav-icon { color: var(--green); }.nav-count { margin-left: auto; min-width: 22px; padding: 3px 6px; border-radius: 7px; color: #82917f; background: #edf2ea; font-family: var(--mono); font-size: 9px; text-align: center; }
.sidebar-bottom { margin-top: auto; }.privacy-card { padding: 13px; display: flex; gap: 9px; border: 1px solid #dfe7de; border-radius: 13px; background: rgba(255,255,255,.54); }.privacy-dot { width: 7px; height: 7px; flex: 0 0 auto; margin-top: 3px; border-radius: 50%; background: var(--lime-deep); box-shadow: 0 0 0 4px rgba(146,182,61,.12); }.privacy-card strong { display: block; color: #556158; font-size: 10px; }.privacy-card p { margin: 5px 0 0; color: #96a29a; font-size: 9px; line-height: 1.45; }.version-label { margin: 16px 2px 0; color: #b0b9b1; font-family: var(--mono); font-size: 9px; }

.main-content { width: min(100%, 1360px); min-width: 0; flex: 1; margin: 0 auto; padding: 0 40px 68px; }.topbar { height: 78px; display: flex; align-items: center; gap: 13px; }.topbar-spacer { flex: 1; }.mobile-brand { display: none; }.sync-status { display: flex; align-items: center; gap: 7px; color: #829087; font-family: var(--mono); font-size: 9px; text-transform: uppercase; letter-spacing: .03em; }.status-pulse { width: 7px; height: 7px; border-radius: 50%; background: #95c25b; box-shadow: 0 0 0 4px rgba(149,194,91,.12); }.icon-button, .avatar-button { display: inline-flex; align-items: center; justify-content: center; }.icon-button { width: 32px; height: 32px; color: #829087; background: transparent; border-radius: 50%; font-size: 17px; }.icon-button:hover { background: #e9efe8; color: var(--ink); }.avatar-button { width: 31px; height: 31px; border-radius: 50%; color: var(--ink); background: var(--lime); font-family: var(--mono); font-size: 9px; font-weight: 500; }
.view { display: none; }.view-active { display: block; }
.hero-row { padding: 56px 0 38px; display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; }.eyebrow { margin: 0; color: #9aa69e; font-family: var(--mono); font-size: 9px; letter-spacing: .09em; line-height: 1.4; text-transform: uppercase; }.eyebrow.light { color: rgba(255,255,255,.55); }.hero-row h1, .page-heading-row h1 { margin: 15px 0 15px; color: var(--ink); font-size: clamp(38px, 5vw, 64px); letter-spacing: -.075em; line-height: .98; font-weight: 700; }.hero-row h1 em { color: #78954a; font-family: Georgia, serif; font-weight: 400; letter-spacing: -.08em; }.hero-copy { max-width: 420px; margin: 0; color: #829087; font-size: 13px; line-height: 1.6; }.primary-button, .secondary-button, .text-button { transition: transform .18s ease, background .18s ease, border-color .18s ease; }.primary-button:hover, .secondary-button:hover, .text-button:hover { transform: translateY(-1px); }.primary-button { min-height: 42px; padding: 0 17px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; border-radius: 10px; color: var(--ink); background: var(--lime); box-shadow: 0 10px 22px rgba(146,182,61,.12); font-size: 11px; font-weight: 800; }.button-plus { font-size: 17px; line-height: 0; font-weight: 400; }.hero-button { min-height: 46px; padding: 0 20px; }.secondary-button { min-height: 38px; padding: 0 13px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--line); border-radius: 9px; color: #66746b; background: white; font-size: 10px; font-weight: 700; }.text-button { padding: 3px 0; color: #789255; background: transparent; font-size: 10px; font-weight: 800; }.text-button span { margin-left: 3px; font-size: 13px; }

.metric-grid { display: grid; grid-template-columns: 1.2fr .8fr .95fr; gap: 15px; }.metric-card { position: relative; min-height: 176px; padding: 20px 21px; overflow: hidden; border-radius: var(--radius-lg); }.lime-card { background: var(--lime); }.dark-card { color: white; background: #263d34; }.cream-card { background: #f2eade; }.card-topline, .metric-foot { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 10px; }.card-kicker { color: #97af58; font-family: var(--mono); font-size: 8px; letter-spacing: .06em; }.card-kicker.light { color: rgba(255,255,255,.42); }.metric-value { position: relative; z-index: 1; margin: 20px 0 10px; color: var(--ink); font-family: var(--mono); font-size: clamp(22px, 3vw, 30px); letter-spacing: -.08em; }.dark-card .metric-value { color: white; font-size: 54px; letter-spacing: -.12em; }.category-metric { max-width: 210px; color: #45554c; font-family: var(--sans); font-size: 21px; font-weight: 800; letter-spacing: -.055em; }.metric-foot { justify-content: flex-start; color: #819256; font-family: var(--mono); font-size: 9px; }.metric-foot span:last-child { color: rgba(64, 79, 51, .54); }.metric-foot.light, .metric-foot.light span:last-child { color: rgba(255,255,255,.56); }.trend-up { color: #517131 !important; }.sparkline { position: absolute; right: 18px; bottom: 22px; width: 74px; height: 38px; display: flex; align-items: end; gap: 3px; opacity: .58; transform: skewY(-14deg); }.sparkline i { width: 7px; border-radius: 5px 5px 0 0; background: rgba(60,83,27,.35); }.sparkline i:nth-child(1) { height: 12px; }.sparkline i:nth-child(2) { height: 18px; }.sparkline i:nth-child(3) { height: 15px; }.sparkline i:nth-child(4) { height: 26px; }.sparkline i:nth-child(5) { height: 20px; }.sparkline i:nth-child(6) { height: 31px; }.sparkline i:nth-child(7) { height: 27px; }.sparkline i:nth-child(8) { height: 38px; }.card-orbit { position: absolute; width: 130px; height: 130px; border: 1px solid rgba(209, 241, 127, .18); border-radius: 50%; }.orbit-one { right: -32px; bottom: -62px; }.orbit-two { right: 6px; bottom: -27px; width: 84px; height: 84px; }.category-dot { width: 8px; height: 8px; border-radius: 50%; background: #df9e67; }.mini-category-bars { position: absolute; right: 21px; bottom: 20px; height: 50px; display: flex; align-items: end; gap: 4px; }.mini-category-bars i { width: 7px; border-radius: 5px; background: rgba(117,137,94,.44); }

.capture-card { position: relative; min-height: 178px; margin-top: 15px; padding: 30px 31px; display: flex; align-items: center; gap: 28px; overflow: hidden; border: 1px solid #dfe8dc; border-radius: var(--radius-lg); background: #e7f0e5; }.capture-illustration { position: relative; width: 105px; height: 105px; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; }.capture-ring { position: absolute; inset: 5px; border: 1px solid #bed8b8; border-radius: 50%; }.capture-ring:before, .capture-ring:after { content: ''; position: absolute; border-radius: 50%; background: #c5dfbc; }.capture-ring:before { width: 6px; height: 6px; top: 12px; right: 8px; }.capture-ring:after { width: 4px; height: 4px; bottom: 19px; left: 5px; }.capture-receipt { position: relative; width: 51px; height: 68px; padding: 16px 9px; transform: rotate(-9deg); border-radius: 3px; background: #fffdf8; box-shadow: 9px 9px 0 rgba(161,192,150,.22); }.capture-receipt span { display: block; height: 4px; margin-bottom: 6px; border-radius: 2px; background: #cadac6; }.capture-receipt span:nth-child(1) { width: 70%; }.capture-receipt span:nth-child(2) { width: 90%; }.capture-receipt span:nth-child(3) { width: 52%; }.capture-receipt b { position: absolute; right: 8px; bottom: 8px; color: var(--green); font-family: var(--mono); font-size: 12px; }.capture-content { max-width: 540px; }.capture-content h2, .panel h2, .recent-section h2 { margin: 7px 0 7px; color: var(--ink); font-size: 20px; letter-spacing: -.06em; }.capture-content p:not(.eyebrow) { max-width: 540px; margin: 0; color: #7c9180; font-size: 11px; line-height: 1.6; }.capture-actions { margin-top: 18px; display: flex; align-items: center; gap: 15px; }.capture-actions .primary-button { min-height: 37px; }.capture-rule { margin-left: auto; align-self: flex-start; display: flex; gap: 6px; color: #b1c4ab; font-family: var(--mono); font-size: 8px; }.capture-rule span { padding: 5px 7px; border: 1px solid #caddc7; border-radius: 5px; }

.dashboard-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 15px; margin-top: 15px; }.panel { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }.spend-panel, .categories-panel { min-height: 315px; padding: 23px 24px; }.panel-heading, .section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }.panel-heading h2 { margin-top: 7px; }.small-select { min-height: 30px; padding: 0 9px; border: 1px solid var(--line); border-radius: 7px; color: #87958b; background: #fbfcfb; font-size: 9px; }.chart-wrap { position: relative; height: 190px; margin-top: 18px; display: flex; }.chart-y-axis { width: 36px; padding: 0 8px 6px 0; display: flex; flex-direction: column; justify-content: space-between; color: #b1bbb3; font-family: var(--mono); font-size: 8px; text-align: right; }.bar-chart { position: relative; flex: 1; display: flex; align-items: end; justify-content: space-around; gap: 9px; padding: 5px 12px 0; border-bottom: 1px solid #e7ebe5; }.grid-line { position: absolute; left: 0; right: 0; border-top: 1px dashed #e7ece7; }.grid-line.one { top: 0; }.grid-line.two { top: 33%; }.grid-line.three { top: 66%; }.grid-line.four { bottom: 0; }.chart-bar { position: relative; z-index: 1; width: clamp(16px, 5vw, 32px); min-height: 9px; border-radius: 7px 7px 2px 2px; background: #d5e4ca; transition: height .35s ease; }.chart-bar.current { background: var(--lime-deep); }.chart-bar:before { content: ''; position: absolute; inset: 5px 4px auto; height: 2px; border-radius: 3px; background: rgba(255,255,255,.25); }.chart-labels { margin: 9px 0 0 36px; display: flex; justify-content: space-between; color: #a7b0aa; font-family: var(--mono); font-size: 8px; }.category-donut-wrap { min-height: 220px; display: flex; align-items: center; gap: 18px; }.category-donut { width: 148px; height: 148px; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: conic-gradient(#b5d45f 0 39%, #e6a46e 39% 61%, #a9c7bf 61% 78%, #e8d7b7 78% 88%, #d4ded3 88% 100%); }.category-donut > div { width: 100px; height: 100px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; background: white; }.category-donut strong { color: var(--ink); font-family: var(--mono); font-size: 17px; letter-spacing: -.08em; }.category-donut span { margin-top: 4px; color: #9ba79e; font-family: var(--mono); font-size: 8px; text-transform: uppercase; }.category-legend { flex: 1; display: grid; gap: 12px; }.legend-row { display: flex; align-items: center; gap: 8px; color: #75837a; font-size: 10px; }.legend-row .legend-name { flex: 1; }.legend-row strong { color: #526158; font-family: var(--mono); font-size: 9px; }.legend-swatch { width: 7px; height: 7px; border-radius: 50%; }
.recent-section { margin-top: 38px; }.recent-section h2 { margin-top: 8px; font-size: 22px; }.receipt-list, .full-receipt-list { margin-top: 15px; display: grid; gap: 8px; }.receipt-row { min-height: 71px; padding: 11px 14px; display: grid; grid-template-columns: 42px minmax(130px, 1fr) auto 85px 22px; align-items: center; gap: 13px; border: 1px solid var(--line); border-radius: 13px; background: white; transition: .18s ease; }.receipt-row:hover { border-color: #c3d2bd; box-shadow: 0 8px 20px rgba(52,76,57,.05); transform: translateY(-1px); }.receipt-thumb { width: 42px; height: 48px; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 8px; background: #f1ede5; color: #9eaa91; font-family: var(--mono); font-size: 9px; }.receipt-thumb img { width: 100%; height: 100%; object-fit: cover; }.pdf-thumb { background: #f2e7df; color: #bd735d; }.receipt-main strong { display: block; color: #38483f; font-size: 11px; font-weight: 800; }.receipt-main span { display: block; margin-top: 4px; color: #a0aba3; font-family: var(--mono); font-size: 8px; }.receipt-category { color: #819086; font-size: 10px; }.receipt-amount { color: #3c4c43; font-family: var(--mono); font-size: 11px; text-align: right; }.row-arrow { color: #a2afa6; font-size: 15px; }.receipt-row.clickable { cursor: pointer; }

.page-heading-row { padding: 54px 0 33px; display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; }.page-heading-row h1 { margin-bottom: 9px; font-size: clamp(38px, 5vw, 56px); }.page-lede { max-width: 520px; margin: 0; color: #829087; font-size: 12px; line-height: 1.6; }.filter-bar { padding: 11px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }.search-field { min-width: 220px; flex: 1; display: flex; align-items: center; gap: 7px; padding: 0 9px; color: #9fa9a1; }.search-field input { min-width: 0; width: 100%; border: 0; outline: 0; color: var(--ink); font-size: 10px; }.filter-bar select, .form-grid select, .form-grid input { min-height: 36px; border: 1px solid #e0e6df; border-radius: 8px; outline: 0; color: #66746b; background: #fbfcfb; font-size: 10px; }.filter-bar select { padding: 0 10px; }.result-count { margin-left: auto; padding-right: 8px; color: #9aa59d; font-family: var(--mono); font-size: 9px; white-space: nowrap; }.full-receipt-list .receipt-row { grid-template-columns: 54px minmax(160px, 1fr) 155px 110px 100px 22px; min-height: 83px; }.full-receipt-list .receipt-thumb { width: 54px; height: 59px; }.full-receipt-list .receipt-category { padding: 5px 9px; border-radius: 5px; background: #f4f7f2; color: #7c907f; font-size: 9px; text-align: center; }

.export-stamp { width: 76px; height: 76px; padding-top: 17px; border: 1px solid #d7e3d1; border-radius: 50%; color: #99ad8e; font-family: var(--mono); font-size: 10px; line-height: 1.1; text-align: center; transform: rotate(11deg); }.export-stamp span { font-size: 8px; color: #b0bca9; }.export-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(290px, .65fr); gap: 15px; align-items: start; }.export-controls { padding: 25px; }.selected-pill { padding: 6px 9px; border-radius: 6px; color: #789255; background: #edf5e5; font-family: var(--mono); font-size: 8px; }.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }.form-grid label { display: grid; gap: 7px; color: #76847a; font-family: var(--mono); font-size: 9px; }.form-grid input, .form-grid select { width: 100%; padding: 0 10px; color: #38483f; font-family: var(--sans); font-size: 11px; }.select-all-row { margin-top: 21px; padding-top: 18px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #edf0ec; }.check-label { display: flex; align-items: center; gap: 8px; color: #68766d; font-size: 10px; }.check-label input { position: absolute; opacity: 0; pointer-events: none; }.fake-check { width: 17px; height: 17px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #ccdac9; border-radius: 5px; color: white; background: #a5c45e; font-family: var(--mono); font-size: 11px; }.check-label input:not(:checked) + .fake-check { color: transparent; background: white; }.export-receipt-picker { margin-top: 16px; display: grid; gap: 7px; }.picker-row { padding: 8px 10px; display: flex; align-items: center; gap: 10px; border-radius: 9px; background: #fafcfa; }.picker-row:hover { background: #f2f7ef; }.picker-row input { accent-color: var(--lime-deep); }.picker-row .picker-thumb { width: 30px; height: 34px; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 5px; background: #eee9df; color: #a6af9f; font-family: var(--mono); font-size: 7px; }.picker-thumb img { width: 100%; height: 100%; object-fit: cover; }.picker-info { flex: 1; min-width: 0; }.picker-info strong { display: block; overflow: hidden; color: #536259; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.picker-info span { display: block; margin-top: 3px; color: #a1aba3; font-family: var(--mono); font-size: 8px; }.picker-amount { color: #69776e; font-family: var(--mono); font-size: 9px; }.export-summary { position: sticky; top: 20px; padding: 25px; background: #eaf2e5; border-color: #dce9d8; }.bundle-icon { width: 58px; height: 58px; margin-top: 22px; display: flex; align-items: center; justify-content: center; border-radius: 17px; color: #6c8a4b; background: var(--lime); font-size: 25px; }.export-summary h2 { margin-top: 19px; }.export-summary > p:not(.eyebrow):not(.export-note) { margin: 0; color: #81947f; font-size: 10px; line-height: 1.6; }.summary-lines { margin: 25px 0 21px; padding: 15px 0; display: grid; gap: 10px; border-top: 1px solid #d7e4d3; border-bottom: 1px solid #d7e4d3; }.summary-lines div { display: flex; align-items: center; justify-content: space-between; color: #8a9d87; font-family: var(--mono); font-size: 9px; }.summary-lines strong { color: #485f4a; }.export-button { width: 100%; min-height: 43px; }.export-note { margin: 12px 0 0; color: #9aaa97; font-family: var(--mono); font-size: 8px; line-height: 1.5; text-align: center; }

.settings-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 15px; }.settings-panel { padding: 27px; }.settings-section h2 { margin: 11px 0 8px; font-size: 19px; }.settings-section > p:not(.eyebrow) { max-width: 570px; margin: 0; color: #89958c; font-size: 11px; line-height: 1.6; }.currency-options { margin-top: 22px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }.currency-option { padding: 13px; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; border: 1px solid #e1e8df; border-radius: 10px; color: #708075; background: #fbfcfb; text-align: left; }.currency-option.active { border-color: #b4cd7f; background: #f1f8e8; }.currency-option strong { color: #496149; font-family: var(--mono); font-size: 12px; }.currency-option span { color: #9ba79e; font-size: 9px; }.settings-divider { height: 1px; margin: 27px 0; background: #edf1ec; }.rate-row { margin-top: 18px; padding: 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 10px; background: #f8faf7; }.rate-row strong, .rate-row span { display: block; }.rate-row strong { color: #55675a; font-size: 10px; }.rate-row span { margin-top: 5px; color: #9ca8a0; font-family: var(--mono); font-size: 8px; }.setup-panel { position: relative; overflow: hidden; background: #263d34; border-color: #263d34; }.setup-panel .eyebrow, .setup-panel h2 { position: relative; z-index: 1; color: white; }.setup-panel > p:not(.eyebrow) { position: relative; z-index: 1; color: rgba(255,255,255,.58); font-size: 10px; line-height: 1.6; }.setup-panel h2 { margin: 13px 0 10px; }.setup-orbit { position: absolute; top: -37px; right: -24px; width: 156px; height: 156px; border: 1px solid rgba(215,241,127,.22); border-radius: 50%; }.setup-orbit:before, .setup-orbit:after { content: ''; position: absolute; border: 1px solid rgba(215,241,127,.16); border-radius: 50%; }.setup-orbit:before { inset: 21px; }.setup-orbit:after { inset: 44px; }.setup-orbit span { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); }.setup-orbit span:nth-child(1) { top: 16px; left: 39px; }.setup-orbit span:nth-child(2) { top: 74px; right: -2px; background: #b9d29b; }.setup-orbit span:nth-child(3) { bottom: 4px; left: 74px; background: #a9c27e; }.setup-orbit b { position: absolute; top: 68px; left: 67px; color: var(--lime); font-size: 19px; font-weight: 400; }.setup-check { position: relative; z-index: 1; margin-top: 20px; display: flex; gap: 10px; }.setup-check + .setup-check { margin-top: 14px; }.setup-check > span { width: 17px; height: 17px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #294235; background: var(--lime); font-family: var(--mono); font-size: 9px; }.setup-check strong, .setup-check small { display: block; }.setup-check strong { color: rgba(255,255,255,.82); font-size: 10px; }.setup-check small { margin-top: 4px; color: rgba(255,255,255,.42); font-size: 9px; }

.mobile-nav { display: none; }
.modal-backdrop { position: fixed; z-index: 20; inset: 0; padding: 20px; display: none; align-items: center; justify-content: center; background: rgba(28,41,35,.35); backdrop-filter: blur(7px); }.modal-backdrop.open { display: flex; }.modal { width: min(100%, 580px); max-height: min(850px, calc(100vh - 40px)); overflow: auto; border: 1px solid rgba(255,255,255,.75); border-radius: 25px; background: #fff; box-shadow: 0 30px 80px rgba(22,42,31,.18); animation: modal-in .2s ease; }.detail-modal { width: min(100%, 730px); }.modal-header { padding: 23px 25px 19px; display: flex; align-items: flex-start; justify-content: space-between; border-bottom: 1px solid #eff2ed; }.modal-header h2 { margin: 7px 0 0; color: var(--ink); font-size: 23px; letter-spacing: -.07em; }.modal-close { width: 28px; height: 28px; border-radius: 50%; color: #99a59d; background: #f3f6f2; font-size: 19px; line-height: 1; }.modal-body { padding: 22px 25px 25px; }.dropzone { padding: 24px 16px; display: flex; flex-direction: column; align-items: center; border: 1px dashed #bfd1b9; border-radius: 16px; background: #f7fbf5; text-align: center; transition: .18s ease; }.dropzone.dragging { border-color: var(--lime-deep); background: #f0f8e8; }.dropzone-icon { width: 38px; height: 38px; margin-bottom: 10px; display: flex; align-items: center; justify-content: center; border-radius: 12px; color: #6f8c53; background: var(--lime); font-size: 23px; }.dropzone strong { color: #5b6c5f; font-size: 11px; }.dropzone > span { margin-top: 4px; color: #9aa79e; font-size: 9px; }.dropzone-hint { margin-top: 13px; color: #9aa79e; font-family: var(--mono); font-size: 8px; }.dropzone-actions { margin-top: 15px; display: flex; align-items: center; gap: 14px; }.dropzone-actions .secondary-button { min-height: 32px; font-size: 9px; }.selected-file { width: 100%; margin-top: 16px; padding: 9px; display: flex; align-items: center; gap: 9px; border: 1px solid #dae6d6; border-radius: 9px; background: white; text-align: left; }.file-badge { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 7px; color: #6f8c53; background: #eef6e8; font-family: var(--mono); font-size: 8px; }.selected-file div { flex: 1; min-width: 0; }.selected-file strong, .selected-file small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.selected-file strong { color: #627164; font-size: 10px; }.selected-file small { margin-top: 4px; color: #a1aca4; font-family: var(--mono); font-size: 8px; }.selected-file button { color: #a2aea5; background: transparent; font-size: 16px; }.scan-state { margin-top: 18px; padding: 15px; display: flex; align-items: center; gap: 12px; border-radius: 10px; background: #f6f9f4; }.scan-spinner { width: 22px; height: 22px; border: 2px solid #dfebd9; border-top-color: var(--lime-deep); border-radius: 50%; animation: spin .8s linear infinite; }.scan-state strong, .scan-state span { display: block; }.scan-state strong { color: #617361; font-size: 10px; }.scan-state span { margin-top: 4px; color: #9eaaa1; font-family: var(--mono); font-size: 8px; }.document-review { margin-top: 18px; padding: 16px; display: grid; grid-template-columns: auto 1fr; gap: 12px; border: 1px solid #f0d8cc; border-radius: 12px; background: #fff8f4; }.review-icon { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 10px; color: #a65f47; background: #f5d2c4; font-family: var(--mono); font-weight: 700; }.review-copy h3 { margin: 6px 0 6px; color: #62483f; font-size: 15px; letter-spacing: -.04em; }.review-copy p:not(.eyebrow) { margin: 0; color: #987e73; font-size: 10px; line-height: 1.55; }.review-signals { margin-top: 11px; display: flex; flex-wrap: wrap; gap: 5px; }.review-signals span { padding: 5px 7px; border-radius: 5px; color: #a66d5a; background: #fbe9e2; font-family: var(--mono); font-size: 8px; }.review-actions { grid-column: 1 / -1; padding-top: 12px; display: flex; align-items: center; justify-content: flex-end; gap: 14px; border-top: 1px solid #f2dfd7; }.receipt-form { margin-top: 22px; }.form-heading { display: flex; align-items: center; justify-content: space-between; }.form-heading h3 { margin: 7px 0 0; color: var(--ink); font-size: 19px; letter-spacing: -.06em; }.confidence-pill { padding: 6px 8px; border-radius: 6px; color: #759255; background: #edf5e8; font-family: var(--mono); font-size: 8px; }.receipt-form .form-grid { margin-top: 18px; }.wide-field { grid-column: 1 / -1; }.optional-label { color: #a4afa6; }.evidence-mini { margin-top: 16px; padding: 10px; display: flex; align-items: center; gap: 9px; border-radius: 9px; background: #f7faf6; }.mini-file-icon { width: 29px; height: 29px; display: flex; align-items: center; justify-content: center; border-radius: 7px; color: #6e8d55; background: #eaf3e2; font-size: 16px; }.evidence-mini div { flex: 1; }.evidence-mini strong, .evidence-mini small { display: block; }.evidence-mini strong { color: #68776d; font-size: 9px; }.evidence-mini small { margin-top: 3px; overflow: hidden; color: #a0aaa2; font-family: var(--mono); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.evidence-check { color: #86aa55; font-family: var(--mono); }.save-receipt-button { width: 100%; margin-top: 20px; min-height: 43px; }.detail-content { padding: 22px 25px 25px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 23px; }.detail-evidence { min-height: 290px; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 13px; background: #f2eee6; }.detail-evidence img { width: 100%; height: 100%; max-height: 440px; object-fit: contain; }.evidence-placeholder { padding: 25px; color: #a69f91; text-align: center; }.evidence-placeholder .big-file-icon { display: block; margin-bottom: 13px; color: #c18168; font-size: 45px; }.evidence-placeholder strong, .evidence-placeholder span { display: block; }.evidence-placeholder strong { color: #8f7e72; font-size: 12px; }.evidence-placeholder span { margin-top: 5px; color: #b1a9a0; font-family: var(--mono); font-size: 8px; }.detail-meta { padding: 7px 0; }.detail-total { margin-top: 10px; color: var(--ink); font-family: var(--mono); font-size: 27px; letter-spacing: -.09em; }.detail-meta-row { margin-top: 14px; display: flex; justify-content: space-between; gap: 10px; color: #718178; font-size: 10px; }.detail-meta-row.muted { color: #a2ada5; font-family: var(--mono); font-size: 8px; }.detail-note { min-height: 76px; margin-top: 20px; padding: 12px; color: #89978d; border-radius: 9px; background: #f7f9f6; font-size: 10px; line-height: 1.5; }.full-width { width: 100%; margin-top: 20px; }
.toast { position: fixed; z-index: 30; right: 25px; bottom: 25px; padding: 11px 14px 11px 10px; display: flex; align-items: center; gap: 8px; border: 1px solid #d6e7ce; border-radius: 10px; color: #64804f; background: #f4f9ee; box-shadow: 0 16px 35px rgba(41,71,49,.12); font-size: 10px; opacity: 0; pointer-events: none; transform: translateY(10px); transition: .25s ease; }.toast.show { opacity: 1; transform: translateY(0); }.toast-icon { width: 17px; height: 17px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; background: #93b75a; font-family: var(--mono); font-size: 9px; }

@keyframes modal-in { from { opacity: 0; transform: translateY(8px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes spin { to { transform: rotate(360deg); } }

@media (max-width: 1060px) { .main-content { padding: 0 25px 68px; }.metric-grid { grid-template-columns: 1fr 1fr; }.metric-card:first-child { grid-column: 1 / -1; }.dashboard-grid, .settings-grid { grid-template-columns: 1fr; }.export-layout { grid-template-columns: 1fr; }.export-summary { position: static; }.full-receipt-list .receipt-row { grid-template-columns: 54px minmax(150px, 1fr) 120px 100px 22px; }.full-receipt-list .receipt-category { display: none; } }
@media (max-width: 720px) { .app-shell { display: block; }.sidebar { display: none; }.main-content { width: 100%; padding: 0 17px 88px; }.topbar { height: 64px; }.mobile-brand { display: flex; color: var(--ink); font-size: 11px; font-weight: 800; letter-spacing: -.03em; }.sync-status { font-size: 8px; }.icon-button { display: none; }.avatar-button { width: 29px; height: 29px; }.hero-row { padding: 38px 0 27px; display: block; }.hero-row h1 { margin-top: 12px; font-size: 45px; }.hero-copy { max-width: 330px; font-size: 11px; }.hero-button { margin-top: 22px; width: 100%; }.metric-grid { gap: 10px; }.metric-card { min-height: 151px; padding: 17px; border-radius: 20px; }.metric-card:first-child { grid-column: 1 / -1; min-height: 147px; }.metric-value { margin-top: 17px; font-size: 22px; }.dark-card .metric-value { font-size: 44px; }.category-metric { font-size: 17px; }.metric-foot { font-size: 8px; }.capture-card { margin-top: 10px; padding: 22px 20px; display: block; border-radius: 21px; }.capture-illustration { width: 75px; height: 75px; margin-bottom: 15px; }.capture-ring { inset: 3px; }.capture-receipt { width: 39px; height: 53px; padding: 12px 7px; }.capture-receipt span { height: 3px; margin-bottom: 4px; }.capture-receipt b { right: 5px; bottom: 5px; font-size: 9px; }.capture-content h2 { font-size: 19px; }.capture-content p:not(.eyebrow) { font-size: 10px; }.capture-actions { gap: 14px; }.capture-actions .primary-button { flex: 1; }.capture-rule { position: absolute; top: 20px; right: 20px; }.dashboard-grid { gap: 10px; margin-top: 10px; }.spend-panel, .categories-panel { min-height: 286px; padding: 19px; border-radius: 21px; }.chart-wrap { height: 170px; }.bar-chart { gap: 4px; padding: 5px 5px 0; }.chart-bar { width: 17px; }.category-donut-wrap { min-height: 185px; gap: 13px; }.category-donut { width: 129px; height: 129px; }.category-donut > div { width: 89px; height: 89px; }.category-donut strong { font-size: 15px; }.category-legend { gap: 9px; }.legend-row { font-size: 9px; }.recent-section { margin-top: 30px; }.recent-section h2 { font-size: 20px; }.receipt-row, .full-receipt-list .receipt-row { grid-template-columns: 42px minmax(0, 1fr) auto 18px; gap: 10px; min-height: 67px; padding: 9px; }.receipt-thumb, .full-receipt-list .receipt-thumb { width: 42px; height: 47px; }.receipt-category, .full-receipt-list .receipt-category, .full-receipt-list .receipt-row > .receipt-main + .receipt-category, .full-receipt-list .receipt-row > .receipt-category { display: none; }.receipt-amount { font-size: 10px; }.receipt-main strong { font-size: 10px; }.receipt-main span { font-size: 7px; }.page-heading-row { padding: 39px 0 24px; display: block; }.page-heading-row h1 { margin-top: 12px; font-size: 42px; }.page-heading-row .primary-button { width: 100%; margin-top: 19px; }.filter-bar { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding: 8px; }.search-field { grid-column: 1 / -1; min-width: 0; min-height: 32px; }.filter-bar select { min-height: 32px; width: 100%; }.result-count { margin-left: 0; padding-left: 4px; }.export-layout { gap: 10px; }.export-controls, .export-summary, .settings-panel { padding: 20px; border-radius: 21px; }.export-controls .form-grid { gap: 10px; }.settings-grid { gap: 10px; }.currency-options { gap: 6px; }.currency-option { padding: 11px; }.rate-row { display: block; }.rate-row .secondary-button { width: 100%; margin-top: 12px; }.modal-backdrop { padding: 10px; align-items: flex-end; }.modal { max-height: calc(100vh - 20px); border-radius: 22px 22px 15px 15px; }.modal-header { padding: 18px 18px 15px; }.modal-body { padding: 17px 18px 19px; }.dropzone { padding: 20px 12px; }.detail-content { grid-template-columns: 1fr; gap: 15px; }.detail-evidence { min-height: 205px; }.detail-meta { padding: 0; }.mobile-nav { position: fixed; z-index: 10; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); height: 61px; padding: 7px 12px; display: flex; align-items: center; justify-content: space-around; border: 1px solid rgba(222,232,220,.9); border-radius: 19px; background: rgba(249,252,248,.92); box-shadow: 0 14px 32px rgba(42,65,47,.14); backdrop-filter: blur(12px); }.mobile-nav-item { min-width: 47px; display: flex; flex-direction: column; align-items: center; gap: 2px; color: #a1aca3; background: transparent; }.mobile-nav-item span { font-size: 16px; line-height: 1; }.mobile-nav-item small { font-size: 8px; }.mobile-nav-item.active { color: #66844f; }.mobile-add { width: 40px; height: 40px; margin: 0 5px; border-radius: 14px; color: var(--ink); background: var(--lime); box-shadow: 0 5px 12px rgba(146,182,61,.23); font-size: 23px; font-weight: 300; }.toast { right: 17px; bottom: 82px; } }
@media (max-width: 390px) { .metric-grid { grid-template-columns: 1fr; }.metric-card:first-child { grid-column: auto; }.dark-card { min-height: 130px; }.category-donut-wrap { gap: 8px; }.category-donut { width: 115px; height: 115px; }.category-donut > div { width: 80px; height: 80px; }.category-legend { gap: 7px; }.legend-row { font-size: 8px; }.legend-row strong { font-size: 8px; } }

.swipe-row { position: relative; overflow: hidden; border-radius: 13px; touch-action: pan-y; }.swipe-row .receipt-row { position: relative; z-index: 1; }.swipe-row .receipt-row:hover { transform: none; }.swipe-row.open .receipt-row { transform: translateX(-82px); }.swipe-delete { position: absolute; z-index: 0; inset: 0 0 0 auto; width: 82px; display: flex; align-items: center; justify-content: center; border-radius: 0 13px 13px 0; color: #fff8f4; background: #bc5c48; font-family: var(--mono); font-size: 9px; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; }.swipe-delete:hover { background: #a84a38; }.toast-undo { margin-left: 6px; padding: 4px 0; color: #64804f; background: transparent; font-family: var(--mono); font-size: 9px; font-weight: 700; text-decoration: underline; }

@media print { body { background: white; }.sidebar, .topbar, .mobile-nav, .toast { display: none !important; }.main-content { padding: 0; }.view { display: none !important; }.view-active { display: block !important; } }
