:root{--bg: #000000;--card: #1c1c1e;--card-2: #2c2c2e;--text: #f5f5f7;--text-2: #a1a1a6;--text-3: #6e6e73;--green: #30d158;--green-dim: #1d7a33;--red: #ff453a;--orange: #ff9f0a;--yellow: #ffd60a;--blue: #0a84ff;--purple: #bf5af2;--border: #38383a;--glass-border: rgba(255, 255, 255, .12);--radius: 24px;--tabbar-h: 64px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-tap-highlight-color:transparent;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 8% 12%,rgba(48,209,88,.1),transparent 32%),radial-gradient(circle at 92% 36%,rgba(10,132,255,.11),transparent 35%),radial-gradient(circle at 38% 92%,rgba(191,90,242,.09),transparent 34%)}#root{position:relative;min-height:100dvh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:2px}svg{flex:none}.app{max-width:560px;margin:0 auto;min-height:100dvh;padding:0 16px calc(112px + env(safe-area-inset-bottom))}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 0 10px}.app-header h1{font-size:22px;line-height:1.2;margin:0}.header-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.screen{min-width:0}.card,.more-card,.nav-card,.quick-action,.movement-choice,.budget-group,.modal,.tabbar,.back-pill,.month-nav button,.chip,.badge{background:var(--card);border:1px solid var(--glass-border);box-shadow:inset 0 1px #ffffff2e,0 8px 32px #00000059}.card{border-radius:var(--radius);padding:16px;margin:12px 0;color:var(--text)}.card h2{font-size:15px;margin:0 0 6px;color:var(--text-2);font-weight:600}.card h3{font-size:17px;margin:0 0 12px}.card-button{display:flex;flex-direction:column;width:100%;text-align:left;font:inherit}.card-button:hover{border-color:#ffffff3d}.big-number{display:block;font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-1px;color:var(--text)}.big-number.green{color:var(--green)}.big-number.red{color:var(--red)}.big-number.small{font-size:24px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.06em}.green{color:var(--green)}.orange{color:var(--orange)}.blue{color:var(--blue)}.purple{color:var(--purple)}.muted{color:var(--text-2);font-size:13px}.small{font-size:12px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.row{display:flex;justify-content:space-between;align-items:center;gap:10px}.row+.row{margin-top:6px}.list-row{padding:10px 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:0}.list-row>span:first-child{min-width:0}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stat{background:var(--card-2);border:1px solid var(--glass-border);border-radius:18px;padding:12px 10px;min-width:0}.stat .label{font-size:11px;color:var(--text-2);letter-spacing:.04em}.stat .value{font-size:16px;font-weight:700;margin-top:4px;overflow-wrap:anywhere}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;color:var(--text-2);font-size:11px;box-shadow:none}.badge.warn{color:var(--yellow)}.badge.offline{color:var(--red)}.month-nav{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:12px;max-width:430px;margin:4px auto 16px}.month-nav button{width:40px;height:40px;padding:0;border-radius:50%;color:var(--text);font-size:23px}.month-nav .current{text-align:center;font-weight:700;font-size:17px;text-transform:capitalize}.btn{border:1px solid var(--glass-border);border-radius:12px;padding:12px 16px;font-size:15px;font-weight:600;background:var(--card-2);color:var(--text);box-shadow:inset 0 1px #ffffff1f}.btn.primary{background:#30d158d9;color:#000;border-color:#fff3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.btn.danger{color:var(--red)}.btn.ghost{background:#0000001f;border:1px dashed var(--border);color:var(--green);box-shadow:none}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:default}.btn-row{display:flex;gap:8px;margin-top:12px}.btn-row .btn{flex:1}.tabbar{position:fixed;z-index:40;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:528px;height:var(--tabbar-h);border-radius:999px;display:flex;align-items:center;padding:0 8px}.tabbar button{flex:1;min-width:0;background:none;border:none;color:var(--text-2);font-size:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.tabbar button.active{color:var(--green)}.tabbar .fab{width:56px;height:56px;flex:none;align-self:center;margin-top:-28px;border-radius:50%;color:#fff;background:#30d158b8;border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 1px #ffffff4d,0 8px 24px #30d15840;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}.panel-hero{display:grid;gap:16px}.panel-hero>.card{margin:0;height:100%}.rta-card{gap:13px}.summary-rows{display:block;padding-top:4px}.summary-rows .row{color:var(--text-2);font-size:13px;padding:5px 0}.summary-rows strong{color:var(--text)}.rta-rule{display:block;line-height:1.45}.balance-card{justify-content:space-between;gap:22px}.balance-stat{display:flex;flex-direction:column;gap:6px;min-width:0}.balance-stat .label{color:var(--text-2);font-size:12px}.balance-stat strong{font-size:17px;overflow-wrap:anywhere}.balance-secondary{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:16px;border-top:1px solid var(--border)}.balance-secondary>span{display:flex;flex-direction:column;gap:5px;color:var(--text-2);font-size:12px}.balance-secondary strong{color:var(--text);font-size:15px}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.quick-action{display:flex;align-items:center;gap:10px;min-height:58px;padding:12px;border-radius:16px;color:var(--text);text-align:left;font-size:13px}.quick-action svg{color:var(--green)}.panel-bottom{display:grid;gap:0}.transaction-detail{display:block;margin-top:3px;font-size:12px}.amt{font-weight:700;white-space:nowrap}.field{margin:12px 0}.field label{display:block;font-size:13px;color:var(--text-2);margin-bottom:6px}.field input,.field select,.field textarea,.filters select{width:100%;background:var(--card-2);border:1px solid var(--glass-border);color:var(--text);border-radius:12px;padding:12px;font-size:16px}.amount-input{font-size:30px!important;font-weight:700;text-align:center;padding:15px 12px!important}.money-input-hint{margin-top:6px;text-align:center}.money-input-error{color:var(--red)}.assignment-total{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 8px}.assignment-total strong{font-size:22px}.incremental-hint{margin-top:8px;text-align:center}.kbd-hint{font-size:12px;color:var(--text-3);margin-top:5px}.type-switch{display:flex;gap:8px}.type-switch button{flex:1;padding:10px;border-radius:999px;border:1px solid var(--glass-border);background:var(--card-2);color:var(--text);font-weight:600}.type-switch button.active{background:var(--green);color:#000;border-color:var(--green)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.chip{padding:8px 12px;border-radius:999px;color:var(--text);font-size:13px;box-shadow:none}.chip.active{background:var(--green);color:#000}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000009e;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:0}.modal{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;border-radius:24px 24px 0 0;padding:18px 16px calc(26px + env(safe-area-inset-bottom))}.modal h2{margin:4px 44px 16px 0;font-size:22px}.modal-close{float:right;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--card-2);border:1px solid var(--glass-border);color:var(--text-2);font-size:24px}.movement-choices{display:grid;gap:12px}.movement-choice{display:flex;align-items:flex-start;gap:14px;width:100%;padding:16px;border-radius:24px;color:var(--text);text-align:left}.movement-choice>span:last-child{display:flex;flex-direction:column;gap:5px}.movement-choice strong{font-size:16px}.movement-choice span span{color:var(--text-2);font-size:13px;line-height:1.4}.movement-choice-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#ffffff14;color:var(--green)}.movement-choice.featured{background:var(--green);border-color:var(--green)}.movement-choice.featured,.movement-choice.featured span span,.movement-choice.featured .movement-choice-icon{color:#fff}.movement-choice.featured .movement-choice-icon{background:#ffffff29}.tx-row{display:flex;justify-content:space-between;gap:10px;padding:13px 4px;border-bottom:1px solid var(--border);width:100%;background:none;border-left:0;border-right:0;border-top:0;color:var(--text);text-align:left}.tx-row:last-child{border-bottom:0}.tx-row .who{font-weight:600;font-size:15px}.tx-row .where{font-size:12px;color:var(--text-2);margin-top:3px}.tx-row .amt.income{color:var(--green)}.tag{display:inline-block;font-size:11px;background:var(--card-2);border-radius:999px;padding:3px 8px;color:var(--text-2);margin:4px 4px 0 0}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.filters select{width:auto;flex:1 1 135px;font-size:13px;padding:9px}.empty,.error-box,.notice-box{border-radius:18px;padding:16px;margin:12px 0;font-size:14px}.empty{text-align:center;color:var(--text-2);border:1px dashed var(--border)}.error-box{background:#ff453a1f;color:#ffb4ab;border:1px solid rgba(255,69,58,.22)}.notice-box{background:#30d1581a;color:#9be7a8;border:1px solid rgba(48,209,88,.18)}.planning-navigation{display:grid;gap:12px}.nav-card{display:flex;align-items:center;gap:13px;width:100%;padding:16px;border-radius:24px;color:var(--text);text-align:left}.nav-card-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:13px;background:#ffffff14}.nav-card-icon.orange{color:var(--orange);background:#ff9f0a21}.nav-card-icon.blue{color:var(--blue);background:#0a84ff24}.nav-card-icon.purple{color:var(--purple);background:#bf5af224}.nav-card-icon.green-bg{color:var(--green);background:#30d15821}.nav-card-icon.red-bg{color:var(--red);background:#ff453a21}.nav-card-icon.gray{color:var(--text-2)}.nav-card-text{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}.nav-card-text strong{font-size:16px}.nav-card-text span{color:var(--text-2);font-size:13px}.nav-card>svg{color:var(--text-3)}.back-pill{display:inline-flex;padding:8px 14px;border-radius:999px;color:var(--text-2);font-size:13px;box-shadow:none;margin-bottom:10px}.planning-side-nav{display:none}.planning-detail{min-width:0}.budget-status{display:flex;flex-direction:column;gap:14px}.budget-status-values{display:grid;grid-template-columns:1fr 1fr;gap:12px}.budget-status-values>span{display:flex;flex-direction:column;gap:4px}.budget-status-values strong{font-size:21px}.progress-track{height:12px;overflow:hidden;border-radius:999px;background:var(--card-2)}.progress-fill{height:100%;border-radius:inherit;background:var(--orange)}.progress-legend{display:flex;flex-wrap:wrap;gap:10px 16px;color:var(--text-2);font-size:11px}.progress-legend span{display:inline-flex;align-items:center;gap:5px}.progress-legend span.active{color:var(--text);font-weight:700}.progress-legend span.orange{color:var(--orange)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%}.dot.gray{background:var(--text-3)}.dot.orange{background:var(--orange)}.budget-group{border-radius:24px;padding:0 16px;margin:16px 0}.group-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:16px 0 8px;color:var(--text);font-size:14px;font-weight:700}.group-total{color:var(--text-2);font-weight:400;margin-left:6px}.group-menu{width:32px;height:32px;border:0;border-radius:50%;background:var(--card-2);color:var(--text-2)}.cat-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid var(--border);width:100%;color:var(--text);background:none;border-left:0;border-right:0;border-top:0;text-align:left;font-size:15px}.cat-row:last-child{border-bottom:0}.cat-row .name{font-weight:600}.cat-row .amounts{text-align:right;flex:none}.cat-row .available{font-weight:700;color:var(--green)}.cat-row .available.neg{color:var(--red)}.cat-row .detail{font-size:12px;color:var(--text-2);margin-top:3px}.sub-row{padding-left:16px;color:var(--text-2);font-size:13px}.chevron{display:inline-block;width:20px;color:var(--text-2)}.goal-accounts{padding:8px 4px 12px}.add-category{margin:10px 0 16px}.scheduled-intro{line-height:1.5;margin:12px 4px 16px}.new-scheduled{margin-top:14px}.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.more-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:164px;padding:16px;border-radius:24px;color:var(--text);text-align:left}.more-card strong{font-size:16px}.more-card .muted{line-height:1.35}.category-structure-row{padding:11px 0;border-bottom:1px solid var(--border)}.category-structure-row:last-child{border-bottom:0}.category-structure-row .muted{margin-top:5px;line-height:1.45}.stats-screen{display:grid;gap:16px}.stats-screen>.card{margin:0}.stats-intro{line-height:1.5;margin:0 4px}.balance-chart-card{min-width:0}.balance-chart-wrap{margin-top:18px;min-width:0}.balance-chart{display:block;width:100%;height:auto;overflow:visible}.chart-grid{stroke:#ffffff12;stroke-width:1}.chart-axis{stroke:#ffffff29;stroke-width:1}.chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart-month{fill:var(--text-2);font-size:11px}.chart-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:8px}.chart-legend>span{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:12px}.chart-legend strong{color:var(--text);margin-left:3px}.report-lead{color:var(--text-2);font-size:13px;line-height:1.45;margin:0 0 16px}.bar-row{margin:10px 0}.bar-label{display:flex;justify-content:space-between;gap:10px;font-size:13px}.bar-track{height:9px;background:var(--card-2);border-radius:999px;margin-top:5px;overflow:hidden}.bar-fill{height:100%;background:var(--green);border-radius:inherit}.bar-fill.red{background:var(--red)}.bar-fill.yellow{background:var(--yellow)}@supports ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))){:root{--card: rgba(28, 28, 30, .55);--card-2: rgba(44, 44, 46, .62)}.card,.more-card,.nav-card,.quick-action,.movement-choice,.budget-group,.modal,.tabbar,.back-pill,.month-nav button,.chip,.badge,.btn,.stat,.field input,.field select,.field textarea,.filters select{-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}.modal{background:#1c1c1ed1}.tabbar{background:#1c1c1e9e}}@media(min-width:768px){.app{max-width:720px}.panel-hero{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-grid,.more-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.planning-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.app{max-width:1120px;padding-left:24px;padding-right:24px}.app-header{padding-top:28px}.tabbar{max-width:560px;bottom:24px}.panel-bottom{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel-bottom>.card{margin:0}.planning-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:22px;align-items:start}.planning-side-nav{display:block}.planning-side-nav .planning-navigation{grid-template-columns:1fr;position:sticky;top:20px}.stats-screen{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-intro,.balance-chart-card,.stats-screen>.card:last-child{grid-column:1 / -1}.modal-backdrop{align-items:center;padding:24px}.modal{border-radius:24px;max-height:88dvh;padding:22px}}@media(max-width:480px){.chart-month{font-size:9px}.chart-legend{gap:8px 12px}.chart-legend>span{font-size:11px}}@media(max-width:370px){.app{padding-left:12px;padding-right:12px}.tabbar{width:calc(100% - 24px);padding:0 4px}.tabbar button{font-size:10px}.tabbar .fab{width:52px;height:52px}.big-number{font-size:36px}.quick-grid{gap:8px}.quick-action{padding:10px;font-size:12px}.more-card{min-height:154px;padding:13px}}@media(prefers-reduced-transparency:reduce){:root{--card: #1c1c1e;--card-2: #2c2c2e}.card,.more-card,.nav-card,.quick-action,.movement-choice,.budget-group,.modal,.tabbar,.back-pill,.month-nav button,.chip,.badge,.btn,.stat,.field input,.field select,.field textarea,.filters select{-webkit-backdrop-filter:none;backdrop-filter:none}}
