@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--bg-dark:#0f1115;--bg-panel:#1e212899;--border-color:#ffffff14;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-primary:#6366f1;--accent-hover:#4f46e5;--accent-glow:#6366f133;--income-color:#10b981;--income-glow:#10b98133;--outflow-color:#ef4444;--outflow-glow:#ef444433;--glass-shadow:0 4px 30px #00000080;--glass-blur:blur(12px)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-primary);background-image:radial-gradient(circle at 15%,#6366f114 0%,#0000 50%),radial-gradient(circle at 85% 30%,#10b9810d 0%,#0000 50%);flex-direction:column;min-height:100vh;font-family:Inter,sans-serif;display:flex;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{background:var(--bg-panel);border:1px solid var(--border-color);color:var(--text-primary);box-sizing:border-box;border-radius:8px;outline:none;max-width:100%;padding:.75rem 1rem;font-family:inherit;transition:all .2s}input,select{height:3rem}input[type=date],input[type=month]{height:auto}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:1.25rem;padding-right:3rem!important}textarea{min-height:5rem}input:focus,select:focus,textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.glass-panel{background:var(--bg-panel);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);box-shadow:var(--glass-shadow);border-radius:16px;min-width:0}.glass-card{-webkit-backdrop-filter:blur(8px);background:#ffffff08;border:1px solid #ffffff0d;border-radius:12px;transition:transform .2s,background .2s}.glass-card:hover{background:#ffffff0d;transform:translateY(-2px)}.dashboard-summary-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.summary-card{border-radius:16px;flex-direction:column;padding:1.5rem;display:flex}.summary-card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}.summary-card-value{letter-spacing:-.02em;margin-top:.5rem;font-size:2.25rem;font-weight:700;line-height:1.1}.btn-primary{background:var(--accent-primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 4px 12px var(--accent-glow);transform:translateY(-1px)}.btn-secondary{color:var(--text-primary);background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-secondary:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.btn-danger-outline{color:#fca5a5;background:#ef44440a;border:1px solid #ef444440;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-danger-outline:hover{color:#ff8a8a;background:#ef44441f;border-color:#ef444473;transform:translateY(-1px);box-shadow:0 4px 12px #ef444414}.layout-container{align-items:stretch;width:100%;max-width:100vw;min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;background:#0f1115cc;flex-direction:column;gap:2rem;width:270px;min-width:270px;height:100vh;padding:2rem 1.5rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo{color:var(--text-primary);align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;display:flex}.sidebar-logo span{color:var(--accent-primary)}.nav-links{flex-direction:column;gap:.5rem;display:flex}.nav-link{color:var(--text-secondary);border-radius:8px;padding:.75rem 1rem;font-weight:500;transition:all .2s}.nav-link:hover{color:var(--text-primary);background:#ffffff0d}.nav-link.active{color:var(--accent-primary);background:var(--accent-glow)}.main-content{flex-direction:column;flex:1;gap:2rem;min-width:0;padding:2rem 4rem;display:flex}.page-header{justify-content:space-between;align-items:center;display:flex}.dashboard-header{z-index:100;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);background:#0f1115bf;justify-content:space-between;align-items:center;margin:-2rem -4rem 2rem;padding:1.5rem 4rem;display:flex;position:sticky;top:0}.page-title{font-size:2rem;font-weight:600}.dashboard-header-controls{align-items:center;gap:1rem;display:flex}.dashboard-date-input{border:1px solid var(--border-color);background:var(--bg-panel);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:border-color .2s,box-shadow .2s}.dashboard-date-input:focus,.dashboard-date-input:hover{border-color:#6366f166}.table-container{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border-color);padding:1rem}th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:500}td{font-size:.95rem}tr{transition:background .2s}tbody tr:hover{background:#ffffff05}.badge{text-transform:uppercase;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.badge-income{background:var(--income-glow);color:var(--income-color);border:1px solid #10b9814d}.badge-outflow{background:var(--outflow-glow);color:var(--outflow-color);border:1px solid #ef44444d}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(24px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-container{pointer-events:none;flex-direction:column;gap:.75rem;width:100%;max-width:380px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;bottom:2rem;right:2rem}.toast-item{pointer-events:auto;-webkit-backdrop-filter:blur(12px);color:var(--text-primary);background:#1e2128d9;border-radius:10px;align-items:center;gap:.75rem;padding:1rem 1.25rem;font-size:.875rem;font-weight:500;animation:.3s cubic-bezier(.16,1,.3,1) forwards toastSlideIn;display:flex;position:relative;overflow:hidden}@media (max-width:768px){.toast-container{bottom:calc(1.5rem + env(safe-area-inset-bottom));align-items:center;width:auto;max-width:380px;margin:0 auto;left:1rem;right:1rem}}.animate-fade-in{animation:.4s forwards fadeIn}.spinner{border:2px solid #ffffff1a;border-left-color:var(--accent-primary);border-radius:50%;width:1.5rem;height:1.5rem;animation:1s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{z-index:9999;background:#000000b3;justify-content:center;align-items:center;width:100vw;height:100vh;padding:1.5rem;animation:.2s forwards fadeIn;display:flex;position:fixed;top:0;left:0}.modal-container{border:1px solid var(--border-color);background:#1a1d24;border-radius:1.25rem;flex-direction:column;width:min(820px,100%);max-height:90vh;animation:.25s forwards modalSlideIn;display:flex;overflow:hidden;box-shadow:0 24px 60px #000000b3}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.125rem 1.5rem;display:flex}.modal-title{font-size:1.0625rem;font-weight:600}.modal-close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:.375rem;padding:.375rem .5rem;font-size:.875rem;line-height:1;transition:color .2s,background .2s}.modal-close-btn:hover{color:var(--text-primary);background:#ffffff0f}.modal-body{flex:1;padding:1.5rem;overflow-y:auto}.form-group{flex-direction:column;gap:.4rem;width:100%;display:flex}.form-label{color:var(--text-secondary);letter-spacing:.03em;font-size:.8125rem;font-weight:500}.form-input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);box-sizing:border-box;background:#ffffff0d;border-radius:8px;outline:none;padding:.65rem .875rem;font-family:inherit;font-size:.9375rem;transition:border-color .2s,box-shadow .2s}.form-input::placeholder{color:#94a3b880}.form-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.login-page{background:radial-gradient(ellipse at top, #6366f126 0%, var(--bg-dark) 60%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--bg-panel);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);width:100%;max-width:400px;box-shadow:var(--glass-shadow);border-radius:1.25rem;padding:2.5rem 2rem;animation:.4s forwards fadeIn}.login-logo{text-align:center;margin-bottom:2rem}.login-logo-icon{margin-bottom:.5rem;font-size:2.5rem;display:block}.login-title{background:linear-gradient(135deg, #fff, var(--accent-primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.75rem;font-weight:700}.login-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.875rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.login-error{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d;border-radius:.5rem;padding:.75rem 1rem;font-size:.875rem}.login-btn{justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.25rem;padding:.75rem;font-size:1rem;display:flex}.sidebar-footer{border-top:1px solid var(--border-color);align-items:center;gap:.75rem;margin-top:auto;padding:1rem 1.5rem;display:flex}.user-avatar{background:linear-gradient(135deg, var(--accent-primary), #8b5cf6);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:.875rem;font-weight:700;display:flex}.user-info{flex:1;min-width:0}.user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.user-email{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.logout-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:.375rem;align-items:center;padding:.25rem;font-size:1rem;transition:color .2s,background .2s;display:flex}.logout-btn:hover{color:var(--outflow-color);background:#ef44441a}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.form-grid-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1rem;display:grid}.line-item-row{grid-template-columns:minmax(0,2fr) 70px 100px minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:.75rem;display:grid}.line-item-delete-wrapper{align-items:flex-end;padding-bottom:2px;display:flex}.line-item-delete-btn{color:var(--outflow-color);cursor:pointer;background:#ef444414;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.5rem .625rem;transition:all .2s;display:flex}.line-item-delete-btn:hover{background:#ef444429;transform:scale(1.05)}.mobile-top-bar{display:none}.search-badge-link{color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff14;border-radius:4px;align-items:center;padding:.25rem .5rem;font-size:.75rem;text-decoration:none;transition:all .2s;display:inline-flex}.search-badge-link:hover{background:var(--accent-glow);color:var(--accent-primary);border-color:#6366f14d;transform:translateY(-1px)}.table-scroll-container{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;display:block;overflow-x:auto}@media (max-width:768px){.layout-container{flex-direction:column}.dashboard-summary-grid{grid-template-columns:1fr;gap:.75rem;margin-bottom:1.5rem}.summary-card{border-radius:12px;flex-direction:row;justify-content:space-between;align-items:center;padding:1rem 1.25rem}.summary-card-title{font-size:.8125rem}.summary-card-value{margin-top:0;font-size:1.35rem}.sidebar{display:none!important}.mobile-top-bar{width:100%;height:56px;-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border-color);z-index:1000;background:#0f1115e6;justify-content:space-between;align-items:center;padding:0 1rem;position:sticky;top:0;left:0;display:flex!important}.mobile-top-bar-logo{color:var(--text-primary);font-size:1.35rem;font-weight:700}.mobile-top-bar-logo span{color:var(--accent-primary)}.mobile-burger-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:space-between;width:20px;height:14px;padding:0;display:flex}.burger-bar{background-color:var(--text-primary);border-radius:2px;width:100%;height:2px;transition:all .2s}.mobile-nav-backdrop{-webkit-backdrop-filter:blur(4px);z-index:9998;background:#0009;width:100vw;height:100vh;animation:.25s forwards fadeIn;position:fixed;top:0;left:0}.mobile-nav-drawer{border-right:1px solid var(--border-color);z-index:9999;background:#0f1115;flex-direction:column;width:min(290px,80vw);height:100vh;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:10px 0 40px #000c}.mobile-nav-drawer.open{transform:translate(0)}.mobile-nav-drawer-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.5rem 1.25rem;display:flex}.mobile-nav-drawer-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.25rem;line-height:1;transition:color .2s}.mobile-nav-drawer-close:hover{color:var(--text-primary)}.mobile-nav-drawer-links{flex-direction:column;flex:1;gap:.5rem;padding:1.5rem 1rem;display:flex}.mobile-nav-link{color:var(--text-secondary);border-radius:8px;padding:.75rem 1rem;font-size:.95rem;font-weight:500;transition:all .2s}.mobile-nav-link:hover{color:var(--text-primary);background:#ffffff0a}.mobile-nav-link.active{color:var(--accent-primary);background:var(--accent-glow)}.mobile-nav-drawer-footer{border-top:1px solid var(--border-color);background:#ffffff03;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.main-content{gap:1.5rem;padding:1.5rem 1rem}.table-scroll-container{border-radius:8px;width:calc(100% + 2rem);max-width:calc(100% + 2rem);margin:0 -1rem}.form-grid-2,.form-grid-2-1{grid-template-columns:minmax(0,1fr)}.line-item-row{grid-template-columns:1fr 1fr;gap:.875rem;position:relative}.line-item-row>div:first-child{grid-column:span 2}.line-item-row>div:nth-child(2),.line-item-row>div:nth-child(3),.line-item-row>div:nth-child(4),.line-item-row>div:nth-child(5){grid-column:span 1}.line-item-delete-wrapper{align-items:center;padding-bottom:0;position:absolute;top:-.25rem;right:-.25rem}.line-item-delete-btn{border-radius:50%!important;width:28px!important;height:28px!important;padding:0!important}.modal-container{border:none;border-radius:0;flex-direction:column;width:100%;height:100dvh;max-height:100dvh;display:flex;overflow:hidden}.modal-backdrop{padding:0}.modal-body{padding-bottom:calc(4rem + env(safe-area-inset-bottom));overflow-x:hidden}.page-title{font-size:1.5rem}.transaction-row-header{flex-wrap:wrap;gap:.5rem!important}.transaction-row-amount{font-size:1.25rem!important}.transaction-row-right{width:100%;justify-content:space-between!important}.glass-panel{padding:1rem!important}}.recharts-pie-sector:focus,.recharts-sector:focus,path:focus,g:focus,.recharts-wrapper:focus,svg:focus{box-shadow:none!important;outline:none!important}.scrollable-table-container{max-height:250px;padding-right:.35rem;overflow:auto}.scrollable-table-container::-webkit-scrollbar{width:6px;height:6px}.scrollable-table-container::-webkit-scrollbar-track{background:#ffffff05;border-radius:3px}.scrollable-table-container::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px;transition:background .2s}.scrollable-table-container::-webkit-scrollbar-thumb:hover{background:#ffffff40}.budgets-grid{grid-template-columns:1fr 1.25fr;align-items:start;gap:2rem;display:grid}.budgets-sticky-panel{flex-direction:column;gap:1.5rem;display:flex;position:sticky;top:2rem}@media (max-width:960px){.budgets-grid{grid-template-columns:1fr}.budgets-sticky-panel{position:relative!important;top:0!important}}.switch-container{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-primary);align-items:center;gap:.75rem;font-size:.875rem;font-weight:500;display:flex}.switch{flex-shrink:0;width:40px;height:22px;display:inline-block;position:relative}.switch input{opacity:0!important;width:0!important;height:0!important;min-height:0!important;box-shadow:none!important;appearance:none!important;background:0 0!important;border:none!important;margin:0!important;padding:0!important}.slider{cursor:pointer;background-color:#ffffff1f;border:1px solid #fff3;border-radius:9999px;transition:all .25s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.slider:before{content:"";background-color:#94a3b8;border-radius:50%;width:14px;height:14px;transition:all .25s cubic-bezier(.4,0,.2,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch input:checked+.slider{background-color:var(--accent-primary);border-color:var(--accent-primary)}.switch input:checked+.slider:before{background-color:#fff;transform:translate(18px)}.switch input:focus-visible+.slider{outline:2px solid var(--accent-primary);outline-offset:2px}.mobile-add-fab{display:none}@media (max-width:768px){.desktop-add-btn{display:none!important}.mobile-add-fab{z-index:1001;cursor:pointer;justify-content:center;align-items:center;background:var(--accent-primary)!important;color:#fff!important;border:none!important;border-radius:9999px!important;gap:.25rem!important;height:32px!important;padding:0 .875rem!important;font-size:.8rem!important;font-weight:600!important;transition:transform .2s,background-color .2s!important;display:inline-flex!important;position:fixed!important;top:.85rem!important;right:1rem!important;box-shadow:0 4px 12px #6366f14d!important}.mobile-add-fab span{margin-top:-1px;font-size:1.1rem!important;font-weight:500!important;line-height:1!important}.mobile-add-fab:active{background:var(--accent-hover)!important;transform:scale(.95)!important}.dashboard-header{z-index:100;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);background:#0f1115d9;flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem;width:100%;margin:-1.5rem -1rem 1.5rem;padding:1rem;display:flex;position:sticky;top:0}.dashboard-header-controls{flex:unset;align-items:center;gap:.5rem;display:flex}.dashboard-date-input{max-width:130px;padding:.4rem .6rem;font-size:.85rem}}
