:root{--primary: #007aff;--primary-hover: #2997ff;--secondary: #5856d6;--background: #050507;--surface: #151517;--surface-hover: #1d1d20;--text: #f5f5f7;--text-muted: #a1a1a6;--error: #ff453a;--success: #30d158;--warning: #ff9f0a;--border: rgba(255, 255, 255, .08);--radius: 18px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .34);--shadow-md: 0 18px 45px rgba(0, 0, 0, .36);--shadow-lg: 0 26px 70px rgba(0, 0, 0, .46)}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{width:100%;min-height:100vh;margin:0;padding:0;overflow-x:hidden}html{scrollbar-color:rgba(0,122,255,.62) rgba(255,255,255,.06);scrollbar-width:thin}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#ffffff0a;border-radius:999px}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:linear-gradient(180deg,#007affe6,#5856d6d1) border-box;background-clip:padding-box,border-box}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#2997ff,#5e5ce6) border-box;background-clip:padding-box,border-box}body{background:radial-gradient(circle at top left,rgba(0,122,255,.2),transparent 34rem),radial-gradient(circle at top right,rgba(88,86,214,.14),transparent 30rem),var(--background);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,sans-serif;line-height:1.45}button,input,select{font:inherit}app-dashboard,app-income,app-contracts,app-installments,app-investments,app-one-time-expense,app-budget-percentages,app-login{display:block}.card,.glass-card,.glass-card-shine{position:relative;overflow:hidden;background:#151517d1;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1.5rem;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background-color .22s ease}.card:before,.glass-card:before,.glass-card-shine:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent 36%);opacity:.48}.card:hover,.glass-card:hover,.glass-card-shine:hover{transform:translateY(-2px);border-color:#ffffff24;box-shadow:var(--shadow-lg);background:#1d1d20db}.card+.card,app-income+app-contracts,app-contracts+app-installments,app-one-time-expense+app-investments{margin-top:1rem}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:42px;padding:.72rem 1.15rem;border:0;border-radius:14px;background:var(--primary);color:#fff;cursor:pointer;font-size:.95rem;font-weight:700;box-shadow:0 8px 18px #007aff2e;transition:background-color .15s ease,box-shadow .15s ease}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 10px 22px #007aff38}.btn-primary:disabled{background:#3a3a3c;box-shadow:none;cursor:not-allowed}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:999px;background:#ffffff12;color:var(--text-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease}.btn-icon:hover{background:#ff453a1f;color:var(--error)}.input-field{width:100%;min-height:44px;margin-bottom:0;padding:.72rem .9rem;border:1px solid var(--border);border-radius:14px;outline:none;background:#ffffff12;color:var(--text);font-size:.96rem;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.input-field:focus{border-color:#007aff73;background:#ffffff1a;box-shadow:0 0 0 4px #007aff29}input[type=date]{color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(1) brightness(1.8) saturate(.2);opacity:.8}input[type=date]::-webkit-calendar-picker-indicator:hover,input[type=month]::-webkit-calendar-picker-indicator:hover{opacity:1}.input-field::placeholder{color:#6e6e73}label{display:block;margin-bottom:.35rem;color:var(--text-muted);font-size:.78rem;font-weight:700}select.input-field{appearance:none;padding-right:2.5rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' viewBox='0 0 24 24' stroke='%236e6e73'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center}select.input-field option{background-color:#1c1c1e;color:var(--text)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .28s ease-out both}.spinner{width:30px;height:30px;border:3px solid rgba(0,122,255,.16);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#05050794;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.badge{display:inline-flex;align-items:center;min-height:26px;padding:.28rem .65rem;border-radius:999px;font-size:.76rem;font-weight:700}.badge-success{background:#30d15824;color:var(--success)}.badge-error{background:#ff453a24;color:var(--error)}.badge-info{background:#007aff24;color:var(--primary)}.toggle-row{display:flex;align-items:center;gap:.75rem;width:fit-content;color:var(--text);cursor:pointer;font-size:.9rem}.toggle-row input{width:42px;height:24px;appearance:none;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff1f;cursor:pointer;position:relative;transition:background-color .18s ease,border-color .18s ease}.toggle-row input:before{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:999px;background:#fff;transition:transform .18s ease}.toggle-row input:checked{border-color:#30d15875;background:var(--success)}.toggle-row input:checked:before{transform:translate(18px)}.grid{display:grid}.grid-cols-1{grid-template-columns:minmax(0,1fr)}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-container{width:100%;height:300px;margin-top:1rem}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.text-secondary{color:var(--secondary)}.text-success{color:var(--success)}.text-error{color:var(--error)}.font-medium{font-weight:500}.font-bold{font-weight:700}.font-black{font-weight:800}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.1rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:clamp(1.35rem,2vw,1.75rem)}.text-3xl{font-size:clamp(1.7rem,2.6vw,2.15rem)}.text-4xl{font-size:clamp(2rem,3.5vw,3rem)}.text-6xl{font-size:clamp(2.25rem,5vw,4.25rem)}.text-center{text-align:center}.text-right{text-align:right}.uppercase{text-transform:uppercase}.tracking-tight,.tracking-wider,.tracking-widest{letter-spacing:0}.italic{font-style:italic}.whitespace-nowrap{white-space:nowrap}.flex{display:flex}.inline-flex{display:inline-flex}.block{display:block}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1 1 0%}.relative{position:relative}.absolute{position:absolute}.inset-0{inset:0}.pointer-events-none{pointer-events:none}.w-full{width:100%}.h-full{height:100%}.h-screen{min-height:100vh}.aspect-square{aspect-ratio:1/1}.max-w-7xl{max-width:1180px}.max-w-\[320px\]{max-width:320px}.mx-auto{margin-left:auto;margin-right:auto}.min-h-\[400px\]{min-height:400px}.h-\[1px\]{height:1px}.h-\[8px\]{height:8px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-12{gap:3rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.ml-6{margin-left:1.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-10{padding:2.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.pr-2{padding-right:.5rem}.space-y-1>*+*{margin-top:.25rem}.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}.space-y-6>*+*{margin-top:1.5rem}.space-y-8>*+*{margin-top:2rem}.space-y-12>*+*{margin-top:3rem}.rounded-lg{border-radius:12px}.rounded-2xl{border-radius:16px}.rounded-3xl{border-radius:20px}.rounded-full{border-radius:9999px}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-lg{box-shadow:var(--shadow-lg)}.border{border:1px solid var(--border)}.border-b{border-bottom:1px solid var(--border)}.border-white\/5{border-color:var(--border)}.border-error\/20{border-color:#ff453a38}.bg-surface{background-color:var(--surface)}.bg-\[var\(--background\)\]{background-color:var(--background)}.bg-white\/5{background-color:#ffffff0f}.bg-primary{background-color:var(--primary)}.bg-primary\/10{background-color:#007aff1a}.bg-success\/10{background-color:#30d1581f}.bg-error\/10{background-color:#ff453a1c}.bg-secondary\/10{background-color:#5856d61a}.transition-all,.transition-opacity{transition:opacity .15s ease,border-color .15s ease,background-color .15s ease}.opacity-0{opacity:0}.group:hover .group-hover\:opacity-100{opacity:1}.hover\:border-primary\/40:hover{border-color:#007aff61}.hover\:border-white\/10:hover{border-color:#ffffff1f}.col-span-full{grid-column:1/-1}.income-item{isolation:isolate;position:relative}.income-item:after{content:"";position:absolute;inset:auto 18px 0;height:1px;background:linear-gradient(90deg,transparent,rgba(48,209,88,.55),transparent);opacity:0;transition:opacity .22s ease}.income-item:hover:after{opacity:1}.scroll-reveal{opacity:0;transform:translateY(22px);transition:opacity .52s cubic-bezier(.16,1,.3,1),transform .52s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.card,.glass-card,.glass-card-shine,.scroll-reveal,.toggle-row input,.toggle-row input:before{transition:none}.card:hover,.glass-card:hover,.glass-card-shine:hover,.scroll-reveal{transform:none}}@media(min-width:640px){.sm-grid-cols-2,.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:768px){.md-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md-col-span-2{grid-column:span 2}.md-p-8{padding:2rem}}@media(min-width:1280px){.lg-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:720px){.card,.glass-card,.glass-card-shine{padding:1rem;border-radius:16px}.flex.justify-between{gap:1rem}.opacity-0{opacity:1}}
