@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Sora:wght@400;500;600;700&display=swap");:root{--background:220 33% 98%;--foreground:222 35% 16%;--card:0 0% 100%;--card-foreground:222 35% 16%;--primary:208 70% 38%;--primary-foreground:0 0% 100%;--secondary:220 32% 96%;--secondary-foreground:222 35% 16%;--muted:220 20% 94%;--muted-foreground:220 12% 42%;--accent:200 56% 92%;--accent-foreground:222 35% 16%;--success:152 55% 34%;--danger:4 70% 52%;--destructive:4 70% 52%;--destructive-foreground:0 0% 100%;--border:220 20% 90%;--input:220 20% 88%;--ring:208 70% 38%;--radius:20px;--shadow:0 18px 34px -24px hsl(220 30% 20%/0.22);--shadow-soft:0 10px 24px -18px hsl(220 30% 20%/0.18);--shadow-tight:0 10px 24px -20px hsl(220 30% 20%/0.14)}*{box-sizing:border-box}body,html{padding:0;margin:0;min-height:100%;background-color:hsl(var(--background));background-image:radial-gradient(900px circle at 12% -10%,hsl(200 70% 94%) 0,transparent 55%),radial-gradient(720px circle at 100% 0,hsl(210 55% 94%) 0,transparent 58%),repeating-linear-gradient(0deg,hsl(220 30% 95%/.6) 0 1px,transparent 1px 42px),repeating-linear-gradient(90deg,hsl(220 30% 95%/.6) 0 1px,transparent 1px 42px);color:hsl(var(--foreground));font-family:Sora,Segoe UI,Helvetica Neue,Arial,sans-serif}a{color:inherit;text-decoration:none}.container{max-width:1280px;margin:0 auto;padding:28px 18px 72px}.nav{justify-content:space-between;gap:12px}.brand,.nav{display:flex;align-items:center}.brand{gap:10px;font-weight:600;letter-spacing:.2px}.brandDot{width:12px;height:12px;border-radius:999px;background:linear-gradient(120deg,hsl(var(--primary)),hsl(192 68% 44%));box-shadow:0 0 0 4px hsl(var(--card))}.navActions{display:flex;gap:10px;align-items:center}.badge{gap:8px;padding:7px 10px;border:1px solid hsl(var(--border));background-color:hsl(var(--card));font-weight:600}.badge,.chip{display:inline-flex;align-items:center;border-radius:999px;color:hsl(var(--muted-foreground));font-size:12px}.chip{gap:6px;padding:6px 10px;background:hsl(var(--card));border:1px solid hsl(var(--border));transition:all .2s ease}.chipRow{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chipActive{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:transparent}.chipMonth{text-transform:capitalize}.chipCurrent{background:hsl(var(--primary)/.1);color:hsl(var(--primary));border-color:hsl(var(--primary)/.25)}.chipAction{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:transparent;font-weight:600}.pillTag{gap:6px;padding:6px 10px;background:hsl(var(--primary)/.12);color:hsl(var(--primary));font-size:12px;margin-top:10px}.pill,.pillTag{display:inline-flex;align-items:center;border-radius:999px;font-weight:600}.pill{justify-content:center;padding:8px 14px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:13px;line-height:1;white-space:nowrap}.h1{font-size:46px;line-height:1.1;margin:0}@media (max-width:600px){.h1{font-size:36px}}.p{margin:14px 0 0;color:hsl(var(--muted-foreground));font-size:16px;line-height:1.6}.card{background:linear-gradient(180deg,hsl(var(--card)) 0,hsl(220 30% 99%) 100%);border:1px solid hsl(var(--border)/.9);border-radius:var(--radius);box-shadow:var(--shadow)}.card-header{padding:1.4rem 1.6rem .8rem;display:flex;justify-content:space-between;gap:12px}.card-content{padding:.9rem 1.6rem 1.6rem}.card-title{font-size:1.1rem;font-weight:650;color:hsl(var(--card-foreground));letter-spacing:-.01em}.card-description{font-size:.875rem;color:hsl(var(--muted-foreground))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid{display:grid;grid-gap:1.2rem;gap:1.2rem}@media (max-width:900px){.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (max-width:600px){.grid-cols-2{grid-template-columns:repeat(1,minmax(0,1fr))}}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid hsl(var(--border));background-color:hsl(var(--card));color:hsl(var(--foreground));padding:11px 14px;border-radius:var(--radius);font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s,background-color .2s;box-shadow:var(--shadow-soft)}.btn:hover{background-color:hsl(var(--accent));transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:transparent}.btn-primary:hover{background-color:hsl(var(--primary)/.9)}.small{font-size:12px;color:hsl(var(--muted-foreground))}.strong{font-weight:600}.rowBetween{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;grid-gap:1rem;gap:1rem}.error{margin-top:14px;color:hsl(var(--destructive));font-weight:600}.split{display:grid;grid-template-columns:260px 1fr;grid-gap:14px;gap:14px;margin-top:20px}@media (max-width:900px){.split{grid-template-columns:1fr}}.sidebar{padding:14px}.sideItem{display:flex;justify-content:space-between;align-items:center;padding:10px;border-radius:var(--radius);border:1px solid transparent;color:hsl(var(--muted-foreground))}.sideItemActive{background:hsl(var(--accent));border-color:hsl(var(--border));color:hsl(var(--foreground))}.kpiLabel{color:hsl(var(--muted-foreground));font-size:.875rem}.kpiValue{margin-top:.5rem;font-size:2.15rem}.footer{margin-top:34px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:hsl(var(--muted-foreground));font-size:12px}.progressBar{height:8px;background:hsl(var(--muted));border-radius:999px;overflow:hidden}.progressFill{height:100%;background:linear-gradient(120deg,hsl(var(--primary)),hsl(192 68% 44%))}.progressBarSlim{height:6px;background:hsl(var(--muted)/.6)}.progressFillElegant{background:linear-gradient(90deg,hsl(var(--primary)),hsl(190 64% 48%));box-shadow:0 4px 12px hsl(var(--primary)/.25)}.main{margin-top:2rem;grid-gap:2.5rem;gap:2.5rem}.hero,.main{display:grid}.hero{grid-gap:2rem;gap:2rem;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}.heroCopy{display:grid;grid-gap:1rem;gap:1rem}.heroTitle{font-family:Fraunces,Georgia,serif;font-size:3rem;line-height:1.05;margin:0}.heroSubtitle{margin:0;font-size:1.05rem;color:hsl(var(--muted-foreground));line-height:1.6}.metaRow{display:flex;flex-wrap:wrap;gap:.6rem}.heroCard{padding:0;overflow:hidden;border:1px solid hsl(var(--border))}.btnRow{display:flex;flex-wrap:wrap;gap:12px}.accessWarning{display:grid;grid-gap:6px;gap:6px;margin:14px 0 8px;padding:12px 14px;border-radius:14px;background:hsl(25 80% 96%);color:hsl(20 65% 25%);border:1px solid hsl(25 60% 85%);font-size:14px}.featureList{margin-top:1.5rem;display:grid;grid-gap:.75rem;gap:.75rem}.featureItem{padding:12px 14px;border-radius:14px;border:1px solid hsl(var(--border));background:hsl(var(--card));display:grid;grid-gap:6px;gap:6px}.featureTitle{font-weight:600}.heroCardHeader{display:flex;justify-content:space-between;gap:12px;padding:1.5rem;border-bottom:1px solid hsl(var(--border));background:linear-gradient(120deg,hsl(197 88% 96%),hsl(30 100% 95%))}.heroCardContent{padding:1.5rem;display:grid;grid-gap:1rem;gap:1rem}.eyebrow{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:hsl(var(--muted-foreground))}.miniStat{display:grid;grid-gap:4px;gap:4px}.statValue{font-size:1.15rem;font-weight:600}.positive{color:hsl(155 44% 32%)}.negative{color:hsl(0 72% 44%)}.sectionHeader{display:grid;grid-gap:.4rem;gap:.4rem;margin-bottom:1rem}.sectionTitle{margin:0;font-size:1.6rem}.sectionSubtitle{margin:0;color:hsl(var(--muted-foreground));font-size:.95rem}.section{display:grid;grid-gap:1.4rem;gap:1.4rem}.insightCard .card-content{display:grid;grid-gap:.4rem;gap:.4rem}.divider{height:1px;background:hsl(var(--border));margin:14px 0}.alertTag{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:12px;background:hsl(0 75% 94%);color:hsl(0 65% 36%)}.alertTag,.tag{font-size:12px;font-weight:600}.tag{padding:6px 10px;border-radius:999px;background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.alertRow{padding:10px 12px;border-radius:12px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:10px}.alertRow-positive{background:hsl(150 50% 92%);color:hsl(150 60% 28%)}.alertRow-negative{background:hsl(0 70% 94%);color:hsl(0 70% 35%)}.alertRow-neutral{background:hsl(40 60% 92%);color:hsl(35 50% 30%)}.alertIcon{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;font-size:12px;font-weight:700;background:hsl(var(--card));box-shadow:inset 0 0 0 1px hsl(var(--border))}.alertIcon-positive{color:hsl(var(--success))}.alertIcon-negative{color:hsl(var(--danger))}.alertIcon-neutral{color:hsl(35 50% 30%)}.yearTimeline{display:flex;gap:6px;align-items:center;margin-top:10px}.yearDot{width:8px;height:8px;border-radius:999px;background:hsl(var(--border))}.yearDotActive{width:14px;height:14px;background:hsl(var(--primary));box-shadow:0 0 0 4px hsl(var(--primary)/.15)}.span-2{grid-column:span 2/span 2}.reportsShell{display:grid;grid-gap:1.8rem;gap:1.8rem}.reportsControls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.field{display:grid;grid-gap:8px;gap:8px}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:10px 12px;border-radius:12px;border:1px solid hsl(var(--border));background-color:hsl(var(--card));color:hsl(var(--foreground));font-weight:600}.rangeGroup{display:flex;gap:8px;flex-wrap:wrap}.toggleCard{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;border:1px solid hsl(var(--border));background:hsl(var(--card));box-shadow:var(--shadow-soft)}.toggleCard input{accent-color:hsl(var(--primary))}.reportsSummary{align-items:stretch}.metricCard .card-content{display:flex;align-items:flex-end;justify-content:space-between}.metricValue{font-size:1.6rem;font-weight:700}.reportTable{display:grid;grid-gap:12px;gap:12px}.codeBlock{background:hsl(var(--secondary));border:1px solid hsl(var(--border));padding:12px;font-size:12px;line-height:1.5;max-height:360px;overflow:auto}.codeBlock,.input{border-radius:12px}.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:10px 12px;border:1px solid hsl(var(--border));background-color:hsl(var(--card));color:hsl(var(--foreground));font-weight:500}.transactionsShell{display:grid;grid-gap:1.8rem;gap:1.8rem}.transactionsFiltersCard{border-radius:22px;box-shadow:var(--shadow)}.transactionsFiltersHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.transactionsFilters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:16px;gap:16px}.filterSpan2{grid-column:span 2/span 2}.transactionsSummary{align-items:stretch}.transactionsTable{display:grid;grid-gap:12px;gap:12px}.transactionsTable .transactionRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-gap:16px;gap:16px;align-items:center;padding:14px;border-radius:14px;border:1px solid hsl(var(--border));background:linear-gradient(120deg,hsl(var(--secondary)),hsl(0 0% 100%));box-shadow:var(--shadow-soft)}.transactionsTable .transactionAvatar{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-weight:700;font-size:12px;background:hsl(var(--accent));color:hsl(var(--primary))}.transactionsTable .transactionMeta{display:grid;grid-gap:4px;gap:4px}.transactionsTable .transactionTitle{font-weight:600}.transactionsTable .transactionBadges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.transactionsTable .transactionAmount{font-weight:700;min-width:120px;text-align:right}.transactionsListCard .card-content{padding-top:.6rem}.transactionsMeta{margin-top:12px}.transactionsCharts .card{border-radius:22px}.transactionsInsights .statValue{font-size:1.4rem}.transactionsInsights .card{border-radius:20px}.transactionsFilters .input,.transactionsFilters .select{border-radius:14px;border-color:hsl(var(--border));box-shadow:inset 0 0 0 1px hsl(var(--border))}.transactionsFilters .input:focus,.transactionsFilters .select:focus{outline:none;box-shadow:0 0 0 2px hsl(var(--primary)/.2);border-color:hsl(var(--primary)/.6)}@media (max-width:900px){.transactionsFilters{grid-template-columns:repeat(2,minmax(0,1fr))}.filterSpan2{grid-column:span 2/span 2}.transactionsTable .transactionRow{grid-template-columns:1fr;text-align:left}.transactionsTable .transactionAvatar{width:36px;height:36px}.transactionsTable .transactionAmount,.transactionsTable .transactionBadges{justify-content:flex-start;text-align:left}}@media (max-width:600px){.transactionsFilters{grid-template-columns:1fr}}.reportRow{gap:16px;align-items:center;justify-content:space-between;padding:14px;border-radius:14px;border:1px solid hsl(var(--border));background:hsl(var(--secondary))}.reportRow,.reportValues{display:flex;flex-wrap:wrap}.reportValues{gap:18px}.reportsActions{display:flex;gap:12px;flex-wrap:wrap}.reportsAdvancedCard{border-radius:20px}.reportsAdvancedFilters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}@media (max-width:900px){.reportsAdvancedFilters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.reportsAdvancedFilters{grid-template-columns:1fr}}@media (max-width:900px){.reportsControls{grid-template-columns:1fr}}@media print{body{background:#fff}.nav,.noPrint{display:none!important}.container{padding:0}.card{box-shadow:none}}.chartShell,.monthlyChart{display:grid;grid-gap:12px;gap:12px}.chartCanvas{display:flex;gap:12px;align-items:flex-start}.axis{position:relative;font-size:11px;color:hsl(var(--muted-foreground))}.axisLabel{position:absolute;right:8px;transform:translateY(-50%)}.plotArea{position:relative;flex:1 1;background:hsl(var(--muted)/.85);overflow:hidden;touch-action:pan-y}.plotAreaOverflow{overflow:visible}.balancePlot{background:linear-gradient(180deg,hsl(var(--card)) 0,hsl(220 30% 98%) 100%);border:1px solid hsl(var(--border));box-shadow:inset 0 1px 0 hsl(0 0% 100%/.8);border-radius:20px}.plotGridLine{position:absolute;left:0;right:0;height:1px;background:hsl(var(--border)/.35)}.plotRule{position:absolute;top:12px;bottom:18px;width:1px;background:hsl(var(--border));transform:translateX(-.5px);opacity:.7;transition:opacity .2s ease}.plotZeroLine{position:absolute;left:0;right:0;height:1px;background:hsl(var(--foreground)/.2)}.barsRow{position:absolute;inset:12px 10px 18px;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-gap:10px;gap:10px}.barSlot,.barsRow{display:grid;align-items:end}.barSlot{position:relative;grid-template-columns:repeat(2,1fr);grid-gap:6px;gap:6px}.barSlotActive:before{content:"";position:absolute;inset:-8px -6px;border-radius:12px;background:hsl(var(--card)/.4)}.bar{position:relative;width:100%;border-radius:6px 6px 3px 3px;z-index:1}.barIncome{background:hsl(155 44% 32%)}.barExpense{background:hsl(12 72% 56%)}.balanceLine{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.balanceLine polyline{stroke-width:2}.chartNote{position:absolute;left:12px;bottom:8px;font-size:10px;color:hsl(var(--muted-foreground));background:hsl(var(--card)/.6);padding:4px 8px;border-radius:999px}.chartEmpty{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;color:hsl(var(--muted-foreground))}.xAxis{display:flex;gap:12px;align-items:center}.xAxisSpacer{flex:0 0 auto}.xAxisLabels{flex:1 1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-gap:10px;gap:10px}.xAxisLabel{text-align:center;font-size:11px;color:hsl(var(--muted-foreground));text-transform:capitalize}.chartLegend{gap:16px}.legendDotIncome{background:hsl(155 44% 32%)}.legendDotExpense{background:hsl(12 72% 56%)}.futureCommitmentsCard{animation:fadeUp .7s ease both}.futureCommitmentsHeader{align-items:flex-start}.futureCommitmentsTotal{font-size:1.35rem;font-weight:700;color:hsl(var(--foreground))}.futureCommitmentsTotal.muted{color:hsl(var(--muted-foreground))}.futureCommitmentsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px}.futureCommitmentItem{border:1px solid hsl(var(--border)/.7);border-radius:14px;padding:10px 12px;background:hsl(var(--card));display:grid;grid-gap:6px;gap:6px}.projectionCard{animation:fadeUp .7s ease both}.projectionChart{display:grid;grid-gap:10px;gap:10px}.projectionLine{width:100%;height:100%;display:block;color:hsl(var(--primary))}.projectionLine polyline{stroke:hsl(var(--primary));stroke-width:3;fill:none}.projectionLine circle{fill:hsl(var(--primary))}.projectionArea{fill:url(#projectionGradient)}.projectionValue{font-size:1.3rem;font-weight:700;color:hsl(var(--foreground))}.projectionValue.negative{color:hsl(var(--danger))}.projectionLabels{display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));font-size:12px;color:hsl(var(--muted-foreground));text-transform:capitalize}.annualMacroCard{animation:fadeUp .7s ease both}.annualMacroGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.annualMacroCell{border-radius:14px;padding:10px 12px;background:hsl(var(--secondary));display:grid;grid-gap:6px;gap:6px;border:1px solid hsl(var(--border)/.7)}.annualMacroCell strong{font-weight:700}.annualMacroCell-positive{background:hsl(var(--success)/var(--annual-heat,.22));color:hsl(var(--success));border-color:hsl(var(--success)/.25)}.annualMacroCell-negative{background:hsl(var(--danger)/var(--annual-heat,.22));color:hsl(var(--danger));border-color:hsl(var(--danger)/.25)}.annualMacroCell-neutral{background:hsl(48 80% 92%);color:hsl(28 58% 36%)}.annualMacroCellStrong{color:hsl(0 0% 100%/.92);text-shadow:0 1px 2px hsl(0 0% 0%/.25)}@media (max-width:900px){.annualMacroGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.chartTooltip{position:absolute;transform:translate(-50%,-100%);background:hsl(var(--card)/.98);border:1px solid hsl(var(--border));border-radius:14px;padding:12px 14px;font-size:12px;display:grid;grid-gap:6px;gap:6px;pointer-events:none;min-width:180px;z-index:2}.chartTooltipFixed{left:auto;right:12px;top:12px;transform:none;min-width:200px}.tooltipTitle{font-weight:700;text-transform:capitalize;text-align:center}.tooltipRow{display:grid;grid-template-columns:12px 1fr auto;align-items:center;grid-gap:8px;gap:8px;color:hsl(var(--foreground))}.yearDetail{border-radius:16px;border:1px solid hsl(var(--border));background:hsl(var(--card));padding:1rem}.yearSummary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.yearSummary::-webkit-details-marker{display:none}.yearTitle{font-size:1.2rem;font-weight:700}.yearTotals{gap:14px;font-size:12px;color:hsl(var(--muted-foreground))}.yearMeta,.yearTotals{display:flex;flex-wrap:wrap}.yearMeta{gap:10px;margin:12px 0 16px}.yearGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.miniSection,.monthCard .card-header{display:grid;grid-gap:6px;gap:6px}.miniList{display:flex;flex-wrap:wrap;gap:8px}.miniItem{font-size:12px;color:hsl(var(--muted-foreground));background:hsl(var(--muted));padding:6px 10px;border-radius:12px}.installmentList{display:grid;grid-gap:12px;gap:12px}.installmentGroupList{display:grid;grid-gap:16px;gap:16px}.installmentGroup{background:hsl(var(--muted));border-radius:14px;padding:12px}.installmentGroupHeader{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:10px;border-bottom:1px solid hsl(var(--border));margin-bottom:12px}.installmentGroupMonth{text-transform:capitalize}.installmentGroupMonth,.installmentGroupTotal{font-weight:700;color:hsl(var(--card-foreground))}.installmentItem{display:grid;grid-template-columns:44px 1fr;grid-gap:12px;gap:12px;align-items:center;padding:10px 12px;background:hsl(var(--muted));border-radius:12px}.installmentIcon{width:44px;height:44px;border-radius:12px;background:hsl(var(--primary)/.1);display:grid;place-items:center;color:hsl(var(--primary))}.installmentIcon svg{width:22px;height:22px;fill:currentColor}.installmentMeta{display:grid;grid-gap:6px;gap:6px}.installmentRow{display:flex;justify-content:space-between;gap:12px;align-items:center}.installmentTitle{font-weight:600;color:hsl(var(--card-foreground))}.installmentAmount{font-weight:700;color:hsl(var(--card-foreground))}.installmentSub{font-size:12px;color:hsl(var(--muted-foreground))}.installmentTag{font-size:11px;font-weight:600;color:hsl(var(--primary));background:hsl(var(--primary)/.12);padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.goalValue{font-weight:700;color:hsl(var(--primary))}@media (max-width:1100px){.hero{grid-template-columns:1fr}.span-2{grid-column:span 1}.yearGrid{grid-template-columns:1fr}}@media (max-width:700px){.heroTitle{font-size:2.4rem}.yearSummary{flex-direction:column;align-items:flex-start}}.dashboardMain{margin-top:2rem;display:grid;grid-gap:2rem;gap:2rem}.dashboardShell{position:relative}.dashboardNav{padding-bottom:10px}.dashboardHeader{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start}.dashboardIntro{max-width:560px}.dashboardTitle{font-family:Fraunces,Georgia,serif;font-size:3.1rem;margin:.4rem 0 0}.dashboardSubtitle{margin:.6rem 0 0;color:hsl(var(--muted-foreground));font-size:1.05rem;max-width:520px}.dashboardActions{display:grid;grid-gap:12px;gap:12px;justify-items:end}.segmentControl{display:inline-flex;padding:4px;border-radius:999px;border:1px solid hsl(var(--border)/.8);background:hsl(var(--card));gap:4px;box-shadow:var(--shadow-tight)}.segmentButton{padding:6px 12px;border-radius:999px;border:0;background:transparent;color:hsl(var(--muted-foreground));font-size:12px;font-weight:600;cursor:pointer}.segmentButtonActive{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.iconButton{border-radius:12px;border:1px solid hsl(var(--border));background:hsl(var(--card));padding:8px 12px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-soft)}.kpiGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1.2rem;gap:1.2rem}.kpiCard{position:relative;overflow:hidden;animation:fadeUp .6s ease both;box-shadow:var(--shadow-tight)}.kpiCard:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,hsl(var(--primary)),hsl(196 66% 44%))}.kpiHeader{display:flex;justify-content:space-between;align-items:center;gap:12px}.kpiDelta{font-size:12px;font-weight:600;padding:4px 8px;border-radius:999px;background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.kpiDelta-positive{background:hsl(var(--success)/.12);color:hsl(var(--success))}.kpiDelta-negative{background:hsl(var(--danger)/.12);color:hsl(var(--danger))}.kpiDelta-neutral{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.kpiContent{display:grid;grid-gap:8px;gap:8px}.kpiValue{margin-top:.2rem;font-size:2.35rem;font-weight:700;letter-spacing:-.025em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpiDescription{margin:0;font-size:12px;color:hsl(var(--muted-foreground))}.sparkline{width:100%;height:40px;color:hsl(var(--primary))}.sparkline-income{color:hsl(var(--success))}.sparkline-expense{color:hsl(var(--danger))}.sparkline polyline{fill:none;stroke:currentColor;stroke-width:2}.dashboardGrid{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.dashboardGrid,.dashboardLeft,.dashboardRight{display:grid;grid-gap:1.6rem;gap:1.6rem}.dashboardGroup{display:grid;grid-gap:1.1rem;gap:1.1rem}.dashboardGroupHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dashboardGroupTitle{margin:0;font-size:1.2rem;font-weight:700}.dashboardGroupSubtitle{margin:.35rem 0 0;color:hsl(var(--muted-foreground));font-size:.95rem}.dashboardGroupBody{display:grid;grid-gap:1.4rem;gap:1.4rem}.heatmapRow{display:grid;grid-template-columns:repeat(12,minmax(24px,1fr));grid-gap:8px;gap:8px;margin-top:12px}.heatmapCell{border:1px solid hsl(var(--border));border-radius:10px;padding:6px 0;background:hsl(var(--muted)/.6);color:hsl(var(--muted-foreground));font-size:11px;font-weight:600;text-transform:capitalize;cursor:pointer;display:grid;place-items:center;transition:transform .2s ease,border-color .2s ease}.heatmapCell:hover{transform:translateY(-1px);border-color:hsl(var(--primary)/.3)}.heatmapCell-positive{background:hsl(var(--success)/var(--heatmap-opacity,.22));color:hsl(var(--success));border-color:hsl(var(--success)/.4)}.heatmapCell-negative{background:hsl(var(--danger)/var(--heatmap-opacity,.22));color:hsl(var(--danger));border-color:hsl(var(--danger)/.45)}.heatmapCell-neutral{background:hsl(var(--muted)/.45);color:hsl(var(--muted-foreground))}.heatmapCellEmpty{background:hsl(var(--muted)/.25);color:hsl(var(--muted-foreground))}.heatmapCellStrong{color:hsl(0 0% 100%/.92);text-shadow:0 1px 2px hsl(0 0% 0%/.25)}.heatmapCellLabel{pointer-events:none}.drawerToggle{display:none;border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:999px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-tight)}.drawerOverlay{position:fixed;inset:0;background:hsl(220 30% 10%/.32);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:30}.drawerOverlay.open{opacity:1;pointer-events:auto}.mobileDrawer{position:fixed;top:0;right:0;width:min(82vw,320px);height:100%;background:hsl(var(--card));border-left:1px solid hsl(var(--border));box-shadow:-12px 0 30px hsl(220 30% 20%/.2);transform:translateX(100%);transition:transform .24s ease;z-index:40;padding:26px 20px;display:grid;grid-gap:10px;gap:10px}.mobileDrawer.open{transform:translateX(0)}.drawerHeader{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:hsl(var(--muted-foreground));margin-bottom:8px}.drawerLink{border:1px solid hsl(var(--border));background:hsl(var(--secondary));padding:12px 14px;border-radius:14px;text-align:left;font-weight:600;cursor:pointer;color:hsl(var(--foreground))}.drawerLink:hover{border-color:hsl(var(--primary)/.35);background:hsl(var(--card))}.drawerLinkMuted{background:hsl(var(--card));color:hsl(var(--muted-foreground))}.chartCard{position:relative;border-radius:calc(var(--radius) + 4px);background:linear-gradient(180deg,hsl(var(--card)) 0,hsl(220 30% 98%) 100%);border-color:hsl(var(--border)/.85);box-shadow:0 20px 44px -26px hsl(220 30% 30%/.18);overflow:visible;animation:fadeUp .7s ease both}.chartCard .card-header{padding:1.9rem 1.8rem 1.1rem}.chartCard .card-content{padding:.8rem 1.8rem 1.8rem}.chartHeader{justify-content:space-between;align-items:flex-start;row-gap:8px;border-bottom:1px solid hsl(var(--border));padding-bottom:12px;position:relative;z-index:2}.chartHeader,.chartLegend{display:flex;gap:12px;flex-wrap:wrap}.chartLegend{font-size:12px;color:hsl(var(--muted-foreground));padding-top:2px}.legendItem{display:inline-flex;align-items:center;gap:6px}.legendDot{width:8px;height:8px;border-radius:999px;background:hsl(var(--primary))}.legendDotIncome{background:hsl(var(--success))}.legendDotExpense{background:hsl(var(--danger))}.legendDotBalance{background:hsl(var(--primary))}.plotArea{background:linear-gradient(180deg,hsl(var(--card)) 0,hsl(220 30% 98%) 100%);border:1px solid hsl(var(--border));border-radius:18px;box-shadow:inset 0 1px 0 hsl(0 0% 100%/.8)}.plotAreaActive .barSlot{opacity:.6}.plotAreaActive .barSlotActive{opacity:1}.barsRow{inset:12px 12px 18px}.bar{border-radius:8px 8px 4px 4px;opacity:.6}.barIncome{background:hsl(var(--success))}.barExpense{background:hsl(var(--danger))}.balanceLine polyline{stroke:hsl(var(--primary));stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke-dasharray:360;stroke-dashoffset:360;animation:drawLine 1.2s ease forwards}.balanceLine circle{fill:hsl(var(--primary))}.balanceArea{fill:hsl(var(--primary)/.12)}.chartTooltip{box-shadow:var(--shadow-soft);transition:transform .2s ease,opacity .2s ease;will-change:transform,opacity}.budgetCard{animation:fadeUp .6s ease both}.budgetContent{display:grid;grid-gap:1.2rem;gap:1.2rem}.budgetRing{position:relative;display:grid;place-items:center}.budgetRingSvg{width:120px;height:120px;transform:rotate(-90deg)}.budgetRingTrack{fill:none;stroke:hsl(var(--muted));stroke-width:12}.budgetRingProgress{fill:none;stroke:hsl(var(--primary));stroke-width:12;stroke-linecap:round;filter:drop-shadow(0 6px 10px hsl(208 70% 38%/.18));transition:stroke-dashoffset .6s ease}.budgetRingValue{position:absolute;display:grid;place-items:center;grid-gap:2px;gap:2px}.budgetPercent{font-size:1.4rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.budgetMeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px 16px;gap:12px 16px;text-align:left}.budgetMeta>div{min-width:0}.budgetMeta .strong{display:block;line-height:1.2;word-break:break-word}.transactionsCard{animation:fadeUp .6s ease both}.transactionsHeader{display:flex;justify-content:space-between;align-items:center}.linkButton{border:0;background:transparent;color:hsl(var(--primary));font-weight:600;cursor:pointer}.transactionsList{display:grid;grid-gap:14px;gap:14px}.transactionRow{display:grid;grid-template-columns:44px 1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:8px 6px;border-radius:12px;transition:background .2s ease}.transactionRow:hover{background:hsl(var(--secondary))}.transactionIcon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:12px;font-weight:700;background:hsl(var(--accent));color:hsl(var(--primary))}.transactionIcon-positive{background:hsl(var(--success)/.12);color:hsl(var(--success))}.transactionIcon-negative{background:hsl(var(--danger)/.12);color:hsl(var(--danger))}.transactionIcon-neutral{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.transactionTitle{font-weight:600}.transactionSub{font-size:12px;color:hsl(var(--muted-foreground))}.transactionAmount{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.transactionAmount.positive{color:hsl(var(--success))}.transactionAmount.negative{color:hsl(var(--danger))}.transactionAmount.neutral{color:hsl(var(--foreground))}.emptyState{font-size:13px;color:hsl(var(--muted-foreground))}.monthCard{animation:fadeUp .6s ease both}.monthCardHeader{display:grid;grid-gap:6px;gap:6px}.monthList{display:grid;grid-gap:10px;gap:10px}.monthRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid hsl(var(--border)/.8);background:hsl(var(--secondary));cursor:pointer;transition:all .2s ease}.monthRowActive{background:hsl(var(--primary)/.1);border-color:hsl(var(--primary)/.3);color:hsl(var(--primary))}.monthRow:hover{border-color:hsl(var(--primary)/.25);background:hsl(var(--card))}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes drawLine{to{stroke-dashoffset:0}}@media (max-width:1100px){.dashboardGrid{grid-template-columns:1fr}.dashboardActions{justify-items:flex-start}}@media (max-width:900px){.kpiGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.navActions{display:none}.drawerToggle{display:inline-flex;align-items:center;justify-content:center}}@media (max-width:640px){.dashboardTitle{font-size:2.2rem}.budgetMeta,.kpiGrid{grid-template-columns:1fr}.heatmapRow{grid-template-columns:repeat(6,minmax(24px,1fr))}}@media (prefers-reduced-motion:reduce){.budgetCard,.chartCard,.kpiCard,.monthCard,.transactionsCard{animation:none}.balanceLine polyline{animation:none;stroke-dashoffset:0}}