:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1c2220;background:#f4f6f2;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{min-width:320px;overflow-x:hidden}*{box-sizing:border-box}body{width:100%;min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}button,input,textarea,select{font:inherit;max-width:100%;min-width:0}button{-webkit-tap-highlight-color:transparent}h1,h2,p{margin:0}h1{font-size:1.85rem;line-height:1.12}h2{font-size:1.05rem;line-height:1.2}p{line-height:1.5}.auth-page,.state-page{display:grid;min-height:100dvh;padding:calc(22px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom));place-items:center}.auth-panel,.state-panel{width:min(100%,480px);padding:22px;border:1px solid #d9dfd6;border-radius:8px;background:#fffefa;box-shadow:0 18px 60px #1c22201a}.eyebrow{margin-bottom:8px;color:#5b6a62;font-size:.875rem}.auth-form{display:grid;gap:16px;margin-top:22px}.field{display:grid;gap:8px;color:#3b4640;font-size:.95rem}.field input,.field select,.field textarea{min-height:52px;width:100%;border:1px solid #c9d2ca;border-radius:8px;background:#fff;color:#1c2220;font-size:1.05rem;outline:none;padding:0 14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#1f8a70;box-shadow:0 0 0 4px #1f8a7024}.primary-button,.secondary-button,.danger-button{align-items:center;border:0;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:700;justify-content:center;line-height:1.2;min-height:52px;min-width:0;overflow-wrap:anywhere;padding:0 18px;text-align:center;white-space:normal;width:100%}.primary-button{background:#1f8a70;color:#fff}.secondary-button{background:#f0e6d6;color:#5a321d}.danger-button{background:#b3342a;color:#fff}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled,.text-button:disabled{cursor:wait;opacity:.66}.spacious-button{margin-top:14px}.text-button,.icon-button{border:0;background:transparent;color:#176b58;cursor:pointer;font-weight:700;min-height:44px;min-width:0;overflow-wrap:anywhere;padding:6px 8px}.icon-button{align-items:center;border-radius:999px;display:inline-flex;font-size:1.8rem;height:44px;justify-content:center;line-height:1;width:44px}.danger-text{color:#a43128}.form-error{border:1px solid #e2a5a0;border-radius:8px;background:#fff1ef;color:#8d251c;padding:12px}.state-panel{display:grid;gap:14px;text-align:center}.offline-expense-form,.outbox-state{border-top:1px solid #d9dfd6;display:grid;gap:12px;padding-top:14px;text-align:left}.outbox-state{text-align:center}.outbox-state p,.sync-banner p{margin-top:4px}.outbox-success{border:1px solid #bbd7ce;border-radius:8px;background:#e8f6f1;color:#176b58;padding:12px}.state-indicator{height:10px;width:54px;border-radius:999px;justify-self:center}.state-indicator-loading{background:#1f8a70}.state-indicator-error{background:#c05621}.mobile-shell{min-height:100dvh;overflow-x:hidden;padding:calc(16px + env(safe-area-inset-top)) 16px calc(70px + env(safe-area-inset-bottom))}.app-header{align-items:center;display:flex;gap:16px;justify-content:space-between;margin:0 auto 18px;max-width:720px;min-width:0}.app-header>*{min-width:0}.status-pill,.muted{color:#4d5b54;font-size:.86rem}.status-pill{border:1px solid #bbd7ce;border-radius:999px;background:#e8f6f1;color:#176b58;max-width:100%;min-width:0;overflow:hidden;padding:7px 10px;text-overflow:ellipsis;white-space:nowrap}.tab-content{margin:0 auto;max-width:720px}.content-stack{display:grid;gap:14px}.inline-alert{align-items:center;border:1px solid #e2a5a0;border-radius:8px;background:#fff1ef;color:#8d251c;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin:0 auto 14px;max-width:720px;min-width:0;padding:12px 14px}.inline-alert>*{min-width:0}.sync-banner{align-items:center;border:1px solid #bbd7ce;border-radius:8px;background:#e8f6f1;color:#176b58;display:grid;gap:10px;margin:0 auto 14px;max-width:720px;padding:12px 14px}.sync-banner .secondary-button{min-height:46px}.sync-pending-pill{background:#fff7df;border-color:#f0c36d;color:#76510b}.surface-panel{border:1px solid #d9dfd6;border-radius:8px;background:#fffefa;min-width:0;overflow-wrap:anywhere;padding:16px}.section-heading{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px;min-width:0}.section-heading>*{min-width:0}.section-heading h2{overflow-wrap:anywhere}.section-heading .status-pill{text-align:right}.metric-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.metric-tile{border:1px solid #e0ded3;border-radius:8px;background:#f8f3ea;min-height:92px;padding:14px}.metric-tile span{color:#59635c;display:block;font-size:.9rem;margin-bottom:12px}.metric-tile strong{color:#1c2220;display:block;font-size:clamp(1.35rem,7vw,1.8rem);line-height:1.08;overflow-wrap:anywhere}.quick-add-button{align-items:center;background:#1f8a70;border:0;border-radius:8px;color:#fff;cursor:pointer;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr);min-height:84px;padding:14px;text-align:left;width:100%}.home-action-stack{display:grid;gap:10px}.compact-home-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end;margin-top:12px;min-height:52px}.home-voice-status{align-items:center;border:1px solid transparent;border-radius:8px;color:#59635c;display:flex;flex:1 1 auto;gap:8px;height:40px;min-width:0;opacity:0;padding:0 8px;visibility:hidden}.home-voice-status[data-active=true]{opacity:1;visibility:visible}.home-voice-status-recording{background:#fff1ef;border-color:#f0c3bd;color:#8d251c}.home-voice-status-processing{background:#fff7df;border-color:#ead69f;color:#76510b}.home-voice-status-success{background:#e8f6f1;border-color:#b9dfd3;color:#176b58}.home-voice-status-queued{background:#fff7df;border-color:#ead69f;color:#76510b}.home-voice-status-text{display:block;flex:1 1 auto;font-size:.82rem;font-weight:700;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-inline-check{flex:0 0 18px;height:18px;width:18px}.voice-inline-cancel{align-items:center;background:transparent;border:0;border-radius:999px;color:currentColor;cursor:pointer;display:inline-flex;flex:0 0 28px;font-size:1.25rem;height:28px;justify-content:center;line-height:1;padding:0;width:28px}.voice-level-bars{align-items:center;display:inline-flex;flex:0 0 18px;gap:2px;height:20px;justify-content:center}.voice-level-bars i{animation:voice-level .8s ease-in-out infinite alternate;background:currentColor;border-radius:2px;display:block;height:7px;width:2px}.voice-level-bars i:nth-child(2){animation-delay:-.35s}.voice-level-bars i:nth-child(3){animation-delay:-.6s}.voice-level-bars i:nth-child(4){animation-delay:-.2s}.voice-inline-spinner,.voice-button-spinner{animation:voice-spin .8s linear infinite;border:2px solid currentColor;border-right-color:transparent;border-radius:999px;display:inline-block}.voice-inline-spinner{flex:0 0 16px;height:16px;width:16px}.voice-button-spinner{height:21px;width:21px}.quick-action-icon-button{align-items:center;border:1px solid #d9dfd6;border-radius:999px;cursor:pointer;display:inline-flex;flex:0 0 auto;height:48px;justify-content:center;min-height:48px;padding:0;width:48px}.voice-mic-button{background:#1f8a70;border-color:#1f8a70;color:#fff;height:52px;min-height:52px;position:relative;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:52px}.voice-mic-button:active{transform:scale(.96)}.voice-mic-button-recording{background:#c43e32;border-color:#c43e32}.voice-mic-button-recording:after{animation:voice-mic-ring 1.35s ease-out infinite;border:2px solid rgb(196 62 50 / 42%);border-radius:999px;content:"";top:-5px;right:-5px;bottom:-5px;left:-5px;pointer-events:none;position:absolute}.voice-mic-button-processing{background:#76510b;border-color:#76510b;cursor:wait}.voice-mic-button:disabled{opacity:1}.text-expense-button{background:#fffefa;color:#176b58}.quick-add-icon{align-items:center;background:#ffffff29;border-radius:8px;display:inline-flex;height:52px;justify-content:center;width:52px}.quick-add-svg{display:block;height:23px;width:23px}.nav-icon{display:block;height:18px;width:18px}.quick-add-copy{display:grid;gap:3px;min-width:0}.quick-add-copy strong{font-size:1.08rem;line-height:1.15;overflow-wrap:anywhere}.quick-add-copy small{color:#ffffffd6;font-weight:650;line-height:1.25;overflow-wrap:anywhere}.empty-state{border:1px dashed #cfd7cf;border-radius:8px;color:#4d5b54;display:grid;gap:6px;min-height:120px;padding:18px;place-content:center;text-align:center}.empty-state strong{color:#26302a}.settings-list{display:grid;gap:12px;margin:0}.settings-list div{display:grid;gap:4px}.settings-list dt{color:#59635c;font-size:.86rem}.settings-list dd{margin:0;overflow-wrap:anywhere}.update-card,.pwa-status,.install-helper{display:grid;gap:12px}.update-card{border-bottom:1px solid #d9dfd6;margin-bottom:12px;padding-bottom:12px}.pwa-status{border-left:4px solid #1f8a70;padding-left:12px}.update-card p,.pwa-status p,.install-helper p{margin:4px 0 0}.install-warning{justify-content:flex-start;margin:0 0 12px;max-width:none}.install-steps{color:#303b34;display:grid;gap:8px;line-height:1.45;margin:10px 0 0;padding-left:22px}.install-steps li{padding-left:2px}.expense-list,.backup-list,.category-report-list,.expense-form{display:grid;gap:10px}.expense-item,.backup-item,.category-report-item{align-items:center;border:1px solid #e0ded3;border-radius:8px;background:#fbf8f0;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;min-height:76px;min-width:0;padding:12px}.expense-item,.backup-item,.category-report-item,.report-card{content-visibility:auto;contain-intrinsic-size:88px}.expense-item strong,.backup-item strong,.category-report-item strong{overflow-wrap:anywhere}.expense-item-side,.category-report-value{display:grid;gap:6px;justify-items:end;min-width:0}.tiny-actions,.button-row{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.button-row>*{flex:1 1 0;min-width:0}.tiny-actions>*{min-width:0}.filter-grid,.form-grid-two,.report-grid{display:grid;gap:10px}.filter-grid{align-items:end;grid-template-columns:1fr}.filter-grid .field{min-width:0}.filter-grid input,.filter-grid select{max-width:100%;min-width:0;width:100%}.filter-date{overflow:hidden}.filter-date input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:.95rem;max-inline-size:100%;min-inline-size:0;overflow:hidden;padding-left:10px;padding-right:8px;text-overflow:clip}.filter-search{grid-column:auto}.compact-field{gap:6px}.compact-field input,.compact-field select{min-height:48px}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-card{border:1px solid #e0ded3;border-radius:8px;background:#fbf8f0;display:grid;gap:8px;min-height:116px;padding:14px}.report-card span,.report-card small{color:#59635c}.report-card strong{font-size:1.2rem;overflow-wrap:anywhere}.accent-card{background:#e8f6f1;border-color:#bbd7ce}.progress-track{background:#e8e3d7;border-radius:999px;height:8px;max-width:100%;overflow:hidden;width:104px}.progress-bar{background:#1f8a70;border-radius:inherit;height:100%}.sheet-backdrop{align-items:end;background:#1519177a;bottom:0;display:flex;left:0;padding:16px 12px calc(16px + env(safe-area-inset-bottom));position:fixed;right:0;top:0;z-index:20}.bottom-sheet{background:#fffefa;border:1px solid #d9dfd6;border-radius:8px;box-shadow:0 18px 70px #1c222040;margin:0 auto;max-height:calc(100dvh - 32px - env(safe-area-inset-top));max-width:min(720px,100%);overscroll-behavior:contain;overflow:auto;padding:16px;-webkit-overflow-scrolling:touch;width:100%}.compact-sheet,.quick-sheet{display:grid;gap:14px}.quick-input-stack{display:grid;gap:12px}.quick-textarea{font-size:1.1rem;line-height:1.45;min-height:156px;padding:14px;resize:vertical}.dictation-hint{border:1px solid #bbd7ce;border-radius:8px;background:#e8f6f1;color:#176b58;line-height:1.45;padding:12px}.draft-card{border:1px solid #d9dfd6;border-radius:8px;background:#fbf8f0;display:grid;gap:12px;padding:14px}.voice-status-panel,.transcript-panel,.voice-keyboard-panel,.audio-recording-panel{border:1px solid #d9dfd6;border-radius:8px;display:grid;gap:8px;padding:12px}.voice-action-row{display:grid;gap:8px}.voice-done-button{justify-self:center}.compact-heading{margin-bottom:4px}.voice-status{align-items:center;border-radius:999px;display:inline-flex;font-size:.86rem;font-weight:700;justify-content:center;justify-self:start;line-height:1;min-height:28px;padding:6px 10px;white-space:nowrap}.voice-status-idle,.voice-status-result{background:#e8f6f1;color:#176b58}.voice-status-listening,.voice-status-processing{background:#fff7df;color:#76510b}.voice-status-error{background:#fff1ef;color:#8d251c}.transcript-panel span{color:#59635c;font-size:.86rem}.transcript-panel p{overflow-wrap:anywhere}.audio-meter{align-items:center;border:1px solid #e0ded3;border-radius:8px;display:flex;gap:8px;justify-content:space-between;min-height:44px;padding:8px 10px}.audio-meter span{color:#59635c;font-size:.86rem}.voice-capture-backdrop{align-items:center;padding:calc(16px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom))}.voice-capture-sheet{display:grid;gap:12px;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-width:min(390px,100%);overflow:auto;padding:18px;position:relative}.voice-close-button{position:absolute;right:8px;top:8px}.voice-capture-hero{display:grid;gap:10px;justify-items:center;padding:12px 30px 2px;text-align:center}.voice-capture-hero .voice-status{justify-self:center;min-inline-size:96px}.voice-capture-hero h2{color:#1c2220;font-size:1.25rem;line-height:1.15;margin:0}.voice-capture-hero p{color:#59635c;line-height:1.4;margin:0}.voice-pulse{align-items:center;background:#1f8a70;border:0;border-radius:999px;color:#fff;cursor:pointer;display:inline-flex;flex:0 0 72px;height:72px;isolation:isolate;justify-content:center;margin:8px 0 2px;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:72px}.voice-toggle-button:active:not(:disabled),.voice-pulse-listening{transform:scale(1.06)}.voice-toggle-button:disabled{cursor:wait}.voice-pulse-ring{border:1px solid rgb(31 138 112 / 48%);border-radius:999px;top:-8px;right:-8px;bottom:-8px;left:-8px;opacity:0;pointer-events:none;position:absolute;z-index:0}.voice-pulse-listening .voice-pulse-ring,.voice-pulse-processing .voice-pulse-ring{animation:voice-pulse-ring 1.25s ease-out infinite}.voice-pulse-processing{background:#76510b}.voice-pulse-error{background:#b3342a}.voice-pulse-icon{height:31px;position:relative;width:31px;z-index:1}.voice-mini-transcript{align-items:center;background:#f6f1e7;border:1px solid #e0ded3;border-radius:8px;color:#1c2220;display:flex;justify-content:center;line-height:1.35;min-height:48px;overflow-wrap:anywhere;padding:10px 12px;text-align:center}.voice-mini-meter{display:grid;gap:6px}.voice-mini-meter span,.voice-quiet-note{color:#59635c;font-size:.86rem;line-height:1.4;margin:0;text-align:center}.voice-mini-actions{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.voice-compact-button{min-height:44px;padding:0 12px}.voice-fallback-compact{border:1px solid #d9dfd6;border-radius:8px;display:grid;gap:10px;padding:12px}.voice-fallback-compact h3{color:#1c2220;font-size:1rem;margin:0}.voice-fallback-textarea{font-size:1rem;line-height:1.4;min-height:74px;padding:12px;resize:vertical}.voice-review-card{max-height:42dvh;overflow:auto}.voice-bottom-actions{align-items:center;display:flex;gap:8px;justify-content:space-between}.voice-save-button{min-height:44px;min-width:132px;width:auto}@keyframes voice-pulse-ring{0%{opacity:.64;transform:scale(.82)}to{opacity:0;transform:scale(1.22)}}@keyframes voice-level{0%{height:6px}to{height:18px}}@keyframes voice-spin{to{transform:rotate(360deg)}}@keyframes voice-mic-ring{0%{opacity:.8;transform:scale(.92)}to{opacity:0;transform:scale(1.2)}}.warning-list{border:1px solid #f0c36d;border-radius:8px;background:#fff7df;color:#76510b;display:grid;gap:6px;padding:10px 12px}.sticky-sheet-actions{background:#fffefa;bottom:0;display:flex;flex-wrap:wrap;gap:8px;margin:0 -16px -16px;padding:12px 16px 16px;position:sticky}.bottom-nav{align-items:stretch;background:#fffefaf0;border-top:1px solid #d9dfd6;bottom:0;display:grid;gap:4px;grid-template-columns:repeat(4,minmax(0,1fr));left:0;padding:4px 8px calc(4px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:10}.nav-button{align-items:center;background:transparent;border:0;border-radius:8px;color:#59635c;cursor:pointer;display:grid;font-size:.68rem;gap:2px;justify-items:center;min-height:44px;min-width:0;overflow-wrap:anywhere;padding:3px 2px}.nav-button span{min-width:0}.nav-button[aria-current=page]{background:#e8f6f1;color:#176b58;font-weight:700}.nav-icon{opacity:.72}.nav-button[aria-current=page] .nav-icon{opacity:1}@media (min-width: 760px){.mobile-shell{padding-left:28px;padding-right:28px}.bottom-nav{border:1px solid #d9dfd6;border-radius:8px;bottom:12px;box-shadow:0 18px 40px #1c22201f;left:50%;max-width:560px;padding:5px;right:auto;transform:translate(-50%);width:calc(100% - 36px)}.form-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 560px){.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-period,.filter-search{grid-column:1 / -1}}@media (max-width: 380px){.metric-grid,.report-grid{grid-template-columns:1fr}.filter-date input[type=date]{font-size:.9rem;padding-left:8px;padding-right:6px}.expense-item,.backup-item,.category-report-item{align-items:start;grid-template-columns:1fr}.expense-item-side,.category-report-value{justify-items:start}.tiny-actions{justify-content:flex-start}.section-heading{align-items:flex-start;flex-direction:column}.section-heading .status-pill{text-align:left;white-space:normal}}@media (prefers-color-scheme: dark){:root{color:#eef3ed;background:#151917}.auth-panel,.state-panel,.surface-panel,.bottom-nav{background:#1d2420;border-color:#344139}.field,.empty-state,.status-pill,.muted{color:#b7c3bb}.field input,.field select,.field textarea{background:#121714;border-color:#425047;color:#eef3ed}.metric-tile,.expense-item,.backup-item,.category-report-item,.report-card{background:#242419;border-color:#444333}.pwa-status{border-color:#1f8a70}.update-card{border-color:#344139}.metric-tile strong,.empty-state strong{color:#eef3ed}.empty-state{border-color:#425047}.status-pill,.nav-button[aria-current=page]{background:#123c33;border-color:#1f6f5c;color:#9be4d1}.form-error{background:#3a1c1a;border-color:#8b3d36;color:#ffbcb6}.offline-expense-form,.outbox-state{border-color:#344139}.outbox-success,.sync-banner{background:#123c33;border-color:#1f6f5c;color:#9be4d1}.sync-pending-pill{background:#3b3119;border-color:#806323;color:#f2cf7a}.secondary-button{background:#3b3021;color:#f2cf9f}.text-expense-button{background:#202821;border-color:#344139;color:#9be4d1}.home-voice-status-recording{background:#3a1c1a;border-color:#8b3d36;color:#ffbcb6}.home-voice-status-processing,.home-voice-status-queued{background:#3b3119;border-color:#806323;color:#f2cf7a}.home-voice-status-success{background:#123c33;border-color:#1f6f5c;color:#9be4d1}.danger-button{background:#8b2f29}.text-button,.icon-button{color:#9be4d1}.inline-alert{background:#3a1c1a;border-color:#8b3d36;color:#ffbcb6}.bottom-sheet,.sticky-sheet-actions{background:#1d2420;border-color:#344139}.progress-track{background:#3b3a2b}.dictation-hint{background:#123c33;border-color:#1f6f5c;color:#9be4d1}.draft-card{background:#242419;border-color:#444333}.voice-status-panel,.transcript-panel,.voice-keyboard-panel,.audio-recording-panel,.audio-meter{border-color:#344139}.voice-status-idle,.voice-status-result{background:#123c33;color:#9be4d1}.voice-status-listening,.voice-status-processing{background:#3b3119;color:#f2cf7a}.voice-status-error{background:#3a1c1a;color:#ffbcb6}.transcript-panel span,.audio-meter span{color:#b7c3bb}.voice-capture-hero h2,.voice-fallback-compact h3,.voice-mini-transcript{color:#eef3ed}.voice-capture-hero p,.voice-mini-meter span,.voice-quiet-note{color:#b7c3bb}.voice-mini-transcript{background:#202821;border-color:#344139}.voice-fallback-compact{border-color:#344139}.warning-list{background:#3b3119;border-color:#806323;color:#f2cf7a}.install-steps{color:#eef3ed}}:root[data-theme=dark]{color-scheme:dark;--app-bg: #121714;--app-surface: #1b221f;--app-surface-raised: #222a26;--app-surface-soft: #18201d;--app-border: #34413a;--app-border-strong: #45544b;--app-text: #eef3ed;--app-muted: #aab8af;--app-accent: #35b895;--app-accent-soft: #123c33;--app-accent-text: #9be4d1;--app-warning: #f0c65a;--app-warning-soft: #3b3119;--app-danger: #ee6255;--app-danger-soft: #3a1c1a;background:var(--app-bg);color:var(--app-text)}:root[data-theme=light]{color-scheme:light;--app-bg: #f4f6f2;--app-surface: #fffefa;--app-surface-raised: #fbf8f0;--app-surface-soft: #f6f1e7;--app-border: #d9dfd6;--app-border-strong: #c9d2ca;--app-text: #1c2220;--app-muted: #59635c;--app-accent: #1f8a70;--app-accent-soft: #e8f6f1;--app-accent-text: #176b58;--app-warning: #9c6b10;--app-warning-soft: #fff7df;--app-danger: #c43e32;--app-danger-soft: #fff1ef;background:var(--app-bg);color:var(--app-text)}:root[data-theme] body{background:var(--app-bg);color:var(--app-text)}:root[data-theme] .auth-panel,:root[data-theme] .state-panel,:root[data-theme] .surface-panel,:root[data-theme] .bottom-sheet,:root[data-theme] .sticky-sheet-actions{background:var(--app-surface);border-color:var(--app-border);color:var(--app-text)}:root[data-theme] .field,:root[data-theme] .empty-state,:root[data-theme] .muted,:root[data-theme] .status-pill,:root[data-theme] .eyebrow{color:var(--app-muted)}:root[data-theme] .field input,:root[data-theme] .field select,:root[data-theme] .field textarea{background:var(--app-surface-soft);border-color:var(--app-border-strong);color:var(--app-text)}:root[data-theme] .metric-tile,:root[data-theme] .expense-item,:root[data-theme] .backup-item,:root[data-theme] .category-report-item,:root[data-theme] .report-card,:root[data-theme] .draft-card,:root[data-theme] .voice-mini-transcript{background:var(--app-surface-raised);border-color:var(--app-border);color:var(--app-text)}:root[data-theme] .metric-tile strong,:root[data-theme] .empty-state strong,:root[data-theme] .voice-capture-hero h2,:root[data-theme] .voice-fallback-compact h3,:root[data-theme] .voice-mini-transcript,:root[data-theme] .install-steps{color:var(--app-text)}:root[data-theme] .status-pill,:root[data-theme] .nav-button[aria-current=page],:root[data-theme] .outbox-success,:root[data-theme] .sync-banner,:root[data-theme] .dictation-hint,:root[data-theme] .voice-status-idle,:root[data-theme] .voice-status-result{background:var(--app-accent-soft);border-color:var(--app-accent);color:var(--app-accent-text)}:root[data-theme] .form-error,:root[data-theme] .inline-alert,:root[data-theme] .home-voice-status-recording{background:var(--app-danger-soft);border-color:var(--app-danger);color:var(--app-danger)}:root[data-theme] .sync-pending-pill,:root[data-theme] .home-voice-status-processing,:root[data-theme] .home-voice-status-queued,:root[data-theme] .warning-list,:root[data-theme] .voice-status-listening,:root[data-theme] .voice-status-processing{background:var(--app-warning-soft);border-color:var(--app-warning);color:var(--app-warning)}:root[data-theme] .secondary-button{background:var(--app-surface-raised);border:1px solid var(--app-border);color:var(--app-text)}:root[data-theme] .text-button,:root[data-theme] .icon-button{color:var(--app-accent-text)}.mobile-shell{padding-bottom:calc(132px + env(safe-area-inset-bottom))}.app-header{margin-bottom:14px}.app-header h1{font-size:1.55rem;letter-spacing:0}.home-summary{border-bottom:1px solid var(--app-border);display:grid;gap:10px;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);padding:6px 2px 18px}.today-total,.month-total{display:grid;gap:7px;min-width:0}.today-total span,.month-total span{color:var(--app-muted);font-size:.78rem;font-weight:650}.today-total strong,.month-total strong{color:var(--app-text);font-variant-numeric:tabular-nums;line-height:1.05;min-width:0;overflow-wrap:anywhere}.today-total strong{font-size:1.75rem}.month-total strong{font-size:1.05rem}.list-section,.day-group,.report-overview{min-width:0;padding:2px 0}.list-section>.section-heading,.day-group>.section-heading{margin-bottom:4px;padding:8px 2px}.expense-list{gap:0}:root[data-theme] .expense-item{background:transparent;border:0;border-bottom:1px solid var(--app-border);border-radius:0;min-height:68px;padding:11px 2px}.expense-item strong,.report-card strong,.category-report-value span{font-variant-numeric:tabular-nums}.tiny-actions{gap:2px}.tiny-actions .text-button{font-size:.76rem;min-height:32px;padding:3px 5px}.history-toolbar{align-items:center;border-bottom:1px solid var(--app-border);display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 44px;padding:4px 0 14px}.history-filter-summary{display:grid;gap:3px;min-width:0}.history-filter-summary strong,.history-filter-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-filter-summary span{color:var(--app-muted);font-size:.82rem}.toolbar-icon-button{align-items:center;background:var(--app-surface-raised);border:1px solid var(--app-border);border-radius:8px;color:var(--app-accent-text);cursor:pointer;display:inline-flex;height:44px;justify-content:center;padding:0;width:44px}.toolbar-icon-button svg{height:20px;width:20px}.filter-sheet{display:grid;gap:12px}.report-primary-total{border-bottom:1px solid var(--app-border);display:grid;gap:8px;margin-bottom:12px;padding:2px 2px 16px}.report-primary-total span,.report-primary-total small{color:var(--app-muted)}.report-primary-total strong{font-size:1.75rem;font-variant-numeric:tabular-nums}.trend-up{color:var(--app-danger)!important}.trend-down{color:var(--app-accent-text)!important}:root[data-theme] .report-card{background:var(--app-surface-raised);border-color:var(--app-border);min-height:100px}.report-insight{align-items:center;background:var(--app-accent-soft);border:1px solid var(--app-accent);border-radius:8px;color:var(--app-accent-text);display:grid;gap:4px 10px;grid-template-columns:minmax(0,1fr) auto;margin-top:10px;padding:12px}.report-insight strong{grid-column:1}.report-insight span:last-child{grid-column:2;grid-row:1 / span 2;font-variant-numeric:tabular-nums}:root[data-theme] .category-report-item{background:transparent;border:0;border-bottom:1px solid var(--app-border);border-radius:0;padding-left:2px;padding-right:2px}.capture-dock{align-items:center;bottom:calc(58px + env(safe-area-inset-bottom));display:flex;gap:8px;left:50%;max-width:720px;padding:6px 12px;pointer-events:none;position:fixed;transform:translate(-50%);width:100%;z-index:12}.capture-status{align-items:center;background:color-mix(in srgb,var(--app-surface) 94%,transparent);border:1px solid var(--app-border);border-radius:8px;box-shadow:0 10px 32px #00000047;color:var(--app-muted);display:flex;flex:1 1 auto;gap:8px;height:46px;min-width:0;opacity:0;padding:0 10px;pointer-events:none;transform:translateY(8px);visibility:hidden}.capture-status[data-active=true]{opacity:1;pointer-events:auto;transform:translateY(0);visibility:visible}.capture-dock-recording .capture-status{background:var(--app-danger-soft);border-color:var(--app-danger);color:var(--app-danger)}.capture-dock-processing .capture-status,.capture-dock-queued .capture-status{background:var(--app-warning-soft);border-color:var(--app-warning);color:var(--app-warning)}.capture-dock-success .capture-status{background:var(--app-accent-soft);border-color:var(--app-accent);color:var(--app-accent-text)}.capture-status-text{flex:1 1 auto;font-size:.82rem;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capture-edit-button{background:transparent;border:0;color:currentColor;cursor:pointer;flex:0 0 auto;font-size:.78rem;font-weight:800;min-height:36px;padding:0 4px}.dock-action{align-items:center;border-radius:999px;box-shadow:0 10px 28px #0000004d;cursor:pointer;display:inline-flex;flex:0 0 auto;justify-content:center;pointer-events:auto}.dock-text-action{background:var(--app-surface-raised);border:1px solid var(--app-border);color:var(--app-accent-text);height:44px;width:44px}.dock-voice-action{background:var(--app-accent);border:0;color:#fff;height:54px;position:relative;width:54px}.dock-voice-action-recording{background:var(--app-danger)}.dock-voice-action-recording:after{animation:voice-mic-ring 1.35s ease-out infinite;border:2px solid currentColor;border-radius:inherit;content:"";top:-5px;right:-5px;bottom:-5px;left:-5px;opacity:.55;position:absolute}.dock-voice-action-processing{background:var(--app-warning)}.bottom-nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:color-mix(in srgb,var(--app-surface) 88%,transparent);border-color:var(--app-border);min-height:54px}.nav-button{color:var(--app-muted)}.settings-header{align-items:center;display:flex;justify-content:space-between;padding:2px 2px 8px}.settings-header h2{font-size:1.4rem}.connection-dot{align-items:center;color:var(--app-muted);display:inline-flex;font-size:.8rem;gap:7px}.connection-dot:before{background:var(--app-danger);border-radius:999px;content:"";height:7px;width:7px}.connection-dot[data-online=true]:before{background:var(--app-accent)}.settings-groups{border-bottom:1px solid var(--app-border);border-top:1px solid var(--app-border)}.settings-group{border-bottom:1px solid var(--app-border)}.settings-group:last-child{border-bottom:0}.settings-group summary{align-items:center;cursor:pointer;display:grid;gap:11px;grid-template-columns:38px minmax(0,1fr) 18px;list-style:none;min-height:62px;padding:8px 2px}.settings-group summary::-webkit-details-marker{display:none}.settings-group-icon{align-items:center;background:var(--app-surface-raised);border:1px solid var(--app-border);border-radius:8px;color:var(--app-accent-text);display:inline-flex;height:36px;justify-content:center;width:36px}.settings-group-icon svg,.settings-chevron{height:18px;width:18px}.settings-group-copy{display:grid;gap:3px;min-width:0}.settings-group-copy small{color:var(--app-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-chevron{color:var(--app-muted);transition:transform .16s ease}.settings-group[open] .settings-chevron{transform:rotate(90deg)}.settings-detail{border-top:1px solid var(--app-border);display:grid;gap:12px;padding:14px 2px 18px 49px}.setting-block,.settings-status-line,.setting-select-row,.public-address-row,.toggle-setting{align-items:center;display:flex;gap:12px;justify-content:space-between;min-width:0}.setting-block{align-items:stretch;display:grid}.setting-label{color:var(--app-muted);font-size:.8rem}.segmented-control{background:var(--app-surface-soft);border:1px solid var(--app-border);border-radius:8px;display:grid;gap:3px;grid-template-columns:repeat(3,minmax(0,1fr));padding:3px}.segmented-control button{background:transparent;border:0;border-radius:6px;color:var(--app-muted);cursor:pointer;min-height:36px;min-width:0;padding:0 5px}.segmented-control button[aria-pressed=true]{background:var(--app-accent);color:#fff;font-weight:750}.toggle-setting>span,.setting-select-row>span,.public-address-row>span{display:grid;flex:1 1 auto;gap:3px;min-width:0}.toggle-setting small,.setting-select-row small,.public-address-row small{color:var(--app-muted);font-size:.76rem;overflow-wrap:anywhere}.toggle-setting input{height:1px;opacity:0;position:absolute;width:1px}.toggle-setting i{background:var(--app-border-strong);border-radius:999px;flex:0 0 44px;height:26px;padding:3px;transition:background .16s ease}.toggle-setting i:after{background:#fff;border-radius:999px;content:"";display:block;height:20px;transition:transform .16s ease;width:20px}.toggle-setting input:checked+i{background:var(--app-accent)}.toggle-setting input:checked+i:after{transform:translate(18px)}.toggle-setting input:focus-visible+i{outline:3px solid color-mix(in srgb,var(--app-accent) 35%,transparent)}.setting-select-row select{background:var(--app-surface-raised);border:1px solid var(--app-border);border-radius:8px;color:var(--app-text);min-height:40px;padding:0 9px;width:auto}.settings-status-line span{color:var(--app-muted)}.settings-status-line strong{font-size:.84rem;text-align:right}.settings-note{color:var(--app-muted);font-size:.78rem}.category-settings-list{display:grid}.category-setting-row{align-items:center;background:transparent;border:0;border-bottom:1px solid var(--app-border);color:var(--app-text);cursor:pointer;display:grid;gap:10px;grid-template-columns:10px minmax(0,1fr) 18px;min-height:54px;padding:7px 0;text-align:left}.category-setting-row>span:nth-child(2){display:grid;gap:3px;min-width:0}.category-setting-row small{color:var(--app-muted);font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-setting-row svg{color:var(--app-muted);height:17px;width:17px}.category-dot{border-radius:999px;height:10px;width:10px}.button-icon{height:18px;margin-right:7px;width:18px}.success-message{background:var(--app-accent-soft);border:1px solid var(--app-accent);border-radius:8px;color:var(--app-accent-text);padding:10px}.logout-button{background:transparent;border:1px solid var(--app-danger);border-radius:8px;color:var(--app-danger);cursor:pointer;min-height:48px;width:100%}html[data-density=comfortable] .expense-item{min-height:80px;padding-bottom:15px;padding-top:15px}html[data-density=comfortable] .settings-group summary{min-height:70px}html[data-reduce-motion=true] *,html[data-reduce-motion=true] *:before,html[data-reduce-motion=true] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}@media (max-width: 420px){.capture-dock{padding-left:8px;padding-right:8px}.settings-detail{padding-left:2px}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-card:last-child{grid-column:1 / -1}}
