:root{--font-primary:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--bg-main:#070b14;--bg-card:#161e30e0;--bg-card-hover:#1e2940f2;--bg-card-solid:#151d2e;--bg-sidebar:#0c111e;--border-color:#ffffff24;--border-glow:#6366f173;--primary:#6366f1;--primary-light:#939bfa;--primary-glow:#6366f159;--accent-purple:#8b5cf6;--accent-pink:#ec4899;--accent-cyan:#06b6d4;--success:#10b981;--success-glow:#10b98140;--warning:#f59e0b;--warning-glow:#f59e0b40;--danger:#ef4444;--danger-glow:#ef444440;--text-primary:#fff;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--shadow-sm:0 2px 10px #0006;--shadow-md:0 8px 28px -4px #0000008c;--shadow-lg:0 18px 48px -8px #000000bf;--shadow-primary:0 8px 25px #6366f173;--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--radius-xl:30px;--radius-full:9999px;--safe-top:max(env(safe-area-inset-top,0px), 16px);--safe-bottom:max(env(safe-area-inset-bottom,0px), 20px)}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}html,body{background-color:var(--bg-main);height:100%;color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);letter-spacing:-.02em;color:#fff;font-weight:700}button,input,select,textarea{color:inherit;font-family:inherit;font-size:16px}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:all .22s}.glass-card-hover:hover{box-shadow:var(--shadow-lg);border-color:#ffffff40;transform:translateY(-2px)}.gradient-text{background:linear-gradient(135deg,#fff 0%,#e2e8f0 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.gradient-brand{background:linear-gradient(135deg, var(--primary) 0%, var(--accent-purple) 50%, var(--accent-pink) 100%)}.gradient-brand-text{background:linear-gradient(135deg,#a5b4fc 0%,#c084fc 50%,#f472b6 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.gradient-success{background:linear-gradient(135deg,#10b981 0%,#059669 100%)}.gradient-warning{background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%)}.gradient-danger{background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%)}.btn{min-height:44px;font-family:var(--font-primary);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.95rem;font-weight:700;transition:all .18s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:active{transform:scale(.96)}.btn-primary{color:#fff;box-shadow:var(--shadow-primary);background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%)}.btn-primary:hover,.btn-primary:active{filter:brightness(1.15);box-shadow:0 10px 30px #6366f180}.btn-secondary{color:#fff;background:#ffffff1a;border:1px solid #ffffff2e}.btn-secondary:hover,.btn-secondary:active{background:#ffffff2e;border-color:#ffffff4d}.btn-calendar{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#10b981 100%);box-shadow:0 4px 18px #3b82f666}.btn-calendar:hover,.btn-calendar:active{filter:brightness(1.15);box-shadow:0 8px 25px #3b82f68c}.btn-success{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%)}.btn-danger{color:#fca5a5;background:#ef444433;border:1px solid #ef444466}.btn-danger:active{background:#ef444459}.btn-icon{border-radius:var(--radius-md);width:44px;height:44px;padding:0}.badge{border-radius:var(--radius-full);align-items:center;gap:5px;padding:5px 12px;font-size:.8rem;font-weight:700;display:inline-flex}.badge-income{color:#34d399;background:#10b98138;border:1px solid #10b98173}.badge-expense{color:#f87171;background:#ef444438;border:1px solid #ef444473}.badge-google-cal{color:#93c5fd;background:#4285f438;border:1px solid #4285f473}.badge-pending{color:#fde68a;background:#f59e0b38;border:1px solid #f59e0b73}.badge-paid{color:#6ee7b7;background:#10b98138;border:1px solid #10b98173}.form-group{margin-bottom:18px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.85rem;font-weight:700;display:block}.form-input,.form-select{border:1px solid var(--border-color);border-radius:var(--radius-md);color:#fff;-webkit-appearance:none;background:#0c1220d9;outline:none;width:100%;min-height:48px;padding:12px 16px;transition:all .2s;font-size:16px!important}.form-input:focus,.form-select:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px var(--primary-glow);background:#0c1220f2}.modal-overlay{-webkit-backdrop-filter:blur(12px);z-index:1000;background:#030712d9;justify-content:center;align-items:center;padding:16px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card-solid);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);-webkit-overflow-scrolling:touch;border:1px solid #ffffff2e;width:100%;max-width:520px;max-height:calc(100vh - 40px);padding:24px 20px;animation:.25s cubic-bezier(.16,1,.3,1) slideUp;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:999px}.app-container{background-color:var(--bg-main);background-image:radial-gradient(circle at 10% 20%,#6366f11f 0%,#0000 40%),radial-gradient(circle at 90% 80%,#8b5cf61f 0%,#0000 40%);flex-direction:column;width:100%;min-height:100dvh;display:flex}.main-content{-webkit-overflow-scrolling:touch;width:100%;min-width:0;min-height:100dvh;padding-bottom:calc(110px + var(--safe-bottom));flex-direction:column;flex:1;display:flex;overflow-y:auto}@media (width>=900px){.app-container{flex-direction:row}.main-content{height:100vh;padding-bottom:40px}}.page-wrapper{width:100%;max-width:1200px;margin:0 auto;padding:24px 20px}@media (width<=640px){.page-wrapper{padding:16px 14px 24px}}
