: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) )}*{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;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}.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{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)}.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%)}.safe-ring-wrap{position:relative;display:grid;justify-items:center;gap:.7rem;flex:0 0 auto}.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}.daily-result{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:2rem;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#ffffff0a;padding:.35rem .7rem}.daily-result span{color:var(--muted);font-size:.8rem}.daily-result strong{margin:0;font-size:.92rem}.daily-result.positive strong{color:var(--green)}.daily-result.negative strong{color:var(--red)}.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}.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}.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))}.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}.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}.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}.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}.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}.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(8rem,.8fr) minmax(8rem,1fr) minmax(8rem,1fr) auto;align-items:end;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}.planned-fab{bottom:calc(max(1.2rem,env(safe-area-inset-bottom)) + 4.85rem);width:3.45rem;height:3.45rem;background:linear-gradient(145deg,#38bdf8,#16c784 68%,#0f9f68);color:#051015}.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.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}.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}.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}.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}.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 button{width:100%}.debug-code,.auth-message{border-radius:.7rem;background:#22d3ee1f;color:#b8ecff;padding:.75rem;overflow-wrap:anywhere}@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(5.6rem + env(safe-area-inset-bottom))}.planned-fab{bottom:calc(10.15rem + 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}.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}.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}.compact-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.55rem}.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))}}
