:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#090a0f;color:#f7f8fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #090a0f;--panel: #11131b;--panel-2: #171a24;--panel-3: #1f2430;--text: #f7f8fb;--muted: #9ba3b4;--line: #282d3b;--green: #16c784;--red: #f43f5e;--orange: #f97316;--blue: #38bdf8;--shadow: 0 24px 60px rgba(0, 0, 0, .36);--app-top-padding: max(1.5rem, calc(env(safe-area-inset-top, 0px) + .75rem) )}@property --daily-progress{syntax: "<percentage>"; inherits: false; initial-value: 100%;}*{box-sizing:border-box}html{background:var(--bg);overflow-x:hidden}#root{min-height:100vh}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:radial-gradient(circle at 20% 0%,rgba(22,199,132,.13),transparent 34rem),linear-gradient(140deg,#090a0f,#10131b 48%,#090a0f)}button,input,select,textarea{font:inherit}button{color:inherit}button,select{cursor:pointer}button:disabled{cursor:progress;opacity:.7}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#0d0f16;color:var(--text);outline:none;padding:.8rem .9rem}input:focus,select:focus,textarea:focus{border-color:#16c784d9;box-shadow:0 0 0 3px #16c78421}select.needs-category{border-color:#f97316e6;background:linear-gradient(0deg,#f9731614,#f9731614),#0d0f16;box-shadow:0 0 0 3px #f973161a}select.needs-category:focus{border-color:#f97316f2;box-shadow:0 0 0 3px #f973162e}label{display:grid;gap:.45rem;color:var(--muted)}label span{font-size:.84rem}.app-shell{display:grid;grid-template-columns:17rem minmax(0,1fr);max-width:100vw;min-height:100vh;overflow-x:hidden}.sidebar{position:sticky;top:0;align-self:start;height:100vh;border-right:1px solid rgba(255,255,255,.08);background:#090a0fc7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:1.5rem}.brand{display:flex;gap:.85rem;align-items:center;min-height:3.5rem}.brand-mark{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:8px;background:radial-gradient(circle at 50% 72%,rgba(22,199,132,.18),transparent 72%),linear-gradient(140deg,#090a0f,#10131b 52%,#090a0f);box-shadow:0 12px 30px #16c78426;overflow:hidden}.brand-mark img{width:82%;height:82%;object-fit:contain;filter:drop-shadow(0 .55rem .8rem rgba(0,8,20,.44))}.auth-brand-mark{width:4rem;height:4rem;border-radius:1rem}.brand strong{display:block;font-family:ui-rounded,SF Pro Rounded,Avenir Next,Inter,system-ui,sans-serif;font-size:1.05rem;font-weight:650;letter-spacing:0}.brand span,.eyebrow,.section-header p,.muted,.transaction-body span,.transaction-money span,.row-meta,.hero-panel span{color:var(--muted)}.side-nav{display:grid;gap:.4rem;margin-top:2rem}.side-nav button,.bottom-nav button,.menu-list button,.icon-button,.row-actions button,.modal-header button,.danger-icon,.text-button{border:0;background:transparent}.side-nav button{display:flex;align-items:center;gap:.8rem;min-height:3rem;border-radius:8px;padding:0 .9rem;color:#cbd3e4}.side-nav button.active,.side-nav button:hover,.menu-list button.active,.menu-list button:hover{background:#ffffff12;color:var(--text)}.main{position:relative;width:min(100%,1440px);max-width:100vw;margin:0 auto;padding:var(--app-top-padding) clamp(1rem,3vw,2.4rem) 3rem;overscroll-behavior-y:contain}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.6rem;margin-bottom:1rem}.topbar-title{flex:1 1 auto;width:100%;min-width:0}.topbar h1{margin:.15rem 0 0;text-transform:capitalize;font-size:clamp(1.6rem,3vw,2.6rem)}.title-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;width:100%;gap:.65rem}.title-row h1{grid-column:1;min-width:0;padding-right:.5rem}.eyebrow{margin:0;font-size:.78rem;text-transform:uppercase}.month-trigger,.icon-button{position:relative;display:grid;place-items:center;width:2.55rem;height:2.55rem;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:#cbd3e4;align-self:start}.month-trigger{grid-column:2;cursor:pointer;overflow:hidden}.month-trigger svg{pointer-events:none}.native-month-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:inherit;background:transparent;color:transparent;cursor:pointer;font-size:16px;opacity:0;-moz-appearance:none;appearance:none;-webkit-appearance:none}.error-banner{display:flex;align-items:center;gap:.8rem;border:1px solid rgba(244,63,94,.36);border-radius:8px;background:#f43f5e1f;padding:.85rem 1rem;margin-bottom:1rem}.error-banner button{margin-left:auto;border:0;background:transparent;color:var(--text)}.app-update-toast{position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));z-index:45;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;width:min(calc(100vw - 2rem),34rem);border:1px solid rgba(22,199,132,.32);border-radius:8px;background:#11131bf5;box-shadow:var(--shadow);padding:.8rem;transform:translate(-50%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-update-toast div{display:grid;gap:.15rem;min-width:0}.app-update-toast strong,.app-update-toast span{min-width:0;overflow-wrap:anywhere}.app-update-toast span{color:var(--muted);font-size:.84rem}.app-notice-toast{bottom:max(5rem,calc(env(safe-area-inset-bottom) + 4.25rem));grid-template-columns:minmax(0,1fr) auto auto;border-color:#38bdf857;background:#0c181bf5}.toast-close{display:grid;place-items:center;width:2.35rem;height:2.35rem;border:1px solid var(--line);border-radius:8px;background:#ffffff0a;color:var(--muted);padding:0}.tab-stage{position:relative;width:100%;max-width:100%;overflow:hidden;touch-action:pan-y;transition:height .26s ease}.tab-track{display:flex;align-items:flex-start;gap:var(--tab-gap, 1rem);width:calc(var(--tab-count) * 100%);transition:transform .52s cubic-bezier(.2,.82,.18,1);will-change:transform}.tab-stage.dragging .tab-track{transition:none}.tab-slide{flex:0 0 var(--tab-slide-width, calc(100% / var(--tab-count)));width:var(--tab-slide-width, calc(100% / var(--tab-count)));min-width:0;pointer-events:none;transform:translateZ(0);transition:opacity .22s ease}.tab-slide.active{pointer-events:auto}.tab-stage:not(.dragging) .tab-slide:not(.active){height:0;overflow:hidden;visibility:hidden}.page-grid,.analytics-grid,.menu-layout,.skeleton-grid{display:grid;gap:1rem;min-width:0;max-width:100%}.month-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.hero-panel{position:relative;grid-column:span 12;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:12rem;border-radius:8px;background:linear-gradient(135deg,#16c78438,#38bdf81a),#11131b;border:1px solid rgba(255,255,255,.09);box-shadow:var(--shadow);padding:clamp(1.1rem,3vw,2rem);padding-bottom:max(clamp(1.1rem,3vw,2rem),4.8rem)}.hero-panel>div:first-child{min-width:0;max-width:100%}.hero-panel span{display:block;overflow-wrap:anywhere}.hero-panel strong{display:block;margin:.35rem 0;font-size:clamp(2.05rem,5vw,4.6rem)}.safe-ring{--daily-progress: 100%;--daily-color: var(--green);--daily-track: #242a36;display:grid;place-items:center;width:clamp(11rem,24vw,16rem);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at center,#11131b 0 54%,transparent 55%),conic-gradient(from 180deg,var(--daily-color) 0 var(--daily-progress),var(--daily-track) var(--daily-progress) 100%);transition:--daily-progress 1s cubic-bezier(.22,1,.36,1),filter .22s ease}.safe-ring-wrap{position:relative;display:grid;justify-items:center;gap:.7rem;flex:0 0 auto}.hero-actions{position:absolute;right:clamp(1rem,3vw,2rem);bottom:1rem;left:clamp(1rem,3vw,2rem);z-index:3;display:flex;align-items:end;justify-content:space-between;pointer-events:none}.hero-action-button{display:grid;place-items:center;border:0;border-radius:50%;pointer-events:auto;transition:transform .18s ease,box-shadow .18s ease}.hero-action-button:hover,.hero-action-button:focus-visible{transform:translateY(-2px);outline:none}.hero-add-action{width:4rem;height:4rem;background:linear-gradient(145deg,#22d28f,#16c784 58%,#0f9f68);color:#06110c;box-shadow:0 16px 34px #16c78447}.hero-planned-action{width:3.45rem;height:3.45rem;background:radial-gradient(circle at 28% 18%,rgba(255,255,255,.18),transparent 34%),linear-gradient(145deg,#22d3ee,#0ea5e9 58%,#075985);color:#e0f7ff;box-shadow:0 14px 32px #0ea5e952}.safe-ring.exceeded{--daily-color: var(--red);--daily-track: var(--red)}.safe-ring-content{display:grid;place-items:center;gap:.2rem;text-align:center}.safe-ring span{color:#d6dce8;font-weight:800}.safe-ring small{color:var(--muted)}.safe-ring.exceeded span{color:#fecdd3}.safe-ring.quick-spending{animation:quickRingSpendGlow 1s ease-out}@keyframes quickRingSpendGlow{0%,to{filter:drop-shadow(0 0 0 rgba(251,191,36,0))}35%{filter:drop-shadow(0 0 22px rgba(251,191,36,.24))}}.daily-plan-impact{display:grid;gap:.08rem;min-width:min(15rem,100%);border:1px solid rgba(56,189,248,.18);border-radius:8px;background:#38bdf813;padding:.55rem .7rem;text-align:center}.daily-plan-impact span,.daily-plan-impact small{color:var(--muted);font-size:.75rem}.daily-plan-impact strong{margin:0;color:#dffbef;font-size:.9rem}.report-pulse-button{position:absolute;top:.25rem;right:.25rem;z-index:2;display:grid;place-items:center;width:2.65rem;height:2.65rem;border:1px solid rgba(22,199,132,.28);border-radius:50%;background:#16c78426;color:#a7f3d0;box-shadow:0 0 26px #16c78447}.report-pulse-button.unread{animation:reportPulse 1.6s ease-in-out infinite}@keyframes reportPulse{0%,to{transform:translate(35%,-35%) scale(1)}50%{transform:translate(35%,-35%) scale(1.08)}}.stats-grid{grid-column:span 12;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.income-expense-flow{position:relative;grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;min-height:4.8rem;overflow:hidden;padding:0;border:1px solid transparent;background:linear-gradient(135deg,#11131bf5,#0a0c12f5) padding-box,linear-gradient(100deg,#16c784b8,#ffffff14 50%,#f43f5eb8) border-box}.income-expense-flow:before{content:none}.income-expense-flow:after{content:none}.income-expense-side{position:relative;z-index:2;display:grid;align-content:space-between;gap:.45rem;min-width:0;border:0;background:transparent;color:#f8fafc;padding:.62rem .85rem;text-align:left;text-shadow:0 2px 12px rgba(0,0,0,.68)}.income-expense-side.expense{justify-items:end;text-align:right}.income-expense-side:hover,.income-expense-side:focus-visible{background:#ffffff0e;outline:none}.income-expense-side span,.income-expense-side strong{min-width:0}.income-expense-label{display:inline-flex;align-items:center;gap:.55rem;max-width:100%}.income-expense-side small{color:#f8fafcc2;font-size:.74rem;font-weight:800;text-transform:uppercase}.income-expense-side strong{display:block;max-width:100%;font-size:clamp(.92rem,2.45vw,1.26rem);line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 15px rgba(0,0,0,.78)}.income-expense-side.income .income-expense-amount{color:#34d399}.income-expense-side.expense .income-expense-amount{color:#fb7185}.income-expense-icon{display:grid;flex:0 0 auto;place-items:center;width:2.1rem;height:2.1rem;border-radius:8px;background:#0000003d;box-shadow:inset 0 1px #ffffff29,0 8px 18px #0003}.income-expense-side.income .income-expense-icon{color:#a7f3d0}.income-expense-side.expense .income-expense-icon{color:#fecdd3}.income-expense-divider{position:relative;z-index:2;align-self:stretch;width:1px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.18),transparent)}.card{min-width:0;max-width:100%;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#11131bdb;box-shadow:0 12px 40px #0003;padding:1rem}.stat-card{min-height:8.4rem;display:grid;align-content:space-between}.clickable-card{width:100%;border:1px solid rgba(255,255,255,.08);color:inherit;text-align:left}.clickable-card:hover{border-color:#16c78452;background:#16c7840f}.stat-heading{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem}.stat-card strong{font-size:1.35rem}.stat-card .stat-icon{display:inline-grid;place-items:center;width:1.65rem;height:1.65rem;border-radius:0;background:transparent;color:#38bdf8;box-shadow:none;filter:drop-shadow(0 0 10px rgba(56,189,248,.38))}.stat-heading span{min-width:0;overflow-wrap:anywhere}.stat-card.positive .stat-icon,.stat-card.positive strong{color:var(--green)}.stat-card.positive .stat-icon{filter:drop-shadow(0 0 10px rgba(22,199,132,.42))}.stat-card.negative .stat-icon,.stat-card.negative strong{color:var(--red)}.stat-card.negative .stat-icon{filter:drop-shadow(0 0 10px rgba(244,63,94,.42))}.forecast-card{grid-column:span 12;display:grid;gap:1rem;overflow:visible;background:linear-gradient(135deg,#16c7841f,#0f172a33),#11131be6}.forecast-card .collapsible-header,.budget-card .collapsible-header,.planned-card .collapsible-header,.fixed-card .collapsible-header{margin:-1rem -1rem 0}.forecast-card.collapsed .collapsible-header,.budget-card.collapsed .collapsible-header,.planned-card.collapsed .collapsible-header,.fixed-card.collapsed .collapsible-header{margin:-1rem}.forecast-card .collapsible-trigger,.budget-card .collapsible-trigger,.planned-card .collapsible-trigger,.fixed-card .collapsible-trigger{border:0;border-radius:8px 8px 0 0;background:transparent;padding:1rem}.forecast-card.collapsed .collapsible-trigger,.budget-card.collapsed .collapsible-trigger,.planned-card.collapsed .collapsible-trigger,.fixed-card.collapsed .collapsible-trigger{border-radius:8px}.forecast-card .collapsible-trigger:hover,.forecast-card .collapsible-trigger:focus-visible{background:#16c78412}.budget-card .collapsible-trigger:hover,.budget-card .collapsible-trigger:focus-visible{background:#22d3ee14}.planned-card .collapsible-trigger:hover,.planned-card .collapsible-trigger:focus-visible{background:#8b5cf614}.fixed-card .collapsible-trigger:hover,.fixed-card .collapsible-trigger:focus-visible{background:#f59e0b14}.budget-card .collapsible-action,.planned-card .collapsible-action,.fixed-card .collapsible-action{padding-right:1rem}.collapsible-card{display:grid;gap:.85rem}.collapsible-card.collapsed{gap:0}.collapsible-header{display:flex;align-items:stretch;gap:.65rem;min-width:0}.collapsible-trigger{display:flex;flex:1;align-items:center;min-width:0;border:1px solid rgba(255,255,255,.06);border-radius:8px;background:#ffffff0b;color:inherit;gap:.8rem;padding:1rem;text-align:left}.collapsible-trigger:hover,.collapsible-trigger:focus-visible{border-color:#16c7845c;background:#16c78412;outline:none}.collapsible-icon{display:grid;flex:0 0 auto;place-items:center;color:var(--green)}.collapsible-icon svg{filter:drop-shadow(0 0 14px rgba(22,199,132,.34))}.budget-card .collapsible-icon{color:#67e8f9}.budget-card .collapsible-icon svg{filter:drop-shadow(0 0 14px rgba(34,211,238,.34))}.planned-card .collapsible-icon{color:#c4b5fd}.planned-card .collapsible-icon svg{filter:drop-shadow(0 0 14px rgba(139,92,246,.36))}.fixed-card .collapsible-icon{color:#fbbf24}.fixed-card .collapsible-icon svg{filter:drop-shadow(0 0 14px rgba(245,158,11,.34))}.collapsible-copy{flex:1;min-width:0}.collapsible-copy>span{display:block;color:var(--muted);font-size:.82rem;overflow-wrap:anywhere}.collapsible-copy strong{display:block;margin-top:.2rem;font-size:1.05rem;overflow-wrap:anywhere}.collapsible-caret{flex:0 0 auto;color:#cbd3e4;transition:transform .18s ease}.collapsible-card.expanded .collapsible-caret{transform:rotate(90deg)}.collapsible-action{display:grid;flex:0 0 auto;place-items:center}.collapsible-content{display:grid;gap:.75rem;min-width:0}.forecast-main{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.4fr);gap:1rem;align-items:stretch}.forecast-status,.forecast-note,.forecast-warnings{border-radius:8px;background:#ffffff0b}.forecast-status{display:flex;align-items:center;gap:.8rem;padding:1rem}.forecast-status svg{color:var(--green);filter:drop-shadow(0 0 14px rgba(22,199,132,.34))}.forecast-status span,.forecast-values span,.forecast-breakdown span,.forecast-note small,.forecast-analytics-grid span{color:var(--muted);font-size:.82rem}.forecast-status strong{display:block;margin-top:.2rem;font-size:1.1rem}.forecast-values,.forecast-breakdown,.forecast-analytics-grid{display:grid;gap:.75rem}.forecast-expanded-content{display:grid;gap:.85rem;min-width:0}.forecast-values,.forecast-analytics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.forecast-breakdown{grid-template-columns:repeat(3,minmax(0,1fr))}.forecast-values>div,.forecast-breakdown>div,.forecast-analytics-grid>div{display:grid;gap:.25rem;border:1px solid rgba(255,255,255,.06);border-radius:8px;background:#07090e3d;padding:.9rem}.forecast-metric{position:relative;z-index:1;min-width:0;cursor:help;outline:none}.forecast-metric:hover,.forecast-metric:focus,.forecast-metric:focus-visible{z-index:5;border-color:#16c78457;background:#16c78412}.metric-tooltip{position:absolute;z-index:10;top:calc(100% + .45rem);right:.75rem;left:.75rem;visibility:hidden;border:1px solid rgba(22,199,132,.32);border-radius:8px;background:#0c1816f5;box-shadow:0 18px 44px #00000061,0 0 28px #16c78429;color:#eafbf4;font-size:.78rem;line-height:1.35;opacity:0;padding:.65rem .75rem;pointer-events:none;transform:translateY(-.25rem);transition:opacity .14s ease,transform .14s ease,visibility .14s ease}.forecast-metric:hover .metric-tooltip,.forecast-metric:focus .metric-tooltip,.forecast-metric:focus-visible .metric-tooltip,.forecast-metric:focus-within .metric-tooltip{visibility:visible;opacity:1;transform:translateY(0)}.forecast-values strong,.forecast-breakdown strong,.forecast-analytics-grid strong{font-size:1.05rem}.forecast-values .positive,.forecast-breakdown .positive,.forecast-analytics-grid .positive{color:var(--green)}.forecast-values .negative,.forecast-breakdown .negative,.forecast-analytics-grid .negative{color:var(--red)}.forecast-pace-panel{display:grid;gap:.45rem;min-width:0;border:1px solid rgba(255,255,255,.06);border-radius:8px;background:#07090e33;padding:.75rem .75rem .45rem}.forecast-pace-head{display:grid;gap:.55rem;min-width:0}.forecast-pace-caption{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;min-width:0}.forecast-pace-caption span{color:#dce4f2;font-size:.86rem;font-weight:800}.forecast-pace-caption small{color:var(--muted);font-size:.78rem;text-align:right}.forecast-similarity-help{position:relative;display:inline-flex;justify-self:end;min-width:0;border:0;background:transparent;color:inherit;cursor:help;padding:0;text-align:right}.forecast-similarity-help:focus-visible{outline:2px solid rgba(22,199,132,.55);outline-offset:4px}.forecast-similarity-tooltip{right:0;left:auto;width:min(21rem,calc(100vw - 2rem));text-align:left}.forecast-similarity-help:hover .forecast-similarity-tooltip,.forecast-similarity-help:focus .forecast-similarity-tooltip,.forecast-similarity-help:focus-visible .forecast-similarity-tooltip,.forecast-similarity-help:focus-within .forecast-similarity-tooltip{visibility:visible;opacity:1;transform:translateY(0)}.forecast-pace-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;width:min(100%,18rem);border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#ffffff09;padding:.25rem}.forecast-pace-toggle button{min-width:0;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:800;padding:.45rem .55rem}.forecast-pace-toggle button.active{background:#16c78424;color:#dffbef;box-shadow:inset 0 0 0 1px #16c78447}.forecast-pace-toggle button:focus-visible{outline:2px solid rgba(22,199,132,.55);outline-offset:2px}.forecast-pace-chart{height:7.4rem;min-width:0}.pace-day-modal{width:min(100%,45rem)}.pace-day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.pace-day-side{display:grid;gap:.65rem;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff09;padding:.8rem}.pace-day-side-head{display:grid;gap:.18rem}.pace-day-side-head span,.budget-carry-toggle strong{color:#dce4f2;font-size:.84rem;font-weight:800}.pace-day-side-head strong{color:#f7f8fb;font-size:1.15rem}.pace-day-side-head small,.budget-carry-toggle span{color:var(--muted);font-size:.78rem}.pace-day-category-list{display:grid;gap:.45rem}.pace-day-category-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6rem;min-width:0}.pace-day-category-row strong{color:#f7f8fb;font-size:.9rem;white-space:nowrap}.forecast-note{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1rem}.forecast-note.compact{margin-top:.9rem}.forecast-warnings{display:grid;gap:.35rem;padding:.75rem 1rem;color:#cbd5e1;font-size:.84rem}.forecast-risk .forecast-status svg,.forecast-deficit .forecast-status svg{color:var(--red);filter:drop-shadow(0 0 14px rgba(244,63,94,.34))}.forecast-risk .collapsible-icon,.forecast-deficit .collapsible-icon{color:var(--red)}.forecast-risk .collapsible-icon svg,.forecast-deficit .collapsible-icon svg{filter:drop-shadow(0 0 14px rgba(244,63,94,.34))}.forecast-surplus .forecast-status svg{color:var(--green)}.forecast-insufficient .forecast-status svg,.forecast-insufficient .collapsible-icon{color:var(--orange)}.forecast-analytics{grid-column:1 / -1}.chart-card,.budget-card,.planned-card,.fixed-card,.recent-card{grid-column:span 6;align-self:start}.budget-card,.planned-card,.fixed-card{overflow:visible}.budget-card{border-color:#22d3ee29;background:linear-gradient(135deg,#22d3ee21,#0f172a3d),#11131be6}.fixed-card{border-color:#f59e0b29;background:linear-gradient(135deg,#f59e0b21,#0f172a3d),#11131be6}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.section-header h2{margin:0;font-size:1.05rem}.section-header p{margin:.2rem 0 0;font-size:.86rem}.section-actions{display:flex;align-items:center;gap:.45rem}.planned-card{display:grid;gap:.85rem;border-color:#8b5cf62e;background:linear-gradient(135deg,#8b5cf626,#0f172a40),#11131be6}.planned-collapsible-content{gap:.85rem}.planned-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.planned-summary-grid>div{display:grid;gap:.18rem;min-width:0;border:1px solid rgba(255,255,255,.06);border-radius:8px;background:#ffffff09;padding:.75rem}.planned-summary-grid span,.planned-row-copy span,.planned-row-copy small,.planned-manager-note{color:var(--muted);font-size:.8rem}.planned-summary-grid strong{color:#f7f8fb;font-size:1rem;overflow-wrap:anywhere}.planned-summary-grid strong.positive{color:var(--green)}.planned-summary-grid strong.negative{color:var(--red)}.planned-impact-strip{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem;border:1px solid rgba(56,189,248,.18);border-radius:8px;background:#38bdf80f;padding:.75rem}.planned-impact-strip svg{color:#38bdf8}.planned-impact-strip div{display:grid;gap:.12rem;min-width:0}.planned-impact-strip strong,.planned-impact-strip span{overflow-wrap:anywhere}.planned-impact-strip strong{color:#e8fff6;font-size:.9rem}.planned-impact-strip span{color:var(--muted);font-size:.8rem}.planned-list{display:grid;gap:.55rem}.planned-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff09;padding:.65rem}.planned-row.compact{grid-template-columns:minmax(0,1fr)}.planned-row.status-completed,.planned-row.status-cancelled{opacity:.72}.planned-row-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;min-width:0;border:0;background:transparent;color:inherit;text-align:left}.planned-row-main:hover,.planned-row-main:focus-visible{color:#eafbf4;outline:none}.planned-row-copy{display:grid;gap:.1rem;min-width:0;text-align:right}.planned-row-copy strong{color:#f7f8fb;font-size:.98rem;white-space:nowrap}.planned-row-copy span,.planned-row-copy small{overflow-wrap:anywhere}.planned-actions{display:flex;align-items:center;gap:.35rem}.planned-actions button{display:grid;place-items:center;width:2.35rem;height:2.35rem;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0b;color:#dce4f2}.planned-actions button:hover:not(:disabled),.planned-actions button:focus-visible:not(:disabled){border-color:#16c7845c;color:var(--green);outline:none}.planned-actions button:disabled{cursor:default;opacity:.35}.planned-manager-note{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem;margin-bottom:.85rem;border:1px solid rgba(56,189,248,.15);border-radius:8px;background:#38bdf80e;padding:.75rem}.planned-manager-note svg{color:#38bdf8}.planned-history{display:grid;gap:.6rem;margin-top:1.1rem}.planned-history h3{margin:0;color:#dce4f2;font-size:.95rem}.quick-strip,.monthly-goal-compact{grid-column:1 / -1}.monthly-goal-compact{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;border-color:#94a3b829;background:linear-gradient(135deg,#94a3b829,#0f172a4d),#11131be6;color:inherit;cursor:pointer;font:inherit;text-align:left}.monthly-goal-compact:hover,.monthly-goal-compact:focus-visible{border-color:#16c7845c;outline:none;box-shadow:0 16px 46px #0000003d,0 0 0 1px #16c7841f}.monthly-goal-compact.goal-on_track{border-color:#16c78433;background:linear-gradient(135deg,#16c7842e,#0f172a52),#11131beb}.monthly-goal-compact.goal-warning{border-color:#f59e0b38;background:linear-gradient(135deg,#f59e0b2e,#0f172a52),#11131beb}.monthly-goal-compact.goal-off_track{border-color:#f43f5e3d;background:linear-gradient(135deg,#f43f5e2e,#0f172a52),#11131beb}.monthly-goal-compact.goal-no_goal{border-color:#94a3b824;background:linear-gradient(135deg,#94a3b829,#090c138a),#11131be6}.quick-strip{display:block;overflow:visible;padding:0;border:0;background:transparent;box-shadow:none}.quick-strip-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;min-height:2.35rem}.quick-strip-head div{display:grid;gap:0;min-width:0}.quick-template-chip small,.quick-template-meta,.goal-manager-summary span,.monthly-goal-compact small{color:var(--muted);font-size:.8rem}.quick-strip-head span{color:#f7f8fb;font-size:.96rem;font-weight:850;line-height:1.1}.quick-strip-head strong,.quick-template-chip strong{overflow-wrap:anywhere}.quick-template-scroll{display:flex;gap:.55rem;overflow-x:auto;padding:.05rem 0 .2rem;scrollbar-width:thin}.quick-template-chip{--quick-color: var(--green);position:relative;flex:0 0 min(12rem,72vw);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem;min-height:3.8rem;border:1px solid color-mix(in srgb,var(--quick-color) 24%,rgba(255,255,255,.08));border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--quick-color) 18%,transparent),#0f172a7a),#ffffff09;padding:.55rem;text-align:left;overflow:hidden;transform-origin:center;isolation:isolate}.quick-template-chip>span:not(.quick-template-hit-wave){position:relative;z-index:1}.quick-template-chip.quick-template-animating{animation:quickTemplateImpact 1s cubic-bezier(.18,1,.32,1);border-color:color-mix(in srgb,var(--quick-color) 58%,rgba(255,255,255,.16));box-shadow:0 0 0 1px color-mix(in srgb,var(--quick-color) 28%,transparent),0 0 30px color-mix(in srgb,var(--quick-color) 30%,transparent),0 18px 34px color-mix(in srgb,var(--quick-color) 22%,transparent)}.quick-template-hit-wave{position:absolute;z-index:0;top:-.08rem;right:-.08rem;bottom:-.08rem;left:-.08rem;border-radius:8px;background:radial-gradient(circle at 50% 52%,color-mix(in srgb,var(--quick-color) 38%,transparent),transparent 58%),linear-gradient(135deg,color-mix(in srgb,var(--quick-color) 24%,transparent),transparent 72%);border:1px solid color-mix(in srgb,var(--quick-color) 32%,transparent);box-shadow:0 0 28px color-mix(in srgb,var(--quick-color) 32%,transparent),inset 0 0 20px color-mix(in srgb,var(--quick-color) 24%,transparent);opacity:0;pointer-events:none;animation:quickTemplateHitWave 1s ease-out forwards}.quick-template-add-chip{--quick-color: #94a3b8;flex-basis:4.6rem;grid-template-columns:1fr;justify-items:center;border-color:#94a3b833;background:linear-gradient(135deg,#94a3b821,#0f172a80),#ffffff06;color:#e2e8f0}.quick-template-add-chip.empty-add{flex:0 0 min(18rem,100%);grid-template-columns:auto minmax(0,1fr);justify-items:stretch}.quick-template-add-chip:hover,.quick-template-add-chip:focus-visible{border-color:#cbd5e15c;background:linear-gradient(135deg,#94a3b82e,#0f172a8f),#ffffff0a}.quick-template-chip-icon,.quick-template-main>span,.quick-template-use-icon{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:8px;background:radial-gradient(circle at 26% 18%,rgba(255,255,255,.28),transparent 32%),linear-gradient(135deg,color-mix(in srgb,var(--quick-color, var(--green)) 82%,#ffffff 8%),color-mix(in srgb,var(--quick-color, var(--green)) 48%,#050814 52%));color:#f8fbff;box-shadow:inset 0 1px #ffffff2e,0 10px 22px color-mix(in srgb,var(--quick-color, var(--green)) 22%,transparent)}.quick-template-add-chip .quick-template-chip-icon{background:radial-gradient(circle at 26% 18%,rgba(255,255,255,.18),transparent 32%),linear-gradient(135deg,#94a3b838,#1e293bd1);color:#f8fafc;box-shadow:inset 0 1px #ffffff24}.quick-template-animating .quick-template-chip-icon{animation:quickTemplateIconHit 1s cubic-bezier(.18,1,.32,1)}@keyframes quickTemplateImpact{0%,to{transform:scale(1)}18%,44%,70%{transform:scale(1.026)}30%,58%,82%{transform:scale(1.006)}}@keyframes quickTemplateIconHit{0%,to{transform:scale(1)}18%,44%,70%{transform:scale(1.13) rotate(-3deg)}30%,58%,82%{transform:scale(1.03) rotate(3deg)}}@keyframes quickTemplateHitWave{0%{opacity:0;transform:scale(.88)}16%,44%,70%{opacity:.72;transform:scale(1.02)}28%,58%,82%,to{opacity:0;transform:scale(1.16)}}.goal-compact-icon{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:8px;background:#ffffff13;color:#e2e8f0;box-shadow:inset 0 1px #ffffff1f}.quick-template-chip-copy{display:grid;align-content:center;gap:.08rem;min-width:0}.quick-template-chip small{min-width:0}.quick-template-chip:hover,.quick-template-chip:focus-visible,.quick-template-main:hover,.quick-template-main:focus-visible{border-color:#16c78457;outline:none}.monthly-goal-compact>div:nth-child(2){display:grid;gap:.12rem;min-width:0}.monthly-goal-compact strong,.monthly-goal-compact small{overflow-wrap:anywhere}.goal-on_track .goal-compact-icon,.goal-on_track .quick-template-use-icon{color:var(--green)}.goal-on_track .goal-compact-icon{background:#ffffff13;box-shadow:inset 0 1px #ffffff1f}.goal-no_goal .goal-compact-icon{background:#94a3b81f;color:#cbd5e1}.goal-warning .goal-compact-icon{background:#ffffff13;color:var(--orange)}.goal-off_track .goal-compact-icon{background:#ffffff13;color:var(--red)}.quick-template-list{display:grid;gap:.6rem}.quick-template-row{--quick-color: var(--green);position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(9rem,auto) auto;align-items:center;gap:.65rem;min-width:0;border:1px solid color-mix(in srgb,var(--quick-color) 18%,rgba(255,255,255,.08));border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--quick-color) 12%,transparent),#11131bb8),#ffffff08;padding:.65rem}.quick-template-row.inactive{opacity:.62}.quick-template-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem;min-width:0;border:0;background:transparent;padding:0;text-align:left}.quick-template-main div,.quick-template-meta{display:grid;gap:.12rem;min-width:0}.quick-template-meta{text-align:right}.goal-manager-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-bottom:.85rem}.goal-manager-summary>div{display:grid;gap:.15rem;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff09;padding:.75rem}.goal-manager-summary strong{overflow-wrap:anywhere}.goal-form{display:grid;gap:.85rem}.quick-template-preview{--quick-color: var(--green);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;border:1px solid color-mix(in srgb,var(--quick-color) 18%,rgba(255,255,255,.08));border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--quick-color) 12%,transparent),#ffffff05),#ffffff08;padding:.75rem}.quick-template-appearance-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.55rem;width:min(11rem,100%);min-width:0}.quick-template-preview-copy{display:grid;align-content:center;gap:.15rem;min-width:0}.quick-template-preview-copy span{color:var(--muted);overflow-wrap:anywhere}.quick-template-appearance-card.category-icon-trigger,.quick-template-color-card{min-height:5rem;border-color:color-mix(in srgb,var(--quick-color) 34%,rgba(255,255,255,.08));background:radial-gradient(circle at 25% 15%,rgba(255,255,255,.24),transparent 32%),linear-gradient(135deg,color-mix(in srgb,var(--quick-color) 42%,#11131b 58%),color-mix(in srgb,var(--quick-color) 18%,#050814 82%));color:#f8fbff;box-shadow:inset 0 1px #ffffff24,0 10px 24px color-mix(in srgb,var(--quick-color) 18%,transparent)}.quick-template-appearance-card.category-icon-trigger span,.quick-template-color-card small{color:#f8fbffcc}.quick-template-color-card{position:relative;display:grid;place-items:center;align-content:center;gap:.35rem;border:1px solid var(--line);border-radius:8px;cursor:pointer;overflow:hidden}.quick-template-color-card input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;opacity:0;cursor:pointer}.quick-template-color-swatch{display:block;width:2.25rem;height:2.25rem;border-radius:999px;background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.55),transparent 28%),linear-gradient(135deg,color-mix(in srgb,var(--quick-color) 86%,#ffffff 8%),color-mix(in srgb,var(--quick-color) 42%,#050814 58%));box-shadow:inset 0 0 0 1px #fff3,0 8px 18px color-mix(in srgb,var(--quick-color) 28%,transparent)}.quick-color-palette{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:.4rem}.quick-color-palette button{--quick-color: var(--green);min-height:2.35rem;border:1px solid color-mix(in srgb,var(--quick-color) 38%,rgba(255,255,255,.08));border-radius:8px;background:radial-gradient(circle at 28% 20%,rgba(255,255,255,.4),transparent 30%),linear-gradient(135deg,color-mix(in srgb,var(--quick-color) 78%,#ffffff 8%),color-mix(in srgb,var(--quick-color) 42%,#050814 58%))}.quick-color-palette button.active{border-color:#ffffffb8;box-shadow:0 0 0 2px color-mix(in srgb,var(--quick-color) 34%,transparent),0 10px 24px color-mix(in srgb,var(--quick-color) 26%,transparent)}.echart{width:100%;height:20rem}.donut-shell{position:relative;width:min(100%,22rem);margin:0 auto;aspect-ratio:1}.donut-chart{position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.donut-icons{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.donut-icon{position:absolute;display:grid;place-items:center;width:2.25rem;height:2.25rem;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.08);border-radius:50%;background:#171a24;box-shadow:0 10px 24px #00000042}.budget-list,.stack,.settings-list,.date-groups{display:grid;gap:.75rem}.budget-row{display:grid;gap:.55rem;width:100%;border:1px solid var(--line);border-radius:8px;background:#ffffff08;padding:.85rem;color:inherit;text-align:left}.budget-row.interactive{cursor:pointer}.pull-refresh-indicator{position:fixed;z-index:30;top:max(.35rem,env(safe-area-inset-top,0px));left:50%;min-width:6.8rem;border:1px solid rgba(34,211,238,.24);border-radius:999px;background:#0f141fe0;box-shadow:0 0 1.5rem #22d3ee2e;color:#d8f7ff;font-size:.78rem;font-weight:800;padding:.48rem .8rem;text-align:center;pointer-events:none;transition:opacity .16s ease,transform .16s ease;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.pull-refresh-indicator.refreshing{border-color:#16c78457;color:#a7f3d0}.budget-row.interactive:hover{border-color:#16c7845c;background:#16c7840f}.budget-row.exceeded{border-color:#f43f5e8c;background:#f43f5e17}.row-main,.row-meta,.fixed-summary,.setting-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.row-meta{font-size:.84rem}.progress-track{width:100%;height:.55rem;border-radius:999px;overflow:hidden;background:#272c3a}.progress-track span{display:block;height:100%;border-radius:inherit}.category-badge{--accent: #64748b;display:inline-flex;align-items:center;gap:.5rem;min-width:0;color:var(--text)}.category-badge>svg{flex:0 0 auto;color:var(--accent)}.category-badge span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-row,.fixed-row{position:relative;display:grid;grid-template-columns:1fr;align-items:stretch;gap:.65rem;min-height:4.4rem;border:1px solid var(--line);border-radius:8px;background:#ffffff08;padding:.75rem;overflow:hidden}.transaction-row:before,.fixed-row:before{content:"";position:absolute;z-index:0;top:0;right:0;left:0;height:4.2rem;border-radius:8px 8px 0 0;background:#ffffff0b;pointer-events:none}.transaction-row>*,.fixed-row>*{position:relative;z-index:1}.transaction-row.has-actions,.fixed-row{padding-right:5.35rem}.fixed-row.has-actions{padding-right:8rem}.slot-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;min-width:0;min-height:2.75rem}.transaction-body{min-width:0}.transaction-body strong,.transaction-body span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-money{min-width:max-content;justify-self:start;padding-block:.65rem;text-align:left}.transaction-money strong{display:block}.income{color:var(--green)}.expense{color:var(--red)}.fixed-row.paid{opacity:.76}.fixed-row button,.small-action,.primary-button,.compact-form button,.inline-edit button{border:0;border-radius:8px;background:var(--green);color:#06110c;font-weight:800;padding:.7rem .85rem}.header-icon-button{display:grid;place-items:center;width:2.35rem;height:2.35rem;border:0;border-radius:8px;background:var(--panel-3);color:#cbd3e4}.header-icon-button.danger{background:#f43f5e1f;color:#fecdd3}.slot-actions,.row-actions{position:absolute;top:.7rem;right:.7rem;display:flex;gap:.35rem}.slot-actions button,.row-actions button,.fixed-pay-button{display:grid;place-items:center;width:2.15rem;height:2.15rem;border:0;border-radius:8px;background:var(--panel-3);color:#cbd3e4;padding:0}.fixed-pay-button{position:absolute;top:.7rem;right:.7rem;border:1px solid rgba(148,163,184,.18);background:#1f2430db;color:#9ba3b4}.fixed-pay-button.paid{border-color:#16c78447;background:#16c78429;color:var(--green);box-shadow:0 0 14px #16c78429}.fixed-pay-button.partial{border-color:#2dd4bf3d;background:#2dd4bf1f;color:var(--blue);box-shadow:0 0 14px #2dd4bf1f}.fixed-pay-button:disabled{cursor:default;opacity:.72}.fixed-pay-button svg{display:block}.fixed-row .slot-actions{right:3.15rem}.fixed-summary{margin-bottom:.85rem}.content-column{display:grid;gap:1rem}.segmented{display:inline-grid;grid-auto-flow:column;gap:.25rem;width:fit-content;border:1px solid var(--line);border-radius:8px;background:#0d0f16;padding:.25rem}.segmented.wide{width:100%;grid-template-columns:1fr 1fr}.segmented button{border:0;border-radius:7px;background:transparent;color:var(--muted);padding:.65rem 1rem}.segmented button.active{background:var(--panel-3);color:var(--text)}.date-group h3{margin:1rem 0 .5rem;color:var(--muted);font-size:.9rem;font-weight:700}.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-layout{grid-template-columns:minmax(0,54rem);align-items:start}.menu-root{max-width:42rem}.menu-section-page{max-width:58rem}.menu-list{display:grid;gap:.35rem;position:sticky;top:1rem}.menu-list button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;min-height:3.1rem;border-radius:8px;color:#cbd3e4;padding:0 .75rem;text-align:left}.menu-account{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;margin-top:.5rem;padding:.9rem .75rem .1rem;border-top:1px solid var(--line)}.menu-account div{display:grid;gap:.2rem;min-width:0}.menu-account span{color:var(--muted);font-size:.78rem}.menu-account strong{min-width:0;overflow:hidden;color:var(--text);font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.menu-account button{display:inline-grid;min-height:2.25rem;grid-template-columns:1fr;border:0;border-radius:8px;background:#f43f5e29;color:#fecdd3;font-weight:800;padding:0 .85rem}.menu-detail{min-height:28rem}.report-history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-bottom:.9rem}.report-history-summary>div{display:grid;gap:.2rem;min-width:0;border:1px solid var(--line);border-radius:8px;background:#ffffff09;padding:.8rem}.report-history-summary span,.report-history-main span,.report-history-main small,.report-history-total span{color:var(--muted);font-size:.8rem}.report-history-summary strong{color:var(--text);font-size:1.2rem}.report-history-list{display:grid;gap:.65rem}.report-history-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:#ffffff08;color:var(--text);padding:.85rem;text-align:left}.report-history-row:hover,.report-history-row:focus-visible{border-color:#16c78457;background:#16c7840f;outline:none}.report-history-row.unread{border-color:#38bdf857;background:#38bdf812}.report-history-icon{display:grid;place-items:center;width:2.65rem;height:2.65rem;border-radius:8px;background:#ffffff0f}.report-history-icon.positive{color:var(--green)}.report-history-icon.negative{color:var(--red)}.report-history-main{display:grid;gap:.16rem;min-width:0}.report-history-main>div{display:flex;align-items:center;gap:.45rem;min-width:0}.report-history-main strong,.report-history-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-history-main em{flex:0 0 auto;border-radius:999px;background:#38bdf829;color:#bae6fd;font-size:.7rem;font-style:normal;font-weight:800;padding:.14rem .42rem}.report-history-total{display:grid;justify-items:end;gap:.12rem;min-width:max-content}.report-history-total strong{font-size:.95rem}.report-history-total strong.positive{color:var(--green)}.report-history-total strong.negative{color:var(--red)}.back-button{display:inline-flex;align-items:center;gap:.45rem;width:fit-content;border:0;border-radius:8px;background:var(--panel-3);color:#cbd3e4;padding:.65rem .8rem;margin-bottom:1rem}.compact-form{display:grid;grid-template-columns:minmax(10rem,1fr) 9rem 3.5rem auto;gap:.6rem;margin-bottom:1rem}.setting-row{min-height:3.7rem;border:1px solid var(--line);border-radius:8px;background:#ffffff08;padding:.75rem}.security-form{display:grid;gap:.8rem;margin-top:1rem;border:1px solid var(--line);border-radius:8px;background:#ffffff08;padding:.9rem}.security-form h3{margin:0}.security-form p{margin:.25rem 0 0;color:var(--muted)}.security-form label{display:grid;gap:.35rem}.security-form input{min-width:0;border:1px solid var(--line);border-radius:8px;background:#0d1018;color:var(--text);padding:.75rem .85rem}.security-form .auth-message{margin:0}.inline-edit{display:grid;grid-template-columns:minmax(6rem,8rem) auto;gap:.45rem}.budget-setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem}.budget-setting-controls{display:grid;grid-template-columns:auto auto;align-items:center;gap:.8rem}.budget-carry-toggle{display:grid;grid-template-columns:minmax(6.5rem,1fr) auto;align-items:center;gap:.65rem;min-width:12rem}.budget-carry-toggle div{display:grid;gap:.12rem}.add-budget-panel{display:grid;grid-template-columns:minmax(12rem,1fr) minmax(8rem,12rem) auto;gap:.6rem;margin-bottom:1rem}.category-group{display:grid;gap:.65rem;margin-top:1rem}.category-group h3{margin:0;color:#d8deea;font-size:.98rem}.category-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.65rem}.category-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.7rem;border:1px solid var(--line);border-radius:8px;background:#ffffff08;color:inherit;padding:.75rem;text-align:left}.category-card:hover{border-color:#16c7845c;background:#16c7840f}.managed-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.7rem}.info-panel,.support-card,.notification-permission-card,.todo-panel,.empty-state,.empty-mini{border:1px solid var(--line);border-radius:8px;background:#ffffff08}.info-panel,.support-card{display:flex;gap:1rem;padding:1rem}.info-panel p,.support-card p,.notification-permission-card p,.todo-panel p,.empty-state p{color:var(--muted);margin:.4rem 0 0}.todo-panel,.empty-state{display:grid;place-items:center;text-align:center;min-height:14rem;padding:1.4rem}.rate-toolbar,.import-uploader,.import-main-fields,.import-secondary-fields{display:grid;gap:.75rem}.rate-toolbar{grid-template-columns:minmax(9rem,14rem) auto;align-items:end;justify-content:start;margin-top:1rem}.base-currency-card{display:grid;grid-template-columns:minmax(0,1fr) 9rem;align-items:center;gap:1rem;margin-top:1rem;border:1px solid rgba(34,211,238,.18);border-radius:8px;background:#22d3ee12;padding:1rem}.base-currency-card span,.base-currency-card p{color:var(--muted)}.base-currency-card span{display:block;margin-bottom:.25rem;font-size:.85rem}.base-currency-card strong{display:block;font-size:1.25rem}.base-currency-card p{margin:.25rem 0 0;font-size:.9rem}.rate-history,.import-preview-list{display:grid;gap:.7rem;margin-top:1rem}.rate-history-chart{border:1px solid var(--line);border-radius:8px;background:#ffffff06;padding:.8rem}.rate-chart{height:16rem}.rate-summary-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;border-top:1px solid var(--line);padding-top:.75rem}.rate-summary-row span,.rate-summary-row small{color:var(--muted)}.rate-summary-row small{font-size:.82rem}.rate-row,.import-session-summary,.import-confirm-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.8rem;border:1px solid var(--line);border-radius:8px;background:#ffffff09;padding:.8rem}.rate-row small,.import-session-summary small,.import-rate-note span,.import-rate-note small,.import-warnings span,.file-drop small{color:var(--muted);font-size:.82rem}.import-uploader{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;margin-top:1rem}.import-upload-stack{display:grid;gap:.65rem;min-width:0}.file-drop{position:relative;grid-template-columns:auto minmax(0,1fr);align-items:center;min-height:5.6rem;border:1px dashed rgba(255,255,255,.18);border-radius:8px;background:#ffffff09;padding:1rem}.file-drop input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-drop span,.file-drop small{grid-column:2;min-width:0;overflow-wrap:anywhere}.file-drop svg{grid-row:span 2;color:var(--green)}.import-ai-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.65rem;border:1px solid var(--line);border-radius:8px;background:#ffffff09;color:var(--text);padding:.8rem}.import-ai-toggle input{width:1.05rem;height:1.05rem;margin-top:.12rem}.import-ai-toggle span{display:grid;gap:.2rem;min-width:0;font-weight:800}.import-ai-toggle small{color:var(--muted);font-size:.82rem;font-weight:600;overflow-wrap:anywhere}.import-session-summary{margin-top:1rem}.import-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;border:1px solid var(--line);border-radius:8px;background:#ffffff09;padding:.75rem}.import-row.selected{border-color:#16c78461;background:#16c7840f}.import-row.merge-selected{border-color:#38bdf86b;background:#38bdf812}.import-row.disabled{opacity:.74}.import-check{align-self:start;padding-top:.7rem}.import-check input{width:1.1rem;height:1.1rem}.import-fields{display:grid;gap:.6rem;min-width:0}.import-main-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr))}.import-description-input{min-width:0}.import-secondary-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));align-items:end}.import-main-fields>*,.import-secondary-fields>*,.import-fields input,.import-fields select,.import-fields label{min-width:0;max-width:100%}.import-rate-note{display:grid;gap:.2rem;min-width:0}.import-warnings{display:flex;flex-wrap:wrap;gap:.45rem}.import-warnings span,.import-match-pill{border:1px solid rgba(249,115,22,.24);border-radius:999px;background:#f9731614;color:#fed7aa;font-size:.82rem;padding:.26rem .55rem}.import-match-pill{font-weight:800}.import-warnings .merge-decision{border-color:#38bdf847;background:#38bdf81a;color:#bae6fd}.import-merge-modal{width:min(100%,42rem)}.merge-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.merge-compare-card{display:grid;gap:.35rem;min-width:0;border:1px solid var(--line);border-radius:8px;background:#ffffff09;padding:.85rem}.merge-compare-card span,.merge-compare-card small{color:var(--muted)}.merge-compare-card p{min-width:0;margin:.25rem 0;overflow-wrap:anywhere}.merge-match-meta{display:flex;flex-wrap:wrap;gap:.45rem}.merge-match-meta span{border:1px solid rgba(56,189,248,.24);border-radius:999px;background:#38bdf814;color:#bae6fd;font-size:.82rem;padding:.3rem .6rem}.merge-actions{flex-wrap:wrap}.import-confirm-bar{position:sticky;bottom:calc(5.5rem + env(safe-area-inset-bottom,0px));z-index:8;margin-top:1rem;background:#11131bf2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.notifications-panel{display:grid;gap:1rem}.support-card{align-items:flex-start}.support-card.ready{border-color:#16c7844d}.support-card.blocked{border-color:#f43f5e42}.support-card>svg{flex:0 0 auto;color:var(--green);filter:drop-shadow(0 0 12px rgba(22,199,132,.22))}.support-card.blocked>svg{color:var(--orange);filter:drop-shadow(0 0 12px rgba(249,115,22,.18))}.support-grid{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}.support-grid span{border:1px solid rgba(148,163,184,.18);border-radius:999px;color:var(--muted);font-size:.78rem;padding:.28rem .55rem}.support-grid span.ok{border-color:#16c78447;background:#16c78414;color:#8ee9c0}.support-grid span.bad{border-color:#f43f5e47;background:#f43f5e14;color:#fecdd3}.notification-settings-list{gap:.65rem}.notification-setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem}.notification-setting-row strong,.notification-permission-card strong{display:block}.notification-setting-row span,.notification-permission-card span{display:block;margin-top:.18rem;color:var(--muted);font-size:.86rem}.notification-setting-row input[type=time],.notification-setting-row select{width:min(9rem,100%)}.switch-control{display:inline-grid;width:3.25rem;height:1.85rem;cursor:pointer}.switch-control input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.switch-control>span{position:relative;border:1px solid rgba(148,163,184,.22);border-radius:999px;background:#242936;transition:background .18s ease,border-color .18s ease}.switch-control>span:after{content:"";position:absolute;top:50%;left:.23rem;width:1.3rem;height:1.3rem;border-radius:50%;background:#cbd3e4;transform:translateY(-50%);transition:transform .18s ease,background .18s ease}.switch-control input:checked+span{border-color:#16c78480;background:#16c78447}.switch-control input:checked+span:after{background:var(--green);transform:translate(1.35rem,-50%);box-shadow:0 0 14px #16c78461}.notification-permission-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem}.report-modal{width:min(100%,32rem)}.report-hero{display:flex;align-items:center;gap:.85rem;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0a;padding:1rem}.report-hero.positive{border-color:#16c78440;background:#16c78414}.report-hero.negative{border-color:#f43f5e40;background:#f43f5e14}.report-hero svg{flex:0 0 auto}.report-hero.positive svg,.report-hero.positive strong{color:var(--green)}.report-hero.negative svg,.report-hero.negative strong{color:var(--red)}.report-hero span,.report-metric span{color:var(--muted);font-size:.84rem}.report-hero strong{display:block;margin-top:.2rem;font-size:1.35rem}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.report-metric{display:grid;gap:.2rem;min-width:0;border:1px solid var(--line);border-radius:8px;background:#ffffff08;padding:.85rem}.report-metric svg{color:#38bdf8}.report-metric strong{overflow-wrap:anywhere}.report-insights{display:grid;gap:.6rem}.compact-echart{height:17rem}.month-grid>.empty-state{grid-column:span 12}.detail-page{max-width:56rem}.category-detail-hero{position:relative;display:grid;gap:.5rem;padding-right:4rem}.category-detail-hero strong{font-size:clamp(2rem,5vw,3.4rem)}.category-add-button{position:absolute;top:1rem;right:1rem}.budget-detail-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.85rem;margin-top:.45rem;border-top:1px solid rgba(255,255,255,.08);padding-top:.8rem}.budget-detail-toggle strong{display:block;margin:0;font-size:.95rem}.budget-detail-toggle span{display:block;margin-top:.2rem;color:var(--muted);font-size:.84rem}.empty-mini{display:grid;place-items:center;min-height:9rem;color:var(--muted);padding:1rem}.skeleton-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.skeleton-card{min-height:9rem;border-radius:8px;background:linear-gradient(90deg,#11131b,#1b1f2b,#11131b);background-size:200% 100%;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{to{background-position:-200% 0}}.fab{position:fixed;right:max(1.1rem,env(safe-area-inset-right));bottom:max(1.2rem,env(safe-area-inset-bottom));display:grid;place-items:center;width:4rem;height:4rem;border:0;border-radius:50%;background:linear-gradient(145deg,#22d28f,#16c784 58%,#0f9f68);color:#06110c;box-shadow:0 20px 45px #16c78452;z-index:20;opacity:0;pointer-events:none;transform:translate(calc(100% + max(1.1rem,env(safe-area-inset-right)))) scale(.96);transition:transform .42s cubic-bezier(.2,.82,.18,1),opacity .22s ease,box-shadow .22s ease;will-change:transform,opacity}.planned-fab{bottom:calc(max(1.2rem,env(safe-area-inset-bottom)) + 4.85rem);width:3.45rem;height:3.45rem;background:radial-gradient(circle at 28% 18%,rgba(255,255,255,.18),transparent 34%),linear-gradient(145deg,#22d3ee,#0ea5e9 58%,#075985);color:#e0f7ff;box-shadow:0 18px 42px #0ea5e957}.floating-action.is-visible{opacity:1;pointer-events:auto;transform:translate(0) scale(1)}.quick-coin-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:44;overflow:visible;pointer-events:none;contain:layout paint}.quick-coin-flight{position:absolute;display:grid;place-items:center;width:1.58rem;height:1.58rem;transform:translate(-50%,-50%);opacity:0;filter:drop-shadow(0 .68rem .8rem rgba(0,0,0,.44)) drop-shadow(0 0 .82rem color-mix(in srgb,var(--coin-accent, #fbbf24) 28%,transparent));animation:quickCoinFlight var(--coin-duration, 1s) cubic-bezier(.22,1,.36,1) var(--coin-delay, 0ms) forwards;will-change:transform,opacity}.quick-coin-sprite{position:relative;display:block;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 34% 26%,rgba(255,255,255,.95),transparent 15%),radial-gradient(circle at 58% 66%,#b7791f 0 18%,transparent 19%),radial-gradient(circle at 50% 50%,#fde68a 0,#fde68a 42%,#f59e0b 64%,#92400e);box-shadow:inset 0 0 0 .1rem #ffffff47,inset 0 -.18rem .22rem #78350f6b,inset 0 .16rem .16rem #ffffff6b;animation:quickCoinSpin var(--coin-spin-duration, .56s) linear infinite;transform-style:preserve-3d}.quick-coin-sprite:before{content:"";position:absolute;top:.2rem;right:.2rem;bottom:.2rem;left:.2rem;border:.08rem solid rgba(146,64,14,.36);border-radius:inherit}.quick-coin-sprite:after{content:"";position:absolute;top:.16rem;left:.24rem;width:.36rem;height:.16rem;border-radius:999px;background:#ffffffc7;transform:rotate(-28deg)}@keyframes quickCoinFlight{0%{opacity:0;transform:translate(-50%,-50%) translateZ(0) scale(var(--coin-scale, 1)) rotate(var(--coin-spin-start, 0deg))}4%{opacity:1}54%{opacity:1;transform:translate(-50%,-50%) translate3d(var(--coin-mx),var(--coin-my),0) scale(var(--coin-scale, 1)) rotate(var(--coin-spin-mid, 180deg))}86%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) translate3d(var(--coin-dx),var(--coin-dy),0) scale(var(--coin-scale, 1)) rotate(var(--coin-spin-end, 360deg))}}@keyframes quickCoinSpin{to{transform:rotateY(360deg) rotate(20deg)}}.bottom-nav{display:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0000009e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:max(.75rem,calc(env(safe-area-inset-top,0px) + .75rem)) .75rem max(.75rem,calc(env(safe-area-inset-bottom,0px) + .75rem));overflow:hidden;overscroll-behavior:contain;z-index:50}.modal{display:grid;gap:.9rem;width:min(100%,34rem);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 1.5rem);overflow:auto;overscroll-behavior:contain;border:1px solid rgba(255,255,255,.11);border-radius:8px;background:#11131b;box-shadow:var(--shadow);padding:1rem}.transaction-modal{grid-template-rows:minmax(0,1fr) auto;gap:0;width:min(100%,31rem);padding:0;overflow:hidden}.modal-scroll{display:grid;gap:.75rem;min-height:0;overflow:auto;overscroll-behavior:contain;padding:.85rem}.modal-footer{position:sticky;bottom:0;display:grid;gap:.65rem;border-top:1px solid var(--line);background:#11131bf5;padding:.75rem;box-shadow:0 -12px 26px #00000038}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.modal-header h2{margin:0}.category-preview-row{display:grid;grid-template-columns:5.6rem minmax(0,1fr);gap:.7rem;align-items:stretch}.category-icon-trigger{display:grid;place-items:center;align-content:center;gap:.35rem;min-height:5rem;border:1px solid var(--line);border-radius:8px;background:#ffffff0a;box-shadow:inset 0 0 0 1px #ffffff05}.category-icon-trigger span{color:var(--muted);font-size:.72rem;line-height:1.1}.category-icon-trigger:hover,.category-icon-trigger:focus-visible{border-color:currentColor;outline:none}.category-preview-card{display:grid;place-items:center;min-height:5rem;border:1px solid var(--line);border-radius:8px;background:#ffffff08}.icon-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(2.7rem,1fr));gap:.45rem}.icon-picker button{display:grid;place-items:center;min-height:2.7rem;border:1px solid var(--line);border-radius:8px;background:#0d0f16;color:#cbd3e4}.icon-picker button svg{display:block;width:1.8rem;height:1.8rem}.icon-picker button.active{border-color:var(--green);color:var(--green);box-shadow:0 0 18px #16c78438}.category-icon-palette{grid-template-columns:repeat(auto-fill,minmax(3.45rem,1fr));max-height:18rem;overflow:auto;overscroll-behavior:contain;padding-right:.15rem}.quick-icon-palette{grid-template-columns:repeat(6,minmax(0,1fr));max-height:min(30rem,68dvh);border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0a0c12db;padding:.5rem}.quick-icon-palette-floating{position:fixed;z-index:120;overflow:auto;overscroll-behavior:contain;box-shadow:0 20px 48px #0000006b}.category-icon-palette button{min-height:3.45rem}.color-field{display:grid;grid-template-columns:4rem minmax(0,1fr);align-items:center;gap:.75rem}.color-field input{height:3rem;padding:.25rem}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.danger-action{display:inline-flex;align-items:center;gap:.45rem;border:0;border-radius:8px;background:#f43f5e21;color:#fecdd3;font-weight:800;padding:.85rem 1rem}.comparison-tabs{width:100%;grid-auto-flow:unset;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1rem}.comparison-tabs button{min-width:0;white-space:normal;line-height:1.2}.comparison-stack{display:grid;gap:1rem}.comparison-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.compact-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem}.single-field-row{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem}.transaction-modal label{min-width:0}.transaction-choice-row{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem}.transaction-picker{position:relative;min-width:0}.transaction-choice-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.55rem;width:100%;min-height:3.45rem;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0b;color:inherit;padding:.55rem;text-align:left}.transaction-choice-card:hover,.transaction-choice-card:focus-visible,.transaction-picker.open .transaction-choice-card{border-color:#16c78457;background:#16c78412;outline:none}.transaction-choice-icon{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:8px;background:#22d3ee1f;color:#67e8f9}.transaction-choice-icon.currency{--currency-accent: #67e8f9;background:radial-gradient(circle at 30% 18%,rgba(255,255,255,.24),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--currency-accent) 28%,transparent),#ffffff0a);color:#f8fbff}.transaction-choice-icon.currency-eur,.currency-mark-eur{--currency-accent: #38bdf8}.transaction-choice-icon.currency-usd,.currency-mark-usd{--currency-accent: #22c55e}.transaction-choice-icon.currency-rub,.currency-mark-rub{--currency-accent: #f97316}.transaction-choice-icon.currency-rsd,.currency-mark-rsd{--currency-accent: #a78bfa}.transaction-choice-icon.currency-usdt,.currency-mark-usdt{--currency-accent: #14b8a6}.transaction-choice-icon.currency-usdc,.currency-mark-usdc{--currency-accent: #2775ca}.currency-mark{--currency-accent: #67e8f9;display:grid;position:relative;place-items:center;width:2rem;height:2rem;border-radius:8px;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.34),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--currency-accent) 72%,#ffffff 6%),color-mix(in srgb,var(--currency-accent) 42%,#050814 58%));color:#f8fbff;font-size:1rem;font-weight:900;line-height:1;box-shadow:inset 0 1px #ffffff2e,0 8px 18px color-mix(in srgb,var(--currency-accent) 22%,transparent)}.transaction-choice-icon .currency-mark{width:100%;height:100%;background:transparent;box-shadow:none}.currency-mark-rsd,.currency-mark-usdc{font-size:.68rem}.currency-mark-usdc:before{content:"";position:absolute;top:.34rem;right:.34rem;bottom:.34rem;left:.34rem;border:1px solid rgba(248,251,255,.62);border-radius:999px}.transaction-choice-icon.category{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent)}.transaction-choice-copy{display:grid;gap:.06rem;min-width:0}.transaction-choice-copy small{color:var(--muted);font-size:.75rem}.transaction-choice-copy strong{overflow:hidden;color:#f7f8fb;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.transaction-choice-caret{color:#9ba3b4;transition:transform .16s ease}.transaction-picker.open .transaction-choice-caret{transform:rotate(90deg)}.transaction-choice-menu{position:absolute;z-index:20;top:calc(100% + .35rem);left:0;display:grid;gap:.4rem;width:100%;max-height:16.5rem;overflow:auto;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0d0f16fa;box-shadow:0 18px 42px #00000057;padding:.45rem}.transaction-choice-menu-floating{position:fixed;z-index:120;overscroll-behavior:contain}.transaction-choice-menu-floating.category-choice-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.transaction-choice-menu button{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem;min-height:2.45rem;border:1px solid transparent;border-radius:8px;background:transparent;color:#dce4f2;padding:.5rem;text-align:left}.transaction-choice-menu button:hover,.transaction-choice-menu button:focus-visible,.transaction-choice-menu button.active{border-color:#16c78447;background:#16c78417;outline:none}.category-picker .transaction-choice-menu{right:0;left:auto;grid-template-columns:repeat(2,minmax(0,1fr));width:min(23rem,calc(100vw - 2rem))}.category-choice-menu button{grid-template-columns:minmax(0,1fr);min-width:0}.category-choice-menu .category-badge{grid-column:1 / -1;max-width:100%}.transaction-amount-date-row{grid-template-columns:minmax(0,1fr) minmax(0,9.5rem)}.date-fixed-row{width:100%;grid-template-columns:minmax(0,9.5rem) minmax(0,1fr)}.compact-pair input,.compact-pair select,.transaction-modal input,.transaction-modal select,.transaction-modal textarea{min-width:0;max-width:100%}.income-date-row{grid-template-columns:minmax(0,1fr)}.transaction-modal input[type=date]{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-inline:.65rem;font-size:.92rem}.save-transaction-button{min-height:3.75rem;padding-block:.95rem}.daily-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-color:#323849 transparent;-webkit-overflow-scrolling:touch}.daily-chart-canvas{flex:0 0 auto;min-width:100%}.single-line-comment{min-height:2.85rem;max-height:2.85rem;resize:none}.conversion-preview{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-radius:8px;background:#16c7841a;padding:.9rem}.auto-rate-note{margin:0;border:1px solid rgba(56,189,248,.18);border-radius:8px;background:#38bdf814;color:#b9dcff;padding:.7rem .85rem;font-size:.86rem}.auto-rate-note.error{border-color:#f59e0b47;background:#f59e0b1a;color:#fde68a}.conversion-preview span,.conversion-preview strong{overflow-wrap:anywhere}.planned-impact-preview{cursor:help;outline:none}.planned-impact-preview strong{flex:0 0 auto;color:#e8fff6;line-height:1.1;text-align:right;white-space:nowrap}.planned-impact-preview.negative{border:1px solid rgba(244,63,94,.3);background:#f43f5e1c}.planned-impact-preview.negative strong{color:#fecdd3}.planned-impact-preview:hover,.planned-impact-preview:focus,.planned-impact-preview:focus-visible{border-color:#16c78461;box-shadow:0 0 0 3px #16c7841a}.planned-impact-preview:hover .planned-impact-tooltip,.planned-impact-preview:focus .planned-impact-tooltip,.planned-impact-preview:focus-visible .planned-impact-tooltip,.planned-impact-preview:focus-within .planned-impact-tooltip{visibility:visible;opacity:1;transform:translateY(0)}.planned-impact-tooltip{top:auto;bottom:calc(100% + .45rem);right:0;left:0;text-align:left}.planned-deficit-warning{display:grid;gap:.16rem;border:1px solid rgba(244,63,94,.28);border-radius:8px;background:#f43f5e1a;color:#fecdd3;padding:.72rem .85rem}.planned-deficit-warning strong{font-size:.9rem}.planned-deficit-warning span{color:#fda4af;font-size:.82rem;overflow-wrap:anywhere}.planned-modal-actions{flex-wrap:wrap;justify-content:flex-end}.primary-button{min-height:3rem}.secondary-button{min-height:3rem;border:1px solid var(--line);border-radius:8px;background:var(--panel-3);color:var(--text);font-weight:800;padding:.7rem .85rem}.toggle-row{display:flex;align-items:center;gap:.65rem}.toggle-row input{width:auto}.auth-shell{min-height:100dvh;display:block;padding:calc(env(safe-area-inset-top,0px) + 1rem) 1rem calc(env(safe-area-inset-bottom,0px) + 1rem);background:radial-gradient(circle at 50% 0%,rgba(22,199,132,.18),transparent 32rem),#080b12}.auth-layout{width:min(100%,26rem);min-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 2rem);margin:0 auto;display:grid;grid-template-rows:minmax(10rem,1fr) auto;gap:1rem}.auth-hero-brand{display:grid;align-self:center;justify-items:center;gap:.65rem;text-align:center;padding:.75rem 0 1.1rem}.auth-hero-brand .brand-mark{width:5.4rem;height:5.4rem;border-radius:0;background:transparent;box-shadow:none}.auth-hero-brand .brand-mark img{width:100%;height:100%;filter:drop-shadow(0 1.2rem 1.7rem rgba(0,8,20,.42))}.auth-hero-brand h1{margin:0;font-family:ui-rounded,SF Pro Rounded,Avenir Next,Inter,system-ui,sans-serif;font-size:clamp(2.65rem,14vw,4.1rem);font-weight:500;letter-spacing:0;line-height:.95;text-shadow:0 0 1.8rem rgba(22,199,132,.18)}.launch-splash{position:relative;display:grid;align-content:center;justify-items:center;gap:1.5rem;min-height:100dvh;padding:max(2rem,env(safe-area-inset-top,0px)) 1.5rem max(2rem,env(safe-area-inset-bottom,0px));background:radial-gradient(circle at 50% 72%,rgba(22,199,132,.24),transparent 30rem),radial-gradient(circle at 50% 88%,rgba(56,189,248,.11),transparent 34rem),linear-gradient(140deg,#090a0f,#10131b 48%,#090a0f);color:#f8fbff;overflow:hidden}.launch-splash:before,.launch-splash:after{content:"";position:absolute;left:50%;top:calc(50% - 4.2rem);width:min(40vw,10rem);aspect-ratio:1;border:1px solid rgba(34,211,173,.34);border-radius:50%;box-shadow:0 0 2.6rem #16c7841f,inset 0 0 2.2rem #38bdf80f;opacity:0;transform:translate(-50%,-50%) scale(.12);animation:splash-ripple 1.9s cubic-bezier(.12,.74,.18,1) .76s forwards;pointer-events:none}.launch-splash:after{animation-delay:1.12s}.launch-logo{position:relative;z-index:1;width:min(34vw,9rem);opacity:0;transform:translateY(1.05rem) scale(.975);animation:splash-enter .98s cubic-bezier(.16,1,.3,1) forwards;filter:drop-shadow(0 1.75rem 2.5rem rgba(0,5,16,.44))}.launch-splash strong{position:relative;z-index:1;font-family:ui-rounded,SF Pro Rounded,Avenir Next,Inter,system-ui,sans-serif;font-weight:500;letter-spacing:0}.launch-splash strong{font-size:clamp(3.2rem,13vw,5.2rem);line-height:1;opacity:0;transform:translateY(1.05rem);animation:splash-enter 1.18s cubic-bezier(.16,1,.3,1) 1.28s forwards;text-shadow:0 0 1.8rem rgba(56,189,248,.26)}@keyframes splash-ripple{12%{opacity:.48}to{opacity:0;transform:translate(-50%,-50%) scale(5.6)}}@keyframes splash-enter{to{opacity:1;transform:translateY(0) scale(1)}}.auth-card{width:100%;display:grid;gap:.9rem;padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:#11131b;box-shadow:0 1rem 4rem #00000059}@media (min-width: 901px) and (min-height: 720px){.auth-card{transform:translateY(calc(-1*clamp(4rem,11vh,7rem)))}}.auth-card p{margin:0;color:var(--muted)}.auth-card label{display:grid;gap:.35rem}.auth-card input,.workspace-strip select,.invite-row input,.invite-row select{min-width:0;border:1px solid var(--line);border-radius:.7rem;background:#0d1018;color:var(--text);padding:.75rem .85rem}.auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.auth-actions.single{grid-template-columns:1fr}.auth-actions button{width:100%}.debug-code,.auth-message{border-radius:.7rem;background:#22d3ee1f;color:#b8ecff;padding:.75rem;overflow-wrap:anywhere}.debug-code a{color:inherit}.auth-switch{text-align:center;font-size:.9rem}.auth-switch button{border:0;background:transparent;color:#2ee6a6;font:inherit;font-weight:700;cursor:pointer;padding:0}.auth-switch button:disabled{cursor:not-allowed;opacity:.6}@media (max-width: 420px){.auth-actions{grid-template-columns:1fr}}.workspace-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.65rem;color:var(--muted);font-size:.8rem}.workspace-strip select{width:min(100%,15rem);padding:.55rem .7rem}.workspace-strip button{border:0;border-radius:.65rem;background:#94a3b824;color:#d8e1f2;padding:.55rem .75rem}.invite-card{margin-top:1rem}.invite-row{display:grid;grid-template-columns:minmax(0,1fr) 8rem auto;gap:.6rem;align-items:center}.settings-note{margin:1rem 0 0;color:var(--muted);font-size:.92rem}.error-text{color:#fecdd3}.workspace-manager{display:grid;gap:1rem}.workspace-card-list{display:grid;gap:.65rem}.workspace-card-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.8rem;border:1px solid var(--line);border-radius:8px;background:#ffffff08;padding:.8rem}.workspace-card-row.active{border-color:#16c78461;background:#16c78412}.workspace-card-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;min-width:0}.workspace-card-main svg{color:var(--blue);filter:drop-shadow(0 0 .55rem rgba(34,211,238,.28))}.workspace-card-main strong,.workspace-card-main span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-card-main span,.workspace-create-form span,.workspace-member-row span,.workspace-role-select span{color:var(--muted);font-size:.86rem}.workspace-create-form,.workspace-invite-form,.workspace-members-panel{display:grid;gap:.75rem;border:1px solid var(--line);border-radius:8px;background:#ffffff08;padding:.9rem}.workspace-create-form{grid-template-columns:minmax(0,1fr) minmax(12rem,18rem) auto;align-items:center}.workspace-create-form strong,.workspace-create-form span,.workspace-member-row strong,.workspace-member-row span{display:block}.workspace-member-list{display:grid;gap:.55rem}.workspace-member-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.7rem;border:1px solid rgba(255,255,255,.06);border-radius:8px;background:#ffffff08;padding:.75rem}.workspace-member-row strong,.workspace-member-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-create-form input,.workspace-invite-form input,.workspace-role-select select{min-width:0;border:1px solid var(--line);border-radius:.7rem;background:#0d1018;color:var(--text);padding:.75rem .85rem}.workspace-role-select{display:grid;gap:.35rem}.workspace-toggle-row{margin:0}@media (min-width: 1101px){html,body,#root{height:100%;overflow:hidden}.app-shell{height:100vh;min-height:0;overflow:hidden}.sidebar{position:static;height:100vh;overflow:hidden}.main{height:100vh;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}.tab-stage{height:auto!important;overflow:visible;touch-action:auto;transition:none}.tab-track{display:block;width:100%!important;transform:none!important;transition:none;will-change:auto}.tab-slide{display:none;width:100%!important;flex:none;transform:none;transition:none}.tab-slide.active{display:block}}@media (max-width: 1100px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main{padding-bottom:6.5rem}.fab{right:max(1rem,env(safe-area-inset-right));bottom:calc(6.1rem + env(safe-area-inset-bottom))}.planned-fab{bottom:calc(10.85rem + env(safe-area-inset-bottom))}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);min-height:calc(4.65rem + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.1);background:#090a0fe6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:.45rem .4rem calc(.45rem + env(safe-area-inset-bottom));z-index:19}.bottom-nav button{display:grid;place-items:center;gap:.2rem;min-width:0;border-radius:8px;color:var(--muted);font-size:.72rem}.bottom-nav button.active{color:var(--text);background:#ffffff12}.app-update-toast{left:.75rem;right:.75rem;bottom:calc(5.25rem + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) auto;width:auto;transform:none}.app-update-toast .toast-close{grid-column:2;grid-row:1}.app-update-toast .small-action{grid-column:1 / -1}.app-notice-toast{bottom:calc(9rem + env(safe-area-inset-bottom))}}@media (max-width: 900px){.stats-grid,.analytics-grid,.menu-layout{grid-template-columns:1fr}.chart-card,.budget-card,.planned-card,.fixed-card,.recent-card{grid-column:span 12}.forecast-analytics{grid-column:1 / -1}.forecast-main,.forecast-breakdown,.forecast-analytics-grid{grid-template-columns:1fr}.forecast-values{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-list{position:static}.compact-form{grid-template-columns:1fr}}@media (max-width: 620px){.main{padding:var(--app-top-padding) .75rem 6.5rem}.topbar{align-items:flex-start}.title-row{gap:.55rem}.topbar h1{max-width:100%;overflow-wrap:anywhere}.hero-panel{align-items:center;flex-direction:column;min-height:18rem;text-align:center}.hero-panel>div:first-child{width:100%}.hero-panel span{max-width:18rem;margin-inline:auto}.safe-ring{width:min(15rem,74vw);align-self:center}.stats-grid,.skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:7rem}.stat-heading{gap:.5rem}.stat-heading span{font-size:.94rem;line-height:1.2}.stat-card strong{font-size:1.2rem}.income-expense-flow{min-height:4.55rem}.income-expense-side{gap:.38rem;padding:.58rem}.income-expense-icon{width:1.95rem;height:1.95rem}.forecast-card{gap:.75rem}.collapsible-header{gap:.5rem}.collapsible-trigger{padding:.85rem}.forecast-status,.forecast-note{align-items:flex-start}.forecast-values{grid-template-columns:1fr}.forecast-pace-panel{gap:.28rem;padding:.55rem .55rem .32rem}.forecast-pace-head{gap:.35rem}.forecast-pace-toggle button{font-size:.72rem;padding:.34rem .45rem}.planned-summary-grid,.planned-row,.planned-row-main{grid-template-columns:1fr}.planned-row-copy{text-align:left}.planned-actions{justify-content:stretch}.planned-actions button{flex:1}.planned-modal-actions{display:grid;grid-template-columns:1fr}.quick-template-row,.goal-manager-summary,.quick-template-preview{grid-template-columns:1fr}.quick-template-meta{justify-self:start;text-align:left}.report-history-summary,.report-history-row{grid-template-columns:1fr}.report-history-total{justify-items:start}.forecast-pace-caption{display:grid;gap:.2rem}.forecast-pace-caption small{text-align:left}.forecast-similarity-help{justify-self:start;text-align:left}.forecast-similarity-tooltip{right:auto;left:0}.forecast-pace-toggle{width:100%}.forecast-pace-chart{height:3.4rem}.forecast-note{flex-direction:column}.fixed-row,.transaction-row{grid-template-columns:1fr;align-items:stretch}.transaction-money{justify-self:start;text-align:left}.managed-row,.budget-setting-row,.budget-setting-controls,.budget-carry-toggle,.pace-day-grid{grid-template-columns:1fr}.budget-setting-controls{justify-items:stretch}.budget-carry-toggle{min-width:0}.add-budget-panel{grid-template-columns:1fr}.slot-actions,.row-actions,.fixed-pay-button{top:.55rem;right:.55rem}.fixed-row .slot-actions{right:2.95rem}.transaction-row.has-actions,.fixed-row{padding-right:5.4rem}.fixed-row.has-actions{padding-right:8rem}.form-grid{grid-template-columns:1fr}.transaction-modal{width:min(100%,29rem);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 1rem)}.modal-scroll{gap:.62rem;padding:.75rem}.category-preview-row{grid-template-columns:4.8rem minmax(0,1fr)}.category-icon-trigger{min-height:4.8rem}.category-icon-palette{grid-template-columns:repeat(auto-fill,minmax(3.2rem,1fr));max-height:14rem}.quick-icon-palette{grid-template-columns:repeat(4,minmax(0,1fr));max-height:min(26rem,62dvh);padding:.45rem}.quick-icon-palette button{min-height:3.05rem}.quick-template-appearance-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%}.quick-color-palette{grid-template-columns:repeat(5,minmax(0,1fr))}.compact-pair,.transaction-choice-row,.transaction-amount-date-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.55rem}.transaction-choice-card{min-height:3.2rem;padding:.5rem}.transaction-choice-icon{width:2rem;height:2rem}.category-picker .transaction-choice-menu{width:min(22rem,calc(100vw - 2rem))}.date-fixed-row,.income-date-row{grid-template-columns:minmax(0,1fr)}.comparison-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.echart{height:18rem}.rate-chart{height:12rem}.donut-shell{width:min(100%,20rem)}.comparison-summary{grid-template-columns:1fr}.notification-setting-row,.notification-permission-card{grid-template-columns:minmax(0,1fr) auto}.notification-setting-row input[type=time],.notification-setting-row select{width:7.6rem}.notification-permission-card{align-items:stretch;grid-template-columns:1fr}.workspace-strip,.invite-row{grid-template-columns:1fr}.invite-row{display:grid}.workspace-create-form,.workspace-card-row{grid-template-columns:1fr}.workspace-card-row .header-icon-button{justify-self:end}.rate-toolbar,.base-currency-card,.import-uploader,.rate-row,.rate-summary-row,.import-session-summary,.import-confirm-bar,.import-main-fields,.import-secondary-fields{grid-template-columns:1fr}.import-check{padding-top:.2rem}.merge-compare-grid{grid-template-columns:1fr}.merge-actions{display:grid;grid-template-columns:1fr}.file-drop{grid-template-columns:auto minmax(0,1fr)}.import-confirm-bar{bottom:calc(5.7rem + env(safe-area-inset-bottom,0px))}}
