:root{--ink:#193442;--muted:#697e88;--deep:#123b4b;--teal:#07836e;--blue:#356890;--red:#c35d51;--border:#e3ebee;--bg:#f5f8f9;--lav:#f3f0fb;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}body{margin:0;min-height:100dvh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.hidden{display:none!important}.shell{max-width:760px;margin:auto;padding:calc(env(safe-area-inset-top) + 18px) 18px 165px}.header{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center}.brand-icon{display:grid;place-items:center;border-radius:15px;background:var(--deep);color:#fff;font-size:26px;font-weight:800;height:45px;width:45px}.brand strong{display:block;font-size:21px;letter-spacing:-.8px}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.settings-toggle,.month-bar button{border:1px solid var(--border);background:white;border-radius:12px;color:var(--deep);width:41px;height:40px;font-size:24px;display:grid;place-items:center}.month-bar{display:flex;align-items:center;justify-content:center;gap:18px;margin:23px 0 21px}.month-bar #month-label{min-width:174px;text-align:center;font-weight:760;font-size:15px;text-transform:capitalize}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 16px}.page-title{font-size:21px;line-height:1.15;letter-spacing:-.6px;margin:0 0 6px}.subtext{color:var(--muted);font-size:12px;line-height:1.6;margin:0}.eyebrow{font-size:12px;color:#c0e2dd;margin:0 0 11px}.hero{background:linear-gradient(125deg,#123b4b,#17625e);border-radius:23px;color:white;padding:23px 22px;box-shadow:0 14px 26px #174a5121;position:relative;overflow:hidden}.hero:after{content:'';position:absolute;right:-55px;top:-72px;border:1px solid #ffffff25;border-radius:100%;height:210px;width:210px;pointer-events:none}.hero-amount{font-size:33px;line-height:1.15;letter-spacing:-1.6px;font-weight:820;position:relative;z-index:1}.hero-amount.negative{color:#ffb9ab}.hero-sub{font-size:12px;color:#cbdddc;margin:9px 0 19px;line-height:1.5}.hero-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;color:#ddedeb;font-size:12px;margin-top:10px}.hero-foot b{color:#fff}.meter{height:9px;background:#ffffff36;border-radius:99px;overflow:hidden}.meter div{height:100%;background:#a0ead2;border-radius:inherit}.meter .over{background:#f9ad9d}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:13px 0}.stat{background:#fff;border:1px solid var(--border);padding:16px;border-radius:17px;min-width:0}.stat-label{color:var(--muted);font-weight:690;font-size:12px}.stat-value{font-size:20px;font-weight:810;letter-spacing:-.7px;margin:8px 0 5px;word-break:break-word}.stat-foot{color:#7c9098;font-size:11px;line-height:1.5}.green{color:var(--teal)}.red{color:var(--red)}.section{margin-top:25px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-head h2,.panel h2{margin:0;font-size:16px;letter-spacing:-.3px}.small-action{font-size:12px;font-weight:750;color:var(--teal);border:0;background:transparent;padding:6px 1px}.panel{background:white;border:1px solid var(--border);border-radius:17px;padding:16px}.soft-note{background:#eaf5f2;border:1px solid #d6eae4;color:#426f65;padding:13px 15px;border-radius:13px;font-size:12px;line-height:1.6;margin-top:13px}.warn-note{background:#fff5ef;border:1px solid #f4dfd0;color:#946b4f}.muted{color:var(--muted)}.fine{font-size:11px;line-height:1.6}.btn-sm,.btn-outline,.btn-soft{padding:9px 12px;border-radius:11px;font-weight:750;font-size:12px;white-space:nowrap}.btn-sm,.btn-soft{background:#e9f5f0;color:#087863;border:1px solid #d5eae2}.btn-outline{background:#fff;border:1px solid #d9e5e8;color:#245369}.primary{border:none;background:var(--deep);color:white;font-weight:750;padding:13px 18px;border-radius:12px}.full{width:100%}.flex-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.stack{display:grid;gap:11px}.fund-card,.credit-card{background:white;border:1px solid var(--border);border-radius:17px;padding:17px}.fund-top,.card-top{display:flex;align-items:flex-start;gap:11px}.fund-icon{background:#eef4fc;height:44px;width:44px;display:grid;place-items:center;border-radius:14px;font-size:22px;flex-shrink:0}.fund-name,.credit-name{font-weight:790;font-size:14px;margin:0 0 3px}.fund-caption{color:var(--muted);font-size:11px;line-height:1.4}.fund-balance{font-size:21px;font-weight:810;margin:15px 0 7px}.fund-line{font-size:11px;display:flex;justify-content:space-between;gap:8px;color:var(--muted)}.thin-meter{height:7px;background:#e8eff1;border-radius:20px;overflow:hidden;margin:9px 0}.thin-meter div{height:100%;background:var(--teal);border-radius:20px}.fund-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.fund-actions button{flex:1}.credit-card{background:linear-gradient(125deg,#233a60,#405982);border:0;color:white;box-shadow:0 8px 20px #34496a20}.credit-card .fund-caption,.credit-card .fund-line{color:#e2ebf2}.credit-card .thin-meter{background:#ffffff2b}.credit-card .thin-meter div{background:#b4d9e9}.credit-card .fund-actions .btn-soft{background:#ffffffee}.credit-card .btn-outline{border-color:#ffffff80;color:white;background:#ffffff1a}.expense-row,.txn-row{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #eef2f4}.expense-row:last-child,.txn-row:last-child{border-bottom:0}.txn-symbol{background:#eff4f5;flex-shrink:0;display:grid;place-items:center;height:38px;width:38px;border-radius:12px;font-size:18px}.txn-data{min-width:0;flex:1}.txn-name{font-size:13px;font-weight:760;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.txn-sub{font-size:10px;color:var(--muted);line-height:1.65;margin-top:3px}.txn-money{font-size:12px;font-weight:820;white-space:nowrap;text-align:right}.txn-edit{border:0;color:#508273;font-size:11px;background:transparent;margin-top:5px;padding:3px 0;float:right}.empty{color:var(--muted);text-align:center;padding:20px 8px;font-size:12px;line-height:1.6}.empty .emoji{font-size:32px;margin-bottom:8px}.empty strong{color:var(--ink);display:block;font-size:14px}.search{display:block;border:1px solid var(--border);background:white;border-radius:12px;width:100%;height:43px;padding:0 12px;color:var(--ink);margin:12px 0}.filter-row{display:flex;gap:7px;overflow:auto;padding-bottom:11px}.filter-btn{flex:none;border:1px solid #e1e9ec;border-radius:999px;background:#fff;color:#627681;padding:8px 13px;font-size:11px;font-weight:750}.filter-btn.active{background:var(--deep);border-color:var(--deep);color:white}.plan-summary{display:flex;justify-content:space-between;gap:9px;margin-bottom:12px;border-bottom:1px solid var(--border);padding-bottom:12px;font-size:13px}.plan-summary b{font-size:16px}.budget-row{display:grid;grid-template-columns:1fr 116px;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid #eef2f4}.budget-row:last-child{border:0}.budget-row-title{font-weight:730;font-size:12px}.budget-row small{font-size:10px;color:var(--muted)}.budget-row input{width:100%;text-align:right;padding:8px 9px;border-radius:9px;border:1px solid #dce7e9;font-size:13px}.field{display:block;font-weight:740;font-size:12px;color:#425e69;margin:0 0 14px}.field input,.field select{display:block;width:100%;height:44px;border:1px solid #dae5e9;color:#233e4c;background:white;border-radius:11px;padding:0 11px;margin-top:7px;outline:none;min-width:0}.field input:focus,.field select:focus,.budget-row input:focus{outline:2px solid #68bda777;outline-offset:1px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sheet{border:0;padding:0;border-radius:19px 19px 0 0;width:min(100%,680px);max-height:91dvh;box-shadow:0 10px 60px #0e25363d;position:fixed;top:auto;bottom:0;overflow:auto;color:var(--ink);background:white}.sheet::backdrop{background:#0b26357a}.sheet-inner{padding:23px 20px calc(25px + env(safe-area-inset-bottom))}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px;gap:12px}.sheet-head h2{margin:0;font-size:20px;letter-spacing:-.5px}.close{border:0;background:#edf2f3;border-radius:10px;width:33px;height:33px}.danger-link{color:#ae4c44;background:transparent;border:0;text-decoration:underline;display:block;margin:13px auto 0;padding:10px}.floating-add{position:fixed;bottom:calc(91px + env(safe-area-inset-bottom));right:max(17px,calc((100vw - 760px)/2 + 16px));z-index:8;border:0;background:#0b836a;color:#fff;border-radius:999px;padding:12px 17px;font-weight:800;display:flex;gap:6px;align-items:center;box-shadow:0 7px 20px #07564738;font-size:13px}.floating-add span{font-size:23px;line-height:.7}.navbar{position:fixed;z-index:7;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,760px);background:#fff;border-top:1px solid var(--border);padding:10px 8px calc(11px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);gap:2px;box-shadow:0 -6px 20px #183b4a0a}.navbar button{display:flex;flex-direction:column;gap:4px;align-items:center;border:0;background:transparent;color:#7c9097;font-size:10px;font-weight:720;min-width:0;padding:5px 1px}.navbar button span{font-size:24px;line-height:1.1}.navbar button.active{color:var(--teal)}#toast{position:fixed;z-index:30;bottom:calc(155px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#123b4b;color:white;padding:12px 14px;border-radius:12px;font-size:12px;max-width:90vw;width:max-content;box-shadow:0 8px 25px #1934423d;display:none}#toast.visible{display:block}.settings-row{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #eef2f4}.settings-row:last-child{border:0}.settings-row p{font-size:11px;color:var(--muted);margin:4px 0 0;line-height:1.5}.settings-row strong{font-size:13px}.settings-row .btn-outline{flex-shrink:0}.settings-panel{margin-top:15px}.hint{font-size:11px;color:var(--muted);line-height:1.6}.line{height:1px;background:var(--border);margin:16px 0}.num{font-variant-numeric:tabular-nums}@media(min-width:760px){.shell{padding-top:30px}.sheet{bottom:6vh;top:6vh;margin:auto;border-radius:18px;max-height:87vh}}@media(max-width:370px){.shell{padding-left:13px;padding-right:13px}.stat-value{font-size:18px}.hero-amount{font-size:30px}.navbar button{font-size:9px}.budget-row{grid-template-columns:1fr 100px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
