@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-gradient-start: #0f0c29;--bg-gradient-mid: #302b63;--bg-gradient-end: #24243e;--glass-bg: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .15);--glass-hover: rgba(255, 255, 255, .12);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .4);--accent-green: #34d399;--accent-red: #f87171;--accent-purple: #a78bfa;--accent-blue: #60a5fa;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--blur: 20px;--transition: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:linear-gradient(135deg,var(--bg-gradient-start) 0%,var(--bg-gradient-mid) 50%,var(--bg-gradient-end) 100%);background-attachment:fixed;color:var(--text-primary);min-height:100vh;line-height:1.5;-webkit-tap-highlight-color:transparent}.glass-card{background:var(--glass-bg);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.glass-button{background:var(--glass-bg);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;transition:all var(--transition)}.glass-button:hover{background:var(--glass-hover)}.glass-button:active{transform:scale(.97)}.glass-button-primary{background:linear-gradient(135deg,var(--accent-purple) 0%,var(--accent-blue) 100%);border:none;box-shadow:0 8px 32px #a78bfa4d}.glass-button-primary:hover{box-shadow:0 12px 40px #a78bfa66;transform:translateY(-2px)}.glass-button-primary:active{transform:scale(.97) translateY(0)}.fab{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));right:24px;width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--accent-purple) 0%,var(--accent-blue) 100%);border:none;box-shadow:0 8px 32px #a78bfa66;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition);z-index:100}.fab:hover{transform:scale(1.1);box-shadow:0 12px 48px #a78bfa80}.fab:active{transform:scale(.95)}.fab-extended{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);height:54px;padding:0 24px;border-radius:27px;background:#ffffff08;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0006;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:all var(--transition);z-index:100;color:#ffffff80;font-weight:500;font-size:.85rem;white-space:nowrap}.fab-extended:hover{background:#ffffff0d;transform:translate(-50%) translateY(-2px);color:#fffc}.btn-add-expense-static{width:100%;height:60px;border-radius:20px;background:linear-gradient(135deg,var(--accent-red) 0%,#db2777 100%);border:none;box-shadow:0 10px 30px #f871714d;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;transition:all var(--transition);color:#fff;font-weight:700;font-size:1rem;letter-spacing:.5px;margin-top:12px;margin-bottom:40px}.btn-add-expense-static:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 15px 40px #f8717166}.btn-add-expense-static:active{transform:scale(.98)}.fab svg,.fab-extended svg{width:24px;height:24px;color:#fff}.page-container{min-height:100vh;padding:24px 20px 120px;max-width:480px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-title{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.balance-card{background:var(--glass-bg);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:32px 24px;margin-bottom:24px;position:relative;overflow:hidden}.balance-card:before{content:"";position:absolute;top:-50%;right:-30%;width:200px;height:200px;background:radial-gradient(circle,rgba(167,139,250,.2) 0%,transparent 70%);border-radius:50%}.balance-label{font-size:.875rem;color:var(--text-secondary);margin-bottom:8px}.balance-amount{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:24px}.balance-amount.positive{color:var(--accent-green)}.balance-amount.negative{color:var(--accent-red)}.progress-container{margin-top:16px}.progress-info{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-muted);margin-bottom:8px}.progress-bar{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .5s ease;background:var(--accent-green)}.progress-fill.warning{background:#fbbf24}.progress-fill.danger{background:var(--accent-red)}.section-title{font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:16px}.transaction-list{display:flex;flex-direction:column;gap:12px}.transaction-item{background:var(--glass-bg);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:16px;display:flex;align-items:center;justify-content:space-between;transition:all var(--transition)}.transaction-item:hover{background:var(--glass-hover)}.transaction-info{display:flex;align-items:center;gap:12px}.transaction-icon{width:44px;height:44px;background:#ffffff1a;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.25rem}.transaction-details{display:flex;flex-direction:column}.transaction-merchant{font-weight:600;color:var(--text-primary);font-size:.9375rem}.transaction-date{font-size:.75rem;color:var(--text-muted)}.transaction-amount{font-weight:700;color:var(--text-primary);font-size:.9375rem}.transaction-amount.expense{color:var(--accent-red)}.empty-state{text-align:center;padding:48px 24px;background:var(--glass-bg);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.empty-state-icon{width:64px;height:64px;margin:0 auto 16px;background:#ffffff0d;border-radius:50%;display:flex;align-items:center;justify-content:center}.empty-state-icon svg{width:32px;height:32px;color:var(--text-muted)}.empty-state-title{font-size:1rem;color:var(--text-secondary);margin-bottom:8px}.empty-state-text{font-size:.875rem;color:var(--text-muted)}.camera-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center}.camera-icon{width:120px;height:120px;background:var(--glass-bg);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:2px dashed var(--glass-border);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:24px}.camera-icon svg{width:48px;height:48px;color:var(--text-secondary)}.camera-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.camera-subtitle{font-size:.875rem;color:var(--text-muted);margin-bottom:32px}.upload-button{background:linear-gradient(135deg,var(--accent-purple) 0%,var(--accent-blue) 100%);border:none;border-radius:var(--radius-md);color:#fff;font-weight:600;font-size:1rem;padding:16px 48px;cursor:pointer;transition:all var(--transition);box-shadow:0 8px 32px #a78bfa4d}.upload-button:hover{transform:translateY(-2px);box-shadow:0 12px 40px #a78bfa66}.upload-button:active{transform:scale(.97)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#0f0c29cc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);padding:12px 0;padding-bottom:calc(12px + env(safe-area-inset-bottom));z-index:50}.nav-container{display:flex;justify-content:space-around;max-width:480px;margin:0 auto}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--text-muted);font-size:.75rem;transition:color var(--transition)}.nav-item svg{width:24px;height:24px}.nav-item.active{color:var(--accent-purple)}.login-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--glass-bg);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:40px 32px}.login-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);text-align:center;margin-bottom:8px}.login-subtitle{font-size:.875rem;color:var(--text-muted);text-align:center;margin-bottom:32px}.form-group{margin-bottom:20px}.form-label{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:8px}.form-input{width:100%;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:14px 16px;color:var(--text-primary);font-size:1rem;transition:all var(--transition)}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{outline:none;border-color:var(--accent-purple);background:#ffffff14}.login-button{width:100%;background:linear-gradient(135deg,var(--accent-purple) 0%,var(--accent-blue) 100%);border:none;border-radius:var(--radius-md);color:#fff;font-weight:600;font-size:1rem;padding:16px;cursor:pointer;transition:all var(--transition);margin-top:8px}.login-button:hover{box-shadow:0 8px 32px #a78bfa4d}.login-button:disabled{opacity:.5;cursor:not-allowed}.login-error{background:#f871711a;border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-sm);padding:12px 16px;color:var(--accent-red);font-size:.875rem;margin-bottom:20px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;z-index:200;animation:fadeIn .2s ease}.modal-content{width:100%;max-width:480px;background:var(--bg-gradient-mid);border:1px solid var(--glass-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:32px 24px;padding-bottom:calc(32px + env(safe-area-inset-bottom))}.modal-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:24px}.modal-input{width:100%;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:16px;color:var(--text-primary);font-size:1.5rem;font-weight:600;text-align:center;margin-bottom:24px}.modal-input:focus{outline:none;border-color:var(--accent-purple)}.modal-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-button-secondary{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:16px;color:var(--text-secondary);font-weight:600;cursor:pointer;transition:all var(--transition)}.modal-button-secondary:hover{background:var(--glass-hover)}.modal-button-primary{background:linear-gradient(135deg,var(--accent-purple) 0%,var(--accent-blue) 100%);border:none;border-radius:var(--radius-md);padding:16px;color:#fff;font-weight:600;cursor:pointer;transition:all var(--transition)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .3s ease-out}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:32px;height:32px;border:3px solid var(--glass-border);border-top-color:var(--accent-purple);border-radius:50%;animation:spin .8s linear infinite}.hidden{display:none!important}.text-center{text-align:center}.font-bold{font-weight:700}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}@media(min-width:640px){.modal-content{border-radius:var(--radius-xl);margin-bottom:24px}.modal-overlay{align-items:center}}
