@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1, "liga" 1;text-rendering:optimizelegibility;overscroll-behavior-y:none;background-color:#f2f2f7;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Inter,Segoe UI,Roboto,Helvetica Neue,sans-serif}#root{min-height:100svh}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth}input,button,textarea,select{font-family:inherit}:root{--bg:#f2f2f7;--bg-elevated:#fff;--card:#fff;--text-primary:#000;--text-secondary:#8e8e93;--text-tertiary:#aeaeb2;--accent:#007aff;--accent-light:#007aff1f;--danger:#ff3b30;--danger-light:#ff3b301f;--warn:#ff9500;--warn-light:#ff95001f;--success:#34c759;--success-light:#34c7591f;--separator:#3c3c431f;--separator-opaque:#c6c6c8;--fill:#78788014;--fill-secondary:#7878801f;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:22px;--shadow-card:0 .5px 0 0 #0000000a, 0 1px 2px 0 #0000000a, 0 2px 8px 0 #00000008;--shadow-elevated:0 2px 8px 0 #00000014, 0 8px 24px 0 #0000000f;--shadow-fab:0 2px 8px #007aff4d, 0 6px 20px #007aff33;--timing-quick:.18s cubic-bezier(.25, .1, .25, 1);--timing-smooth:.32s cubic-bezier(.25, .1, .25, 1);--timing-spring:.5s cubic-bezier(.175, .885, .32, 1.275)}.app{max-width:480px;min-height:100vh;margin:0 auto;padding-bottom:120px;position:relative}.app-header{z-index:50;-webkit-backdrop-filter:saturate(180%)blur(20px);background:#f2f2f7b8;justify-content:space-between;align-items:center;padding:16px 20px 4px;display:flex;position:sticky;top:0}.app-header h1{letter-spacing:-.5px;color:var(--text-primary);font-size:34px;font-weight:800}.settings-btn{color:var(--accent);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--timing-quick);letter-spacing:-.2px;background:0 0;border:none;padding:8px 12px;font-size:17px;font-weight:400}.settings-btn:hover{background:var(--accent-light)}.settings-btn:active{opacity:.6}.month-nav{justify-content:center;align-items:center;gap:24px;padding:12px 20px 8px;display:flex}.month-btn{background:var(--fill-secondary);cursor:pointer;width:34px;height:34px;color:var(--accent);transition:all var(--timing-quick);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:15px;font-weight:500;display:flex}.month-btn:hover{background:var(--accent-light)}.month-btn:active{opacity:.7;transform:scale(.88)}.month-label{text-align:center;min-width:120px;color:var(--text-primary);letter-spacing:-.2px;font-size:17px;font-weight:600}.total-card{border-radius:var(--radius-xl);background:linear-gradient(145deg,#007aff 0%,#5856d6 50%,#af52de 100%);flex-direction:column;gap:6px;margin:12px 20px 20px;padding:24px 24px 28px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #007aff40,0 8px 32px #5856d626}.total-card:before{content:"";pointer-events:none;background:#ffffff14;border-radius:50%;width:140px;height:140px;position:absolute;top:-40px;right:-40px}.total-card:after{content:"";pointer-events:none;background:#ffffff0d;border-radius:50%;width:80px;height:80px;position:absolute;bottom:-20px;left:-20px}.total-label{color:#ffffffb8;letter-spacing:.2px;text-transform:none;font-size:13px;font-weight:500}.total-amount{color:#fff;letter-spacing:-1px;font-size:34px;font-weight:700;line-height:1.1}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;padding:0 20px;font-size:13px;font-weight:600}.budget-tracker{flex-direction:column;gap:10px;margin-bottom:24px;padding:0 20px;display:flex}.budget-card{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);transition:all var(--timing-smooth);padding:16px 18px}.budget-card.over{box-shadow:var(--shadow-card), 0 0 0 1px #ff3b3014;background:linear-gradient(135deg,#fff 0%,#fff5f5 100%)}.budget-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.budget-category{color:var(--text-primary);letter-spacing:-.2px;font-size:15px;font-weight:600}.budget-numbers{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500}.budget-bar-bg{background:var(--fill-secondary);border-radius:3px;height:6px;overflow:hidden}.budget-bar-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .6s}.budget-bar-fill.warn{background:var(--warn)}.budget-bar-fill.over{background:var(--danger)}.budget-remaining{color:var(--text-secondary);text-align:right;margin-top:8px;font-size:12px;font-weight:500}.over-text{color:var(--danger);font-weight:600}.monthly-view{padding:0 20px}.empty-state{text-align:center;color:var(--text-tertiary);letter-spacing:-.2px;padding:80px 20px;font-size:16px;font-weight:500}.date-group{margin-bottom:20px}.date-header{color:var(--text-secondary);letter-spacing:-.1px;justify-content:space-between;align-items:center;padding:6px 4px 8px;font-size:13px;font-weight:600;display:flex}.day-total{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.expense-list{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.expense-item{cursor:pointer;transition:background var(--timing-quick);padding:14px 16px;position:relative}.expense-item:active{background:var(--fill)}.expense-item+.expense-item:before{content:"";background:var(--separator);height:.5px;position:absolute;top:0;left:56px;right:0}.expense-main{align-items:center;gap:12px;display:flex}.expense-emoji{background:var(--fill);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:28px;display:flex}.expense-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.expense-name{color:var(--text-primary);letter-spacing:-.2px;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:500;overflow:hidden}.expense-category{color:var(--text-secondary);font-size:13px;font-weight:400}.expense-amount{color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.3px;flex-shrink:0;font-size:16px;font-weight:600}.expense-actions{border-top:.5px solid var(--separator);gap:8px;margin-top:12px;padding-top:12px;display:flex}.btn-edit,.btn-delete{border-radius:var(--radius-sm);cursor:pointer;letter-spacing:-.1px;transition:all var(--timing-quick);border:none;flex:1;padding:10px;font-size:14px;font-weight:600}.btn-edit{background:var(--accent-light);color:var(--accent)}.btn-edit:active{opacity:.6}.btn-delete{background:var(--danger-light);color:var(--danger)}.btn-delete:active{opacity:.6}.fab-container{width:100%;max-width:480px;padding-bottom:max(24px, env(safe-area-inset-bottom));z-index:90;pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.fab-container:before{content:"";pointer-events:none;background:linear-gradient(#0000 0%,#f2f2f799 50%,#f2f2f7f2 100%);height:120px;position:absolute;bottom:0;left:0;right:0}.fab{background:var(--accent);color:#fff;cursor:pointer;width:60px;height:60px;box-shadow:var(--shadow-fab);transition:all var(--timing-smooth);pointer-events:auto;border:none;border-radius:50%;justify-content:center;align-items:center;padding-bottom:2px;font-size:32px;font-weight:300;line-height:1;display:flex;position:relative}.fab:hover{transform:scale(1.06);box-shadow:0 4px 12px #007aff59,0 8px 28px #007aff40}.fab:active{transform:scale(.92);box-shadow:0 2px 6px #007aff33}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000052;justify-content:center;align-items:flex-end;animation:.25s overlayFadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elevated);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:480px;padding:0 24px 40px;padding-bottom:max(40px, calc(env(safe-area-inset-bottom) + 20px));overscroll-behavior:contain;max-height:92vh;animation:.4s cubic-bezier(.32,.72,0,1) sheetSlideUp;overflow-y:auto}.modal:before{content:"";background:var(--separator-opaque);border-radius:2.5px;width:36px;height:5px;margin:12px auto 0;display:block}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes sheetSlideUp{0%{opacity:.5;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-header{justify-content:space-between;align-items:center;padding:20px 0 16px;display:flex}.modal-header h2{letter-spacing:-.3px;color:var(--text-primary);font-size:20px;font-weight:700}.modal-close{background:var(--fill-secondary);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;transition:all var(--timing-quick);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:600;line-height:1;display:flex}.modal-close:hover{background:var(--fill);color:var(--text-primary)}.modal-close:active{transform:scale(.9)}.form-group{margin-bottom:20px}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.form-group input{border-radius:var(--radius-sm);background:var(--fill);width:100%;color:var(--text-primary);transition:all var(--timing-quick);letter-spacing:-.2px;appearance:none;border:none;outline:none;padding:14px 16px;font-size:17px}.form-group input:focus{background:var(--accent-light);box-shadow:0 0 0 2px var(--accent)}.form-group input::placeholder{color:var(--text-tertiary)}.form-group input[type=date]{color:var(--text-primary);font-family:inherit}.form-group input[type=number]{font-variant-numeric:tabular-nums}.category-grid{flex-wrap:wrap;gap:8px;display:flex}.category-chip{border:1.5px solid var(--separator);background:var(--bg-elevated);cursor:pointer;transition:all var(--timing-quick);color:var(--text-primary);letter-spacing:-.1px;border-radius:100px;padding:10px 16px;font-size:14px;font-weight:500}.category-chip:active{transform:scale(.95)}.category-chip.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 8px #007aff40}.btn-submit{background:var(--accent);color:#fff;border-radius:var(--radius-md);cursor:pointer;width:100%;transition:all var(--timing-quick);letter-spacing:-.2px;border:none;margin-top:12px;padding:16px;font-size:17px;font-weight:600}.btn-submit:hover{filter:brightness(1.05)}.btn-submit:active{opacity:.85;transform:scale(.98)}.app::-webkit-scrollbar{display:none}.app{-ms-overflow-style:none;scrollbar-width:none}.budget-settings-note{color:var(--text-tertiary);margin-bottom:16px;font-size:13px;line-height:1.5}
