:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f1f3f6;--border: #e3e7ec;--text: #12181f;--text-dim: #545e6b;--text-faint: #646e7b;--brand: #0f766e;--brand-dark: #0b5c56;--brand-tint: #e6f3f1;--gold: #a16207;--gold-dark: #854d0e;--gold-tint: #fdf6e7;--gold-line: #ecd9a8;--in: #15803d;--in-tint: #e8f5ec;--out: #b91c1c;--out-tint: #fdeceb;--radius: 16px;--radius-sm: 11px;--tap: 48px;--shadow: 0 1px 2px rgba(18, 24, 31, .05), 0 4px 14px rgba(18, 24, 31, .05);--shadow-soft: 0 1px 2px rgba(18, 24, 31, .05), 0 8px 24px rgba(18, 24, 31, .08);--shadow-lg: 0 -4px 24px rgba(18, 24, 31, .12);--nav-height: 62px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.45;-webkit-text-size-adjust:100%}body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320' viewBox='0 0 320 320'%3E%3Cg fill='none' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg stroke='%230f766e' opacity='.05'%3E%3Cg transform='translate(44 36) rotate(-8)'%3E%3Crect x='-21' y='-13' width='42' height='26' rx='4'/%3E%3Cpath d='M-7-5h13M-7 0h13M2-5c5 0 5 7 0 7h-7l11 8'/%3E%3C/g%3E%3Cg transform='translate(196 52)'%3E%3Cpath d='M-24-14v26h28'/%3E%3Cpath d='M-18 6-6-8 4 0 18-18'/%3E%3Cpath d='M11-18h8v8'/%3E%3C/g%3E%3Cg transform='translate(118 128)'%3E%3Cpath d='M-17 0l17-13 17 13'/%3E%3Cpath d='M-12-2v20h24V-2'/%3E%3Cpath d='M-4 18V8h8v10'/%3E%3C/g%3E%3Cg transform='translate(268 118) rotate(6)'%3E%3Cpath d='M-21 3v-5l8-2 6-7h14l6 7 8 2v5'/%3E%3Cpath d='M-21 3h6M-7 3h14M15 3h6'/%3E%3Cpath d='M0-11v7'/%3E%3Ccircle cx='-11' cy='4' r='4'/%3E%3Ccircle cx='11' cy='4' r='4'/%3E%3C/g%3E%3Cg transform='translate(52 200) rotate(7)'%3E%3Crect x='-20' y='-13' width='40' height='26' rx='5'/%3E%3Cpath d='M20-2h-9a4 4 0 000 8h9'/%3E%3Cpath d='M-20-6h30'/%3E%3C/g%3E%3Cg transform='translate(214 214) rotate(10)'%3E%3Crect x='-21' y='-13' width='42' height='26' rx='4'/%3E%3Cpath d='M-7-5h13M-7 0h13M2-5c5 0 5 7 0 7h-7l11 8'/%3E%3C/g%3E%3Cg transform='translate(36 292) rotate(4)'%3E%3Cpath d='M-24-14v26h28'/%3E%3Cpath d='M-18 6-6-8 4 0 18-18'/%3E%3Cpath d='M11-18h8v8'/%3E%3C/g%3E%3Cg transform='translate(282 282) rotate(-5)'%3E%3Cpath d='M-17 0l17-13 17 13'/%3E%3Cpath d='M-12-2v20h24V-2'/%3E%3Cpath d='M-4 18V8h8v10'/%3E%3C/g%3E%3Cg transform='translate(150 258) rotate(-7)'%3E%3Cpath d='M-21 3v-5l8-2 6-7h14l6 7 8 2v5'/%3E%3Cpath d='M-21 3h6M-7 3h14M15 3h6'/%3E%3Cpath d='M0-11v7'/%3E%3Ccircle cx='-11' cy='4' r='4'/%3E%3Ccircle cx='11' cy='4' r='4'/%3E%3C/g%3E%3C/g%3E%3Cg stroke='%23a16207' opacity='.055'%3E%3Cg transform='translate(126 40)'%3E%3Ccircle r='12'/%3E%3Cpath d='M-5-5h9M-5 0h9M0-5c4 0 4 5 0 5h-4l7 6'/%3E%3C/g%3E%3Cg transform='translate(280 26) rotate(-6)'%3E%3Cpath d='M-19-8h32l7 16h-46z'/%3E%3Cpath d='M-11 0h17'/%3E%3C/g%3E%3Cg transform='translate(200 132) rotate(8)'%3E%3Cellipse cy='8' rx='15' ry='5'/%3E%3Cpath d='M-15 8v9c0 3 7 5 15 5s15-2 15-5V8'/%3E%3Cellipse cy='-7' rx='11' ry='4'/%3E%3Cpath d='M-11-7v6M11-7v6'/%3E%3C/g%3E%3Cg transform='translate(30 116) rotate(-4)'%3E%3Crect x='-16' y='-14' width='32' height='28' rx='3'/%3E%3Ccircle cx='3' r='7'/%3E%3Cpath d='M3-7v14M-4 0h14'/%3E%3Cpath d='M-16 14v4M11 14v4'/%3E%3C/g%3E%3Cg transform='translate(140 196)'%3E%3Ccircle r='12'/%3E%3Cpath d='M-5-5h9M-5 0h9M0-5c4 0 4 5 0 5h-4l7 6'/%3E%3C/g%3E%3Cg transform='translate(296 196) rotate(-6)'%3E%3Cellipse cy='8' rx='15' ry='5'/%3E%3Cpath d='M-15 8v9c0 3 7 5 15 5s15-2 15-5V8'/%3E%3Cellipse cy='-7' rx='11' ry='4'/%3E%3Cpath d='M-11-7v6M11-7v6'/%3E%3C/g%3E%3Cg transform='translate(110 314) rotate(5)'%3E%3Cpath d='M-19-8h32l7 16h-46z'/%3E%3Cpath d='M-11 0h17'/%3E%3C/g%3E%3Cg transform='translate(238 300)'%3E%3Ccircle r='12'/%3E%3Cpath d='M-5-5h9M-5 0h9M0-5c4 0 4 5 0 5h-4l7 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");background-size:320px 320px;background-repeat:repeat}.app{max-width:460px;margin:0 auto;min-height:100%;position:relative}.screen{padding:0 16px calc(var(--nav-height) + 28px + env(safe-area-inset-bottom))}.screen--plain{padding-bottom:32px}.header{padding:calc(14px + env(safe-area-inset-top)) 16px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.header__title{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em}.header__sub{margin:2px 0 0;color:var(--text-dim);font-size:14px}.header--back{justify-content:flex-start;gap:4px;padding-left:4px}.header__text{flex:1;min-width:0}.back-btn{display:flex;align-items:center;justify-content:center;flex:none;width:var(--tap);height:var(--tap);border:0;border-radius:50%;background:none;color:var(--text);font:inherit;font-size:22px;line-height:1;cursor:pointer}.back-btn:active{background:var(--surface-2)}.field__hint{margin:6px 0 0;font-size:13px;color:var(--text-dim)}.field__hint--strong{color:var(--out);font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card--float{box-shadow:var(--shadow-soft)}.card--pad{padding:16px}.section-label{margin:22px 0 8px;font-size:13px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.section-label--sub{margin-top:16px}.row{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--tap);padding:12px 14px;background:none;border:0;border-bottom:1px solid var(--border);font:inherit;color:inherit;text-align:left;cursor:pointer}.row:last-child{border-bottom:0}.row:active{background:var(--surface-2)}.row__main{flex:1;min-width:0}.row__title{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row__aside{font-weight:400;color:var(--text-dim)}.row__meta{font-size:13px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row__meta--wrap{white-space:normal;overflow:visible}.row__title--wrap{white-space:normal;overflow:visible;overflow-wrap:anywhere;font-weight:500;font-size:14px}.row__amount{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.amount--in{color:var(--in)}.amount--out{color:var(--out)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:var(--tap);padding:8px 20px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--brand);color:#fff;font:inherit;font-weight:600;line-height:1.3;text-align:center;overflow-wrap:anywhere;cursor:pointer}.btn:active:not(:disabled){background:var(--brand-dark)}.btn:disabled{opacity:.5;cursor:default}.btn--block{width:100%}.btn--lg{min-height:56px;font-size:17px}.btn--ghost{background:var(--surface);color:var(--text);border-color:var(--border)}.btn--ghost:active:not(:disabled){background:var(--surface-2)}.btn--danger{background:var(--out)}.btn--ghost-danger{color:var(--out);border-color:var(--out)}.btn--link{background:none;border:0;color:var(--brand);font-weight:600;min-height:var(--tap);padding:0 8px;cursor:pointer}.field{margin-bottom:16px}.field__label{display:block;margin-bottom:6px;font-size:14px;font-weight:600;color:var(--text-dim)}.input{width:100%;min-height:var(--tap);padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:16px}.input:focus{outline:2px solid var(--brand);outline-offset:-1px}.input--error{border-color:var(--out)}.field__error{margin:6px 0 0;font-size:13px;color:var(--out)}.amount-input{display:flex;align-items:center;gap:6px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.amount-input:focus-within{outline:2px solid var(--brand);outline-offset:-1px}.amount-input__rupee{font-size:30px;font-weight:600;color:var(--text-faint)}.amount-input__field{flex:1;min-width:0;min-height:56px;border:0;background:none;color:var(--text);font:inherit;font-size:36px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.amount-input__field:focus{outline:none}.amount-input__field::-webkit-outer-spin-button,.amount-input__field::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.segments{display:flex;gap:6px;padding:5px;background:var(--surface-2);border-radius:var(--radius);min-width:0}.segment{flex:1;min-width:0;min-height:44px;padding:8px 6px;border:0;border-radius:var(--radius-sm);background:none;color:var(--text-dim);font:inherit;font-size:14px;font-weight:600;line-height:1.25;text-align:center;overflow-wrap:anywhere;cursor:pointer}.segments--wrap{display:grid;grid-template-columns:1fr 1fr}.segment--on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.segment--on.segment--in{color:var(--in)}.segment--on.segment--out{color:var(--out)}.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.chip{min-height:52px;padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-weight:600;font-size:15px;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis}.chip:active{background:var(--surface-2)}.chip--on{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-dark);box-shadow:inset 0 0 0 1px var(--brand)}.date-chip{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);padding:0 16px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.date-chip--changed{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-dark)}.date-chip__input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;border:0;cursor:pointer}.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);max-width:460px;margin:0 auto;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.nav__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--nav-height);border:0;background:none;color:var(--text-faint);font:inherit;font-size:11px;font-weight:600;cursor:pointer}.nav__item--on{color:var(--brand)}.nav__icon{font-size:20px;line-height:1}.nav__item--add .nav__icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;font-size:22px;font-weight:400}.nav__item--add.nav__item--on .nav__icon{background:var(--brand-dark)}.toast{position:fixed;left:50%;bottom:calc(var(--nav-height) + 16px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:40;display:flex;align-items:center;gap:10px;max-width:90vw;padding:12px 18px;border-radius:999px;background:#12181f;color:#fff;font-weight:600;font-size:14px;box-shadow:var(--shadow-lg);animation:toast-in .16s ease-out}.toast--error{background:var(--out)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.toast,.sheet__panel{animation:none}}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:#12181f66;border:0;padding:0}.sheet__panel{width:100%;max-width:460px;max-height:88vh;overflow-y:auto;padding:20px 16px calc(24px + env(safe-area-inset-bottom));background:var(--surface);border-radius:20px 20px 0 0;animation:sheet-up .18s ease-out}@keyframes sheet-up{0%{transform:translateY(16px)}to{transform:translateY(0)}}.sheet__title{margin:0 0 4px;font-size:18px;font-weight:700}.sheet__actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}.empty{padding:40px 20px;text-align:center;color:var(--text-dim)}.empty__icon{font-size:34px;margin-bottom:8px}.banner{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--out-tint);color:var(--out);font-size:14px;font-weight:600}.banner--info{background:var(--brand-tint);color:var(--brand-dark)}.spinner{width:22px;height:22px;margin:40px auto;border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth{display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:24px 20px calc(24px + env(safe-area-inset-bottom))}.auth__brand{margin:0 0 4px;font-size:26px;font-weight:800;letter-spacing:-.02em}.auth__tagline{margin:0 0 28px;color:var(--text-dim)}.auth__footer{margin-top:18px;text-align:center}.totals{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px}.total{padding:12px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.total__label{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.total__value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.month-picker{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:12px}.month-picker__step{min-width:var(--tap);min-height:var(--tap);border:0;background:none;color:var(--brand);font:inherit;font-size:26px;line-height:1;cursor:pointer}.month-picker__step:disabled{color:var(--text-faint);cursor:default}.month-picker__label{min-width:150px;text-align:center;font-size:16px;font-weight:700}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{min-height:76px;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.stat--gold{background:var(--gold-tint);border-color:var(--gold-line)}.stat--gold .stat__label,.stat--gold .stat__value{color:var(--gold-dark)}.stat__label{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.stat__value{margin-top:2px;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stats__note{margin:8px 0 0;font-size:13px;color:var(--text-dim)}.chart__readout{display:flex;align-items:center;gap:10px;min-height:22px;margin-bottom:6px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.chart__readout-day{color:var(--text-dim)}.chart__key{display:inline-flex;align-items:center;gap:5px;color:var(--text-dim);font-weight:600}.chart__swatch{width:9px;height:9px;border-radius:2px}.chart__swatch--in{background:var(--in)}.chart__swatch--out{background:var(--out)}.chart__hint{margin-left:auto;color:var(--text-faint);font-weight:500}.chart__svg{display:block;width:100%;height:132px}.chart__axis{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}.chart__bar--in{fill:var(--in)}.chart__bar--out{fill:var(--out)}.chart__today{fill:var(--brand)}.chart__axis-labels{display:flex;justify-content:space-between;margin-top:4px;color:var(--text-faint);font-size:11px;font-variant-numeric:tabular-nums}.donut__ring{position:relative;width:168px;margin:4px auto 12px}.donut__ring svg{display:block;width:100%}.donut__centre{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.donut__total{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.donut__label{font-size:12px;color:var(--text-dim)}.donut__legend{margin:0;padding:0;list-style:none}.donut__legend li{display:flex;align-items:center;gap:8px;min-height:30px;font-size:14px}.donut__swatch{width:10px;height:10px;border-radius:3px;flex:none}.donut__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donut__share{color:var(--text-dim);font-size:13px;font-variant-numeric:tabular-nums}.donut__amount{min-width:74px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.segments--sm{margin-bottom:14px}.segments--sm .segment{min-height:38px;font-size:14px}.due{display:flex;align-items:center;gap:10px;min-height:var(--tap);padding:10px 14px;border-bottom:1px solid var(--border)}.due:last-child{border-bottom:0}.due--late{border-left:3px solid var(--out)}.due__amount{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.due__hint{color:var(--text-faint);font-size:12px;white-space:nowrap}.btn--small{flex:none;min-height:38px;padding:0 14px;font-size:14px;white-space:nowrap}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:skeleton 1.4s ease infinite;border-color:transparent;box-shadow:none}.skeleton--chart{height:168px;margin-bottom:4px}.skeleton--donut{height:300px}@keyframes skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}.empty--inline{padding:24px 8px}.report-row{display:grid;grid-template-columns:1fr repeat(3,78px);gap:4px;align-items:center;min-height:44px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:14px}.report-row:last-child{border-bottom:0}.report-row__label{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-row__num{text-align:right;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.report-row--head{background:var(--surface-2);color:var(--text-dim);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;min-height:34px}.report-row--head .report-row__num{text-transform:uppercase}.report-row--total{background:var(--surface-2);font-weight:700}.report-row--note{grid-template-columns:1fr;min-height:34px;color:var(--text-faint);font-size:12px}.row--muted .row__title,.row--muted .row__amount{color:var(--text-dim)}.row--add .row__title{color:var(--brand)}.row:disabled{cursor:default}.row:disabled .row__title{color:var(--text-dim)}.row__main--button{border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;min-height:40px}.settings__version{margin-top:28px;text-align:center;color:var(--text-faint);font-size:13px}.auth__company{margin-top:32px;text-align:center;color:var(--text-faint);font-size:13px}.toggle{position:relative;flex:none;width:46px;height:28px;margin:10px 1px;border:0;border-radius:999px;background:var(--border);cursor:pointer;transition:background .14s ease}.toggle--on{background:var(--brand)}.toggle__knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #12181f4d;transition:transform .14s ease}.toggle--on .toggle__knob{transform:translate(18px)}.toggle:disabled{opacity:.6}@media (prefers-reduced-motion: reduce){.toggle,.toggle__knob{transition:none}}.pwa-banner{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:center;gap:8px;padding:calc(8px + env(safe-area-inset-top)) 14px 8px;background:var(--out);color:#fff;font-size:13px;font-weight:600;text-align:center;line-height:1.3}.pwa-update{position:fixed;left:50%;bottom:calc(var(--nav-height) + 16px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:41;display:flex;align-items:center;gap:10px;min-height:var(--tap);max-width:90vw;padding:12px 20px;border:0;border-radius:999px;background:var(--brand);color:#fff;font:inherit;font-weight:600;font-size:14px;box-shadow:var(--shadow-lg);cursor:pointer;animation:toast-in .16s ease-out}.pwa-update:active{background:var(--brand-dark)}@media (prefers-reduced-motion: reduce){.pwa-update{animation:none}}.screen__note{margin:0 0 14px;font-size:13px;line-height:1.5;color:var(--text-dim)}.hint{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--brand-tint);color:var(--brand-dark)}.hint__icon{font-size:15px;line-height:1.5}.hint__text{flex:1;margin:0;font-size:13px;line-height:1.5}.hint__dismiss{flex-shrink:0;margin:-6px -6px -6px 0;padding:6px;border:0;background:none;color:var(--brand-dark);font:inherit;font-size:13px;font-weight:700;text-decoration:underline;cursor:pointer}.type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.type-cell{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-height:62px;padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-dim);font:inherit;text-align:left;cursor:pointer;transition:box-shadow .12s ease,background .12s ease}.type-cell:active{background:var(--surface-2)}.type-cell__label{font-size:16px;font-weight:700;color:var(--text)}.type-cell__hint{font-size:12px;color:var(--text-faint)}.type-cell--on{border-color:var(--brand);background:var(--brand-tint);box-shadow:inset 0 0 0 1px var(--brand)}.type-cell--on .type-cell__label,.type-cell--on .type-cell__hint{color:var(--brand-dark)}.type-cell--income{border-color:var(--in);background:var(--in-tint);box-shadow:inset 0 0 0 1px var(--in)}.type-cell--income .type-cell__label,.type-cell--income .type-cell__hint{color:var(--in)}.type-cell--expense{border-color:var(--out);background:var(--out-tint);box-shadow:inset 0 0 0 1px var(--out)}.type-cell--expense .type-cell__label,.type-cell--expense .type-cell__hint{color:var(--out)}.type-cell--investment{border-color:var(--gold);background:var(--gold-tint);box-shadow:inset 0 0 0 1px var(--gold)}.type-cell--investment .type-cell__label,.type-cell--investment .type-cell__hint{color:var(--gold-dark)}@media (prefers-reduced-motion: reduce){.type-cell{transition:none}}.greeting__title{margin:0;font-size:23px;font-weight:800;letter-spacing:-.02em}.greeting__line{margin:3px 0 0;font-size:13px;color:var(--text-dim)}.greeting__spark{color:var(--gold);font-weight:700}.toast--good{background:var(--gold-dark)}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:18px;background:var(--bg)}.tour__card{display:flex;flex-direction:column;width:100%;max-width:420px;max-height:100%;padding:20px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);overflow-y:auto}.tour__scene{flex-shrink:0;margin-bottom:18px;border-radius:var(--radius-sm);background:var(--surface-2);padding:10px}.tour-svg{display:block;width:100%;height:auto}.tour__title{margin:0 0 8px;font-size:21px;font-weight:800;letter-spacing:-.01em;outline:none}.tour__body{margin:0;font-size:15px;line-height:1.55;color:var(--text-dim)}.tour__language{margin-top:18px;padding:14px;border-radius:var(--radius-sm);background:var(--brand-tint)}.tour__language-q{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--brand-dark)}.tour__language-actions{display:flex;gap:8px}.tour__language-actions .btn{flex:1;min-width:0}.tour__foot{margin-top:auto;padding-top:22px}.tour__dots{display:flex;justify-content:center;gap:7px;margin-bottom:16px}.tour__dot{width:7px;height:7px;border-radius:50%;background:var(--border);transition:width .16s ease,background-color .16s ease}.tour__dot--on{width:20px;border-radius:4px;background:var(--brand)}.tour__dot--done{background:var(--brand);opacity:.4}.tour-svg__frame{fill:var(--surface);stroke:var(--border);stroke-width:2}.tour-svg__tile,.tour-svg__row{fill:var(--surface);stroke:var(--border);stroke-width:1.5}.tour-svg__amount{fill:var(--text);font-size:22px;font-weight:800;text-anchor:middle;font-variant-numeric:tabular-nums}.tour-svg__chip{fill:var(--brand-tint);stroke:var(--brand);stroke-width:1.5}.tour-svg__chip-text{fill:var(--brand-dark);font-size:11px;font-weight:700;text-anchor:middle}.tour-svg__cta{fill:var(--brand)}.tour-svg__tick{fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.tour-svg__label{fill:var(--text-dim);font-size:10px;font-weight:700;text-anchor:middle}.tour-svg__bar--in{fill:var(--in)}.tour-svg__bar--out{fill:var(--out)}.tour-svg__bar--brand{fill:var(--brand)}.tour-svg__bell-body{fill:var(--gold-tint);stroke:var(--gold);stroke-width:2;stroke-linejoin:round}.tour-svg__bell-clapper{fill:none;stroke:var(--gold);stroke-width:2}.tour-svg__dot--out{fill:var(--out)}.tour-svg__dot--gold{fill:var(--gold)}.tour-svg__ghost{fill:var(--border)}.tour-svg__ghost--strong{fill:var(--text-faint);opacity:.45}.tour-svg__cal-head{fill:var(--brand)}.tour-svg__day{fill:var(--border)}.tour-svg__day--on{fill:var(--brand)}.tour-svg__repeat-ring,.tour-svg__repeat-head{fill:none;stroke:var(--gold);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.tour-svg__repeat-ring{stroke-dasharray:62 20;transform:rotate(-84deg);transform-origin:204px 66px}.tour-svg__axis{stroke:var(--border);stroke-width:1.5}.tour-svg__glyph-bg{fill:var(--gold-tint);stroke:var(--gold);stroke-width:1.5}.tour-svg__glyph{fill:var(--gold-dark);font-size:15px;font-weight:700;text-anchor:middle}.tour-anim{animation:tour-rise .42s ease-out both}.tour-anim--1{animation-delay:60ms}.tour-anim--2{animation-delay:.38s}.tour-anim--3{animation-delay:.7s}@keyframes tour-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.tour-anim{animation:none}.tour__dot{transition:none}}.export{display:flex;gap:10px}.export .btn{flex:1;min-width:0;padding:0 10px}.btn__icon{width:1em;height:1em;flex-shrink:0}.install-banner{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom));pointer-events:none}.install-banner__sheet{pointer-events:auto;width:100%;max-width:436px;padding:16px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);animation:install-rise .24s ease-out both}@keyframes install-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.install-banner__sheet{animation:none}}.install-banner__head{display:flex;align-items:center;gap:12px}.install-banner__icon{flex-shrink:0;width:48px;height:48px;border-radius:11px}.install-banner__words{min-width:0}.install-banner__title{margin:0;font-size:15px;font-weight:700}.install-banner__line{margin:2px 0 0;font-size:13px;line-height:1.4;color:var(--text-dim)}.install-banner__steps{margin:14px 0 0;padding-left:20px;font-size:13px;line-height:1.6;color:var(--text-dim)}.install-banner__steps+.btn{margin-top:14px}.install-banner__actions{display:flex;gap:10px;margin-top:14px}.install-banner__actions .btn{flex:1;min-width:0;padding:0 12px}.install-banner__actions .btn:last-child{flex:1.4}
