@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";
:root{--bg-app:#06080c;--bg-surface:#0b0f17;--bg-surface-elevated:#111724;--bg-surface-hover:#161e2e;--border-subtle:#ffffff12;--border-strong:#ffffff24;--border-focus:#10b98180;--brand-green:#10b981;--brand-green-hover:#059669;--brand-green-light:#34d399;--brand-green-bg:#10b9811a;--brand-green-border:#10b98140;--brand-green-glow:#10b98133;--pillar-calendar-accent:#8b5cf6;--pillar-income-primary:#10b981;--pillar-income-bg:#10b98114;--pillar-income-border:#10b98133;--pillar-expense-primary:#f43f5e;--pillar-expense-bg:#f43f5e14;--pillar-expense-border:#f43f5e33;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--sidebar-width:250px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--transition-fast:.15s cubic-bezier(.16, 1, .3, 1);--transition-normal:.25s cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable}body{background-color:var(--bg-app);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;letter-spacing:-.01em;min-height:100vh;line-height:1.5}.tabular-nums{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-layout{background:var(--bg-app);width:100%;min-height:100vh;display:flex}.main-workspace{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));box-sizing:border-box;flex:1;padding:2.5rem 3.5rem}.workspace-content{width:100%;max-width:1280px;margin:0 auto}.sidebar-container{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border-subtle);z-index:60;transition:transform var(--transition-normal);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-top{align-items:center;gap:.75rem;padding:1.5rem 1.25rem;display:flex}.logo{color:var(--text-primary);align-items:center;gap:.75rem;font-size:1.25rem;font-weight:800;text-decoration:none;display:flex}.logo-badge{background:linear-gradient(135deg, var(--brand-green), var(--brand-green-hover));color:#fff;width:34px;height:34px;box-shadow:0 0 16px var(--brand-green-glow);border-radius:10px;justify-content:center;align-items:center;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:.35rem;padding:0 .8rem;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--text-secondary);min-height:42px;transition:all var(--transition-fast);border:1px solid #0000;align-items:center;gap:.85rem;padding:.7rem .9rem;font-size:.88rem;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.nav-link.active{background:var(--brand-green-bg);border-color:var(--brand-green-border);color:var(--brand-green-light);font-weight:600}.sidebar-footer{border-top:1px solid var(--border-subtle);background:var(--bg-surface);padding:1.25rem 1.25rem 2.75rem}.mobile-header{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:50;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:none;position:sticky;top:0}.sidebar-overlay{display:none}@media (max-width:768px){.mobile-header{display:flex}.sidebar-container{transform:translate(-100%)}.sidebar-container.mobile-open{transform:translate(0)}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:55;background:#000000bf;display:block;position:fixed;inset:0}.main-workspace{width:100%;margin-left:0;padding:1.5rem 1rem}}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;width:100%;margin-bottom:2rem;display:grid}.metric-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.5rem}.metric-title{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;align-items:center;margin-bottom:.6rem;font-size:.78rem;font-weight:600;display:flex}.metric-value{letter-spacing:-.03em;font-size:1.85rem;font-weight:800}.metric-value.income{color:var(--pillar-income-primary)}.metric-value.expense{color:var(--pillar-expense-primary)}.metric-value.balance{color:var(--text-primary)}.calendar-wrapper{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;overflow:hidden;box-shadow:0 12px 40px #00000040}.calendar-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.calendar-weekdays-grid{background:var(--bg-surface-elevated);border-bottom:1px solid var(--border-subtle);text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.weekday-cell{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:.75rem .5rem;font-size:.72rem;font-weight:700}.calendar-days-grid{background:var(--border-subtle);grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(130px,1fr);gap:1px;display:grid}.day-cell{background:var(--bg-surface);transition:background-color var(--transition-fast), border-color var(--transition-fast);cursor:pointer;border:2px solid #0000;flex-direction:column;justify-content:space-between;min-height:130px;padding:.65rem;display:flex}.day-cell:hover{background:var(--bg-surface-hover);border-color:var(--brand-green-border)}.day-cell.other-month{opacity:.25}.day-cell.today{border-color:var(--brand-green);background:#10b9810f}.day-cell-top{justify-content:space-between;align-items:center;margin-bottom:.4rem;display:flex}.day-number{color:var(--text-secondary);font-size:.85rem;font-weight:700}.today .day-number{background:var(--brand-green);color:#fff;width:22px;height:22px;box-shadow:0 0 10px var(--brand-green-glow);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;display:flex}.day-balance-badge{transition:all var(--transition-fast);border-radius:4px;padding:.15rem .45rem;font-size:.7rem;font-weight:600}.day-balance-badge.stagnant{color:var(--text-muted);background:#ffffff0a;border:1px solid #ffffff0d}.day-balance-badge.inflow{color:var(--brand-green);background:#10b9811f;border:1px solid #10b98140}.day-balance-badge.outflow{color:var(--pillar-expense-primary);background:#ef44441f;border:1px solid #ef444440}.day-balance-badge.overdraft{color:#fff;background:#ef4444;box-shadow:0 0 10px #ef444466}.chip{border-radius:var(--radius-sm);transition:transform var(--transition-fast);justify-content:space-between;align-items:center;margin-bottom:.25rem;padding:.25rem .45rem;font-size:.72rem;font-weight:600;display:flex}.chip:hover{transform:scale(1.02)}.chip.income{background:var(--pillar-income-bg);border:1px solid var(--pillar-income-border);color:var(--pillar-income-primary)}.chip.expense{background:var(--pillar-expense-bg);border:1px solid var(--pillar-expense-border);color:var(--pillar-expense-primary)}.chip.projected{opacity:.85;border-style:dashed}.btn{border-radius:var(--radius-sm);cursor:pointer;min-height:42px;transition:all var(--transition-fast);border:1px solid #0000;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--brand-green);color:#fff}.btn-primary:hover{background:var(--brand-green-hover);box-shadow:0 0 16px var(--brand-green-glow)}.btn-secondary{background:var(--bg-surface-elevated);color:var(--text-primary);border-color:var(--border-subtle)}.btn-secondary:hover{background:var(--bg-surface-hover);border-color:var(--border-strong)}.input{background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-size:.9rem;font-family:var(--font-sans);min-height:42px;transition:border-color var(--transition-fast);outline:none;padding:.65rem .9rem}.input:focus{border-color:var(--brand-green)}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#000000c7;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:520px;padding:1.85rem;box-shadow:0 20px 50px #00000080}.drawer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:90;background:#0009;position:fixed;inset:0}.drawer-container{background:var(--bg-surface);border-left:1px solid var(--border-strong);z-index:95;flex-direction:column;width:100%;max-width:440px;padding:1.75rem;animation:.3s cubic-bezier(.16,1,.3,1) slideDrawer;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-15px 0 40px #00000080}@keyframes slideDrawer{0%{transform:translate(100%)}to{transform:translate(0)}}.form-group{flex-direction:column;gap:.45rem;width:100%;margin-bottom:1.25rem;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:600;line-height:1.2}.modal-title{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:.75rem;font-size:1.25rem;font-weight:700;display:flex}.modal-close-btn{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;min-height:32px!important;max-height:32px!important}.modal-close-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-strong)}.modal-close-btn:active{transform:scale(.92)}.list-item-card{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);justify-content:space-between;align-items:center;padding:1.25rem;display:flex}.modal-content{animation:.25s cubic-bezier(.16,1,.3,1) modalFadeIn}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.96)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.btn:active{transform:scale(.97)}.spin{animation:1.2s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.profile-badge-container{background:var(--bg-surface-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);transition:border-color var(--transition-fast), background-color var(--transition-fast);align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.profile-badge-container:hover{border-color:var(--border-strong);background:var(--bg-surface-hover)}.profile-badge-avatar{background:linear-gradient(135deg, var(--brand-green), var(--brand-green-hover));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;display:flex;box-shadow:0 0 10px #10b98126}.profile-badge-info{flex:1;overflow:hidden}a.profile-badge-container,a.profile-badge-container:visited,a.profile-badge-container:hover,a.profile-badge-container:active{color:var(--text-primary)!important;text-decoration:none!important}.profile-badge-name{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden;color:var(--text-primary)!important}.profile-badge-status{color:var(--brand-green);align-items:center;gap:.25rem;margin-top:.05rem;font-size:.7rem;display:flex}input:-webkit-autofill{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:0 0 0px 1000px var(--bg-surface) inset!important}input:-webkit-autofill:hover{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:0 0 0px 1000px var(--bg-surface) inset!important}input:-webkit-autofill:focus{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:0 0 0px 1000px var(--bg-surface) inset!important}input:-webkit-autofill:active{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:0 0 0px 1000px var(--bg-surface) inset!important}.skeleton-shimmer{background:linear-gradient(90deg, var(--bg-surface-elevated) 0%, var(--bg-surface-hover) 50%, var(--bg-surface-elevated) 100%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.6s ease-in-out infinite shimmer;display:inline-block}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}
