@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.layout-container{display:flex;min-height:100dvh;width:100%}.mobile-header{display:none;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background-color:hsl(var(--card));border-bottom:1px solid hsl(var(--border));position:fixed;top:0;left:0;right:0;z-index:40}.logo{display:flex;align-items:center;gap:.75rem;font-weight:600;font-size:1.125rem;color:hsl(var(--foreground))}.logo-icon{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--primary-hover)))}.mobile-menu-btn{background:none;border:none;color:hsl(var(--foreground));cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center}.sidebar{width:260px;background-color:hsl(var(--sidebar));border-right:1px solid hsl(var(--border));display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:50;transition:transform .3s ease}.sidebar-logo{padding:2rem 1.5rem;display:flex;align-items:center;gap:.75rem;font-weight:600;font-size:1.25rem;color:hsl(var(--foreground))}.sidebar-nav{padding:0 1rem;display:flex;flex-direction:column;gap:.5rem}.nav-item{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border-radius:var(--radius);color:hsl(var(--muted-foreground));font-weight:500;transition:all .2s ease}.nav-item:hover{background-color:hsl(var(--secondary));color:hsl(var(--foreground))}.nav-item.active{background-color:hsl(var(--primary) / .1);color:hsl(var(--primary))}.main-content{flex:1;margin-left:260px;padding:2rem;min-width:0}.content-wrapper{max-width:1200px;margin:0 auto}.mobile-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;z-index:45;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media(max-width:768px){.mobile-header{display:flex}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0;padding:5rem 1.5rem 2rem}.mobile-overlay{display:block}}.budget-progress-card{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.5rem;transition:border-color .2s ease}.budget-progress-card.warning{border-color:hsl(var(--warning) / .5)}.budget-progress-card.over{border-color:hsl(var(--error) / .5)}.budget-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem}.budget-label{font-size:.8125rem;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.06em;margin-bottom:.25rem}.budget-amount{font-size:1.5rem;font-weight:700;color:hsl(var(--foreground))}.budget-warning-icon{color:hsl(var(--warning));background-color:hsl(var(--warning) / .12);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}.budget-bar-wrapper{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.budget-bar{flex:1;height:8px;background-color:hsl(var(--secondary));border-radius:999px;overflow:hidden}.budget-bar-fill{height:100%;border-radius:999px;transition:width .6s ease;background-color:hsl(var(--primary))}.budget-bar-fill.warning{background-color:hsl(var(--warning))}.budget-bar-fill.over{background-color:hsl(var(--error))}.budget-pct{font-size:.8125rem;font-weight:600;color:hsl(var(--muted-foreground));min-width:36px;text-align:right}.budget-stats{display:flex;gap:2rem}.budget-stat{display:flex;flex-direction:column;gap:.125rem}.budget-stat-label{font-size:.75rem;color:hsl(var(--muted-foreground));font-weight:500}.budget-stat-value{font-size:1rem;font-weight:600}.budget-stat-value.expense{color:hsl(var(--expense))}.budget-stat-value.income{color:hsl(var(--income))}.budget-alert-banner{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem 1rem;border-radius:calc(var(--radius) - 4px);background-color:hsl(var(--error) / .08);color:hsl(var(--error));font-size:.8125rem;font-weight:500}.insight-card{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;border-radius:var(--radius);border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease}.insight-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000014}.insight-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.insight-text{font-size:.875rem;font-weight:500;line-height:1.4}.insight-red{background-color:hsl(var(--error) / .07);border-color:hsl(var(--error) / .15)}.insight-red .insight-icon{background-color:hsl(var(--error) / .12);color:hsl(var(--error))}.insight-red .insight-text{color:hsl(var(--error))}.insight-green{background-color:hsl(var(--success) / .07);border-color:hsl(var(--success) / .15)}.insight-green .insight-icon{background-color:hsl(var(--success) / .12);color:hsl(var(--success))}.insight-green .insight-text{color:hsl(var(--success))}.insight-neutral{background-color:hsl(var(--secondary));border-color:hsl(var(--border))}.insight-neutral .insight-icon{background-color:hsl(var(--muted));color:hsl(var(--muted-foreground))}.insight-neutral .insight-text{color:hsl(var(--muted-foreground))}.insight-primary{background-color:hsl(var(--primary) / .07);border-color:hsl(var(--primary) / .15)}.insight-primary .insight-icon{background-color:hsl(var(--primary) / .12);color:hsl(var(--primary))}.insight-primary .insight-text{color:hsl(var(--primary))}.insight-accent{background-color:hsl(var(--accent) / .1);border-color:hsl(var(--accent) / .2)}.insight-accent .insight-icon{background-color:hsl(var(--accent) / .15);color:hsl(var(--accent))}.insight-accent .insight-text{color:#986a1b}.dark .insight-accent .insight-text{color:hsl(var(--accent))}.category-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500;white-space:nowrap}.category-badge.expense{background-color:hsl(var(--secondary));color:hsl(var(--foreground))}.category-badge.income{background-color:hsl(var(--success) / .15);color:hsl(var(--success))}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background-color:hsl(var(--card));border-radius:var(--radius);border:1px dashed hsl(var(--border))}.empty-icon-wrapper{width:64px;height:64px;border-radius:50%;background-color:hsl(var(--secondary));color:hsl(var(--muted-foreground));display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}.empty-title{font-size:1.125rem;font-weight:600;color:hsl(var(--foreground));margin-bottom:.5rem}.empty-description{font-size:.875rem;color:hsl(var(--muted-foreground));max-width:400px;margin-bottom:1.5rem}.empty-action{margin-top:.5rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:1rem;animation:fadeIn .15s ease}.modal{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:0;max-width:480px;width:100%;box-shadow:0 24px 80px #0003;animation:slideUp .2s ease;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.75rem;border-bottom:1px solid hsl(var(--border))}.modal-title{font-size:1.125rem;font-weight:600;color:hsl(var(--foreground))}.modal-close{background:none;border:none;color:hsl(var(--muted-foreground));cursor:pointer;padding:.375rem;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease}.modal-close:hover{background-color:hsl(var(--secondary));color:hsl(var(--foreground))}.modal-form{padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.875rem;font-weight:500;color:hsl(var(--foreground))}.form-optional{color:hsl(var(--muted-foreground));font-weight:400}.form-input,.form-select{padding:.625rem .875rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);background-color:hsl(var(--background));color:hsl(var(--foreground));font-size:.9375rem;transition:border-color .2s ease,box-shadow .2s ease;outline:none;width:100%}.form-input:focus,.form-select:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.form-input.error,.form-select.error{border-color:hsl(var(--error))}.form-select{cursor:pointer}.type-toggle{display:flex;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);overflow:hidden}.type-btn{flex:1;padding:.625rem 1rem;background:none;border:none;font-size:.9375rem;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;transition:all .2s ease}.type-btn:hover{background-color:hsl(var(--secondary));color:hsl(var(--foreground))}.type-btn.active.expense{background-color:hsl(var(--expense));color:#fff}.type-btn.active.income{background-color:hsl(var(--income));color:#fff}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.5rem}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.dashboard{display:flex;flex-direction:column;gap:1.75rem}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.page-title{font-size:1.75rem;font-weight:700;color:hsl(var(--foreground));line-height:1.2}.page-subtitle{font-size:.9375rem;color:hsl(var(--muted-foreground));margin-top:.25rem}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);transition:box-shadow .2s ease,transform .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000012}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-balance .stat-icon{background-color:hsl(var(--primary) / .1);color:hsl(var(--primary))}.stat-negative .stat-icon{background-color:hsl(var(--error) / .1);color:hsl(var(--error))}.stat-income .stat-icon{background-color:hsl(var(--income) / .1);color:hsl(var(--income))}.stat-expense .stat-icon{background-color:hsl(var(--expense) / .1);color:hsl(var(--expense))}.stat-content{flex:1;min-width:0}.stat-label{font-size:.8125rem;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.06em;margin-bottom:.25rem}.stat-value{font-size:1.375rem;font-weight:700;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.dashboard-section{display:flex;flex-direction:column;gap:.875rem}.section-title{font-size:1.0625rem;font-weight:600;color:hsl(var(--foreground))}.insights-list{display:flex;flex-direction:column;gap:.75rem}.no-insights{font-size:.875rem;color:hsl(var(--muted-foreground));padding:1.5rem;text-align:center;background-color:hsl(var(--card));border-radius:var(--radius);border:1px dashed hsl(var(--border))}.recent-transactions-section{display:flex;flex-direction:column;gap:.875rem}.section-header{display:flex;align-items:center;justify-content:space-between}.section-link{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;color:hsl(var(--primary));transition:gap .2s ease}.section-link:hover{gap:.5rem}.transactions-list{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden}.transaction-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid hsl(var(--border));transition:background-color .15s ease;gap:1rem}.transaction-row:last-child{border-bottom:none}.transaction-row:hover{background-color:hsl(var(--secondary) / .5)}.transaction-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.transaction-meta{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.transaction-note{font-size:.9375rem;font-weight:500;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.transaction-date{font-size:.8125rem;color:hsl(var(--muted-foreground))}.transaction-amount{font-size:1rem;font-weight:600;white-space:nowrap;flex-shrink:0}.transaction-amount.income{color:hsl(var(--income))}.transaction-amount.expense{color:hsl(var(--expense))}.spending-chart-section{display:flex;flex-direction:column;gap:.875rem}.spending-chart-card{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.5rem 1rem 1rem}.chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;height:200px;color:hsl(var(--muted-foreground));font-size:.9375rem}.chart-tooltip{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);padding:.625rem .875rem;box-shadow:0 4px 16px #0000001a}.tooltip-name{font-size:.8125rem;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:.2rem}.tooltip-value{font-size:.9375rem;font-weight:700;color:hsl(var(--foreground))}@media(max-width:900px){.stats-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:600px){.stats-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:stretch}.page-header .btn{width:100%;justify-content:center}.stat-card{padding:1rem}}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .15s ease}.confirm-dialog{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:2rem;max-width:420px;width:calc(100% - 2rem);box-shadow:0 20px 60px #0003;animation:slideUp .2s ease}.confirm-title{font-size:1.125rem;font-weight:600;color:hsl(var(--foreground));margin-bottom:.75rem}.confirm-message{font-size:.9375rem;color:hsl(var(--muted-foreground));line-height:1.6;margin-bottom:1.75rem}.confirm-actions{display:flex;gap:.75rem;justify-content:flex-end}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.transactions-page{display:flex;flex-direction:column;gap:1.75rem}.filters-bar{display:flex;flex-direction:column;gap:.875rem;background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem 1.5rem}.search-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:.875rem;color:hsl(var(--muted-foreground));pointer-events:none}.search-input{width:100%;padding:.625rem .875rem .625rem 2.375rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);background-color:hsl(var(--background));color:hsl(var(--foreground));font-size:.9375rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.search-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.filter-controls{display:flex;flex-wrap:wrap;gap:.625rem;align-items:center}.filter-select{padding:.5rem .75rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);background-color:hsl(var(--background));color:hsl(var(--foreground));font-size:.875rem;cursor:pointer;outline:none;transition:border-color .2s ease}.filter-select:focus{border-color:hsl(var(--primary))}.tx-table-wrapper{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:auto}.tx-table{width:100%;border-collapse:collapse;font-size:.9375rem}.tx-table thead tr{border-bottom:1px solid hsl(var(--border))}.tx-table th{padding:.875rem 1.25rem;text-align:left;font-size:.75rem;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.tx-table td{padding:1rem 1.25rem;border-bottom:1px solid hsl(var(--border));vertical-align:middle}.tx-table tbody tr:last-child td{border-bottom:none}.tx-table tbody tr{transition:background-color .15s ease}.tx-table tbody tr:hover{background-color:hsl(var(--secondary) / .5)}.tx-date{color:hsl(var(--muted-foreground));white-space:nowrap;font-size:.875rem}.tx-note{color:hsl(var(--foreground));max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tx-amount{font-weight:600;white-space:nowrap}.tx-amount.income{color:hsl(var(--income))}.tx-amount.expense{color:hsl(var(--expense))}.tx-actions{display:flex;gap:.25rem;justify-content:flex-end}.type-pill{display:inline-block;padding:.2rem .625rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.type-pill.income{background-color:hsl(var(--income) / .1);color:hsl(var(--income))}.type-pill.expense{background-color:hsl(var(--expense) / .1);color:hsl(var(--expense))}.no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.875rem;padding:4rem 2rem;background-color:hsl(var(--card));border:1px dashed hsl(var(--border));border-radius:var(--radius);color:hsl(var(--muted-foreground));text-align:center;font-size:.9375rem}@media(max-width:768px){.page-header{flex-direction:column;align-items:stretch}.page-header .btn{width:100%;justify-content:center}.tx-table th:nth-child(2),.tx-table td:nth-child(2){display:none}}.analytics-page{display:flex;flex-direction:column;gap:1.75rem}.analytics-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.summary-card{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem 1.5rem}.summary-label{font-size:.8125rem;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.06em;margin-bottom:.375rem}.summary-value{font-size:1.5rem;font-weight:700}.summary-value.income{color:hsl(var(--income))}.summary-value.expense{color:hsl(var(--expense))}.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.chart-card{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.chart-title{font-size:1rem;font-weight:600;color:hsl(var(--foreground))}.chart-container{min-height:300px}.chart-tooltip{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;padding:.75rem 1rem;box-shadow:0 4px 16px #0000001a}.chart-tooltip-label{font-size:.8125rem;color:hsl(var(--muted-foreground));margin-bottom:.25rem}.chart-tooltip-value{font-size:1rem;font-weight:600;color:hsl(var(--foreground))}.breakdown-card{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.breakdown-table-wrapper{overflow:auto}.breakdown-table{width:100%;border-collapse:collapse}.breakdown-table th{padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid hsl(var(--border))}.breakdown-table td{padding:.875rem 1rem;font-size:.9375rem;color:hsl(var(--foreground));border-bottom:1px solid hsl(var(--border))}.breakdown-table tbody tr:last-child td{border-bottom:none}.breakdown-table tbody tr{transition:background-color .15s ease}.breakdown-table tbody tr:hover{background-color:hsl(var(--secondary) / .5)}.category-label{display:flex;align-items:center;gap:.625rem}.cat-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.font-medium{font-weight:600}.text-right{text-align:right!important}.text-muted{color:hsl(var(--muted-foreground))}@media(max-width:900px){.charts-grid{grid-template-columns:1fr}.analytics-summary{grid-template-columns:1fr 1fr}}@media(max-width:600px){.analytics-summary{grid-template-columns:1fr}}.budgets-page{display:flex;flex-direction:column;gap:2rem}.warnings-banner{display:flex;align-items:flex-start;gap:.875rem;padding:1rem 1.25rem;background-color:hsl(var(--warning) / .1);border:1px solid hsl(var(--warning) / .35);border-radius:var(--radius);color:#825b17;animation:slideDown .2s ease}.dark .warnings-banner{color:hsl(var(--warning))}.warnings-banner>svg{flex-shrink:0;margin-top:2px;color:hsl(var(--warning))}.warnings-title{font-size:.9rem;font-weight:600;margin-bottom:.2rem}.warnings-body{font-size:.8125rem;opacity:.85}.overall-card{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem;transition:border-color .2s ease}.overall-card.warning{border-color:hsl(var(--warning) / .5)}.overall-card.over{border-color:hsl(var(--error) / .5)}.overall-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.overall-label{font-size:.8125rem;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.06em;margin-bottom:.625rem}.overall-amount-row{display:flex;align-items:center;gap:.75rem}.overall-amount{font-size:2rem;font-weight:700;color:hsl(var(--foreground))}.overall-edit-row{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.overall-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.meta-item{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:hsl(var(--muted-foreground));font-weight:500}.overall-bar-row{width:100%}.overall-bar{width:100%;height:10px;background-color:hsl(var(--secondary));border-radius:999px;overflow:hidden}.overall-fill{height:100%;border-radius:999px;transition:width .6s ease}.overall-fill.good{background-color:hsl(var(--primary))}.overall-fill.warning{background-color:hsl(var(--warning))}.overall-fill.over{background-color:hsl(var(--error))}.overall-stats{display:flex;gap:2.5rem;flex-wrap:wrap}.overall-stat{display:flex;flex-direction:column;gap:.2rem}.overall-stat-label{font-size:.75rem;color:hsl(var(--muted-foreground));font-weight:500;text-transform:uppercase;letter-spacing:.05em}.overall-stat-value{font-size:1.125rem;font-weight:600;color:hsl(var(--foreground))}.overall-alert{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:calc(var(--radius) - 4px);font-size:.875rem;font-weight:500}.overall-alert.warning{background-color:hsl(var(--warning) / .1);color:#825b17}.dark .overall-alert.warning{color:hsl(var(--warning))}.overall-alert.over{background-color:hsl(var(--error) / .08);color:hsl(var(--error))}.budget-symbol{padding:.5rem .625rem;background-color:hsl(var(--secondary));color:hsl(var(--muted-foreground));font-weight:600;font-size:.9375rem;border-right:1px solid hsl(var(--border))}.budget-input{padding:.5rem .75rem;background:none;border:none;color:hsl(var(--foreground));font-size:.9375rem;font-weight:500;outline:none;width:110px}.add-form-wrapper{background-color:hsl(var(--card));border:1px solid hsl(var(--primary) / .35);border-radius:var(--radius);padding:1.5rem;animation:slideDown .2s ease}.add-form-title{font-size:1rem;font-weight:600;color:hsl(var(--foreground));margin-bottom:1.25rem}.budget-form{display:flex;flex-direction:column;gap:1rem}.bf-field{display:flex;flex-direction:column;gap:.4rem}.bf-label{font-size:.875rem;font-weight:500;color:hsl(var(--foreground))}.bf-select,.bf-input{padding:.575rem .875rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);background-color:hsl(var(--background));color:hsl(var(--foreground));font-size:.9375rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.bf-select:focus,.bf-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.bf-select.error,.bf-input.error{border-color:hsl(var(--error))}.bf-error{font-size:.8125rem;color:hsl(var(--error));font-weight:500}.bf-actions{display:flex;gap:.625rem;justify-content:flex-end;padding-top:.25rem}.category-section{display:flex;flex-direction:column;gap:1rem}.category-section-header{display:flex;align-items:center;gap:.75rem}.section-count{font-size:.8125rem;color:hsl(var(--muted-foreground));background-color:hsl(var(--secondary));padding:.2rem .625rem;border-radius:999px;font-weight:500}.cat-budgets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.cat-budget-card{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.cat-budget-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000012}.cat-budget-card.warning{border-color:hsl(var(--warning) / .45)}.cat-budget-card.over{border-color:hsl(var(--error) / .45)}.cat-budget-card.editing{border-color:hsl(var(--primary) / .4);background-color:hsl(var(--primary) / .03)}.cat-budget-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.cat-budget-name-row{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.cat-budget-name{font-size:1rem;font-weight:600;color:hsl(var(--foreground))}.cat-budget-status-pill{font-size:.7rem;font-weight:600;padding:.175rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.cat-budget-status-pill.good{background-color:hsl(var(--success) / .12);color:hsl(var(--success))}.cat-budget-status-pill.warning{background-color:hsl(var(--warning) / .15);color:#825b17}.dark .cat-budget-status-pill.warning{color:hsl(var(--warning))}.cat-budget-status-pill.over{background-color:hsl(var(--error) / .1);color:hsl(var(--error))}.cat-budget-actions{display:flex;gap:.125rem;flex-shrink:0}.cat-budget-bar-row{display:flex;align-items:center;gap:.625rem}.cat-budget-bar{flex:1;height:7px;background-color:hsl(var(--secondary));border-radius:999px;overflow:hidden}.cat-budget-fill{height:100%;border-radius:999px;transition:width .5s ease}.cat-budget-fill.good{background-color:hsl(var(--success))}.cat-budget-fill.warning{background-color:hsl(var(--warning))}.cat-budget-fill.over{background-color:hsl(var(--error))}.cat-budget-pct{font-size:.8125rem;font-weight:600;color:hsl(var(--muted-foreground));min-width:38px;text-align:right}.cat-budget-stats{display:flex;gap:1.25rem}.cat-stat{display:flex;flex-direction:column;gap:.125rem}.cat-stat-label{font-size:.7rem;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em}.cat-stat-value{font-size:.9375rem;font-weight:600;color:hsl(var(--foreground))}.cat-budget-alert{display:flex;align-items:center;gap:.4rem;font-size:.8125rem;font-weight:500;padding:.5rem .75rem;border-radius:calc(var(--radius) - 4px)}.cat-budget-alert.warning{background-color:hsl(var(--warning) / .1);color:#825b17}.dark .cat-budget-alert.warning{color:hsl(var(--warning))}.cat-budget-alert.over{background-color:hsl(var(--error) / .08);color:hsl(var(--error))}.edit-category-label{font-size:.875rem;color:hsl(var(--muted-foreground));margin-bottom:.5rem}.edit-category-label strong{color:hsl(var(--foreground))}.expense-text{color:hsl(var(--expense))}.remaining-text{color:hsl(var(--income))}.over-text{color:hsl(var(--error))}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.overall-top{flex-direction:column}.overall-meta{align-items:flex-start;flex-direction:row;gap:1rem}.cat-budgets-grid{grid-template-columns:1fr}.overall-stats{gap:1.25rem}}.settings-page{display:flex;flex-direction:column;gap:1.75rem;max-width:720px}.saved-toast{font-size:.875rem;font-weight:500;color:hsl(var(--income));background-color:hsl(var(--income) / .1);padding:.375rem .875rem;border-radius:999px;animation:fadeInOut 2s ease forwards}@keyframes fadeInOut{0%{opacity:0}15%{opacity:1}80%{opacity:1}to{opacity:0}}.settings-section{display:flex;flex-direction:column;gap:.75rem}.settings-section-title{font-size:.9375rem;font-weight:600;color:hsl(var(--foreground));padding-bottom:.25rem;border-bottom:1px solid hsl(var(--border))}.settings-section-title.danger{color:hsl(var(--error))}.settings-card{background-color:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.settings-row-info{flex:1}.settings-row-label{font-size:.9375rem;font-weight:500;color:hsl(var(--foreground));margin-bottom:.25rem}.settings-row-desc{font-size:.8125rem;color:hsl(var(--muted-foreground))}.theme-toggle{position:relative;display:flex;align-items:center;background-color:hsl(var(--secondary));border:1px solid hsl(var(--border));border-radius:999px;padding:3px;cursor:pointer;gap:0;transition:background-color .2s ease}.theme-option{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:hsl(var(--muted-foreground));z-index:1;position:relative;transition:color .2s ease}.theme-thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);background-color:hsl(var(--card));border-radius:999px;box-shadow:0 1px 4px #0000001a;transition:left .2s ease}.theme-toggle.dark-active .theme-thumb{left:50%}.theme-toggle .theme-option:first-child{color:hsl(var(--foreground))}.theme-toggle.dark-active .theme-option:first-child{color:hsl(var(--muted-foreground))}.theme-toggle.dark-active .theme-option:last-child{color:hsl(var(--foreground))}.currency-options{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.currency-option{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);background:none;cursor:pointer;text-align:left;transition:all .2s ease;color:hsl(var(--foreground))}.currency-option:hover{border-color:hsl(var(--primary) / .4);background-color:hsl(var(--primary) / .04)}.currency-option.active{border-color:hsl(var(--primary));background-color:hsl(var(--primary) / .07)}.currency-symbol{font-size:1.125rem;font-weight:700;color:hsl(var(--primary));min-width:20px}.currency-label{font-size:.875rem;color:hsl(var(--foreground))}.budget-input-group{display:flex;align-items:center;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.budget-input-group:focus-within{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.budget-symbol{padding:.625rem .75rem;background-color:hsl(var(--secondary));color:hsl(var(--muted-foreground));font-weight:600;font-size:.9375rem;border-right:1px solid hsl(var(--border))}.budget-input{padding:.625rem .875rem;background:none;border:none;color:hsl(var(--foreground));font-size:.9375rem;font-weight:500;outline:none;width:120px}.categories-list{display:flex;flex-direction:column;gap:0}.category-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid hsl(var(--border))}.category-row:last-child{border-bottom:none}.category-name{font-size:.9375rem;color:hsl(var(--foreground));font-weight:500}.category-default-tag{font-size:.75rem;color:hsl(var(--muted-foreground));background-color:hsl(var(--secondary));padding:.2rem .625rem;border-radius:999px;font-weight:500}.add-category-form{display:flex;gap:.75rem;margin-top:.25rem}.add-category-form .form-input{flex:1}.form-input{padding:.625rem .875rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);background-color:hsl(var(--background));color:hsl(var(--foreground));font-size:.9375rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.form-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.form-input.error{border-color:hsl(var(--error))}.form-error{font-size:.8125rem;color:hsl(var(--error));font-weight:500}.export-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.export-btn{flex-shrink:0;white-space:nowrap;display:inline-flex;align-items:center;gap:.5rem}.export-divider{height:1px;background-color:hsl(var(--border));margin:0 -1.5rem}.danger-zone .settings-card{border-color:hsl(var(--error) / .25);background-color:hsl(var(--error) / .02)}.btn-ghost.danger:hover{background-color:hsl(var(--error) / .1);color:hsl(var(--error))}@media(max-width:600px){.currency-options{grid-template-columns:1fr}.settings-row{flex-direction:column;align-items:flex-start}.theme-toggle{width:100%;justify-content:center}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:calc(var(--radius) - 4px);font-size:.9375rem;font-weight:500;cursor:pointer;border:none;transition:all .2s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:hover:not(:disabled){background-color:hsl(var(--primary-hover));transform:translateY(-1px);box-shadow:0 4px 12px hsl(var(--primary) / .3)}.btn-secondary{background-color:hsl(var(--secondary));color:hsl(var(--foreground));border:1px solid hsl(var(--border))}.btn-secondary:hover:not(:disabled){background-color:hsl(var(--muted))}.btn-danger{background-color:hsl(var(--error));color:#fff}.btn-danger:hover:not(:disabled){background-color:#ed2c2c;transform:translateY(-1px);box-shadow:0 4px 12px hsl(var(--error) / .3)}.btn-ghost{background:none;color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border))}.btn-ghost:hover:not(:disabled){background-color:hsl(var(--secondary));color:hsl(var(--foreground))}.btn-icon{padding:.5rem;width:36px;height:36px}.btn-sm{padding:.375rem .875rem;font-size:.8125rem}:root{--background: 199 20% 98%;--foreground: 225 28% 14%;--card: 0 0% 100%;--card-foreground: 225 28% 14%;--popover: 0 0% 100%;--popover-foreground: 225 28% 14%;--primary: 165 81% 26%;--primary-hover: 167 82% 21%;--primary-foreground: 0 0% 100%;--secondary: 220 13% 91%;--secondary-foreground: 225 28% 14%;--muted: 220 13% 91%;--muted-foreground: 220 9% 46%;--accent: 38 92% 50%;--accent-foreground: 225 28% 14%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 220 13% 91%;--input: 220 13% 91%;--ring: 165 81% 26%;--sidebar: 0 0% 100%;--income: 161 94% 30%;--expense: 0 72% 51%;--success: 160 84% 39%;--warning: 38 92% 50%;--error: 0 84% 60%;--app-font-sans: "Inter", sans-serif;--radius: .75rem}.dark{--background: 225 21% 7%;--foreground: 210 40% 96%;--card: 225 28% 14%;--card-foreground: 210 40% 96%;--popover: 225 28% 14%;--popover-foreground: 210 40% 96%;--primary: 164 84% 35%;--primary-hover: 164 84% 40%;--primary-foreground: 225 21% 7%;--secondary: 218 23% 23%;--secondary-foreground: 210 40% 96%;--muted: 218 23% 23%;--muted-foreground: 215 20% 65%;--accent: 38 92% 50%;--accent-foreground: 210 40% 96%;--destructive: 0 72% 51%;--destructive-foreground: 210 40% 96%;--border: 218 23% 23%;--input: 218 23% 23%;--ring: 164 84% 35%;--sidebar: 215 23% 10%;--income: 161 94% 30%;--expense: 0 72% 51%;--success: 160 84% 39%;--warning: 38 92% 50%;--error: 0 84% 60%}*{box-sizing:border-box}body{font-family:var(--app-font-sans);background-color:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4,h5,h6,p{margin:0}button,input,select,textarea{font-family:inherit}a{text-decoration:none;color:inherit}
