:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface-1:#f7f7f5;--surface-2:#fff;--surface-3:#ececea;--text-primary:#17171a;--text-secondary:#57564f;--border:#e2e1dc;--accent:#16a34a;--accent-text:#fff;--danger:#c73e3e;--chart-line:#2a78d6}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-1:#0b0f0d;--surface-2:#16191a;--surface-3:#212524;--text-primary:#f5f5f3;--text-secondary:#b3b2ab;--border:#2b2f2d;--accent:#22c55e;--accent-text:#06210f;--danger:#e66767;--chart-line:#3987e5}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--surface-1);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--text-secondary)}.small{font-size:.8125rem}.error-text{color:var(--danger);font-size:.875rem}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:10;padding:env(safe-area-inset-top,0) 16px 12px;padding-top:calc(env(safe-area-inset-top,0px) + 12px);background:var(--surface-1);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand{font-size:1.0625rem;font-weight:700}.page{flex:1;width:100%;max-width:640px;margin:0 auto;padding:16px 16px 88px}.bottom-nav{background:var(--surface-2);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{text-align:center;color:var(--text-secondary);flex:1;padding:12px 4px;font-size:.8125rem;text-decoration:none}.bottom-nav a.active{color:var(--accent);font-weight:600}.nav-voice-button{justify-content:center;align-items:center;display:flex;position:relative;padding:0!important}.nav-voice-button:before{content:"";background:var(--accent);border-radius:50%;width:56px;height:56px;position:absolute;transform:translateY(-14px);box-shadow:0 2px 8px #00000040}.nav-voice-button svg{color:var(--accent-text);position:relative;transform:translateY(-14px)}.account-menu{position:relative}.account-menu-trigger{color:var(--text-primary);background:0 0;border:none;padding:4px;display:flex}.account-menu-dropdown{background:var(--surface-2);border:1px solid var(--border);z-index:20;border-radius:12px;flex-direction:column;min-width:200px;padding:8px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 4px 16px #00000026}.account-menu-username{border-bottom:1px solid var(--border);margin-bottom:4px;padding:8px 10px 4px;font-size:.875rem;font-weight:600}.account-menu-item{text-align:left;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:10px;font-size:.9375rem;text-decoration:none}.account-menu-item:hover{background:var(--surface-3)}.account-menu-item.danger{color:var(--danger)}.stack{flex-direction:column;gap:14px;display:flex}h2{margin:4px 0 0;font-size:1.25rem}.card{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:16px}details>summary{cursor:pointer}details[open]>summary{margin-bottom:10px}details .stack,details>label,details>p{margin-top:8px}label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:.875rem;display:flex}input,select,textarea{background:var(--surface-1);border:1px solid var(--border);color:var(--text-primary);border-radius:8px;padding:10px 12px;font-size:.9375rem}textarea{resize:vertical;font-family:inherit}.checkbox-row{flex-direction:row;align-items:center;gap:8px}.checkbox-row input{width:auto}button{cursor:pointer;border:1px solid var(--border);background:var(--surface-2);border-radius:8px;padding:10px 14px;font-size:.9375rem}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}button.primary:disabled{opacity:.5;cursor:default}.dialog-confirm{background:var(--danger);color:#fff;border-color:var(--danger);font-weight:600}.link-button{color:var(--text-secondary);background:0 0;border:none;padding:0;font-size:.8125rem;text-decoration:underline}.link-button.danger{color:var(--danger)}.user-toggle{background:var(--surface-3);border-radius:10px;gap:4px;padding:4px;display:flex}.user-toggle button{color:var(--text-secondary);background:0 0;border:none;border-radius:7px;flex:1;padding:8px}.user-toggle button.active{background:var(--surface-2);color:var(--text-primary);font-weight:600}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{text-align:center;flex-direction:column;gap:14px;width:100%;max-width:320px;display:flex}.login-card h1{margin:0}.filter-row{flex-wrap:wrap;gap:8px;display:flex}.filter-row select,.filter-row input{flex:1;min-width:120px}.transaction-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.transaction-row{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px}.transaction-main{align-items:center;gap:10px;display:flex}.category-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.transaction-desc{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.amount{font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:600}.amount.positive{color:var(--accent)}.transaction-sub{margin-top:4px}.transaction-tags{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.tag-pill{background:var(--surface-3);color:var(--text-secondary);border-radius:999px;padding:2px 8px;font-size:.75rem}.transaction-actions{justify-content:flex-end;align-items:center;gap:16px;margin-top:10px;display:flex}.tag-editor{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag-chips{flex-wrap:wrap;gap:6px;display:flex}.tag-chip{background:var(--surface-3);color:var(--text-primary);border-radius:999px;align-items:center;gap:4px;padding:4px 6px 4px 10px;font-size:.8125rem;display:inline-flex}.tag-chip button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1}.tag-editor input{flex:1;min-width:140px}.location-combobox input{width:100%}.combobox-menu{background:var(--surface-1);border:1px solid var(--border);border-radius:8px;width:100%;max-height:160px;margin:4px 0 0;padding:4px;list-style:none;overflow-y:auto}.combobox-menu button{text-align:left;background:0 0;border:none;border-radius:6px;width:100%;padding:8px 10px;font-size:.875rem;display:block}.combobox-menu button:hover{background:var(--surface-3)}.budget-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.category-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.category-row input[type=color]{flex:none;width:44px;padding:4px}.budget-row{flex-direction:column;gap:6px;display:flex}.budget-header{justify-content:space-between;font-size:.875rem;display:flex}.budget-name{font-weight:600}.meter-track{background:var(--surface-3);border-radius:4px;height:8px;overflow:hidden}.meter-fill{border-radius:4px;height:100%;transition:width .2s}.over-budget{color:var(--danger);font-weight:600}.net-positive{color:var(--accent);font-weight:600}.stat-tile{flex-direction:column;gap:4px;display:flex}.stat-number{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.person-stats{gap:20px;font-size:.9375rem;display:flex}.legend-dot{border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.summary-list{margin:0;padding-left:18px}.dialog-overlay{z-index:100;background:#0a0a0880;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out dialog-overlay-in;display:flex;position:fixed;inset:0}.dialog-card{width:100%;max-width:360px;max-height:calc(100vh - 48px);animation:.15s ease-out dialog-card-in;overflow-y:auto;box-shadow:0 12px 32px #00000040}.dialog-title{margin:0;font-size:1.0625rem}.dialog-message{margin:0;font-size:.9375rem;line-height:1.4}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}@keyframes dialog-overlay-in{0%{opacity:0}}@keyframes dialog-card-in{0%{opacity:0;transform:translateY(8px)scale(.97)}}.voice-record-button{background:var(--accent);width:88px;height:88px;color:var(--accent-text);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #00000040}.voice-record-button.recording{background:var(--danger,#d64545);animation:1.4s ease-in-out infinite voice-recording-pulse}@keyframes voice-recording-pulse{0%,to{box-shadow:0 0 #d6454566}50%{box-shadow:0 0 0 14px #d6454500}}
