@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--bg-primary:#fafafa;--bg-secondary:#f4f4f5;--card-bg:#fff;--card-bg-hover:#fff;--card-border:#e4e4e7;--card-border-hover:#18181b;--color-primary:#09090b;--color-primary-glow:#09090b26;--color-secondary:#27272a;--color-secondary-glow:#27272a26;--color-above:#047857;--color-above-glow:#0478571a;--color-below:#b91c1c;--color-below-glow:#b91c1c1a;--color-neutral:#a1a1aa;--color-neutral-glow:#a1a1aa1a;--text-primary:#09090b;--text-secondary:#52525b;--text-muted:#a1a1aa;--border-radius-sm:4px;--border-radius-md:8px;--border-radius-lg:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter,sans-serif}:root.dark{--bg-primary:#09090b;--bg-secondary:#18181b;--card-bg:#18181b;--card-bg-hover:#27272a;--card-border:#27272a;--card-border-hover:#fafafa;--color-primary:#fafafa;--color-primary-glow:#fafafa26;--color-secondary:#e4e4e7;--color-secondary-glow:#e4e4e426;--color-above:#10b981;--color-above-glow:#10b98126;--color-below:#ef4444;--color-below-glow:#ef444426;--color-neutral:#71717a;--color-neutral-glow:#71717a26;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#71717a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root.dark body{background-image:radial-gradient(at 0 0,#fafafa05 0,#0000 50%),radial-gradient(at 100% 100%,#e4e4e405 0,#0000 50%)}:root.dark .glass{box-shadow:0 4px 20px #0003}:root.dark .budget-table tr.today-row{background:#fafafa0d}:root.dark .btn-primary{color:#09090b}:root.dark .badge-above{color:var(--color-above)!important;background:#10b9811a!important;border-color:#10b98133!important}:root.dark .badge-below{color:var(--color-below)!important;background:#ef44441a!important;border-color:#ef444433!important}:root.dark .badge-neutral{color:var(--color-neutral)!important;background:#71717a1a!important;border-color:#71717a33!important}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}html{background-color:var(--bg-primary)}body{background-color:var(--bg-primary);color:var(--text-primary);background-image:radial-gradient(at 0 0,#09090b08 0,#0000 50%),radial-gradient(at 100% 100%,#27272a08 0,#0000 50%);min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,h2,h3,h4,.font-display{letter-spacing:-.03em;overflow-wrap:break-word;word-break:break-word;font-family:Inter,sans-serif;font-weight:500}.glass{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius-md);transition:border-color .3s,box-shadow .3s,transform .3s;box-shadow:0 4px 20px #0f172a08}.glass-hover:hover{border-color:var(--card-border-hover);box-shadow:0 10px 30px #0f172a0d, 0 0 15px var(--color-primary-glow);transform:translateY(-2px)}.btn{border-radius:var(--border-radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-family:Inter,sans-serif;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--color-primary), var(--color-secondary));color:#fff;box-shadow:0 4px 12px var(--color-primary-glow)}.btn-primary:hover{opacity:.95;box-shadow:0 6px 20px #09090b4d, 0 0 10px var(--color-secondary-glow);transform:translateY(-1px)}.btn-secondary{background:var(--card-bg);color:var(--text-primary);border:1px solid var(--card-border);box-shadow:0 2px 4px #00000005}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--card-border-hover)}.btn-danger{color:var(--color-below);background:#dc262614;border:1px solid #dc262626}.btn-danger:hover{border-color:var(--color-below);box-shadow:0 0 10px var(--color-below-glow);background:#dc262626}.form-group{margin-bottom:20px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.85rem;font-weight:600;display:block}.input-field{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius-sm);width:100%;color:var(--text-primary);padding:12px 16px;font-family:Inter,sans-serif;font-size:1rem;transition:all .2s}.input-field:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow);outline:none}.input-field::placeholder{color:var(--text-muted)}.badge{text-transform:uppercase;letter-spacing:.02em;border-radius:9999px;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-above{color:var(--color-above);background:#ecfdf5;border:1px solid #05966933}.badge-below{color:var(--color-below);background:#fef2f2;border:1px solid #dc262633}.badge-neutral{color:var(--color-neutral);background:#fafafa;border:1px solid #e4e4e7}.progress-bar-container{background:var(--card-border);border-radius:9999px;width:100%;height:8px;margin:15px 0;position:relative;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--color-primary), var(--color-secondary));border-radius:9999px;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.segmented-progress-bar{background:var(--card-border);border-radius:9999px;width:100%;height:8px;display:flex;position:relative;overflow:hidden}.segmented-progress-bar-subtle{background:var(--card-border);border-radius:9999px;width:100%;height:3px;display:flex;position:relative;overflow:hidden}.progress-segment{flex:1;height:100%;transition:opacity .2s}.progress-segment:hover{opacity:.8}.progress-segment.segment-positive{background-color:var(--color-above)}.progress-segment.segment-negative{background-color:var(--color-below)}.segmented-progress-bar-subtle .progress-segment.segment-positive{background-color:#10b98173}.segmented-progress-bar-subtle .progress-segment.segment-negative{background-color:#ef444473}.progress-segment.segment-future{background-color:#0000}.kpi-cards-grid{flex-wrap:wrap;gap:20px;display:flex}.kpi-cards-grid>*{flex:260px;min-width:0}.dashboard-container{grid-template-columns:350px minmax(0,1fr);gap:30px;max-width:1440px;min-height:calc(100vh - 80px);margin:0 auto;padding:30px 30px 100px;transition:grid-template-columns .2s ease-in-out;display:grid}.period-list-scroll-container{max-height:none!important;overflow-y:visible!important}@media (width>=969px){.dashboard-container.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar-panel-container.sidebar-collapsed,.hide-desktop{display:none!important}}@media (width<=968px){.dashboard-container{grid-template-columns:minmax(0,1fr);padding:20px 20px 100px}.mobile-panel-hidden,.sidebar-panel-container.sidebar-collapsed .period-list-wrapper{display:none!important}.hide-desktop{display:flex!important}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a66;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--card-bg);width:100%;max-width:500px;padding:30px;animation:.3s cubic-bezier(.34,1.56,.64,1) slideUp;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.glow-card-above{background:#f0fdf4!important;border-color:#0596694d!important;box-shadow:0 4px 12px #05966908!important}.glow-card-below{background:#fef2f2!important;border-color:#dc26264d!important;box-shadow:0 4px 12px #dc262608!important}.glow-card-neutral{background:#fafafa!important;border-color:#e4e4e7!important;box-shadow:0 4px 12px #a1a1aa08!important}:root.dark .glow-card-above{background:#10b98114!important;border-color:#10b98133!important;box-shadow:0 4px 12px #0000001a!important}:root.dark .glow-card-below{background:#ef444414!important;border-color:#ef444433!important;box-shadow:0 4px 12px #0000001a!important}:root.dark .glow-card-neutral{background:#71717a14!important;border-color:#71717a33!important;box-shadow:0 4px 12px #0000001a!important}.hover-white:hover{color:var(--text-primary)!important}.hover-rose:hover{color:var(--color-below)!important}.show-mobile{display:none!important}@media (width<=640px){.hide-mobile{display:none!important}.show-mobile{display:inline!important}}.table-card{padding:24px}.table-container{border-radius:var(--border-radius-sm);border:1px solid var(--card-border);background:var(--card-bg);width:100%;margin-top:15px;overflow-x:auto;box-shadow:0 4px 18px #0f172a05}.budget-table{border-collapse:collapse;width:100%;min-width:600px;font-size:.9rem}.budget-table th,.budget-table td{text-align:left;border-bottom:1px solid var(--card-border);padding:12px 16px}.budget-table th{background:var(--bg-secondary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.budget-table tr:last-child td{border-bottom:none}.budget-table tr.today-row{background:#18181b08}.budget-table tr.today-row td{font-weight:600}.app-header{justify-content:space-between;align-items:center;margin:20px 30px 0;padding:16px 24px;display:flex}.periods-error-banner{border-radius:var(--border-radius-sm);color:var(--color-below);background:#fef2f2;border:1px solid #dc262640;align-items:center;gap:10px;margin:20px 30px 0;padding:12px 20px;font-size:.85rem;display:flex;box-shadow:0 2px 4px #00000005}.app-header>div{align-items:center;gap:16px;display:flex}.app-header button{align-items:center;gap:6px;display:flex}.header-btn{align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;display:flex}@media (width<=640px){.table-card{padding:12px 8px!important}.table-container{border-radius:var(--border-radius-xs,6px);margin-top:10px;overflow-x:hidden}.budget-table{table-layout:auto;width:100%;font-size:clamp(.55rem,2.4vw,.72rem);min-width:0!important}.budget-table th,.budget-table td{word-break:keep-all;overflow-wrap:normal;text-align:center;padding:5px 2px;white-space:nowrap!important}.budget-table th{letter-spacing:0;text-align:center;padding:6px 2px;font-size:clamp(.52rem,2.1vw,.65rem);line-height:1.15;white-space:nowrap!important;width:auto!important}.budget-table td{text-align:center;line-height:1.25;white-space:nowrap!important}.today-badge{display:none!important}.table-recorded-cell{white-space:nowrap!important;justify-content:center!important;gap:3px!important}.delete-balance-btn{flex-shrink:0;padding:1px!important}.app-header{flex-direction:row;justify-content:space-between;align-items:center;margin:10px 12px 0;padding:12px 14px}.app-header>div{align-items:center;gap:8px;display:flex}.hide-mobile-text span,.hide-mobile-text .skeleton-pulse{display:none!important}.header-btn{padding:8px!important}.periods-error-banner{text-align:center;flex-direction:column;align-items:stretch;gap:10px;margin:10px 12px 0}.periods-error-banner button{align-self:center}.dashboard-container{gap:20px;padding:12px}}@media (width<=480px){.modal-content{padding:20px 16px}}.animate-in{animation:.4s cubic-bezier(.16,1,.3,1) both slideUpFade}@keyframes slideUpFade{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.btn:active{transform:scale(.97)}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.glass-enhanced-hover{transition:all .3s cubic-bezier(.25,.8,.25,1)}.glass-enhanced-hover:hover{transform:translateY(-4px)scale(1.01);box-shadow:0 12px 24px #00000014}.calculator-btn-trigger{opacity:.85}.calculator-btn-trigger:hover{opacity:1;transform:translateY(-1px);box-shadow:0 4px 10px #0000000d;background:var(--card-bg-hover)!important;border-color:var(--card-border-hover)!important;color:var(--color-primary)!important}.calculator-btn-trigger:active{transform:scale(.95)}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.skeleton-pulse{background:linear-gradient(90deg, var(--bg-secondary) 25%, var(--card-border) 50%, var(--bg-secondary) 75%);border-radius:var(--border-radius-sm);vertical-align:middle;background-size:200% 100%;max-width:100%;animation:1.6s linear infinite skeleton-shimmer;display:inline-block}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.footer-link-btn:hover{color:var(--text-primary)!important;background:var(--bg-secondary)!important}.vibe-check{border-radius:var(--border-radius-lg);background:var(--card-bg);border:1px solid var(--card-border);align-items:center;gap:16px;margin-bottom:24px;padding:16px 20px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 2px 8px #00000005}.vibe-check:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.vibe-icon-wrapper{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.vibe-content{flex-direction:column;gap:4px;display:flex}.vibe-title{margin:0;font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:700}.vibe-message{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.4}.vibe-check-high .vibe-icon-wrapper{color:#059669;background:linear-gradient(135deg,#10b98133,#06b6d433)}.vibe-check-high .vibe-title{background:linear-gradient(135deg,#059669,#0891b2);-webkit-text-fill-color:transparent;-webkit-background-clip:text}:root.dark .vibe-check-high .vibe-title{background:linear-gradient(135deg,#10b981,#22d3ee);-webkit-text-fill-color:transparent;-webkit-background-clip:text}:root.dark .vibe-check-high .vibe-icon-wrapper{color:#34d399}.vibe-check-warn .vibe-icon-wrapper{color:#d97706;background:linear-gradient(135deg,#f59e0b33,#ea580c33)}.vibe-check-warn .vibe-title{background:linear-gradient(135deg,#d97706,#c2410c);-webkit-text-fill-color:transparent;-webkit-background-clip:text}:root.dark .vibe-check-warn .vibe-title{background:linear-gradient(135deg,#fbbf24,#f97316);-webkit-text-fill-color:transparent;-webkit-background-clip:text}:root.dark .vibe-check-warn .vibe-icon-wrapper{color:#fbbf24}.vibe-check-survival .vibe-icon-wrapper{color:#dc2626;background:linear-gradient(135deg,#ef444433,#d946ef33);animation:2s ease-in-out infinite pulse-survival}.vibe-check-survival .vibe-title{background:linear-gradient(135deg,#dc2626,#c026d3);-webkit-text-fill-color:transparent;-webkit-background-clip:text}:root.dark .vibe-check-survival .vibe-title{background:linear-gradient(135deg,#f87171,#e879f9);-webkit-text-fill-color:transparent;-webkit-background-clip:text}:root.dark .vibe-check-survival .vibe-icon-wrapper{color:#f87171}@keyframes pulse-survival{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}
