*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--expense:#e74c3c;--earning:#27ae60;--stats:#2980b9;--bg:#f5f6fa;--surface:#fff;--text:#2d3436;--muted:#636e72;--radius:12px;--grad-start:#667eea;--grad-end:#764ba2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#13151c;--surface:#1f2229;--text:#e4e6eb;--muted:#9aa0a6}.grid-btn,.amount-input,.amount-entry input,.auth-form input,.period-tab,.scan-area,.scan-spinner,.export-btn,.when-btn,.when-date,.delete-btn,.review-field select,.review-field input[type=text],.review-field input[type=number],.review-field input[type=date]{border-color:#2f343d}.grid-btn:hover,.scan-area:hover{background:#2980b92e}.scan-btn:hover,.budget-cta:hover{background:#667eea26}.budget-row:hover,.recent-row:hover,.settings-row:hover{background:#262932}.budget-row:active,.recent-row:active{background:#2f333d}.budget-bar-bg,.bar-bg,.subcat-bar-bg{background:#2a2d35}}body{background:var(--bg);color:var(--text);min-height:100vh;padding:max(24px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));justify-content:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}#root{width:100%;max-width:480px}.home-screen{flex-direction:column;gap:20px;display:flex}.home-header{margin:calc(-1 * max(24px, env(safe-area-inset-top))) -16px 0;padding:calc(max(36px, env(safe-area-inset-top) + 12px)) 24px 28px;background:linear-gradient(135deg, var(--grad-start) 0%, var(--grad-end) 100%);color:#fff;border-radius:0 0 24px 24px;justify-content:space-between;align-items:flex-end;display:flex}.home-welcome{opacity:.85;margin-bottom:4px;font-size:.95rem}.home-name{font-size:2rem;font-weight:700;line-height:1.1}.home-header-right{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.home-date{opacity:.75;text-align:right;max-width:110px;font-size:.8rem;line-height:1.4}.settings-icon{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex}.settings-icon:hover{background:#ffffff40}.settings-icon:active{transform:scale(.92)}.settings-icon svg{width:18px;height:18px}@keyframes pulse-dash{0%,to{opacity:1}50%{opacity:.45}}.scan-btn{background:var(--surface);border:2.5px dashed var(--grad-start);cursor:pointer;text-align:left;border-radius:20px;align-items:center;gap:16px;width:100%;padding:20px 24px;transition:background .15s;animation:2s ease-in-out infinite pulse-dash;display:flex}.scan-btn:hover{background:#f0f2ff}.scan-btn:active{transform:scale(.98)}.scan-btn-icon{color:var(--grad-start);flex-shrink:0}.scan-btn-icon svg{width:32px;height:32px}.scan-btn-text{flex-direction:column;gap:3px;display:flex}.scan-btn-title{color:var(--text);font-size:1rem;font-weight:600}.scan-btn-sub{color:var(--muted);font-size:.82rem}.name-prompt{flex-direction:column;align-items:center;gap:24px;margin-top:60px;display:flex}.name-prompt h1{font-size:2rem;font-weight:700}.name-prompt .auth-form{width:100%}.home-loading{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:60vh;display:flex}.home-loading p{color:var(--muted)}.home-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.home-grid-btn{color:#fff;cursor:pointer;border:none;border-radius:22px;flex-direction:column;align-items:center;gap:12px;padding:22px 12px;font-size:.9rem;font-weight:600;transition:opacity .15s,transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.home-grid-btn:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(160deg,#ffffff38 0%,#0000 55%);position:absolute;inset:0}.home-grid-btn:hover{transform:translateY(-2px)}.home-grid-btn:active{opacity:.9;transform:scale(.96)}.home-grid-icon{background:#fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.home-grid-label{letter-spacing:.01em;font-size:.88rem;font-weight:700}.home-grid-expense{background:linear-gradient(145deg,#ff6b6b,#e74c3c,#c0392b);box-shadow:0 8px 20px #e74c3c61}.home-grid-earning{background:linear-gradient(145deg,#2ecc71,#27ae60,#1e8449);box-shadow:0 8px 20px #27ae6061}.home-grid-entries{background:linear-gradient(145deg,#b06cf0,#8e44ad,#6c3483);box-shadow:0 8px 20px #8e44ad61}.home-grid-stats{background:linear-gradient(145deg,#4da3e8,#2980b9,#1a5276);box-shadow:0 8px 20px #2980b961}.quick-stats{flex-direction:column;gap:10px;display:flex}.quick-stats-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.75rem;font-weight:600}.quick-stats-cards{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.quick-card{background:var(--surface);border-radius:var(--radius);border-top:3px solid #0000;flex-direction:column;gap:4px;padding:16px;display:flex}.quick-card-expense{border-top-color:var(--expense)}.quick-card-earning{border-top-color:var(--earning)}.quick-card-amount{font-size:1.1rem;font-weight:700}.quick-card-expense .quick-card-amount{color:var(--expense)}.quick-card-earning .quick-card-amount{color:var(--earning)}.quick-card-title{color:var(--muted);font-size:.78rem}.budget-section{flex-direction:column;gap:10px;display:flex}.budget-section-head{justify-content:space-between;align-items:center;display:flex}.budget-list{flex-direction:column;gap:12px;display:flex}.budget-row{background:var(--surface);border-radius:var(--radius);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;border:none;flex-direction:column;gap:6px;padding:14px;transition:background .15s;display:flex}.budget-row:hover{background:#f8f9fb}.budget-row:active{background:#eef0f3}.budget-row-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.budget-row-label{font-size:.92rem;font-weight:500}.budget-row-amount{white-space:nowrap;color:var(--muted);font-size:.85rem;font-weight:600}.budget-row-ok{color:var(--earning)}.budget-row-warn{color:#f39c12}.budget-row-over{color:var(--expense)}.budget-bar-bg{background:#eef0f3;border-radius:4px;height:6px;overflow:hidden}.budget-bar-fill{border-radius:4px;height:6px;transition:width .4s}.budget-bar-ok{background:var(--earning)}.budget-bar-warn{background:#f39c12}.budget-bar-over{background:var(--expense)}.budget-cta{background:var(--surface);border:1.5px dashed var(--grad-start);border-radius:var(--radius);color:var(--grad-start);cursor:pointer;padding:16px;font-size:.92rem;font-weight:500;transition:background .15s}.budget-cta:hover{background:#f0f2ff}.budgets-screen{flex-direction:column;gap:16px;display:flex}.recent-list{flex-direction:column;gap:10px;display:flex}.recent-row{background:var(--surface);border-radius:var(--radius);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;border:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;transition:background .15s;display:flex}.recent-row:hover{background:#f8f9fb}.recent-row:active{background:#eef0f3}.recent-left{flex-direction:column;gap:2px;min-width:0;display:flex}.recent-cat{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:500;overflow:hidden}.recent-store{color:var(--muted);font-weight:400}.recent-date{color:var(--muted);font-size:.75rem}.recent-amount{white-space:nowrap;flex-shrink:0;font-size:.9rem;font-weight:700}.recent-amount-expense{color:var(--expense)}.recent-amount-earning{color:var(--earning)}.btn{border-radius:var(--radius);cursor:pointer;color:#fff;border:none;padding:18px;font-size:1.1rem;font-weight:600;transition:opacity .15s,transform .1s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:default}.btn-expense{background:var(--expense)}.btn-earning{background:var(--earning)}.btn-stats{background:var(--stats)}.add-entry{flex-direction:column;gap:24px;display:flex}.top-bar{align-items:center;gap:12px;display:flex}.top-bar h2{font-size:1.3rem}.back-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:4px 0;font-size:1rem}.back-btn:hover{color:var(--text)}.step-label{color:var(--muted);font-size:.95rem}.grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.grid-btn{background:var(--surface);border-radius:var(--radius);cursor:pointer;border:2px solid #dfe6e9;padding:20px 12px;font-size:1rem;font-weight:500;transition:border-color .15s,background .15s}.grid-btn:hover{border-color:var(--stats);background:#eaf4ff}.grid-btn-active{background:var(--stats);border-color:var(--stats);color:#fff;font-weight:600}.grid-btn-active:hover{background:var(--stats);color:#fff}.entry-section{flex-direction:column;gap:10px;display:flex}.entry-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.78rem;font-weight:600}.amount-input{border-radius:var(--radius);border:2px solid #dfe6e9;outline:none;width:100%;padding:16px;font-size:1.4rem;transition:border-color .15s}.amount-input:focus{border-color:var(--stats)}.add-new-btn{color:var(--muted);border-style:dashed;font-weight:400}.add-new-btn:hover{color:var(--text);border-color:var(--text);background:var(--surface)}.add-new-input{grid-column:1/-1;gap:8px;display:flex}.add-new-input input{border:2px solid var(--stats);border-radius:var(--radius);outline:none;flex:1;padding:12px;font-size:1rem}.add-new-confirm{background:var(--stats);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:12px 20px;font-size:1rem;font-weight:600}.add-new-confirm:disabled{opacity:.4;cursor:default}.amount-entry{align-items:center;gap:12px;display:flex}.amount-entry input{border-radius:var(--radius);border:2px solid #dfe6e9;outline:none;flex:1;padding:16px;font-size:1.4rem;transition:border-color .15s}.amount-entry input:focus{border-color:var(--stats)}.amount-entry .btn{padding:16px 24px;font-size:1rem}.statistics{flex-direction:column;gap:28px;display:flex}.summary-cards{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.summary-cards-4{grid-template-columns:repeat(2,1fr)}.card{background:var(--surface);border-radius:var(--radius);text-align:center;border-top:4px solid #0000;flex-direction:column;gap:6px;padding:16px 12px;display:flex}.card span{color:var(--muted);font-size:.8rem}.card strong{font-size:1.1rem}.card-expense{border-top-color:var(--expense)}.card-earning{border-top-color:var(--earning)}.card-balance{border-top-color:var(--stats)}.card-balance.positive strong{color:var(--earning)}.card-balance.negative strong{color:var(--expense)}section h3{color:var(--muted);margin-bottom:12px;font-size:1rem}.breakdown{flex-direction:column;gap:12px;list-style:none;display:flex}.breakdown-row{justify-content:space-between;margin-bottom:4px;font-size:.95rem;display:flex}.cat-amount{font-weight:600}.bar-bg{background:#dfe6e9;border-radius:4px;height:6px}.bar-fill{border-radius:4px;height:6px;transition:width .4s}.bar-expense{background:var(--expense)}.bar-earning{background:var(--earning)}.empty{color:var(--muted);font-size:.9rem}.period-tabs{flex-wrap:wrap;gap:6px;display:flex}.period-tab{background:var(--surface);cursor:pointer;color:var(--muted);border:1.5px solid #dfe6e9;border-radius:20px;padding:7px 14px;font-size:.85rem;font-weight:500;transition:all .15s}.period-tab:hover{border-color:var(--stats);color:var(--stats)}.period-tab.active{background:var(--stats);border-color:var(--stats);color:#fff}.card-saved{border-top-color:#8e44ad}.card-saved.positive strong{color:#27ae60}.card-saved.negative strong{color:var(--expense)}.cat-toggle-row{cursor:pointer}.cat-toggle-row:hover .cat-name{color:var(--stats)}.cat-chevron{width:14px;color:var(--muted);font-size:.7rem;display:inline-block}.subcat-list{flex-direction:column;gap:8px;margin-top:8px;padding-left:14px;list-style:none;display:flex}.subcat-name{color:var(--muted);font-size:.88rem}.subcat-amount{color:var(--muted);font-size:.88rem;font-weight:500}.subcat-bar-bg{background:#eef0f1}.subcat-bar{height:4px}.auth-screen{flex-direction:column;align-items:center;gap:32px;margin-top:80px;display:flex}.auth-screen h1{font-size:2rem;font-weight:700}.auth-form{background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:14px;width:100%;padding:28px 24px;display:flex}.auth-form h2{margin-bottom:4px;font-size:1.2rem;font-weight:600}.auth-form input{border-radius:var(--radius);border:2px solid #dfe6e9;outline:none;padding:14px;font-size:1rem;transition:border-color .15s}.auth-form input:focus{border-color:var(--stats)}.auth-error{color:var(--expense);font-size:.9rem}.auth-hint{color:var(--muted);font-size:.95rem;line-height:1.5}.auth-switch{color:var(--stats);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.9rem}.auth-switch:hover{text-decoration:underline}.scan-screen{flex-direction:column;gap:24px;display:flex}.scan-area{border-radius:var(--radius);cursor:pointer;background:var(--surface);border:2px dashed #dfe6e9;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:48px 24px;transition:border-color .15s,background .15s;display:flex}.scan-area:hover{border-color:var(--stats);background:#eaf4ff}.scan-area p{color:var(--muted);text-align:center;font-size:.95rem}.scan-camera-icon{color:var(--muted)}.scan-camera-icon svg{width:48px;height:48px}.scan-loading{flex-direction:column;align-items:center;gap:16px;padding:48px 0;display:flex}.scan-spinner{border:3px solid #dfe6e9;border-top-color:var(--stats);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.scan-loading p{color:var(--muted)}.scan-error{color:var(--expense);font-size:.9rem}.btn-scan{background:#636e72}.btn-entries{background:#8e44ad}.export-btn{cursor:pointer;color:var(--muted);background:0 0;border:1.5px solid #dfe6e9;border-radius:20px;margin-left:auto;padding:5px 12px;font-size:.8rem;font-weight:500;transition:all .15s}.export-btn:hover{border-color:var(--stats);color:var(--stats)}.export-btn:disabled{opacity:.5;cursor:default}.entries-screen{flex-direction:column;gap:16px;display:flex}.entries-list{flex-direction:column;gap:10px;list-style:none;display:flex}.entry-item{background:var(--surface);border-radius:var(--radius);border-left:4px solid #0000;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.entry-expense{border-left-color:var(--expense)}.entry-earning{border-left-color:var(--earning)}.entry-main{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.entry-label{font-size:.95rem;font-weight:500}.entry-store{color:var(--muted);font-weight:400}.entry-amount{white-space:nowrap;font-size:1rem;font-weight:700}.entry-amount-expense{color:var(--expense)}.entry-amount-earning{color:var(--earning)}.entry-footer{justify-content:space-between;align-items:center;display:flex}.entry-date{color:var(--muted);font-size:.8rem}.entry-actions{gap:12px;display:flex}.entry-action-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0;font-size:.8rem}.entry-action-btn:hover{color:var(--text)}.entry-delete-btn:hover{color:var(--expense)}.entry-delete-btn.confirming{color:var(--expense);font-weight:600}.advanced-toggle{color:var(--stats);cursor:pointer;text-align:left;background:0 0;border:none;align-self:flex-start;padding:4px 0;font-size:.88rem;font-weight:500}.advanced-toggle:hover{text-decoration:underline}.when-block{flex-direction:column;gap:10px;margin-top:8px;display:flex}.when-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.when-btn{background:var(--surface);color:var(--muted);cursor:pointer;border:2px solid #dfe6e9;border-radius:20px;padding:10px 18px;font-size:.92rem;font-weight:500;transition:all .15s}.when-btn:hover{border-color:var(--stats);color:var(--stats)}.when-btn-active{background:var(--stats);border-color:var(--stats);color:#fff}.when-btn-active:hover{color:#fff}.when-date{border-radius:var(--radius);border:2px solid #dfe6e9;outline:none;flex:1;min-width:140px;padding:10px 14px;font-size:.95rem;transition:border-color .15s}.when-date:focus{border-color:var(--stats)}.recurring-block{flex-direction:column;gap:12px;margin-top:8px;display:flex}.checkbox-row{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:.95rem;display:flex}.checkbox-row input{cursor:pointer;width:18px;height:18px}.recurring-fields{flex-direction:column;gap:12px;padding-left:26px;display:flex}.entry-inactive{opacity:.5}.settings-row{background:var(--surface);border-radius:var(--radius);color:var(--text);cursor:pointer;text-align:left;border:none;justify-content:space-between;align-items:center;padding:14px 16px;font-size:.95rem;font-weight:500;transition:background .15s;display:flex}.settings-row:hover{background:#f8f9fb}.settings-row-chevron{color:var(--muted);font-size:1.2rem}.review-field-toggle{flex-direction:row;justify-content:space-between;align-items:center;padding:4px 0}.toggle-label-group{flex-direction:column;gap:3px;display:flex}.toggle-label-group label{margin:0}.toggle-label-sub{color:var(--muted);font-size:.78rem}.toggle-switch{cursor:pointer;background:#dfe6e9;border:none;border-radius:13px;flex-shrink:0;width:46px;height:26px;padding:0;transition:background .2s;position:relative}.toggle-switch.on{background:var(--earning)}.toggle-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;display:block;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-switch.on .toggle-thumb{transform:translate(20px)}.webhook-section{background:var(--surface);border-radius:var(--radius);border:1.5px solid #dfe6e9;flex-direction:column;gap:10px;padding:16px;display:flex}.webhook-header{flex-direction:column;gap:3px;display:flex}.webhook-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.webhook-sub{color:var(--muted);font-size:.78rem}.webhook-key-input{background:var(--bg);width:100%;color:var(--text);border:1.5px solid #dfe6e9;border-radius:8px;outline:none;padding:10px 12px;font-family:monospace;font-size:.78rem}.webhook-actions{gap:8px;display:flex}.webhook-btn{flex:1;padding:10px;font-size:.85rem}.webhook-btn-secondary{background:var(--bg);color:var(--text);border:1.5px solid #dfe6e9}.shortcut-setup{flex-direction:column;gap:20px;display:flex}.shortcut-intro{color:var(--muted);margin:0;font-size:.95rem;line-height:1.5}.shortcut-step{align-items:flex-start;gap:14px;display:flex}.shortcut-step-num{color:#fff;background:linear-gradient(145deg,#b06cf0,#8e44ad);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;font-weight:700;display:flex}.shortcut-step-body{flex-direction:column;flex:1;gap:8px;display:flex}.shortcut-step-title{color:var(--text);font-size:.95rem;font-weight:600}.shortcut-step-desc{color:var(--muted);margin:0;font-size:.88rem;line-height:1.5}.shortcut-step-list{color:var(--muted);margin:0;padding-left:18px;font-size:.88rem;line-height:1.9}.shortcut-open-btn{margin-top:2px}.shortcut-key-row{background:var(--surface);border:1.5px solid #dfe6e9;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;display:flex}.shortcut-key-text{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:.72rem;overflow:hidden}.shortcut-copy-btn{flex-shrink:0;padding:6px 14px;font-size:.82rem}.delete-btn{border-radius:var(--radius);color:var(--muted);cursor:pointer;background:0 0;border:1.5px solid #dfe6e9;padding:14px;font-size:.95rem;font-weight:500;transition:all .15s}.delete-btn:hover{border-color:var(--expense);color:var(--expense)}.delete-btn.confirming{border-color:var(--expense);color:var(--expense);font-weight:600}.scan-review{flex-direction:column;gap:24px;display:flex}.review-fields{flex-direction:column;gap:16px;display:flex}.review-field{flex-direction:column;gap:6px;display:flex}.review-field label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.review-optional{text-transform:none;letter-spacing:0;font-weight:400}.review-field select,.review-field input[type=text],.review-field input[type=number]{border-radius:var(--radius);background:var(--surface);appearance:none;border:2px solid #dfe6e9;outline:none;width:100%;padding:14px;font-size:1rem;transition:border-color .15s}.review-field select:focus,.review-field input:focus{border-color:var(--stats)}.review-field select:disabled{opacity:.4}
